当前位置: 首页 > 知识库问答 >
问题:

用CakePHP 3进行i18n翻译

谷梁智
2023-03-14

我想用法语和英语翻译我的应用程序。我完全遵循了CakePHP3文档,但它不起作用。

在我的开发中,我使用了一个vagrant框来轻松启动并运行CakePHP3。这个盒子名叫“流浪厨师”

我修改了第100行,将法语作为默认语言。

ini_set('intl.default_locale', 'fr_CA');

我将此方法添加到默认页面控制器

public function initialize() {
    I18n::locale('en');
}

我加了这两行

    <?php echo __('Hey, bonjour'); ?>
    <?php echo __('Je teste la traduction'); ?>

从终端,我输入这个命令bin/cake i18n extract。CakePHP在/src/Locale/中创建了2个文件。那些文件是cake。pot默认值。pot。我翻译了默认值。像这样的文件:

...
msgid "Hey, bonjour"
msgstr "Hey, hello"
...

/src/Locale文件现在如下所示:

/en
   /default.pot

尽管我尝试翻译我的应用程序,但我没有得到任何工作。我认为这是缓存问题,所以我删除了/tmp/Cache/persistent/中的文件。

谢谢

共有1个答案

微生毅
2023-03-14

。由cake i18n extract生成的pot是模板文件。您的每种语言文件需要是。采购订单。因此,根据您的示例,它应该是src/Locale/en/default。采购订单

 类似资料:
  • 当我忘记翻译项目视图中的某个地方时,我会更改文件/app/Locale/por/LC_MESSAGES/default。po并将其发送回服务器。 但最重要的是,这个“新翻译”需要几个小时才能被查看,简言之:我只是发送文件,清理缓存和浏览器CakePHP,按F5,然后。。。什么也没发生。 出于什么原因? [编辑]

  • 我有英文的php gettext默认语言 我想在我的一个控制器,翻译一些词在2个其他语言,并把他们全部在一个数组。 理想情况下我可以 但它并不存在。 是每次更改gettext设置的唯一方法吗? 相关:在Google:i18n之后用gettext看到了它,但没有地方设置的麻烦? 以下是建议的已回答的解决方案: https://github.com/philip15b/php-i18n(似乎是最佳解决

  • 问题内容: 我正在尝试获取在请求中发送的确切JSON。这是我的代码: 但是我只在日志中看到: 考虑到删除了Retrofit 1 ()以及我们以前使用的Retrofit 1 ,我应该如何正确记录? 问题答案: 在Retrofit 2中,你应该使用HttpLoggingInterceptor。 将依赖项添加到。截至2019年10月的最新版本是: 创建一个Retrofit如下所示的对象: 如果有弃用警告

  • 问题内容: 我正在开发Angular Web应用程序的i18n部分,我想在配置阶段使用angular-translate。 我定义了一些我想翻译的数据: 这是我的配置声明: 我得到的错误是经典 错误 : 错误:[$ injector:unpr]未知提供程序:$ filter 我知道我不能在配置阶段使用服务,只能在提供程序中使用,但是我的问题有解决方案吗? 编辑: 我的问题已经解决,方法是将键 ‘t

  • 我正在使用CSS关键帧动画两个单独的文本。 我面临的问题是,在100%动画完成时第一个span元素(“first text”)的文本突然出现,而不是在“first text”完成后第二个span元素的文本翻转。 null null

  • 我用Django1.3/Google应用引擎编写程序,发现缺乏支持和奇怪的行为。 首先,ungettext不支持波兰语直接查看,但Django1.3支持PO文件标记复数形式(许多非英语语言有多个复数形式)--我为波兰语做了这样的操作--也许俄语也会这样: 复数形式:nplurals=3;复数=(n==1?0:n%10>=2&n%10<=4&(n%100<10n%100>=20)?1:2); 我举了