CakePhp上的LC_TIME翻译有问题

时间:2018-08-31 20:10:37

标签: php cakephp-2.0 caketime

我有一个Cakephp 2.9多语言应用程序,并使用.po文件来翻译__('example')之类的字符串。到目前为止还算不错,但是我已经尝试了一段时间,以翻译以下日期:

2018年8月31日,星期五,16:03

收件人:

Vie,Ago 31 2018,16:03

这是我的代码:

          setlocale("LC_ALL", "es_ES.UTF-8");
          App::uses('CakeTime', 'Utility');
          echo CakeTime::nice();  

我已经从本地化存储库(https://github.com/cakephp/localized)下载了西班牙语文件,并将它们放入app \ Locale \ spa \ LC_TIME中,但日期仍以英文显示。

有人可以帮助我吗?也许这是错误的方法?

1 个答案:

答案 0 :(得分:0)

好吧,我发布问题后不久就意识到我尝试过的所有方法都可以,直接使用caketime或strftime,问题出在setlocale上:

更改了此内容

setlocale("LC_ALL", "es_ES.UTF-8");

对此:

setlocale(LC_TIME, 'es_ES.utf8','esp');

所以我的两个结果是:

echo ucfirst(strftime('%A '.$number_of_the_day.' %B %Y'));
//Viernes 31 agosto 2018

echo __('Today is ').CakeTime::nice();
//Hoy es vie, ago 31st 2018, 16:29 

它的工作原理很吸引人,但是我非常喜欢一个表,其中解释了所有这些语言代码,因此我们可以像我一样对每个语法使用正确的语法而不必猜测。