{"id":30065094,"url":"https://github.com/leynier/doculingo","last_synced_at":"2025-08-08T05:47:39.978Z","repository":{"id":244881902,"uuid":"810762437","full_name":"leynier/doculingo","owner":"leynier","description":"A command-line tool to translate large documents using language models. It preserves the file formatting and simplifies migrating documentation to other languages.","archived":false,"fork":false,"pushed_at":"2025-06-08T05:23:18.000Z","size":146,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-22T00:56:53.639Z","etag":null,"topics":["cli","document-translation","docx","github-actions","gpt","openai","openai-api","pypi","python","translation","typer"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/doculingo","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leynier.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-05T10:02:47.000Z","updated_at":"2025-06-20T00:59:25.000Z","dependencies_parsed_at":"2024-06-18T03:58:23.801Z","dependency_job_id":"d8e02fde-a20a-43d6-a07b-772937f16acf","html_url":"https://github.com/leynier/doculingo","commit_stats":null,"previous_names":["leynier/document-translator","leynier/doculingo"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/leynier/doculingo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Fdoculingo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Fdoculingo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Fdoculingo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Fdoculingo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leynier","download_url":"https://codeload.github.com/leynier/doculingo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Fdoculingo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269372827,"owners_count":24406292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","document-translation","docx","github-actions","gpt","openai","openai-api","pypi","python","translation","typer"],"created_at":"2025-08-08T05:47:24.182Z","updated_at":"2025-08-08T05:47:39.912Z","avatar_url":"https://github.com/leynier.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DocuLingo\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Version](https://img.shields.io/pypi/v/doculingo?color=%2334D058\u0026label=Version)](https://pypi.org/project/doculingo)\n[![Last commit](https://img.shields.io/github/last-commit/leynier/doculingo.svg?style=flat)](https://github.com/leynier/doculingo/commits)\n[![Commit activity](https://img.shields.io/github/commit-activity/m/leynier/doculingo)](https://github.com/leynier/doculingo/commits)\n[![Stars](https://img.shields.io/github/stars/leynier/doculingo?style=flat\u0026logo=github)](https://github.com/leynier/doculingo/stargazers)\n[![Forks](https://img.shields.io/github/forks/leynier/doculingo?style=flat\u0026logo=github)](https://github.com/leynier/doculingo/network/members)\n[![Watchers](https://img.shields.io/github/watchers/leynier/doculingo?style=flat\u0026logo=github)](https://github.com/leynier/doculingo)\n[![Contributors](https://img.shields.io/github/contributors/leynier/doculingo)](https://github.com/leynier/doculingo/graphs/contributors)\n\nA **command-line tool** to translate large documents using language models. It preserves the file formatting and simplifies migrating documentation to other languages.\n\n---\n\n## Table of Contents\n\n* [Overview](#overview)\n* [Key Features](#key-features)\n* [Installation](#installation)\n* [Quick Start](#quick-start)\n* [CLI Reference](#cli-reference)\n* [Development](#development)\n* [Environment Variables](#environment-variables)\n* [License](#license)\n\n---\n\n## Overview\n\n`doculingo` helps you translate documents while preserving their formatting. It currently works with Word files and aims to support additional formats in the future, making it ideal for projects that require multiple language versions without losing the original layout.\n\n---\n\n## Key Features\n\n* ✨ **Automatic Translation** — uses OpenAI to safely translate paragraphs.\n* 📝 **Preserves Styles** — copies fonts, colors, and alignment to the translated version.\n* 📄 **Document Support** — currently handles large `.docx` files with more formats planned.\n* 🔁 **Automatic Retries** — retries when the API fails.\n* ⚙️ **Simple CLI** — clear commands with built-in help.\n\n---\n\n## Installation\n\nRun instantly with [uv](https://github.com/astral-sh/uv) without installing:\n\n```bash\nuvx doculingo --help\n```\n\nOr install from PyPI:\n\n```bash\npip install doculingo\n```\n\n---\n\n## Quick Start\n\nTranslate a Word document from Spanish to English:\n\n```bash\ndoculingo word \\\n  --input file.docx \\\n  --output translated.docx \\\n  --language-source spanish \\\n  --language-target english\n```\n\n---\n\n## CLI Reference\n\nGet the full list of options with:\n\n```bash\ndoculingo --help\n```\n\nThe main subcommand is `word`, designed for `.docx` files.\n\n---\n\n## Development\n\nInstall the dependencies and run the tool locally:\n\n```bash\nuv lock\nuv sync --all-groups --all-extras\nuv run doculingo --help\n```\n\n---\n\n## Environment Variables\n\nCopy `.env.example` to `.env` and set `OPENAI_API_KEY` with your OpenAI key.\n\n---\n\n## License\n\nDistributed under the MIT license. See the [`license`](license) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleynier%2Fdoculingo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleynier%2Fdoculingo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleynier%2Fdoculingo/lists"}