Skip to content

Commit bae3b65

Browse files
heiskrCopilot
andauthored
Add translation correction patterns for ja, ko, zh, pt, es, fr, de (#60164)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 4893354 commit bae3b65

1 file changed

Lines changed: 37 additions & 10 deletions

File tree

src/languages/lib/correct-translation-content.ts

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,25 @@ export function correctTranslatedContentStrings(
2828
content = content.replaceAll('{% de datos variables', '{% data variables')
2929
content = content.replaceAll('{% datos reusables', '{% data reusables')
3030
content = content.replaceAll('{% data reutilizables.', '{% data reusables.')
31-
content = content.replaceAll('{%- ifversion fpt o ghec %}', '{%- ifversion fpt or ghec %}')
32-
content = content.replaceAll('{% ifversion fpt o ghec %}', '{% ifversion fpt or ghec %}')
31+
// Catch "o" between any plan names in ifversion/elsif tags
32+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?\bo\b[^%]*?%\}/g, (match) => {
33+
return match.replace(/ o /g, ' or ')
34+
})
3335
}
3436

3537
if (context.code === 'ja') {
3638
content = content.replaceAll('{% データ variables', '{% data variables')
3739
content = content.replaceAll('{% データvariables', '{% data variables')
3840
content = content.replaceAll('{% データ reusables', '{% data reusables')
41+
content = content.replaceAll('{% データ変数.', '{% data variables.')
42+
content = content.replaceAll('{% データ再利用可能な.', '{% data reusables.')
43+
content = content.replaceAll('{% データ再利用可能.', '{% data reusables.')
44+
content = content.replaceAll('{% データ再利用.', '{% data reusables.')
45+
content = content.replaceAll('{% メモ %}', '{% note %}')
46+
// Catch "または" between any plan names in ifversion/elsif tags
47+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?[^%]*?%\}/g, (match) => {
48+
return match.replace(/ /g, ' or ')
49+
})
3950

4051
// Fix trailing quote on YAML value
4152
content = content.replace(/^(\s*asked_too_many_times:\s*.+)"\s*$/m, '$1')
@@ -53,13 +64,24 @@ export function correctTranslatedContentStrings(
5364
content = content.replaceAll('{% dados reusables', '{% data reusables')
5465
content = content.replaceAll('{{% dados ', '{% data ')
5566
content = content.replaceAll('{{% datas ', '{% data ')
67+
content = content.replaceAll('{% senão %}', '{% else %}')
68+
// Catch "ou" between any plan names in ifversion/elsif tags
69+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?ou [^%]*?%\}/g, (match) => {
70+
return match.replace(/ ou /g, ' or ')
71+
})
5672
}
5773

5874
if (context.code === 'zh') {
5975
content = content.replaceAll('{% 数据variables', '{% data variables')
6076
content = content.replaceAll('{% 数据 variables', '{% data variables')
6177
content = content.replaceAll('{% 数据可重用', '{% data reusables')
6278
content = content.replaceAll('{% 数据可重用s.', '{% data reusables.')
79+
content = content.replaceAll('{% 其他 %}', '{% else %}')
80+
content = content.replaceAll('{% 原始 %}', '{% raw %}')
81+
// Catch "或" between any plan names in ifversion/elsif tags
82+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?[^%]*?%\}/g, (match) => {
83+
return match.replace(/ /g, ' or ')
84+
})
6385
}
6486

6587
if (context.code === 'ru') {
@@ -120,12 +142,8 @@ export function correctTranslatedContentStrings(
120142
content = content.replaceAll('{% données réutilisables.', '{% data reusables.')
121143
content = content.replaceAll('{% variables de données.', '{% data variables.')
122144
content = content.replaceAll('{% autre %}', '{% else %}')
123-
content = content.replaceAll('{%- ifversion fpt ou ghec %}', '{%- ifversion fpt or ghec %}')
124-
content = content.replaceAll('{% ifversion fpt ou ghec %}', '{% ifversion fpt or ghec %}')
125-
content = content.replaceAll('{%- ifversion fpt ou ghec ou', '{%- ifversion fpt or ghec or')
126-
content = content.replaceAll('{% ifversion fpt ou ghec ou', '{% ifversion fpt or ghec or')
127-
// Catch remaining "ou" between any plan names in ifversion tags
128-
content = content.replace(/\{%-? ifversion [^%]*?ou [^%]*?%\}/g, (match) => {
145+
// Catch remaining "ou" between any plan names in ifversion/elsif tags
146+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?ou [^%]*?%\}/g, (match) => {
129147
return match.replace(/ ou /g, ' or ')
130148
})
131149
}
@@ -137,6 +155,12 @@ export function correctTranslatedContentStrings(
137155
content = content.replaceAll('{% 데이터 변수.', '{% data variables.')
138156
content = content.replaceAll('{% 데이터 변숫값.', '{% data variables.')
139157
content = content.replaceAll('{% dada variables', '{% data variables')
158+
content = content.replaceAll('{% 기타 %}', '{% else %}')
159+
content = content.replaceAll('{% 참고 %}', '{% note %}')
160+
// Catch "또는" between any plan names in ifversion/elsif tags
161+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?[^%]*?%\}/g, (match) => {
162+
return match.replace(/ /g, ' or ')
163+
})
140164

141165
// Korean translation of github-glossary.md
142166
content = content.replaceAll('{{ 용어집.term }}', '{{ glossary.term }}')
@@ -151,8 +175,8 @@ export function correctTranslatedContentStrings(
151175
content = content.replaceAll('{%-Daten-variables', '{%- data variables')
152176
content = content.replaceAll('{%- ifversion fpt oder ghec %}', '{%- ifversion fpt or ghec %}')
153177
content = content.replaceAll('{% ifversion fpt oder ghec %}', '{% ifversion fpt or ghec %}')
154-
// Catch remaining "oder" between any plan names in ifversion tags
155-
content = content.replace(/\{%-? ifversion [^%]*?oder [^%]*?%\}/g, (match) => {
178+
// Catch remaining "oder" between any plan names in ifversion/elsif tags
179+
content = content.replace(/\{%-? (?:ifversion|elsif) [^%]*?oder [^%]*?%\}/g, (match) => {
156180
return match.replace(/ oder /g, ' or ')
157181
})
158182
}
@@ -183,6 +207,9 @@ export function correctTranslatedContentStrings(
183207
content = content.replaceAll('{% variables.', '{% data variables.')
184208
content = content.replaceAll('{% datavariables', '{% data variables')
185209

210+
// Fix spaces inside Liquid tag delimiters, e.g. `{ % endif % }` → `{% endif %}`
211+
content = content.replace(/\{ +%([^%]+?)% +\}/g, '{%$1%}')
212+
186213
// Recover linebreaks that translations lose after Liquid closing tags.
187214
// Compares each `{% ... %} ` in the translation against the English
188215
// to see if it should be `{% ... %}\n` instead.

0 commit comments

Comments
 (0)