1515
1616use CodeIgniter \CLI \BaseCommand ;
1717use CodeIgniter \CLI \CLI ;
18- use CodeIgniter \Helpers \Array \ArrayHelper ;
1918use Config \App ;
2019use Locale ;
2120use RecursiveDirectoryIterator ;
@@ -134,7 +133,6 @@ private function process(string $originalLocale, string $targetLocale): void
134133 }
135134
136135 $ targetLanguageKeys = $ this ->mergeLanguageKeys ($ originalLanguageKeys , $ targetLanguageKeys , $ originalLanguageFile ->getBasename ('.php ' ));
137- // ksort($targetLanguageKeys);
138136
139137 $ content = "<?php \n\nreturn " . var_export ($ targetLanguageKeys , true ) . "; \n" ;
140138 file_put_contents ($ targetLanguageFile , $ content );
@@ -149,28 +147,34 @@ private function process(string $originalLocale, string $targetLocale): void
149147 */
150148 private function mergeLanguageKeys (array $ originalLanguageKeys , array $ targetLanguageKeys , string $ prefix = '' ): array
151149 {
150+ $ mergedLanguageKeys = [];
151+
152152 foreach ($ originalLanguageKeys as $ key => $ value ) {
153153 $ placeholderValue = $ prefix !== '' ? $ prefix . '. ' . $ key : $ key ;
154154
155155 if (! is_array ($ value )) {
156156 // Keep the old value
157157 // TODO: The value type may not match the original one
158158 if (array_key_exists ($ key , $ targetLanguageKeys )) {
159+ $ mergedLanguageKeys [$ key ] = $ targetLanguageKeys [$ key ];
160+
159161 continue ;
160162 }
161163
162164 // Set new key with placeholder
163- $ targetLanguageKeys [$ key ] = $ placeholderValue ;
165+ $ mergedLanguageKeys [$ key ] = $ placeholderValue ;
164166 } else {
165167 if (! array_key_exists ($ key , $ targetLanguageKeys )) {
166- $ targetLanguageKeys [$ key ] = [];
168+ $ mergedLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , [], $ placeholderValue );
169+
170+ continue ;
167171 }
168172
169- $ targetLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , $ targetLanguageKeys [$ key ], $ placeholderValue );
173+ $ mergedLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , $ targetLanguageKeys [$ key ], $ placeholderValue );
170174 }
171175 }
172176
173- return ArrayHelper:: intersectKeyRecursive ( $ targetLanguageKeys , $ originalLanguageKeys ) ;
177+ return $ mergedLanguageKeys ;
174178 }
175179
176180 private function isIgnoredFile (SplFileInfo $ file ): bool
0 commit comments