我一直在四处寻找,但我还没有找到一种内置方法来获取特定 symfony 应用程序支持的语言列表(即项目中具有翻译文件的语言列表)。我见过的几乎每个代码示例都只是硬编码了一系列受支持的语言,但我更喜欢动态解决方案。我能想到的唯一其他方法是实际上只查看 messages.language.yml 文件的名称,但我想首先验证是否没有某种内置方法可以执行此操作?
没有内置方法。
发现拥有翻译文件的所有语言的唯一方法是查找包含翻译的所有文件夹并从文件中获取语言环境。
现在框架中有一个专门针对此的设置:
framework:
enabled_locales: ['en', 'es']
在 twig 中,你可以从 app 变量中获取这些
{% for supportedLocale in app.enabled_locales %}
{{ supportedLocale }}
{% endfor %}