如何找到丢失或未使用的翻译消息吗

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何找到丢失或未使用的翻译消息吗

维护应用程序或包时,您可以添加或删除翻译消息,忘记更新消息目录。的调试:翻译命令帮助你找到这些缺失或未使用的翻译信息。

由于信息提取器,命令将检测翻译标记或过滤器使用在树枝模板:

1 2 3 4 5 6 7
{%反式%}ob娱乐下载Symfony是伟大的{%endtrans%}{{Syob娱乐下载mfony是伟大的”|反式}}{{Syob娱乐下载mfony是伟大的”| transchoice (1)}}{%transchoice1%}ob娱乐下载Symfony是伟大的{%endtranschoice%}

它还将检测以下翻译用法在PHP模板:

1 2 3
美元视图(“翻译”]- >反式(“ob娱乐下载Symfony是伟大的”);美元视图(“翻译”]- >transChoice (Sob娱乐下载ymfony是伟大的,1);

谨慎

提取器无法检查消息翻译在表单模板这意味着翻译用法外标签或在你的控制器不会被探测到。动态翻译涉及变量或表达式不检测模板,这意味着这个例子不会进行分析:

1 2
{%消息= ' Symfoob娱乐下载ny是伟大的' %}{{消息|反式}}

假设您的应用程序的default_localefr你已经配置了作为后备区域(见翻译翻译如何配置这些)。假设你已经安装的一些翻译fr地区内一个AcmeDemoBundle:

  • XML
  • YAML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12
< !——src / Acme / AcmeDemoBundle /资源/翻译/ 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
1 2 3 4 5 6 7 8 9 10 11 12
< !——src / Acme / AcmeDemoBundle /资源/翻译/ 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>

检查中的所有消息frAcmeDemoBundle语言环境,运行:

1
美元php bin /控制台调试:翻译fr AcmeDemoBundle

你将会得到这样的输出:

它显示了一个表结果当翻译的消息fr语言环境,结果当回退的地区将被使用。除此之外,它还将向您展示当翻译是一样的回退翻译(这可能表明消息不正确翻译)。此外,它表明该消息ob娱乐下载Symfony是伟大的是未使用的,因为它是翻译,但是你还没有在任何地方使用它。

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

状态为空这意味着信息是翻译的fr语言环境和使用的一个或多个模板。

如果你删除消息ob娱乐下载Symfony是伟大的从你的翻译文件fr语言环境和运行该命令,你将得到:

状态指示消息丢失,因为它没有翻译fr地区但它仍然是在模板中使用。此外,消息的fr语言环境等于的消息语言环境。这是一个特例,因为翻译消息id等于其翻译语言环境。

如果你复制翻译文件的内容语境,翻译文件fr语言环境和运行该命令,你将得到:

你可以看到消息的翻译是相同的fr地区这意味着这个消息可能是复制从法国到英语,也许你忘记翻译了。

默认情况下所有领域进行检查,但它是可以指定单个域:

1
美元php bin /控制台调试:翻译en AcmeDemoBundle——域=消息

当包有很多信息,它是有用的只显示未使用或只失踪的消息,通过使用——only-unused——唯一丧失开关:

1 2
美元php bin /控制台调试:AcmeDemoBundle——only-unused翻译美元php bin /控制台调试:翻译en AcmeDemoBundle——仅仅缺少
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。