function generate_nls($translations) { $exportDir = './nls/'; foreach ($translations as $section => $language_data) { echo "generate {$section}\n"; $out = "define({\n"; $out .= "\t\"root\": {\n"; $master = $language_data['en']; unset($language_data['en']); $available_languages = array_keys($language_data); echo "master data:\n"; //print_r($master); //echo "data \n"; //print_r($language_data); //echo "available_languages:\n"; //print_r($available_languages); foreach ($master as $translate_key => $translate_string) { //$translate_string = htmlentities($translate_string, ENT_SUBSTITUTE); // needs php 5.4 //$translate_string = htmlentities($translate_string, ENT_QUOTES, 'UTF-8'); // produces html entities // @hack $translate_string = str_replace(array("*\\///*"), "\\\\", $translate_string); $translate_string = str_replace(array("*\\//*"), "\\", $translate_string); // @hack end $out .= "\t\t\"{$translate_key}\": \"{$translate_string}\",\n"; } $out = substr($out, 0, -2); $out .= "\n\t},\n"; foreach ($available_languages as $lang_code) { $out .= "\t\t\"{$lang_code}\": true,\n"; } $out = substr($out, 0, -2); $out .= "\n});\n"; echo "\n write master for {$section} \n"; //echo $out; write_nls_file($section, 'en', $out); $out = ''; foreach ($available_languages as $lang_code) { echo "\n write language file for {$section}: {$lang_code} \n"; $out = "define({\n"; foreach ($language_data[$lang_code] as $translate_key => $translate_string) { //$translate_string = htmlentities($translate_string, ENT_SUBSTITUTE); // needs php 5.4 //$translate_string = htmlentities($translate_string, ENT_QUOTES, 'UTF-8'); // produces html entities $out .= "\t\"{$translate_key}\": \"{$translate_string}\",\n"; } $out = substr($out, 0, -2); $out .= "\n});\n"; //echo $out; write_nls_file($section, $lang_code, $out); } } }
function generate_nls($translations, $full_translated, $export_translation) { $exportDir = './nls/'; foreach ($translations as $section => $language_data) { echo "\n\n*** generate {$section}\n"; $out = "define({\n"; $out .= "\t\"root\": {\n"; if (!empty($language_data['en'])) { // in case you just import a specific language don't rewrite the master file $master = $language_data['en']; unset($language_data['en']); $available_languages = array_keys($language_data); foreach ($master as $translate_key => $translate_string) { if (!empty($translate_key)) { //$translate_string = htmlentities($translate_string, ENT_SUBSTITUTE); // needs php 5.4 //$translate_string = htmlentities($translate_string, ENT_QUOTES, 'UTF-8'); // produces html entities $translate_string = addslashes($translate_string); $out .= "\t\t\"{$translate_key}\": \"{$translate_string}\",\n"; } } $out = substr($out, 0, -2); $out .= "\n\t},\n"; foreach ($available_languages as $lang_code) { if (in_array($lang_code, $full_translated)) { $out .= "\t\t\"{$lang_code}\": true,\n"; } } $out = substr($out, 0, -2); $out .= "\n});\n"; echo "\n# write master\n"; write_nls_file($section, 'en', $out); } else { $available_languages = array_keys($language_data); } if (count($export_translation) == 1) { $available_languages = $export_translation; } $out = ''; foreach ($available_languages as $lang_code) { if (in_array($lang_code, $full_translated)) { echo "\n# write language file: {$lang_code} \n"; $out = "define({\n"; foreach ($language_data[$lang_code] as $translate_key => $translate_string) { if (!empty($translate_key)) { //$translate_string = htmlentities($translate_string, ENT_SUBSTITUTE); // needs php 5.4 //$translate_string = htmlentities($translate_string, ENT_QUOTES, 'UTF-8'); // produces html entities $translate_string = addslashes($translate_string); $out .= "\t\"{$translate_key}\": \"{$translate_string}\",\n"; } } $out = substr($out, 0, -2); $out .= "\n});\n"; write_nls_file($section, $lang_code, $out); } } } }