@@ -30,7 +30,7 @@ export abstract class ConverterCommon extends EventEmitter {
3030
3131 protected abstract cleanObsoleteResourcesFiles (
3232 resourcesDirectory : string ,
33- supportedLanguages : SupportedLanguages
33+ languages : Languages
3434 ) : this;
3535
3636 protected abstract createLanguageResourcesFiles (
@@ -71,7 +71,7 @@ export abstract class ConverterCommon extends EventEmitter {
7171 }
7272
7373 let defaultLanguage = undefined ;
74- const supportedLanguages : SupportedLanguages = new Map ( ) ;
74+ const languages : Languages = new Map ( ) ;
7575
7676 fs . readdirSync ( this . i18nDirectoryPath ) . map ( fileName => {
7777 return path . join ( this . i18nDirectoryPath , fileName ) ;
@@ -83,37 +83,49 @@ export abstract class ConverterCommon extends EventEmitter {
8383 language = path . basename ( language , ".default" ) ;
8484 defaultLanguage = language ;
8585 }
86- supportedLanguages . set ( language , filePath ) ;
86+ languages . set ( language , this . loadLangage ( filePath ) ) ;
8787 } ) ;
8888
89- if ( supportedLanguages . size === 0 ) {
89+ if ( languages . size === 0 ) {
9090 this . logger . warn ( `'${ this . i18nDirectoryPath } ' is empty: nothing to localize` ) ;
9191 return this ;
9292 }
9393
9494 if ( ! defaultLanguage ) {
95- defaultLanguage = supportedLanguages . keys ( ) . next ( ) . value ;
95+ defaultLanguage = languages . keys ( ) . next ( ) . value ;
9696 this . logger . warn ( `No file found with the .default extension: default langage set to '${ defaultLanguage } '` ) ;
9797 }
9898
99- const defaultLanguageI18nEntries = this . loadLangage ( supportedLanguages . get ( defaultLanguage ) ) ;
100- this . createLanguageResourcesFiles ( defaultLanguage , true , defaultLanguageI18nEntries ) ;
99+ const defaultLanguageI18nEntries = languages . get ( defaultLanguage ) ;
101100
102- supportedLanguages . forEach ( ( filePath , language ) => {
101+ languages . forEach ( ( languageI18nEntries , language ) => {
102+ if ( language !== defaultLanguage ) {
103+ languageI18nEntries . forEach ( ( _ , key ) => {
104+ if ( ! defaultLanguageI18nEntries . has ( key ) ) {
105+ this . logger . warn ( key ) ;
106+ defaultLanguageI18nEntries . set ( key , key ) ;
107+ }
108+ } ) ;
109+ }
110+ } ) ;
111+
112+ languages . forEach ( ( languageI18nEntries , language ) => {
103113 if ( language !== defaultLanguage ) {
104- const languageI18nEntries = this . loadLangage ( filePath ) ;
105114 defaultLanguageI18nEntries . forEach ( ( value , key ) => {
106115 if ( ! languageI18nEntries . has ( key ) ) {
107116 languageI18nEntries . set ( key , value ) ;
108117 }
109118 } ) ;
110- this . createLanguageResourcesFiles ( language , false , languageI18nEntries ) ;
111119 }
112120 } ) ;
113121
122+ languages . forEach ( ( languageI18nEntries , language ) => {
123+ this . createLanguageResourcesFiles ( language , language === defaultLanguage , languageI18nEntries ) ;
124+ } ) ;
125+
114126 [ this . appResourcesDirectoryPath , this . appResourcesDestinationDirectoryPath ] . forEach ( resourcesDirectoryPath => {
115127 if ( fs . existsSync ( resourcesDirectoryPath ) && fs . statSync ( resourcesDirectoryPath ) . isDirectory ( ) ) {
116- this . cleanObsoleteResourcesFiles ( resourcesDirectoryPath , supportedLanguages ) ;
128+ this . cleanObsoleteResourcesFiles ( resourcesDirectoryPath , languages ) ;
117129 }
118130 } ) ;
119131
@@ -146,4 +158,4 @@ export abstract class ConverterCommon extends EventEmitter {
146158}
147159
148160export type I18nEntries = Map < string , string > ;
149- export type SupportedLanguages = Map < string , string > ;
161+ export type Languages = Map < string , I18nEntries > ;
0 commit comments