我想在目录中保存翻译文件,例如:
/translations/admin/messages.en.xlf
/translations/admin/validation.en.xlf
/translations/client/messages.en.xlf
/translations/client/validation.en.xlf
以及如何在Controllers和Twig模板中使用这些翻译?
翻译资源/文件名称和位置
Symfony在以下默认位置查找消息文件(即翻译):
- translations /目录(在项目的根目录);
- 任何bundle内的Resources / translations /目录。
这里列出的位置优先级最高。也就是说,您可以在前两个目录中的任何一个中覆盖包的转换消息。
覆盖机制在密钥级别工作:只有被覆盖的密钥需要列在更高优先级的消息文件中。如果在消息文件中找不到密钥,则转换程序将自动回退到优先级较低的消息文件。
资料来源:https://symfony.com/doc/4.2/translation.html#translation-resource-file-names-and-locations
后来在同一页/章节
您可以在配置中使用paths选项添加其他目录:
配置/包/ translation.yaml
framework: translator: paths: - '%kernel.project_dir%/translations/admin' - '%kernel.project_dir%/translations/client'
您可以将它们用作任何其他翻译文件,记住上面引用的重写机制