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

Php 以方便的方式翻译Kohana模块?,php,localization,kohana,gettext,Php,Localization,Kohana,Gettext,我一直在寻找一种方便的方法来制作和维护我的Kohana模块的翻译。我已经玩过POEdit,并从我的模块中提取了所有的。就像POedit的工作方式一样,只需运行一个快速更新来收集所有新字符串,然后保存一个新目录。我可以…所有的步骤都有点复杂 我已经看过了,但我宁愿不安装表和新的翻译模块,我认为这会变得复杂和“drupalish”;-) 您如何管理Kohana项目中不同语言的本地化和翻译?任何提示都将不胜感激 试试这个。我喜欢它处理复数形式的方式,非常简单。自述文件中有很多示例(显示在主模块页面上)

我一直在寻找一种方便的方法来制作和维护我的Kohana模块的翻译。我已经玩过POEdit,并从我的模块中提取了所有的。就像POedit的工作方式一样,只需运行一个快速更新来收集所有新字符串,然后保存一个新目录。我可以…所有的步骤都有点复杂

我已经看过了,但我宁愿不安装表和新的翻译模块,我认为这会变得复杂和“drupalish”;-)


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

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

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

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

在POEdit中,创建了一个新目录,其中包含正确的路径和作为关键字的_u

运行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?>";
$file='sv_SE.po';
$translations=array();
$po=文件($file);
$current=null;
foreach($po作为$line){
如果(substr($line,0,5)='msgid'){
$current=trim(substr(trim(substr($line,5)),1,-1));
}
如果(substr($line,0,6)=‘msgstr’){
$translations[$current]=trim(substr(trim(substr($line,6)),1,-1));
}
}

echo“我就是这样做的。首先,不幸的是,Mac的POEdit非常有缺陷和奇怪

在POEdit中,创建了一个新目录,其中包含正确的路径和作为关键字的_u

运行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?>";
$file='sv_SE.po';
$translations=array();
$po=文件($file);
$current=null;
foreach($po作为$line){
如果(substr($line,0,5)='msgid'){
$current=trim(substr(trim(substr($line,5)),1,-1));
}
如果(substr($line,0,6)=‘msgstr’){
$translations[$current]=trim(substr(trim(substr($line,6)),1,-1));
}
}

echo“谢谢你的提示!看起来很令人印象深刻,但可能对我的需要来说太高级了。我以后再查。谢谢你的提示!看起来很令人印象深刻,但可能对我的需要来说太高级了。我以后会调查的。