Назад

gt-cli@2.8.0

Ernest McCarter avatarErnest McCarter
gt-cliv2.8.0pythonpython-extractorgt-flaskgt-fastapii18n

Обзор

CLI gt теперь поддерживает проекты на Python. При запуске gt upload в проекте Flask или FastAPI вызовы t() извлекаются из исходных файлов Python и регистрируются в платформе GT.

Что изменилось

Новый пакет @generaltranslation/python-extractor анализирует исходные файлы Python и извлекает вызовы функций перевода. CLI автоматически определяет Python-проекты, проверяя наличие gt-flask или gt-fastapi в файлах pyproject.toml, requirements.txt или setup.py.

Экстрактор обрабатывает:

  • вызовы t("string literal") с интерполяцией переменных через именованные аргументы
  • declare_var() для пометки динамических выражений в f-строках как переменных
  • declare_static() для встраивания статических выражений, которые должны вычисляться во время извлечения
  • kwargs метаданных для Python (_context, _id, _max_chars) -- аргументы с именами, начинающимися с подчёркивания, а не объект options, используемый в JavaScript-библиотеках

Пример

from gt_flask import t

@app.get("/error")
def error():
    return {"error": t("Something went wrong. Please try again.", _context="error page")}

gt upload извлекает строку и регистрирует её в платформе. gt translate создаёт переводы для настроенных локалей. Те же команды и тот же процесс, что и в библиотеках JavaScript.

Ссылки