Skip to content

MarketSquare/robotframework-browser-translation

Repository files navigation

Robot Framework Browser Translation (Finnish + German)

Version CI License All Contributors

This project provides language translations for the Robot Framework Browser library.

Currently supported languages:

  • Finnish (fi) via translation_fi.json
  • German (de) via translation_de.json

The package is discovered by Browser through Python plugin naming conventions (robotframework_browser_translation) and exposes get_language() with available translation files.

This project uses Browser library Python plugin API to provide translation files for the Browser library. The get_language() method returns a list of dictionaries like this:

[
  {"language": "fi", "path": "/path/to/translation_fi.json"},
  {"language": "de", "path": "/path/to/translation_de.json"},
]

Browser uses these values to select the requested language when Browser is imported.

Use In Robot Framework

Install the translation package (and Browser, if not installed yet):

pip install robotframework-browser robotframework-browser-translation

Then choose the language in the Browser import:

*** Settings ***
Library    Browser    language=fi

or:

*** Settings ***
Library    Browser    language=de

Developer Setup With UV

This repository includes uv in development requirements. A common local setup is:

uv venv
source .venv/bin/activate
uv pip install -e .
uv pip install -r requirements-dev.txt

Run checks/tests:

uv run invoke utest
uv run invoke lint

Add A New Language (Developer Workflow)

  1. Create a new translation file from Browser's current keywords:
uv run python -m Browser.entry translation robotframework_browser_translation/translation_xx.json
  1. Translate values in name and doc fields in translation_xx.json.
  2. Keep sha256 values as generated (they are used to detect upstream doc changes).
  3. Register the new language in robotframework_browser_translation/__init__.py inside get_language().
  4. Verify checksums and test suite:
uv run invoke utest

Optional checksum comparison against current Browser docs:

uv run rfbrowser translation --compare robotframework_browser_translation/translation_xx.json

Pytest Quickstart For This Project

This project keeps Python unit tests in utest/test_translation.py.

Useful commands:

uv run invoke utest
uv run pytest -q
uv run pytest -k checksum -q

How pytest works here:

  • Test discovery: pytest collects functions whose names start with test_.
  • Fixtures: reusable setup blocks (language, translation_file, data) provide test inputs.
  • Parametrization: the language fixture runs dependent tests once per language (fi, de).
  • Assertion style: plain assert ... statements are enough; pytest prints useful failure diffs.

Tip:

If you add a new language, add its code to SUPPORTED_LANGUAGES in utest/test_translation.py so the same checks run automatically.

Detect changes in documentation

Each translation_xx.json contains a sha256 value for every keyword. The checksum is generated from the original Browser library documentation and is used to detect outdated or missing translations.

Use:

rfbrowser translation --compare robotframework_browser_translation/translation_xx.json

The command prints keywords that are missing from the translation file or need to be updated.

Contributors

Tatu Aalto
Tatu Aalto

💻 📖
Florian Wellens
Florian Wellens

💻 📖

About

Browser library translation to Finnish

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors