Skip to content

Add Hindi localization strings#229

Open
adnan-bhaldar wants to merge 13 commits intorainxchzed:mainfrom
adnan-bhaldar:hindi-localization
Open

Add Hindi localization strings#229
adnan-bhaldar wants to merge 13 commits intorainxchzed:mainfrom
adnan-bhaldar:hindi-localization

Conversation

@adnan-bhaldar
Copy link

@adnan-bhaldar adnan-bhaldar commented Feb 4, 2026

  • Added Hindi localization strings for various app features including navigation, errors, and settings.

Summary by CodeRabbit

  • New Features
    • Added full Hindi localization across the app: navigation, search & filters, authentication flows, settings & themes, repository discovery, developer profiles, favorites, timeline, dialogs, snackbars, and UI states.
    • Includes comprehensive translated strings with pluralization and format placeholders for dates, counts, messages, status logs, and rate-limit notices to ensure accurate Hindi rendering throughout the UI.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

Walkthrough

Adds a new Hindi localization resource file (~325 strings) at composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml with translations for navigation, updates, search/filters, auth/device flows, settings/themes, repositories/favorites, time-relative messages, errors, and pluralization tokens.

Changes

Cohort / File(s) Summary
Hindi Localization Strings
composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml
Added a comprehensive Hindi translations file (~325 strings) covering app name/navigation, update states and errors, search/results/sorting, auth/device flows, settings/themes/appearance, repositories and favourites, time-relative messages, miscellaneous errors/placeholders, and pluralization/format specifiers.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 मैंने लाया शब्दों का उपहार,

हर बटन कहे अब हिन्दी प्यार।
छोटी सी फ़ाइल, बड़ी आवाज़,
हर टैप पर मुस्कान का राग।
लोकलाइज़ेशन की ये मीठी साज़।

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately summarizes the main change: adding Hindi localization strings to the application, which matches the file addition and PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Line 111: Replace the incorrect Hindi translation string value for the
resource named "section_about": change the current value "कबारे में" to the
correct phrase "के बारे में" so the string resource section_about contains the
proper Hindi translation.
- Line 264: The string resource repository_not_starred currently uses an
incorrect Hindi word "शुरू" (started); replace its value with a correct phrase
indicating "not starred" such as "रिपॉजिटरी को स्टार नहीं किया गया है" (or
"रिपॉज़िटरी स्टार नहीं की गई है") so the translation conveys "Repository not
starred" exactly.
- Line 26: The Hindi string resource with name "open" uses the incorrect verb
form "खोले"; update the value for string name="open" from "खोले" to the
imperative form "खोलें" so the button/action label uses the correct command
form.
- Line 35: The string resource updating_x_of_y currently mixes English and
Hindi; update its value so the English word "of" is translated to Hindi while
preserving placeholders %1$d and %2$d — for example change the value of string
name "updating_x_of_y" to use "में से" (e.g., "अपडेट कर रहा है %1$d में से %2$d"
or another grammatically appropriate Hindi phrasing) and keep the placeholder
order intact.
- Around line 316-320: Fix the Hindi time-relative strings by correcting the
misspellings and extra whitespace: in the string resources time_years_ago,
time_months_ago, time_days_ago, and time_hours_ago replace "पाहेले" with the
correct "पहले" (and remove the extra space before the word in time_months_ago),
and in time_minutes_ago replace "मिनीट" with "मिनट"; update the XML values
accordingly to preserve the %1$d placeholder.
🧹 Nitpick comments (2)
composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml (2)

82-84: Inconsistent partial translations in sort options.

These strings mix Hindi and English inconsistently. Consider either fully translating or keeping the English terms consistently (e.g., "Best Match" or "सर्वश्रेष्ठ मिलान").

Suggested fix (fully translated)
-    <string name="sort_most_stars">अधिकांश Stars</string>
-    <string name="sort_most_forks">अधिकांश Forks</string>
-    <string name="sort_best_match">श्रेष्ठ Match</string>
+    <string name="sort_most_stars">सबसे ज़्यादा Stars</string>
+    <string name="sort_most_forks">सबसे ज़्यादा Forks</string>
+    <string name="sort_best_match">सर्वश्रेष्ठ मिलान</string>

