Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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
Python 是否支持序号后缀本地化?_Python_Django - Fatal编程技术网

Python 是否支持序号后缀本地化?

Python 是否支持序号后缀本地化?,python,django,Python,Django,例如,如果我有第n个苹果(第一个苹果,第二个苹果,第三个苹果),这将如何翻译成django? 有什么函数可以为给定的n获取后缀吗? 看起来这取决于单词的性别: 1re pomme, 2e pomme 1r homme 2e homme 退房。据我所知,这是尊重的 在模板中使用它,如: {% load humanize %} {{ item.count|ordinal }} {{ item.name }} 请记住将“django.contrib.humanize”添加到您的已安装的应用程序中设

例如,如果我有第n个苹果(第一个苹果,第二个苹果,第三个苹果),这将如何翻译成django? 有什么函数可以为给定的n获取后缀吗? 看起来这取决于单词的性别:

1re pomme, 2e pomme
1r homme 2e homme
退房。据我所知,这是尊重的

在模板中使用它,如:

{% load humanize %}
{{ item.count|ordinal }} {{ item.name }}
请记住将“django.contrib.humanize”添加到您的
已安装的应用程序中
设置并设置
USE\u L10N=True

ordinal
没有考虑后面是哪个词,所以这是一个不完美的解决方案,但至少做了一些本地化。

您通常会使用该功能进行此类操作:

ngettext('%(num)dre pomme', '%(num)de pomme', n) % {'num': n}
在本例中,您当然对字符串的本地化不感兴趣,只对多元化感兴趣,因此这与:

'1re pomme' if n == 1 else f'{n}e pomme'
事实上,如果规则比这更复杂(法语我不知道,但英语有4种不同的情况),那么
ngettext
就有点麻烦了。您可以创建如下所示的PO文件:

msgid "%(num)dst potato"
msgid_plural "%(num)dth potato"
msgstr[0] "%(num)dre pomme"
msgstr[1] "%(num)de pomme"
msgstr[2] "%(num)d... pomme"

这需要正确设置PO文件的<代码> nululals/COD>选项,并且这里可以考虑任何语法规则。参见第2.4节深潜的复数形式

然而,同样,gettext主要是用于翻译的,这会有点麻烦


如果“pomme”本身是一个变量,例如
plaeture_name='pomme';打印(f'{num}{vegeture}')
,然后显然需要首先知道变量的性别,并且需要以某种方式将其作为元数据传输,以便能够进行适当的屈折变化。在这一点上,无论哪种方式,它都变成了大量的定制开发。

“取决于单词的性别”-如何解释这一点…?!没有。这是一个不完美的解决方案,回答了OP问题的第一部分。