Symfony 3 从自己的词典中设置翻译,并用 url 切换
Symfony 3 set Translation from own dictionary, and switch with url
我用 Symfony 3 创建了新的简易网络(我是 Symfony 的新手,我检查了 google 中的一些 post,Symfony 中的文档或 Whosebug 上的文档,但没有任何东西不起作用)并且我只需要设置:
- url 路由
/
默认 en
lang 和 /cs
捷克语,/fr
法语 lang,通用选项切换另一个页面例如 /contacts, /fr/contacts /fr/about
等
- 使用我自己的位于
app/Resources/translations
的翻译 yml 文件
- 像这样在 twig 中使用本地化
{{ 'someone'|trans }}
我设置config.yml:
parameters:
locale: cs
framework:
translator: { fallbacks: [cs] }
messages.en.yml
contacts: Contacts
并在base.html.twig中调用它:
<a href="#">{{ contacts|trans }}</a>
非常感谢
这是我的工作解决方案
config.yml:
parameters:
locale: cs
app_locales: cs|en
web_root: '%kernel.root_dir%/../web/'
framework:
#esi: ~
translator: { fallbacks: ['%locale%'] }
default_locale: "%locale%"
在控制器中:
/**
*
* @Route(
* "/", name="home_cs",
* defaults={"_locale":"%locale%"}
* )
* @Route(
* "/{_locale}/", name="home",
* requirements={"_locale":"%app_locales%"}
* )
*
*/
public function indexAction(Request $request) {
return $this->render('home/index.html.twig');
}
模板header.html.twig:
<select class="selectpicker pull-right lang" data-width="fit">
<option data-content='<span class="flag-icon flag-icon-cz"></span>' {% if app.request.getLocale() == 'cs' %}selected{% endif %} >cs</option>
<option data-content='<span class="flag-icon flag-icon-us"></span>' {% if app.request.getLocale() == 'en' %}selected{% endif %} >en</option>
</select>
我用 Symfony 3 创建了新的简易网络(我是 Symfony 的新手,我检查了 google 中的一些 post,Symfony 中的文档或 Whosebug 上的文档,但没有任何东西不起作用)并且我只需要设置:
- url 路由
/
默认en
lang 和/cs
捷克语,/fr
法语 lang,通用选项切换另一个页面例如/contacts, /fr/contacts /fr/about
等 - 使用我自己的位于
app/Resources/translations
的翻译 yml 文件
- 像这样在 twig 中使用本地化
{{ 'someone'|trans }}
我设置config.yml:
parameters:
locale: cs
framework:
translator: { fallbacks: [cs] }
messages.en.yml
contacts: Contacts
并在base.html.twig中调用它:
<a href="#">{{ contacts|trans }}</a>
非常感谢
这是我的工作解决方案
config.yml:
parameters:
locale: cs
app_locales: cs|en
web_root: '%kernel.root_dir%/../web/'
framework:
#esi: ~
translator: { fallbacks: ['%locale%'] }
default_locale: "%locale%"
在控制器中:
/**
*
* @Route(
* "/", name="home_cs",
* defaults={"_locale":"%locale%"}
* )
* @Route(
* "/{_locale}/", name="home",
* requirements={"_locale":"%app_locales%"}
* )
*
*/
public function indexAction(Request $request) {
return $this->render('home/index.html.twig');
}
模板header.html.twig:
<select class="selectpicker pull-right lang" data-width="fit">
<option data-content='<span class="flag-icon flag-icon-cz"></span>' {% if app.request.getLocale() == 'cs' %}selected{% endif %} >cs</option>
<option data-content='<span class="flag-icon flag-icon-us"></span>' {% if app.request.getLocale() == 'en' %}selected{% endif %} >en</option>
</select>