【发布时间】:2011-12-06 22:31:33
【问题描述】:
我在我的应用程序中加入了类似 gettext 的本地化系统,但我的翻译功能如下所示:
t($category, $string, [$plural_string, $number, $vprintf_arguments])
我的 PoEdit 关键字:
t:2
t:2,3
- t:2 告诉 PoEdit 解析
$string,它显然可以工作 - t:2,3 应该告诉 PoEdit 解析
$string和$plural_string- 但它不是:(
它只看到$string,所以我没有解析复数形式......我该如何解决这个问题?我不想将我的函数切换为不同的参数格式,因为我喜欢这个:(
此外,此函数的作用类似于 sprintf 替换:
- 如果第三个参数 ($plural_string) 是一个数组,则函数会将数组中的值视为 vsprintf 的参数
- 如果第三个参数是字符串并且提供了 $number,该函数将把 $vprintf_arguments 作为 vsprintf 的参数(如果提供的话),并且将 $plural_string 作为 $string 的复数形式
无论如何,PoEdit 不应该干扰未引用的参数,对吧?我的意思是它只会将 $plural_string 解析为字符串,如果它看起来像 'abc abc'
【问题讨论】:
-
抱歉,如果这些问题对您来说是微不足道的,但我对这个产品的经验非常有限。您能否向我们展示 .po 文件的片段,其中包含无法获得复数的字符串?您是否填充了 msgid_plural 字段?您是否在文件中使用了预期的字符集/编码?
-
你能发布更多的php函数吗?还有另一个例子?你期望什么,你得到什么。谢谢-Tim =)
-
是的,没有看到任何代码就很难理解出了什么问题..而且,您使用哪种分词器来提取翻译字符串?
标签: php localization gettext poedit xgettext