How you deal with translation (multilanguage) webs

2019-05-29 05:29发布

I am a beginner with using: django, the django rest framework and the client-side MVC framework Angularjs.

I would like to ask any developers working or familiar with this stack in any of your projects, how you deal with translations (in many languages)?

What are best practices to do it as efficiently as possible and are there any new language extensions available?

3条回答
对你真心纯属浪费
2楼-- · 2019-05-29 06:19

I wanted to use Django with AngularJS and use the same PO files for frontend and backend translations.

In the end I succeeded using django-vinaigrette and angular-translate. I created a model AngularTranslations with two case-sensitive fields, orig and trans, with the same content. (A bit of waste, but OK). I registered the 'trans' field with Vinaigrette, and then I created an API GET-method that outputs the translations as JSON readable by angular-translate. I also allowed POST's to the same method to store missing translations. Vinaigrette then picks them up when running manage.py makemessages.

Can elaborate more but this is the gist of it.

查看更多
我欲成王,谁敢阻挡
3楼-- · 2019-05-29 06:21

There's nothing specific to AngularJS about dealing with languages. If you want to handle the choice client-side, make sure to set the Accept-Language header. See the django translation docs.

If you want to handle language choice server-side, you can use either url patterns, or set the translation.LANGUAGE_SESSION_KEY session key.

If you need to support translations for storage-backed data (i.e. models), django-modeltranslation is a pretty good package to use. It dynamically adds extra columns for fields you specify, one for each of settings.LANGUAGES, then lets you use the original column as a proxy to the value in the current active language.

查看更多
Evening l夕情丶
4楼-- · 2019-05-29 06:27

I think good start point for someone, who would like in the future deal with translation in case of REST can be this article:

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

it forces usage of i18n, which is base of e.g django admin trans.

查看更多
登录 后发表回答