Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当单数和复数形式相同时,如何使用php gettext的ngettext()?_Php_Gettext_Php Gettext - Fatal编程技术网

当单数和复数形式相同时,如何使用php gettext的ngettext()?

当单数和复数形式相同时,如何使用php gettext的ngettext()?,php,gettext,php-gettext,Php,Gettext,Php Gettext,我正在使用库来解决Google Cloud AppEngine上缺少的gettext扩展。英语中的单数和复数形式相同,但其他语言中的单数和复数形式不同 ngettext("%d correct", "%d correct", $n) 西班牙语的翻译应该是 "%d correcto" (singular) "%d correctos" (plural) 指示给出的正确答案的数量 但这给了我一个错误,因为单数msgid与复数msgid完全相同。即使是允许在翻译中添加上下文的函数dngettext

我正在使用库来解决Google Cloud AppEngine上缺少的
gettext
扩展。英语中的单数和复数形式相同,但其他语言中的单数和复数形式不同

ngettext("%d correct", "%d correct", $n)
西班牙语的翻译应该是

"%d correcto" (singular)
"%d correctos" (plural)
指示给出的正确答案的数量

但这给了我一个错误,因为单数
msgid
与复数
msgid
完全相同。即使是允许在翻译中添加上下文的函数
dngettext()
,也无法实现以下功能:

dngettext("Number of correct answers", "%d correct", "%d correct", $n)
它在
gettext
库中触发警告和错误:

PHP Notice:  Undefined offset: -1
PHP Parse error: syntax error, unexpected '!=' (T_IS_NOT_EQUAL)
PHP Notice:  Undefined variable: number
PHP Warning:  Missing argument 4 for gettext_reader::npgettext()
我正在使用英语句子作为
msgid
s,现在无法将我的整个项目改为使用神秘ID,例如

ngettext("%d-correct-singular", "%d-correct-plural", $n) 

处理原始语言中相同的单数和复数形式的合适方法是什么?

刚刚发现它实际上是gettext库中的一个已知错误:

您需要手动修复此错误才能正确使用ngettext函数


此问题与通用gettext扩展无关。

第一个示例的错误是什么?我刚试过,运行得很好(尽管没有翻译表)