Skip to content

Remove unused translation keys#1500

Merged
riderx merged 1 commit into
mainfrom
riderx/cleanup-i18n-keys
Jan 25, 2026
Merged

Remove unused translation keys#1500
riderx merged 1 commit into
mainfrom
riderx/cleanup-i18n-keys

Conversation

@riderx
Copy link
Copy Markdown
Member

@riderx riderx commented Jan 25, 2026

Summary (AI generated)\n\n- Remove unused translation keys across all locale JSON files.\n\n## Test plan (AI generated)\n\n- Not run (not requested).\n\n## Screenshots (AI generated)\n\n- N/A\n\n## Checklist (AI generated)\n\n- [ ] My code follows the code style of this project and passes\n .\n- [ ] My change requires a change to the documentation.\n- [ ] I have updated the documentation\n accordingly.\n- [ ] My change has adequate E2E test coverage.\n- [ ] I have tested my code manually, and I have provided steps how to reproduce\n my tests\n\nGenerated with AI\n

Summary by CodeRabbit

  • New Features

    • Added/expanded user-facing texts for admin credits, onboarding demo flows, role/RBAC management, plugin labels, retention options, and build/manifest trends.
  • Refactor

    • Cleaned up the localization catalog by removing many deprecated or duplicate translation entries across admin, channel, bundle, and RBAC areas.
  • Style

    • Standardized UI text casing and formatting for consistent label presentation.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 25, 2026 05:52
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jan 25, 2026

📝 Walkthrough

Walkthrough

Removed many translation keys across multiple locale files and added new admin/RBAC/onboarding/manifest-related keys; value-casing adjustments applied in some entries. No executable logic changed; only localization JSONs were edited.

Changes

