@generaltranslation/supported-locales 2.1.39 → 2.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @generaltranslation/supported-locales
2
2
 
3
+ ## 2.1.41
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2408](https://github.com/generaltranslation/gt/pull/2408) [`ebb6c9e`](https://github.com/generaltranslation/gt/commit/ebb6c9efa403b2b6b2ec84521398a05825eb1ff0) Thanks [@fernando-aviles](https://github.com/fernando-aviles)! - Add Belarusian (`be`), Irish (`ga`), and Latin-script Serbian (`sr-Latn`). `sr-Latn` now resolves to itself instead of falling back to `sr`, which is Cyrillic by default.
8
+
9
+ - Updated dependencies []:
10
+ - generaltranslation@9.5.5
11
+
12
+ ## 2.1.40
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies []:
17
+ - generaltranslation@9.5.4
18
+
3
19
  ## 2.1.39
4
20
 
5
21
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -14,6 +14,7 @@ const supportedLocales = {
14
14
  "ar-SA"
15
15
  ],
16
16
  az: ["az"],
17
+ be: ["be"],
17
18
  bg: ["bg"],
18
19
  bn: ["bn"],
19
20
  bs: ["bs"],
@@ -69,6 +70,7 @@ const supportedLocales = {
69
70
  "fr-CH",
70
71
  "fr-SN"
71
72
  ],
73
+ ga: ["ga"],
72
74
  gl: ["gl", "gl-ES"],
73
75
  gu: ["gu"],
74
76
  ha: ["ha"],
@@ -120,7 +122,7 @@ const supportedLocales = {
120
122
  sl: ["sl"],
121
123
  so: ["so"],
122
124
  sq: ["sq"],
123
- sr: ["sr"],
125
+ sr: ["sr", "sr-Latn"],
124
126
  sv: ["sv"],
125
127
  sw: [
126
128
  "sw",
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/supportedLocales.ts","../src/index.ts"],"sourcesContent":["const supportedLocales = {\n af: ['af'], // Afrikaans\n am: ['am'], // Amharic\n ar: [\n // Arabic\n 'ar',\n 'ar-AE', // United Arab Emirates\n 'ar-EG', // Egypt\n 'ar-LB', // Lebanon\n 'ar-MA', // Morocco\n 'ar-OM', // Oman\n 'ar-SA', // Saudi Arabia\n ],\n az: ['az'], // Azerbaijani\n bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: [\n // Catalan\n 'ca',\n 'ca-ES', // Spain\n ],\n cnr: ['cnr'], // Montenegrin\n cs: ['cs'], // Czech\n cy: ['cy'], // Welsh\n da: ['da'], // Danish\n de: [\n // German\n 'de',\n 'de-DE', // Germany\n 'de-AT', // Austria\n 'de-CH', // Switzerland\n ],\n el: [\n // Greek\n 'el',\n 'el-GR', // Greece\n 'el-CY', // Cyprus\n ],\n en: [\n // English\n 'en',\n 'en-AU', // Australia\n 'en-CA', // Canada\n 'en-GB', // United Kingdom\n 'en-MX', // Mexico\n 'en-NZ', // New Zealand\n 'en-US', // United States\n ],\n eo: ['eo'], // Esperanto\n es: [\n // Spanish\n 'es',\n 'es-ES', // Spain\n 'es-419', // Latin America\n 'es-AR', // Argentina\n 'es-CL', // Chile\n 'es-CO', // Colombia\n 'es-MX', // Mexico\n 'es-PE', // Peru\n 'es-US', // United States\n 'es-VE', // Venezuela\n ],\n et: ['et'], // Estonian\n eu: [\n // Basque\n 'eu',\n 'eu-ES', // Spain\n ],\n fa: ['fa'], // Persian\n fi: ['fi'], // Finnish\n fil: ['fil'], // Filipino\n fr: [\n // French\n 'fr',\n 'fr-FR', // France\n 'fr-BE', // Belgium\n 'fr-CM', // Cameroon\n 'fr-CA', // Canada\n 'fr-CH', // Switzerland\n 'fr-SN', // Senegal\n ],\n gl: [\n // Galician\n 'gl',\n 'gl-ES', // Spain\n ],\n gu: ['gu'], // Gujarati\n ha: ['ha'], // Hausa\n hi: ['hi'], // Hindi\n he: ['he'], // Hebrew\n hr: ['hr'], // Croatian\n hu: ['hu'], // Hungarian\n hy: ['hy'], // Armenian\n id: ['id'], // Indonesian\n ig: ['ig'], // Igbo\n is: ['is'], // Icelandic\n it: [\n // Italian\n 'it',\n 'it-IT', // Italy\n 'it-CH', // Switzerland\n ],\n ja: ['ja'], // Japanese\n ka: ['ka'], // Georgian\n kk: ['kk'], // Kazakh\n kn: ['kn'], // Kannada\n ko: ['ko'], // Korean\n la: ['la'], // Latin\n lt: ['lt'], // Lithuanian\n lv: ['lv'], // Latvian\n mk: ['mk'], // Macedonian\n ml: ['ml'], // Malayalam\n mn: ['mn'], // Mongolian\n mr: ['mr'], // Marathi\n ms: ['ms'], // Malay\n my: ['my'], // Burmese\n nl: [\n // Dutch\n 'nl',\n 'nl-NL', // Netherlands\n 'nl-BE', // Belgium\n ],\n nb: [\n // Norwegian Bokmål\n 'nb',\n 'nb-NO', // Norway\n ],\n no: [\n // Norwegian\n 'no',\n 'no-NO', // Norway\n ],\n nn: [\n // Norwegian Nynorsk\n 'nn',\n 'nn-NO', // Norway\n ],\n pa: ['pa'], // Punjabi\n pl: ['pl'], // Polish\n pt: [\n // Portuguese\n 'pt',\n 'pt-BR', // Brazil\n 'pt-PT', // Portugal\n ],\n ro: ['ro'], // Romanian\n ru: ['ru'], // Russian\n sk: ['sk'], // Slovak\n sl: ['sl'], // Slovenian\n so: ['so'], // Somali\n sq: ['sq'], // Albanian\n sr: ['sr'], // Serbian\n sv: ['sv'], // Swedish\n sw: [\n // Swahili\n 'sw',\n 'sw-KE', // Kenya\n 'sw-TZ', // Tanzania\n ],\n ta: ['ta'], // Tamil\n te: ['te'], // Telugu\n th: ['th'], // Thai\n tl: ['tl'], // Tagalog\n tr: ['tr'], // Turkish\n uk: ['uk'], // Ukrainian\n ur: ['ur'], // Urdu\n uz: ['uz'], // Uzbek\n vi: ['vi'], // Vietnamese\n yo: ['yo'], // Yoruba\n zgh: ['zgh'], // Standard Moroccan Tamazight\n zh: [\n // Chinese\n 'zh',\n 'zh-CN', // China\n 'zh-Hans', // Simplified Chinese\n 'zh-Hant', // Traditional Chinese\n 'zh-HK', // Hong Kong\n 'zh-SG', // Singapore\n 'zh-TW', // Taiwan\n ],\n // Experimental custom locales\n // (possible custom locales, qaa-qtz)\n // Do not use unless you are prepared for strange results\n qbr: ['qbr'],\n} as {\n [language: string]: string[];\n};\n\nexport default supportedLocales;\n","import supportedLocales from './supportedLocales';\nimport {\n getLocaleProperties,\n isValidLocale,\n standardizeLocale,\n} from 'generaltranslation';\n\n/**\n * @function getSupportedLocale\n * @description\n * Takes an arbitrary locale string, validates and standardizes it, and then attempts to map it\n * to a supported locale code based on a predefined list of locales. If the exact locale is supported,\n * it returns that locale directly. Otherwise, it attempts to find a compatible fallback by:\n * 1. Checking if the language portion is supported.\n * 2. Checking if a minimized form (e.g. \"en\" for \"en-US\") is supported.\n * If no supported match is found, it returns null.\n *\n * @param {string} locale - The locale string to check (e.g., \"en-Latn-US\").\n * @returns {string | null} A valid supported locale code if matched, otherwise null.\n */\nexport function getSupportedLocale(locale: string): string | null {\n // Validate and standardize\n if (!isValidLocale(locale)) return null;\n locale = standardizeLocale(locale);\n\n // Check if there's support for the general language code\n const { languageCode, ...codes } = getLocaleProperties(locale);\n\n if (supportedLocales[languageCode]?.length) {\n const exactSupportedLocales = supportedLocales[languageCode];\n\n const getMatchingCode = ({\n locale,\n languageCode,\n minimizedCode,\n regionCode,\n scriptCode,\n }: {\n locale: string;\n languageCode: string;\n minimizedCode: string;\n regionCode: string;\n scriptCode: string;\n }) => {\n const locales = [\n locale, // If the full locale is supported under this language category\n `${languageCode}-${regionCode}`, // Attempt to match parts\n `${languageCode}-${scriptCode}`,\n minimizedCode, // If a minimized variant of this locale is supported\n ];\n for (const l of locales) {\n if (exactSupportedLocales.includes(l)) return l;\n }\n return null;\n };\n\n const matchingCode =\n getMatchingCode({ locale, languageCode, ...codes }) ||\n getMatchingCode({\n locale: languageCode,\n ...getLocaleProperties(languageCode),\n });\n return matchingCode;\n }\n\n // No match found; return null\n return null;\n}\n\n/**\n * Generates a sorted list of supported locales.\n * @returns {string[]} A sorted array containing the supported base languages and their specific locales.\n */\nexport function listSupportedLocales(): string[] {\n const list: string[] = [];\n for (const localeList of Object.values(supportedLocales)) {\n list.push(...localeList); // Add each locale in the list\n }\n return list.sort();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/supportedLocales.ts","../src/index.ts"],"sourcesContent":["const supportedLocales = {\n af: ['af'], // Afrikaans\n am: ['am'], // Amharic\n ar: [\n // Arabic\n 'ar',\n 'ar-AE', // United Arab Emirates\n 'ar-EG', // Egypt\n 'ar-LB', // Lebanon\n 'ar-MA', // Morocco\n 'ar-OM', // Oman\n 'ar-SA', // Saudi Arabia\n ],\n az: ['az'], // Azerbaijani\n be: ['be'], // Belarusian\n bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: [\n // Catalan\n 'ca',\n 'ca-ES', // Spain\n ],\n cnr: ['cnr'], // Montenegrin\n cs: ['cs'], // Czech\n cy: ['cy'], // Welsh\n da: ['da'], // Danish\n de: [\n // German\n 'de',\n 'de-DE', // Germany\n 'de-AT', // Austria\n 'de-CH', // Switzerland\n ],\n el: [\n // Greek\n 'el',\n 'el-GR', // Greece\n 'el-CY', // Cyprus\n ],\n en: [\n // English\n 'en',\n 'en-AU', // Australia\n 'en-CA', // Canada\n 'en-GB', // United Kingdom\n 'en-MX', // Mexico\n 'en-NZ', // New Zealand\n 'en-US', // United States\n ],\n eo: ['eo'], // Esperanto\n es: [\n // Spanish\n 'es',\n 'es-ES', // Spain\n 'es-419', // Latin America\n 'es-AR', // Argentina\n 'es-CL', // Chile\n 'es-CO', // Colombia\n 'es-MX', // Mexico\n 'es-PE', // Peru\n 'es-US', // United States\n 'es-VE', // Venezuela\n ],\n et: ['et'], // Estonian\n eu: [\n // Basque\n 'eu',\n 'eu-ES', // Spain\n ],\n fa: ['fa'], // Persian\n fi: ['fi'], // Finnish\n fil: ['fil'], // Filipino\n fr: [\n // French\n 'fr',\n 'fr-FR', // France\n 'fr-BE', // Belgium\n 'fr-CM', // Cameroon\n 'fr-CA', // Canada\n 'fr-CH', // Switzerland\n 'fr-SN', // Senegal\n ],\n ga: ['ga'], // Irish\n gl: [\n // Galician\n 'gl',\n 'gl-ES', // Spain\n ],\n gu: ['gu'], // Gujarati\n ha: ['ha'], // Hausa\n hi: ['hi'], // Hindi\n he: ['he'], // Hebrew\n hr: ['hr'], // Croatian\n hu: ['hu'], // Hungarian\n hy: ['hy'], // Armenian\n id: ['id'], // Indonesian\n ig: ['ig'], // Igbo\n is: ['is'], // Icelandic\n it: [\n // Italian\n 'it',\n 'it-IT', // Italy\n 'it-CH', // Switzerland\n ],\n ja: ['ja'], // Japanese\n ka: ['ka'], // Georgian\n kk: ['kk'], // Kazakh\n kn: ['kn'], // Kannada\n ko: ['ko'], // Korean\n la: ['la'], // Latin\n lt: ['lt'], // Lithuanian\n lv: ['lv'], // Latvian\n mk: ['mk'], // Macedonian\n ml: ['ml'], // Malayalam\n mn: ['mn'], // Mongolian\n mr: ['mr'], // Marathi\n ms: ['ms'], // Malay\n my: ['my'], // Burmese\n nl: [\n // Dutch\n 'nl',\n 'nl-NL', // Netherlands\n 'nl-BE', // Belgium\n ],\n nb: [\n // Norwegian Bokmål\n 'nb',\n 'nb-NO', // Norway\n ],\n no: [\n // Norwegian\n 'no',\n 'no-NO', // Norway\n ],\n nn: [\n // Norwegian Nynorsk\n 'nn',\n 'nn-NO', // Norway\n ],\n pa: ['pa'], // Punjabi\n pl: ['pl'], // Polish\n pt: [\n // Portuguese\n 'pt',\n 'pt-BR', // Brazil\n 'pt-PT', // Portugal\n ],\n ro: ['ro'], // Romanian\n ru: ['ru'], // Russian\n sk: ['sk'], // Slovak\n sl: ['sl'], // Slovenian\n so: ['so'], // Somali\n sq: ['sq'], // Albanian\n sr: [\n // Serbian\n 'sr',\n 'sr-Latn', // Latin script\n ],\n sv: ['sv'], // Swedish\n sw: [\n // Swahili\n 'sw',\n 'sw-KE', // Kenya\n 'sw-TZ', // Tanzania\n ],\n ta: ['ta'], // Tamil\n te: ['te'], // Telugu\n th: ['th'], // Thai\n tl: ['tl'], // Tagalog\n tr: ['tr'], // Turkish\n uk: ['uk'], // Ukrainian\n ur: ['ur'], // Urdu\n uz: ['uz'], // Uzbek\n vi: ['vi'], // Vietnamese\n yo: ['yo'], // Yoruba\n zgh: ['zgh'], // Standard Moroccan Tamazight\n zh: [\n // Chinese\n 'zh',\n 'zh-CN', // China\n 'zh-Hans', // Simplified Chinese\n 'zh-Hant', // Traditional Chinese\n 'zh-HK', // Hong Kong\n 'zh-SG', // Singapore\n 'zh-TW', // Taiwan\n ],\n // Experimental custom locales\n // (possible custom locales, qaa-qtz)\n // Do not use unless you are prepared for strange results\n qbr: ['qbr'],\n} as {\n [language: string]: string[];\n};\n\nexport default supportedLocales;\n","import supportedLocales from './supportedLocales';\nimport {\n getLocaleProperties,\n isValidLocale,\n standardizeLocale,\n} from 'generaltranslation';\n\n/**\n * @function getSupportedLocale\n * @description\n * Takes an arbitrary locale string, validates and standardizes it, and then attempts to map it\n * to a supported locale code based on a predefined list of locales. If the exact locale is supported,\n * it returns that locale directly. Otherwise, it attempts to find a compatible fallback by:\n * 1. Checking if the language portion is supported.\n * 2. Checking if a minimized form (e.g. \"en\" for \"en-US\") is supported.\n * If no supported match is found, it returns null.\n *\n * @param {string} locale - The locale string to check (e.g., \"en-Latn-US\").\n * @returns {string | null} A valid supported locale code if matched, otherwise null.\n */\nexport function getSupportedLocale(locale: string): string | null {\n // Validate and standardize\n if (!isValidLocale(locale)) return null;\n locale = standardizeLocale(locale);\n\n // Check if there's support for the general language code\n const { languageCode, ...codes } = getLocaleProperties(locale);\n\n if (supportedLocales[languageCode]?.length) {\n const exactSupportedLocales = supportedLocales[languageCode];\n\n const getMatchingCode = ({\n locale,\n languageCode,\n minimizedCode,\n regionCode,\n scriptCode,\n }: {\n locale: string;\n languageCode: string;\n minimizedCode: string;\n regionCode: string;\n scriptCode: string;\n }) => {\n const locales = [\n locale, // If the full locale is supported under this language category\n `${languageCode}-${regionCode}`, // Attempt to match parts\n `${languageCode}-${scriptCode}`,\n minimizedCode, // If a minimized variant of this locale is supported\n ];\n for (const l of locales) {\n if (exactSupportedLocales.includes(l)) return l;\n }\n return null;\n };\n\n const matchingCode =\n getMatchingCode({ locale, languageCode, ...codes }) ||\n getMatchingCode({\n locale: languageCode,\n ...getLocaleProperties(languageCode),\n });\n return matchingCode;\n }\n\n // No match found; return null\n return null;\n}\n\n/**\n * Generates a sorted list of supported locales.\n * @returns {string[]} A sorted array containing the supported base languages and their specific locales.\n */\nexport function listSupportedLocales(): string[] {\n const list: string[] = [];\n for (const localeList of Object.values(supportedLocales)) {\n list.push(...localeList); // Add each locale in the list\n }\n return list.sort();\n}\n"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -13,6 +13,7 @@ const supportedLocales = {
13
13
  "ar-SA"
14
14
  ],
15
15
  az: ["az"],
16
+ be: ["be"],
16
17
  bg: ["bg"],
17
18
  bn: ["bn"],
18
19
  bs: ["bs"],
@@ -68,6 +69,7 @@ const supportedLocales = {
68
69
  "fr-CH",
69
70
  "fr-SN"
70
71
  ],
72
+ ga: ["ga"],
71
73
  gl: ["gl", "gl-ES"],
72
74
  gu: ["gu"],
73
75
  ha: ["ha"],
@@ -119,7 +121,7 @@ const supportedLocales = {
119
121
  sl: ["sl"],
120
122
  so: ["so"],
121
123
  sq: ["sq"],
122
- sr: ["sr"],
124
+ sr: ["sr", "sr-Latn"],
123
125
  sv: ["sv"],
124
126
  sw: [
125
127
  "sw",
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/supportedLocales.ts","../src/index.ts"],"sourcesContent":["const supportedLocales = {\n af: ['af'], // Afrikaans\n am: ['am'], // Amharic\n ar: [\n // Arabic\n 'ar',\n 'ar-AE', // United Arab Emirates\n 'ar-EG', // Egypt\n 'ar-LB', // Lebanon\n 'ar-MA', // Morocco\n 'ar-OM', // Oman\n 'ar-SA', // Saudi Arabia\n ],\n az: ['az'], // Azerbaijani\n bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: [\n // Catalan\n 'ca',\n 'ca-ES', // Spain\n ],\n cnr: ['cnr'], // Montenegrin\n cs: ['cs'], // Czech\n cy: ['cy'], // Welsh\n da: ['da'], // Danish\n de: [\n // German\n 'de',\n 'de-DE', // Germany\n 'de-AT', // Austria\n 'de-CH', // Switzerland\n ],\n el: [\n // Greek\n 'el',\n 'el-GR', // Greece\n 'el-CY', // Cyprus\n ],\n en: [\n // English\n 'en',\n 'en-AU', // Australia\n 'en-CA', // Canada\n 'en-GB', // United Kingdom\n 'en-MX', // Mexico\n 'en-NZ', // New Zealand\n 'en-US', // United States\n ],\n eo: ['eo'], // Esperanto\n es: [\n // Spanish\n 'es',\n 'es-ES', // Spain\n 'es-419', // Latin America\n 'es-AR', // Argentina\n 'es-CL', // Chile\n 'es-CO', // Colombia\n 'es-MX', // Mexico\n 'es-PE', // Peru\n 'es-US', // United States\n 'es-VE', // Venezuela\n ],\n et: ['et'], // Estonian\n eu: [\n // Basque\n 'eu',\n 'eu-ES', // Spain\n ],\n fa: ['fa'], // Persian\n fi: ['fi'], // Finnish\n fil: ['fil'], // Filipino\n fr: [\n // French\n 'fr',\n 'fr-FR', // France\n 'fr-BE', // Belgium\n 'fr-CM', // Cameroon\n 'fr-CA', // Canada\n 'fr-CH', // Switzerland\n 'fr-SN', // Senegal\n ],\n gl: [\n // Galician\n 'gl',\n 'gl-ES', // Spain\n ],\n gu: ['gu'], // Gujarati\n ha: ['ha'], // Hausa\n hi: ['hi'], // Hindi\n he: ['he'], // Hebrew\n hr: ['hr'], // Croatian\n hu: ['hu'], // Hungarian\n hy: ['hy'], // Armenian\n id: ['id'], // Indonesian\n ig: ['ig'], // Igbo\n is: ['is'], // Icelandic\n it: [\n // Italian\n 'it',\n 'it-IT', // Italy\n 'it-CH', // Switzerland\n ],\n ja: ['ja'], // Japanese\n ka: ['ka'], // Georgian\n kk: ['kk'], // Kazakh\n kn: ['kn'], // Kannada\n ko: ['ko'], // Korean\n la: ['la'], // Latin\n lt: ['lt'], // Lithuanian\n lv: ['lv'], // Latvian\n mk: ['mk'], // Macedonian\n ml: ['ml'], // Malayalam\n mn: ['mn'], // Mongolian\n mr: ['mr'], // Marathi\n ms: ['ms'], // Malay\n my: ['my'], // Burmese\n nl: [\n // Dutch\n 'nl',\n 'nl-NL', // Netherlands\n 'nl-BE', // Belgium\n ],\n nb: [\n // Norwegian Bokmål\n 'nb',\n 'nb-NO', // Norway\n ],\n no: [\n // Norwegian\n 'no',\n 'no-NO', // Norway\n ],\n nn: [\n // Norwegian Nynorsk\n 'nn',\n 'nn-NO', // Norway\n ],\n pa: ['pa'], // Punjabi\n pl: ['pl'], // Polish\n pt: [\n // Portuguese\n 'pt',\n 'pt-BR', // Brazil\n 'pt-PT', // Portugal\n ],\n ro: ['ro'], // Romanian\n ru: ['ru'], // Russian\n sk: ['sk'], // Slovak\n sl: ['sl'], // Slovenian\n so: ['so'], // Somali\n sq: ['sq'], // Albanian\n sr: ['sr'], // Serbian\n sv: ['sv'], // Swedish\n sw: [\n // Swahili\n 'sw',\n 'sw-KE', // Kenya\n 'sw-TZ', // Tanzania\n ],\n ta: ['ta'], // Tamil\n te: ['te'], // Telugu\n th: ['th'], // Thai\n tl: ['tl'], // Tagalog\n tr: ['tr'], // Turkish\n uk: ['uk'], // Ukrainian\n ur: ['ur'], // Urdu\n uz: ['uz'], // Uzbek\n vi: ['vi'], // Vietnamese\n yo: ['yo'], // Yoruba\n zgh: ['zgh'], // Standard Moroccan Tamazight\n zh: [\n // Chinese\n 'zh',\n 'zh-CN', // China\n 'zh-Hans', // Simplified Chinese\n 'zh-Hant', // Traditional Chinese\n 'zh-HK', // Hong Kong\n 'zh-SG', // Singapore\n 'zh-TW', // Taiwan\n ],\n // Experimental custom locales\n // (possible custom locales, qaa-qtz)\n // Do not use unless you are prepared for strange results\n qbr: ['qbr'],\n} as {\n [language: string]: string[];\n};\n\nexport default supportedLocales;\n","import supportedLocales from './supportedLocales';\nimport {\n getLocaleProperties,\n isValidLocale,\n standardizeLocale,\n} from 'generaltranslation';\n\n/**\n * @function getSupportedLocale\n * @description\n * Takes an arbitrary locale string, validates and standardizes it, and then attempts to map it\n * to a supported locale code based on a predefined list of locales. If the exact locale is supported,\n * it returns that locale directly. Otherwise, it attempts to find a compatible fallback by:\n * 1. Checking if the language portion is supported.\n * 2. Checking if a minimized form (e.g. \"en\" for \"en-US\") is supported.\n * If no supported match is found, it returns null.\n *\n * @param {string} locale - The locale string to check (e.g., \"en-Latn-US\").\n * @returns {string | null} A valid supported locale code if matched, otherwise null.\n */\nexport function getSupportedLocale(locale: string): string | null {\n // Validate and standardize\n if (!isValidLocale(locale)) return null;\n locale = standardizeLocale(locale);\n\n // Check if there's support for the general language code\n const { languageCode, ...codes } = getLocaleProperties(locale);\n\n if (supportedLocales[languageCode]?.length) {\n const exactSupportedLocales = supportedLocales[languageCode];\n\n const getMatchingCode = ({\n locale,\n languageCode,\n minimizedCode,\n regionCode,\n scriptCode,\n }: {\n locale: string;\n languageCode: string;\n minimizedCode: string;\n regionCode: string;\n scriptCode: string;\n }) => {\n const locales = [\n locale, // If the full locale is supported under this language category\n `${languageCode}-${regionCode}`, // Attempt to match parts\n `${languageCode}-${scriptCode}`,\n minimizedCode, // If a minimized variant of this locale is supported\n ];\n for (const l of locales) {\n if (exactSupportedLocales.includes(l)) return l;\n }\n return null;\n };\n\n const matchingCode =\n getMatchingCode({ locale, languageCode, ...codes }) ||\n getMatchingCode({\n locale: languageCode,\n ...getLocaleProperties(languageCode),\n });\n return matchingCode;\n }\n\n // No match found; return null\n return null;\n}\n\n/**\n * Generates a sorted list of supported locales.\n * @returns {string[]} A sorted array containing the supported base languages and their specific locales.\n */\nexport function listSupportedLocales(): string[] {\n const list: string[] = [];\n for (const localeList of Object.values(supportedLocales)) {\n list.push(...localeList); // Add each locale in the list\n }\n return list.sort();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/supportedLocales.ts","../src/index.ts"],"sourcesContent":["const supportedLocales = {\n af: ['af'], // Afrikaans\n am: ['am'], // Amharic\n ar: [\n // Arabic\n 'ar',\n 'ar-AE', // United Arab Emirates\n 'ar-EG', // Egypt\n 'ar-LB', // Lebanon\n 'ar-MA', // Morocco\n 'ar-OM', // Oman\n 'ar-SA', // Saudi Arabia\n ],\n az: ['az'], // Azerbaijani\n be: ['be'], // Belarusian\n bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: [\n // Catalan\n 'ca',\n 'ca-ES', // Spain\n ],\n cnr: ['cnr'], // Montenegrin\n cs: ['cs'], // Czech\n cy: ['cy'], // Welsh\n da: ['da'], // Danish\n de: [\n // German\n 'de',\n 'de-DE', // Germany\n 'de-AT', // Austria\n 'de-CH', // Switzerland\n ],\n el: [\n // Greek\n 'el',\n 'el-GR', // Greece\n 'el-CY', // Cyprus\n ],\n en: [\n // English\n 'en',\n 'en-AU', // Australia\n 'en-CA', // Canada\n 'en-GB', // United Kingdom\n 'en-MX', // Mexico\n 'en-NZ', // New Zealand\n 'en-US', // United States\n ],\n eo: ['eo'], // Esperanto\n es: [\n // Spanish\n 'es',\n 'es-ES', // Spain\n 'es-419', // Latin America\n 'es-AR', // Argentina\n 'es-CL', // Chile\n 'es-CO', // Colombia\n 'es-MX', // Mexico\n 'es-PE', // Peru\n 'es-US', // United States\n 'es-VE', // Venezuela\n ],\n et: ['et'], // Estonian\n eu: [\n // Basque\n 'eu',\n 'eu-ES', // Spain\n ],\n fa: ['fa'], // Persian\n fi: ['fi'], // Finnish\n fil: ['fil'], // Filipino\n fr: [\n // French\n 'fr',\n 'fr-FR', // France\n 'fr-BE', // Belgium\n 'fr-CM', // Cameroon\n 'fr-CA', // Canada\n 'fr-CH', // Switzerland\n 'fr-SN', // Senegal\n ],\n ga: ['ga'], // Irish\n gl: [\n // Galician\n 'gl',\n 'gl-ES', // Spain\n ],\n gu: ['gu'], // Gujarati\n ha: ['ha'], // Hausa\n hi: ['hi'], // Hindi\n he: ['he'], // Hebrew\n hr: ['hr'], // Croatian\n hu: ['hu'], // Hungarian\n hy: ['hy'], // Armenian\n id: ['id'], // Indonesian\n ig: ['ig'], // Igbo\n is: ['is'], // Icelandic\n it: [\n // Italian\n 'it',\n 'it-IT', // Italy\n 'it-CH', // Switzerland\n ],\n ja: ['ja'], // Japanese\n ka: ['ka'], // Georgian\n kk: ['kk'], // Kazakh\n kn: ['kn'], // Kannada\n ko: ['ko'], // Korean\n la: ['la'], // Latin\n lt: ['lt'], // Lithuanian\n lv: ['lv'], // Latvian\n mk: ['mk'], // Macedonian\n ml: ['ml'], // Malayalam\n mn: ['mn'], // Mongolian\n mr: ['mr'], // Marathi\n ms: ['ms'], // Malay\n my: ['my'], // Burmese\n nl: [\n // Dutch\n 'nl',\n 'nl-NL', // Netherlands\n 'nl-BE', // Belgium\n ],\n nb: [\n // Norwegian Bokmål\n 'nb',\n 'nb-NO', // Norway\n ],\n no: [\n // Norwegian\n 'no',\n 'no-NO', // Norway\n ],\n nn: [\n // Norwegian Nynorsk\n 'nn',\n 'nn-NO', // Norway\n ],\n pa: ['pa'], // Punjabi\n pl: ['pl'], // Polish\n pt: [\n // Portuguese\n 'pt',\n 'pt-BR', // Brazil\n 'pt-PT', // Portugal\n ],\n ro: ['ro'], // Romanian\n ru: ['ru'], // Russian\n sk: ['sk'], // Slovak\n sl: ['sl'], // Slovenian\n so: ['so'], // Somali\n sq: ['sq'], // Albanian\n sr: [\n // Serbian\n 'sr',\n 'sr-Latn', // Latin script\n ],\n sv: ['sv'], // Swedish\n sw: [\n // Swahili\n 'sw',\n 'sw-KE', // Kenya\n 'sw-TZ', // Tanzania\n ],\n ta: ['ta'], // Tamil\n te: ['te'], // Telugu\n th: ['th'], // Thai\n tl: ['tl'], // Tagalog\n tr: ['tr'], // Turkish\n uk: ['uk'], // Ukrainian\n ur: ['ur'], // Urdu\n uz: ['uz'], // Uzbek\n vi: ['vi'], // Vietnamese\n yo: ['yo'], // Yoruba\n zgh: ['zgh'], // Standard Moroccan Tamazight\n zh: [\n // Chinese\n 'zh',\n 'zh-CN', // China\n 'zh-Hans', // Simplified Chinese\n 'zh-Hant', // Traditional Chinese\n 'zh-HK', // Hong Kong\n 'zh-SG', // Singapore\n 'zh-TW', // Taiwan\n ],\n // Experimental custom locales\n // (possible custom locales, qaa-qtz)\n // Do not use unless you are prepared for strange results\n qbr: ['qbr'],\n} as {\n [language: string]: string[];\n};\n\nexport default supportedLocales;\n","import supportedLocales from './supportedLocales';\nimport {\n getLocaleProperties,\n isValidLocale,\n standardizeLocale,\n} from 'generaltranslation';\n\n/**\n * @function getSupportedLocale\n * @description\n * Takes an arbitrary locale string, validates and standardizes it, and then attempts to map it\n * to a supported locale code based on a predefined list of locales. If the exact locale is supported,\n * it returns that locale directly. Otherwise, it attempts to find a compatible fallback by:\n * 1. Checking if the language portion is supported.\n * 2. Checking if a minimized form (e.g. \"en\" for \"en-US\") is supported.\n * If no supported match is found, it returns null.\n *\n * @param {string} locale - The locale string to check (e.g., \"en-Latn-US\").\n * @returns {string | null} A valid supported locale code if matched, otherwise null.\n */\nexport function getSupportedLocale(locale: string): string | null {\n // Validate and standardize\n if (!isValidLocale(locale)) return null;\n locale = standardizeLocale(locale);\n\n // Check if there's support for the general language code\n const { languageCode, ...codes } = getLocaleProperties(locale);\n\n if (supportedLocales[languageCode]?.length) {\n const exactSupportedLocales = supportedLocales[languageCode];\n\n const getMatchingCode = ({\n locale,\n languageCode,\n minimizedCode,\n regionCode,\n scriptCode,\n }: {\n locale: string;\n languageCode: string;\n minimizedCode: string;\n regionCode: string;\n scriptCode: string;\n }) => {\n const locales = [\n locale, // If the full locale is supported under this language category\n `${languageCode}-${regionCode}`, // Attempt to match parts\n `${languageCode}-${scriptCode}`,\n minimizedCode, // If a minimized variant of this locale is supported\n ];\n for (const l of locales) {\n if (exactSupportedLocales.includes(l)) return l;\n }\n return null;\n };\n\n const matchingCode =\n getMatchingCode({ locale, languageCode, ...codes }) ||\n getMatchingCode({\n locale: languageCode,\n ...getLocaleProperties(languageCode),\n });\n return matchingCode;\n }\n\n // No match found; return null\n return null;\n}\n\n/**\n * Generates a sorted list of supported locales.\n * @returns {string[]} A sorted array containing the supported base languages and their specific locales.\n */\nexport function listSupportedLocales(): string[] {\n const list: string[] = [];\n for (const localeList of Object.values(supportedLocales)) {\n list.push(...localeList); // Add each locale in the list\n }\n return list.sort();\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/supported-locales",
3
- "version": "2.1.39",
3
+ "version": "2.1.41",
4
4
  "description": "List of supported locales for General Translation",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -38,7 +38,7 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "generaltranslation": "9.5.3"
41
+ "generaltranslation": "9.5.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "tsdown": "^0.21.10",