首页 > 解决方案 > 当 i18nMissingTranslation 设置为忽略时,消息错过翻译

问题描述

我正在尝试以多种语言为 Web 应用程序提供服务,但是尽管设置i18nMissingTranslationignore,它仍然会在缺少翻译时引发错误。

我已经尝试i18nMissingTranslation在配置中设置,例如在官方i18n 文档prod中定义的单个语言环境配置中并通过命令参数设置:

ng build --prod --i18nFormat xlf --i18nFile src/locale/messages.fr.xlf --i18nLocale fr --baseHref /fr/ --outputPath dist/fr/

导出消息的脚本:

"xi18n": "ng xi18n --i18n-locale en-US --output-path ./locale/ --out-file messages.en-US.xlf"

包含所有语言环境的配置:

"config": {
  "locales": "en-US fr nl"
}

构建语言的脚本:

"build": "ng build --prod",
"build:loop": "for lang in ${npm_package_config_locales}; do LANG=${lang} && npm run-script build:i18n; done",
"build:i18n": "npm run-script build -- --i18nFormat xlf --i18nFile src/locale/messages.${LANG}.xlf --i18nLocale ${LANG} --baseHref /${LANG}/ --outputPath dist/${LANG}/"

如果尚未翻译所有翻译,我希望这可以让我导出缺少目标标签的网站。

相反,我收到每个缺少的目标标签的错误:

ERROR in xliff parse errors:
Message {} misses a translation ("

标签: angularinternationalization

解决方案


解决方案不是按照指示复制空/模板翻译并更新语言来处理它们,而是手动创建一个新文件并从头开始放入新的翻译。

您不希望有缺少target标签的条目,如果它们还没有被翻译,您就不应该拥有这些条目。


推荐阅读