Перейти к контенту

Автоматическая локализация lang-файлов по предыдущим версиям


Рекомендуемые сообщения

Суть работы скрипта:

Скрипт облегчает перенос переведенных строк из одного 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);

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.