scratch-l10n 5.0.231 → 5.0.232

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.
Files changed (43) hide show
  1. package/.editorconfig +9 -0
  2. package/.github/PULL_REQUEST_TEMPLATE.md +53 -46
  3. package/.github/workflows/ci-cd.yml +5 -5
  4. package/.github/workflows/commitlint.yml +1 -1
  5. package/.github/workflows/daily-help-update.yml +4 -4
  6. package/.github/workflows/daily-tx-pull.yml +4 -4
  7. package/.github/workflows/signature-assistant.yml +3 -3
  8. package/.prettierignore +11 -0
  9. package/CHANGELOG.md +7 -0
  10. package/README.md +12 -12
  11. package/commitlint.config.js +3 -3
  12. package/dist/l10n.js +224 -232
  13. package/dist/l10n.js.map +1 -1
  14. package/dist/localeData.js +223 -232
  15. package/dist/localeData.js.map +1 -1
  16. package/dist/supportedLocales.js +123 -130
  17. package/dist/supportedLocales.js.map +1 -1
  18. package/eslint.config.mjs +13 -0
  19. package/lib/batch.js +10 -12
  20. package/lib/progress-logger.mjs +33 -33
  21. package/lib/transifex.js +145 -144
  22. package/lib/validate.mjs +32 -31
  23. package/package.json +7 -8
  24. package/prettier.config.mjs +3 -0
  25. package/release.config.js +13 -13
  26. package/renovate.json5 +3 -5
  27. package/scripts/build-data.mjs +33 -49
  28. package/scripts/build-i18n-src.js +29 -28
  29. package/scripts/freshdesk-api.js +129 -144
  30. package/scripts/help-utils.js +129 -139
  31. package/scripts/tx-pull-editor.mjs +54 -51
  32. package/scripts/tx-pull-help-articles.js +14 -14
  33. package/scripts/tx-pull-help-names.js +14 -14
  34. package/scripts/tx-pull-locale-articles.js +19 -19
  35. package/scripts/tx-pull-www.mjs +79 -76
  36. package/scripts/tx-push-help.mjs +87 -96
  37. package/scripts/tx-push-src.js +65 -65
  38. package/scripts/validate-extension-inputs.mjs +65 -68
  39. package/scripts/validate-translations.mjs +33 -29
  40. package/scripts/validate-www.mjs +45 -43
  41. package/src/index.mjs +4 -3
  42. package/src/locale-data.mjs +148 -150
  43. package/src/supported-locales.mjs +124 -131
@@ -1,144 +1,137 @@
1
1
  /**
2
2
  * Currently supported locales for the Scratch Project
3
- * @type {Object} Key Value pairs of locale code: Language name written in the language
3
+ * @type {object} Key Value pairs of locale code: Language name written in the language
4
4
  */
5
5
 
