Php Symfony 3从自己的字典设置翻译,并使用url切换
我使用Symfony 3创建了新的easy web(我是Symfony的新手,我在google中查看了一些帖子,在Symfony中查看了一些文档,或者在StackOverflow上查看了这里,但没有任何东西起作用),我只需要设置:Php Symfony 3从自己的字典设置翻译,并使用url切换,php,symfony,symfony-3.3,Php,Symfony,Symfony 3.3,我使用Symfony 3创建了新的easy web(我是Symfony的新手,我在google中查看了一些帖子,在Symfony中查看了一些文档,或者在StackOverflow上查看了这里,但没有任何东西起作用),我只需要设置: url路由/默认为enlang和/cs捷克lang,/fr法语lang,具有切换另一页面的通用选项,例如/contacts,/fr/contacts/fr/about等 使用位于app/Resources/translations 像这样在细枝中使用本地化{{'so
- url路由
默认为/
lang和en
捷克lang,/cs
法语lang,具有切换另一页面的通用选项,例如/fr
等/contacts,/fr/contacts/fr/about
- 使用位于
app/Resources/translations
- 像这样在细枝中使用本地化
{{'someone'| trans}}
parameters:
locale: cs
framework:
translator: { fallbacks: [cs] }
<a href="#">{{ contacts|trans }}</a>
messages.en.yml
contacts: Contacts
并在base.html.twig中调用它:
parameters:
locale: cs
framework:
translator: { fallbacks: [cs] }
<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');
}
<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>
在控制器中:
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');
}
<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>
模板头.html.twig:
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');
}
<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>
反恐精英
EN
问题出在哪里?在列表中,翻译不起作用,我不知道哪里出了问题或缺少了什么(例如在控制器中),我想我需要一些路由字符串。您正在返回cs,是否有messages.cs.yml
文件?另外,请尝试清除缓存以确保问题持续存在。全力以赴,没有任何帮助,默认lang可以正常工作,但如果我将/en/param添加到url,我会收到主题消息未找到“GET/en/”
的路由,是否退出一些通用路由以获得语言翻译支持?我现在在routing.ymlapp:resource:“@AppBundle/Controller/”type:annotation