Python API¶
Стабилният публичен Python API се експортира от co_op_translator.api. Повечето интеграции използват един от следните работни потоци:
| Scenario | Use this when | Main APIs |
|---|---|---|
| Translate individual files or documents | Вашето приложение чете изходното съдържание, извиква Co-op Translator за превод и решава къде да запази резултата. | translate_markdown_content, translate_notebook_content, translate_image_content, rewrite_markdown_paths, rewrite_notebook_paths |
| Prepare content for host-agent translation | Вашият MCP хост или модел на приложението ще превежда парчета, докато Co-op Translator се грижи за разделянето на парчетата и реконструкцията. | start_markdown_agent_translation, finish_markdown_agent_translation, start_notebook_agent_translation, finish_notebook_agent_translation |
| Translate an entire repository | Искате Python API да се държи като CLI и да се занимава с откриване, пътища за изход, метаданни, почистване и запис. | run_translation |
Повечето по-ниско ниво модули под core, config, review и utils са детайли на имплементацията, използвани от тези входни точки на API.
Клиентите на MCP използват същия публичен API чрез MCP Server. Използвайте тази страница когато извиквате Python директно, а ръководството за MCP когато експонирате Co-op Translator към агент или редактор. Ако решавате между CLI, Python API и MCP, започнете с Choose Your Workflow.
First-Time API Flow¶
Започнете тук ако извиквате Co-op Translator от Python код:
- Конфигурирайте доставчик на LLM както е описано в Configuration, освен ако само подготвяте Markdown или notebook парчета за превод от хост-агент.
- Решете дали вашето приложение да отговаря за файловия I/O.
- Използвайте content APIs когато вашето приложение чете и записва отделни файлове.
- Използвайте
run_translationкогато Co-op Translator трябва да обработи репозитория като CLI. - Използвайте
run_reviewслед превода ако имате нужда от детерминирани проверки в автоматизация.
| Goal | API to start with |
|---|---|
| Translate one Markdown string or file | translate_markdown_content |
| Translate one notebook payload | translate_notebook_content |
| Translate one image | translate_image_content |
| Let a host agent translate Markdown or notebook chunks | start_markdown_agent_translation or start_notebook_agent_translation |
| Rewrite translated links after choosing an output path | rewrite_markdown_paths or rewrite_notebook_paths |
| Translate a full repository | run_translation |
| Review translated output | run_review |
Scenario 1: Translate Individual Files or Documents¶
Използвайте този работен поток когато вече разполагате с файл, буфер от редактор, notebook payload, MCP заявка или персонализиран вход за конвейер. Вашият код отговаря за файловия I/O:
- Прочетете изходното съдържание.
- Извикайте content translation API.
- По желание извикайте path rewriting API ако преведеният материал ще бъде записан в папка за преводи на проект.
- Запазете или върнете резултата от вашето приложение.
Content translation API-тата не изпълняват откриване на проекти, не записват метаданни, не добавят отказ от отговорност и не пренаписват връзки автоматично.
Markdown File¶
import asyncio
from pathlib import Path
from co_op_translator.api import (
rewrite_markdown_paths,
translate_markdown_content,
)
async def main() -> None:
source_path = Path("docs/guide.md")
target_path = Path("translations/ko/docs/guide.md")
translated = await translate_markdown_content(
source_path.read_text(encoding="utf-8"),
"ko",
{"source_path": source_path},
)
rewritten = rewrite_markdown_paths(
translated,
source_path=source_path,
target_path=target_path,
policy={
"language_code": "ko",
"root_dir": ".",
"translations_dir": "translations",
"translated_images_dir": "translated_images",
"translation_types": ["markdown", "images"],
},
)
target_path.parent.mkdir(parents=True, exist_ok=True)
target_path.write_text(rewritten, encoding="utf-8")
asyncio.run(main())
Ако преведеният Markdown няма да живее в оформление на проект на Co-op Translator, пропуснете rewrite_markdown_paths и запазете преведения низ директно.
Notebook File¶
import asyncio
from pathlib import Path
from co_op_translator.api import (
rewrite_notebook_paths,
translate_notebook_content,
)
async def main() -> None:
source_path = Path("docs/tutorial.ipynb")
target_path = Path("translations/ja/docs/tutorial.ipynb")
translated_json = await translate_notebook_content(
source_path.read_text(encoding="utf-8"),
"ja",
{"source_path": source_path},
)
rewritten_json = rewrite_notebook_paths(
translated_json,
source_path=source_path,
target_path=target_path,
policy={
"language_code": "ja",
"root_dir": ".",
"translations_dir": "translations",
"translated_images_dir": "translated_images",
"translation_types": ["notebook", "images"],
},
)
target_path.parent.mkdir(parents=True, exist_ok=True)
target_path.write_text(rewritten_json, encoding="utf-8")
asyncio.run(main())
translate_notebook_content превежда Markdown клетки и запазва несвързаните с Markdown клетки. Пренаписването на пътища се прилага само към Markdown клетките.
Image File¶
from pathlib import Path
from co_op_translator.api import translate_image_content
source_path = Path("docs/images/hero.png")
target_path = Path("translated_images/fr/hero.png")
translated_image = translate_image_content(
source_path,
"fr",
{
"root_dir": ".",
"fast_mode": False,
},
)
target_path.parent.mkdir(parents=True, exist_ok=True)
translated_image.save(target_path)
translate_image_content чете изходното изображение и връща рендериран PIL.Image.Image. То не записва метаданни за преведеното изображение.
Scenario 2: Translate an Entire Repository¶
Използвайте този работен поток когато искате Python API да се държи като translate CLI. run_translation открива поддържани файлове, превежда избраните типове съдържание, пренаписва пътища, записва изходни файлове, обновява метаданни и изпълнява задачи за поддръжка на превода като почистване.
run_translation е предпочитаната входна точка за оркестрация на проекти. translate_project е експортиран като алиас за съвместимост със същото поведение.
Преведете Markdown файлове в текущото хранилище на корейски и японски:
from co_op_translator.api import run_translation
run_translation(
language_codes="ko ja",
markdown=True,
)
Преведете само notebooks от конкретен root на проекта:
from co_op_translator.api import run_translation
run_translation(
language_codes="fr",
root_dir="./my-course",
notebook=True,
)
Прегледайте обем на превод без записване на файлове:
from co_op_translator.api import run_translation
run_translation(
language_codes="es de",
root_dir="./my-course",
markdown=True,
dry_run=True,
)
Преведете няколко корена в едно извикване:
from co_op_translator.api import run_translation
run_translation(
language_codes="ko",
markdown=True,
root_dirs=["./docs", "./labs"],
)
Запишете преводите в изрични output групи:
from co_op_translator.api import run_translation
run_translation(
language_codes="ja",
markdown=True,
groups=[
("./course-a", "./localized/course-a"),
("./course-b", "./localized/course-b"),
],
)
Използвайте заместител за всеки език когато всеки език трябва да съдържа вложена подпапка:
from co_op_translator.api import run_translation
run_translation(
language_codes="ko",
markdown=True,
groups=[
("./course", "./translations/<lang>/course"),
],
)
Ако никой от markdown, notebook или images не е зададен, API превежда всички поддържани типове: Markdown, notebooks и изображения.
Review Translated Output¶
run_review изпълнява детерминирани проверки на превода без LLM или Vision удостоверения.
Beta
run_review е бета детерминиран API за преглед. Той не извиква доставчици на модели и не записва файлове, но схемите за проверка и проблеми могат да се променят.
from co_op_translator.api import run_review
run_review(
language_codes="ko ja",
root_dir="./my-course",
markdown=True,
notebook=True,
)
Прегледайте само файловете, променени спрямо базов ref и отпечатайте изход във формат GitHub:
from co_op_translator.api import run_review
run_review(
language_codes="ko",
root_dir="./my-course",
markdown=True,
notebook=True,
changed_from="origin/main",
output_format="github",
)
Copy-Paste API Examples¶
Превеждане на Markdown съдържание без файлови записвания:
import asyncio
from co_op_translator.api import translate_markdown_content
async def main() -> None:
translated = await translate_markdown_content(
"# Hello\n\nWelcome to the course.",
"ko",
)
print(translated)
asyncio.run(main())
Превеждане и пренаписване на Markdown връзки:
import asyncio
from co_op_translator.api import rewrite_markdown_paths, translate_markdown_content
async def main() -> None:
translated = await translate_markdown_content(
"[Setup](../setup.md)\n\n",
"ko",
{"source_path": "docs/guide.md"},
)
rewritten = rewrite_markdown_paths(
translated,
source_path="docs/guide.md",
target_path="translations/ko/docs/guide.md",
policy={
"language_code": "ko",
"root_dir": ".",
"translations_dir": "translations",
"translated_images_dir": "translated_images",
"translation_types": ["markdown", "images"],
},
)
print(rewritten)
asyncio.run(main())
Превеждане на репозитория от Python:
from co_op_translator.api import run_translation
run_translation(
language_codes="ko ja",
root_dir="./course",
markdown=True,
yes=True,
)
Превеждане на множество корени:
from co_op_translator.api import run_translation
run_translation(
language_codes="ko",
markdown=True,
root_dirs=[
"./docs",
"./labs",
],
)
Запазване на термини от глосар:
from co_op_translator.api import run_translation
run_translation(
language_codes="fr",
markdown=True,
glossaries=[
"Co-op Translator",
"Azure AI Foundry",
"GitHub Actions",
],
)
Public Entry Points¶
from co_op_translator.api import (
ImageTranslationOptions,
MarkdownTranslationOptions,
NotebookTranslationOptions,
finish_markdown_agent_translation,
finish_notebook_agent_translation,
run_review,
run_translation,
rewrite_markdown_paths,
rewrite_notebook_paths,
start_markdown_agent_translation,
start_notebook_agent_translation,
translate_image_content,
translate_markdown_content,
translate_notebook_content,
translate_project,
)
co_op_translator.api.translate_markdown_content
async
¶
translate_markdown_content(document: str, language_code: str, options: MarkdownTranslationOptions | Mapping[str, object] | None = None) -> str
Translate markdown content without project path rewriting or file I/O.
co_op_translator.api.translate_notebook_content
async
¶
translate_notebook_content(notebook: str | dict[str, object], language_code: str, options: NotebookTranslationOptions | Mapping[str, object] | None = None) -> str
Translate notebook markdown cells without project path rewriting or file I/O.
co_op_translator.api.translate_image_content ¶
translate_image_content(image_path: str | Path, language_code: str, options: ImageTranslationOptions | Mapping[str, object] | None = None) -> Image.Image
Translate image text and return a rendered image without saving metadata.
co_op_translator.api.start_markdown_agent_translation ¶
start_markdown_agent_translation(document: str, language_code: str, source_path: str | Path | None = None) -> dict[str, object]
Prepare provider-free Markdown chunks for host-agent translation.
co_op_translator.api.finish_markdown_agent_translation ¶
finish_markdown_agent_translation(job: Mapping[str, object], translated_chunks: Mapping[str, object] | list[Mapping[str, object]]) -> dict[str, object]
Reconstruct Markdown from chunks translated by a host agent.
co_op_translator.api.start_notebook_agent_translation ¶
start_notebook_agent_translation(notebook: str | Mapping[str, object], language_code: str, source_path: str | Path | None = None) -> dict[str, object]
Prepare provider-free notebook Markdown chunks for host-agent translation.
co_op_translator.api.finish_notebook_agent_translation ¶
finish_notebook_agent_translation(job: Mapping[str, object], translated_chunks: Mapping[str, object] | list[Mapping[str, object]]) -> dict[str, object]
Reconstruct a notebook from Markdown chunks translated by a host agent.
co_op_translator.api.rewrite_markdown_paths ¶
rewrite_markdown_paths(content: str, source_path: str | Path, target_path: str | Path, policy: MarkdownPathRewritePolicy | Mapping[str, object]) -> str
Rewrite markdown/frontmatter paths for a translated project target.
co_op_translator.api.rewrite_notebook_paths ¶
rewrite_notebook_paths(content: str, source_path: str | Path, target_path: str | Path, policy: MarkdownPathRewritePolicy | Mapping[str, object]) -> str
Rewrite markdown-cell paths for a translated project notebook target.
co_op_translator.api.MarkdownTranslationOptions
dataclass
¶
Options for content-only markdown translation.
co_op_translator.api.NotebookTranslationOptions
dataclass
¶
Options for content-only notebook translation.
co_op_translator.api.ImageTranslationOptions
dataclass
¶
Options for content-only image translation.
co_op_translator.api.run_translation ¶
run_translation(language_codes: str, root_dir: str = '.', update: bool = False, images: bool = False, markdown: bool = False, notebook: bool = False, debug: bool = False, save_logs: bool = False, yes: bool = True, add_disclaimer: bool = False, translations_dir: str | None = None, image_dir: str | None = None, root_dirs: Iterable[str] | None = None, groups: Iterable[tuple[str, str | None]] | None = None, repo_url: str | None = None, glossaries: Iterable[str] | None = None, readme_only: bool = False, dry_run: bool = False, progress_callback: TranslationEventCallback | None = None, json_events_path: str | Path | None = None) -> None
Programmatic translation entrypoint mirroring the translate CLI options.
progress_callback receives versioned TranslationEvent objects for
integration code. json_events_path writes the same events as NDJSON.
co_op_translator.api.translate_project ¶
Programmatic project translation entrypoint.
co_op_translator.api.run_review ¶
run_review(language_codes: str | Iterable[str] = 'all', root_dir: str = '.', update: bool = False, images: bool = False, markdown: bool = False, notebook: bool = False, debug: bool = False, save_logs: bool = False, yes: bool = True, add_disclaimer: bool = False, translations_dir: str | None = None, image_dir: str | None = None, root_dirs: Iterable[str] | None = None, groups: Iterable[tuple[str, str | None]] | None = None, repo_url: str | None = None, glossaries: Iterable[str] | None = None, dry_run: bool = False, changed_from: str | None = None, output_format: str = 'text', fail_on_warnings: bool = False) -> ReviewSummary
Programmatic deterministic review entrypoint.
The signature intentionally mirrors run_translation where possible so
automation can switch between translate and review workflows with minimal
branching. Review ignores mutating translation-only options such as
update, yes, add_disclaimer, repo_url, glossaries, and
dry_run.
Content Translation APIs¶
Content translation API-тата са предназначени за интеграции, които вече имат съдържание в паметта, като разширение за редактор, MCP инструмент, процесор за notebooks или персонализиран конвейер.
| Function | Input | Output | File I/O | Notes |
|---|---|---|---|---|
translate_markdown_content |
Markdown str |
Markdown str |
No | Async. Превежда само Markdown съдържание. Не пренаписва връзки, не записва метаданни и не добавя откази от отговорност. |
translate_notebook_content |
Notebook JSON str or dict |
Notebook JSON str |
No | Async. Превежда Markdown клетки и запазва несвързаните с Markdown клетки. Не пренаписва връзки, не записва метаданни и не добавя откази от отговорност. |
translate_image_content |
Image path | PIL.Image.Image |
Reads source image only | Synchronous. Извлича и превежда текста от изображението, след което връща рендерирано изображение. Не запазва метаданни за преведеното изображение. |
translate_markdown_content и translate_notebook_content приемат по избор source_path чрез техните опции. Пътят се предава като контекст на преводача; извикващите остават отговорни за всяко проектно-специфично пренаписване на пътища след превода.
from co_op_translator.api import MarkdownTranslationOptions, translate_markdown_content
translated = await translate_markdown_content(
document,
"ko",
MarkdownTranslationOptions(source_path="docs/guide.md"),
)
Същите опции могат да бъдат предадени като речници:
Agent-Assisted Translation APIs¶
Agent-assisted API-тата не извикват Azure OpenAI или OpenAI от Co-op Translator. Те подготвят Markdown или notebook парчета за превод от хост-агент, след което реконструират финалното съдържание от преведените парчета.
| Function | Purpose |
|---|---|
start_markdown_agent_translation |
Връща самостоятелна Markdown задача с парчета, подсказки и състояние за реконструкция. |
finish_markdown_agent_translation |
Реконструира Markdown от задача и преведени от хост-агент парчета. |
start_notebook_agent_translation |
Връща notebook задача с Markdown-клетъчни парчета за превод от хост-агент. |
finish_notebook_agent_translation |
Реконструира notebook JSON като запазва кодовите клетки, изходите и метаданните. |
Този работен поток е основно предназначен за MCP хостове. Ако се нуждаете от продукционен превод на репозитория с Co-op Translator, който управлява извикванията към доставчиците, използвайте translate_markdown_content, translate_notebook_content или run_translation.
Path Rewriting APIs¶
Path rewriting API-тата не изпълняват превод. Те обновяват връзки и полета в frontmatter след като извикващите познават изходния път, преведения целеви път и оформление на проекта.
| Function | Scope | Notes |
|---|---|---|
rewrite_markdown_paths |
Markdown body and frontmatter | Пренаписва Markdown връзки и поддържани полета от frontmatter за преведената цел. |
rewrite_notebook_paths |
Markdown cells in notebook JSON | Прилага пренаписване на Markdown пътища към всяка Markdown клетка и оставя несвързаните с Markdown клетки непроменени. |
Аргументът policy може да бъде речник с тези полета:
| Field | Required | Purpose |
|---|---|---|
language_code |
Yes | Код на целевия език, например "ko" или "pt-BR". |
root_dir |
No | Изходен root на проекта. По подразбиране ".". |
translations_dir |
No | Директория за изход на текстовите преводи. По подразбиране translations под root_dir. |
translated_images_dir |
No | Директория за преведени изображения. По подразбиране translated_images под root_dir. |
translation_types |
No | Разрешени типове преводи. По подразбиране Markdown, notebooks и изображения. |
lang_subdir |
No | По избор подпапка под всяка езикова папка. |
Project Translation Parameters¶
| Parameter | Type | Default | Purpose |
|---|---|---|---|
language_codes |
str |
Required | Цепка от кодове на целеви езици, разделени с интервал, например "ko ja fr", или "all". Алиас кодовете се нормализират до канонични BCP 47 стойности. |
root_dir |
str |
"." |
Root на проекта за една цел на превод. Игнорира се когато са подадени root_dirs или groups. |
update |
bool |
False |
Изтриване и повторно създаване на съществуващите преводи за избраните езици. |
images |
bool |
False |
Включване на превод на изображения. Изисква конфигурация на Azure AI Vision. |
markdown |
bool |
False |
Включване на превод на Markdown. |
notebook |
bool |
False |
Включване на превод на Jupyter notebooks. |
debug |
bool |
False |
Включване на debug логване. |
save_logs |
bool |
False |
Запазване на DEBUG ниво лог файлове под root директория logs/. |
yes |
bool |
True |
Авто-потвърждение на подсказвания за програмна и CI употреба. |
add_disclaimer |
bool |
False |
Добавяне на отказ от отговорност за машинен превод към преведените Markdown и notebooks. |
translations_dir |
str \| None |
None |
Потребителска директория за изход на текстов превод. Относителните пътища се решават спрямо всеки root. |
image_dir |
str \| None |
None |
Потребителска директория за изход на преведени изображения. Относителните пътища се решават спрямо всеки root. |
root_dirs |
Iterable[str] \| None |
None |
Множество корени, които споделят едни и същи настройки за изход. |
groups |
Iterable[tuple[str, str \| None]] \| None |
None |
Явни (root_dir, translations_dir) двойки. Имплицитно има приоритет пред root_dirs. |
repo_url |
str \| None |
None |
URL на репозитория, използван при рендиране на ръководство за езиковата таблица в README. |
glossaries |
Iterable[str] \| None |
None |
Термини от глосар, които да се запазят по време на превода. Дубликатите и празните термини се нормализират. |
dry_run |
bool |
False |
Оценява обема на превода и визуализира поведението на миграцията без записване на файлове. |
Review Parameters¶
run_review умишлено огледално пресъздава подписа на run_translation където е възможно, така че автоматизацията да може да превключва между превод и преглед с минимални разклонения.
| Parameter | Type | Default | Purpose |
|---|---|---|---|
language_codes |
str \| Iterable[str] |
"all" |
Целеви езикови папки за преглед. Приемат се стрингове с разделени с интервал и итерабълни стойности. "all" преглежда всички открити преводни езици. |
root_dir |
str |
"." |
Root на проекта за една цел на преглед. Игнорира се когато са подадени root_dirs или groups. |
markdown |
bool |
False |
Включва Markdown и MDX изходни файлове. |
notebook |
bool |
False |
Включва Jupyter notebook изходни файлове. |
images |
bool |
False |
Запазено за паритет с опциите за превод. Препратките към изображения се проверяват от Markdown. |
translations_dir |
str \| None |
None |
Папка за изход на превода на текст по избор. Относителните пътища се разрешават спрямо всеки root. |
root_dirs |
Iterable[str] \| None |
None |
Няколко root директории, които споделят еднакви настройки за изход. |
groups |
Iterable[tuple[str, str \| None]] \| None |
None |
Явни двойки (root_dir, translations_dir). Има предимство пред root_dirs. |
changed_from |
str \| None |
None |
Git ref, използван за ограничаване на прегледа до променените изходни файлове. |
output_format |
str |
"text" |
Формат на изхода на прегледа. Поддържаните стойности са "text" и "github". |
fail_on_warnings |
bool |
False |
Третира предупрежденията като неуспехи в допълнение към грешките. |
debug |
bool |
False |
Активира логване за отстраняване на грешки. |
save_logs |
bool |
False |
Запазва лог файлове с ниво DEBUG в директорията logs/ под root. |
If none of markdown, notebook, or images are set, the API reviews Markdown, notebooks, and image link references where applicable. Review does not call an LLM provider and does not require API keys.
Изисквания за конфигурация¶
Provider-backed translation APIs require provider configuration before translating:
- Markdown and notebook translation require an LLM provider. Configure either Azure OpenAI or OpenAI.
- Image translation requires Azure AI Vision in addition to the LLM provider.
run_translationruns lightweight connectivity checks before project translation begins.- Agent-assisted
start_*_agent_translationandfinish_*_agent_translationAPIs do not call Co-op Translator LLM providers. The host application or MCP agent translates the prepared chunks. rewrite_markdown_paths,rewrite_notebook_paths, andrun_revieware deterministic and do not require provider credentials.
Required Azure OpenAI variables:
AZURE_OPENAI_API_KEY="..."
AZURE_OPENAI_ENDPOINT="https://<resource>.openai.azure.com/"
AZURE_OPENAI_MODEL_NAME="gpt-4o"
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="<deployment>"
AZURE_OPENAI_API_VERSION="2024-12-01-preview"
Required OpenAI variables:
Required Azure AI Vision variables for image translation:
AZURE_AI_SERVICE_API_KEY="..."
AZURE_AI_SERVICE_ENDPOINT="https://<resource>.cognitiveservices.azure.com/"
run_review is deterministic and does not require Azure OpenAI, OpenAI, or Azure AI Vision configuration.
Бележки за поведението¶
- Content translation APIs keep translation separate from project path rewriting. Call
rewrite_markdown_pathsorrewrite_notebook_pathsexplicitly when translated content needs project-relative links adjusted for a target location. - Project orchestration APIs add project behavior around content translation, including file discovery, writes, path rewriting, metadata, cleanup, and optional disclaimers.
run_translationprints progress and estimate summaries through Click, matching the CLI user experience.dry_run=Truecomputes estimates using virtual README updates, but does not write the README or translation files.groupsare processed sequentially. A single aggregate estimate is printed before work begins.- When image translation is selected, missing Vision configuration raises an error before translation starts.
- Existing alias-based language folders are detected and can be migrated to canonical language folder names as part of the run.
run_reviewfails on missing translated files, missing or stale translation metadata, malformed Markdown frontmatter/code fences, and invalid translated notebook JSON.run_reviewreports missing local Markdown and image link targets as warnings by default.
Вътрешен път на извикване¶
The API delegates to the same core implementation used by the CLI:
Translation:
co_op_translator.api.translation.translate_markdown_content,translate_notebook_content, ortranslate_image_contentза превод в паметта.co_op_translator.api.translation.rewrite_markdown_pathsorrewrite_notebook_pathsза експлицитна последваща обработка на пътища.co_op_translator.api.translation.run_translationза пълна оркестрация на проекта.co_op_translator.config.Config,LLMConfig, andVisionConfig.co_op_translator.core.project.ProjectTranslator.co_op_translator.core.project.TranslationManager.- Фокусирани миксини за проектен превод за Markdown, notebooks, и изображения.
- Markdown, notebook, текстови и преводачи на изображения под
co_op_translator.core.
Review:
co_op_translator.api.review.run_reviewco_op_translator.review.targets.build_review_targetsco_op_translator.review.runner.ReviewRunner- Deterministic checks under
co_op_translator.review.checks
The following classes are useful for maintainers, but are not exported as the package-level stable API.
| Клас | Модул | Отговорност |
|---|---|---|
ProjectTranslator |
co_op_translator.core.project.project_translator |
Координира превода на ниво проект, управлението на директории, нормализирането на метаданни за всеки език и делегирането към Markdown, notebook и преводачи на изображения. |
TranslationManager |
co_op_translator.core.project.translation |
Изпълнява асинхронната обработка на файлове за Markdown, notebooks, изображения, откриване на остарели елементи и актуализации на метаданните за превод. |
ProjectMarkdownTranslationMixin |
co_op_translator.core.project.translation.project_markdown_translation |
Оркестрира четене на Markdown файлове, превод на съдържание, пренаписване на пътища, метаданни, уведомления и записване. |
ProjectNotebookTranslationMixin |
co_op_translator.core.project.translation.project_notebook_translation |
Оркестрира четене на notebook файлове, превод на Markdown клетки, пренаписване на пътища, метаданни, уведомления и записване. |
ProjectImageTranslationMixin |
co_op_translator.core.project.translation.project_image_translation |
Оркестрира намирането на изходни изображения, превод на изображения, пътища за изход, метаданни и записвания. |
ProjectEvaluator |
co_op_translator.core.project.project_evaluator |
Намира преведени Markdown двойки, оценява качеството на превода и чете метаданни за увереност за работни потоци за поправка при ниска увереност. |
ReviewRunner |
co_op_translator.review.runner |
Координира детерминистични проверки на прегледа върху изходни файлове, целеви езици и конфигурирани корени за превод. |
ReviewTarget |
co_op_translator.review.targets |
Описва източников root и директорията за изход на превода, която се преглежда за този root. |
LanguageFolderMigrator |
co_op_translator.core.project.language_migrator |
Открива остарели алиас езикови папки и подготвя планове за миграция към канонични папки по BCP 47. |
Config |
co_op_translator.config.base_config |
Зарежда .env файлове и проверява дали задължителните LLM и опционалните Vision доставчици са конфигурирани. |
LLMConfig |
co_op_translator.config.llm_config.config |
Автоматично открива Azure OpenAI или OpenAI, валидира задължителните променливи на средата и изпълнява проверки на свързаност за доставчика. |
VisionConfig |
co_op_translator.config.vision_config.config |
Открива конфигурация за Azure AI Vision и изпълнява проверки на свързаност за превод на изображения. |