Localization & Formats
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
| Setting | Description |
|---|---|
| Long date format | Used in reports, event details, and member records (e.g. %B %d, %Y → June 23, 2026) |
| Short date format | Used in tables and compact displays (e.g. %m/%d/%Y → 06/23/2026) |
| Time format | 12-hour (%I:%M %p) or 24-hour (%H:%M) |
| Week starts on | Sunday 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:
| Preset | Example |
|---|---|
| US | June 23, 2026 / 06/23/2026 |
| EU | 23 June 2026 / 23/06/2026 |
| ISO | 2026-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:
- Extract terms:
npm run locale:build
# produces: locale/terms/messages.po
-
Translate:
- Recommended: Upload
locale/terms/messages.poto POEditor (project-managed translations) and translate there. - Alternative: Edit the
.pofile locally with Poedit or similar.
- Recommended: Upload
-
Download & build translated assets:
npm run locale:download
npm run deploy # or npm run build
-
Restart webserver / containers so PHP picks up installed
.mofiles. -
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.
-
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.
- Commit
For a complete developer-oriented guide (commands, POEditor API examples, and troubleshooting), see the Localization management guide.