Skip to content

Commit a179b92

Browse files
Revert "fix(localize): render ICU placeholders in extracted translation files (angular#38484)"
This reverts commit 5bb5494.
1 parent 679f47f commit a179b92

File tree

10 files changed

+32
-437
lines changed

10 files changed

+32
-437
lines changed

packages/localize/src/tools/src/extract/translation_files/icu_parsing.ts

Lines changed: 0 additions & 216 deletions
This file was deleted.

packages/localize/src/tools/src/extract/translation_files/xliff1_translation_serializer.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import {AbsoluteFsPath, relative} from '@angular/compiler-cli/src/ngtsc/file_system';
99
import {ɵParsedMessage, ɵSourceLocation} from '@angular/localize';
1010

11-
import {extractIcuPlaceholders} from './icu_parsing';
1211
import {TranslationSerializer} from './translation_serializer';
1312
import {XmlFile} from './xml_file';
1413

@@ -64,22 +63,11 @@ export class Xliff1TranslationSerializer implements TranslationSerializer {
6463
}
6564

6665
private serializeMessage(xml: XmlFile, message: ɵParsedMessage): void {
67-
const length = message.messageParts.length - 1;
68-
for (let i = 0; i < length; i++) {
69-
this.serializeTextPart(xml, message.messageParts[i]);
70-
xml.startTag('x', {id: message.placeholderNames[i]}, {selfClosing: true});
66+
xml.text(message.messageParts[0]);
67+
for (let i = 1; i < message.messageParts.length; i++) {
68+
xml.startTag('x', {id: message.placeholderNames[i - 1]}, {selfClosing: true});
69+
xml.text(message.messageParts[i]);
7170
}
72-
this.serializeTextPart(xml, message.messageParts[length]);
73-
}
74-
75-
private serializeTextPart(xml: XmlFile, text: string): void {
76-
const pieces = extractIcuPlaceholders(text);
77-
const length = pieces.length - 1;
78-
for (let i = 0; i < length; i += 2) {
79-
xml.text(pieces[i]);
80-
xml.startTag('x', {id: pieces[i + 1]}, {selfClosing: true});
81-
}
82-
xml.text(pieces[length]);
8371
}
8472

8573
private serializeNote(xml: XmlFile, name: string, value: string): void {

packages/localize/src/tools/src/extract/translation_files/xliff2_translation_serializer.ts

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import {AbsoluteFsPath, relative} from '@angular/compiler-cli/src/ngtsc/file_system';
99
import {ɵParsedMessage} from '@angular/localize';
1010

11-
import {extractIcuPlaceholders} from './icu_parsing';
1211
import {TranslationSerializer} from './translation_serializer';
1312
import {XmlFile} from './xml_file';
1413

@@ -23,7 +22,6 @@ const MAX_LEGACY_XLIFF_2_MESSAGE_LENGTH = 20;
2322
* @see Xliff2TranslationParser
2423
*/
2524
export class Xliff2TranslationSerializer implements TranslationSerializer {
26-
private currentPlaceholderId = 0;
2725
constructor(
2826
private sourceLocale: string, private basePath: AbsoluteFsPath,
2927
private useLegacyIds: boolean) {}
@@ -76,38 +74,21 @@ export class Xliff2TranslationSerializer implements TranslationSerializer {
7674
}
7775

7876
private serializeMessage(xml: XmlFile, message: ɵParsedMessage): void {
79-
this.currentPlaceholderId = 0;
80-
const length = message.messageParts.length - 1;
81-
for (let i = 0; i < length; i++) {
82-
this.serializeTextPart(xml, message.messageParts[i]);
83-
this.serializePlaceholder(xml, message.placeholderNames[i]);
84-
}
85-
this.serializeTextPart(xml, message.messageParts[length]);
86-
}
87-
88-
private serializeTextPart(xml: XmlFile, text: string): void {
89-
const pieces = extractIcuPlaceholders(text);
90-
const length = pieces.length - 1;
91-
for (let i = 0; i < length; i += 2) {
92-
xml.text(pieces[i]);
93-
this.serializePlaceholder(xml, pieces[i + 1]);
94-
}
95-
xml.text(pieces[length]);
96-
}
97-
98-
private serializePlaceholder(xml: XmlFile, placeholderName: string): void {
99-
if (placeholderName.startsWith('START_')) {
100-
xml.startTag('pc', {
101-
id: `${this.currentPlaceholderId++}`,
102-
equivStart: placeholderName,
103-
equivEnd: placeholderName.replace(/^START/, 'CLOSE')
104-
});
105-
} else if (placeholderName.startsWith('CLOSE_')) {
106-
xml.endTag('pc');
107-
} else {
108-
xml.startTag(
109-
'ph', {id: `${this.currentPlaceholderId++}`, equiv: placeholderName},
110-
{selfClosing: true});
77+
xml.text(message.messageParts[0]);
78+
for (let i = 1; i < message.messageParts.length; i++) {
79+
const placeholderName = message.placeholderNames[i - 1];
80+
if (placeholderName.startsWith('START_')) {
81+
xml.startTag('pc', {
82+
id: `${i}`,
83+
equivStart: placeholderName,
84+
equivEnd: placeholderName.replace(/^START/, 'CLOSE')
85+
});
86+
} else if (placeholderName.startsWith('CLOSE_')) {
87+
xml.endTag('pc');
88+
} else {
89+
xml.startTag('ph', {id: `${i}`, equiv: placeholderName}, {selfClosing: true});
90+
}
91+
xml.text(message.messageParts[i]);
11192
}
11293
}
11394

packages/localize/src/tools/src/extract/translation_files/xmb_translation_serializer.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import {AbsoluteFsPath, relative} from '@angular/compiler-cli/src/ngtsc/file_system';
99
import {ɵParsedMessage, ɵSourceLocation} from '@angular/localize';
1010

11-
import {extractIcuPlaceholders} from './icu_parsing';
1211
import {TranslationSerializer} from './translation_serializer';
1312
import {XmlFile} from './xml_file';
1413

@@ -78,22 +77,11 @@ export class XmbTranslationSerializer implements TranslationSerializer {
7877
}
7978

8079
private serializeMessage(xml: XmlFile, message: ɵParsedMessage): void {
81-
const length = message.messageParts.length - 1;
82-
for (let i = 0; i < length; i++) {
83-
this.serializeTextPart(xml, message.messageParts[i]);
84-
xml.startTag('ph', {name: message.placeholderNames[i]}, {selfClosing: true});
80+
xml.text(message.messageParts[0]);
81+
for (let i = 1; i < message.messageParts.length; i++) {
82+
xml.startTag('ph', {name: message.placeholderNames[i - 1]}, {selfClosing: true});
83+
xml.text(message.messageParts[i]);
8584
}
86-
this.serializeTextPart(xml, message.messageParts[length]);
87-
}
88-
89-
private serializeTextPart(xml: XmlFile, text: string): void {
90-
const pieces = extractIcuPlaceholders(text);
91-
const length = pieces.length - 1;
92-
for (let i = 0; i < length; i += 2) {
93-
xml.text(pieces[i]);
94-
xml.startTag('ph', {name: pieces[i + 1]}, {selfClosing: true});
95-
}
96-
xml.text(pieces[length]);
9785
}
9886

9987
/**

packages/localize/src/tools/test/extract/integration/main_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,12 @@ runInEachFileSystem(() => {
175175
` <file>`,
176176
` <unit id="3291030485717846467">`,
177177
` <segment>`,
178-
` <source>Hello, <ph id="0" equiv="PH"/>!</source>`,
178+
` <source>Hello, <ph id="1" equiv="PH"/>!</source>`,
179179
` </segment>`,
180180
` </unit>`,
181181
` <unit id="8669027859022295761">`,
182182
` <segment>`,
183-
` <source>try<ph id="0" equiv="PH"/>me</source>`,
183+
` <source>try<ph id="1" equiv="PH"/>me</source>`,
184184
` </segment>`,
185185
` </unit>`,
186186
` </file>`,

0 commit comments

Comments
 (0)