Add full app (7 namespaces) and landing translations for: it, tr, vi,
pl, fa (RTL), th, uk, nl, ta, te, mr, fil, ms, sw, ro. Bringing the
supported set to 29 languages.
- register locales in appLocale.ts and landing/data/i18n.ts
- regenerate resources.d.ts language-name keys
- add native exonyms for the new languages to every existing common.json
- extend localePolicy tests to cover the new locales
Catalogs verified for key/placeholder parity (i18n:validate, 29 locales).
* feat(i18n): add CJK app locale support
* feat(i18n): add Spanish Hindi and Portuguese locales
* feat(i18n): add French Arabic and Bengali locales
* feat(i18n): add Urdu Indonesian and German locales
* feat(i18n): add landing locales for Bengali Urdu and Indonesian
* fix(i18n): address locale review feedback
---------
Co-authored-by: iliya <iliyazelenkog@gmail.com>
- Added support for German (de), French (fr), and Japanese (ja) languages, expanding the localization capabilities of the application.
- Updated the LanguageSwitcher component to include new language options and a search feature for better user experience.
- Enhanced the HeroSection with dynamic download URLs and a release version badge for improved visibility of updates.
- Refactored the ScreenshotsSection to utilize a new data structure for screenshots, improving maintainability and performance.
- Improved the styling of various components, including the addition of search functionality in the LanguageSwitcher and adjustments to the layout of the HeroSection.
- Fixed type handling in several components to ensure better TypeScript compatibility and reduce potential runtime errors.
- Added support for additional languages: Chinese (zh), Spanish (es), Hindi (hi), Arabic (ar), and Portuguese (pt) in the LanguageSwitcher and i18n configuration.
- Updated content files for English and Russian to clarify the free usage of the app.
- Enhanced content management by importing new language files into the content structure.
- Adjusted locale handling to ensure proper recognition of supported languages in the application.
- Added a new noteLink property to the ComparisonSection component for linking to relevant resources.
- Updated the comparison feature entry to include a link to the GitHub repository.
- Enhanced styling for note links in the comparison table for better visibility and user interaction.
- Changed the pricing label in English and Russian localization files from "Pricing" to "Free" for clarity.
- Added "Screenshots" and "Pricing" entries to the navigation menu.
- Introduced a new state variable `swiperReady` to manage the readiness of the screenshots carousel.
- Enhanced the styling of the screenshots section for improved visibility and user experience.
- Updated localization files for English and Russian to include new navigation labels.
- Adjusted layout and transitions for the screenshots carousel to enhance performance and aesthetics.
- Enhanced tests to ensure consistent messageId generation for legacy inbox rows lacking a messageId.
- Updated test descriptions for better clarity regarding the new messageId handling.
- Adjusted test expectations to align with the updated behavior of relaying legacy inbox rows with generated messageIds.