如何在Django中翻译国家列表views.py?

2024-09-28 22:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是django和标准国际化包,如:excellent marina mele tuto.

在web和mobile上的用户表单中,我必须用用户语言显示国家名称列表。在

为了创建国家列表,我打算使用django country,它看起来很简单,而且有很好的文档记录。在

我可以做一个API,没有模板,请求国家名单。在

但是如何翻译这个国家的名单视图.py? 在

任何例子都是值得欢迎的。在

谢谢


Tags: django用户名称web语言表单列表标准
3条回答

您可以看看django-modeltranslation,该库用于从模型数据进行转换。在

否则,如果您想翻译一个国家的列表,您可以构建一个新的列表,并对列表中的每个项目使用内置的django翻译工具。在

我想你说的是django-countries?除了确保激活用户的语言translation.activate(language)之外,您不需要做任何其他事情,如果您使用i18n_urlpatterns,这也可以在Django的中间件中处理。从那里,它将使用内置的gettext机制来检索用户语言中的国家名称。在

可以使用带django_countries.serializer_fields.CountryField的序列化程序中的country对象,或使用

from django_countries import countries
from django.http import JsonResponse

def countries_list(request):
    for code, name in list(countries):
        print(code, name)

    return JsonResponse({
        code: name for code, name in list(countries)
    })

或者你喜欢什么。在模板中:

^{pr2}$

只要你的语言是激活的,只要你的工作。在

最后,我使用一个简单的数组

TranslatedCountries = {
'france':   { 
                'en':   u'france',
                'fr':   u'france',
                },

'belgium':  {
                'en':   u'belgium',
                'fr':   u'belgique',
                },
'spain':    {
                 'en':  u'spain',
                 'fr':  u'espagne',
                },
'morocco':  {
                 'en':  u'morocco',
                 'fr':  u'maroc',
                },

}

我可以访问它:

^{pr2}$

我希望有人能给我们一个更简单、更快、更干净的解决方案。 谢谢你的帮助。 艾尔

相关问题 更多 >