-
Notifications
You must be signed in to change notification settings - Fork 5
New Crowdin updates #9
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
📝 WalkthroughWalkthroughAdds extensive analytics localization (settings and analyticsPage), new home.recommendations strings, subscription.refresh action and portalFailed error, plus minor Azerbaijani formatting and a Russian subscription.title update across multiple locale JSON files. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
Pre-merge checks❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
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
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
messages/az.json(2 hunks)messages/de.json(1 hunks)messages/it.json(1 hunks)messages/ru.json(2 hunks)messages/tr.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- messages/az.json
- messages/it.json
- messages/de.json
- messages/tr.json
🔇 Additional comments (2)
messages/ru.json (2)
664-664: Verify subscription.errors.portalFailed is present in all locale files.A new error key
subscription.errors.portalFailedwith message "Не удалось открыть портал клиента" (Failed to open customer portal) has been added. Confirm this error case has been added to all locale files referenced in this PR.
632-632: The Russian translation "Текир Плюс" is correct and consistent. This subscription title update appears across all locale files (en, ru, tr, it, de, az) with appropriate language-specific values, and the Cyrillic usage aligns with existing Russian localization patterns in the file.
| "upgrade": "Обновить до Plus", | ||
| "upgradeToPro": "Обновить до Pro", | ||
| "manage": "Управление подпиской", | ||
| "refresh": "Обновить", |
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
# First, find all locale JSON files
echo "=== All locale files found ==="
fd -e json -path "*/messages/*.json" | sort
# Then check each one for subscription.actions.refresh
echo -e "\n=== Checking for 'subscription.actions.refresh' in each locale ==="
for file in $(fd -e json -path "*/messages/*.json" | sort); do
if grep -q '"subscription"' "$file"; then
echo "File: $file"
# Extract the subscription section
sed -n '/"subscription"/,/^ }/p' "$file" | grep -A 2 '"actions"'
fi
doneRepository: computebaker/tekir
Length of output: 515
🏁 Script executed:
#!/bin/bash
# Find the messages directory
echo "=== Searching for messages directory ==="
find . -type d -name "messages" 2>/dev/null
# List all JSON files in messages directories
echo -e "\n=== All locale JSON files ==="
find . -type d -name "messages" -exec find {} -maxdepth 1 -name "*.json" \; 2>/dev/null | sort
# Check each file for subscription.actions.refresh
echo -e "\n=== Checking for subscription.actions.refresh ==="
find . -type d -name "messages" -exec find {} -maxdepth 1 -name "*.json" \; 2>/dev/null | sort | while read file; do
echo "File: $file"
if grep -q '"subscription"' "$file"; then
sed -n '/"subscription"/,/"actions"/p' "$file" | head -10
else
echo " (no subscription key found)"
fi
doneRepository: computebaker/tekir
Length of output: 2933
🏁 Script executed:
#!/bin/bash
python3 << 'EOF'
import json
import os
messages_dir = "./messages"
locales = ["az.json", "de.json", "en.json", "it.json", "ru.json", "tr.json"]
print("=== Checking for 'subscription.actions.refresh' in all locale files ===\n")
all_present = True
for locale_file in locales:
file_path = os.path.join(messages_dir, locale_file)
try:
with open(file_path, 'r', encoding='utf-8') as f:
data = json.load(f)
# Check if the key path exists
has_key = (
'subscription' in data and
isinstance(data['subscription'], dict) and
'actions' in data['subscription'] and
isinstance(data['subscription']['actions'], dict) and
'refresh' in data['subscription']['actions']
)
status = "✓ PRESENT" if has_key else "✗ MISSING"
all_present = all_present and has_key
print(f"{locale_file:12} {status}", end="")
if has_key:
refresh_value = data['subscription']['actions']['refresh']
print(f" - Value: \"{refresh_value}\"")
else:
print()
except Exception as e:
print(f"{locale_file:12} ✗ ERROR: {e}")
all_present = False
print(f"\n{'='*50}")
print(f"Result: {'All locales have the key ✓' if all_present else 'Some locales missing the key ✗'}")
EOFRepository: computebaker/tekir
Length of output: 148
🏁 Script executed:
#!/bin/bash
echo "=== Checking for subscription.actions.refresh in all locales ==="
echo ""
for file in ./messages/{az,de,en,it,ru,tr}.json; do
locale=$(basename "$file" .json)
echo -n "$locale.json: "
# Look for the pattern "actions" followed by "refresh"
if grep -q '"actions"' "$file" && sed -n '/"actions"/,/},/p' "$file" | grep -q '"refresh"'; then
# Extract the refresh value
value=$(sed -n '/"actions"/,/}/p' "$file" | grep '"refresh"' | head -1)
echo "✓ $value"
else
echo "✗ MISSING"
fi
doneRepository: computebaker/tekir
Length of output: 347
Add subscription.actions.refresh to en.json locale file.
The subscription.actions.refresh key has been added to ru.json and 4 other locale files (az, de, it, tr), but is missing from en.json. Add the English translation to maintain consistency across all locales.
🤖 Prompt for AI Agents
In messages/ru.json around line 659 the key "subscription.actions.refresh" was
added for Russian; the same key is missing from messages/en.json — open
messages/en.json and add the subscription.actions.refresh entry with the English
translation ("Refresh") in the appropriate place following the existing
subscription.actions block so all locales remain consistent.
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.
Pull request overview
This PR contains automated localization updates from Crowdin, adding new translation strings and fixing existing translations across five language files.
- Added new UI strings for recommendations (subtitle, badge labels) and subscription actions (refresh button)
- Added new error message for customer portal failures
- Fixed Russian subscription title to use Cyrillic script and corrected Azerbaijani file formatting
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| messages/tr.json | Added Turkish translations for recommendation UI elements, subscription refresh action, and portal error message |
| messages/ru.json | Added Russian translations for new UI strings, corrected subscription title from Latin to Cyrillic script |
| messages/it.json | Added Italian translations for recommendation UI elements, subscription refresh action, and portal error message |
| messages/de.json | Added German translations for recommendation UI elements, subscription refresh action, and portal error message |
| messages/az.json | Added Azerbaijani translations for new UI strings, fixed indentation for metaTitle field |
After thorough review of the localization updates, I found no issues to report. The changes are:
- Syntactically correct with proper JSON formatting
- Consistent across all language files
- Include appropriate localization updates from Crowdin
- Fix a previous formatting issue in the Azerbaijani file
The PR is ready to merge.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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
♻️ Duplicate comments (1)
messages/ru.json (1)
73-73: LGTM! Russian localization additions are complete and well-formed.The translations for analytics settings, home recommendations, and subscription-related strings are properly structured. The change of
subscription.titlefrom "Tekir Plus" to "Текир Плюс" (Cyrillic) is a valid localization choice for Russian users.Note: The previous review correctly identified that
subscription.actions.refreshis missing fromen.json— that issue should still be addressed to maintain consistency across all locales.Also applies to: 441-508, 642-645, 703-703, 730-737
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
messages/az.jsonmessages/de.jsonmessages/it.jsonmessages/ru.jsonmessages/tr.json
🔇 Additional comments (4)
messages/az.json (1)
73-73: LGTM! Comprehensive analytics and subscription localization additions.The Azerbaijani translations for the new analytics settings page, home recommendations, and subscription actions are well-structured. All placeholder patterns (e.g.,
{field},{file}) are preserved correctly, and the JSON structure is valid.Also applies to: 441-508, 642-645, 730-737
messages/it.json (1)
73-73: LGTM! Italian localization additions are complete and well-formed.The translations for analytics settings, home recommendations, and subscription-related strings are properly structured with correct placeholder preservation.
Also applies to: 441-508, 642-645, 730-737
messages/de.json (1)
73-73: LGTM! German localization additions are complete and consistent.The translations for analytics settings, home recommendations, and subscription-related strings follow proper German conventions with correct placeholder handling.
Also applies to: 441-508, 642-645, 730-737
messages/tr.json (1)
73-73: Remaining Turkish localization additions look good.The structure, placeholders, and overall translations for analytics settings, home recommendations, and subscription actions are correctly implemented.
Also applies to: 441-481, 491-508, 642-645, 730-737
| "whyCollectPoints": [ | ||
| "Arama doğruluğunu ve alakağını iyileştir", | ||
| "Hataları ve çökmeleri hızlıca düzelt", | ||
| "Hangi özelliklerin en değerli olduğunu anlayın", | ||
| "Cihazlar arasında performansı optimize edin" | ||
| ], | ||
| "whyCollectDescription": "Analitik, Tekir'in nasıl kullanıldığını anlamamıza ve herkes için daha iyi hale getirmemize yardımcı olur.", | ||
| "privacyNotice": "Analitik tamamen isteğe bağlıdır. Tekir herhangi bir veri toplama olmadan tam olarak çalışır. Daha sonra fikrinizi değiştirirseniz, analitiği istediğiniz zaman bu sayfadan devre dışı bırakabilirsiniz. Gizliliğinize saygı duyuyoruz ve verilerinizi üçüncü şahaslara asla satmıyoruz." |
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.
Minor typos detected in Turkish translations.
Two potential typographical errors:
-
Line 483:
"alakağını"appears incorrect — should likely be"alakalılığını"(relevance) or"alaka düzeyini". -
Line 489:
"şahaslara"should be"şahıslara"or"taraflara"(third parties).
🔎 Suggested fixes
"whyCollectPoints": [
- "Arama doğruluğunu ve alakağını iyileştir",
+ "Arama doğruluğunu ve alakalılığını iyileştir",
"Hataları ve çökmeleri hızlıca düzelt",
"Hangi özelliklerin en değerli olduğunu anlayın",
"Cihazlar arasında performansı optimize edin"
],
"whyCollectDescription": "Analitik, Tekir'in nasıl kullanıldığını anlamamıza ve herkes için daha iyi hale getirmemize yardımcı olur.",
-"privacyNotice": "Analitik tamamen isteğe bağlıdır. Tekir herhangi bir veri toplama olmadan tam olarak çalışır. Daha sonra fikrinizi değiştirirseniz, analitiği istediğiniz zaman bu sayfadan devre dışı bırakabilirsiniz. Gizliliğinize saygı duyuyoruz ve verilerinizi üçüncü şahaslara asla satmıyoruz."
+"privacyNotice": "Analitik tamamen isteğe bağlıdır. Tekir herhangi bir veri toplama olmadan tam olarak çalışır. Daha sonra fikrinizi değiştirirseniz, analitiği istediğiniz zaman bu sayfadan devre dışı bırakabilirsiniz. Gizliliğinize saygı duyuyoruz ve verilerinizi üçüncü taraflara asla satmıyoruz."Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In messages/tr.json around lines 482 to 489, there are two Turkish typos:
replace "alakağını" with "alakalılığını" (or "alaka düzeyini" if you prefer a
simpler phrase) in the whyCollectPoints array, and replace "şahaslara" with
"şahıslara" in the privacyNotice string to correct the third-party phrasing;
update the two strings accordingly while preserving surrounding punctuation and
formatting.
Summary by CodeRabbit
New Features
Localization
Chores
✏️ Tip: You can customize this high-level summary in your review settings.