scratch-l10n 5.0.230 → 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 (44) 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 +14 -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
  44. package/www/scratch-website.annual-report-2020-l10njson/hi.json +7 -7
@@ -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 }
@@ -274,13 +274,13 @@
274
274
  "annualReport.2020.altVirtualTown": "एक लड़की कुछ घरों के सामने फुटपाथ पर दौड़ती है।",
275
275
  "annualReport.2020.altCatchGame": "दाईं ओर क्षितिज पर एक सेब तैर रहा है, जबकि नीचे फ्रेम के केंद्र की ओर एक टोकरी रखी हुई है।",
276
276
  "annualReport.2020.altCharacterDesigner": "एक कुत्ता हरे और सफेद शेवरॉन पृष्ठभूमि के सामने बैठा है।",
277
- "annualReport.2020.altVirtualPet": "A hedgehog sits on top of a rock in the middle of some grass.",
278
- "annualReport.2020.altLookingForward": "A watering tree waters a sapling that grows into a tall tree.",
279
- "annualReport.2020.altIndia1": "A lit sparkler appears below text saying \"happy Diwali!\"",
280
- "annualReport.2020.altIndia2": "The scratch cat mascot appears next to some text written in Hindi",
281
- "annualReport.2020.altIndia3": "An Indian woman appears in front of the Indian flag which has a heart containing the word \"India\" on it.",
282
- "annualReport.2020.altIndia4": "Two hands appear over a flute in front of a background containing a boardwalk and sea.",
283
- "annualReport.2020.altChile": "A group of children sits around a table filled with arts and crafts and a laptop.",
277
+ "annualReport.2020.altVirtualPet": "एक हाथी घास के बीच में एक चट्टान के ऊपर बैठा है।",
278
+ "annualReport.2020.altLookingForward": "एक पानी देने वाला पेड़ एक पौधे को पानी देता है जो एक लंबे पेड़ में विकसित होता है।",
279
+ "annualReport.2020.altIndia1": "\"हैप्पी दिवाली!\" लिखे हुए पाठ के नीचे एक जलती हुई फुलझड़ी दिखाई देती है।",
280
+ "annualReport.2020.altIndia2": "स्क्रैच बिल्ली का शुभंकर हिंदी में लिखे कुछ पाठ के बगल में दिखाई देता है",
281
+ "annualReport.2020.altIndia3": "एक भारतीय महिला भारतीय ध्वज के सामने खड़ी है जिस पर एक दिल बना हुआ है और उस पर \"भारत\" शब्द लिखा हुआ है।",
282
+ "annualReport.2020.altIndia4": "बोर्डवॉक और समुद्र वाली पृष्ठभूमि के सामने एक बांसुरी के ऊपर दो हाथ दिखाई देते हैं।",
283
+ "annualReport.2020.altChile": "बच्चों का एक समूह कला और शिल्प तथा लैपटॉप से ​​भरी एक मेज के चारों ओर बैठा है।",
284
284
  "annualReport.2020.altBrazil": "Children sit in front of a laptop connected to five spoons with wires.",
285
285
  "annualReport.2020.altIndia": "A woman instructs girls sitting in front of a computer.",
286
286
  "annualReport.2020.altUSA": "A small video thumbnail is displayed next to a screenshot of the Scratch user interface",