gpt4 book ai didi

php - PoEdit 关键字 - 复数形式

转载 作者:可可西里 更新时间:2023-11-01 12:35:47 27 4
gpt4 key购买 nike

我在我的应用程序中加入了一个类似于 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

关于php - PoEdit 关键字 - 复数形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407840/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com