0

我用 Symfony 3 创建了新的简单网络(我是 Symfony 的新手,我在 google 中查看了一些帖子,在 Symfony 中或在 StackOverflow 上查看了一些帖子,但没有什么不起作用),我只需要设置:

  • url 路由/作为默认en语言,/cs对于捷克语言,/fr对于法语语言,具有通用选项来切换另一个页面,例如/contacts, /fr/contacts /fr/about
  • 使用我自己的翻译 yml 文件位于app/Resources/translations
  • 像这样在树枝中使用本地化{{ 'someone'|trans }}

我设置config.yml

parameters:
     locale: cs

framework:
     translator: { fallbacks: [cs] }

消息.en.yml

contacts: Contacts

并在base.html.twig中调用它:

<a href="#">{{ contacts|trans }}</a>

非常感谢

4

1 回答 1

0

这是我的工作解决方案

配置.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>
于 2018-10-30T10:18:00.097 回答