我一直在寻找一种方便的方法来制作和维护我的Kohana模块的翻译。我玩过POEdit并从我的模块中提取了所有__()。真的很喜欢POedit的工作方式,它只是运行快速更新来收集所有新字符串并在以后保存新目录。我可以事后convert the po-files to PHP-arrays ......所有步骤看起来有点复杂。
我见过this approach但我宁愿不安装表格和翻译的新模块,我认为这会变得复杂和“drupalish”; - )。
如何在Kohana项目中管理不同语言的本地化和翻译?任何提示都将非常感谢!
答案 0 :(得分:1)
这就是我做的。首先,不幸的是,POEdit for Mac是非常错误和奇怪的。
在POEdit中,创建了一个包含正确路径和__作为关键字的新目录。
运行POEdit以提取所有字符串。
在此之后,我在生成的PO文件上运行了这个简单的PHP脚本。脚本的输出我粘贴到项目的i18n文件夹中的文件中。
$file = 'sv_SE.po';
$translations = array();
$po = file($file);
$current = null;
foreach ($po as $line) {
if (substr($line,0,5) == 'msgid') {
$current = trim(substr(trim(substr($line,5)),1,-1));
}
if (substr($line,0,6) == 'msgstr') {
$translations[$current] = trim(substr(trim(substr($line,6)),1,-1));
}
}
echo "<?php\n\n";
foreach ($translations as $msgid => $msgstr) {
echo '\'' . $msgid . '\' => \'' . $msgstr . "',\n";
}
echo "\n?>";
通过使用POEdit,可以轻松维护项目本地化,因为它正在同步所有字符串,只需单击“更新”即可。我将获得一个新的和过时的字符串的报告,并可以在几分钟内更新本地化。希望它可以帮到某人。
答案 1 :(得分:0)
试试这个I18n_Plural module。我喜欢它如何处理复数形式,非常简单和容易。自述文件中有很多示例(显示在主模块页面上)。