2010-11-16 36 views
5

翻譯我的PHP應用程序我使用編譯在gettext模塊。PHP:確實gettext需要LC_MESSAGES dirs?

locale/ 
    cs_CZ/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    de_DE/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 
    fr_FR/ 
    LC_MESSAGES/ 
     messages.po 
     messages.mo 

問題:是否有可能擺脫LC_MESSAGES目錄下面是翻譯的一個目錄樹按照文檔做?如果我使用這種結構,PHP能夠找到翻譯嗎?

locale/ 
    cs_CZ/ 
    messages.po 
    messages.mo 
    de_DE/ 
    messages.po 
    messages.mo 
    fr_FR/ 
    messages.po 
    messages.mo 

我的PHP切換譯文:

<?php 
    setlocale(LC_ALL, 'fr_FR.UTF-8'); 
    bindtextdomain("messages", "locale"); 
    bind_textdomain_codeset("messages", 'UTF-8'); 
    textdomain("messages"); 
?> 

預先感謝您。

+3

對不起,沒辦法在那附近。它在gettext庫中是硬連線的。 – mario 2010-11-16 15:37:01

回答

4

唯一可行的解​​決方法是在每個語言子目錄中創建符號鏈接LC_MESSAGES -> .。 (但這會使PHP應用程序安裝變得複雜,FTP很少能創建符號鏈接。)

3

恐怕需要LC_MESSAGES

糾正我,如果我錯了,但我認爲它與gettext緩存有關。

0

如果你真的想這樣做,你可以使用這個作曲家包:gettext/gettext

所以,你可以有文件夾的組織,你的願望,甚至類似的東西:

locales/ 
    cs_CZ.mo 
    cs_CZ.po 
    de_DE.mo 
    de_DE.po 
    fr_FR.mo 
    fr_FR.po