@@ -120,8 +120,6 @@ function add_langs_to_config($langs, $config) {
120120function get_langfolder ($ lang ) {
121121 $ folder = LANGPACKSFOLDER .'/ ' .str_replace ('- ' , '_ ' , $ lang );
122122 if (!is_dir ($ folder ) || !is_file ($ folder .'/langconfig.php ' )) {
123- echo "Cannot translate $ folder, folder not found " ;
124-
125123 return false ;
126124 }
127125
@@ -173,6 +171,8 @@ function reset_translations_strings() {
173171function build_lang ($ lang , $ keys ) {
174172 $ langfoldername = get_langfolder ($ lang );
175173 if (!$ langfoldername ) {
174+ echo "Cannot translate $ lang, folder not found " ;
175+
176176 return false ;
177177 }
178178
@@ -182,15 +182,18 @@ function build_lang($lang, $keys) {
182182 $ override_langfolder = false ;
183183 }
184184
185- $ total = count ($ keys );
185+ $ total = count ($ keys );
186186 $ local = 0 ;
187187
188- $ string = get_translation_strings ($ langfoldername , 'langconfig ' );
189- $ parent = isset ($ string ['parentlanguage ' ]) ? $ string ['parentlanguage ' ] : "" ;
188+ $ langparts = explode ('- ' , $ lang , 2 );
189+ $ parentname = $ langparts [0 ] ?? "" ;
190+ $ parent = "" ;
190191
191192 echo "Processing $ lang " ;
192- if ($ parent != "" && $ parent != $ lang ) {
193- echo " ( $ parent) " ;
193+ // Check parent language exists.
194+ if ($ parentname != $ lang && get_langfolder ($ parentname )) {
195+ echo " ( $ parentname) " ;
196+ $ parent = $ parentname ;
194197 }
195198
196199 $ langFile = false ;
@@ -247,6 +250,12 @@ function build_lang($lang, $keys) {
247250 $ translations [$ key ] = html_entity_decode ($ text );
248251 }
249252
253+ if (!empty ($ parent )) {
254+ $ translations ['core.parentlanguage ' ] = $ parent ;
255+ } else if (isset ($ translations ['core.parentlanguage ' ])) {
256+ unset($ translations ['core.parentlanguage ' ]);
257+ }
258+
250259 // Sort and save.
251260 ksort ($ translations );
252261 file_put_contents (ASSETSPATH .$ lang .'.json ' , str_replace ('\/ ' , '/ ' , json_encode ($ translations , JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT )));
@@ -275,6 +284,8 @@ function progressbar($percentage) {
275284function detect_lang ($ lang , $ keys ) {
276285 $ langfoldername = get_langfolder ($ lang );
277286 if (!$ langfoldername ) {
287+ echo "Cannot translate $ lang, folder not found " ;
288+
278289 return false ;
279290 }
280291
0 commit comments