我使用gettext()翻译我网站上的一些文字。主要是短文/按钮,如"返回","姓名",......
// I18N support information here
$language = "en_US";
putenv("LANG=$language");
setlocale(LC_ALL, $language);
// Set the text domain as 'messages'
$domain = 'messages';
bindtextdomain($domain, "/opt/www/abc/web/www/lcl");
textdomain($domain);
echo gettext("Back");
我的问题是,' long'这个文本(id)可以在echo gettext("")部分吗?
是否会减慢长文本的流程?或者它也能正常工作吗?像这样举例如:
echo _("LZ adfadffs is a VVV contributor who writes a weekly column for Cv00m. The former Hechinger Institute Fellow has had his commentary recognized by the Online News Association, the National Association of Black Journalists and the National ");
答案 0 :(得分:6)
官方gettext documentation仅提供此建议:
可翻译字符串应限于一个段落;不要让一条消息长于十行。原因是当可翻译字符串改变时,翻译者面临更新整个翻译字符串的任务。也许只有一个单词会在英文字符串中发生变化,但翻译人员看不到(使用当前的翻译工具),因此她必须校对整个消息。
字符串的长度没有官方限制,它们显然可以超过“一段/ 10行”。
对于长串,几乎没有可测量的性能损失。
答案 1 :(得分:0)
function gettext http://www.php.net/manual/en/function.gettext.php
它被定义为字符串输入,因此您的机器内存将成为限制因素。
如果您在开发机器上使用xdebug,请尝试使用microtime或更好的xedbug进行基准测试。
答案 2 :(得分:0)
gettext在字符串长度上有效限制 4096个字符。
当您通过此限制时,您会收到警告:
Warning: gettext(): msgid passed too long in %s on line %d
并返回bool(false)
而不是文字。
<强>来源:强> PHP Interpreter repository - The real fix for the gettext overflow bug