我嘗試爲多語言PHP網站創建資源文件。 我創建了.po文件,然後轉換爲二進制.mo文件與這個小庫https://github.com/josscrowcroft/php.mo,但他們似乎並沒有工作。但是,如果我用Poedit打開生成的.po文件,然後點擊保存,我發現.mo文件的大小與最初的文件大小相比有所變化,而.po文件的工作原理也是如此。我不知道如何在不使用Poedit工具的情況下直接使用它。如何在php中使用從數據庫翻譯的strigs生成.po文件?
請給我一些建議,如果你有!由於
我嘗試爲多語言PHP網站創建資源文件。 我創建了.po文件,然後轉換爲二進制.mo文件與這個小庫https://github.com/josscrowcroft/php.mo,但他們似乎並沒有工作。但是,如果我用Poedit打開生成的.po文件,然後點擊保存,我發現.mo文件的大小與最初的文件大小相比有所變化,而.po文件的工作原理也是如此。我不知道如何在不使用Poedit工具的情況下直接使用它。如何在php中使用從數據庫翻譯的strigs生成.po文件?
請給我一些建議,如果你有!由於
下面的文本是http://php.net/manual/en/book.gettext.php
複製「 一個重要的事情要記住: 不要忘記設置字符集在.po文件 例如:
」內容-Type:text/plain;字符集= UTF-8 \ n」個
然後PHP就可以找到你生成,使用的msgfmt .mo作爲文件,從字符集設置.po文件。
正因爲如此,我浪費了很多時間了代碼調試,每一個變化不大的人來測試建議本手冊及互聯網上:
<?php
//this:
setlocale(LC_MESSAGES, 'pt_BR')
//or this:
setlocale(LC_MESSAGES, 'pt_BR.utf8')
//or this:
setlocale(LC_MESSAGES, '')
//this:
putenv("LANG=pt_BR.utf8");
//or this:
putenv("LANGUAGE=pt_BR.utf8");
//this:
bindtextdomain('mydomain', dirname(__FILE__).'/locale');
//or this:
bindtextdomain("*", dirname(__FILE__).'/locale');
//or this:
bindtextdomain('*', dirname(__FILE__).'/locale');
//setting or not "bind_textdomain_codeset()":
bind_textdomain_codeset("mydomain", 'UTF-8');
?>
以及什麼locale目錄名來設置:
./locale/pt_BR.UTF8/LC_MESSAGES /mydomain.mo
或
./locale/pt_BR/LC_MESSAGES/mydomain.mo
或
./locale/pt/LC_MESSAGES/mydomain.mo
最後,代碼,其帶來的正確翻譯的字符串(也帶有正確的字符集)是:
<?php
$directory = dirname(__FILE__).'/locale';
$domain = 'mydomain';
$locale ="pt_BR.utf8";
//putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows
setlocale(LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
?>
然後使用pt_BR計算出三個目錄的名稱.utf8語言環境。 (我的測試是重新啓動Apache然後嘗試每個目錄)。
我希望能幫助別人,因爲我已經浪費不浪費太多的時間... = P
使用: 的Ubuntu 8.04(代) 的Apache 2.2.8 PHP 5.2.4-2ubuntu5 .0 「
可能重複的[.po到.mo轉換器在PHP?](http://stackoverflow.com/questions/1181681/po-to-mo-convertor-in-php) – 2014-10-18 14:06:12
問題是不是在.mo文件中轉換.po文件,而是在.po文件的創建中。如果我查看由我和Poedit創建的.po文件,它們在內容上看起來完全相同,但不知何故,大小是有點不同!我希望我能我自己更清楚 – Bogdan 2014-10-18 14:34:03