我想知道蛋糕php中的多语言。如何在.po文件中写入事务。 我想使用英语和法语两种语言,现在我在下面的路径中创建了两个default.po文件
/app/Locale/eng/LC_MESSAGES/default.po (English)
/app/Locale/fra/LC_MESSAGES/default.po (French)
如何访问default.po文件以及我必须在default.po文件中编写的内容
请帮我找出解决方案。
感谢Sanjib
答案 0 :(得分:2)
<强> 1。最低限度检查它是如何工作的
在查看中使用函数__()
,例如,用英语(主要语言)写一下:
<?php echo __('My name is Tom');?>
然后在你的.po
文件中查找法语/ app / Locale / fra / LC_MESSAGES / default.po 翻译:
msgid "My name is Tom"
msgstr "Mon nom est Tom"
您可以使用poedit或良好的PHP编辑器(UTF-8),例如eclipse
然后在您的控制器中,可以AppController.php
- &gt; public function beforeFilter()
您可以将您的语言设置为:
$this->Session->write('Config.language', 'fra');
和...
不要忘记在/Config/core.php
中设置您的主要语言,如:
Configure::write('Config.language', 'eng');
并使用会话组件 - 在您的控制器中:
public $components = array('Session');
的 2。完整的多方计划系统
你需要:
$this->_setLanguage();
,以便从URL参数获取语言App ::使用(&#39; HtmlHelper&#39;,&#39; View / Helper&#39;); class MyHtmlHelper扩展了HtmlHelper {
public function url($url = null, $full = false) { if(!isset($url['language']) && isset($this->params['language'])) { $url['language'] = $this->params['language']; } return parent::url($url, $full); } }
<强>更新强>
所有语言的区域设置字段表格:http://api.cakephp.org/2.4/source-class-L10n.html#177-326
答案 1 :(得分:1)
请参阅CakePHP书中的这个基本指南:http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html。
您问题的具体答案:通过蛋糕生成po文件后,您应该使用翻译程序打开它们(例如,po-edit)。在那里你可以插入所有的翻译。之后,程序将写入po文件并生成mo文件。 CakePHP应该自动读取并本地化您的应用程序!