2

我们正在使用 Gettext 翻译我们的网站,但最近我们发现我们的翻译团队存在一些问题。

我们有一些字符串,比如......

鲍勃今晚你*三个*红色*气球*

我们得到这样的东西......

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

¿ 我们如何处理这些复杂的字符串?

4

2 回答 2

2

use poedit,它使您有机会向字符串添加注释。

于 2013-06-03T14:39:26.660 回答
1

最后,我们找到了最适合我们的方式。

我们有类似的字符串

sprintf("嗨 %s 这个 %s 你 %s %s %s %s", $name, $action, $number, $color, $object);

然后我们可以像这样改变 de vars 的位置

sprintf("嗨 %1$s 这个 %2$s 你 %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,您可以将此注释放在 .po 文件中,这是我们选择的工作方式:)

我希望这对你来说是一个很好的解决方案

于 2013-06-04T16:15:52.093 回答