2012-02-14 91 views
1


的表单助手CakePHP的2.0.6在1.3作品完美),不接受应用程序/地点/ PT_BR/LC_MESSAGES/default.po。
当我打开检查文件,我看到:翻译表单助手月CakePHP的

__d('cake', 'January'); 

如何我可以覆盖“__d”和/或“蛋糕”插件。
因为,当我改变_ d()到_(),工作正常,但我认为这不是一个完美的解决方案。

__('January'); 

谢谢。
对不起,我的英语,我是巴西人

回答

3

移动所有这些翻译成app/Locale/pt_br/LC_MESSAGES/cake.po__d中的d切换到另一个,而这些域在LC_MESSAGES目录中仅仅是不同的文件。

+0

不工作我的朋友。现在我有:app/Locale/pt_br/LC_MESSAGES/cake.po,并且返回__d给FormHelper .... so:再次用英语。我做错了什么? – 2012-02-14 11:40:54

+0

可能缓存? – deceze 2012-02-14 11:45:24

+0

没有我的朋友,真的不行。我尝试翻译,但没有任何工作。 – 2012-02-16 17:39:33

5

我搜索了一个小时的解决方案,因为我遇到了同样的问题。这是我如何做的:

  1. /app/Locale/[your language key]/LC_MESSAGES/

  2. 复制创建cake.po翻译文件在此文件中的以下和msgstr条目翻译成你的语言:

    msgid "January" 
    msgstr "Januar" 
    
    msgid "February" 
    msgstr "Februar" 
    
    msgid "March" 
    msgstr "März" 
    
    msgid "April" 
    msgstr "April" 
    
    msgid "May" 
    msgstr "Mai" 
    
    msgid "June" 
    msgstr "Juni" 
    
    msgid "July" 
    msgstr "Juli" 
    
    msgid "August" 
    msgstr "August" 
    
    msgid "September" 
    msgstr "September" 
    
    msgid "October" 
    msgstr "Oktober" 
    
    msgid "November" 
    msgstr "November" 
    
    msgid "December" 
    msgstr "Dezember" 
    
  3. 添加Configure::write('Config.language', '[your language key (same as the folder created above)]');到你的引导程序或将它设置在其他地方。

  4. Tada!

说明:在CakePHP的帮手月份名称是通过cake域译:__d('cake', 'January')see file on github)在default.po文件,以便正常翻译将无法正常工作。

+0

是的,我这样做,但没有工作。唯一的方法是改变原始的FormHelper.php。无论如何,非常感谢你。 – 2012-07-31 17:47:50

+0

只是好奇:您是否尝试使用符合ISO 639-2标准的三字符区域代码而不是'pt_br'?上面的作品完美地在我的应用程序,所以我不能相信它不工作:) – 2012-07-31 18:43:02

+0

所以,我试试这个,但没有任何事情发生。在这里查看详细信息:https://gist.github.com/3222238(我使用'cpp'语言 - 仅用于测试 - 我可以吗?) – 2012-08-01 01:15:42