![trans-tool logo](https://raw.githubusercontent.com/MarcinOrlowski/trans-tool/master/artwork/trans-tool-logo.png)
### The translation files checker and syncing tool ###
---
[master](https://github.com/MarcinOrlowski/trans-tool/tree/master) branch:
[![Unit tests](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml)
[![codecov](https://codecov.io/gh/MarcinOrlowski/trans-tool/branch/master/graph/badge.svg?token=3THKJKSQ1G)](https://codecov.io/gh/MarcinOrlowski/trans-tool)
[![Code lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml)
[![MD Lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml)
[development](https://github.com/MarcinOrlowski/trans-tool/tree/dev) branch:
[![Unit tests](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml)
[![codecov](https://codecov.io/gh/MarcinOrlowski/trans-tool/branch/dev/graph/badge.svg?token=3THKJKSQ1G)](https://codecov.io/gh/MarcinOrlowski/trans-tool)
[![Code lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml)
[![MD Lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml)
---
## Table of contents ##
* [Introduction](#introduction)
* [Extensive documentation](docs/README.md)
* [Available validators](docs/checks/README.md)
* [Usage examples](docs/usage.md)
* [Config file](docs/config.md)
* [Changelog](docs/CHANGES.md)
* [License](#license)
---
## Introduction ##
`trans-tool` is a small yet powerful utility designed for your projects' translation files. It comes
equipped with several validators to catch common mistakes in translations as well as base strings.
It currently loads `*.properties` files, a format often used in Java projects. The
`trans-tool` was conceived during work
on [Logisim-evolution](https://github.com/logisim-evolution/logisim-evolution/).
An example `*.properties` file resembles a simplified version of the commonly used INI file:
```ini
# Example of *.properties file
programTitle = trans-tool v2.0.0
okButton = "OK"
```
Internally, `trans-tool` operates on an abstract format, thus adding support for other file formats
can easily be incorporated, which will be done upon demand.
While loading your `*.properties` files, `trans-tool` checks if the files are in order, ensuring all
of them are syntactically correct and all the translations are in sync with the main language. It
also comes with a vast set of various linters and checkers to guard the quality of the files'
contents. It can check for missing or dangling keys, improper punctuation, open brackets, quotation
marks, and more. It can also automatically sync translation files quickly, providing a fresh
template for your translators to work on.
```bash
$ trans-tool -b soc -l pl
Base: src/main/resources/resources/logisim/strings/soc/soc.properties
Errors: 1
Brackets
E: Line 163:90: "AssemblerRunSuccess": No opening character matching ")".
PL: src/main/resources/resources/logisim/strings/soc/soc_pl.properties
Errors: 3, warnings: 4
Brackets
E: Line 175:83: "AssemblerRunSuccess": No opening character matching ")".
Formatting values
E: Line 383:167: "PioMenuOutClearRemark": Expected "%s", found "%s.".
E: Line 387:167: "PioMenuOutSetRemark": Expected "%s", found "%s.".
Missing translations
W: "ElfHeaderEIDataError": Missing translation.
W: "AsmPanErrorCreateFile": Missing translation.
Punctuation mismatch
W: Line 12: "SocInsertTransWindowTitle": Ends with "y". Expected ":".
First words case mismatch.
W: Line 332: "Rv32imProgramCounter": Starts UPPER-cased, expected lower-case.
```
## License ##
* Written and copyrighted ©2021-2024 by Marcin Orlowski <mail (#) marcinorlowski (.) com>
* trans-tool is open-sourced software licensed under
the [MIT license](http://opensource.org/licenses/MIT).
* Project logo
contains [elements from Flaticon.com](https://www.flaticon.com/free-icon/translation_99694).
* trans-tool project [PyPi page](https://pypi.org/project/trans-tool/).
Raw data
{
"_id": null,
"home_page": "https://github.com/MarcinOrlowski/trans-tool/",
"name": "trans-tool",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "translation helper locale language sync check validation",
"author": "Marcin Orlowski",
"author_email": "mail@marcinOrlowski.com",
"download_url": "https://files.pythonhosted.org/packages/e0/cd/206ba8c6161aaa61b11b1f110711ec043fbafbd93619e7e0ba6a38d66830/trans_tool-2.5.4.tar.gz",
"platform": null,
"description": "![trans-tool logo](https://raw.githubusercontent.com/MarcinOrlowski/trans-tool/master/artwork/trans-tool-logo.png)\n\n### The translation files checker and syncing tool ###\n\n---\n\n[master](https://github.com/MarcinOrlowski/trans-tool/tree/master) branch:\n[![Unit tests](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml)\n[![codecov](https://codecov.io/gh/MarcinOrlowski/trans-tool/branch/master/graph/badge.svg?token=3THKJKSQ1G)](https://codecov.io/gh/MarcinOrlowski/trans-tool)\n[![Code lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml)\n[![MD Lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml/badge.svg?branch=master)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml)\n\n[development](https://github.com/MarcinOrlowski/trans-tool/tree/dev) branch:\n[![Unit tests](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/unittests.yml)\n[![codecov](https://codecov.io/gh/MarcinOrlowski/trans-tool/branch/dev/graph/badge.svg?token=3THKJKSQ1G)](https://codecov.io/gh/MarcinOrlowski/trans-tool)\n[![Code lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/linter.yml)\n[![MD Lint](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml/badge.svg?branch=dev)](https://github.com/MarcinOrlowski/trans-tool/actions/workflows/markdown.yml)\n\n---\n\n## Table of contents ##\n\n* [Introduction](#introduction)\n* [Extensive documentation](docs/README.md)\n * [Available validators](docs/checks/README.md)\n * [Usage examples](docs/usage.md)\n * [Config file](docs/config.md)\n* [Changelog](docs/CHANGES.md)\n* [License](#license)\n\n---\n\n## Introduction ##\n\n`trans-tool` is a small yet powerful utility designed for your projects' translation files. It comes\nequipped with several validators to catch common mistakes in translations as well as base strings.\nIt currently loads `*.properties` files, a format often used in Java projects. The\n`trans-tool` was conceived during work\non [Logisim-evolution](https://github.com/logisim-evolution/logisim-evolution/).\n\nAn example `*.properties` file resembles a simplified version of the commonly used INI file:\n\n```ini\n# Example of *.properties file\nprogramTitle = trans-tool v2.0.0\nokButton = \"OK\"\n```\n\nInternally, `trans-tool` operates on an abstract format, thus adding support for other file formats\ncan easily be incorporated, which will be done upon demand.\n\nWhile loading your `*.properties` files, `trans-tool` checks if the files are in order, ensuring all\nof them are syntactically correct and all the translations are in sync with the main language. It\nalso comes with a vast set of various linters and checkers to guard the quality of the files'\ncontents. It can check for missing or dangling keys, improper punctuation, open brackets, quotation\nmarks, and more. It can also automatically sync translation files quickly, providing a fresh\ntemplate for your translators to work on.\n\n```bash\n$ trans-tool -b soc -l pl\n\nBase: src/main/resources/resources/logisim/strings/soc/soc.properties\n Errors: 1\n Brackets\n E: Line 163:90: \"AssemblerRunSuccess\": No opening character matching \")\".\n PL: src/main/resources/resources/logisim/strings/soc/soc_pl.properties\n Errors: 3, warnings: 4\n Brackets\n E: Line 175:83: \"AssemblerRunSuccess\": No opening character matching \")\".\n Formatting values\n E: Line 383:167: \"PioMenuOutClearRemark\": Expected \"%s\", found \"%s.\".\n E: Line 387:167: \"PioMenuOutSetRemark\": Expected \"%s\", found \"%s.\".\n Missing translations\n W: \"ElfHeaderEIDataError\": Missing translation.\n W: \"AsmPanErrorCreateFile\": Missing translation.\n Punctuation mismatch\n W: Line 12: \"SocInsertTransWindowTitle\": Ends with \"y\". Expected \":\".\n First words case mismatch.\n W: Line 332: \"Rv32imProgramCounter\": Starts UPPER-cased, expected lower-case.\n```\n\n## License ##\n\n* Written and copyrighted ©2021-2024 by Marcin Orlowski <mail (#) marcinorlowski (.) com>\n* trans-tool is open-sourced software licensed under\n the [MIT license](http://opensource.org/licenses/MIT).\n* Project logo\n contains [elements from Flaticon.com](https://www.flaticon.com/free-icon/translation_99694).\n* trans-tool project [PyPi page](https://pypi.org/project/trans-tool/).\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "The translation files checker and syncing tool.",
"version": "2.5.4",
"project_urls": {
"Bug Tracker": "https://github.com/MarcinOrlowski/trans-tool/issues/",
"Documentation": "https://github.com/MarcinOrlowski/trans-tool/",
"Homepage": "https://github.com/MarcinOrlowski/trans-tool/",
"Source Code": "https://github.com/MarcinOrlowski/trans-tool/"
},
"split_keywords": [
"translation",
"helper",
"locale",
"language",
"sync",
"check",
"validation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "908ddf0fc619dc976326181260f4665ff0d60d03de0be7b18219061e3c5c4290",
"md5": "8291345ef70bede842ebc6eee8584164",
"sha256": "3b021935b02217c6495111ae11be7f6a7ad6617725eea06fec18f114ae5ddbcf"
},
"downloads": -1,
"filename": "trans_tool-2.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8291345ef70bede842ebc6eee8584164",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 78030,
"upload_time": "2024-10-06T19:30:03",
"upload_time_iso_8601": "2024-10-06T19:30:03.991596Z",
"url": "https://files.pythonhosted.org/packages/90/8d/df0fc619dc976326181260f4665ff0d60d03de0be7b18219061e3c5c4290/trans_tool-2.5.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e0cd206ba8c6161aaa61b11b1f110711ec043fbafbd93619e7e0ba6a38d66830",
"md5": "13e017a03b237c32c5f9d620aeb75a31",
"sha256": "ceeb67c4e346ff9da33532f69bf43918eda05e9876e26e3ab556c55d621ef10a"
},
"downloads": -1,
"filename": "trans_tool-2.5.4.tar.gz",
"has_sig": false,
"md5_digest": "13e017a03b237c32c5f9d620aeb75a31",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 46945,
"upload_time": "2024-10-06T19:30:05",
"upload_time_iso_8601": "2024-10-06T19:30:05.934665Z",
"url": "https://files.pythonhosted.org/packages/e0/cd/206ba8c6161aaa61b11b1f110711ec043fbafbd93619e7e0ba6a38d66830/trans_tool-2.5.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-06 19:30:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MarcinOrlowski",
"github_project": "trans-tool",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "argparse",
"specs": []
},
{
"name": "python-simple-log",
"specs": []
}
],
"lcname": "trans-tool"
}