6
6
  const locales = {
7
- 'ab': {name: 'Аҧсшәа'},
8
- 'af': {name: 'Afrikaans'},
9
- 'ar': {name: 'العربية'},
10
- 'am': {name: 'አማርኛ'},
11
- 'an': {name: 'Aragonés'},
12
- 'ast': {name: 'Asturianu'},
13
- 'az': {name: 'Azeri'},
14
- 'id': {name: 'Bahasa Indonesia'},
15
- 'bn': {name: 'বাংলা'},
16
- 'be': {name: 'Беларуская'},
17
- 'bg': {name: 'Български'},
18
- 'ca': {name: 'Català'},
19
- 'cs': {name: 'Česky'},
20
- 'cy': {name: 'Cymraeg'},
21
- 'da': {name: 'Dansk'},
22
- 'de': {name: 'Deutsch'},
23
- 'et': {name: 'Eesti'},
24
- 'el': {name: 'Ελληνικά'},
25
- 'en': {name: 'English'},
26
- 'es': {name: 'Español (España)'},
27
- 'es-419': {name: 'Español Latinoamericano'},
28
- 'eo': {name: 'Esperanto'},
29
- 'eu': {name: 'Euskara'},
30
- 'fa': {name: 'فارسی'},
31
- 'fil': {name: 'Filipino'},
32
- 'fr': {name: 'Français'},
33
- 'fy': {name: 'Frysk'},
34
- 'ga': {name: 'Gaeilge'},
35
- 'gd': {name: 'Gàidhlig'},
36
- 'gl': {name: 'Galego'},
37
- 'ko': {name: '한국어'},
38
- 'ha': {name: 'Hausa'},
39
- 'hy': {name: 'Հայերեն'},
40
- 'he': {name: 'עִבְרִית'},
41
- 'hi': {name: 'हिंदी'},
42
- 'hr': {name: 'Hrvatski'},
43
- 'xh': {name: 'isiXhosa'},
44
- 'zu': {name: 'isiZulu'},
45
- 'is': {name: 'Íslenska'},
46
- 'it': {name: 'Italiano'},
47
- 'ka': {name: 'ქართული ენა'},
48
- 'kk': {name: 'қазақша'},
49
- 'qu': {name: 'Kichwa'},
50
- 'sw': {name: 'Kiswahili'},
51
- 'ht': {name: 'Kreyòl ayisyen'},
52
- 'ku': {name: 'Kurdî'},
53
- 'ckb': {name: 'کوردیی ناوەندی'},
54
- 'lv': {name: 'Latviešu'},
55
- 'lt': {name: 'Lietuvių'},
56
- 'hu': {name: 'Magyar'},
57
- 'mi': {name: 'Māori'},
58
- 'mn': {name: 'Монгол хэл'},
59
- 'nl': {name: 'Nederlands'},
60
- 'ja': {name: '日本語'},
61
- 'ja-Hira': {name: 'にほんご'},
62
- 'nb': {name: 'Norsk Bokmål'},
63
- 'nn': {name: 'Norsk Nynorsk'},
64
- 'oc': {name: 'Occitan'},
65
- 'or': {name: 'ଓଡ଼ିଆ'},
66
- 'uz': {name: 'Oʻzbekcha'},
67
- 'th': {name: 'ไทย'},
68
- 'km': {name: 'ភាសាខ្មែរ'},
69
- 'pl': {name: 'Polski'},
70
- 'pt': {name: 'Português'},
71
- 'pt-br': {name: 'Português Brasileiro'},
72
- 'rap': {name: 'Rapa Nui'},
73
- 'ro': {name: 'Română'},
74
- 'ru': {name: 'Русский'},
75
- 'nso': {name: 'Sepedi'},
76
- 'tn': {name: 'Setswana'},
77
- 'sk': {name: 'Slovenčina'},
78
- 'sl': {name: 'Slovenščina'},
79
- 'sr': {name: 'Српски'},
80
- 'fi': {name: 'Suomi'},
81
- 'sv': {name: 'Svenska'},
82
- 'vi': {name: 'Tiếng Việt'},
83
- 'tr': {name: 'Türkçe'},
84
- 'uk': {name: 'Українська'},
85
- 'zh-cn': {name: '简体中文'},
86
- 'zh-tw': {name: '繁體中文'}
87
- };
7
+ ab: { name: 'Аҧсшәа' },
8
+ af: { name: 'Afrikaans' },
9
+ ar: { name: 'العربية' },
10
+ am: { name: 'አማርኛ' },
11
+ an: { name: 'Aragonés' },
12
+ ast: { name: 'Asturianu' },
13
+ az: { name: 'Azeri' },
14
+ id: { name: 'Bahasa Indonesia' },
15
+ bn: { name: 'বাংলা' },
16
+ be: { name: 'Беларуская' },
17
+ bg: { name: 'Български' },
18
+ ca: { name: 'Català' },
19
+ cs: { name: 'Česky' },
20
+ cy: { name: 'Cymraeg' },
21
+ da: { name: 'Dansk' },
22
+ de: { name: 'Deutsch' },
23
+ et: { name: 'Eesti' },
24
+ el: { name: 'Ελληνικά' },
25
+ en: { name: 'English' },
26
+ es: { name: 'Español (España)' },
27
+ 'es-419': { name: 'Español Latinoamericano' },
28
+ eo: { name: 'Esperanto' },
29
+ eu: { name: 'Euskara' },
30
+ fa: { name: 'فارسی' },
31
+ fil: { name: 'Filipino' },
32
+ fr: { name: 'Français' },
33
+ fy: { name: 'Frysk' },
34
+ ga: { name: 'Gaeilge' },
35
+ gd: { name: 'Gàidhlig' },
36
+ gl: { name: 'Galego' },
37
+ ko: { name: '한국어' },
38
+ ha: { name: 'Hausa' },
39
+ hy: { name: 'Հայերեն' },
40
+ he: { name: 'עִבְרִית' },
41
+ hi: { name: 'हिंदी' },
42
+ hr: { name: 'Hrvatski' },
43
+ xh: { name: 'isiXhosa' },
44
+ zu: { name: 'isiZulu' },
45
+ is: { name: 'Íslenska' },
46
+ it: { name: 'Italiano' },
47
+ ka: { name: 'ქართული ენა' },
48
+ kk: { name: 'қазақша' },
49
+ qu: { name: 'Kichwa' },
50
+ sw: { name: 'Kiswahili' },
51
+ ht: { name: 'Kreyòl ayisyen' },
52
+ ku: { name: 'Kurdî' },
53
+ ckb: { name: 'کوردیی ناوەندی' },
54
+ lv: { name: 'Latviešu' },
55
+ lt: { name: 'Lietuvių' },
56
+ hu: { name: 'Magyar' },
57
+ mi: { name: 'Māori' },
58
+ mn: { name: 'Монгол хэл' },
59
+ nl: { name: 'Nederlands' },
60
+ ja: { name: '日本語' },
61
+ 'ja-Hira': { name: 'にほんご' },
62
+ nb: { name: 'Norsk Bokmål' },
63
+ nn: { name: 'Norsk Nynorsk' },
64
+ oc: { name: 'Occitan' },
65
+ or: { name: 'ଓଡ଼ିଆ' },
66
+ uz: { name: 'Oʻzbekcha' },
67
+ th: { name: 'ไทย' },
68
+ km: { name: 'ភាសាខ្មែរ' },
69
+ pl: { name: 'Polski' },
70
+ pt: { name: 'Português' },
71
+ 'pt-br': { name: 'Português Brasileiro' },
72
+ rap: { name: 'Rapa Nui' },
73
+ ro: { name: 'Română' },
74
+ ru: { name: 'Русский' },
75
+ nso: { name: 'Sepedi' },
76
+ tn: { name: 'Setswana' },
77
+ sk: { name: 'Slovenčina' },
78
+ sl: { name: 'Slovenščina' },
79
+ sr: { name: 'Српски' },
80
+ fi: { name: 'Suomi' },
81
+ sv: { name: 'Svenska' },
82
+ vi: { name: 'Tiếng Việt' },
83
+ tr: { name: 'Türkçe' },
84
+ uk: { name: 'Українська' },
85
+ 'zh-cn': { name: '简体中文' },
86
+ 'zh-tw': { name: '繁體中文' },
87
+ }
88
88
 
