Metadata-Version: 2.1
Name: geranslator
Version: 2.0.0
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
Platform: UNKNOWN
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'

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

[![Test Python package](https://github.com/faissaloux/geranslator/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/faissaloux/geranslator/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/faissaloux/geranslator/branch/main/graph/badge.svg)](https://codecov.io/gh/faissaloux/geranslator) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/faissaloux/geranslator/main.svg)](https://results.pre-commit.ci/latest/github/faissaloux/geranslator/main) ![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()
```


