feat: Add comprehensive internationalization (i18n) support

- Add multi-language support with i18next and react-i18next
- Implement user-selectable date format preferences (5 formats)
- Add time format preferences (12-hour/24-hour)
- Implement RTL (right-to-left) support for Arabic, Hebrew, Persian, Urdu
- Add first day of week preference
- Create LocalizationContext for managing i18n settings
- Add LocalizationSettings component to Settings page
- Include sample translations: English, Spanish, Arabic
- Configure 10 languages: en, es, fr, de, ar, he, zh, ja, pt, ru
- Add translation management documentation and Crowdin config
- Create date formatting utilities that respect user preferences
- Add RTL CSS styles for proper layout mirroring
- Update Settings and ThemeToggle components to use translations
- Add comprehensive documentation (implementation guide, quick reference, translation guide)

All user preferences are persisted to localStorage and apply throughout the app.
This commit is contained in:
Mo Tarbin
2026-03-08 15:57:57 +00:00
parent 21e0b08716
commit 6d6185dc5e
26 changed files with 2234 additions and 20 deletions

11
crowdin.yml Normal file
View File

@@ -0,0 +1,11 @@
# Crowdin configuration for Donetick
# See: https://support.crowdin.com/configuration-file/
project_id: "donetick"
api_token_env: CROWDIN_API_TOKEN
preserve_hierarchy: true
files:
- source: /public/locales/en/**/*.json
translation: /public/locales/%two_letters_code%/**/%original_file_name%
update_option: update_as_unapproved