Contributing
Contributions are welcome. Here are the ways you can help.
Ways to Contribute
| Type | Description |
|---|---|
| Translations | Add a new language — see guide below |
| Bug Reports | Open an issue with reproduction steps |
| Feature Requests | Share ideas via GitHub Issues |
| Pull Requests | Fix bugs or implement new features |
Contribution Guidelines
# 1. Fork and clone
git clone https://github.com/<your-fork>/keycloak-2fa-email-authenticator.git
# 2. Create a feature branch
git checkout -b feature/my-improvement
# 3. Commit
git commit -m 'Add my improvement'
# 4. Push and open a PR
git push origin feature/my-improvement
Code standards:
- Follow existing code style and conventions
- Add comments only for non-obvious logic
- Update docs when changing behavior
- Test your changes before submitting
Adding a Translation
- Steps
- Translation Keys
-
Copy the English file:
cd src/main/resources/theme-resources/messages/cp messages_en.properties messages_<lang>.properties -
Translate all values — do not change the keys:
# German exampleresendCode=Code erneut sendenemailOtpForm=Bitte geben Sie den {0}-stelligen Code ein, der an Ihre E-Mail-Adresse gesendet wurde. -
Build and verify:
mvn clean packageDeploy to Keycloak, switch browser language, confirm all messages display correctly.
-
Create a PR with branch name
add-<lang>-translation.
See the Localization page for the full reference of all keys with descriptions and placeholders.
Existing Translations
| Language | Code | File |
|---|---|---|
| English | en | messages_en.properties |
| Turkish | tr | messages_tr.properties |
| French | fr | messages_fr.properties |
| Italian | it | messages_it.properties |
| Spanish | es | messages_es.properties |
| Danish | da | messages_da.properties |
| German | de | messages_de.properties |
| Russian | ru | messages_ru.properties |
| Azerbaijani | az | messages_az.properties |
| Arabic | ar | messages_ar.properties |
| Chinese (Traditional) | zh_TW | messages_zh_TW.properties |