274-276: Inconsistent format specifier style.

These strings use %d while similar strings elsewhere (e.g., lines 229, 231, 257, 259) use %1$d. For localization consistency and to allow translators flexibility in word order, positional specifiers are preferred.

Suggested fix for consistency
-    <string name="minutes_ago">%d मिनट पहले</string>
-    <string name="hours_ago">%d घंटे पहले</string>
-    <string name="days_ago">%d दिन पहले</string>
+    <string name="minutes_ago">%1$d मिनट पहले</string>
+    <string name="hours_ago">%1$d घंटे पहले</string>
+    <string name="days_ago">%1$d दिन पहले</string>

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Line 199: The string resource with name "log_downloaded" contains a spelling
mistake ("डाउनलोड हूआ"); update the value for the string resource identified by
name="log_downloaded" to the correct Hindi spelling "डाउनलोड हुआ" so the XML
entry reads the corrected text.
- Line 191: The string resource named "update_to_version" uses unnatural Hindi
"अपडेट को %1$s"; replace its value with a grammatically correct phrasing such as
"%1$s में अपडेट करें" (or "अपडेट करें: %1$s") so the localization reads
naturally; update the value of the string with this corrected Hindi text.
- Line 281: The translation for string name "open_developer_profile" uses
unnatural English word order; update the value to use natural Hindi SOV order by
replacing "खोलें डेवलपर प्रोफ़ाइल" with "डेवलपर प्रोफ़ाइल खोलें" so the string
resource reads naturally.
🧹 Nitpick comments (3)
composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml (3)

82-84: Consider: Mixed language usage in sorting options.

These strings mix Hindi and English ("अधिकांश Stars", "श्रेष्ठ Match"). While technical terms like "Stars" and "Forks" are often kept in English in Hindi UIs, consider whether full Hindi translations ("सबसे ज़्यादा स्टार", "सबसे ज़्यादा फ़ोर्क", "सर्वश्रेष्ठ मिलान") would be more consistent with the rest of the file.

This is a style preference and can be kept as-is if mixed-language is the intended approach.


274-276: Inconsistent placeholder format: Use positional specifiers for consistency.

These strings use %d while similar time-relative strings elsewhere (lines 229, 231, 257, 259, 316-320) use %1$d. Positional specifiers (%1$d) are preferred in localization files as they allow translators to reorder arguments if needed by the target language's grammar.

Suggested fix
-    <string name="minutes_ago">%d मिनट पहले</string>
-    <string name="hours_ago">%d घंटे पहले</string>
-    <string name="days_ago">%d दिन पहले</string>
+    <string name="minutes_ago">%1$d मिनट पहले</string>
+    <string name="hours_ago">%1$d घंटे पहले</string>
+    <string name="days_ago">%1$d दिन पहले</string>

304-304: Unusual plural form: "रिपॉजिटरीज्".

The trailing halant (्) in "रिपॉजिटरीज्" creates an unusual consonant ending. Consider using "रिपॉजिटरीज़" (with nukta for the 'z' sound) or simply "रिपॉजिटरी" since Hindi plurals often don't require a suffix change when context is clear.

