Skip to main content

Contributing

Contributions are welcome. Here are the ways you can help.

:::info Project guidelines

Before contributing, please read the guidelines in the repository:

:::

Ways to Contribute​

TypeDescription
TranslationsAdd a new language — see guide below
Bug ReportsUse the Bug Report issue template
Feature RequestsUse the Feature Request issue template
AccessibilityUse the Accessibility Issue template
Pull RequestsFix 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 branch
git checkout -b feat/my-improvement

# 3. Build and test
mvn -B package

# 4. Commit using Conventional Commits
git commit -m 'feat: add my improvement'

# 5. Push and open a PR
git push origin feat/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​

  1. Copy the English file:

    cd src/main/resources/theme-resources/messages/
    cp messages_en.properties messages_<lang>.properties
  2. Translate all values — do not change the keys:

    # German example
    resendCode=Code erneut senden
    emailOtpForm=Bitte geben Sie den {0}-stelligen Code ein, der an Ihre E-Mail-Adresse gesendet wurde.
  3. Build and verify:

    mvn clean package

    Deploy to Keycloak, switch browser language, confirm all messages display correctly.

  4. Create a PR with branch name i18n/<lang>-messages.

Existing Translations​

LanguageCodeFile
Englishenmessages_en.properties
Turkishtrmessages_tr.properties
Frenchfrmessages_fr.properties
Italianitmessages_it.properties
Spanishesmessages_es.properties
Danishdamessages_da.properties
Germandemessages_de.properties
Russianrumessages_ru.properties
Azerbaijaniazmessages_az.properties
Arabicarmessages_ar.properties
Chinese (Traditional)zh_TWmessages_zh_TW.properties
Portugueseptmessages_pt.properties
Romanianromessages_ro.properties

Resources​