我不知道一種方法來提取automaticaly字符串在文件中翻譯。Zend_Translate:從視圖中自動提取字符串
例如,你有你的佈局和視圖一些echo $this->translate('my_string');
,我想創建的文件「en_US.php」,「fr_FR.php」,「es_ES.php」與比較數組:
<?php return array('my_string' => 'translation of my string'); ?>
這可能嗎?
謝謝。
我不知道一種方法來提取automaticaly字符串在文件中翻譯。Zend_Translate:從視圖中自動提取字符串
例如,你有你的佈局和視圖一些echo $this->translate('my_string');
,我想創建的文件「en_US.php」,「fr_FR.php」,「es_ES.php」與比較數組:
<?php return array('my_string' => 'translation of my string'); ?>
這可能嗎?
謝謝。
看那一個Zend_Translate適配器和選擇一個。我熱烈推薦gettext適配器。
這裏是如何實現國際化在Zend框架應用程序:引導過程中
使用PHP翻譯項目對於小型項目來說非常方便,因此您不應該需要這樣的工具。
gettext有這樣的工具,如poedit,它將解析您的項目並搜索給定的函數/方法(translate()
)。 poEdit的將產生的.po文件,basicly由純/文本文件,它看起來像:
#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""
如果你真的需要使用PHP文件爲您的翻譯,您可以嘗試一些grep
,sed
,awk
,像這應該給一個起點(沒有測試):
echo "return array(" > mytranslation.php | \
grep "translate(" * | \
cut -f1 | \
sed -r '[email protected]*translate\((.*)\).*@\1 => "Not translated yet",@' >> mytranslation.php && \
echo ");" >> mytranslation.php
是的,它是。
把你application.ini
:
resources.translate.adapter = Array
resources.translate.locale = fr_FR
resources.translate.disableNotices = true
resources.translate.data = APPLICATION_PATH "/data"
並把文件fr_FR.php
在APPLICATION_PATH "/data"
目錄。它應該工作。
文件必須是這樣的:
return array (
'Good day' => 'Bojour',
);
我認爲你需要gettext adapater和一個像poedit這樣的工具 – opHASnoNAME 2011-03-19 14:30:50