以方便的方式翻译Kohana模块?

时间:2011-06-05 21:20:50

标签: php localization kohana gettext

我一直在寻找一种方便的方法来制作和维护我的Kohana模块的翻译。我玩过POEdit并从我的模块中提取了所有__()。真的很喜欢POedit的工作方式,它只是运行快速更新来收集所有新字符串并在以后保存新目录。我可以事后convert the po-files to PHP-arrays ......所有步骤看起来有点复杂。

我见过this approach但我宁愿不安装表格和翻译的新模块,我认为这会变得复杂和“drupalish”; - )。

如何在Kohana项目中管理不同语言的本地化和翻译?任何提示都将非常感谢!

2 个答案:

答案 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。我喜欢它如何处理复数形式,非常简单和容易。自述文件中有很多示例(显示在主模块页面上)。