将django模型翻译与localise.co集成
modeltranslation-lokalise的Python项目详细描述
Django模型翻译lokalise
将django-modeltranslation与lokalise.co集成。 它将允许您的项目使用API将模型的可翻译字段上载到lokalise.io中 当有人在lokalise上更新本地翻译时,也要更新它们。
安装
pip install modeltranslation-lokalise
modeltranslation_lokalise
取决于django的contribtypes应用程序,
因此,在modeltranslation_lokalise
之前,请确保将其包含在INSTALLED_APPS
设置中:
INSTALLED_APPS=[...'django.contrib.contenttypes',...'modeltranslation_lokalise',...]
为了让modeltranslation_lokalise
正确更新,您需要提供lokalise proyect id和api密钥
你的翻译。
LOKALISE_API_KEY=''LOKALISE_PROJECT_ID=''
如果您想让您的模型在有人更新lokalise时自动更新,请将视图添加到
您的urls.py
配置。请注意,当前仅支持translation.updated
:
frommodeltranslation_lokaliseimportTranslationWebhookViewurlpatterns=[...path('api/translations/',TranslationWebhookView.as_view(),name='translation_webhook'),...]
您还需要进行迁移,以便在数据库上创建必要的表来处理翻译:
python manage.py makemigrations
python manage.py migrate
如何使用
您应该使用modeltranslation_lokalise.register_translation
:
frommodeltranslation.translatorimportTranslationOptionsfrommodeltranslation_lokalise.signalsimportregister_translationfromyour_app.modelsimportModel1classModel1TranslationOptions(TranslationOptions):fields=('name','description',)register_translation(Model1,Model1TranslationOptions)
仅此而已,modeltranslations-lokalise
将跟踪可翻译模型上的更改并将其导入
每次更新一个可翻译字段时,都会执行lokalise项目。
非lokalise可翻译字段
有可能您希望某些字段在模型翻译方面是可翻译的,但将它们排除在
上传到Lokalise。在这种情况下,可以向translationoptions对象添加属性non_lokalise_fields
。
ModelTranslation Lokalise不会跟踪该字段上的更改。
classProductTranslationOptions(TranslationOptions):non_lokalise_fields=('slug',)fields=('title','description',)+non_lokalise_fields
许可证
这个项目是在麻省理工学院的许可下授权的-详细信息请参见LICENSE文件