Metadata-Version: 2.4
Name: geranslator
Version: 2.0.3
Summary: Translate your translation files
Home-page: https://github.com/faissaloux/geranslator
Author: Faissal Wahabali
Author-email: fwahabali@gmail.com
License: MIT
Project-URL: Source, https://github.com/faissaloux/geranslator
Project-URL: Documentation, https://geranslator.faissaloux.com
Project-URL: Author, https://www.faissaloux.com
Keywords: translation,translation files,translate
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyYAML>=6.0.3
Requires-Dist: cffi>=2.0.0
Requires-Dist: packaging>=25.0
Requires-Dist: polib>=1.2.0
Requires-Dist: selenium>=4.40.0
Requires-Dist: termspark>=3.0.0
Requires-Dist: typer>=0.21.0
Requires-Dist: types-PyYAML>=6.0
Requires-Dist: types-polib>=1.2.0
Requires-Dist: webdriver-manager>=4.0.2
Provides-Extra: dev
Requires-Dist: black>=26.1.0; extra == "dev"
Requires-Dist: isort>=7.0.0; extra == "dev"
Requires-Dist: mypy>=1.19.0; extra == "dev"
Requires-Dist: pre-commit>=4.5.0; extra == "dev"
Requires-Dist: pytest>=9.0.0; extra == "dev"
Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
Requires-Dist: pytest-mock>=3.15.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
Requires-Dist: mkdocs-material>=9.7.1; extra == "docs"
Requires-Dist: pymdown-extensions>=10.20; extra == "docs"
Dynamic: license-file

![Logo](https://raw.githubusercontent.com/faissaloux/geranslator/2.x/.github/art/logo.png)

[![Test Python package](https://github.com/faissaloux/geranslator/actions/workflows/tests.yml/badge.svg?branch=2.x)](https://github.com/faissaloux/geranslator/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/faissaloux/geranslator/branch/2.x/graph/badge.svg)](https://codecov.io/gh/faissaloux/geranslator) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/faissaloux/geranslator/2.x.svg)](https://results.pre-commit.ci/latest/github/faissaloux/geranslator/2.x) ![PyPI](https://img.shields.io/pypi/v/geranslator) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/geranslator) ![PyPI - Status](https://img.shields.io/pypi/status/geranslator)

# Installation
```bash
    pip install geranslator
```
# Configuration
> .geranslator-config.yaml

It's gonna be created for you. 😌

```yaml
geranslator:
  lang_dir: lang
  lang_files_ext: json
  provider: google
  origin_lang: en
  target_langs: [fr, ar]
```
- lang_dir: Where your translation files live.
- lang_files_ext: Your translation files extension.
- provider: Provider you want to translate your file.
- origin_lang: The origin language you already have.
- target_langs: Languages you want your file to get translated to.

> supported extensions: json, yaml, yml, po

> supported providers: google, deepl
# Usage
## CLI
```bash
geranslator
```
### Supported options
| option | short | description |
|---|---|---|
| --provider        | -p | To specify provider.|
| --lang-dir        | -d | To specify translation files directory.|
| --extension       | -e | To specify translation files format.|
| --origin-lang     | -o | To specify the origin language.|
| --target-langs    | -t | To specify target languages.|
```bash
geranslator --provider=deepl --origin-lang=en --target-langs=es,pt
```
```bash
geranslator -p deepl -o en -t es,pt
```
> [!NOTE]
> Keep in mind that default values are on `.geranslator-config.yaml`
## IDE
This will use the configuration as default
```python
    from geranslator import Geranslator

    Geranslator().translate()
```

You can customize it using the following methods. 😃
```python
    from geranslator import Geranslator

    geranslator = Geranslator()
    geranslator.set_provider('google')
    geranslator.set_lang_dir('translation')
    geranslator.set_origin_lang('en')
    geranslator.set_target_lang(['ar', 'fr'])
    geranslator.set_lang_files_extension('json')
    geranslator.translate()
```
You can chain them too 😮
```python
    from geranslator import Geranslator

    Geranslator().set_provider('google').set_lang_dir('translation').set_origin_lang('en').set_target_lang(['ar', 'fr']).set_lang_files_extension('json').translate()
```
