Skip to content

feat: Add Farsi (Persian) Language Support - #120

Merged
parallelcc merged 4 commits into
parallelcc:mainfrom
MahDN:feature/add-persian-language
Oct 19, 2025
Merged

parallelcc merged 4 commits into
parallelcc:mainfrom
MahDN:feature/add-persian-language

Conversation

@MahDN

@MahDN MahDN commented Oct 9, 2025 •

Copy link
Copy Markdown
Contributor

User description

Summary

This pull request introduces comprehensive support for the Farsi (Persian) language, making the application accessible to Persian-speaking users.

Changes Included

  • Configuration Update: Added Persian to the Language enum in app/src/main/java/com/parallelc/micts/config/AppConfig.kt.
  • String Translations: Created a new resource file at app/src/main/res/values-fa/strings.xml with complete translations for all application strings.
  • Documentation: Added a fully translated Persian README_fa.md to provide documentation for Persian users.
  • Readme Link: Updated the main README.md to include a link to the new Persian documentation.

This contribution aims to increase the international reach and user base of the project. All translations have been carefully reviewed for accuracy.


PR Type

Enhancement


Description

  • Add Persian (Farsi) language support to application

  • Create complete Persian translations for all strings

  • Add Persian README documentation with full translation

  • Update language navigation links across all README files


Diagram Walkthrough

flowchart LR
  A["Language Enum"] --> B["Persian Entry"]
  C["String Resources"] --> D["Persian Translations"]
  E["Documentation"] --> F["Persian README"]
  G["Navigation Links"] --> H["Updated READMEs"]
Loading

File Walkthrough

Relevant files
Enhancement
AppConfig.kt
Add Persian language enum configuration                                   

app/src/main/java/com/parallelc/micts/config/AppConfig.kt

  • Add Persian enum entry with Farsi locale configuration
  • Include string resource reference for Persian language option
+2/-0     
strings.xml
Add complete Persian string translations                                 

app/src/main/res/values-fa/strings.xml

  • Create Persian string resource file with complete translations
  • Translate all UI strings including settings, labels, and messages
  • Provide proper Persian localization for all app text
+25/-0   
strings.xml
Add Persian language string entry                                               

app/src/main/res/values/strings.xml

  • Add persian string entry with Persian language name
  • Include non-translatable Persian language display text
+1/-0     
Documentation
README.md
Update main README language navigation                                     

README.md

  • Add Persian language link to navigation bar
  • Include فارسی link pointing to README_fa.md
+2/-2     
README_en.md
Update English README language navigation                               

README_en.md

  • Add Persian language link to navigation bar
  • Include فارسی link pointing to README_fa.md
+1/-1     
README_fa.md
Create complete Persian README documentation                         

README_fa.md

  • Create complete Persian translation of README
  • Include all sections: usage, settings, FAQ, contribution
  • Provide comprehensive documentation in Persian language
+85/-0   
README_ru.md
Update Russian README language navigation                               

README_ru.md

  • Add Persian language link to navigation bar
  • Include فارسی link pointing to README_fa.md
+1/-1     
README_tr.md
Update Turkish README language navigation                               

README_tr.md

  • Add Persian language link to navigation bar
  • Include فارسی link pointing to README_fa.md
+1/-1     

@qodo-code-review

Copy link
Copy Markdown

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
⚪
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
⚪
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
⚪
No custom compliance provided

Follow the guide to enable custom compliance check.

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review

Copy link
Copy Markdown

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Centralize README language navigation links

To improve scalability and prevent inconsistencies, centralize the language
navigation links. Use a script to automatically update all README files from a
single source, rather than manually editing each one.

Examples:

README.md [5]
简体中文  |  [English](/README_en.md)  |  [Русский](/README_ru.md)  |  [Türkçe](/README_tr.md)  |  [فارسی](/README_fa.md)
README_en.md [5]
[简体中文](/README.md)  |  English  |  [Русский](/README_ru.md)  |  [Türkçe](/README_tr.md)  |  [فارسی](/README_fa.md)

Solution Walkthrough:

Before:

// In README.md
... | [English](/README_en.md) | ... | [Türkçe](/README_tr.md) | [فارسی](/README_fa.md)

// In README_en.md
[简体中文](/README.md) | English | ... | [Türkçe](/README_tr.md) | [فارسی](/README_fa.md)

// In README_ru.md
[简体中文](/README.md) | [English](/README_en.md) | Русский | ... | [فارسی](/README_fa.md)

// In README_tr.md
[简体中文](/README.md) | ... | [Русский](/README_ru.md) | Türkçe | [فارسی](/README_fa.md)

// Each README file is updated manually with the new language link.

After:

// In a template file, e.g., `docs/nav_template.md`
[简体中文]({zh_link}) | [English]({en_link}) | [Русский]({ru_link}) | [Türkçe]({tr_link}) | [فارسی]({fa_link})

// In each README file, e.g., README.md
<!--NAV_LINKS_PLACEHOLDER-->

// A script runs during the build process
function updateReadmes() {
  const template = readFile('docs/nav_template.md');
  for (const lang of all_languages) {
    const navBar = generateNavBar(template, lang);
    replacePlaceholderInFile(`README_${lang}.md`, navBar);
  }
}
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a long-term maintainability issue with manually updating language links in all README files and proposes a valid, scalable automation solution.

Low
General
Fix typo in Persian translation

Correct a typo in the Persian translation for the xposed_description string. The
word "جسنجو" should be corrected to "جستجو" for consistency.

app/src/main/res/values-fa/strings.xml [4]

-<string name="xposed_description">قابلیت «حلقه جسنجو» را در هر دستگاه اندروید ۹ تا ۱۵ فعال کنید</string>
+<string name="xposed_description">قابلیت «حلقه جستجو» را در هر دستگاه اندروید ۹ تا ۱۵ فعال کنید</string>
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies a typo in a user-facing Persian string resource. Fixing it improves the quality and consistency of the localization.

Low
  • More

@MahDN
MahDN force-pushed the feature/add-persian-language branch from b5db019 to f98922c Compare October 9, 2025 15:32
@parallelcc
parallelcc merged commit 9ae5523 into parallelcc:main Oct 19, 2025
1 check passed
@parallelcc parallelcc mentioned this pull request Oct 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants