如何找到丢失或未使用的翻译消息吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
如何找到丢失或未使用的翻译消息吗
维护应用程序或包时,您可以添加或删除翻译消息,忘记更新消息目录。的调试:翻译
命令帮助你找到这些缺失或未使用的翻译信息。
由于信息提取器,命令将检测翻译标记或过滤器使用在树枝模板:
1 2 3 4 5 6 7
{%反式%}ob娱乐下载Symfony2是伟大的{%endtrans%}{{Syob娱乐下载mfony2很棒的|反式}}{{Syob娱乐下载mfony2很棒的| transchoice (1)}}{%transchoice1%}ob娱乐下载Symfony2是伟大的{%endtranschoice%}
它还将检测以下翻译用法在PHP模板:
1 2 3
美元视图(“翻译”]- >反式(“ob娱乐下载Symfony2很棒”);美元视图(“翻译”]- >transChoice (“ob娱乐下载Symfony2很棒”,1);
谨慎
提取器无法检查消息翻译在表单模板这意味着翻译用法外标签或在你的控制器不会被探测到。动态翻译涉及变量或表达式不检测模板,这意味着这个例子不会进行分析:
1 2
{%集消息= ' Symfoob娱乐下载ny2很棒' %}{{消息|反式}}
假设您的应用程序的default_localefr
你已经配置了在
作为后备区域(见翻译和翻译如何配置这些)。假设你已经安装的一些翻译fr
地区内一个AcmeDemoBundle:
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娱乐下载Symfony2是伟大的< /源><目标>我Symfonob娱乐下载y2< /目标>< /trans-unit>< /身体>< /文件>< /xliff>
1 2
# src / Acme / AcmeDemoBundle /资源/翻译/ messages.fr.ymlob娱乐下载Symfony2很棒:我ob娱乐下载Symfony2
1 2 3 4
/ / src / Acme / AcmeDemoBundle /资源/翻译/ messages.fr.php返回数组(“ob娱乐下载Symfony2很棒”= >“J \“艾梅Syob娱乐下载mfony2”,);
和在
地区:
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娱乐下载Symfony2是伟大的< /源><目标>ob娱乐下载Symfony2是伟大的< /目标>< /trans-unit>< /身体>< /文件>< /xliff>
1 2
# src / Acme / AcmeDemoBundle /资源/翻译/ messages.en.ymlob娱乐下载Symfony2很棒:ob娱乐下载Symfony2是伟大的
1 2 3 4
/ / src / Acme / AcmeDemoBundle /资源/翻译/ messages.en.php返回数组(“ob娱乐下载Symfony2很棒”= >“ob娱乐下载Symfony2很棒”,);
检查中的所有消息fr
AcmeDemoBundle语言环境,运行:
1
php bin /控制台调试:美元翻译fr AcmeDemoBundle
你将会得到这样的输出:
它显示了一个表结果当翻译的消息fr
语言环境,结果当回退的地区在
将被使用。除此之外,它还将向您展示当翻译是一样的回退翻译(这可能表明消息不正确翻译)。此外,它表明该消息ob娱乐下载Symfony2是伟大的
是未使用的,因为它是翻译,但是你还没有在任何地方使用它。
现在,如果你把消息在你的一个模板,你会得到这个输出:
状态为空这意味着信息是翻译的fr
语言环境和使用的一个或多个模板。
如果你删除消息ob娱乐下载Symfony2是伟大的
从你的翻译文件fr
语言环境和运行该命令,你将得到:
状态指示消息丢失,因为它没有翻译fr
地区但它仍然是在模板中使用。此外,消息的fr
语言环境等于的消息在
语言环境。这是一个特例,因为翻译消息id等于其翻译在
语言环境。
如果你复制翻译文件的内容在
语境,翻译文件fr
语言环境和运行该命令,你将得到:
你可以看到消息的翻译是相同的fr
和在
地区这意味着这个消息可能是复制从法国到英语,也许你忘记翻译了。
默认情况下所有领域进行检查,但它是可以指定单个域:
1
美元php bin /控制台调试:翻译en AcmeDemoBundle——域=消息
当包有很多信息,它是有用的只显示未使用或只失踪的消息,通过使用——only-unused
或——唯一丧失
开关:
1 2
美元php bin /控制台调试:翻译en AcmeDemoBundle——only-unused php bin /控制台调试:美元AcmeDemoBundle——仅仅缺少翻译