@generaltranslation/supported-locales 2.1.4 → 2.1.7

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,126 @@
1
1
  # @generaltranslation/supported-locales
2
2
 
3
+ ## 2.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1873](https://github.com/generaltranslation/gt/pull/1873) [`2e57a08`](https://github.com/generaltranslation/gt/commit/2e57a08a3f8539400f0aef5b90fff25c0a44dce1) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Retrigger package publication after repairing release workspace dependency resolution.
8
+
9
+ ## 2.1.6
10
+
11
+ ### Patch Changes
12
+
13
+ - [#1866](https://github.com/generaltranslation/gt/pull/1866) [`53e61ab`](https://github.com/generaltranslation/gt/commit/53e61abbb4522631f252bcd268eae9c079dd9967) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Recover the stable releases skipped after the Odysseus version regression and publish the accumulated package changes under new npm versions.
14
+
15
+ ## 2.1.3
16
+
17
+ ### Patch Changes
18
+
19
+ - [#1840](https://github.com/generaltranslation/gt/pull/1840) [`7db86bd`](https://github.com/generaltranslation/gt/commit/7db86bd92be5d09a2da10133dbb873248b0e5a5c) Thanks [@fernando-aviles](https://github.com/fernando-aviles)! - Expand supported locales
20
+
21
+ ## 2.1.2
22
+
23
+ ### Patch Changes
24
+
25
+ - [#1439](https://github.com/generaltranslation/gt/pull/1439) [`d48604e`](https://github.com/generaltranslation/gt/commit/d48604e2171aa84c76873cacb6eb8d43c2f17546) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Trigger an odysseus prerelease patch for all publishable packages.
26
+
27
+ - Updated dependencies [[`b72c30b`](https://github.com/generaltranslation/gt/commit/b72c30bc603562310a51b656fb003f1486315a8a), [`72e9e16`](https://github.com/generaltranslation/gt/commit/72e9e1643797be8e4ae1453897fd0b023fce2674), [`5adeede`](https://github.com/generaltranslation/gt/commit/5adeede157922d547a33a078d0f527f572c9a8b4), [`d48604e`](https://github.com/generaltranslation/gt/commit/d48604e2171aa84c76873cacb6eb8d43c2f17546), [`e12fb17`](https://github.com/generaltranslation/gt/commit/e12fb17d41cfa5fa231e64fe70423434739ea985), [`5752fe8`](https://github.com/generaltranslation/gt/commit/5752fe81bf5b5deaae878638e0de99959bf719be), [`97dc7f4`](https://github.com/generaltranslation/gt/commit/97dc7f4818476a319a54b1519e994a62d5a9a3a5), [`693288d`](https://github.com/generaltranslation/gt/commit/693288d632c42b923920a2fdd9ae2babc1bc28f5), [`2e85ebd`](https://github.com/generaltranslation/gt/commit/2e85ebd1528a4f99a8e36e1d8d6714a639040596), [`d5cf2d3`](https://github.com/generaltranslation/gt/commit/d5cf2d34f412ad49e8b2818fe788b870a5964d65), [`4986567`](https://github.com/generaltranslation/gt/commit/498656728741898a56ae348a536107bd92f95c04), [`795edc8`](https://github.com/generaltranslation/gt/commit/795edc8a2b3e91fc9801d726f4b5cd6fbbc98fb0)]:
28
+ - generaltranslation@9.0.0
29
+
30
+ ## 2.1.2-odysseus.6
31
+
32
+ ### Patch Changes
33
+
34
+ - Updated dependencies [b72c30b]
35
+ - Updated dependencies [d5cf2d3]
36
+ - generaltranslation@9.0.0-odysseus.6
37
+
38
+ ## 2.1.2-odysseus.5
39
+
40
+ ### Patch Changes
41
+
42
+ - Updated dependencies [72e9e16]
43
+ - Updated dependencies [5adeede]
44
+ - Updated dependencies [2e85ebd]
45
+ - generaltranslation@9.0.0-odysseus.5
46
+
47
+ ## 2.1.2-odysseus.4
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [26faa87]
52
+ - generaltranslation@9.0.0-odysseus.4
53
+
54
+ ## 2.1.2-odysseus.3
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [b1eef00]
59
+ - generaltranslation@9.0.0-odysseus.3
60
+
61
+ ## 2.1.2-odysseus.2
62
+
63
+ ### Patch Changes
64
+
65
+ - Updated dependencies [[`4b97bc3`](https://github.com/generaltranslation/gt/commit/4b97bc360b2869bbb6e5f214589ef84f6d58a660), [`020c6bd`](https://github.com/generaltranslation/gt/commit/020c6bdd8c604bc07d80d75e8ea2ace1e70d7447)]:
66
+ - generaltranslation@9.0.0-odysseus.2
67
+
68
+ ## 2.1.2-odysseus.1
69
+
70
+ ### Patch Changes
71
+
72
+ - Updated dependencies [[`87d6320`](https://github.com/generaltranslation/gt/commit/87d6320d271a1bf455f4e283dc1bb23893c7ba64)]:
73
+ - generaltranslation@9.0.0-odysseus.1
74
+
75
+ ## 2.1.2-odysseus.0
76
+
77
+ ### Patch Changes
78
+
79
+ - [#1508](https://github.com/generaltranslation/gt/pull/1508) [`cc1499d`](https://github.com/generaltranslation/gt/commit/cc1499d12789ffd7ee3c6ca20d2eec734a1c9575) Thanks [@ErnestM1234](https://github.com/ErnestM1234)! - Trigger an odysseus prerelease patch for all publishable packages.
80
+
81
+ - Updated dependencies [[`cc1499d`](https://github.com/generaltranslation/gt/commit/cc1499d12789ffd7ee3c6ca20d2eec734a1c9575), [`bd0d788`](https://github.com/generaltranslation/gt/commit/bd0d7883601a183a31b47b36ea4ea2dca69c62d0)]:
82
+ - generaltranslation@9.0.0-odysseus.0
83
+
84
+ ## 2.1.4
85
+
86
+ ### Patch Changes
87
+
88
+ - [#1653](https://github.com/generaltranslation/gt/pull/1653) [`a2a3dd0`](https://github.com/generaltranslation/gt/commit/a2a3dd0bcdce9abe360c406a12fc6bb3bc3ca181) Thanks [@fernando-aviles](https://github.com/fernando-aviles)! - Add `ar-OM`
89
+
90
+ ## 2.1.3
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [[`9709a2f`](https://github.com/generaltranslation/gt/commit/9709a2f2b97b9d8239298e39bb31e57692bbffd8)]:
95
+ - generaltranslation@8.2.18
96
+
97
+ ## 2.1.2
98
+
99
+ ### Patch Changes
100
+
101
+ - Updated dependencies [[`3197028`](https://github.com/generaltranslation/gt/commit/319702855a7b129f95217d41be9f2402680a2f01)]:
102
+ - generaltranslation@8.2.17
103
+
104
+ ## 2.1.1
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [[`e041312`](https://github.com/generaltranslation/gt/commit/e04131263dd61e469db977bcc196dc1283e773d0)]:
109
+ - generaltranslation@8.2.16
110
+
111
+ ## 2.1.0
112
+
113
+ ### Minor Changes
114
+
115
+ - [#1429](https://github.com/generaltranslation/gt/pull/1429) [`cc4edc1`](https://github.com/generaltranslation/gt/commit/cc4edc1e40d9977125bf6d053fb7f8cdbdd40b05) Thanks [@bgub](https://github.com/bgub)! - Add Esperanto to the supported locales list.
116
+
117
+ ## 2.1.5
118
+
119
+ ### Patch Changes
120
+
121
+ - Updated dependencies [[`6945a98`](https://github.com/generaltranslation/gt/commit/6945a9871ea260dd999dcb2246c48b21134721f6)]:
122
+ - generaltranslation@8.2.19
123
+
3
124
  ## 2.1.4
4
125
 
5
126
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -13,10 +13,12 @@ const supportedLocales = {
13
13
  "ar-OM",
14
14
  "ar-SA"
15
15
  ],
16
+ az: ["az"],
16
17
  bg: ["bg"],
17
18
  bn: ["bn"],
18
19
  bs: ["bs"],
19
- ca: ["ca"],
20
+ ca: ["ca", "ca-ES"],
21
+ cnr: ["cnr"],
20
22
  cs: ["cs"],
21
23
  cy: ["cy"],
22
24
  da: ["da"],
@@ -53,6 +55,7 @@ const supportedLocales = {
53
55
  "es-VE"
54
56
  ],
55
57
  et: ["et"],
58
+ eu: ["eu", "eu-ES"],
56
59
  fa: ["fa"],
57
60
  fi: ["fi"],
58
61
  fil: ["fil"],
@@ -65,6 +68,7 @@ const supportedLocales = {
65
68
  "fr-CH",
66
69
  "fr-SN"
67
70
  ],
71
+ gl: ["gl", "gl-ES"],
68
72
  gu: ["gu"],
69
73
  ha: ["ha"],
70
74
  hi: ["hi"],
@@ -132,6 +136,7 @@ const supportedLocales = {
132
136
  uz: ["uz"],
133
137
  vi: ["vi"],
134
138
  yo: ["yo"],
139
+ zgh: ["zgh"],
135
140
  zh: [
136
141
  "zh",
137
142
  "zh-CN",
@@ -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 bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: ['ca'], // Catalan\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-EL', // Greek\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-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 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 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 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 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-EL', // Greek\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-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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"}
package/dist/index.mjs CHANGED
@@ -12,10 +12,12 @@ const supportedLocales = {
12
12
  "ar-OM",
13
13
  "ar-SA"
14
14
  ],
15
+ az: ["az"],
15
16
  bg: ["bg"],
16
17
  bn: ["bn"],
17
18
  bs: ["bs"],
18
- ca: ["ca"],
19
+ ca: ["ca", "ca-ES"],
20
+ cnr: ["cnr"],
19
21
  cs: ["cs"],
20
22
  cy: ["cy"],
21
23
  da: ["da"],
@@ -52,6 +54,7 @@ const supportedLocales = {
52
54
  "es-VE"
53
55
  ],
54
56
  et: ["et"],
57
+ eu: ["eu", "eu-ES"],
55
58
  fa: ["fa"],
56
59
  fi: ["fi"],
57
60
  fil: ["fil"],
@@ -64,6 +67,7 @@ const supportedLocales = {
64
67
  "fr-CH",
65
68
  "fr-SN"
66
69
  ],
70
+ gl: ["gl", "gl-ES"],
67
71
  gu: ["gu"],
68
72
  ha: ["ha"],
69
73
  hi: ["hi"],
@@ -131,6 +135,7 @@ const supportedLocales = {
131
135
  uz: ["uz"],
132
136
  vi: ["vi"],
133
137
  yo: ["yo"],
138
+ zgh: ["zgh"],
134
139
  zh: [
135
140
  "zh",
136
141
  "zh-CN",
@@ -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 bg: ['bg'], // Bulgarian\n bn: ['bn'], // Bengali\n bs: ['bs'], // Bosnian\n ca: ['ca'], // Catalan\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-EL', // Greek\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-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 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 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 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 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-EL', // Greek\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-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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/supported-locales",
3
- "version": "2.1.4",
3
+ "version": "2.1.7",
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": "8.2.18"
41
+ "generaltranslation": "9.0.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "tsdown": "^0.21.10",