@@ -13,6 +13,7 @@ import {
13
13
import { BuildResult , runWebpack } from '@angular-devkit/build-webpack' ;
14
14
import { JsonObject } from '@angular-devkit/core' ;
15
15
import type { ɵParsedMessage as LocalizeMessage } from '@angular/localize' ;
16
+ import type { Diagnostics } from '@angular/localize/src/tools/src/diagnostics' ;
16
17
import * as fs from 'fs' ;
17
18
import * as path from 'path' ;
18
19
import * as webpack from 'webpack' ;
@@ -38,6 +39,7 @@ function getI18nOutfile(format: string | undefined) {
38
39
case 'xliff2' :
39
40
return 'messages.xlf' ;
40
41
case 'json' :
42
+ case 'legacy-migrate' :
41
43
return 'messages.json' ;
42
44
case 'arb' :
43
45
return 'messages.arb' ;
@@ -46,7 +48,7 @@ function getI18nOutfile(format: string | undefined) {
46
48
}
47
49
}
48
50
49
- async function getSerializer ( format : Format , sourceLocale : string , basePath : string , useLegacyIds : boolean ) {
51
+ async function getSerializer ( format : Format , sourceLocale : string , basePath : string , useLegacyIds : boolean , diagnostics : Diagnostics ) {
50
52
switch ( format ) {
51
53
case Format . Xmb :
52
54
const { XmbTranslationSerializer } =
@@ -73,8 +75,12 @@ async function getSerializer(format: Format, sourceLocale: string, basePath: str
73
75
const { SimpleJsonTranslationSerializer } =
74
76
await import ( '@angular/localize/src/tools/src/extract/translation_files/json_translation_serializer' ) ;
75
77
76
- // tslint:disable-next-line: no-any
77
78
return new SimpleJsonTranslationSerializer ( sourceLocale ) ;
79
+ case Format . LegacyMigrate :
80
+ const { LegacyMessageIdMigrationSerializer } =
81
+ await import ( '@angular/localize/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer' ) ;
82
+
83
+ return new LegacyMessageIdMigrationSerializer ( diagnostics ) ;
78
84
case Format . Arb :
79
85
const { ArbTranslationSerializer } =
80
86
await import ( '@angular/localize/src/tools/src/extract/translation_files/arb_translation_serializer' ) ;
@@ -114,6 +120,9 @@ function normalizeFormatOption(options: ExtractI18nBuilderOptions) {
114
120
case Format . Arb :
115
121
format = Format . Arb ;
116
122
break ;
123
+ case Format . LegacyMigrate :
124
+ format = Format . LegacyMigrate ;
125
+ break ;
117
126
case undefined :
118
127
format = Format . Xlf ;
119
128
break ;
@@ -311,6 +320,7 @@ export async function execute(
311
320
i18n . sourceLocale ,
312
321
basePath ,
313
322
useLegacyIds ,
323
+ diagnostics ,
314
324
) ;
315
325
const content = serializer . serialize ( ivyMessages ) ;
316
326
0 commit comments