-
-
Notifications
You must be signed in to change notification settings - Fork 25
Translations update from Toolate #744
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Currently translated at 100.0% (315 of 315 strings) Translation: NotallyX/app Translate-URL: https://toolate.othing.xyz/projects/notallyx/app/ru/
Currently translated at 100.0% (3 of 3 strings) Translation: NotallyX/metadata Translate-URL: https://toolate.othing.xyz/projects/notallyx/metadata/ru/
📝 WalkthroughWalkthroughAdds and refines Russian and Romanian localization strings (expanded plurals, biometrics and crash/backup diagnostics, wording and placeholder fixes), adds Russian Play Store Fastlane metadata files, and applies multiple German string wording, punctuation, and placeholder corrections. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
app/src/main/res/values-ru/strings.xml (1)
336-336: Consider: "Откатить" vs "Отменить" for undo."Откатить" (rollback) is technically correct but "Отменить" is more conventional in Russian UIs for undo actions (e.g., used by Microsoft, Google). This is a minor stylistic choice - the current translation is understandable.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
app/src/main/res/values-ru/strings.xml(12 hunks)fastlane/metadata/android/ru-RU/full_description.txt(1 hunks)fastlane/metadata/android/ru-RU/short_description.txt(1 hunks)fastlane/metadata/android/ru-RU/title.txt(1 hunks)
🔇 Additional comments (4)
fastlane/metadata/android/ru-RU/title.txt (1)
1-1: LGTM!The Russian title is accurate, concise, and well within the Play Store's 30-character limit.
fastlane/metadata/android/ru-RU/short_description.txt (1)
1-1: LGTM!The short description accurately conveys the app's purpose and stays within the 80-character limit for Play Store.
fastlane/metadata/android/ru-RU/full_description.txt (1)
1-52: LGTM!The full description is well-structured with clear sections, proper HTML formatting for Play Store, and comprehensive coverage of app features, permissions, and caveats. The translation reads naturally in Russian.
app/src/main/res/values-ru/strings.xml (1)
354-361: LGTM!The new diagnostic and error strings are well-translated with proper placeholder formatting. The messages provide clear guidance to users for error scenarios.
Currently translated at 100.0% (315 of 315 strings) Translation: NotallyX/app Translate-URL: https://toolate.othing.xyz/projects/notallyx/app/ru/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
app/src/main/res/values-ru/strings.xml (1)
159-159: Consider adding comma for proper Russian grammar.The phrase "может вы указали" should include a comma: "может, вы указали" to properly separate the introductory word from the main clause in Russian.
🔎 Suggested fix
- <string name="export_settings_failure">Не удалось экспортировать настройки, может вы указали недопустимый путь?</string> + <string name="export_settings_failure">Не удалось экспортировать настройки, может, вы указали недопустимый путь?</string>
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-ru/strings.xml(12 hunks)
🔇 Additional comments (5)
app/src/main/res/values-ru/strings.xml (5)
16-21: LGTM! Proper Russian plural forms added.The addition of
fewandmanyquantity forms is correct for Russian pluralization. The grammar is accurate: "заметка" (one), "заметки" (few), "заметок" (many/other).
54-65: LGTM! Russian plural forms correctly added.Both
cant_add_filesandcant_add_imagesnow include properfewandmanyforms with correct Russian grammar.
118-123: LGTM! Russian plurals properly expanded.All plural resources (
deleted_selected_notes,more_files,restored_selected_notes,unarchived_selected_notes) now include grammatically correct Russianfewandmanyforms with appropriate declensions.Also applies to: 239-244, 286-291, 329-334
32-32: LGTM! Localization refinements improve clarity.The updated help texts, UI strings, and messages provide better context and clearer instructions for Russian users. The changes improve tone, punctuation, and explanatory details throughout the interface.
Also applies to: 71-71, 154-154, 160-160, 174-174, 179-179, 187-187, 211-211, 263-263, 265-265, 272-272, 292-292, 310-310, 336-336, 347-347
354-361: Verified: All diagnostic strings exist in English source and are properly referenced in the codebase.The eight new strings (biometrics_setup_failure, biometrics_setup_failure_decrypt, biometrics_setup_failure_encrypt, crash_export_backup_failed, crash_export_backup_message, not_exists, report_bug_stacktrace_too_long, and view_logs) are present in the English strings.xml and actively used in Kotlin code (SettingsFragment.kt, ErrorActivity.kt, ExportExtensions.kt, AndroidExtensions.kt). Placeholder usage is consistent with English versions (%1$s and %2$s where applicable), and Russian translations properly escape quote marks using XML notation.
| <plurals name="exported_notes"> | ||
| <item quantity="few">Экспортировано %1$d заметки</item> | ||
| <item quantity="one">Экспортирована %1$d заметка</item> | ||
| <item quantity="other">Экспортировано %1$d заметок</item> | ||
| <item quantity="one">Экспортирована %1$s заметка</item> | ||
| <item quantity="few">Экспортировано %1$s заметки</item> | ||
| <item quantity="many">Экспортировано %1$s заметок</item> | ||
| <item quantity="other">Экспортировано %1$s заметок</item> | ||
| </plurals> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if the file exists and list available strings files
echo "=== Finding strings.xml files ==="
find . -name "strings.xml" -type f 2>/dev/null | head -20
# Check English source for exported_notes and imported_notes
echo -e "\n=== English source (values/strings.xml) ==="
if [ -f "app/src/main/res/values/strings.xml" ]; then
rg -n "exported_notes|imported_notes" app/src/main/res/values/strings.xml -A 5 -B 1
else
echo "File not found at expected path"
# Try to find it
find . -path "*/values/strings.xml" -type f -exec grep -l "exported_notes\|imported_notes" {} \;
fi
# Check Russian translation for exported_notes and imported_notes
echo -e "\n=== Russian translation (values-ru/strings.xml) ==="
if [ -f "app/src/main/res/values-ru/strings.xml" ]; then
rg -n "exported_notes|imported_notes" app/src/main/res/values-ru/strings.xml -A 3 -B 1
else
echo "File not found"
fi
# Check how these plurals are used in code
echo -e "\n=== Code usage of exported_notes and imported_notes ==="
rg -n "exported_notes|imported_notes" --type kotlin --type java 2>/dev/null | head -20 || rg -n "exported_notes|imported_notes" . 2>/dev/null | grep -E "\.(kt|java):" | head -20
# Compare with other plurals to see pattern
echo -e "\n=== Other plurals using %1$d in Russian ==="
rg "archived_selected_notes|deleted_selected_notes" app/src/main/res/values-ru/strings.xml -A 3 -B 1 2>/dev/null || echo "Pattern search inconclusive"Repository: Crustack/NotallyX
Length of output: 5169
🏁 Script executed:
#!/bin/bash
# List repository structure to understand the layout
echo "=== Repository root files ==="
ls -la | head -20
echo -e "\n=== Checking app directory ==="
if [ -d "app" ]; then
find app/src/main/res/values* -name "strings.xml" 2>/dev/null | sort
fi
# Look for the specific Russian file mentioned
echo -e "\n=== Looking for Russian strings ==="
find . -path "*/values-ru/strings.xml" 2>/dev/null
# Check the file size
if [ -f "app/src/main/res/values-ru/strings.xml" ]; then
echo -e "\n=== File info ==="
wc -l app/src/main/res/values-ru/strings.xml
echo ""
echo "=== Lines 160-200 of Russian strings.xml ==="
sed -n '160,200p' app/src/main/res/values-ru/strings.xml
fiRepository: Crustack/NotallyX
Length of output: 5820
Fix placeholder implementation in exported_notes and imported_notes plurals.
Both English and Russian versions use %1$s placeholders in exported_notes and imported_notes plurals, but the code calls getQuantityString() with only 2 arguments (plural resource and quantity) without passing the count for formatting. This results in unfilled placeholders at runtime (e.g., "Exported %1$s Notes" instead of "Exported 5 Notes").
Other similar plurals (archived_selected_notes, deleted_selected_notes, unarchived_selected_notes) correctly use %1$d with the quantity count. The exported_notes and imported_notes plurals should either:
- Change placeholders to
%1$dand update code to pass the count as third argument:getQuantityString(R.plurals.exported_notes, count, count), OR - Remove placeholders entirely and use fixed text without dynamic count insertion
This issue affects both the English source and all translations (Russian included). Verify intended behavior and implement consistently across all language files and code.
Currently translated at 100.0% (315 of 315 strings) Translation: NotallyX/app Translate-URL: https://toolate.othing.xyz/projects/notallyx/app/de/
Currently translated at 100.0% (315 of 315 strings) Translation: NotallyX/app Translate-URL: https://toolate.othing.xyz/projects/notallyx/app/ro/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (1)
app/src/main/res/values-ro/strings.xml (1)
330-330: Consider translating "layout" to Romanian.The term "layout" remains in English. For consistency with the rest of the localization (e.g., "prezentarea generală" for overview, "aspect" for appearance), consider using a Romanian equivalent such as "interfață" or "aspect" instead.
🔎 Proposed translation
- <string name="always_show_search_bar_hint">Activând această opțiune, bara de căutare va fi afișată întotdeauna în layout, în loc să se utilizeze o pictogramă de căutare în bara de sus</string> + <string name="always_show_search_bar_hint">Activând această opțiune, bara de căutare va fi afișată întotdeauna în interfață, în loc să se utilizeze o pictogramă de căutare în bara de sus</string>
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-ro/strings.xml
🔇 Additional comments (2)
app/src/main/res/values-ro/strings.xml (2)
336-336: LGTM!The translation is accurate and consistent.
342-342: LGTM!The translations are accurate and use correct placeholder syntax.
Also applies to: 344-344
| <string name="biometrics_setup_failure_decrypt">Decriptarea bazei de date a eșuat.\nVă rugăm să utilizați „%1$s” pentru a raporta eroarea</string> | ||
| <string name="biometrics_setup_failure_encrypt">Criptarea bazei de date a eșuat.\nVă rugăm să folosiți „%1$s” pentru a raporta eroarea</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maintain consistent informal tone throughout the file.
These strings use the formal "Vă rugăm" (you - formal), while the entire file consistently uses the informal "tu" form (e.g., "Reține că" on line 26, "ai activat" on line 39, "poți edita" on line 64). For consistency, use the informal form.
🔎 Proposed fix for tone consistency
- <string name="biometrics_setup_failure_decrypt">Decriptarea bazei de date a eșuat.\nVă rugăm să utilizați „%1$s" pentru a raporta eroarea</string>
- <string name="biometrics_setup_failure_encrypt">Criptarea bazei de date a eșuat.\nVă rugăm să folosiți „%1$s" pentru a raporta eroarea</string>
+ <string name="biometrics_setup_failure_decrypt">Decriptarea bazei de date a eșuat.\nTe rugăm să utilizezi „%1$s" pentru a raporta eroarea</string>
+ <string name="biometrics_setup_failure_encrypt">Criptarea bazei de date a eșuat.\nTe rugăm să folosești „%1$s" pentru a raporta eroarea</string>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <string name="biometrics_setup_failure_decrypt">Decriptarea bazei de date a eșuat.\nVă rugăm să utilizați „%1$s” pentru a raporta eroarea</string> | |
| <string name="biometrics_setup_failure_encrypt">Criptarea bazei de date a eșuat.\nVă rugăm să folosiți „%1$s” pentru a raporta eroarea</string> | |
| <string name="biometrics_setup_failure_decrypt">Decriptarea bazei de date a eșuat.\nTe rugăm să utilizezi „%1$s" pentru a raporta eroarea</string> | |
| <string name="biometrics_setup_failure_encrypt">Criptarea bazei de date a eșuat.\nTe rugăm să folosești „%1$s" pentru a raporta eroarea</string> |
🤖 Prompt for AI Agents
In app/src/main/res/values-ro/strings.xml around lines 332-333, the two strings
use the formal "Vă rugăm" and formal verb forms ("utilizați", "folosiți");
change them to the informal "tu" form to match the rest of the file — e.g.,
replace "Vă rugăm să utilizați" with "Te rugăm să folosești" and "Vă rugăm să
folosiți" with "Te rugăm să folosești", keeping placeholders and punctuation
identical.
| <string name="crash_export_backup_failed">Din păcate, exportarea copiei de rezervă a eșuat.\nVă rugăm să folosiți butonul „%1$s” pentru a raporta eroarea</string> | ||
| <string name="crash_export_backup_message">Puteți încerca să creați o copie de rezervă a notițelor apăsând pe „%1$s”.\nAceastă acțiune ar putea eșua dacă eroarea a dus la date deteriorate sau corupte. În acest caz, vă rugăm să utilizați butonul „%2$s” pentru a raporta eroarea</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maintain consistent informal tone.
These strings use formal address forms ("Vă rugăm", "Puteți"), while the file consistently uses informal tone elsewhere. Convert to informal for consistency.
🔎 Proposed fix for tone consistency
- <string name="crash_export_backup_failed">Din păcate, exportarea copiei de rezervă a eșuat.\nVă rugăm să folosiți butonul „%1$s" pentru a raporta eroarea</string>
- <string name="crash_export_backup_message">Puteți încerca să creați o copie de rezervă a notițelor apăsând pe „%1$s".\nAceastă acțiune ar putea eșua dacă eroarea a dus la date deteriorate sau corupte. În acest caz, vă rugăm să utilizați butonul „%2$s" pentru a raporta eroarea</string>
+ <string name="crash_export_backup_failed">Din păcate, exportarea copiei de rezervă a eșuat.\nTe rugăm să folosești butonul „%1$s" pentru a raporta eroarea</string>
+ <string name="crash_export_backup_message">Poți încerca să creezi o copie de rezervă a notițelor apăsând pe „%1$s".\nAceastă acțiune ar putea eșua dacă eroarea a dus la date deteriorate sau corupte. În acest caz, te rugăm să utilizezi butonul „%2$s" pentru a raporta eroarea</string>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <string name="crash_export_backup_failed">Din păcate, exportarea copiei de rezervă a eșuat.\nVă rugăm să folosiți butonul „%1$s” pentru a raporta eroarea</string> | |
| <string name="crash_export_backup_message">Puteți încerca să creați o copie de rezervă a notițelor apăsând pe „%1$s”.\nAceastă acțiune ar putea eșua dacă eroarea a dus la date deteriorate sau corupte. În acest caz, vă rugăm să utilizați butonul „%2$s” pentru a raporta eroarea</string> | |
| <string name="crash_export_backup_failed">Din păcate, exportarea copiei de rezervă a eșuat.\nTe rugăm să folosești butonul „%1$s" pentru a raporta eroarea</string> | |
| <string name="crash_export_backup_message">Poți încerca să creezi o copie de rezervă a notițelor apăsând pe „%1$s".\nAceastă acțiune ar putea eșua dacă eroarea a dus la date deteriorate sau corupte. În acest caz, te rugăm să utilizezi butonul „%2$s" pentru a raporta eroarea</string> |
🤖 Prompt for AI Agents
In app/src/main/res/values-ro/strings.xml around lines 334-335, replace formal
second-person plural phrasing with informal second-person singular to match file
tone: change "Vă rugăm să folosiți butonul „%1$s”" to an informal form like
"Folosește butonul „%1$s”" (or "Te rugăm să folosești butonul „%1$s”"), and
change "Puteți încerca să creați..." to "Poți încerca să creezi..." and "vă
rugăm să utilizați butonul „%2$s”" to an informal equivalent such as "Folosește
butonul „%2$s”" (keeping the %1$s/%2$s placeholders intact and preserving
punctuation and newline).
| <plurals name="exported_notes"> | ||
| <item quantity="one">S-a exportat o notiță</item> | ||
| <item quantity="few">S-au exportat %1$s notițe</item> | ||
| <item quantity="other">S-au exportat %1$s de notițe</item> | ||
| </plurals> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix word inconsistency and remove unnecessary "de".
The translations have two issues:
-
Inconsistent terminology: Uses "notiță/notițe" instead of "notă/note" used consistently throughout the file (see lines 16, 59, 106, 112, 176, 229, 267).
-
Grammatical issue: Line 340 contains unnecessary "de" before "notițe". The construction "S-au exportat %1$s de notițe" should be "S-au exportat %1$s notițe".
🔎 Proposed fix for consistency and grammar
<plurals name="exported_notes">
- <item quantity="one">S-a exportat o notiță</item>
- <item quantity="few">S-au exportat %1$s notițe</item>
- <item quantity="other">S-au exportat %1$s de notițe</item>
+ <item quantity="one">S-a exportat o notă</item>
+ <item quantity="few">S-au exportat %1$s note</item>
+ <item quantity="other">S-au exportat %1$s note</item>
</plurals>🤖 Prompt for AI Agents
In app/src/main/res/values-ro/strings.xml around lines 337 to 341, the plural
strings use "notiță/notițe" and include an unnecessary "de" in the plural-other
form; change all three items to use the consistent term "notă/note" matching the
rest of the file and remove "de" from the "other" item so the items read: one ->
"S-a exportat o notă", few -> "S-au exportat %1$s note", other -> "S-au exportat
%1$s note".
| <item quantity="other">S-au exportat %1$s de notițe</item> | ||
| </plurals> | ||
| <string name="not_exists">„%1$s” nu există</string> | ||
| <string name="report_bug_stacktrace_too_long">Jurnalele de erori sunt prea lungi pentru a fi completate automat în problema raportată pe GitHub; prin urmare, acestea au fost copiate în clipboard.\nCând apăsați pe „%1$s”, browserul se va deschide pentru a crea o problemă pe GitHub referitoare la eroarea apărută. Este important să lipiți jurnalele de eroare (copiate automat) în câmpul „(Optional) Relevant log output” al problemei GitHub.</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maintain consistent informal tone.
This string uses formal "vă rugăm" while the file consistently uses informal tone elsewhere.
🔎 Proposed fix for tone consistency
- <string name="report_bug_stacktrace_too_long">Jurnalele de erori sunt prea lungi pentru a fi completate automat în problema raportată pe GitHub; prin urmare, acestea au fost copiate în clipboard.\nCând apăsați pe „%1$s", browserul se va deschide pentru a crea o problemă pe GitHub referitoare la eroarea apărută. Este important să lipiți jurnalele de eroare (copiate automat) în câmpul „(Optional) Relevant log output" al problemei GitHub.</string>
+ <string name="report_bug_stacktrace_too_long">Jurnalele de erori sunt prea lungi pentru a fi completate automat în problema raportată pe GitHub; prin urmare, acestea au fost copiate în clipboard.\nCând apeși pe „%1$s", browserul se va deschide pentru a crea o problemă pe GitHub referitoare la eroarea apărută. Este important să lipești jurnalele de eroare (copiate automat) în câmpul „(Optional) Relevant log output" al problemei GitHub.</string>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <string name="report_bug_stacktrace_too_long">Jurnalele de erori sunt prea lungi pentru a fi completate automat în problema raportată pe GitHub; prin urmare, acestea au fost copiate în clipboard.\nCând apăsați pe „%1$s”, browserul se va deschide pentru a crea o problemă pe GitHub referitoare la eroarea apărută. Este important să lipiți jurnalele de eroare (copiate automat) în câmpul „(Optional) Relevant log output” al problemei GitHub.</string> | |
| <string name="report_bug_stacktrace_too_long">Jurnalele de erori sunt prea lungi pentru a fi completate automat în problema raportată pe GitHub; prin urmare, acestea au fost copiate în clipboard.\nCând apeší pe „%1$s", browserul se va deschide pentru a crea o problemă pe GitHub referitoare la eroarea apărută. Este important să lipești jurnalele de eroare (copiate automat) în câmpul „(Optional) Relevant log output" al problemei GitHub.</string> |
🤖 Prompt for AI Agents
In app/src/main/res/values-ro/strings.xml around line 343, the string uses a
formal tone (second-person plural forms like "Când apăsați", "lipiți", "Este
important să lipiți"); change these to the informal second-person singular used
elsewhere in the file (e.g., "Când apeși", "lipești", "E important să lipești"
or "Te rugăm să lipești") while preserving punctuation, placeholders (%1$s) and
meaning.
Translations update from Toolate for NotallyX/app.
It also includes following components:
Current translation status:
Summary by CodeRabbit
Documentation
Localization
✏️ Tip: You can customize this high-level summary in your review settings.