89
89
  const customLocales = {
90
- 'ab': {
91
- locale: 'ab',
92
- parentLocale: 'ru'
93
- },
94
- // Aragonese is not in the locale data, using es for Spain
95
- 'an': {
96
- locale: 'an',
97
- parentLocale: 'es'
98
- },
99
- // haitian creole is not in locale-langData
100
- 'ht': {
101
- locale: 'ht',
102
- parentLocale: 'fr'
103
- },
104
- 'oc': {
105
- locale: 'oc',
106
- parentLocale: 'fr'
107
- },
108
- 'rap': {
109
- locale: 'rap',
110
- parentLocale: 'es'
111
- },
112
- // TODO: replace zh-cn, zh-tw with zh-Hans and zh-Hant then customLocales is unnecessary
113
- 'zh-cn': {
114
- locale: 'zh-cn',
115
- parentLocale: 'zh'
116
- },
117
- 'zh-tw': {
118
- locale: 'zh-tw',
119
- parentLocale: 'zh'
120
- }
121
- };
90
+ ab: {
91
+ locale: 'ab',
92
+ parentLocale: 'ru',
93
+ },
94
+ // Aragonese is not in the locale data, using es for Spain
95
+ an: {
96
+ locale: 'an',
97
+ parentLocale: 'es',
98
+ },
99
+ // haitian creole is not in locale-langData
100
+ ht: {
101
+ locale: 'ht',
102
+ parentLocale: 'fr',
103
+ },
104
+ oc: {
105
+ locale: 'oc',
106
+ parentLocale: 'fr',
107
+ },
108
+ rap: {
109
+ locale: 'rap',
110
+ parentLocale: 'es',
111
+ },
112
+ // TODO: replace zh-cn, zh-tw with zh-Hans and zh-Hant then customLocales is unnecessary
113
+ 'zh-cn': {
114
+ locale: 'zh-cn',
115
+ parentLocale: 'zh',
116
+ },
117
+ 'zh-tw': {
118
+ locale: 'zh-tw',
119
+ parentLocale: 'zh',
120
+ },
121
+ }
122
122
 
123
123
  const localeMap = {
124
- 'aa-dj': 'aa_DJ',
125
- 'es-419': 'es_419',
126
- // ja-Hira: no map - it's 'ja-Hira' on transifex
127
- 'pt-br': 'pt_BR',
128
- 'zh-cn': 'zh_CN',
129
- 'zh-tw': 'zh_TW'
130
- };
124
+ 'aa-dj': 'aa_DJ',
125
+ 'es-419': 'es_419',
126
+ // ja-Hira: no map - it's 'ja-Hira' on transifex
127
+ 'pt-br': 'pt_BR',
128
+ 'zh-cn': 'zh_CN',
129
+ 'zh-tw': 'zh_TW',
130
+ }
131
131
 
132
132
  // list of RTL locales supported, and a function to check whether a locale is RTL
133
- const rtlLocales = [
134
- 'ar',
135
- 'ckb',
136
- 'fa',
137
- 'he'
138
- ];
133
+ const rtlLocales = ['ar', 'ckb', 'fa', 'he']
139
134
 
140
- const isRtl = locale => {
141
- return rtlLocales.indexOf(locale) !== -1;
142
- };
135
+ const isRtl = locale => rtlLocales.indexOf(locale) !== -1
143
136
 
144
- export {locales as default, customLocales, localeMap, isRtl};
137
+ export { locales as default, customLocales, localeMap, isRtl }