Skip to content

Localization

George Dawoud edited this page Dec 26, 2025 · 14 revisions

Localization

ChurchCRM supports 45+ languages. This page is split for two audiences:


For People Who Want to Help Localize

How to Add a New Locale

  • If your language is not listed in POEditor, request it from a project admin or open an issue on GitHub.

  • Once added, you can start translating terms for the new locale in POEditor.

  • After enough terms are translated, the language can be enabled in the ChurchCRM app (see below for developer steps).

  • Join the project: POEditor ChurchCRM Project

  • How to contribute:

    • Sign up on POEditor and request access
    • Pick your language and start translating missing terms
    • See the AI workflow for using AI to help with batches
  • Supported languages:

  • Best practices:

    • Translate full sentences, avoid abbreviations, and check context
    • Use the same translation for repeated UI terms (e.g., "OK", "Save")

For Developers

How to Add a New Locale

  • Add the new locale to src/locale/locales.json with the correct language code and metadata.

  • Create the directory structure: mkdir -p src/locale/textdomain/<locale>/LC_MESSAGES

  • Run npm run locale:term-extract to generate the initial messages.po.

  • Upload the new messages.po to POEditor and add the language in the POEditor project if not already present.

  • Download translations with npm run locale:download after terms are translated.

  • For full details, see CRM/locale/README.md.

  • Reference:



Questions?

  • See the wiki for more guides, or open an issue on GitHub.

Clone this wiki locally