Cohort / File(s) Summary
Bulk removals (many locales)
messages/en.json, messages/de.json, messages/es.json, messages/fr.json, messages/id.json, messages/it.json, messages/ja.json, messages/ko.json, messages/pl.json, messages/pt-br.json, messages/tr.json, messages/vi.json, messages/zh-cn.json
Deleted a large set of translation keys (audit/log labels, activation/legal text, channel/bundle/deploy/storage/bandwidth UI strings, many date-range/time labels, assorted "cannot-*" errors, legacy RBAC keys, etc.).
Admin / RBAC / Onboarding additions (many locales)
messages/*.json (same set as above)
Added/expanded keys for admin credits (admin-credits.*), RBAC role management (select-role, select-user-role, rbac-*, cannot-remove-last-super-admin, etc.), onboarding/demo flow (onboarding-demo-*), plugins, retention and manifest labels (manifest-*, builds-trend), and related organizational/admin messaging (e.g., contact-your-admin).
Value casing / small edits
messages/en.json
Minor value changes (example: "App""app") and similar casing/wording adjustments in remaining keys.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

enhancement

Poem

🐰
Keys hop away beneath the moonlit map,
I nibble duplicates and tidy the gap.
New credits, roles, and demos sprout—hip hooray!
A cleaner garden of words to brighten the day.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The description follows the template structure with Summary, Test plan, Screenshots, and Checklist sections. However, most sections are minimal or incomplete (test plan states 'Not run', screenshots are 'N/A', and all checklist items are unchecked), and the description appears to be AI-generated rather than authored by the developer. Provide a more detailed summary of which translation keys were removed and why. Add actual test steps to verify the changes, and complete the checklist items with detailed explanations.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Remove unused translation keys' clearly and accurately summarizes the main change, which involves removing translation keys across multiple locale JSON files.
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.


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
Copy Markdown
Contributor

Copilot AI left a 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 pull request removes unused translation keys across all locale JSON files (English, Spanish, Portuguese, Chinese, Indonesian, and German).

Changes:

  • Removal of approximately 200+ unused translation keys from each locale file
  • All locale files have identical keys removed, maintaining consistency
  • No code changes, only translation file cleanup

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
messages/en.json Removed ~200 unused English translation keys
messages/es.json Removed ~200 unused Spanish translation keys
messages/pt-br.json Removed ~200 unused Portuguese translation keys
messages/zh-cn.json Removed ~200 unused Chinese translation keys
messages/id.json Removed ~200 unused Indonesian translation keys
messages/de.json Removed ~200 unused German translation keys

@riderx riderx force-pushed the riderx/cleanup-i18n-keys branch from 4a2d1d2 to 669d878 Compare January 25, 2026 13:27
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
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: 6

🤖 Fix all issues with AI agents
In `@messages/de.json`:
- Around line 1362-1373: German locale file messages/de.json is missing several
RBAC labels present in messages/en.json; add the missing keys: groups,
principal, principal-type, scope, granted-at, assign-role, select-user,
select-group, assign-app-role, and error-role-already-assigned to
messages/de.json with appropriate German translations (or temporary Germanized
placeholders) so the UI doesn't fall back to English; locate the object
alongside existing role keys like "role-app-admin" / "role-org-member" and
insert the new key/value pairs following the same JSON string format to keep
consistency.

In `@messages/en.json`:
- Line 414: The "create" localization key currently uses Title Case ("Create")
which conflicts with nearby generic action labels like "cancel" and "confirm"
that are lowercase; update the value of the "create" key to lowercase ("create")
to match the established casing convention and scan nearby action keys (e.g.,
"cancel", "confirm") to ensure consistency across action-labels.

In `@messages/ja.json`:
- Line 1005: The "plugins" label in messages/ja.json is currently "Plugins"
(English); either translate it to Japanese for consistency (e.g., change the
value for the "plugins" key to "プラグイン") or explicitly confirm that English
branding is intentional and keep the existing value; update the "plugins" JSON
entry accordingly and ensure other Japanese label entries follow the same
localization approach.

In `@messages/ko.json`:
- Line 1005: The "plugins" label in messages/ko.json is left in English while
other UI labels are localized; update the value for the "plugins" JSON key to
the appropriate Korean translation (e.g., "플러그인") or confirm intentionally kept
as English and add a comment/PR note; modify the "plugins" entry so the
localized string matches surrounding keys and run a quick UI smoke-check to
ensure it displays correctly.
- Around line 430-456: The ko.json is missing 37 locale keys present in en.json
(e.g. app-access-control, assign, assign-app-role, assign-role, day, days,
days-remaining, error-assigning-role, error-fetching-role-bindings,
error-removing-role, error-role-already-assigned, expires-today, granted-at,
group, groups, no-data-available, onboarding-funnel,
onboarding-funnel-description, onboarding-trend, org-name, principal,
principal-type, reason-optional, reason-placeholder, remove, role-assigned,
role-removed, scope, search-role-bindings, select-app-role, select-group,
select-user, trial-end-date, trial-organizations-list, user); add each missing
key to messages/ko.json with appropriate Korean translations following the
existing key naming and interpolation patterns (or add English placeholders if
translation is unavailable), keep token placeholders (e.g. {amount}, {org})
identical to en.json, and ensure JSON formatting/commas match the surrounding
entries so the file remains valid.

In `@messages/tr.json`:
- Line 1005: The "plugins" key in messages/tr.json is left in English while the
rest of the Turkish locale is translated; either provide the proper Turkish
translation (e.g., replace "plugins" value with "Eklentiler" or another approved
Turkish term) or confirm that English branding is intentional and keep it
unchanged; update the "plugins" key value accordingly and ensure it matches the
locale's style and casing consistency.
🧹 Nitpick comments (3)
messages/id.json (1)

1005-1005: Consider translating "Plugins" to Indonesian.

The value "Plugins" is kept in English. While this may be intentional (technical terms are sometimes preserved), verify whether this should be localized for consistency with other Indonesian translations in this file.

messages/zh-cn.json (1)

1005-1005: Consider translating "Plugins" to Chinese.

Similar to the Indonesian locale, "Plugins" remains in English. For Chinese users, consider using a localized term like "插件" for consistency, unless there's a specific reason to keep technical terms in English.

messages/pl.json (1)

1005-1005: Consider translating "Plugins" to Polish.

As with the other locales, "Plugins" remains in English. For Polish users, consider using "Wtyczki" for consistency, unless technical terms are intentionally kept in English across all locales.

Comment thread messages/de.json
Comment on lines +1362 to +1373
"zip-bundle": "ZIP-App-Bündel",
"access": "Zugriff",
"role-app-admin": "App-Administrator",
"role-app-developer": "App-Entwickler",
"role-app-uploader": "App-Uploader",
"role-app-reader": "App-Betrachter",
"remove-role": "Rolle entfernen",
"remove-role-confirm": "Möchten Sie den Zugriff dieses Benutzers auf die App entfernen?",
"role-org-super-admin": "Super-Admin",
"role-org-admin": "Administrator",
"role-org-billing-admin": "Abrechnungsmanager",
"role-org-member": "Mitglied"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Compare locale key sets for parity (en as source of truth).
cd /tmp/repo && python - <<'PY'
import json

files = ["messages/en.json", "messages/fr.json", "messages/de.json"]
data = {f: json.load(open(f, encoding="utf-8")) for f in files}
keys = {f: set(v.keys()) for f, v in data.items()}

base = keys["messages/en.json"]
for f, k in keys.items():
    missing = sorted(base - k)
    extra = sorted(k - base)
    print(f"\n{f}")
    print(f"  missing vs en: {len(missing)}")
    if missing:
        print("   ", missing[:50])
    print(f"  extra vs en: {len(extra)}")
    if extra:
        print("   ", extra[:50])
PY

Repository: Cap-go/capgo

Length of output: 142


🏁 Script executed:

# Check if files exist and their sizes
ls -lh messages/en.json messages/fr.json messages/de.json 2>/dev/null

# Search for specific RBAC keys in English locale
echo "=== RBAC keys in en.json ==="
rg '(groups|principal|principal-type|scope|granted-at|assign-role|select-user|select-group|assign-app-role)' messages/en.json

# Search for the same keys in German locale
echo -e "\n=== RBAC keys in de.json ==="
rg '(groups|principal|principal-type|scope|granted-at|assign-role|select-user|select-group|assign-app-role)' messages/de.json

Repository: Cap-go/capgo

Length of output: 1608


🏁 Script executed:

# Search for each specific RBAC key individually in de.json
echo "Checking for specific RBAC keys in de.json:"
for key in "groups" "principal" "principal-type" "scope" "granted-at" "assign-role" "select-user" "select-group" "assign-app-role" "error-role-already-assigned"; do
  count=$(rg "\"$key\"" messages/de.json | wc -l)
  echo "  '$key': found=$count"
done

echo -e "\nSame check in en.json for comparison:"
for key in "groups" "principal" "principal-type" "scope" "granted-at" "assign-role" "select-user" "select-group" "assign-app-role" "error-role-already-assigned"; do
  count=$(rg "\"$key\"" messages/en.json | wc -l)
  echo "  '$key': found=$count"
done

Repository: Cap-go/capgo

Length of output: 658


German locale is missing new RBAC labels.

The following RBAC keys are present in messages/en.json but absent from messages/de.json: groups, principal, principal-type, scope, granted-at, assign-role, select-user, select-group, assign-app-role, and error-role-already-assigned. The UI will fall back or display missing text for these labels in the German locale.

🤖 Prompt for AI Agents
In `@messages/de.json` around lines 1362 - 1373, German locale file
messages/de.json is missing several RBAC labels present in messages/en.json; add
the missing keys: groups, principal, principal-type, scope, granted-at,
assign-role, select-user, select-group, assign-app-role, and
error-role-already-assigned to messages/de.json with appropriate German
translations (or temporary Germanized placeholders) so the UI doesn't fall back
to English; locate the object alongside existing role keys like "role-app-admin"
/ "role-org-member" and insert the new key/value pairs following the same JSON
string format to keep consistency.

Comment thread messages/en.json
"credit-transaction-refund": "Refund",
"credit-transaction-type": "Type",
"create": "create",
"create": "Create",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Check action-label casing consistency.

create is now Title Case while nearby generic actions like cancel/confirm are lowercase. If these appear together in the UI, the mixed casing can look inconsistent. Consider aligning with the chosen convention.

✏️ Optional tweak to match the existing lowercase action labels
-  "create": "Create",
+  "create": "create",
📝 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.

Suggested change
"create": "Create",
"create": "create",
🤖 Prompt for AI Agents
In `@messages/en.json` at line 414, The "create" localization key currently uses
Title Case ("Create") which conflicts with nearby generic action labels like
"cancel" and "confirm" that are lowercase; update the value of the "create" key
to lowercase ("create") to match the established casing convention and scan
nearby action keys (e.g., "cancel", "confirm") to ensure consistency across
action-labels.

Comment thread messages/ja.json
"other-orgs-with-apps": "あなたがアプリを持つ他の組織の管理者です",
"overriding-default-channel": "デフォルトチャンネルを上書き",
"overview": "概要",
"plugins": "Plugins",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Translate plugins label or confirm English branding.
Japanese UI typically localizes this term; consider using Katakana for consistency unless English is intentional.

✏️ Suggested translation
-  "plugins": "Plugins",
+  "plugins": "プラグイン",
📝 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.

Suggested change
"plugins": "Plugins",
"plugins": "プラグイン",
🤖 Prompt for AI Agents
In `@messages/ja.json` at line 1005, The "plugins" label in messages/ja.json is
currently "Plugins" (English); either translate it to Japanese for consistency
(e.g., change the value for the "plugins" key to "プラグイン") or explicitly confirm
that English branding is intentional and keep the existing value; update the
"plugins" JSON entry accordingly and ensure other Japanese label entries follow
the same localization approach.

Comment thread messages/ko.json
Comment on lines +430 to +456
"admin-credits": "관리자 크레딧",
"admin-credits-title": "크레딧 부여",
"admin-credits-description": "고객 조직에 크레딧을 부여합니다. 모든 부여는 관리자 사용자 ID와 함께 기록됩니다.",
"admin-credits-grant-title": "조직에 크레딧 부여",
"admin-credits-select-org": "조직 선택",
"admin-credits-search-placeholder": "이름, 이메일 또는 조직 ID로 검색...",
"admin-credits-current-balance": "현재 잔액",
"admin-credits-no-balance": "아직 크레딧이 없습니다",
"admin-credits-expires": "다음 만료일",
"admin-credits-amount-label": "크레딧 금액",
"admin-credits-amount-required": "유효한 크레딧 금액을 입력하세요",
"admin-credits-expires-months": "만료 기간 (개월)",
"admin-credits-notes-label": "메모 (선택사항)",
"admin-credits-notes-placeholder": "크레딧 부여 사유...",
"admin-credits-grant-button": "{amount} 크레딧 부여",
"admin-credits-grant-success": "{org}에 {amount} 크레딧을 성공적으로 부여했습니다",
"admin-credits-grant-error": "크레딧 부여에 실패했습니다. 다시 시도해 주세요.",
"admin-credits-search-error": "조직 검색에 실패했습니다. 다시 시도해 주세요.",
"admin-credits-balance-error": "크레딧 잔액 로드에 실패했습니다. 다시 시도해 주세요.",
"admin-credits-grants-load-error": "부여 기록 로드에 실패했습니다. 다시 시도해 주세요.",
"admin-credits-recent-grants": "최근 관리자 부여",
"admin-credits-no-grants": "아직 관리자 부여가 없습니다",
"admin-credits-col-org": "조직",
"admin-credits-col-amount": "금액",
"admin-credits-col-notes": "메모",
"admin-credits-col-date": "부여일",
"admin-credits-col-expires": "만료일",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
python - <<'PY'
import json, glob, sys

files = sorted(glob.glob("messages/*.json"))
if not files:
    raise SystemExit("No locale files found under messages/")

base = "messages/en.json" if "messages/en.json" in files else files[0]
with open(base, encoding="utf-8") as f:
    base_keys = set(json.load(f).keys())

for path in files:
    with open(path, encoding="utf-8") as f:
        keys = set(json.load(f).keys())
    missing = sorted(base_keys - keys)
    extra = sorted(keys - base_keys)
    if missing or extra:
        print(f"\n{path}")
        if missing:
            print("  missing:", ", ".join(missing[:20]) + (" ..." if len(missing) > 20 else ""))
        if extra:
            print("  extra:", ", ".join(extra[:20]) + (" ..." if len(extra) > 20 else ""))
PY

Repository: Cap-go/capgo

Length of output: 142


🏁 Script executed:

#!/bin/bash
# First, check what locale files exist and their sizes
ls -lh messages/*.json | head -20
echo "---"
# Count total JSON files
find messages -maxdepth 1 -name "*.json" -type f | wc -l

Repository: Cap-go/capgo

Length of output: 1058


🏁 Script executed:

#!/bin/bash
# Check number of keys in each locale file using jq
echo "Key counts per locale file:"
for file in messages/*.json; do
    count=$(jq 'keys | length' "$file" 2>/dev/null || echo "ERROR")
    printf "%-25s %s\n" "$(basename "$file")" "$count"
done

Repository: Cap-go/capgo

Length of output: 548


🏁 Script executed:

#!/bin/bash
# Compare ko.json against en.json to find missing keys
echo "Keys in en.json but missing from ko.json:"
jq -r 'keys[]' messages/en.json | sort > /tmp/en_keys.txt
jq -r 'keys[]' messages/ko.json | sort > /tmp/ko_keys.txt
comm -23 /tmp/en_keys.txt /tmp/ko_keys.txt | head -40
echo "---"
echo "Total missing from ko.json:"
comm -23 /tmp/en_keys.txt /tmp/ko_keys.txt | wc -l

Repository: Cap-go/capgo

Length of output: 690


🏁 Script executed:

#!/bin/bash
# Check which keys are missing from de.json (another 1372-key file)
echo "Keys in en.json but missing from de.json:"
jq -r 'keys[]' messages/de.json | sort > /tmp/de_keys.txt
comm -23 /tmp/en_keys.txt /tmp/de_keys.txt | wc -l
comm -23 /tmp/en_keys.txt /tmp/de_keys.txt | head -20

Repository: Cap-go/capgo

Length of output: 425


Add missing locale keys to ko.json and 12 other locale files.

Locale key parity check confirms a significant gap: ko.json, de.json, es.json, hi.json, id.json, it.json, ja.json, pl.json, pt-br.json, ru.json, tr.json, vi.json, and zh-cn.json are each missing 37 keys present in en.json. The missing keys include critical feature translations: app-access-control, assign, assign-app-role, assign-role, day, days, days-remaining, error-assigning-role, error-fetching-role-bindings, error-removing-role, error-role-already-assigned, expires-today, granted-at, group, groups, no-data-available, onboarding-funnel, onboarding-funnel-description, onboarding-trend, org-name, principal, principal-type, reason-optional, reason-placeholder, remove, role-assigned, role-removed, scope, search-role-bindings, select-app-role, select-group, select-user, trial-end-date, trial-organizations-list, and user. These cover access control, role management, and onboarding features. All 13 affected locales must be synchronized with en.json before release.

🤖 Prompt for AI Agents
In `@messages/ko.json` around lines 430 - 456, The ko.json is missing 37 locale
keys present in en.json (e.g. app-access-control, assign, assign-app-role,
assign-role, day, days, days-remaining, error-assigning-role,
error-fetching-role-bindings, error-removing-role, error-role-already-assigned,
expires-today, granted-at, group, groups, no-data-available, onboarding-funnel,
onboarding-funnel-description, onboarding-trend, org-name, principal,
principal-type, reason-optional, reason-placeholder, remove, role-assigned,
role-removed, scope, search-role-bindings, select-app-role, select-group,
select-user, trial-end-date, trial-organizations-list, user); add each missing
key to messages/ko.json with appropriate Korean translations following the
existing key naming and interpolation patterns (or add English placeholders if
translation is unavailable), keep token placeholders (e.g. {amount}, {org})
identical to en.json, and ensure JSON formatting/commas match the surrounding
entries so the file remains valid.

Comment thread messages/ko.json
"other-orgs-with-apps": "앱이 있는 다른 조직의 관리자입니다",
"overriding-default-channel": "기본 채널 재정의",
"overview": "개요",
"plugins": "Plugins",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Translate plugins label or confirm English branding.
This remains in English while surrounding UI labels are localized; consider translating to Korean for consistency unless the product explicitly keeps the English term.

✏️ Suggested translation
-  "plugins": "Plugins",
+  "plugins": "플러그인",
📝 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.

Suggested change
"plugins": "Plugins",
"plugins": "플러그인",
🤖 Prompt for AI Agents
In `@messages/ko.json` at line 1005, The "plugins" label in messages/ko.json is
left in English while other UI labels are localized; update the value for the
"plugins" JSON key to the appropriate Korean translation (e.g., "플러그인") or
confirm intentionally kept as English and add a comment/PR note; modify the
"plugins" entry so the localized string matches surrounding keys and run a quick
UI smoke-check to ensure it displays correctly.

Comment thread messages/tr.json
"other-orgs-with-apps": "Uygulaması olan bu diğer organizasyonların yöneticisisiniz",
"overriding-default-channel": "Varsayılan kanalı geçersiz kılıyor",
"overview": "Genel Bakış",
"plugins": "Plugins",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Translate plugins label or confirm English branding.
This looks untranslated relative to the rest of the Turkish locale.

✏️ Suggested translation
-  "plugins": "Plugins",
+  "plugins": "Eklentiler",
📝 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.

Suggested change
"plugins": "Plugins",
"plugins": "Eklentiler",
🤖 Prompt for AI Agents
In `@messages/tr.json` at line 1005, The "plugins" key in messages/tr.json is left
in English while the rest of the Turkish locale is translated; either provide
the proper Turkish translation (e.g., replace "plugins" value with "Eklentiler"
or another approved Turkish term) or confirm that English branding is
intentional and keep it unchanged; update the "plugins" key value accordingly
and ensure it matches the locale's style and casing consistency.

@riderx riderx merged commit 920c9ce into main Jan 25, 2026
11 checks passed
@riderx riderx deleted the riderx/cleanup-i18n-keys branch January 25, 2026 13:40
@coderabbitai coderabbitai Bot mentioned this pull request Jan 26, 2026
jokabuyasina pushed a commit to jokabuyasina/capgo that referenced this pull request Feb 7, 2026
jokabuyasina pushed a commit to jokabuyasina/capgo that referenced this pull request Feb 7, 2026
jokabuyasina pushed a commit to jokabuyasina/capgo that referenced this pull request Feb 7, 2026
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