Skip to content

Translations update from Hosted Weblate#377

Open
weblate wants to merge 22 commits inton-ce:mainfrom
weblate:weblate-ytify-web
Open

Translations update from Hosted Weblate#377
weblate wants to merge 22 commits inton-ce:mainfrom
weblate:weblate-ytify-web

Conversation

@weblate
Copy link
Copy Markdown
Contributor

@weblate weblate commented Apr 1, 2026

Translations update from Hosted Weblate for ytify/web.

Current translation status:

Weblate translation status

Summary by CodeRabbit

  • Chores
    • Updated translations across multiple supported languages (Arabic, Bengali, Bosnian, Croatian, German, Spanish, French, Hindi, Indonesian, Japanese, Dutch, Polish, Portuguese, Romanian, Russian, Serbian, Turkish, Urdu, and Chinese).
    • Added new translation keys for queue reload notifications and updating status messages.
    • Refined existing translations for quality settings, support information, and playback features.

weblate and others added 22 commits March 30, 2026 07:42
Currently translated at 96.4% (216 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/id/
Currently translated at 97.3% (218 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/es/
Currently translated at 97.7% (219 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/zh_Hans/
Currently translated at 96.4% (216 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/ja/
Currently translated at 97.7% (219 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/ur/
Currently translated at 98.2% (220 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/ar/
Currently translated at 100.0% (224 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/sr/
Currently translated at 95.0% (213 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/ro/
Currently translated at 92.8% (208 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/bn/
Currently translated at 96.8% (217 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/pt/
Currently translated at 97.3% (218 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/pl/
Currently translated at 95.9% (215 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/hi/
Currently translated at 99.1% (222 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/tr/
Currently translated at 97.7% (219 of 224 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/ru/
Currently translated at 100.0% (225 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/fr/
Currently translated at 98.6% (222 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/de/
Currently translated at 98.2% (221 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/cnr/
Currently translated at 100.0% (225 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/fr/
Currently translated at 98.2% (221 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/sr/
Currently translated at 98.2% (221 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/hr/
Currently translated at 98.2% (221 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/nl/
Currently translated at 98.2% (221 of 225 strings)

Translation: ytify/web
Translate-URL: https://hosted.weblate.org/projects/ytify/web/bs/
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

This pull request adds and updates localization keys across 20 language JSON files in the src/locales/ directory. Changes include adding queue_reload_notification keys to 12 files, adding updating keys to 7 files, updating existing translation values in select languages, and normalizing JSON formatting in 2 files.

Changes

Cohort / File(s) Summary
Queue Reload Notification Addition
src/locales/ar.json, src/locales/bn.json, src/locales/es.json, src/locales/hi.json, src/locales/id.json, src/locales/ja.json, src/locales/pl.json, src/locales/pt.json, src/locales/ro.json, src/locales/ru.json, src/locales/ur.json, src/locales/zh.json
Added new queue_reload_notification localization key with empty string values across 12 language files.
Updating Key and Translation Updates
src/locales/bs.json, src/locales/cnr.json, src/locales/de.json, src/locales/fr.json, src/locales/hr.json, src/locales/nl.json, src/locales/sr.json
Added new updating key with localized status messages; updated existing translation values for quality settings, support project references, and feature descriptions in select languages.
JSON Structure Normalization
src/locales/tr.json
Reformatted JSON indentation from 2-space to 4-space standard and added final newline; added queue_reload_notification key with empty string value.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🐰 Across the tongues of twenty lands so wide,
New keys take form with localized pride,
From ar to zh, the messages align,
Status updates in each language shine,
The queue reloads, translations stay divine! ✨

🚥 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 title 'Translations update from Hosted Weblate' accurately describes the main change: localization updates across 20+ locale files from Weblate, with no misleading information.
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
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch weblate-ytify-web

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

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates localization files across multiple languages, adding new keys like updating and queue_reload_notification while refining existing translations for consistency with the English source. Feedback identifies several translation errors, such as using "Decision" instead of "Resolution" in Bosnian and Montenegrin, and phonetic transliterations in Serbian that require proper localization. Furthermore, the reviewer suggests populating empty translation strings for the reload notification to prevent UI display issues.

Comment thread src/locales/bs.json
"library_about_ytify": "O ytify",
"nav_logout": "Odjavi se",
"player_video_resolution": "Odluka"
"player_video_resolution": "Odluka",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The translation for 'Resolution' is 'Odluka', which means 'Decision'. In the context of video resolution, the correct term in Bosnian is 'Rezolucija'.

Suggested change
"player_video_resolution": "Odluka",
"player_video_resolution": "Rezolucija",

Comment thread src/locales/cnr.json
"library_about_ytify": "O ytify",
"nav_logout": "Odjavi se",
"player_video_resolution": "Odluka"
"player_video_resolution": "Odluka",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The translation for 'Resolution' is 'Odluka', which means 'Decision'. In the context of video resolution, the correct term in Montenegrin is 'Rezolucija'.

Suggested change
"player_video_resolution": "Odluka",
"player_video_resolution": "Rezolucija",

Comment thread src/locales/sr.json
"loading": "Учитава се…",
"about_description": "ytify је платформа за стримовање аудио садржаја ефикасна у коришћењу ресурса, која користи библиотеку YouTube-а и YTMusic-а.",
"about_learn_more": "Сазнајте више о томе како га ефикасно користити.",
"about_support_project": "Подржите пројекат ytify: преко UPI",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

This translation is outdated compared to the English source ('Support the project through UPI'). It should be updated to remove the 'ytify:' prefix for consistency.

Suggested change
"about_support_project": "Подржите пројекат ytify: преко UPI",
"about_support_project": "Подржите пројекат преко UPI",

Comment thread src/locales/sr.json
"list_saved_to_library": "Сачувано у библиотеку",
"list_view_on_yt": "Погледајте на Јутјубу",
"list_streams_count": "$ токови",
"list_mark_mode": "Марк Моде",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

'Марк Моде' is a phonetic transliteration of 'Mark Mode'. A proper translation like 'Режим означавања' is more appropriate for the user interface.

Suggested change
"list_mark_mode": "Марк Моде",
"list_mark_mode": "Режим означавања",

Comment thread src/locales/sr.json
"settings_stable_volume": "Преферирај стабилан волумен",
"settings_watchmode": "Режим гледања",
"settings_library_sync": "Синхронизација у облаку",
"settings_store_discoveries": "Сачувајте повезане стримове у Hub Discovery",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

This translation is outdated. The English source now says 'Enable Audio Discovery'.

Suggested change
"settings_store_discoveries": "Сачувајте повезане стримове у Hub Discovery",
"settings_store_discoveries": "Омогући откривање звука",

Comment thread src/locales/tr.json
"library_about_ytify": "ytify Hakkında",
"nav_logout": "Oturumu Kapat",
"player_video_resolution": "Çözünürlük",
"queue_reload_notification": ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Providing an empty string for a translation key will result in no text being displayed in the UI. It is better to provide the translated text or remove the key to allow fallback to the default language.

Suggested change
"queue_reload_notification": ""
"queue_reload_notification": "Değişiklikler bir sonraki oturumda görünecektir"

Comment thread src/locales/ar.json
"nav_logout": "تسجيل الخروج",
"player_video_resolution": "الدقة"
"player_video_resolution": "الدقة",
"queue_reload_notification": ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Empty translation strings cause the UI to display nothing for that key. It is better to provide the translation: 'ستظهر التغييرات من الجلسة القادمة'.

Suggested change
"queue_reload_notification": ""
"queue_reload_notification": "ستظهر التغييرات من الجلسة القادمة"

Comment thread src/locales/es.json
"nav_logout": "Cerrar sesión",
"player_video_resolution": "Resolución"
"player_video_resolution": "Resolución",
"queue_reload_notification": ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Empty translation strings cause the UI to display nothing for that key. It is better to provide the translation: 'Los cambios aparecerán a partir de la próxima sesión'.

Suggested change
"queue_reload_notification": ""
"queue_reload_notification": "Los cambios aparecerán a partir de la próxima sesión"

Comment thread src/locales/ru.json
"nav_logout": "Выйти",
"player_video_resolution": "Разрешение"
"player_video_resolution": "Разрешение",
"queue_reload_notification": ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Empty translation strings cause the UI to display nothing for that key. It is better to provide the translation: 'Изменения появятся со следующего сеанса'.

Suggested change
"queue_reload_notification": ""
"queue_reload_notification": "Изменения появятся со следующего сеанса"

Comment thread src/locales/zh.json
"nav_logout": "登出",
"player_video_resolution": "分辨率"
"player_video_resolution": "分辨率",
"queue_reload_notification": ""
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Empty translation strings cause the UI to display nothing for that key. It is better to provide the translation: '更改将在下次会话中生效'.

Suggested change
"queue_reload_notification": ""
"queue_reload_notification": "更改将在下次会话中生效"

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: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/locales/bs.json`:
- Line 224: The translation for the key "player_video_resolution" is incorrect
("Odluka" means "decision"); update the value for player_video_resolution in the
Bosnian locale to the correct term for video resolution (e.g., "Rezolucija" or a
context-appropriate variant) so the player settings display the proper label;
ensure the change only replaces the string value for "player_video_resolution"
and matches the surrounding JSON formatting and style.

In `@src/locales/cnr.json`:
- Around line 224-225: The value for the localization key
"player_video_resolution" is incorrect ("Odluka"); update the string value in
the locales JSON to the correct translation (e.g., "Rezolucija") for the
playback settings entry "player_video_resolution" so it accurately reflects
“resolution” in the CNR locale, and verify consistency with other locale files
using the same key.

In `@src/locales/hi.json`:
- Around line 223-224: The hi.json entry for "queue_reload_notification" is an
empty string so Hindi users see blank text; either populate that key with a
proper Hindi translation (e.g., set "queue_reload_notification": "बदलाव अगले
सत्र से दिखाई देंगे" in the hi.json file) or modify the translation lookup
function t() to treat empty-string values as missing and fall back to the
English translation for the same key (fetch from en translations when value ===
""), ensuring the change references the "queue_reload_notification" key and t().

In `@src/locales/zh.json`:
- Line 225: The "queue_reload_notification" locale entry is an empty string
which will render a blank notification; replace the empty value for the
"queue_reload_notification" key with an appropriate Chinese localized message
(or remove the key so the app falls back to the default locale) and ensure the
string is a proper JSON string value so consumers of the
"queue_reload_notification" key receive a visible message.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7bb663eb-047f-46d6-868d-dd001beb30d2

📥 Commits

Reviewing files that changed from the base of the PR and between d36ef80 and 502b94b.

📒 Files selected for processing (20)
  • src/locales/ar.json
  • src/locales/bn.json
  • src/locales/bs.json
  • src/locales/cnr.json
  • src/locales/de.json
  • src/locales/es.json
  • src/locales/fr.json
  • src/locales/hi.json
  • src/locales/hr.json
  • src/locales/id.json
  • src/locales/ja.json
  • src/locales/nl.json
  • src/locales/pl.json
  • src/locales/pt.json
  • src/locales/ro.json
  • src/locales/ru.json
  • src/locales/sr.json
  • src/locales/tr.json
  • src/locales/ur.json
  • src/locales/zh.json

Comment thread src/locales/bs.json
"library_about_ytify": "O ytify",
"nav_logout": "Odjavi se",
"player_video_resolution": "Odluka"
"player_video_resolution": "Odluka",
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

player_video_resolution translation appears incorrect.

On Line 224, "Odluka" translates to “decision,” not video “resolution.” This will confuse users in the player settings.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/locales/bs.json` at line 224, The translation for the key
"player_video_resolution" is incorrect ("Odluka" means "decision"); update the
value for player_video_resolution in the Bosnian locale to the correct term for
video resolution (e.g., "Rezolucija" or a context-appropriate variant) so the
player settings display the proper label; ensure the change only replaces the
string value for "player_video_resolution" and matches the surrounding JSON
formatting and style.

Comment thread src/locales/cnr.json
Comment on lines +224 to +225
"player_video_resolution": "Odluka",
"updating": "Ažuriranje u toku..."
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

Fix player_video_resolution mistranslation.

Line 224 uses "Odluka" (decision), which does not match the key meaning (“resolution”) and can confuse users in playback settings.

Suggested patch
-    "player_video_resolution": "Odluka",
+    "player_video_resolution": "Rezolucija",
📝 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
"player_video_resolution": "Odluka",
"updating": "Ažuriranje u toku..."
"player_video_resolution": "Rezolucija",
"updating": "Ažuriranje u toku..."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/locales/cnr.json` around lines 224 - 225, The value for the localization
key "player_video_resolution" is incorrect ("Odluka"); update the string value
in the locales JSON to the correct translation (e.g., "Rezolucija") for the
playback settings entry "player_video_resolution" so it accurately reflects
“resolution” in the CNR locale, and verify consistency with other locale files
using the same key.

Comment thread src/locales/hi.json
Comment on lines +223 to +224
"player_video_resolution": "रेज़ोल्यूशन",
"queue_reload_notification": ""
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
# Description: Check i18n fallback configuration for empty strings

# Search for i18n initialization and fallback configuration
rg -n -C5 -g '*.{ts,tsx,js,jsx}' 'i18n|fallbackLng|fallback.*locale'

# Find usage of queue_reload_notification to understand display context
ast-grep --pattern 'queue_reload_notification'

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Check package.json for i18n dependencies
cat package.json | grep -i "i18n\|locale\|translation"

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Find all locale files to understand structure
fd -e json "locales" --type f | head -20

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Search for any i18n implementation more broadly (case-insensitive)
rg -i "queue_reload_notification" --type ts --type tsx --type js --type jsx -C 3

Repository: n-ce/ytify

Length of output: 81


🏁 Script executed:

# Look for how locale files are loaded or used
rg -n "locales\|\.json" --type ts --type tsx --type js --type jsx | grep -i "locale\|translation\|i18n" | head -20

Repository: n-ce/ytify

Length of output: 81


🏁 Script executed:

cat package.json

Repository: n-ce/ytify

Length of output: 952


🏁 Script executed:

# Find all JSON locale files
fd "\.json$" src/locales/

Repository: n-ce/ytify

Length of output: 474


🏁 Script executed:

# Look for Vue i18n implementation
rg -n "createI18n\|useI18n\|this.\$i18n" --type js

Repository: n-ce/ytify

Length of output: 202


🏁 Script executed:

# Search for how locale keys are referenced in Vue files
rg -n "queue_reload\|player_video" --type js | head -10

Repository: n-ce/ytify

Length of output: 202


🏁 Script executed:

# Find TypeScript source files
fd "\.ts$" src/ | head -20

Repository: n-ce/ytify

Length of output: 631


🏁 Script executed:

# Search for locale loading in TS files
rg -n "locales\|import.*locale" --type ts

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Look for translation function or key usage pattern
rg -n "\$t\(|i18n\(|getTranslation\(|t\(" --type ts | head -15

Repository: n-ce/ytify

Length of output: 1060


🏁 Script executed:

# Check how locale files are loaded
rg -n "queue_reload\|player_video" -C 2

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Check vite config for any locale plugin
cat src/../vite.config.ts | head -50

Repository: n-ce/ytify

Length of output: 1780


🏁 Script executed:

# Search for any imports of locale files
rg -n "from.*locales\|import.*locales" --type ts

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Look for JSON imports in general
rg -n "\.json" --type ts | grep -E "import|from" | head -20

Repository: n-ce/ytify

Length of output: 276


🏁 Script executed:

# Check main app files (Solid.js entry point)
fd "^(index|main|app)\.(tsx?|jsx?)" src/

Repository: n-ce/ytify

Length of output: 392


🏁 Script executed:

# Look at the structure of en.json to understand if queue_reload_notification exists there
rg "queue_reload_notification" src/locales/

Repository: n-ce/ytify

Length of output: 1602


🏁 Script executed:

# Check the types definition for locales
cat src/types.d.ts

Repository: n-ce/ytify

Length of output: 2597


🏁 Script executed:

# Search for where queue_reload_notification is actually used/displayed
rg "queue_reload_notification" -C 5

Repository: n-ce/ytify

Length of output: 11812


🏁 Script executed:

# Check how translations are accessed in the app
rg -n "locales\[" --type ts --type tsx

Repository: n-ce/ytify

Length of output: 81


🏁 Script executed:

# Look for how translations are accessed/displayed
rg -n "\[.*\]" src/lib/stores/app.ts | grep -i "json\|locale" | head -20

Repository: n-ce/ytify

Length of output: 36


🏁 Script executed:

# Search for notification display code
rg -n "notification" --type js | head -20

Repository: n-ce/ytify

Length of output: 202


🏁 Script executed:

# Check app.ts to see full locale loading logic
sed -n '30,50p' src/lib/stores/app.ts

Repository: n-ce/ytify

Length of output: 344


🏁 Script executed:

# Search for where locales object/json is used
rg -n "locales\[|locales\(" --type js

Repository: n-ce/ytify

Length of output: 202


🏁 Script executed:

# Search for how translations are accessed in components (look for t() or similar pattern)
rg -n "store\.translations\|getTranslation" --type js | head -10

Repository: n-ce/ytify

Length of output: 202


🏁 Script executed:

# Look for the translation function definition
cat src/lib/stores/app.ts | head -100

Repository: n-ce/ytify

Length of output: 1205


🏁 Script executed:

# Search for notification display patterns
rg -n "Toast\|toast\|notify\|showNotification" --type js | head -15

Repository: n-ce/ytify

Length of output: 202


Empty translation will display as blank text for Hindi users.

The queue_reload_notification key contains an empty string in hi.json. The app's t() function returns empty strings as-is without fallback—it only falls back to the key name if the key itself is missing. Hindi users will see blank text instead of the English message ("Changes will appear from next session"). Either translate this key for Hindi, or implement fallback to English translations for empty values.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/locales/hi.json` around lines 223 - 224, The hi.json entry for
"queue_reload_notification" is an empty string so Hindi users see blank text;
either populate that key with a proper Hindi translation (e.g., set
"queue_reload_notification": "बदलाव अगले सत्र से दिखाई देंगे" in the hi.json
file) or modify the translation lookup function t() to treat empty-string values
as missing and fall back to the English translation for the same key (fetch from
en translations when value === ""), ensuring the change references the
"queue_reload_notification" key and t().

Comment thread src/locales/zh.json
"nav_logout": "登出",
"player_video_resolution": "分辨率"
"player_video_resolution": "分辨率",
"queue_reload_notification": ""
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 | 🟠 Major

queue_reload_notification should not be an empty string.

On Line 225, the new key is added with "". If this key is rendered directly, users will see a blank notification. Please provide a localized string or intentionally fall back to a default locale value.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/locales/zh.json` at line 225, The "queue_reload_notification" locale
entry is an empty string which will render a blank notification; replace the
empty value for the "queue_reload_notification" key with an appropriate Chinese
localized message (or remove the key so the app falls back to the default
locale) and ensure the string is a proper JSON string value so consumers of the
"queue_reload_notification" key receive a visible message.

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.

3 participants