加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – PoEdit关键字 – 复数

发布时间:2020-12-13 13:25:48 所属栏目:PHP教程 来源:网络整理
导读:我在我的应用程序中加入了类似gettext的本地化系统,但我的翻译功能如下所示: t($category,$string,[$plural_string,$number,$vprintf_arguments]) 我的PoEdit关键字: t:2t:2,3 t:2告诉PoEdit解析$string,它显然有效 t:2,3应该告诉PoEdit解析$string和$pl
我在我的应用程序中加入了类似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’

gettext一次只处理一个字符串.
您可能想要的是ngettext. (查找语法)

在那里,你会输入一个单数的文本,另一个用于复数,但也包括数字.

关于这一点的聪明之处在于,许多语言的复数结构与英语完全不同.
例如,俄语使用三种不同的形式.
一个是计数以明显的“一”结束的地方:
1,21,31,41等
第二种形式是计数,以明显的2,3或4结尾.
第三种形式是其余的……

并且,使用ngettext,可以完成.
是的,在poedit中,人们必须正确地定义目标语言的复数结构,但是,它只是起作用.

http://www.gnu.org/s/hello/manual/gettext/Plural-forms.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读