gpt4 book ai didi

php - 如何在 Symfony2 中使用 Gettext (.mo/.po) 文件?

转载 作者:可可西里 更新时间:2023-11-01 01:00:18 24 4
gpt4 key购买 nike

我想使用 GettextSymfony2 上翻译我的网站

../Resources/translations/ 我有这样的翻译文件:

translations/en/LC_MESSAGES/en.mo
translations/en/LC_MESSAGES/en.po
translations/fr/LC_MESSAGES/fr.mo
translations/fr/LC_MESSAGES/fr.po
...

我已经在 Symfony2 cookbook 的帮助下将默认局部变量配置为 french(fr) http://symfony.com/doc/current/book/translation.html#the-locale-and-the-url

当我转到 app_dev.php/fr/hello/test 时,我的 Hello World 是英文的。我还需要配置其他东西吗?

已经尝试过这个配置:Configure Translation component in Symfony 2 to use get text

最佳答案

在 Symfony 中使用 Gettext (.mo/.po) 文件非常简单,不需要任何额外的包。

以下是关于如何使用*.po 文件进行翻译的示例。

首先在parameters.yml中添加default_locale参数:

parameters:
# ...
default_locale: en_US
# ...

然后在config.yml中启用翻译器:

framework:
# ...
translator:
enabled: true
fallbacks: ['%default_locale%']
paths:
- '%kernel.root_dir%/Resources/translations'
# ...

并将服务添加到services.yml文件中:

translation.loader.po:
class: Symfony\Component\Translation\Loader\PoFileLoader
tags:
- { name: translation.loader, alias: po }

使用以下结构将您的 mo/po 翻译文件放在 app/Resources/translations 下:

app/Resources/translations/messages.en.po

app/Resources/translations/messages.it.po

...

现在您可以从您的 Controller 调用:

$this->get('translator')->trans('my.message.id');

关于php - 如何在 Symfony2 中使用 Gettext (.mo/.po) 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com