如何查找缺失或未使用的翻译信息

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何查找缺失或未使用的翻译信息

在维护应用程序或包时,您可能会添加或删除翻译消息,而忘记更新消息目录。的调试:翻译命令帮助您找到这些丢失或未使用的翻译消息模板:

1 2 3 4 5 6 7 8
{#消息可以在使用trans/transchoice过滤器和标签时找到#}{%反式%}ob娱乐下载Symfony很棒{%endtrans%}{{'Sob娱乐下载ymfony是伟大的'|trans}}{{'Sob娱乐下载ymfony is great'|transchoice(1)}}{%transchoice1%}ob娱乐下载Symfony很棒{%endtranschoice%}

谨慎

提取器无法找到在模板之外翻译的消息,比如表单标签或控制器。在模板中使用变量或表达式的动态翻译也不会被检测到:

1 2 3
{#这个翻译使用了一个Twig变量,所以它不会被检测到#}{%message = 'ob娱乐下载Symfony很棒' %}{{message|trans}}

假设应用程序的default_locale为fr你已经配置好了作为备用区域设置(参见翻译而且翻译对于如何配置这些)。假设您已经为fr地区:

  • XML
  • YAML
  • PHP
12 3 4 5 6 7 8 9 10 11 12
<!——translations/messages.fr.xliff——><?xml version = " 1.0 " ?><xliff版本“1.2”xmlns“urn: oasis:名称:tc: xliff文档:1.2”><文件通过读“en”数据类型“明文”原始“file.ext”><身体><trans-unitid“1”><>ob娱乐下载Symfony很棒><目标>我Symfonob娱乐下载y目标>trans-unit>身体>文件>xliff>

对于地区:

  • XML
  • YAML
  • PHP
12 3 4 5 6 7 8 9 10 11 12
<!——/ messages.en翻译。xliff - - - ><?xml version = " 1.0 " ?><xliff版本“1.2”xmlns“urn: oasis:名称:tc: xliff文档:1.2”><文件通过读“en”数据类型“明文”原始“file.ext”><身体><trans-unitid“1”><>ob娱乐下载Symfony很棒><目标>ob娱乐下载Symfony很棒目标>trans-unit>身体>文件>xliff>

中的所有消息fr应用程序的区域设置,运行:

12 3 4 5 6 7 8 9 10 11 12
php bin /控制台调试:翻译fr  +----------+------------------+----------------------+-------------------------------+ | 状态(s) | | Id信息预览(fr) |撤退消息预览(en ) | +----------+------------------+----------------------+-------------------------------+ | o | Symfony是伟大的| Job娱乐下载”艾米Symob娱乐下载fony | Symfony是伟大的  | +----------+------------------+----------------------+-------------------------------+ 传说:x失踪的消息啊,未使用的消息=一样撤退的消息

中翻译消息时的结果显示在一个表中fr区域设置和回退区域设置时的结果会被使用。在此基础上,它还将显示翻译与备用翻译何时相同(这可能表明消息没有正确翻译)。此外,它指示消息ob娱乐下载Symfony很棒未使用,因为它已被翻译,但您还没有在任何地方使用过它。

现在,如果你在一个模板中翻译消息,你会得到这样的输出:

12 3 4 5 6 7 8 9 10 11 12
php bin /控制台调试:翻译fr  +----------+------------------+----------------------+-------------------------------+ | 状态(s) | | Id信息预览(fr) |撤退消息预览(en ) | +----------+------------------+----------------------+-------------------------------+ | | Symfony是伟大的| Job娱乐下载”艾米Symob娱乐下载fony | Symfony是伟大的  | +----------+------------------+----------------------+-------------------------------+ 传说:x失踪的消息啊,未使用的消息=一样撤退的消息

状态为空,这意味着消息被转换为fr区域设置并在一个或多个模板中使用。

如果您删除该消息ob娱乐下载Symfony很棒的翻译文件fr并运行命令,你会得到:

12 3 4 5 6 7 8 9 10 11 12
php bin /控制台调试:翻译fr  +----------+------------------+----------------------+-------------------------------+ | 状态(s) | | Id信息预览(fr) |撤退消息预览(en ) | +----------+------------------+----------------------+-------------------------------+ | x = | Symfony是伟大的| Job娱乐下载”艾米Symob娱乐下载fony | Symfony是伟大的  | +----------+------------------+----------------------+-------------------------------+ 传说:x失踪的消息啊,未使用的消息=一样撤退的消息

状态指示消息丢失,因为未在fr区域设置,但仍在模板中使用。而且,消息在fr区域设置等于语言环境。中未翻译的消息id等于它的翻译,因此这是一个特殊情况语言环境。

如果复制翻译文件中的内容中的翻译文件fr并运行命令,你会得到:

12 3 4 5 6 7 8 9 10 11 12
php bin /控制台调试:翻译fr  +----------+------------------+----------------------+-------------------------------+ | 状态(s) | | Id信息预览(fr) |撤退消息预览(en ) | +----------+------------------+----------------------+-------------------------------+ | = | Symfony是伟大的| Job娱乐下载”艾米Symob娱乐下载fony | Symfony是伟大的  | +----------+------------------+----------------------+-------------------------------+ 传说:x失踪的消息啊,未使用的消息=一样撤退的消息

中可以看到消息的翻译是相同的fr而且这意味着这条消息可能是从法语复制到英语的,也许你忘记翻译它了。

默认情况下检查所有域,但可以指定单个域:

1
PHP bin/console debug:translation en——domain=messages

方法,当应用程序有很多消息时,只显示未使用的或丢失的消息是很有用的——only-unused——唯一丧失选项:

1 2
PHP bin/控制台调试:翻译en -only-unusedPHP bin/控制台调试:翻译en -only-missing
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。