{"id":15209497,"url":"https://github.com/backist/qautolinguist","last_synced_at":"2026-02-13T01:36:12.897Z","repository":{"id":215009219,"uuid":"732478056","full_name":"Backist/QAutoLinguist","owner":"Backist","description":"Automatic translation to internationalize QT proyects though a simple CLI.","archived":false,"fork":false,"pushed_at":"2025-01-10T23:11:11.000Z","size":82178,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-16T01:50:01.965Z","etag":null,"topics":["cli","developer-tools","i10n","i18n-tool","pyqt","pyqt5","pyside","pyside2","python","python3","qt","qt-framework","qt-linguist","qt4","qt5","tools","translation"],"latest_commit_sha":null,"homepage":"https://bit.ly/QAutoLinguist","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Backist.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2023-12-16T20:02:59.000Z","updated_at":"2025-01-10T23:11:14.000Z","dependencies_parsed_at":"2024-11-16T16:05:06.681Z","dependency_job_id":"1fc93f4f-df65-4d6c-a3b1-18c84c348ff3","html_url":"https://github.com/Backist/QAutoLinguist","commit_stats":{"total_commits":62,"total_committers":2,"mean_commits":31.0,"dds":"0.22580645161290325","last_synced_commit":"dcf38003f7de1e752422a81afc451c112315ac02"},"previous_names":["backist/qautolinguist"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Backist/QAutoLinguist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backist%2FQAutoLinguist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backist%2FQAutoLinguist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backist%2FQAutoLinguist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backist%2FQAutoLinguist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Backist","download_url":"https://codeload.github.com/Backist/QAutoLinguist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backist%2FQAutoLinguist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29392000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T00:53:09.511Z","status":"ssl_error","status_checked_at":"2026-02-13T00:53:09.126Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cli","developer-tools","i10n","i18n-tool","pyqt","pyqt5","pyside","pyside2","python","python3","qt","qt-framework","qt-linguist","qt4","qt5","tools","translation"],"created_at":"2024-09-28T07:40:26.596Z","updated_at":"2026-02-13T01:36:12.884Z","avatar_url":"https://github.com/Backist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n_Hey Buddy, this README is fine, but check our new docs 👓 👀_\n\n_This project uses [semantic versioning](https://semver.org/)_\n\u003cbr\u003e\n\n📖 **README version:** _0.1.1_\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./resources/QAutoLinguist_icon_v1_noback.png\" width=\"280\" alt=\"accessibility text\"\u003e\n\u003c/p\u003e\n\n![GitHub issues](https://img.shields.io/github/issues/Backist/QAutoLinguist?style=for-the-badge)\n![GitHub closed issues](https://img.shields.io/github/issues-closed/Backist/QAutoLinguist?style=for-the-badge)\n![GitHub License](https://img.shields.io/github/license/Backist/QAutoLinguist?style=for-the-badge)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Backist/QAutoLinguist?style=for-the-badge)\n![Static Badge](https://img.shields.io/badge/python-3.7_%7C_3.8_%7C_3.9_%7C_3.10_%7C_3.11-blue?style=for-the-badge)\n\n\u003cbr\u003e\n\n# 🏷️ QAutoLinguist\n\nQAutoLinguist is a CLI with the aim to **automate**, **manage** and **facilitate** the process of internationalising a _Qt_ application through a simple CLI. \nQAutoLinguist offers a simple and user-friendly approach to translate your application into other languages automatically using the ``Google Translator API`` by default. \n\n\u003e [!IMPORTANT]\n\u003e QAutoLinguist is only functional in `Qt-6.x.x` versions for now.\n\n### Why use QAutoLinguist and not Qt Linguist?\nThe Qt development environment offers a tool designed to facilitate the translation of Qt applications that use the Qt internationalisation system (i18n)\ninternationalisation system, [Qt Linguist](https://doc.qt.io/qt-5/qtlinguist-index.html), which provides a GUI for performing translations.\n\nIn many occasions, using this tool provided by Qt may be a very professional or complex option, needing some experience or docs to use,\nas it is a highly customisable program with various parameters and can be a somewhat tedious option for small to medium sized projects that are simply\nsmall or medium-sized projects that simply want to be able to simply translate their application into other languages.\n\n\u003cbr\u003e\n\n## 💡 When to use QAutoLinguist:\n- [x] Fast internationalisation for any language in the world (133 available) quickly and without performing any tasks.\n- [x] Compatible with the entire ``Qt`` environment.\n- [x] No previous experience or documentation required.\n- [x] Ability to use your favourite translator, such as ``Deepl``, ``Microsoft Translator`` or ``MyMemory Translator`` to perform your translations automatically. *2\n- [x] Region support.\n- [x] Review and modification of translations before compilation.\n- [ ] *Guarantees (partially) accurated translations.\n- [ ] Need to work with translation files other than ``.ts``.\n- [ ] Supports disambiguation\n- [ ] Plurality and gender management\n- [ ] Supports context editing or modification.\n- [ ] Translation suggestions\n\n\u003e __*__ QAutoLinguist gives the possibility to modify the automatic translations before they are compiled.\n\u003e __*2__ Some may require API KEY to work.\n\n\u003e [!NOTE]\n\u003e QAutoLinguist is not a professional solution or intended to provide all the flexibility and customisation that Qt Linguist can offer.\n\u003e If your Qt application requires contextualisation, plural translations or disambiguations, it is recommended that you use the tool provided by Qt.\n\n\u003cbr\u003e\n\n## ⚙️ How QAutoLinguist do the process\nRegarding the automation process, as a summary, it creates the translation files ``.ts`` for each language and from them the fonts are extracted to introduce them \nin a more user-friendly syntax file, ``TOML``, created with the intention of providing the user with a view of the source and the translation made by the user. \nfiles with a more user-friendly syntax, ``TOML``, created with the intention of providing the user with a view of the source and the translation made by \nthe third-party translator so that the translations, despite being automatic, are as accurate as possible.\nOnce the sources are translated, they are extracted from the ``TOML`` to be inserted into the .ts and compiled into the translation file to be used, the .qm (compiled files).\n\n\u003cbr\u003e\n\n## 🛠️ Use:\nQAutoLinguist is based on a ``.ini`` configuration file where you specify some parameters to tell QAutoLinguist how to manage the translation process.\n\n\u003e [!IMPORTANT]\n\u003e We asume that QAutoLinguist is installed in `PATH`, that is what QAutoLinguist will try when installing it. If not, consider add \n\u003e the package directory to PATH variable.\n\nIn general cases this is what you are looking for:\n\n1. **Initialize the configuration file**:\nThis command will create a configuration file in the command run CWD with the name ``.qal_config.ini`` by default, unless ``[\u003cconfig_file_name\u003e]``\nis specified.\n\n  ```bash\n  \u003e\u003e\u003e qautolinguist build init [\u003cconfig_file_name\u003e]                # UNIX\n  \u003e\u003e\u003e python3 -m qautolinguist build init  [\u003cconfig_file_name\u003e]    # POSIX\n  ```\n  \n2. **Complete the configuration file**:\nOnce the configuration file is created, fill in the required parameters to perform the translations.\n\n3. **Create the build**:\nOnce the configuration file is correctly filled in, the only thing left to do is to start the translation process.\nSpecify ``[\u003cconfig_path\u003e]`` if you are in a different directory than the one used to create the configuration file or you have set a different name than the default one.\n\n  ```bash\n  \u003e\u003e\u003e qautolinguist build run [\u003cconfig_path\u003e]              # UNIX\n  \u003e\u003e\u003e python3 -m qautolinguist build run [\u003cconfig_path\u003e]   # POSIX\n  ```\n\n\u003cbr\u003e\n\n## Rebuilds and Isolated cases\n\n#### CASE 1: If you want to change or touch up some translation (.toml files):\n- ``Simply recreate the binaries:```\n```bash\n    # If \u003cconfig_file_path\u003e is not specified, CWD will be searched for a TOML file named [.config.toml].\n    # If the file is missing\n    \u003e\u003e\u003e qautolinguist rebuild bundles [\u003cconfig_file_path\u003e] # UNIX\n    \u003e\u003e\u003e python3 -m qautolinguist rebuild bundles [\u003cconfig_file_path\u003e] # POSIX\n    # if the configuration file is not in the directory where the command is executed, specify its path\n```\n\n#### CASE 2: If the application sources have been modified:\n- ``You need to create a new build.\n    Be sure to change the configuration file if you want to change any parameters for this new build.\n\n#### CASE 3: If you want to create a new build for another application:\n- ``If a build already exists in the working directory:``` ```.\n```bash\n\u003e\u003e\u003e qautolinguist build -new [\u003cconfig_file_name\u003e] # windows\n\u003cconfig_file_name\u003e CANNOT be the SAME as another config file.\n\u003e\u003e\u003e python3 -m qautolinguist build -new [\u003cconfig_file_path\u003e] # linux\n```\n\n\u003e [!IMPORTANT]\n\u003e Case 3 being developed for now.\n\n\u003cbr\u003e\n\n## Configuration file\nRegarding the ``.qal_config.ini`` that is generated when you run ``**qautotranslator build init**``.\n\n\u003e [!TIP]\n\u003e **If you are looking for a quick and easy build, just fill the parameters in section [REQUIRED]**.\n\nIt will look something like this:\n\n```ini\n# =============================   QAutoLinguist Configuration File    =====================================\n# This file is auto-generated by qautolinguist.Config .\n# If you are not very familiar with the configuration file format, \n# just fill in the fields in the \"Required\" section. \n# Be cautious when placing values.\n# Take these measures:\n# 1. Do not use \"\" or '' to specify text strings, even if you want to specify paths containing spaces;\n#      the parser parses them internally; it will cause an error if you do.\n# 2. This format uses empty lines to detect braces and attributes. \n#      If you have to specify multi-line values, increase the indentation for each new line.\n# ===============================================================================\n\n[Required]\n# File to search the app translation sources.\nsource_file=  \n\n# Reference locale, taken as a reference to make other translations.\ndefault_locale= en   \n\n# A list of languages/locales that your application will support. \n# Langs or locales can be put either as \u003cxx_XX\u003e or typing the lang directly (english, spanish, etc).\navailable_locales= []\n\n\n# =============================   OPTIONALS    =====================================\n# Usually you will not need to edit this section.\n# Here you can adjust where the generated files are saved and some settings to\n# handle the behaviour of the QAutoLinguist\n# ==================================================================================\n\n[Optionals]\n# Folder that contains the .qm files (Final translation files). If not specif\n# ied, a folder will be created in command CWD\ntranslations_folder= \n\n# Folder that contains the .ts files (Qt translation Files). If not specified\n# , a folder will be created in command CWD\nsource_files_folder= \n     \n# Folder that contains the .toml files (editable translation files). If not s\n# pecified, a folder will be created in command CWD\ntranslatables_folder= \n        \n# When True, translation reference will be used in case one translation in on\n# e language fails. When False a FailedTranslation exception will be raised.\nuse_default_on_failure= true     \n\n# Allow seeing and editing translated translations in case you want to modify\n#  some words or phrases after compiling the files.\nrevise_after_build= false      \n\n# Keep the translations folder and delete the ones created during the build.\n\n# NOTE: The translatable and source_files folders will be deleted. Make sure \n# they do not contain valuable or necessary files for your project.\nclean= true            \n\n# Displays information about the state of the build.\ndebug_mode= true               \n\n# Displays more information about the processes done. DEBUG_MODE must be True\n#  to enable that option.\nverbose= false   \n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackist%2Fqautolinguist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbackist%2Fqautolinguist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackist%2Fqautolinguist/lists"}