我想讓我的yii應用程序多語言。爲此,我想使用gettext(因爲它比yii消息簡單得多)。Yii和PHP Gettext
爲了這個我用this yii extension,我配置了PO文件,我做翻譯等
的一個大問題:什麼都沒有發生。沒有任何翻譯。
我想讓我的yii應用程序多語言。爲此,我想使用gettext(因爲它比yii消息簡單得多)。Yii和PHP Gettext
爲了這個我用this yii extension,我配置了PO文件,我做翻譯等
的一個大問題:什麼都沒有發生。沒有任何翻譯。
我可以建議你這個真棒多語言擴展!
要使用gettext沒有任何擴展遵循這些步驟。在config/main.php
設置YOUT目標語言是這樣的:
'language' = 'ru',
設置messages
組件使用CGettextMessageSource
:(:文件夾名稱是相同的語言代碼註釋)
'messages' => array(
'class' => 'CGettextMessageSource',
),
在protected/messages/ru
文件夾中創建messages.po
文件。如果使用poeditmessages.po
文件必須具有合適的標頭。例如:
msgid ""
msgstr ""
"Project-Id-Version: FOO BAR 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-11 11:11+0300\n"
"PO-Revision-Date: \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-KeywordsList: _ngettext:1,2;t:1c,2\n"
"X-Poedit-SearchPath-0: ../..\n"
注意t:1c,2
。這意味着函數Yii::app()
的第一個參數將用作上下文(請參閱msgctx),第二個參數用作要翻譯的實際字符串。沒有這個你的i18n不會工作!
現在只需打開messages.po
→Update
→做翻譯→Save
。 和messages.mo
文件將由Yii創建和使用。
對於您的語言複數字符串請參閱gettext help。
那麼你的問題是什麼? – Jon
你有什麼用處,可能是什麼問題? –
我只是用這個擴展構建它。我想你已經解決了你的問題?否則,我可以發佈你的解決方案。 – Jurik