2

我是一个初学者,使用:django、django rest 框架和客户端 MVC 框架 Angularjs。

我想问任何在您的任何项目中工作或熟悉此堆栈的开发人员,您如何处理翻译(多种语言)?

什么是尽可能有效地做到这一点的最佳实践,是否有任何新的语言扩展可用?

4

3 回答 3

4

AngularJS 在处理语言方面没有什么特别之处。如果要在客户端处理选择,请确保设置Accept-Language标头。请参阅django 翻译文档

如果要在服务器端处理语言选择,可以使用url patterns或设置translation.LANGUAGE_SESSION_KEY会话密钥。

如果您需要支持存储支持的数据(即模型)的翻译,django-modeltranslation是一个非常好的包。它为您指定的字段动态添加额外的列,每个字段一个settings.LANGUAGES,然后允许您使用原始列作为当前活动语言中值的代理。

于 2014-03-21T11:34:59.640 回答
1

我想将 Django 与 AngularJS 一起使用,并使用相同的 PO 文件进行前端和后端翻译。

最后,我成功使用了django-vinaigretteangular-translate。我创建了一个模型 AngularTranslations,它有两个区分大小写的字段,orig 和 trans,内容相同。(有点浪费,但还可以)。我用 Vinaigrette 注册了“trans”字段,然后我创建了一个 API GET 方法,该方法将翻译输出为 JSON 格式,可由 angular-translate 读取。我还允许 POST 使用相同的方法来存储丢失的翻译。油醋汁然后在运行时捡起它们manage.py makemessages

可以详细说明,但这是它的要点。

于 2015-01-21T22:53:42.723 回答
0

我认为对于将来希望在 REST 情况下处理翻译的人来说,这篇文章是一个很好的起点:

https://web.archive.org/web/20150504195746/http://codeispoetry.me:80/index.php/django-multilingual-restful-api-i18n-support-with-django-tastypie/

它强制使用 i18n,它是例如 django admin trans 的基础。

于 2014-03-21T10:49:43.210 回答