Suggested fix
-    <string name="repositories_plural">रिपॉजिटरीज्</string>
+    <string name="repositories_plural">रिपॉजिटरीज़</string>

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Line 171: The status string resource named "installing" currently reads an
active phrasing ("स्थापित कर रहा है"); change its value to the passive form (for
example "स्थापित किया जा रहा है") so the label represents a status rather than
an agent action; update the <string name="installing"> value accordingly in the
strings-hi.xml resource.
- Line 9: The string resource with name "check_for_updates" currently uses a
noun phrase; change its value to an imperative verb form (e.g., "अपडेट की जाँच
करें" or "अपडेट जाँचें") in composeResources/value-hi/strings-hi.xml so the UI
label reads as an action; update the <string name="check_for_updates"> value
accordingly.
- Line 304: The string value for the resource named repositories_plural is
spelled unnaturally; update the <string name="repositories_plural"> entry to use
the correct Hindi plural “रिपॉजिटरीज़” (replace the current “रिपॉजिटरीज्” value)
so the translated plural reads naturally.
- Line 273: Update the value of the string resource with name "just_now" to
match the established usage "अभी-अभी" (replace the current "अभी अभी" with
"अभी-अभी") so the app's Hindi strings remain consistent with other occurrences
of this phrase.
- Around line 246-248: The three UI-visible string resources theme_light,
theme_dark, and theme_system are still in English; replace their values with
Hindi translations (for example "Light" -> "हल्का" or "लाइट", "Dark" -> "गहरा"
or "डार्क", "System" -> "सिस्टम") so they match the rest of the Hindi strings
file—update the string values for string name="theme_light", string
name="theme_dark", and string name="theme_system" accordingly.
- Line 313: The string resource "updated_x_ago" currently reads "अपडेट %1$s" and
is missing the word "पहले"; update the value of the <string
name="updated_x_ago"> entry (symbol: updated_x_ago) to include "पहले" (e.g.,
"अपडेट %1$s पहले") so the Hindi phrase becomes a complete "updated ... ago"
clause.
- Line 155: The string resource named "install_logs" currently uses an
imperative Hindi phrase ("लॉग इनस्टॉल करें") that reads like a command; change
its value to a header/noun form such as "इंस्टॉलेशन लॉग" or "इंस्टॉल लॉग्स" so
it reads as a section title rather than an action, and update the string value
accordingly in the strings-hi.xml entry for install_logs.
- Line 241: Update the string resource with name rate_limit_close to use the
imperative form for the Close button; replace the current value "बंद करना" with
the imperative "बंद करें" so the label reads correctly.
- Around line 82-85: The three string resources sort_most_stars,
sort_most_forks, and sort_best_match contain English remnants; update their
values in value-hi/strings-hi.xml to fully Hindi phrases (e.g., replace "अधिकांश
Stars" with "सबसे अधिक सितारे" or "सबसे अधिक स्टार्स", "अधिकांश Forks" with
"सबसे अधिक फ़ॉर्क" or "सबसे अधिक फोर्क्स", and "श्रेष्ठ Match" with "सबसे अच्छा
मिलान" or "श्रेष्ठ मिलान") so the labels are consistent Hindi; edit the values
for string names sort_most_stars, sort_most_forks, and sort_best_match
accordingly.
- Around line 12-15: For the Hindi strings cannot_launch, failed_to_open,
failed_to_update and update_all_failed, move the placeholder tokens (%1$s and
%2$s) into natural Hindi word order (place the noun/item immediately after the
verb or where the subject/object would normally appear) instead of leaving them
at the end; update each string value so the placeholders appear in the correct
grammatical position (e.g., before or after the verb phrase as required) while
keeping the same placeholder indices and punctuation.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Around line 183-185: Strings for stats are still in English; update the
resource values for the string names "forks", "stars", and "issues" to their
Hindi equivalents (e.g., replace "Forks" with a Hindi term like "फ़ोर्क्स" or
"फोर्क", "Stars" with "सितारे", and "Issues" with "समस्याएँ") so the labels
match the rest of the Hindi UI; edit the entries for string name="forks", string
name="stars", and string name="issues" accordingly.
- Line 241: The string resource with name "rate_limit_close" contains a typo
("बंद करेंा"); update the value for the resource named rate_limit_close to the
correct Hindi label "बंद करें" by replacing the current text value in the
strings resource entry for rate_limit_close.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Around line 134-140: Translate the English theme labels to Hindi for the
UI-visible string resources: update the values for string names theme_dynamic,
theme_ocean, theme_purple, theme_forest, theme_slate, and theme_amber to their
appropriate Hindi translations (keeping any capitalization/formatting consistent
with other localized strings) so the Hindi resource bundle is fully localized.
- Line 313: The string resource named "updated_x_ago" currently reads
incomplete; update its value to a complete clause while keeping the placeholder
%1$s intact (for example use a phrase like "%1$s पहले अपडेट हुआ" or "%1$s पहले
अपडेट हो गया") so the Hindi text reads naturally and grammatically complete in
composeResources/value-hi/strings-hi.xml.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Line 8: Update the Hindi translation for the string resource named
"navigate_back": replace the current value "वापस नेविगेट करें" with the more
natural action label "वापस जाएँ" in the strings-hi.xml entry for navigate_back
so the UI reads naturally for Hindi users.
- Line 164: The string resource "reinstall" currently uses a non-imperative form
("पुनर्स्थापित") and should be changed to an imperative/button label; update the
value of the string named "reinstall" to an imperative Hindi phrase such as
"पुनर्स्थापित करें" or "फिर से इंस्टॉल करें" so it reads as a clear action on
the button.
🧹 Nitpick comments (1)
composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml (1)

32-33: Standardize error terminology (“गलती” vs “त्रुटि”).

The file mixes two terms for errors. Consider using a single term for consistency (e.g., “त्रुटि”).

♻️ Suggested consistency pass
-    <string name="error_with_message">गलती: %1$s</string>
+    <string name="error_with_message">त्रुटि: %1$s</string>
...
-    <string name="auth_error_with_message">गलती: %1$s</string>
+    <string name="auth_error_with_message">त्रुटि: %1$s</string>
...
-    <string name="log_error">गलती</string>
-    <string name="log_error_with_message">गलती: %1$s</string>
+    <string name="log_error">त्रुटि</string>
+    <string name="log_error_with_message">त्रुटि: %1$s</string>
...
-    <string name="error_generic">गलती: %1$s</string>
+    <string name="error_generic">त्रुटि: %1$s</string>

Also applies to: 46-47, 205-207, 213-214

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Around line 49-52: Several Hindi string resources mix Latin "GitHub" and
Devanagari "गिटहब" (e.g., string names enter_code_on_github, open_github,
copy_code and other GitHub-related strings mentioned at lines 61 and 269);
standardize them to a single brand rendering (preferably "GitHub") across all
affected string resources in value-hi/strings-hi.xml by updating the translated
text for each GitHub-related string resource to use the chosen form
consistently.
- Around line 168-171: Update the Hindi resource strings to make the
download-stage labels progressive to match the others: change the string
resources "downloading" and "verifying" in strings-hi.xml to progressive forms
(e.g., "डाउनलोड हो रहा है" and "सत्यापन हो रहा है") so they align with
"updating" and "installing" which use "हो रहा है".

@rainxchzed
Copy link
Owner

Hey @adnan-bhaldar Thank you for your contribution, um how can i say, so the thing is currently i am doing a very huge code refactoring - modularization - so i can try to apply your changed after i finish with that or you could close the PR for now (i am sorry for that) and once i finish with refactoring, i would let you know and you would just make another PR and try applying your changes but that time without any issues like merge conflicts!

adnan-bhaldar and others added 12 commits February 5, 2026 10:36
Added Hindi localization strings for various app features including navigation, errors, and settings.
….xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
….xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
….xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
….xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
….xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Updated Hindi translations for various strings in the app.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@composeApp/src/commonMain/composeResources/value-hi/strings-hi.xml`:
- Line 252: The Hindi string value for the resource key "add_to_favourites" uses
an awkward phrase; update the string resource value so it uses the postposition
"में" instead of "करने के लिए" (e.g., change "पसंदीदा करने के लिए जोड़ें" to
"पसंदीदा में जोड़ें") by editing the string with name "add_to_favourites".
- Line 272: The string resource "last_synced" currently uses an incomplete
phrase "पिछला सिंक किया गया"; update its value to a grammatically complete,
natural Hindi label such as "अंतिम सिंक" or "पिछली बार सिंक किया गया" by
replacing the existing text for the string name "last_synced" in the
strings-hi.xml entry to one of these suggested alternatives.

@adnan-bhaldar adnan-bhaldar marked this pull request as draft February 5, 2026 05:17
@adnan-bhaldar adnan-bhaldar marked this pull request as ready for review February 5, 2026 05:21
@adnan-bhaldar
Copy link
Author

Ill Wait

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants