{"id":24820,"library":"wagtail-localize","title":"wagtail-localize","description":"Translation plugin for Wagtail CMS. Automates translation of Wagtail pages, snippets, and content by syncing translatable fields to a separate locale model. Current version: 1.13 (2025-05-22). Supports Wagtail 7.x, Django 6.0, Python >=3.10. Release cadence: ~3 minor versions per year.","status":"active","version":"1.13","language":"python","source_language":"en","source_url":"https://github.com/wagtail/wagtail-localize","tags":["wagtail","translation","i18n","localization","django"],"install":[{"cmd":"pip install wagtail-localize","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"Core dependency; wagtail-localize is a plugin for Wagtail CMS","package":"wagtail","optional":false}],"imports":[{"wrong":"from wagtail_localize.models import Locale","symbol":"Locale","correct":"from wagtail_localize.models import Locale"}],"quickstart":{"code":"# Add to INSTALLED_APPS in settings.py:\nINSTALLED_APPS = [\n    ...\n    'wagtail_localize',\n    'wagtail_localize.locales',  # optional, for locale management UI\n]\n\n# Run migrations\n# ./manage.py migrate\n\n# In a model that should be translatable:\nfrom wagtail.models import Page\nfrom wagtail_localize.models import TranslatableMixin\n\nclass MyPage(Page):\n    pass  # Page already inherits TranslatableMixin via wagtail-localize\n\n# Create a locale (if not using wagtail's built-in locales)\nfrom wagtail_localize.models import Locale\nlocale = Locale.objects.get_or_create(language_code='fr')\n\n# Submit a page for translation\nfrom wagtail_localize.tasks import submit_translations\nsubmit_translations(page.pk, [locale.pk], submit_synchronously=True)","lang":"python","description":"Minimal setup: add app, run migrations, submit a page for translation."},"warnings":[{"fix":"Upgrade Wagtail to >=6.3 before upgrading wagtail-localize.","message":"In v1.12, support for Wagtail < 6.3 was dropped. If upgrading from <1.12, ensure Wagtail >=6.3.","severity":"breaking","affected_versions":">=1.12"},{"fix":"Add 'wagtail_localize.locales' to INSTALLED_APPS.","message":"The `wagtail_localize.locales` app was split out. In v1.13 it's optional but recommended for locale management UI. Old installations with 'wagtail_localize' only will still work, but new features require the locales app.","severity":"deprecated","affected_versions":">=1.13"},{"fix":"Always import Locale from wagtail_localize.models.","message":"Using `Locale` from `wagtail.models` instead of `wagtail_localize.models` causes confusion. The wagtail-localize `Locale` model is a proxy with extra methods.","severity":"gotcha","affected_versions":"all"},{"fix":"For DeepL, ensure you are using the new header-based auth: set DEEPL_AUTH_KEY in settings and use DeepLBackend.","message":"Machine translation services (DeepL, LibreTranslate) require explicit configuration. DeepL API changed in v1.12.2: now passes auth key via headers, not query parameters.","severity":"gotcha","affected_versions":">=1.12.2"},{"fix":"For async, use `submit_translations.delay()` (requires a Celery setup).","message":"`submit_translations` is a synchronous helper and will block if `submit_synchronously=True`. In production, use Celery or a task queue for async submission.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'-05':30 '-22':31 '1.13':28 '2025':29 '3':42 '3.10':39 '6.0':37 '7':34 'autom':9 'cadenc':41 'cms':8 'content':16 'current':26 'django':36,51 'field':20 'i18n':49 'local':3,24,50 'minor':43 'model':25 'page':13 'per':45 'plugin':5 'python':38 'releas':40 'separ':23 'snippet':14 'support':32 'sync':18 'translat':4,10,19,48 'version':27,44 'wagtail':2,7,12,33,47 'wagtail-loc':1 'x':35 'year':46","created_at":"2026-05-01T08:15:05.668428+00:00","updated_at":"2026-05-01T08:15:05.668428+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/tmp/tmp47x6jo92/venv/lib/python3.12/site-packages/wagtail_localize/models.py\", line 9, in <module>\n    from django.contrib.contenttypes.models import ContentType\n  File \"/tmp/tmp47x6jo92/venv/lib/python3.12/site-packa"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.13.1","cli_name":"","cli_version":null,"type":"library","homepage":"https://wagtail-localize.org","github":"https://github.com/wagtail/wagtail-localize","docs":"https://wagtail-localize.org","changelog":null,"pypi":"https://pypi.org/project/wagtail-localize/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework","data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}