我是一个初学者,使用:django、django rest 框架和客户端 MVC 框架 Angularjs。
我想问任何在您的任何项目中工作或熟悉此堆栈的开发人员,您如何处理翻译(多种语言)?
什么是尽可能有效地做到这一点的最佳实践,是否有任何新的语言扩展可用?
我是一个初学者,使用:django、django rest 框架和客户端 MVC 框架 Angularjs。
我想问任何在您的任何项目中工作或熟悉此堆栈的开发人员,您如何处理翻译(多种语言)?
什么是尽可能有效地做到这一点的最佳实践,是否有任何新的语言扩展可用?
AngularJS 在处理语言方面没有什么特别之处。如果要在客户端处理选择,请确保设置Accept-Language
标头。请参阅django 翻译文档。
如果要在服务器端处理语言选择,可以使用url patterns或设置translation.LANGUAGE_SESSION_KEY
会话密钥。
如果您需要支持存储支持的数据(即模型)的翻译,django-modeltranslation是一个非常好的包。它为您指定的字段动态添加额外的列,每个字段一个settings.LANGUAGES
,然后允许您使用原始列作为当前活动语言中值的代理。
我想将 Django 与 AngularJS 一起使用,并使用相同的 PO 文件进行前端和后端翻译。
最后,我成功使用了django-vinaigrette和angular-translate。我创建了一个模型 AngularTranslations,它有两个区分大小写的字段,orig 和 trans,内容相同。(有点浪费,但还可以)。我用 Vinaigrette 注册了“trans”字段,然后我创建了一个 API GET 方法,该方法将翻译输出为 JSON 格式,可由 angular-translate 读取。我还允许 POST 使用相同的方法来存储丢失的翻译。油醋汁然后在运行时捡起它们manage.py makemessages
。
可以详细说明,但这是它的要点。
我认为对于将来希望在 REST 情况下处理翻译的人来说,这篇文章是一个很好的起点:
它强制使用 i18n,它是例如 django admin trans 的基础。