Skip to main content

auto-i18n-lib

Библиотека для перевода HTML, UI-словарей и бэкенд-фраз без синхронных вызовов OpenAI во время рендеринга.


Установка

pip install auto-i18n-lib


Требуется Python 3.9+ и `OPENAI_API_KEY`.

---

## Быстрый старт

```python
from autoi18n import Translator

t = Translator(
    cache_dir="./translations",
    source_lang="ru",
    target_langs=["en", "az", "tr"],
)

Методы

Метод Что делает
translate_html(html, target_lang, page_name) Переводит готовый HTML (текст и атрибуты).
translate_dict(page_name, dict_name, source_dict, target_lang) Переводит вложенный словарь (UI).
translate_key(key, lang, default, dict_name) Возвращает перевод бэкенд-фразы по ключу.
register_keys(items, dict_name) Регистрирует исходные бэкенд-фразы.
process_all_translations(batch_size=50) Обрабатывает все очереди (воркер).
run_translation_loop(interval, batch_size) Запускает фоновый цикл обработки.
extract_js_keys(js_globs, namespace) Извлекает строки из JS/JSX и ставит в очередь.
build_frontend_runtime(lang, namespace) Генерирует JS-рантайм для клиента.

Примеры

HTML

html = "<h1>Главная</h1><button>Сохранить</button>"
translated = t.translate_html(html, "en", "home")

UI-словарь

ui = {"title": "Грузы", "filters": {"search": "Поиск"}}
translated_ui = t.translate_dict("cargo", "table", ui, "en")

Бэкенд-ключи

t.register_keys({"bot.welcome": "Добро пожаловать"}, dict_name="bot")
text = t.translate_key("bot.welcome", "en", "Добро пожаловать", "bot")

React/JS

# Извлечь строки из кода
t.extract_js_keys(js_globs=["src/**/*.{js,jsx,tsx}"])
# Обработать очередь
t.process_all_translations()
# Сгенерировать рантайм
script = t.build_frontend_runtime("en")

В браузере:

window.autoI18n.translateKey('ui.title', 'Заголовок')

Структура кэша

translations/
  en.json               # общий кэш
  _pending.json         # очередь
  backend/
    bot.en.json         # бэкенд-словари
    _pending_bot.json

Переменные окружения

  • OPENAI_API_KEY – обязательный
  • SOURCE_LANG – исходный язык (по умолчанию ru)
  • AUTO_I18N_TARGET_LANGS – список целевых языков через запятую
  • AUTO_I18N_JS_SCAN_ENABLED – включить сканирование JS
  • AUTO_I18N_JS_GLOBS – JSON-массив glob-паттернов
  • AUTO_I18N_DYNAMIC_DOM_ENABLED – включить MutationObserver

Лицензия

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auto_i18n_lib-1.0.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

auto_i18n_lib-1.0.1-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file auto_i18n_lib-1.0.1.tar.gz.

File metadata

  • Download URL: auto_i18n_lib-1.0.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for auto_i18n_lib-1.0.1.tar.gz
Algorithm Hash digest
SHA256 46c9195eafdb4d7b2288ee5d183b33a0adb851b9af3c2a092162a3c2a156ad79
MD5 53502c1ff1f23cc4da597b87ee31a15e
BLAKE2b-256 e58e3f743349c53cbdf9b0a8860c0634321d78a51943523c78fd6a63ebe970c9

See more details on using hashes here.

File details

Details for the file auto_i18n_lib-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: auto_i18n_lib-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for auto_i18n_lib-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f33c3d801c3898a1622c63a4db87ad1a209d6afb2b406993b3d77c0f391e82a9
MD5 39878f7ef4eacbbd19a70768b66ac488
BLAKE2b-256 d2a833371d77188573339f5c549c6fe3427e49cac83f7be444883833b6791919

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page