-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededi18nInternationalization and localizationInternationalization and localization
Description
Summary
CronPulse is an open-source tool with global potential. Adding support for multiple languages — starting with French, German, and Japanese — would make it accessible to a much wider audience and demonstrate the project's commitment to internationalization.
Problem
The CronPulse UI is currently English-only. Non-English-speaking users and teams face a language barrier when using the dashboard, reading alert messages, or viewing public status pages.
Expected Behavior / Deliverable
Phase 1: i18n Infrastructure (if not already in place)
- Set up an i18n framework (e.g.,
i18next,@formatjs/intl, or a lightweight custom solution). - Extract all user-facing strings from the UI into translation files.
- Add a language selector in the dashboard settings or header.
- Persist language preference in
localStorageor user settings.
Phase 2: Translations
- French (fr) translation file
- German (de) translation file
- Japanese (ja) translation file
Each translation file should cover:
- Dashboard UI (navigation, buttons, labels, tooltips)
- Alert/notification message templates
- Status page text
- Error messages
- Settings page
Implementation Hints
- UI components live in:
src/— audit all components for hardcoded strings. - Common i18n patterns for this stack:
- JSON translation files in
src/locales/en.json,src/locales/fr.json, etc. - A translation function
t('key')used in components. - Dynamic import of locale files for code splitting.
- JSON translation files in
- Date/time formatting should also be locale-aware (use
Intl.DateTimeFormat). - Cron expression descriptions (e.g., "Every 5 minutes") should also be translated if a library like
cronstrueis used (it supports i18n). - Contributors can pick just one language — this issue can be split across multiple PRs.
Acceptance Criteria
- i18n infrastructure set up with translation function
- All hardcoded English strings extracted to locale files
- Language selector available in the UI
- At least one of: French, German, or Japanese translation complete
- Date/time formatting respects locale
- Notification templates support localization
- Contributing guide for adding new languages documented
Note to Contributors
You do NOT need to translate all three languages in a single PR! Pick the one you are most comfortable with and submit a PR for that language. Each language is a valuable standalone contribution.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededi18nInternationalization and localizationInternationalization and localization