开发者

Translating Kohana-modules in a convenient way?

开发者 https://www.devze.com 2023-03-10 19:35 出处:网络
I have been looking for a convenient way of making and maintaining translations of my Kohana-modules. I have played around with POEdit and have extracted all __()\'s from my modules. Really like the w

I have been looking for a convenient way of making and maintaining translations of my Kohana-modules. I have played around with POEdit and have extracted all __()'s from my modules. Really like the way POedit works, and it's just to run a quick update to gather all new strings and save a new catalog later on. I could afterwards convert the po-files to PHP-arrays sort of...it seems a bit complicated with all steps.

I have seen this approach but I would rather not install tables and new modules for translations, I think this gets 开发者_如何转开发to complicated and "drupalish" ;-).

How do you managing localizations and translations on different languages in your Kohana-projects? Any hints would be much appreciated!


This is how I did it. First of all POEdit for Mac is very buggy and strange, unfortunately.

In POEdit, created a new catalog with correct path and __ as a keyword.

Run POEdit to extract all the strings.

After this I ran this simple PHP-script over the generated PO-file. The output from the script I pasted into the files in i18n-folder of the project.

$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?>";

By using POEdit it's easy to maintain the project-localizations since it's syncing all the strings but just clicking "Update". I'll get a report of new and obsolete strings and can update the localizations in a few moments. Hope it helps someone.


Try this I18n_Plural module. I like how it handles plural forms, very simple and easy. There is a lot of examples in readme file (showing on a main module page).

0

精彩评论

暂无评论...
验证码 换一张
取 消