我正在使用JMSI18nRoutingBundle来内部化应用程序的路由,它是一些不错的软件,但不幸的是没有很好的文档记录,我不确定如何实现不同语言环境的路由中字符串的翻译,尽管它在文档中作为示例给出
。我想要的是(默认本地没有前缀,所有其他翻译并带有语言环境前缀):
/联系
/de/kontakt
问题出在以下配置上:
jms_i18n_routing:
default_locale: en
locales: [en, de]
strategy: prefix_except_default
路由生成如下:
/联系
/去/联系
我看不到为 de route 输入 kontakt 的设置,它是某些特殊消息目录或每路由配置选项的一部分吗?
我发现它是由翻译目录处理的。路由是从中加载的。有一个命令可以从路由器中提取它们并将它们放入目录中:
php bin/console translation:extract LANGUAGE --bundle=BUNDLE --enable-extractor=jms_i18n_routing --output-format=xliff --dir=RESOURCE_FOLDER --domain=routes
其中 LANGUAGE 是目标语言,BUNDLE 是从中提取路线的捆绑包,RESOURCE_FOLDER是放置翻译的位置。