parent
							
								
									b38a9b8ab4
								
							
						
					
					
						commit
						4b06739c12
					
				@ -0,0 +1,80 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
exit; | 
				
			||||
 | 
				
			||||
// Generates a po file from a trad4all.inc.php file. | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../vendor/autoload.php'; | 
				
			||||
 | 
				
			||||
ini_set('memory_limit', '600M'); | 
				
			||||
 | 
				
			||||
// 1. Source trad4all.inc.php | 
				
			||||
$langPath = __DIR__.'/../../../trad4all.inc.php'; | 
				
			||||
// 2. Destination po file | 
				
			||||
$destinationFile = __DIR__.'/../../../trad4all.inc.php.po'; | 
				
			||||
// 3. Iso code | 
				
			||||
$languageCode = 'fr_FR'; | 
				
			||||
 | 
				
			||||
$originalFile = __DIR__.'/../../../public/main/lang/english/trad4all.inc.php'; | 
				
			||||
$terms = SubLanguageManager::get_all_language_variable_in_file( | 
				
			||||
    $originalFile, | 
				
			||||
    true | 
				
			||||
); | 
				
			||||
 | 
				
			||||
foreach ($terms as $index => $translation) { | 
				
			||||
    $terms[$index] = trim(rtrim($translation, ';'), '"'); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$header = 'msgid ""'."\n".'msgstr ""'."\n". | 
				
			||||
    '"Project-Id-Version: chamilo\n"'."\n". | 
				
			||||
    '"Language: '.$languageCode.'\n"'."\n". | 
				
			||||
    '"Content-Type: text/plain; charset=UTF-8\n"'."\n". | 
				
			||||
    '"Content-Transfer-Encoding: 8bit\n"'."\n\n"; | 
				
			||||
file_put_contents($destinationFile, $header); | 
				
			||||
 | 
				
			||||
$originalTermsInLanguage = SubLanguageManager::get_all_language_variable_in_file( | 
				
			||||
    $langPath, | 
				
			||||
    true | 
				
			||||
); | 
				
			||||
foreach ($originalTermsInLanguage as $id => $content) {     | 
				
			||||
    if (!isset($termsInLanguage[$id])) { | 
				
			||||
        $termsInLanguage[$id] = trim(rtrim($content, ';'), '"'); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$bigString = ''; | 
				
			||||
$bigStringPot = ''; | 
				
			||||
$doneTranslations = []; | 
				
			||||
foreach ($terms as $term => $englishTranslation) { | 
				
			||||
    if (isset($doneTranslations[$englishTranslation])) { | 
				
			||||
        continue; | 
				
			||||
    } | 
				
			||||
    $doneTranslations[$englishTranslation] = true; | 
				
			||||
    $translatedTerm = ''; | 
				
			||||
    if (!empty($termsInLanguage[$term])) { | 
				
			||||
        $translatedTerm = $termsInLanguage[$term]; | 
				
			||||
    } | 
				
			||||
    // Here we apply a little correction to avoid unterminated strings | 
				
			||||
    // when a string ends with a \" | 
				
			||||
    if (preg_match('/\\\$/', $englishTranslation)) { | 
				
			||||
        $englishTranslation .= '"'; | 
				
			||||
    } | 
				
			||||
    $englishTranslation2 = ''; | 
				
			||||
    $search = ['\\{', '\\}', '\\(', '\\)', '\\;']; | 
				
			||||
    $replace = ['\\\\{', '\\\\}', '\\\\(', '\\\\)', '\\\\;']; | 
				
			||||
    $englishTranslation = str_replace($search, $replace, $englishTranslation); | 
				
			||||
    if (preg_match('/\\\$/', $translatedTerm)) { | 
				
			||||
        $translatedTerm .= '"'; | 
				
			||||
    } | 
				
			||||
    $translatedTerm = str_replace($search, $replace, $translatedTerm); | 
				
			||||
    if (empty($translatedTerm)) { | 
				
			||||
        continue; | 
				
			||||
    } | 
				
			||||
    // Now build the line | 
				
			||||
    $bigString .= 'msgid "'.$englishTranslation.'"'."\n".'msgstr "'.$translatedTerm.'"'."\n\n"; | 
				
			||||
} | 
				
			||||
file_put_contents($destinationFile, $bigString, FILE_APPEND); | 
				
			||||
 | 
				
			||||
echo "Done generating gettext file in $destinationFile !\n"; | 
				
			||||
					Loading…
					
					
				
		Reference in new issue