t()函数不会将字符串添加到翻译界面

时间:2011-07-13 12:04:59

标签: drupal views translation

我在我的一个视图中使用customfiel php代码来翻译字符串,因为2.x的视图在本地化方面很糟糕。我使用以下PHP代码:

echo t('Watch Video');

但字符串未出现在“翻译界面”部分。

感谢您的帮助。

的Lukas

2 个答案:

答案 0 :(得分:8)

接受的答案是错误,因为本地化脚本没有扫描任何内容。只要在非标准语言中第一次通过t()函数,该字符串就会在转换接口中注册。

因此,对于翻译而言,您编写的代码是eval'd(从数据库解释)还是存在于源代码中并不重要。显然,良好的做法是将代码保存在它所属的文件中。

This blog post描述了将字符串放入翻译界面需要做些什么。

答案 1 :(得分:-2)

通过扫描源代码构建本地化数据库,查找t()函数的实例(以及Javascript中的Drupal.t())。

如果有问题的代码已经输入到Drupal管理区域的文本框中,那么它不在源代码中,因此本地化过程不会将其拾取。

出于这个原因(和其他人),您应该尽可能少地将代码放入管理文本框中。通常有一种替代方法可以实现相同的功能,但即使没有,也应该将代码减少到最小 - 最好的做法是除了单行函数调用之外什么都没有:让它调用函数,并在您的模块或主题中编写功能代码。这样,当您运行本地化时,它将被解析。