@@ -172,17 +172,25 @@ export class MessageManager {
172172 }
173173 }
174174
175- // Validate that all HTML messages exist in all FTL locales
176175 validateMessages ( ) {
176+ // Check miss 1: Cross check in diff locale - seems no need
177+ // messagesByLocale.forEach((messageInThisLang, lang) => {
178+ // // Needs Nodejs 22
179+ // const diff = allMessages.difference(messageInThisLang);
180+ // if (diff.size)
181+ // this.logger.warn(`FTL messages '${Array.from(diff).join(", ")}' don't exist the locale '${lang}'`);
182+ // });
183+
184+ // Check miss 2: Check ids in HTML but not in ftl
177185 this . htmlMessages . forEach ( ( msg ) => {
178186 if ( this . ignores . includes ( msg ) )
179187 return ;
180188
181- this . ftlMessages . forEach ( ( messages , locale ) => {
182- if ( ! messages . has ( msg ) ) {
183- logger . warn ( `Missing message: ${ styleText . blue ( msg ) } in locale: ${ locale } ` ) ;
184- }
185- } ) ;
189+ const missingLocales = [ ... this . ftlMessages . entries ( ) ]
190+ . filter ( ( [ _ , messages ] ) => ! messages . has ( msg ) )
191+ . map ( ( [ locale ] ) => locale ) ;
192+ if ( missingLocales . length > 0 )
193+ logger . warn ( `I10N id ${ styleText . blue ( msg ) } missing in locale: ${ missingLocales . join ( ", " ) } ` ) ;
186194 } ) ;
187195 }
188196
@@ -223,7 +231,7 @@ export function processHTMLFile(
223231 }
224232
225233 if ( ! allMessages . has ( id ) ) {
226- logger . warn ( `Missing FTL: ${ styleText . blue ( id ) } in ${ styleText . gray ( filePath ) } ` ) ;
234+ logger . warn ( `I10N id ${ styleText . blue ( id ) } in path ${ styleText . gray ( filePath ) } does not exist in any locale, skip renaming it. ` ) ;
227235 return match ;
228236 }
229237
0 commit comments