15
15
16
16
use CodeIgniter \CLI \BaseCommand ;
17
17
use CodeIgniter \CLI \CLI ;
18
- use CodeIgniter \Helpers \Array \ArrayHelper ;
19
18
use Config \App ;
20
19
use Locale ;
21
20
use RecursiveDirectoryIterator ;
@@ -134,7 +133,6 @@ private function process(string $originalLocale, string $targetLocale): void
134
133
}
135
134
136
135
$ targetLanguageKeys = $ this ->mergeLanguageKeys ($ originalLanguageKeys , $ targetLanguageKeys , $ originalLanguageFile ->getBasename ('.php ' ));
137
- // ksort($targetLanguageKeys);
138
136
139
137
$ content = "<?php \n\nreturn " . var_export ($ targetLanguageKeys , true ) . "; \n" ;
140
138
file_put_contents ($ targetLanguageFile , $ content );
@@ -149,28 +147,34 @@ private function process(string $originalLocale, string $targetLocale): void
149
147
*/
150
148
private function mergeLanguageKeys (array $ originalLanguageKeys , array $ targetLanguageKeys , string $ prefix = '' ): array
151
149
{
150
+ $ mergedLanguageKeys = [];
151
+
152
152
foreach ($ originalLanguageKeys as $ key => $ value ) {
153
153
$ placeholderValue = $ prefix !== '' ? $ prefix . '. ' . $ key : $ key ;
154
154
155
155
if (! is_array ($ value )) {
156
156
// Keep the old value
157
157
// TODO: The value type may not match the original one
158
158
if (array_key_exists ($ key , $ targetLanguageKeys )) {
159
+ $ mergedLanguageKeys [$ key ] = $ targetLanguageKeys [$ key ];
160
+
159
161
continue ;
160
162
}
161
163
162
164
// Set new key with placeholder
163
- $ targetLanguageKeys [$ key ] = $ placeholderValue ;
165
+ $ mergedLanguageKeys [$ key ] = $ placeholderValue ;
164
166
} else {
165
167
if (! array_key_exists ($ key , $ targetLanguageKeys )) {
166
- $ targetLanguageKeys [$ key ] = [];
168
+ $ mergedLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , [], $ placeholderValue );
169
+
170
+ continue ;
167
171
}
168
172
169
- $ targetLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , $ targetLanguageKeys [$ key ], $ placeholderValue );
173
+ $ mergedLanguageKeys [$ key ] = $ this ->mergeLanguageKeys ($ value , $ targetLanguageKeys [$ key ], $ placeholderValue );
170
174
}
171
175
}
172
176
173
- return ArrayHelper:: intersectKeyRecursive ( $ targetLanguageKeys , $ originalLanguageKeys ) ;
177
+ return $ mergedLanguageKeys ;
174
178
}
175
179
176
180
private function isIgnoredFile (SplFileInfo $ file ): bool
0 commit comments