在CakePHP中本地化timeAgoInWords

在CakePHP中本地化timeAgoInWords,cakephp,localization,internationalization,cakephp-2.0,timeago,Cakephp,Localization,Internationalization,Cakephp 2.0,Timeago,在我的CakePHP应用程序中, 通过使用cake.bat我创建了POT文件,通过使用PoEdit我创建了PO文件。 因此,通过编写。(“myword”)我可以在我的应用程序中成功地看到本地化的word 但现在我需要本地化“timeAgoInWords”。 当我运行蛋糕i18n extract时,脚本没有在CakeTime中获取\u dn()单词 因此,我创建了一个dummy.ctp文件,并将粘贴的内容从蛋糕时间文件复制到dummy文件。 我再次运行蛋糕脚本和POEdit。它在app/Loca

在我的CakePHP应用程序中, 通过使用cake.bat我创建了POT文件,通过使用PoEdit我创建了PO文件。 因此,通过编写。(“myword”)我可以在我的应用程序中成功地看到本地化的word

但现在我需要本地化“timeAgoInWords”。 当我运行蛋糕i18n extract时,脚本没有在CakeTime中获取\u dn()单词

因此,我创建了一个dummy.ctp文件,并将粘贴的内容从蛋糕时间文件复制到dummy文件。 我再次运行蛋糕脚本和POEdit。它在app/Locale/tur/LC_MESSAGES/default.po文件中创建了如下实例

#: View\App\dummy.ctp:30;33
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d dakika"
msgstr[1] "%d dakika"
在core.php中,我已经将默认语言设置为土耳其语:

Configure::write('Config.language', 'tur');
但是当我检查我的申请表时,timeAgoInWords的结果是英文的


如何修复此问题

Cake的消息被提取到不同的域中,在本例中为
Cake
域。这意味着蛋糕消息不会被提取到您的
default.pot
文件中,而是会被提取到
cake.pot
文件中

奇怪的是,cake.pot似乎没有包含在下载中,i18n shell也不允许您在提取过程中传递参数以包含蛋糕核心。但是,这仍然很容易做到(我的评论以
#
开头):

现在等待提取完成,享受翻译的痛苦;)

相关的:
$:/var/www/path/app$ cake i18n extract

# if will ask you here if you want to extract from your app folder
# simply press enter to confirm
What is the path you would like to extract?
[Q]uit [D]one  
[/var/www/path/app/]

# now it will ask you again, in this case enter the cake path
What is the path you would like to extract?
[Q]uit [D]one  
[D] > /var/www/path/lib/Cake

# third time, just press enter
What is the path you would like to extract?
[Q]uit [D]one  
[D] > 

# press enter to accept the app/Locale
What is the path you would like to output?
[Q]uit  
[/var/www/path/app//Locale] > 

# press enter to keep translation domains deparate
Would you like to merge all domains strings into the default.pot file? (y/n) 
[n] >