例如,所有最简单的文档和示例都为clickLink()或assertText()使用t()函数。然而,当我阅读关于当主机会话的区域设置不是英语时,测试不起作用和提交的补丁的核心问题时(tl;dr ),我很好奇它是否真的有必要。
MegaChriz对此有一个有趣的看法,因为他在饲料测试中没有()字符串。从他的评论中提取为什么:
在大多数情况下,“最终”文本被选中,因此翻译占位符已经被替换的文本。因此没有要检查的原始翻译字符串。如果我记得清楚的话,也有一些情况只检查了部分案文。由于考试总是用英语进行的(至少,据我所知),这不会有什么害处。
如果默认语言是英语,我们就不能简单地从测试中删除t()函数吗?请注意,我找的不是意见,而是事实。
发布于 2017-01-16 11:44:55
我知道一个事实(尽管这可能不是t()允许替换参数的唯一原因):
echo t('my %string', ('%string' => 'Foo'));它呈现为:“my”(强调文本)。
如果要在站点上使用这样的占位符,它们将无法工作,除非您将它们包装在t()或format_string() (其中t()要短得多)。
这是意见部分;如果您只使用纯文本字符串,这可能并不重要。但是,如果在前端使用t()进行格式化,并且将后端的值与纯文本字符串进行比较,则不会匹配。并且编写所有的测试来代替format_string()将是非常令人困惑的。
最后,这一切都取决于你的情况和测试。
https://drupal.stackexchange.com/questions/225650
复制相似问题