@@ -81,6 +81,26 @@ export function correctTranslatedContentStrings(
8181 content = content . replaceAll ( '{% datos variables' , '{% data variables' )
8282 content = content . replaceAll ( '{% de datos variables' , '{% data variables' )
8383 content = content . replaceAll ( '{% datos reusables' , '{% data reusables' )
84+ // `{% WORD de datos variables.` — extra Spanish word before "de datos variables"
85+ // e.g. `{% uso de datos variables.` ("use of data variables") or
86+ // `{% análisis de datos variables.` ("data analysis variables").
87+ // Unicode-aware character class so accented translator words match.
88+ content = content . replace (
89+ / \{ % ( - ? ) \s * [ \p{ L} \p{ M} ] + \s + d e d a t o s ( v a r i a b l e s | r e u s a b l e s ) \. / gu,
90+ '{%$1 data $2.' ,
91+ )
92+ // `{% de datos WORD variables.` — adjective inserted between "de datos" and path
93+ // e.g. `{% de datos específico variables.` ("specific data variables")
94+ content = content . replace (
95+ / \{ % ( - ? ) \s * d e d a t o s [ \p{ L} \p{ M} ] + ( v a r i a b l e s | r e u s a b l e s ) \. / gu,
96+ '{%$1 data $2.' ,
97+ )
98+ // `{% WORD de variables.` — word + "de variables" (missing "datos" keyword)
99+ // e.g. `{% alerta de variables.product.X %}` (alert of variables)
100+ content = content . replace (
101+ / \{ % ( - ? ) \s * [ \p{ L} \p{ M} ] + \s + d e \s + ( v a r i a b l e s | r e u s a b l e s ) \. / gu,
102+ '{%$1 data $2.' ,
103+ )
84104 content = content . replaceAll ( '{% data reutilizables.' , '{% data reusables.' )
85105 // `{% datos reutilizables.` — fully translated "data reusables" path
86106 content = content . replaceAll ( '{% datos reutilizables.' , '{% data reusables.' )
@@ -552,8 +572,11 @@ export function correctTranslatedContentStrings(
552572 // `{% 行标题 %}` — "row headers" = rowheaders
553573 content = content . replaceAll ( '{% 行标题 %}' , '{% rowheaders %}' )
554574 content = content . replaceAll ( '{%- 行标题 %}' , '{%- rowheaders %}' )
555- // `{% 数据变量.` — "data variables" = data variables
575+ // `{% 数据变量.` — "data variables" = data variables (with space before)
556576 content = content . replaceAll ( '{% 数据变量.' , '{% data variables.' )
577+ // `{%数据变量.` — same but no space between `{%` and 数据变量 (e.g. `{%数据变量.enterprise.management_console%}`)
578+ content = content . replaceAll ( '{%数据变量.' , '{% data variables.' )
579+ content = content . replaceAll ( '{%-数据变量.' , '{%- data variables.' )
557580 // `{% Windows 操作系统 %}` — "Windows OS" = windows platform tag
558581 content = content . replaceAll ( '{% Windows 操作系统 %}' , '{% windows %}' )
559582 content = content . replaceAll ( '{%- Windows 操作系统 %}' , '{%- windows %}' )
@@ -610,6 +633,9 @@ export function correctTranslatedContentStrings(
610633 if ( context . code === 'ru' ) {
611634 content = content . replaceAll ( '[«AUTOTITLE»](' , '[AUTOTITLE](' )
612635 content = content . replaceAll ( '[АВТОЗАГОЛОВОК](' , '[AUTOTITLE](' )
636+ // `[{% autoTITLE](url)` — Liquid-embedded lowercase autotitle (translator lowercased
637+ // the link anchor and wrapped it in Liquid tag syntax instead of plain `[AUTOTITLE](url)`)
638+ content = content . replaceAll ( '[{% autoTITLE](' , '[AUTOTITLE](' )
613639 content = content . replaceAll ( '{% данных variables' , '{% data variables' )
614640 content = content . replaceAll ( '{% данных, variables' , '{% data variables' )
615641 content = content . replaceAll ( '{% данными variables' , '{% data variables' )
@@ -1122,6 +1148,10 @@ export function correctTranslatedContentStrings(
11221148 content = content . replaceAll ( '{%- Datenvariablen.' , '{%- data variables.' )
11231149 content = content . replaceAll ( '{%-Daten variables' , '{%- data variables' )
11241150 content = content . replaceAll ( '{%-Daten-variables' , '{%- data variables' )
1151+ // `{%-DatenXxx variables` — compound "Daten..." word immediately after `{%-` (no space)
1152+ // e.g. `{%-Datenpaket variables.`, `{%-Dateninstanz variables.`, `{%-Dateneinstellungen variables.`
1153+ // The existing `{%- DatenXxx variables` rules (with space) don't catch the no-space variant.
1154+ content = content . replace ( / \{ % - ( D a t e n [ A - Z a - z ] + ) \s + ( v a r i a b l e s | r e u s a b l e s ) / g, '{%- data $2' )
11251155 content = content . replaceAll ( '{%- ifversion fpt oder ghec %}' , '{%- ifversion fpt or ghec %}' )
11261156 content = content . replaceAll ( '{% ifversion fpt oder ghec %}' , '{% ifversion fpt or ghec %}' )
11271157 // Catch remaining "oder" between any plan names in ifversion/elsif/if tags
@@ -1138,6 +1168,15 @@ export function correctTranslatedContentStrings(
11381168 content = content . replaceAll ( '{% Tipp %}' , '{% tip %}' )
11391169 content = content . replaceAll ( '{%- Tipp %}' , '{%- tip %}' )
11401170 content = content . replaceAll ( '{%- Tipp -%}' , '{%- tip -%}' )
1171+ // `{% Codespaces %}` — translator capitalized the platform tag
1172+ content = content . replaceAll ( '{% Codespaces %}' , '{% codespaces %}' )
1173+ content = content . replaceAll ( '{%- Codespaces %}' , '{%- codespaces %}' )
1174+ // `{% Aufforderung %}` — German "Aufforderung" (prompt/instruction) = prompt
1175+ content = content . replaceAll ( '{% Aufforderung %}' , '{% prompt %}' )
1176+ content = content . replaceAll ( '{%- Aufforderung %}' , '{%- prompt %}' )
1177+ // `{% Endprompt %}` — mix of German "End" and English "prompt" = endprompt
1178+ content = content . replaceAll ( '{% Endprompt %}' , '{% endprompt %}' )
1179+ content = content . replaceAll ( '{%- Endprompt %}' , '{%- endprompt %}' )
11411180 // Translated for-loop keywords: `für VARNAME in COLLECTION`
11421181 content = content . replace ( / \{ % - ? f ü r ( \w + ) i n / g, ( match ) => {
11431182 return match . replace ( 'für' , 'for' )
0 commit comments