drdroid Опубликовано 6 Февраля 2012 Жалоба Поделиться Опубликовано 6 Февраля 2012 Суть работы скрипта:Скрипт облегчает перенос переведенных строк из одного lang-файла в другой, помогает при локализации новых версий.Пример есть переведенный IP.Shoutbox 1.2.5 и не переведенный IP.Shoutbox 1.2.7, этот скрипт поможет быстро перенести переведенные строки из 1.2.5 в 1.2.7.Указываем:$rus_xml_file - полный путь к переведенному языковому файлу, берем из переведенной версии.$eng_xml_file - полный путь к языковому файлу требующему перевода, берем из новой версии.$trn_xml_file - полный путь к языковому файлу который будет создан в результате сляния. <?php /** * Invision Power Translator * * @author Android * @email dr.droid@gmail.com * @copyright (c) 2012 Android. * @version 0.1 * */ ######################################################################################## # CONFIG ######################################################################################## //Полный путь к русскому языковому файлу (берем из переведенной версии): $rus_xml_file = ''; //Полный путь к языковому файлу требующему перевода: $eng_xml_file = ''; //Полный путь к языковому файлу который будет создан в результате сляния: $trn_xml_file = ''; ######################################################################################## //////////////////////////////////////////////////////////////////////////////////////// // $rus_xml_txt = file_get_contents($rus_xml_file); $eng_xml_txt = file_get_contents($eng_xml_file); $rus_xml = new SimpleXMLElement($rus_xml_txt, LIBXML_NOCDATA); $eng_xml = new SimpleXMLElement($eng_xml_txt, LIBXML_NOCDATA); //////////////////////////////////////////////////////////////////////////////////////// //Подготовка массива русских значений ($m_rus): $rus_result = $rus_xml->xpath('languagegroup/lang'); $m_rus = array(); while(list( , $node) = each($rus_result)) { $m_rus["{$node->word_key}"] = "{$node->word_default}"; } //print_r($m_rus);//отладка //////////////////////////////////////////////////////////////////////////////////////// //Подготовка массива английских значений ($m_eng): $eng_result = $eng_xml->xpath('languagegroup/lang'); $m_eng = array(); while(list( , $node) = each($eng_result)) { $m_eng["{$node->word_key}"] = "{$node->word_default}"; } //////////////////////////////////////////////////////////////////////////////////////// //Собственно замена английских значений на русские ($m_rus - > $m_eng) и записываем в //файл $trn_xml_file $trn_xml_txt = str_replace($m_eng, $m_rus, $eng_xml_txt); file_put_contents($trn_xml_file, $trn_xml_txt); DoofoceelfDof, Suenseenese и barrick отреагировали на это 3 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.