Зачастую в таких сообщениях просто слово, либо словосочетание и простое предложение. Google Translate прекрасно справится с таким заданием, и сэкономит кучу времени переводчику (и денег вам!).
Выкладываю, как есть у меня. Оформлено в виде команды, которую можно запустить на локальной машине через cmd:
messagesTranslateCommand.cmd
Код: Выделить всё
color 4f
php ..console.php messagesTranslate withCopy
pause
Естественно, что предварительно сообщения уже должны лежать в /protected/messages/langname/.
Это можно сделать с помощью shell:
message_config.php
Код: Выделить всё
<?php
return array (
'sourcePath' => './',
'messagePath' => './messages',
'languages' => array ('en', 'fr', 'it', 'uk'),
'fileTypes' => array ('php'),
//'exclude' => array (),
//'translator' => 'Yii:t'
);
?>
Код: Выделить всё
yiic.bat message message_config.php
Программа запускает автоперевод, если значение ключа в файле пустое, заполненные не трогает.
В любом случае, даже если переведет некорректно, переводчику проще исправить, чем писать заново.
Гугл конечно запрещает использование авто-средств перевода, и хочет, чтобы любой запрос был инициирован конечным пользователем.
Я ввел обработку этих ситуаций. В среднем после 1500-2000 переведенных сообщений, придется поменять IP
В самом классе можно установить свойство $translateType
В коде $translateType=1 - отвечает за полный перевод, кроме ключей содержащих словоформы,
$translateType=2 - будет переводить только ключи с числом пробелов не больше 2.
По умолчанию исходный язык - это Yii::app()->sourceLanguage. Но можно указать свойство $forceSourceLang - вместо false поставить строку с языком.
Свойство $toLangs:
Код: Выделить всё
public $toLangs = array (
// название каталога с сообщениями => язык гугла
'en' => 'en',
'fr' => 'fr',
'it' => 'it',
'uk' => 'uk'
);
Свойство $translateDirName:
Код: Выделить всё
public $translateDirName = array (
1 => '_auto_translate_full',
2 => '_auto_translate_max_three_words'
);
Ну вроде все скачивайте сам файл и поиграйтесь )) файл нужно положить в /protected/commands