我们正在使用Gettext翻译我们的网站,但最近我们发现了翻译团队的一些问题。
我们有一些字符串...
你好 Bob 这个晚上你获胜 * 三 * 红色 * < EM>气球 *
我们得到类似的东西......
sprintf("Hi %s this %s you %s %s %s %s", $name, $action, $number, $color, $object);
问题是我们的翻译团队不知道变量的顺序......并且他们非常难以正确翻译“编码”字符串,他们只看到他们poedit这个文本
Hi %s this %s you %s %s %s %s
¿我们如何处理这些复杂的字符串?
答案 0 :(得分:2)
使用poedit
,这为您提供了向字符串添加注释的机会。
答案 1 :(得分:1)
最后,我们找到了最适合我们的方式。
我们有像
这样的字符串sprintf(“Hi%s this%s you%s%s%s%s”,$ name,$ action,$ number,$ color,$ object);
然后我们可以像这样改变de vars的位置
sprintf(“Hi%1 $ s this%2 $ s you%3 $ s%4 $ s%5 $ s%6 $ s”,$ name,$ action,$ number,$ color,$ object) ; 翻译团队可以更改位置,只更改数字
然后......最重要的事情......告诉翻译团队这些变量是什么......对gettext的评论如......
<!-- //Hi translator... The variables are $name, $action, $number, $color, $object -->
sprintf(_('Hi %1$s this %2$s you %3$s %4$s %5$s %6$s'), $name, $action, $number, $color, $object);
在xgettext行中添加选项-c,您可以将此注释放在INSIDE .po文件中,这是我们选择工作的方式:)
我希望这对你来说是一个很好的解决方案