{"id":31053024,"url":"https://github.com/komed3/translatehub","last_synced_at":"2026-05-06T10:34:04.321Z","repository":{"id":314304833,"uuid":"1054894524","full_name":"komed3/TranslateHub","owner":"komed3","description":"Cross-platform translation management tool for i18n projects supporting multiple namespaces","archived":false,"fork":false,"pushed_at":"2026-04-27T13:45:30.000Z","size":392,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-27T15:28:41.911Z","etag":null,"topics":["i18n","i18n-tool","linux","python-app","translator","windows"],"latest_commit_sha":null,"homepage":"","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/komed3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-11T13:29:55.000Z","updated_at":"2026-04-27T13:46:31.000Z","dependencies_parsed_at":"2025-09-14T00:00:50.269Z","dependency_job_id":null,"html_url":"https://github.com/komed3/TranslateHub","commit_stats":null,"previous_names":["komed3/translatehub"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/komed3/TranslateHub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2FTranslateHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2FTranslateHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2FTranslateHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2FTranslateHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/komed3","download_url":"https://codeload.github.com/komed3/TranslateHub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komed3%2FTranslateHub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32689196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["i18n","i18n-tool","linux","python-app","translator","windows"],"created_at":"2025-09-15T01:42:32.088Z","updated_at":"2026-05-06T10:34:04.301Z","avatar_url":"https://github.com/komed3.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TranslateHub\n\n![GitHub Release](https://img.shields.io/github/v/release/komed3/TranslateHub?include_prereleases\u0026display_name=release\u0026style=for-the-badge)\n![GitHub License](https://img.shields.io/github/license/komed3/TranslateHub?style=for-the-badge)\n\n**TranslateHub** is a cross-platform translation management tool for i18n projects, designed to make translation work quick and efficient. It supports multiple languages and namespaces, allowing for easily manage and edit translation files. Features include automatic sorting and synchronization of translation keys across languages using a schema that stores the structure of all namespaces. The app provides a user-friendly interface for editing translations, tracking progress, searching and filtering, exporting, and comprehensive statistics.\n\nThis app was originally created to manage translations for the [@Airportmap](https://github.com/airportmap) projects, but should support other Node.js apps using [i18next](https://npmjs.com/package/i18next) or similar structures as well.\n\n## Installation\n\nClone the repository:\n\n```bash\ngit clone https://github.com/komed3/TranslateHub.git\ncd TranslateHub\n```\n\n### Prerequisites\n\nPython 3.9 or higher  \npip (Python package installer)\n\n### Windows\n\n```bash\npip install -e .\npython translatehub.py\n```\n\n### Linux\n\n```bash\npip install -e .\nchmod +x translatehub.py\n./translatehub.py\n```\n\n## Building Standalone Executables\n\nYou can create a standalone executable using PyInstaller for both Windows and Linux. Just run the provided script. The executable will be in the `dist/TranslateHub` directory.\n\n**Just a reminder:** Windows defender might flag the executable as suspicious. This is a common false positive for PyInstaller builds. You can safely ignore this warning. If you want to take further investigation, submit the executable to Microsoft Security following [these instructions](https://www.microsoft.com/en-us/wdsi/filesubmission).\n\n### Windows\n\n```bash\npip install pyinstaller\n./build_windows.bat\n```\n\n### Linux\n\n```bash\npip install pyinstaller\nchmod +x build_linux.sh\n./build_linux.sh\n```\n\n## Usage\n\n### Getting Started\n\nWhen you first run **TranslateHub**, you'll be prompted to select the translation root directory. This should be the directory containing your language folders (e.g., `en-US`, `de-DE`). Once selected, the app will load all languages and namespaces. If the project does not contain a valid schema directory, one will be created automatically.\n\nIn the options dialog (`File` -\u003e `Options`), you can configure settings such as the auto-save interval, JSON file compressing, and much more.\n\nClosing out of the project via menu (`File` -\u003e `Close Project`) will close the app and remove the current project folder. Normal closing will keep the current folder loaded for the next start.\n\nIf you want to export translations, use the `Export` option in the `File` menu. This will create a zip file containing languages and namespaces of your choice.\n\n### Working with Languages and Namespaces\n\nLanguages and namespaces are displayed in the left panel. You can manage them by adding, renaming, or deleting. To add a new language or namespace, use the `Add` button next to the respective header. Rename or delete by right-clicking on the item.\n\nAdditionally, you can filter the list of languages and namespaces using the filter boxes above each list.\n\n### Editing Translations\n\nTo edit translations, use the editor in the right panel. If the editor is empty, ensure you have selected a language and namespace from the left panel.\n\nNow, you can edit translations directly in the text fields. Changes are highlighted and automatically saved periodically (if activated). Use the \"Hide Translated Values\" checkbox to focus on untranslated content. To search for specific keys or values, use the filter box at the top of the editor.\n\n### Managing Translation Keys\n\nTranslation keys will be synced across all languages and sorted alphabetically when saving. You can manage keys by adding, renaming, or deleting them.\n\nTo add a new key, select a language and namespace, then click the `Add Key` button. To rename or delete a key, use the buttons next to each key in the editor.\n\nSyncing will happen automatically. You can also manually synchronize keys using the `Synchronize Keys` option in the `Edit` menu.\n\n### Statistics\n\nThe **TranslateHub** app provides a comprehensive statistics view to help you track the translation progress. Progress bars at the bottom of the left panel shows the progress for the currently selected language and namespace.\n\nIf you want to see overall statistics, use the `Statistics` option in the `Edit` menu. This dialog shows translation progress for all languages and namespaces as a matrix. Double-click on a cell to navigate directly to that language and namespace.\n\nVia `Missing Translations` in the `Edit` menu, you can see all missing translations across all languages and namespaces in a list view. Alternatively, you can search within all translations using the `Search` option.\n\n### API Translations\n\nTranslating using external APIs is supported but in early `ALPHA` and not jet tested. You can configure API settings in the options dialog (`File` -\u003e `Options`). After that, click the `Translate` button in the editor to translate a missing key for the currently selected language and namespace.\n\n## Project Structure\n\n**TranslateHub** expects your translation files to be organized as follows:\n\n```\nroot_directory/\n├── _schema/\n├── en-US/\n│   ├── app.generic.json\n│   ├── app.home.json\n│   └── ...\n├── de-DE/\n│   ├── app.generic.json\n│   ├── app.home.json\n│   └── ...\n└── ...\n```\n\nEach JSON file should contain key-value pairs for translations:\n\n```json\n{\n  \"search\": \"Search\",\n  \"title\": \"Welcome to our application\",\n  ...\n}\n```\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).  \n© 2025 [@komed3](https://github.com/komed3) (Paul Köhler)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkomed3%2Ftranslatehub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkomed3%2Ftranslatehub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkomed3%2Ftranslatehub/lists"}