{
  "version": 3,
  "sources": ["../../../../../src/lib/ui/hooks/useTranslation/translations.ts"],
  "sourcesContent": ["import { LANGUAGES, fetch, getDeclaredMessages } from '@tldraw/editor'\nimport { TLUiAssetUrls } from '../../assetUrls'\nimport { TLUiTranslationKey } from './TLUiTranslationKey'\n\n// English isn't fetched: it's the `defaultMessage` of every declared message, which\n// `TldrawUiTranslationProvider` layers underneath whatever this returns. Other languages may\n// have missing messages, and fall back to that English.\n\n/* ----------------- (do not change) ---------------- */\n\n/** @public */\nexport const RTL_LANGUAGES = new Set(['ar', 'fa', 'he', 'ur', 'ku'])\n\n/** @public */\nexport interface TLUiTranslation {\n\treadonly locale: string\n\treadonly label: string\n\treadonly messages: Record<TLUiTranslationKey, string>\n\treadonly dir: 'rtl' | 'ltr'\n}\n\n/** @internal */\nexport const EN_TRANSLATION: TLUiTranslation = {\n\tlocale: 'en',\n\tlabel: 'English',\n\tmessages: {} as TLUiTranslation['messages'],\n\tdir: 'ltr',\n}\n\n/** @internal */\nexport async function fetchTranslation(\n\tlocale: TLUiTranslation['locale'],\n\tassetUrls: TLUiAssetUrls\n): Promise<TLUiTranslation> {\n\tif (locale === 'en') {\n\t\treturn EN_TRANSLATION\n\t}\n\n\tconst language = LANGUAGES.find((t) => t.locale === locale)\n\n\tif (!language) {\n\t\tconsole.warn(`No translation found for locale ${locale}`)\n\t\treturn EN_TRANSLATION\n\t}\n\n\tconst res = await fetch(assetUrls.translations[language.locale])\n\tconst messages: TLUiTranslation['messages'] = await res.json()\n\n\tif (!messages) {\n\t\tconsole.warn(`No messages found for locale ${locale}`)\n\t\treturn EN_TRANSLATION\n\t}\n\n\tif (process.env.NODE_ENV === 'development') {\n\t\tconst missing = Object.keys(getDeclaredMessages()).filter(\n\t\t\t(key) => !messages[key as TLUiTranslationKey]\n\t\t)\n\t\tif (missing.length > 0) {\n\t\t\tconsole.warn(`Language ${locale}: missing messages for keys:\\n${missing.join('\\n')}`)\n\t\t}\n\t}\n\n\treturn {\n\t\tlocale,\n\t\tlabel: language.label,\n\t\tdir: RTL_LANGUAGES.has(language.locale) ? 'rtl' : 'ltr',\n\t\tmessages,\n\t}\n}\n"],
  "mappings": "AAAA,SAAS,WAAW,OAAO,2BAA2B;AAW/C,MAAM,gBAAgB,oBAAI,IAAI,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI,CAAC;AAW5D,MAAM,iBAAkC;AAAA,EAC9C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC;AAAA,EACX,KAAK;AACN;AAGA,eAAsB,iBACrB,QACA,WAC2B;AAC3B,MAAI,WAAW,MAAM;AACpB,WAAO;AAAA,EACR;AAEA,QAAM,WAAW,UAAU,KAAK,CAAC,MAAM,EAAE,WAAW,MAAM;AAE1D,MAAI,CAAC,UAAU;AACd,YAAQ,KAAK,mCAAmC,MAAM,EAAE;AACxD,WAAO;AAAA,EACR;AAEA,QAAM,MAAM,MAAM,MAAM,UAAU,aAAa,SAAS,MAAM,CAAC;AAC/D,QAAM,WAAwC,MAAM,IAAI,KAAK;AAE7D,MAAI,CAAC,UAAU;AACd,YAAQ,KAAK,gCAAgC,MAAM,EAAE;AACrD,WAAO;AAAA,EACR;AAEA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC3C,UAAM,UAAU,OAAO,KAAK,oBAAoB,CAAC,EAAE;AAAA,MAClD,CAAC,QAAQ,CAAC,SAAS,GAAyB;AAAA,IAC7C;AACA,QAAI,QAAQ,SAAS,GAAG;AACvB,cAAQ,KAAK,YAAY,MAAM;AAAA,EAAiC,QAAQ,KAAK,IAAI,CAAC,EAAE;AAAA,IACrF;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA,OAAO,SAAS;AAAA,IAChB,KAAK,cAAc,IAAI,SAAS,MAAM,IAAI,QAAQ;AAAA,IAClD;AAAA,EACD;AACD;",
  "names": []
}
