symfony 8.2的翻译改进可以用于整理xliff源文本和twig文件内的默认翻译域。本教程适用于8.2开发分支及php 8.4以上环境;在旧稳定版中,新增命令和for _self语法不能直接照搬。
先确认默认语言和修改范围
检查项目默认语言对应的消息是否已有可读文本,并保存当前translations目录的版本记录。更新命令只处理项目翻译目录及framework.translator.paths指定的位置,不负责修改vendor依赖中的翻译文件。
用默认语言补齐XLIFF源文本
php bin/console translation:update-xliff-sources --locales=fr --domains=messages
上例只处理fr语言、messages翻译域。若消息键menu.home在默认语言中的文本为Home,更新后对应source应体现Home,而不是继续仅显示消息键。检查文件差异后,再运行翻译导出或交给翻译工具处理。

Symfony官方文档中的XLIFF源文本更新命令
让embed和宏沿用同一翻译域
{% trans_default_domain 'catalog' for _self %}
<h2>{{ 'product.name'|trans }}</h2>将声明放在模板块之外,并置于embed之前。同一模板只能声明一次,域名必须是字面量。此设置覆盖当前文件中的embed主体和宏;它不修改其他被include或extends的模板,局部trans_default_domain仍可覆盖自己的作用域。
核对提取结果与表单消息
新提取器可识别更多PHP表达式及Twig表单标签、帮助文本,但仍应检查实际输出的语言文件。表单使用translation_domain选择消息域,不能仅修改普通Twig默认域就假定表单标签同步改变。
迁移完成后,对常规页面、embed内容、宏和表单分别检查译文。确认译文及文件差异符合预期后,再将修改纳入部署计划。


















