fix: add built-in Thai banner translations
Some checks failed
CI / Detect changes (push) Has been cancelled
CI / API Lint (push) Has been cancelled
CI / API Tests (push) Has been cancelled
CI / Scanner Lint (push) Has been cancelled
CI / Scanner Tests (push) Has been cancelled
CI / Banner Lint & Typecheck (push) Has been cancelled
CI / Banner Tests (push) Has been cancelled
CI / Banner Build (push) Has been cancelled
CI / Admin UI Typecheck (push) Has been cancelled
CI / Admin UI Tests (push) Has been cancelled
CI / Admin UI Build (push) Has been cancelled

This commit is contained in:
Kunthawat Greethong
2026-07-01 13:29:38 +07:00
parent 4abb0138e6
commit c89a9f7b3e
2 changed files with 94 additions and 9 deletions

View File

@@ -51,6 +51,36 @@ export const DEFAULT_TRANSLATIONS: TranslationStrings = {
cookieCount: '{{count}} cookies used on this site',
};
/** Built-in Thai translations — no API call needed. */
export const THAI_TRANSLATIONS: TranslationStrings = {
title: 'เรามีการใช้คุ๊กกี้เพื่อเก็บข้อมูล',
description:
'เว็บไซซ์นี้ใช้คุกกี้เพื่อปรับปรุงประสบการณ์การใช้งาน วิเคราะห์การเข้าชม และแสดงโฆษณาที่เหมาะกับคุณ คุณสามารถเลือกได้ว่าจะอนุญาตคุกกี้ประเภทใด คุกกี้ที่จำเป็นจะถูกเปิดใช้งานเสมอเพื่อให้เว็บไซต์ทำงานได้ [นโยบายความเป็นส่วนตัว]({{privacy_policy}}) [ข้อกำหนดและเงื่อนไข]({{terms}})',
acceptAll: 'ยอมรับทั้งหมด',
rejectAll: 'ปฏิเสธทั้งหมด',
managePreferences: 'ตั้งค่า',
savePreferences: 'บันทึก',
privacyPolicyLink: 'นโยบายความเป็นส่วนตัว',
closeLabel: 'ปิด',
categoryNecessary: 'จำเป็น',
categoryNecessaryDesc: 'คุกกี้ที่จำเป็นสำหรับการทำงานพื้นฐานของเว็บไซต์ เช่น การจดจำตะกร้าสินค้า การเข้าสู่ระบบ และความปลอดภัย — เปิดใช้งานเสมอเพราะเว็บไซต์ไม่สามารถทำงานได้ถ้าไม่มี',
categoryFunctional: 'ฟังก์ชั่น',
categoryFunctionalDesc: 'คุกกี้การตลาดใช้เพื่อให้เว็บไชต์มีฟังก์ชั่นพิเศษ ถ้าปิดการทำงานอาจจะทำให้บางฟังก์ชั่นของเว็บไซต์ใช้งานไม่ได้',
categoryAnalytics: 'การวิเคราะห์',
categoryAnalyticsDesc: 'คุกกี้เหล่านี้ช่วยให้เราเข้าใจว่าผู้เข้าชมใช้งานเว็บไซต์อย่างไร เช่น หน้าไหนที่เข้าบ่อย คลิกที่ไหน - ข้อมูลเหล่านี้ช่วยเราพัฒนาเว็บไซต์ให้ดีขึ้นเรื่อยๆ',
categoryMarketing: 'การตลาด',
categoryMarketingDesc: 'คุกกี้การตลาดใช้ติดตามพฤติกรรมการเข้าชมเว็บไซต์เพื่อแสดงโฆษณาที่เกี่ยวข้องกับความสนใจของคุณบนแพลตฟอร์มอื่นด้วย เช่น Facebook และ Google',
categoryPersonalisation: 'ส่วนตัว',
categoryPersonalisationDesc: 'คุกกี้การตลาดใช้สำหรับเก็บข้อมูลส่วนตัว',
cookieCount: 'มีคุกกี้ {{count}} บนเว็บไซต์นี้',
};
/** Built-in translations that don't require an API call. */
const BUILT_IN_TRANSLATIONS: Record<string, TranslationStrings> = {
en: DEFAULT_TRANSLATIONS,
th: THAI_TRANSLATIONS,
};
/**
* Detect the user's preferred locale.
*
@@ -105,15 +135,17 @@ export async function fetchTranslations(
}
/**
* Load translations: try fetching from API, fall back to defaults.
* Load translations: use built-in if available, otherwise fetch from API.
*/
export async function loadTranslations(
apiBase: string,
siteId: string,
locale: string,
): Promise<TranslationStrings> {
if (locale === 'en') {
return { ...DEFAULT_TRANSLATIONS };
// Built-in translations (en, th, etc.) — no API call needed
const builtIn = BUILT_IN_TRANSLATIONS[locale];
if (builtIn) {
return { ...builtIn };
}
const remote = await fetchTranslations(apiBase, siteId, locale);