feat: Translating the application into Persian
Hello Plane team,
I am excited to contribute to Plane by adding full support for the Persian language. In this pull request:
A complete set of translations for Persian has been added, covering all existing UI text.
Persian has been included as an available language option in the app.
Adding Persian is the first step toward supporting right-to-left (RTL) layouts, which will enhance accessibility and usability for Persian-speaking users.
I carefully followed the existing translation structure to ensure consistency and maintainability. I would be grateful if you could review and merge these changes, enabling the community to benefit from Persian language support.
Thank you very much for your ongoing work and dedication to Plane—it’s a fantastic project!
Best regards, Amir Abbas Asadi
Summary by CodeRabbit
Release Notes
- New Features
- Added Persian language support. Users can now select Persian (فارسی) as their interface language for a complete, fully localized experience. Comprehensive translations have been added across all application areas including authentication flows, sidebar navigation, accessibility features, error messages, empty states, and all other user-facing content regions to effectively serve Persian-speaking users.
[!NOTE] Adds full Persian (fa) translations and registers the language across supported lists, lazy-loaded locales, and type definitions.
- i18n:
- New locale
fa: Addedfa/translations,fa/core,fa/accessibility,fa/empty-state, andfa/editor.- Language options: Added
{"label": "فارسی", value: "fa"}toSUPPORTED_LANGUAGESinpackages/i18n/src/constants/language.ts.- Locale registry: Registered
fa(includingcore) inpackages/i18n/src/locales/index.tswith lazy imports.- Types: Extended
TLanguageunion with"fa"inpackages/i18n/src/types/language.ts.}Written by Cursor Bugbot for commit 892e033834bada3b8230c932641b99331a5d1f93. This will update automatically on new commits. Configure here.
[!NOTE]
Other AI code review bot(s) detected
CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.
Walkthrough
Introduces Persian (Farsi) language support to the i18n system by adding translation files for core, accessibility, and empty-state locales, updating the supported languages constant and type definitions, and exporting the new locale group.
Changes
| Cohort / File(s) | Summary |
|---|---|
Language type and constant registration packages/i18n/src/types/language.ts, packages/i18n/src/constants/language.ts |
Extended TLanguage union type to include string literal "fa" and added { label: "فارسی", value: "fa" } entry to SUPPORTED_LANGUAGES array. |
Persian locale translations packages/i18n/src/locales/fa/core.ts, packages/i18n/src/locales/fa/accessibility.ts, packages/i18n/src/locales/fa/empty-state.ts, packages/i18n/src/locales/fa/editor.ts |
Added four new Persian locale modules: core (UI sections, authentication, password management), accessibility (aria labels for sidebar and forms), empty-state (empty page messages for common, project, workspace, settings), and editor (placeholder empty object). |
Locale index export packages/i18n/src/locales/index.ts |
Added "fa" locale group export with sub-entities for core, translations, accessibility, editor, and empty-state. |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
- Attention areas:
- Verify Persian translation completeness and consistency across all four locale files (core, accessibility, empty-state, editor)
- Confirm Persian string encoding (UTF-8) and script rendering correctness
- Validate that all existing locale keys are properly translated in fa/core.ts and fa/empty-state.ts
- Ensure fa/editor.ts placeholder aligns with editor module structure used in other locales
Poem
🐰 A whisker'd hop through tongues so fair, Now Persian words dance everywhere! From فارسی lips to "fa" we say, New locales bloom—hooray, hooray! Let's translate dreams from west to east. 🌙
Pre-merge checks and finishing touches
❌ Failed checks (1 warning, 1 inconclusive)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | You can run @coderabbitai generate docstrings to improve docstring coverage. |
| Description check | ❓ Inconclusive | PR description lacks required template sections like Type of Change, Test Scenarios, and References, though it provides clear context about adding Persian language support. | Add the missing template sections: specify the Type of Change (Feature), describe test scenarios performed, and link any related issues or references. |
✅ Passed checks (1 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title Check | ✅ Passed | The pull request title "feat: Translating the application into Persian" is concise, clear, and directly reflects the primary change in the changeset. The title accurately summarizes the main objective—adding Persian language support to the application—which is evidenced by the additions of Persian locale files, language constants, type definitions, and translations across the i18n package. A developer scanning the repository history would immediately understand that this PR introduces Persian language internationalization. |
✨ Finishing touches
- [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests
- [ ] Post copyable unit tests in a comment
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.