【问题标题】:Translating Kohana-modules in a convenient way?以方便的方式翻译 Kohana 模块?
【发布时间】:2011-09-08 21:52:02
【问题描述】:

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

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

您如何管理 Kohana 项目中不同语言的本地化和翻译?任何提示将不胜感激!

【问题讨论】:

    标签: php localization kohana gettext


    【解决方案1】:

    我就是这样做的。首先,不幸的是,Mac 的 POEdit 非常错误和奇怪。

    在 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 可以轻松维护项目本地化,因为它会同步所有字符串,但只需单击“更新”。我会得到一份关于新的和过时的字符串的报告,并且可以在片刻之后更新本地化。希望它可以帮助某人。

    【讨论】:

      【解决方案2】:

      试试这个I18n_Plural module。我喜欢它处理复数形式的方式,非常简单易行。自述文件中有很多示例(显示在主模块页面上)。

      【讨论】:

      • 感谢您的提示!看起来相当令人印象深刻,但对于我的需求来说可能太先进了。稍后会研究它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多