Esempio n. 1
0
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);
        }
    }
}
Esempio n. 2
0
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);
            }
        }
    }
}