Skip to main content

Localization & Formats

Available since 7.4.1

The dedicated Localization & Formats page was introduced in ChurchCRM 7.4.1. In earlier versions, these settings were split between Church Info and System Settings.

All locale and format settings live in one place: Admin → Localization & Formats (path: admin/system/localization).


Language & Region​

ChurchCRM supports 42 languages.

Features​

Browser language auto-detection​

When an unauthenticated user visits ChurchCRM (e.g., the login page), the application detects the browser's preferred language and displays the UI in that language automatically — if a translation exists. No configuration is required. Once a user logs in, their saved locale preference takes effect.

Per-user locale override​

Each user can set their own preferred language in My Settings → Localization, overriding the system-wide default. This allows multilingual teams to work in their own language on the same installation.


Date & Time Formats​

SettingDescription
Long date formatUsed in reports, event details, and member records (e.g. %B %d, %Y → June 23, 2026)
Short date formatUsed in tables and compact displays (e.g. %m/%d/%Y → 06/23/2026)
Time format12-hour (%I:%M %p) or 24-hour (%H:%M)
Week starts onSunday or Monday — affects calendar display

Live preview​

As you type or select a format string, a live preview updates instantly showing how today's date renders with that format. Three quick-select presets are available:

PresetExample
USJune 23, 2026 / 06/23/2026
EU23 June 2026 / 23/06/2026
ISO2026-06-23

Phone Number Formats​

Configure how phone numbers are displayed and masked in input fields. International presets (North America, EU, UK, and others) are available for quick setup.


How to translate ChurchCRM​

If you'd like to contribute translations or add a new language, follow this short workflow:

  1. Extract terms:
npm run locale:build
# produces: locale/terms/messages.po
  1. Translate:

    • Recommended: Upload locale/terms/messages.po to POEditor (project-managed translations) and translate there.
    • Alternative: Edit the .po file locally with Poedit or similar.
  2. Download & build translated assets:

npm run locale:download
npm run deploy # or npm run build
  1. Restart webserver / containers so PHP picks up installed .mo files.

  2. Verify:

    • Use Admin → System → Debug and open the Locale Support card to confirm the OS locale is installed and translations are available.
    • Browse the UI to confirm translated strings render correctly.
  3. Commit & publish:

    • Commit locale/terms/messages.po (and generated frontend JSON if your workflow requires it) and open a PR, or sync via POEditor integration.

For a complete developer-oriented guide (commands, POEditor API examples, and troubleshooting), see the Localization management guide.