2011-09-30 61 views
1

我已經在PHP5中設置了gettext。經過一些與人物和類似的苦苦掙扎後,我設法翻譯了一些基本的字符串。現在我遇到了一個問題。當翻譯一個空字符串時,我希望得到未翻譯(空)的字符串(糾正我,如果我錯了))。的爲什麼gettext會將空字符串轉換爲.po標題文本?

然而,而不是返回輸入字符串,我得到的.po文件,作爲翻譯的標題:

Project-Id-Version: PACKAGE VERSION Report-Msgid-Bugs-To: POT-Creation-Date: 2011-09-22 15:03+0200 PO-Revision-Date: 2011-09-22 15:37+0200 Last-Translator: timo Language-Team: English Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=ASCII Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 

當我看着一個文本編輯器中的.mo文件,我看到標題似乎放在文件中的隨機位置。我想告訴你,但我不能粘貼文件。它看起來像是我的msgid的列表,然後是標題,然後是我的msgstr的列表

我已經使用以下命令生成的.mo文件:

msgfmt -c -v -o en/LC_MESSAGES/messages.mo messages_en.po 

這個命令我重新啓動我的網絡服務器(lighttpd的)之後。

我做錯了什麼,我該如何解決?

回答

0

只有當消息與空白或空字符串(「」)不同時,纔可以嘗試創建另一個函數來調用gettext。像這樣的事情在PHP中:

function _tl($msg) 
{ 
    $ret = ""; 
    if($msg != "") 
    { 
     $ret = _($msg); 
    }  

    return $ret; 

} 

然後在poEdit的,在你的目錄偏好,關鍵字標籤上使用新的功能_TL的設置。這是poedit會在您的代碼中識別它的方式。

相關問題