Symfony 5.3+集成Crowdin翻译提供器后pull命令无法更新本地文件
问题原因及排查步骤
- 首先确认Crowdin项目翻译已发布:Symfony的Crowdin翻译提供器默认只会拉取发布分支的内容,仅在编辑器内保存、批准翻译不会自动同步到发布分支,需手动触发项目构建发布,或在项目设置的「Workflow」板块开启已批准翻译自动同步到发布分支的配置。
- 检查ICU格式参数与文件命名的匹配性:你拉取时添加了
--intl-icu参数,要求本地翻译文件必须使用{domain}+intl-icu.{locale}.{ext}的命名格式(如messages+intl-icu.en.xlf)。如果你的本地文件是普通的messages.en.xlf格式,两者domain不匹配,拉取到的内容就无法写入对应文件,要么重命名本地文件符合ICU命名规范,要么拉取时移除--intl-icu参数即可。 - 核对Crowdin导出路径配置:需在项目根目录的
crowdin.yml配置文件中添加导出路径规则,确保和本地翻译文件的存放路径、命名规则完全匹配,参考配置如下:
export_patterns: - "translations/%domain%+intl-icu.%locale%.xlf"
如果导出路径不匹配,Symfony拉取后无法对应到正确的本地文件,就会生成默认的占位符翻译内容。
- 确认语言代码一致性:检查Crowdin项目语言设置中的英文语言代码是否和你命令中
--locales=en的参数完全一致,若Crowdin侧使用的是en-US等细分语言代码,参数需要同步修改为对应值,否则会拉取不到已翻译内容。
内容的提问来源于stack exchange,提问作者Jan Klan
相关产品推荐
相关产品推荐

