-
Notifications
You must be signed in to change notification settings - Fork 6
New Crowdin updates #592
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
New Crowdin updates #592
Conversation
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: 2
Note
Due to the large number of review comments, Critical severity comments were prioritized as inline comments.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
apps/web/src/features/i18n/locales/lt-LT.json (1)
489-489: Missing Lithuanian translation for "translate" key.The
translatekey has the English value"Translate"while the adjacent keyspromoteandboostare properly translated to Lithuanian. This creates an inconsistent user experience.Suggest translating to Lithuanian (e.g.,
"Versti"or similar).apps/web/src/features/i18n/locales/uz-UZ.json (1)
489-489: Missing translation for translate menu item.The
translatekey has an English value "Translate" but should be translated to Uzbek like other menu items in this section (e.g., "share": "Bo'lishish", "promote": "Targ'ib qilish").
🤖 Fix all issues with AI agents
In @apps/web/src/features/i18n/locales/it-IT.json:
- Line 299: The translation string for key "learn-more" contains an empty anchor
element; update the value to include visible link text between the <a> and </a>
tags (e.g., "Scopri di più sui vantaggi nelle nostre FAQ <a
href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>") so the link is
visible and clickable, keeping the same href and surrounding text and preserving
JSON quoting/escaping for the string.
In @apps/web/src/features/i18n/locales/ja-JP.json:
- Line 299: The "learn-more" translation contains an unprocessed placeholder
"format@@2" and an empty anchor; update the value keyed by "learn-more" so the
anchor has the intended link text and remove the stray "format@@2" placeholder
(or replace it with the correct interpolation token if needed) — verify and use
the source locale's link text for the anchor content and ensure no raw
placeholder remains.
🟠 Major comments (24)
apps/web/src/features/i18n/locales/lt-LT.json-1425-1425 (1)
1425-1425: "external-wallets-label" is entirely in English.The label
"Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)"should be translated to Lithuanian. At minimum, the word "Wallet" should be translated (e.g., "Piniginė" as used elsewhere in this file - see line 228, 537, etc.).Consider:
"Piniginė (BTC, ETH, SOL, BNB, TRX, TON, APT)"apps/web/src/features/i18n/locales/lt-LT.json-1556-1558 (1)
1556-1558: HiveAuth-related keys contain untranslated English text.All three new keys (
with-hiveauth,invalid-key,key-error) have English values instead of Lithuanian translations. Lithuanian users will see English error messages when using HiveAuth authentication.These user-facing messages should be translated:
"Sign with HiveAuth"→ Lithuanian needed"Invalid key format. Please check for invalid characters."→ Lithuanian needed"Failed to process the key. Please verify it is correct."→ Lithuanian neededapps/web/src/features/i18n/locales/lt-LT.json-2524-2524 (1)
2524-2524: Blockchain error message "must-claim" is in English.The error message
"No claiming balance or already claimed."is in English and should be translated to Lithuanian. Users encountering this blockchain error will see English text.This user-facing error message needs Lithuanian translation.
apps/web/src/features/i18n/locales/lt-LT.json-411-426 (1)
411-426: Entire "tags-page" section contains untranslated English text.All keys in this new section (
title,description,error,columns.*,load-more.*) have English values instead of Lithuanian translations. This will display entirely in English to Lithuanian users, breaking the localized experience.Examples needing translation:
"Trending tags"→ should be Lithuanian"Discover the most active topics..."→ should be Lithuanian"Tag","Comments","Top posts","Total payouts"→ should be Lithuanian"Load more","Loading...","No more tags"→ should be Lithuanianapps/web/src/features/i18n/locales/lt-LT.json-50-50 (1)
50-50: Incomplete Lithuanian translation for "promoted".The value
"promoted"is in English and should be translated to Lithuanian. This will display English text to Lithuanian users.Consider translating to something like
"reklamuojama"(as used elsewhere in the file, see line 141, 431, 490).apps/web/src/features/i18n/locales/lt-LT.json-2160-2164 (1)
2160-2164: Chat translation and pinning features contain untranslated English text.The new keys for chat translation and message pinning (
translate,translate-target-language,pinned-messages,pin-message,unpin-message) all have English values. This breaks the user experience for Lithuanian speakers using these chat features.These should be translated to Lithuanian:
"Translate"→ Lithuanian translation needed"Target language"→ Lithuanian translation needed"Pinned messages"→ Lithuanian translation needed"Pin message"→ Lithuanian translation needed"Unpin message"→ Lithuanian translation neededapps/web/src/features/i18n/locales/lt-LT.json-3032-3032 (1)
3032-3032: Wallet operation label "transfer-saving" is in English.The value
"To Savings"should be translated to Lithuanian. This is a wallet operation label that users will see when managing their funds. There's a similar properly translated key at line 1402 ("transfer-saving-title": "Pervesti į Santaupas").Consider translating to
"Į santaupas"to match the pattern used elsewhere in the file.apps/web/src/features/i18n/locales/lt-LT.json-466-468 (1)
466-468: Missing Lithuanian translations in "entry-tip" section.The new keys
send-tip,count, andcount_pluralcontain English text instead of Lithuanian translations. This creates inconsistency since the section title on line 465 is properly translated.These should be translated:
"Send a tip"→ Lithuanian translation needed"{{count}} tip"→ Lithuanian translation needed"{{count}} tips"→ Lithuanian translation neededapps/web/src/features/i18n/locales/hi-IN.json-411-426 (1)
411-426: Complete section needs Hindi translation.The entire
tags-pagesection contains only English text. This new feature will display in English for Hindi-speaking users, creating an inconsistent user experience.All keys within this section should be translated:
title,description,error- Column headers:
tag,comments,top-posts,total-payouts- Load-more states:
cta,loading,done🌐 Example translations for key entries
"tags-page": { - "title": "Trending tags", + "title": "ट्रेंडिंग टैग्स", - "description": "Discover the most active topics with their comment volume, top posts, and payouts.", + "description": "टिप्पणी संख्या, शीर्ष पोस्ट और भुगतान के साथ सबसे सक्रिय विषयों की खोज करें।", - "error": "Unable to load trending tags right now.", + "error": "अभी ट्रेंडिंग टैग लोड करने में असमर्थ।", "columns": { - "tag": "Tag", + "tag": "टैग", - "comments": "Comments", + "comments": "टिप्पणियाँ", - "top-posts": "Top posts", + "top-posts": "शीर्ष पोस्ट", - "total-payouts": "Total payouts" + "total-payouts": "कुल भुगतान" },apps/web/src/features/i18n/locales/uz-UZ.json-2524-2524 (1)
2524-2524: Chain error message is untranslated.The updated
must-claimerror message "No claiming balance or already claimed." is in English, while other chain error messages in this section are translated to Uzbek (e.g., Line 2522: "identical-vote": "Bu kontentdagi hozirgi ovozingiz shu ovoz bilan bir xil.").This error message will appear to users during blockchain operations and should be translated for consistency.
apps/web/src/features/i18n/locales/uz-UZ.json-1556-1558 (1)
1556-1558: HiveAuth authentication strings are untranslated.The newly added HiveAuth-related strings are entirely in English:
- Sign-in option: "Sign with HiveAuth"
- Error messages: "Invalid key format..." and "Failed to process the key..."
These user-facing strings should be translated to Uzbek for consistency with other authentication options in the same section (e.g., Line 1554: "with-hivesigner": "Sign with hivesigner", Line 1555: "with-keychain": "Sign with keychain").
apps/web/src/features/i18n/locales/uz-UZ.json-411-426 (1)
411-426: Entire tags-page section is untranslated.The newly added
tags-pagesection contains only English text. All values including title, description, error messages, column labels, and load-more states should be translated to Uzbek.Uzbek users will see:
- "Trending tags" instead of Uzbek equivalent
- "Discover the most active topics..." in English
- All UI labels in English
This significantly degrades the user experience for Uzbek speakers.
Example structure with placeholder translations
"tags-page": { - "title": "Trending tags", - "description": "Discover the most active topics with their comment volume, top posts, and payouts.", - "error": "Unable to load trending tags right now.", + "title": "[Uzbek: Trending tags]", + "description": "[Uzbek: Discover the most active topics with their comment volume, top posts, and payouts.]", + "error": "[Uzbek: Unable to load trending tags right now.]", "columns": { - "tag": "Tag", - "comments": "Comments", - "top-posts": "Top posts", - "total-payouts": "Total payouts" + "tag": "[Uzbek: Tag]", + "comments": "[Uzbek: Comments]", + "top-posts": "[Uzbek: Top posts]", + "total-payouts": "[Uzbek: Total payouts]" }, "load-more": { - "cta": "Load more", - "loading": "Loading...", - "done": "No more tags" + "cta": "[Uzbek: Load more]", + "loading": "[Uzbek: Loading...]", + "done": "[Uzbek: No more tags]" } },apps/web/src/features/i18n/locales/uz-UZ.json-2159-2164 (1)
2159-2164: Chat translation and pinning features are untranslated.The newly added chat feature strings (lines 2160-2164) are all in English:
- Message states: "No message content."
- Translation features: "Translate", "Target language"
- Pinning features: "Pinned messages", "Pin message", "Unpin message"
These interactive features should be translated to Uzbek to match the existing chat interface strings in this section.
apps/web/src/features/i18n/locales/uz-UZ.json-466-468 (1)
466-468: Incomplete translations in entry-tip section.While the
titlekey is properly translated to Uzbek ("Sovg'a"), the newly added keys remain in English:
send-tip: "Send a tip"count: "{{count}} tip"count_plural: "{{count}} tips"These should be translated to Uzbek for consistency with the existing
titletranslation.apps/web/src/features/i18n/locales/sr-CS.json-2524-2524 (1)
2524-2524: Translate blockchain error message to Serbian.The updated error message "No claiming balance or already claimed." is in English. For the Serbian locale, this should be translated so users can understand why their reward claim action failed.
apps/web/src/features/i18n/locales/sr-CS.json-1557-1558 (1)
1557-1558: Translate HiveAuth error messages to Serbian.These new error messages are in English but should be translated to Serbian for the sr-CS locale. Error messages are critical for user experience, and Serbian-speaking users need to understand what went wrong when authentication fails.
Reference existing error translations in this file (e.g., line 274) for the appropriate translation style.
apps/web/src/features/i18n/locales/sr-CS.json-2159-2164 (1)
2159-2164: Translate chat-related strings to Serbian.The new chat feature strings (message translation, pinning) are all in English. These should be translated to Serbian to provide a consistent localized experience in the chat interface for Serbian-speaking users.
apps/web/src/features/i18n/locales/sr-CS.json-1425-1425 (1)
1425-1425: Translate "Wallet" to Serbian for consistency.The word "Wallet" should be translated to "Novčanik" to match the existing translation pattern in this locale file (see line 228). The cryptocurrency ticker symbols (BTC, ETH, etc.) should remain in English as they are standard identifiers.
Suggested change:
- "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)" + "external-wallets-label": "Novčanik (BTC, ETH, SOL, BNB, TRX, TON, APT)"apps/web/src/features/i18n/locales/sr-CS.json-465-468 (1)
465-468: Translate entry-tip strings to Serbian.The new tipping-related strings ("send-tip", "count", "count_plural") are in English. These user-facing messages should be translated to Serbian to maintain consistency with the rest of the locale file and provide proper localization for Serbian users.
apps/web/src/features/i18n/locales/sr-CS.json-411-426 (1)
411-426: Translate the new tags-page section to Serbian.The entire "tags-page" section is in English. For a Serbian locale file, all user-facing strings should be translated to Serbian to provide a consistent user experience. Serbian users will currently see English text in the tags page UI.
Consider translating:
- "Trending tags" → appropriate Serbian translation
- "Discover the most active topics..." → Serbian translation
- "Unable to load trending tags right now." → Serbian translation
- Column headers and button labels → Serbian equivalents
apps/web/src/features/i18n/locales/sr-CS.json-3032-3032 (1)
3032-3032: Translate wallet operation label to Serbian.The label "To Savings" should be translated to Serbian. There's already a similar translation at line 1218: "transfer-to-savings": "Premestite u ušteđevinu". Consider using a consistent translation pattern such as "U štednju" or aligning with the existing translations.
apps/web/src/features/i18n/locales/de-DE.json-1556-1558 (1)
1556-1558: Typo: “HiveAuh” → “HiveAuth”.This is user-facing and looks like a typo in the product name.
Proposed fix
- "with-hiveauth": "Mit HiveAuh signieren", + "with-hiveauth": "Mit HiveAuth signieren",apps/web/src/features/i18n/locales/de-DE.json-464-469 (1)
464-469: Fixentry-tip.count: leftover English + title mismatch.
"count": "{{count}} tip"is user-facing English; alsotitle: "Hinweis"doesn’t match the “tip/tipping” concept used bysend-tip.Proposed fix (minimal)
"entry-tip": { - "title": "Hinweis", + "title": "Tipp", "send-tip": "Tipp senden", - "count": "{{count}} tip", + "count": "{{count}} Tipp", "count_plural": "{{count}} Tipps" },apps/web/src/features/i18n/locales/de-DE.json-3032-3033 (1)
3032-3033:transfer-saving: “An Einsparungen” is incorrect in this context.“Einsparungen” reads like cost savings, not account “Savings/Ersparnisse”. This label likely should align with
wallet.transfer-to-savings.Proposed fix
"operations": { "transfer": "Überweisung", - "transfer-saving": "An Einsparungen", + "transfer-saving": "Zu den Ersparnissen", "power-up": "Hochfahren",
🟡 Minor comments (35)
apps/web/src/features/i18n/locales/pt-PT.json-423-423 (1)
423-423: Fix corrupted translation string.The translation string contains what appears to be corrupted or malformed text:
"Carregandochar@@0". This should likely be"Carregando..."or similar valid Portuguese text. Thechar@@0portion suggests a character encoding issue or merge conflict remnant.🔧 Suggested fix
- "loading": "Carregandochar@@0", + "loading": "Carregando...",apps/web/src/features/i18n/locales/ru-RU.json-465-468 (1)
465-468: Fix incomplete and incorrect translations in entry-tip.The translations for the tipping feature have issues:
Line 466:
"send-tip": "Подсказка"is incorrect. "Подсказка" means "hint/tooltip", not "tip" as in gratuity. Consider using "Отправить чаевые" or "Дать на чай".Lines 467-468:
countandcount_pluralkeys are not translated and remain in English. They should be translated to Russian, e.g.:
"count": "{{count}} чаевые""count_plural": "{{count}} чаевых"Proposed translation fixes
"entry-tip": { "title": "Чаевые", - "send-tip": "Подсказка", - "count": "{{count}} tip", - "count_plural": "{{count}} tips" + "send-tip": "Отправить чаевые", + "count": "{{count}} чаевые", + "count_plural": "{{count}} чаевых" },apps/web/src/features/i18n/locales/ja-JP.json-465-468 (1)
465-468: Inconsistent language in tip translations.The singular form uses English "{{count}} tip" while the plural form uses Japanese "{{count}} のヒント". This creates inconsistent user experience. Both should use the same language.
♻️ Suggested fix
"entry-tip": { "title": "Tip", "send-tip": "ヒントを送信", - "count": "{{count}} tip", + "count": "{{count}} のヒント", "count_plural": "{{count}} のヒント" },apps/web/src/features/i18n/locales/ja-JP.json-2524-2524 (1)
2524-2524: Awkward phrasing in error message.The phrase "請求の残高や請求済みの残高はありません" is grammatically awkward and potentially confusing. The intended meaning appears to be "there are no rewards to claim" or "nothing available to claim."
💡 Suggested improvement
- "must-claim": "請求の残高や請求済みの残高はありません。", + "must-claim": "請求可能な報酬がありません。",This translates to "There are no claimable rewards," which is clearer and more natural in Japanese.
apps/web/src/features/i18n/locales/ja-JP.json-50-50 (1)
50-50: Inconsistent terminology for "promoted".The translation "昇格しました" (past tense: "was promoted") is inconsistent with other uses of "promoted" in this file. Line 141 uses "プロモート" and line 431 also uses "プロモート" for the same concept. Since this is used as a filter label/category name, it should use the noun form rather than past tense.
Suggested fix
- "promoted": "昇格しました", + "promoted": "プロモート",apps/web/src/features/i18n/locales/tr-TR.json-1556-1558 (1)
1556-1558: Authentication strings need Turkish translation.These new authentication-related keys contain English text:
with-hiveauth: "Sign with HiveAuth" (authentication button)invalid-key: "Invalid key format. Please check for invalid characters." (error message)key-error: "Failed to process the key. Please verify it is correct." (error message)Since these are critical user-facing strings for authentication and error handling, they should be translated to Turkish for proper user experience.
apps/web/src/features/i18n/locales/tr-TR.json-2524-2524 (1)
2524-2524: Updated text needs Turkish translation.The
chain-error.must-claimmessage was updated from "Pending rewards already claimed." to "No claiming balance or already claimed.", but remains in English. This blockchain error message should be translated to Turkish for users to understand what went wrong.apps/web/src/features/i18n/locales/tr-TR.json-1425-1425 (1)
1425-1425: Partial translation needed.The word "Wallet" in
external-wallets-labelshould be translated to Turkish (e.g., "Cüzdan"). While cryptocurrency ticker symbols (BTC, ETH, SOL, BNB, TRX, TON, APT) are typically kept as-is, the label text should be localized.Example:
"Cüzdan (BTC, ETH, SOL, BNB, TRX, TON, APT)"apps/web/src/features/i18n/locales/tr-TR.json-3032-3032 (1)
3032-3032: Operation label needs Turkish translation.The
transfer-savingoperation label was updated from "Savings Deposit" to "To Savings" but remains in English. This wallet operation label should be translated to Turkish (e.g., "Birikimlere" or similar based on the context).Note: Line 1403 in the
transfersection has a similar keytransfer-saving-titlethat's already translated as "Birikime Aktar" which could guide the translation here.apps/web/src/features/i18n/locales/tr-TR.json-411-426 (1)
411-426: Entire section needs Turkish translation.The newly added
tags-pagesection contains only English text. All user-facing strings should be translated to Turkish for this locale file:
title,description,error- Column headers:
tag,comments,top-posts,total-payouts- Load more states:
cta,loading,doneThis appears to be a Crowdin update where new keys were added but translations are pending.
apps/web/src/features/i18n/locales/tr-TR.json-50-50 (1)
50-50: Translation missing: English text in Turkish locale.The value
"promoted"should be translated to Turkish for consistency with the rest of the locale file. Other similar keys in this section are properly translated (e.g.,"trending": "akış","muted": "engellenen").apps/web/src/features/i18n/locales/tr-TR.json-2159-2164 (1)
2159-2164: Chat feature strings need Turkish translation.All newly added chat feature keys are in English:
no-message: "No message content."translate: "Translate"translate-target-language: "Target language"pinned-messages: "Pinned messages"pin-message: "Pin message"unpin-message: "Unpin message"These are user-facing strings for chat translation and message pinning features that should be translated to Turkish.
apps/web/src/features/i18n/locales/tr-TR.json-466-468 (1)
466-468: New keys need Turkish translation.The expanded
entry-tipsection has untranslated English keys:
send-tip: "Send a tip"count: "{{count}} tip"count_plural: "{{count}} tips"Note: Turkish has different pluralization rules than English, so ensure proper plural forms are used in translation.
apps/web/src/features/i18n/locales/fr-FR.json-299-299 (1)
299-299: Translate English text to French.The text "Learn more about benefits in our" is in English and needs to be translated to French for the French locale file. Other parts of the codebase use "Apprenez‐en davantage dans notre" (see line 67 for reference).
🌐 Proposed fix for French translation
- "learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>", + "learn-more": "En savoir plus sur les avantages dans notre <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>",apps/web/src/features/i18n/locales/fr-FR.json-465-468 (1)
465-468: Fix inconsistent and incorrect translations for "tip".The translations for "tip" (gratuity/reward) are inconsistent and sometimes incorrect:
- Line 465: "Pourboire" ✓ (correct)
- Line 466: "astuce" ✗ (means "trick", not "tip")
- Line 467: "tip" ✗ (not translated)
- Line 468: "conseils" ✗ (means "advice", not "tips")
All instances should consistently use "pourboire" which is the correct French term for a gratuity/tip.
🌐 Proposed fix for consistent translation
"entry-tip": { "title": "Pourboire", - "send-tip": "Envoyer une astuce", - "count": "{{count}} tip", - "count_plural": "{{count}} conseils" + "send-tip": "Envoyer un pourboire", + "count": "{{count}} pourboire", + "count_plural": "{{count}} pourboires" },apps/web/src/features/i18n/locales/fr-FR.json-411-426 (1)
411-426: Fix mixed language in "top-posts" translation.Line 418 contains "Top messages" which mixes English ("Top") with French ("messages"). This should be fully translated to French.
🌐 Proposed fix for consistent French translation
"columns": { "tag": "Étiquette", "comments": "Commentaires", - "top-posts": "Top messages", + "top-posts": "Meilleurs messages", "total-payouts": "Total des paiements" },apps/web/src/features/i18n/locales/nl-NL.json-299-299 (1)
299-299: Link text "FAQ" does not match destination content.The link is labeled "FAQ" but directs to the account creation guide at
https://docs.ecency.com/guides/create-account/. While the guide covers relevant account creation benefits, users will be confused by the "FAQ" label pointing to non-FAQ content. Either update the link text to reflect the destination (e.g., "gids voor het aanmaken van accounts") or change the URL to point to the actual FAQ section.apps/web/src/features/i18n/locales/uz-UZ.json-1425-1425 (1)
1425-1425: Partial translation needed for external-wallets-label.The word "Wallet" should be translated to Uzbek. The cryptocurrency ticker symbols (BTC, ETH, SOL, BNB, TRX, TON, APT) are international standards and can remain unchanged.
For example: "Hamyon (BTC, ETH, SOL, BNB, TRX, TON, APT)"
apps/web/src/features/i18n/locales/uz-UZ.json-3032-3032 (1)
3032-3032: Wallet operation label is untranslated.The
transfer-savingoperation label "To Savings" is in English, while other operation labels in the same section are translated to Uzbek (e.g., Line 3031: "transfer": "Transfer", Line 3033: "power-up": "Power Up").This label appears in the wallet interface and should be translated for consistency.
apps/web/src/features/i18n/locales/uz-UZ.json-50-50 (1)
50-50: Translate "promoted" key to Uzbek at line 50.The value "promoted" remains in English at line 50, while the same key has Uzbek translations elsewhere in the file (line 431: "Targ'ib qilingan", line 510: "Kötarilgan"). Use one of the existing Uzbek translations for consistency.
apps/web/src/features/i18n/locales/es-ES.json-465-468 (1)
465-468: Inconsistent terminology for tipping feature.Line 465 uses "Sugerencia" (suggestion/hint) as the title, but lines 466-468 correctly use "propina" (monetary tip) for the tipping actions. For consistency and clarity, line 465 should use "Propina" instead of "Sugerencia" since this is clearly a monetary tipping feature.
🔧 Proposed fix
"entry-tip": { - "title": "Sugerencia", + "title": "Propina", "send-tip": "Enviar una propina", "count": "{{count}} propina", "count_plural": "{{count}} propinas"apps/web/src/features/i18n/locales/de-DE.json-411-426 (1)
411-426:tags-page.columns.tagtranslation reads off (“Markierung”).For a tags page table header, “Tag” (or “Schlagwort”) is the expected German UI term; “Markierung” is confusing.
Proposed fix
"columns": { - "tag": "Markierung", + "tag": "Tag", "comments": "Kommentare", "top-posts": "Top Beiträge", "total-payouts": "Gesamte Auszahlungen" },apps/web/src/features/i18n/locales/de-DE.json-2524-2524 (1)
2524-2524:chain-error.must-claimwording is awkward/unclear.Current text is hard to parse; consider a more direct German phrasing.
Suggested rewrite
- "must-claim": "Kein beanspruchender Saldo oder bereits beansprucht.", + "must-claim": "Kein Guthaben zum Beanspruchen vorhanden oder bereits beansprucht.",apps/web/src/features/i18n/locales/pl-PL.json-2521-2526 (1)
2521-2526:chain-error.must-claimPolish phrasing is unclear/unnatural.
Current: “Nieodzyskanie salda lub już odzyskane.” Consider something like “Brak salda do odebrania lub saldo zostało już odebrane.”apps/web/src/features/i18n/locales/pl-PL.json-47-52 (1)
47-52:g.promoted: verify intended casing in UI (label vs feed key).
If this is shown as a standalone label (not a feed slug), you may wantPromowanefor consistency withentry-list-item.promoted/entry-payout.promoted.apps/web/src/features/i18n/locales/pl-PL.json-464-469 (1)
464-469: Fix typos + Polish wording forentry-tip(currently has misspelling and English “tip”).
Line 466:napiwk→napiwek; Line 467:tipshould be Polish; plural form is also awkward.Proposed translation fix
"entry-tip": { "title": "Napiwek", - "send-tip": "Wyślij napiwk", - "count": "{{count}} tip", - "count_plural": "Porady {{count}}" + "send-tip": "Wyślij napiwek", + "count": "{{count}} napiwek", + "count_plural": "{{count}} napiwków" },apps/web/src/features/i18n/locales/id-ID.json-50-50 (1)
50-50:g.promotedvalue is still English and inconsistent with existing “Dipromosikan”.If this is user-facing (likely), consider aligning with other promoted strings in this locale.
Proposed adjustment
- "promoted": "promoted", + "promoted": "Dipromosikan",apps/web/src/features/i18n/locales/id-ID.json-2159-2164 (1)
2159-2164: Chat translate/pin strings added but remain English; localize if the chat UI is exposed to id-ID users.Optional localization
- "no-message": "No message content.", - "translate": "Translate", - "translate-target-language": "Target language", - "pinned-messages": "Pinned messages", - "pin-message": "Pin message", - "unpin-message": "Unpin message" + "no-message": "Tidak ada isi pesan.", + "translate": "Terjemahkan", + "translate-target-language": "Bahasa sasaran", + "pinned-messages": "Pesan disematkan", + "pin-message": "Sematkan pesan", + "unpin-message": "Lepas sematan"apps/web/src/features/i18n/locales/id-ID.json-1425-1425 (1)
1425-1425:transfer.external-wallets-labelis English; consider Indonesian localization (“Dompet”).Proposed adjustment
- "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)", + "external-wallets-label": "Dompet (BTC, ETH, SOL, BNB, TRX, TON, APT)",apps/web/src/features/i18n/locales/id-ID.json-2524-2524 (1)
2524-2524:chain-error.must-claimupdated but is still English; consider Indonesian and/or clearer phrasing.Optional localization + clarity tweak
- "must-claim": "No claiming balance or already claimed.", + "must-claim": "Tidak ada saldo untuk diklaim atau sudah diklaim.",apps/web/src/features/i18n/locales/id-ID.json-411-426 (1)
411-426:tags-pageblock added, but all strings are English in id-ID.If Indonesian translations are expected for release, consider localizing these (and aligning “Load more” with
g.load-more).Possible Indonesian translations (adjust wording as preferred)
"tags-page": { - "title": "Trending tags", - "description": "Discover the most active topics with their comment volume, top posts, and payouts.", - "error": "Unable to load trending tags right now.", + "title": "Tagar tren", + "description": "Temukan topik paling aktif berdasarkan jumlah komentar, postingan teratas, dan pembayaran.", + "error": "Tidak dapat memuat tagar tren saat ini.", "columns": { - "tag": "Tag", - "comments": "Comments", - "top-posts": "Top posts", - "total-payouts": "Total payouts" + "tag": "Tagar", + "comments": "Komentar", + "top-posts": "Postingan teratas", + "total-payouts": "Total pembayaran" }, "load-more": { - "cta": "Load more", - "loading": "Loading...", - "done": "No more tags" + "cta": "Muat lagi", + "loading": "Memuat...", + "done": "Tidak ada tagar lagi" } },apps/web/src/features/i18n/locales/id-ID.json-1556-1559 (1)
1556-1559: New HiveAuth + key error strings are English; align with existing Indonesian login strings if user-facing.Also please double-check these exact keys match what the HiveAuth flow expects (typos here will silently fall back).
Optional localization
- "with-hiveauth": "Sign with HiveAuth", - "invalid-key": "Invalid key format. Please check for invalid characters.", - "key-error": "Failed to process the key. Please verify it is correct." + "with-hiveauth": "Masuk dengan HiveAuth", + "invalid-key": "Format kunci tidak valid. Periksa karakter yang tidak valid.", + "key-error": "Gagal memproses kunci. Pastikan kunci yang dimasukkan benar."apps/web/src/features/i18n/locales/id-ID.json-464-469 (1)
464-469: Pluralization keys added forentry-tip: confirm your i18n plural rule expectations for Indonesian.Indonesian typically doesn’t pluralize; if the app’s i18n library uses
_pluralforms, this is fine, but otherwise this may be dead/unused keys or the wrong naming convention.Optional localization (if desired)
"entry-tip": { "title": "Tip", - "send-tip": "Send a tip", - "count": "{{count}} tip", - "count_plural": "{{count}} tips" + "send-tip": "Kirim tip", + "count": "{{count}} tip", + "count_plural": "{{count}} tip" },apps/web/src/features/i18n/locales/id-ID.json-3032-3032 (1)
3032-3032:profile-wallet.operations.transfer-savingis in English while other transfer-saving strings in the Indonesian locale are translated; use "Ke Tabungan" to match.The id-ID.json file has related keys properly translated to Indonesian:
- Line 1402:
"transfer-saving-title": "Transfer ke Tabungan"- Line 1403:
"transfer-saving-sub-title": "Lindungi dana dengan meminta masa tunggu penarikan selama 3 hari"The value at line 3032 should be translated consistently.
apps/web/src/features/i18n/locales/id-ID.json-299-299 (1)
299-299: Addtarget="_blank"andrel="noopener noreferrer"to the external link insign-up.learn-more.The string contains raw HTML that is safely rendered via the
safeHtml()component with XSS sanitization. However, the external link is missing standard security and behavior attributes. Other external links in the same locale file (e.g., line 710) consistently includetarget="_blank" rel="noopener noreferrer"for external URLs—this link should match that pattern.Update line 299 to:
"learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\" target=\"_blank\" rel=\"noopener noreferrer\">FAQ</a>"
🧹 Nitpick comments (22)
apps/web/src/features/i18n/locales/pcm-NG.json (1)
1134-1134: Consider extracting URLs from locale files.The
rc-info.learn-morekey contains a plain URL rather than translatable text. URLs are typically not locale-specific and should ideally be managed in a configuration file or referenced from code rather than duplicated across all locale files. This makes URL updates more maintainable.apps/web/src/features/i18n/locales/zh-CN.json (1)
2162-2163: Consider standardizing the character for "pin" across pinned-messages keys.Line 2162 uses
置頂(traditional Chinese character 頂) while line 2163 uses置顶(simplified character 顶). Since this is a simplified Chinese (zh-CN) locale file, you may want to standardize to置顶for consistency.📝 Suggested standardization
- "pinned-messages": "置頂消息", + "pinned-messages": "置顶消息", "pin-message": "置顶消息",apps/web/src/features/i18n/locales/ur-PK.json (1)
1425-1425: Consider partial translation for external-wallets-label.While cryptocurrency ticker symbols (BTC, ETH, SOL, etc.) should remain in English as they are international standards, the word "Wallet" could be translated to Urdu for better localization. Consider a format like:
"[Urdu word for Wallet] (BTC, ETH, SOL, BNB, TRX, TON, APT)".apps/web/src/features/i18n/locales/uk-UA.json (1)
2159-2164: Chat features localization looks good.The translation and pinning features are clearly translated. The "no-message" label could potentially be clearer depending on context (e.g., "Немає тексту повідомлення" if it means the message has no text content, vs "Немає повідомлень" if it means no messages exist).
apps/web/src/features/i18n/locales/hi-IN.json (8)
50-50: Incomplete translation: "promoted" needs Hindi translation.The value for
g.promotedis still in English. For Hindi-speaking users, this should be translated to हिंदी (e.g., "प्रचारित" or similar appropriate term).🌐 Suggested translation
- "promoted": "promoted", + "promoted": "प्रचारित",
299-299: Translate learn-more text to Hindi.The text within the HTML should be translated to Hindi for consistency with the rest of the Hindi locale.
🌐 Suggested translation
- "learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>", + "learn-more": "हमारे <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a> में लाभों के बारे में अधिक जानें",
465-468: Translate new tip-related strings to Hindi.The new
send-tip,count, andcount_pluralkeys underentry-tipare in English and need Hindi translations.🌐 Suggested translations
"entry-tip": { "title": "टिप", - "send-tip": "Send a tip", + "send-tip": "टिप भेजें", - "count": "{{count}} tip", + "count": "{{count}} टिप", - "count_plural": "{{count}} tips" + "count_plural": "{{count}} टिप्स" },
1425-1425: Translate wallet label to Hindi.The
external-wallets-labelshould have "Wallet" translated to Hindi while keeping the cryptocurrency symbols as they are universal.🌐 Suggested translation
- "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)", + "external-wallets-label": "वॉलेट (BTC, ETH, SOL, BNB, TRX, TON, APT)",
1556-1558: Translate HiveAuth keys to Hindi.The new HiveAuth-related keys (
with-hiveauth,invalid-key,key-error) are user-facing messages that should be translated to Hindi.🌐 Suggested translations
- "with-hiveauth": "Sign with HiveAuth", + "with-hiveauth": "HiveAuth के साथ साइन इन करें", - "invalid-key": "Invalid key format. Please check for invalid characters.", + "invalid-key": "अमान्य कुंजी प्रारूप। कृपया अमान्य वर्णों की जांच करें।", - "key-error": "Failed to process the key. Please verify it is correct." + "key-error": "कुंजी को संसाधित करने में विफल। कृपया सत्यापित करें कि यह सही है।"
2159-2164: Translate chat feature strings to Hindi.The new chat-related keys are all in English. These UI labels should be translated for Hindi-speaking users.
🌐 Suggested translations
- "no-message": "No message content.", + "no-message": "कोई संदेश सामग्री नहीं।", - "translate": "Translate", + "translate": "अनुवाद करें", - "translate-target-language": "Target language", + "translate-target-language": "लक्ष्य भाषा", - "pinned-messages": "Pinned messages", + "pinned-messages": "पिन किए गए संदेश", - "pin-message": "Pin message", + "pin-message": "संदेश पिन करें", - "unpin-message": "Unpin message" + "unpin-message": "संदेश अनपिन करें"
2524-2524: Translate chain error message to Hindi.The updated
must-claimerror message is in English and should be translated to Hindi for consistency.🌐 Suggested translation
- "must-claim": "No claiming balance or already claimed.", + "must-claim": "कोई दावा करने योग्य शेष राशि नहीं या पहले ही दावा किया जा चुका है।",
3032-3032: Translate wallet operation label to Hindi.The
transfer-savingoperation label has been updated to "To Savings" but remains in English. This should be translated to Hindi.🌐 Suggested translation
- "transfer-saving": "To Savings", + "transfer-saving": "बचत में",apps/web/src/features/i18n/locales/ac-ace.json (1)
1134-1134: Consider moving URL to a constants file.Line 1134 contains a URL value that doesn't require translation. URLs in locale files can create maintenance challenges:
- Translators might attempt to modify the URL
- URL changes require updates across all locale files
- Inconsistent with the pattern at line 299 where the URL is embedded in translatable HTML
♻️ Recommended approach
Move the URL to a constants file and reference it in the locale string:
In a constants file (e.g.,
constants/docs.ts):export const DOCS_URLS = { RESOURCE_CREDITS: 'https://docs.ecency.com/hive/resource-credits/' };In the locale file:
"learn-more": "Learn more in our {faqLink}"In the component:
t('rc-info.learn-more', { faqLink: `<a href="${DOCS_URLS.RESOURCE_CREDITS}">${t('rc-info.faq-link')}</a>` })This pattern is already used elsewhere in the codebase and provides better maintainability.
apps/web/src/features/i18n/locales/nl-NL.json (1)
2161-2161: Consider more natural phrasing for "target language".The translation "Taal van doel" is grammatically correct but sounds slightly unnatural in Dutch. Consider these alternatives:
- "Doeltaal" (more concise and natural)
- "Naar welke taal" (more conversational)
💡 Suggested improvement
- "translate-target-language": "Taal van doel", + "translate-target-language": "Doeltaal",apps/web/src/features/i18n/locales/es-ES.json (2)
1804-1804: Consider using proper i18n pluralization.The current implementation uses a
{{suffix}}pattern for pluralization which can be error-prone. Spanish pluralization rules are straightforward ("publicación" vs "publicaciones"), so using the i18n framework's built-in pluralization would be more robust and maintainable.Based on learnings, i18n frameworks typically support pluralization patterns like
countandcount_pluralkeys (as seen elsewhere in this file, e.g., lines 467-468). Consider using that pattern for consistency.
2162-2162: Minor Spanish phrasing improvement.While "Idioma destino" is grammatically correct, "Idioma de destino" would be more natural and formal Spanish, following the common pattern for "destination X" phrases (e.g., "país de destino").
✨ Suggested refinement
- "translate-target-language": "Idioma destino", + "translate-target-language": "Idioma de destino",apps/web/src/features/i18n/locales/sr-CS.json (1)
50-50: Consider translating or ensuring consistency with existing translations.The value "promoted" is kept in English, but elsewhere in the file (line 141) you have "filter-promoted": "Promovisano" which translates the same concept to Serbian. For consistency within the Serbian locale, consider using "promovisano" here as well, or verify the intended behavior differs.
apps/web/src/features/i18n/locales/de-DE.json (1)
50-50: Consider capitalization/consistency forg.promoted.As a UI label,
beworbenlikely should be capitalized (Beworben) and ideally align with the rest of the German “promoted” wording in this file (e.g.,entry-payout.promoted).Proposed tweak
- "promoted": "beworben", + "promoted": "Beworben",apps/web/src/features/i18n/locales/pl-PL.json (3)
295-301: Avoid hardcoding raw HTML in translation strings unless rendering is guaranteed safe.
This embeds an<a href="...">directly insign-up.learn-more; if translations are ever rendered without strict sanitization/allowlist, it becomes an XSS footgun. Prefer interpolated parts (URL + label) if your i18n layer supports it.
3030-3036:profile-wallet.operations.transfer-saving: “Oszczędności” is shorter—verify ambiguity.
If this label appears alongside “Transfer” and “Withdraw saving”, ensure users still understand it means “transfer to savings” (not the savings balance view).
1131-1138:rc-info.learn-moreis correctly used as an href, but consider moving this URL to code/config instead of a locale file.The key is properly wired into an anchor tag's
hrefattribute (<a href={i18next.t("rc-info.learn-more")}>), with the visible link text coming from a separaterc-info.faq-linkkey. This avoids UX regression. However, keeping URLs in locale files means they're translatable per-language even though documentation URLs are typically language-agnostic; storing this in code or config would better reflect its nature and reduce maintenance burden across locales.apps/web/src/features/i18n/locales/th-TH.json (1)
299-299: Consider extracting HTML from translation string.The translation string contains embedded HTML with a hardcoded link. While functional, this approach has drawbacks:
- Translators might accidentally break the HTML structure
- Links become harder to maintain across locales
- Less flexible for different link behaviors
Consider using a pattern like:
"learn-more": "Learn more about benefits in our {faqLink}"And inject the anchor tag programmatically in the component.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (23)
apps/web/src/features/i18n/locales/ac-ace.jsonapps/web/src/features/i18n/locales/bg-BG.jsonapps/web/src/features/i18n/locales/de-DE.jsonapps/web/src/features/i18n/locales/es-ES.jsonapps/web/src/features/i18n/locales/fr-FR.jsonapps/web/src/features/i18n/locales/hi-IN.jsonapps/web/src/features/i18n/locales/id-ID.jsonapps/web/src/features/i18n/locales/it-IT.jsonapps/web/src/features/i18n/locales/ja-JP.jsonapps/web/src/features/i18n/locales/lt-LT.jsonapps/web/src/features/i18n/locales/nl-NL.jsonapps/web/src/features/i18n/locales/pcm-NG.jsonapps/web/src/features/i18n/locales/pl-PL.jsonapps/web/src/features/i18n/locales/pt-PT.jsonapps/web/src/features/i18n/locales/ru-RU.jsonapps/web/src/features/i18n/locales/sr-CS.jsonapps/web/src/features/i18n/locales/th-TH.jsonapps/web/src/features/i18n/locales/tr-TR.jsonapps/web/src/features/i18n/locales/uk-UA.jsonapps/web/src/features/i18n/locales/ur-PK.jsonapps/web/src/features/i18n/locales/uz-UZ.jsonapps/web/src/features/i18n/locales/yo-NG.jsonapps/web/src/features/i18n/locales/zh-CN.json
🚧 Files skipped from review as they are similar to previous changes (2)
- apps/web/src/features/i18n/locales/bg-BG.json
- apps/web/src/features/i18n/locales/yo-NG.json
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: 16
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (13)
apps/web/src/features/i18n/locales/th-TH.json (1)
50-3032: Thai locale file contains predominantly English text instead of Thai translations.The
th-TH.jsonfile has 3,102 lines but contains only 6 strings with actual Thai characters out of thousands of entries. The vast majority of keys use English text values (e.g., "promoted", "muted", "Loading chats", etc.), which Thai-speaking users will see directly in the application.Verified translations found: "แชท" (chat), and 5 others. All remaining ~3,000+ entries are English.
Scope of impact:
- UI labels across all sections (common, navbar, wallet, chat, publishing, etc.)
- Error messages and system notifications
- Feature descriptions and tooltips
- Entire feature sections untranslated
Recommendation:
Since this appears to be a Crowdin-managed PR, confirm whether merging incomplete translations is acceptable workflow. If so:
- Prioritize Thai translation completion in Crowdin
- Mark incomplete locale keys in documentation
- Consider adding i18n fallback to English for untranslated strings rather than displaying raw English UI
apps/web/src/features/i18n/locales/es-ES.json (1)
2985-2985: Fix grammatical error in Spanish translation.The phrase "hacer una publicar" is grammatically incorrect in Spanish. It should be "hacer una publicación" (to make a publication) or simply "publicar" (to publish).
✏️ Suggested fix
- "description": "<p>Antes de enviar una propuesta, asegúrate de hacer una publicar en Hive que explique el alcance del trabajo y enlazarla a la propuesta. Crear una propuesta cuesta <strong>10 HBD</strong> más <strong>1 HBD</strong> por cada día más allá de los 60 días.</p>", + "description": "<p>Antes de enviar una propuesta, asegúrate de hacer una publicación en Hive que explique el alcance del trabajo y enlazarla a la propuesta. Crear una propuesta cuesta <strong>10 HBD</strong> más <strong>1 HBD</strong> por cada día más allá de los 60 días.</p>",apps/web/src/features/i18n/locales/hi-IN.json (2)
2524-2532:chain-error.must-claimis English + awkward phrasing; consider clearer message (and Hindi).Suggested phrasing
- "must-claim": "No claiming balance or already claimed.", + "must-claim": "दावा करने के लिए कोई शेष राशि नहीं है या पहले ही दावा किया जा चुका है।",
3031-3046:profile-wallet.operations.transfer-savinglabel language/casing should be consistent with the rest.
If this section is intended to be English, consider aligning all operations (currently mixed). If it’s intended to be Hindi, translate this as well.Possible Hindi translation
- "transfer-saving": "To Savings", + "transfer-saving": "बचत में",apps/web/src/features/i18n/locales/bg-BG.json (1)
1-3102: Multiple untranslated strings remain in Bulgarian locale file.Analysis of the 2,712 translation keys in
bg-BG.jsonconfirms significant incomplete translations. Many strings are still in English, including:
- Global labels: "All", "Clone", "promoted", "Confirm", "Username", "Download", "Pin", "Unpin", "Retry", "Status", "Success", "Error"
- Tags page section: "Tag", "Comments", "Top posts", "Total payouts"
- UI elements: "First", "Last", "OK", "Join", "Resend", "Failed", "Message", "Actions", "Restore", "Community", "Today", "View", "Tomorrow", "Import", "Clear", "Play"
- Authentication and notifications sections contain numerous untranslated entries
This is particularly problematic in the
tags-page.columnssubsection where all headers are English despite proper Bulgarian translations existing elsewhere (e.g., "tag" section shows "Немоделирани теми" correctly).Before merging:
- Complete Bulgarian translations for all remaining English strings to ensure a fully localized experience for Bulgarian users, or
- Implement a fallback mechanism where missing Bulgarian translations automatically display English equivalents until translations are completed, or
- Defer untranslated keys to a follow-up PR after Crowdin translations are finalized
Shipping incomplete translations degrades the localization quality and confuses users who expect full Bulgarian interface support.
apps/web/src/features/i18n/locales/ur-PK.json (1)
1-3102: Urdu locale file contains English text instead of Urdu translations.This locale file is named
ur-PK.json(Urdu-Pakistan) but all text values are in English rather than Urdu. While this appears consistent throughout the entire file and not specific to these new additions, it suggests the Urdu translations are incomplete or pending.Since this is a Crowdin update, these may be untranslated strings awaiting localization, or the application may be using English as a fallback. Consider:
- Coordinating with translation team to complete Urdu translations
- Verifying this is the intended behavior for incomplete locales
apps/web/src/features/i18n/locales/uk-UA.json (1)
1552-1559:key-or-hot.with-hiveauthwording may not match the “Sign” flow—double-check context.
Line 1556: “Увійти…” might be confusing if this screen is about signing; consider “Підписати за допомогою HiveAuth” if applicable. New validation strings look fine.apps/web/src/features/i18n/locales/id-ID.json (1)
1552-1559:key-or-hot.invalid-key/key-or-hot.key-errorare English inid-ID. If these are user-visible auth errors, they should be localized for supportability/UX.apps/web/src/features/i18n/locales/nl-NL.json (2)
299-333: Link text says “FAQ” but points to a guide URL—verify intent.
If this is meant to be a guide/docs link, consider renaming the anchor text accordingly; otherwise point it to the actual FAQ page.
2524-2532:chain-error.must-claimDutch is likely incorrect (“wordt al beweerd”).
“Beweerd” doesn’t fit here; likely meant “geclaimd”.Proposed fix
- "must-claim": "Geen claim saldo of wordt al beweerd.", + "must-claim": "Geen claimsaldo, of het is al geclaimd.",apps/web/src/features/i18n/locales/pcm-NG.json (3)
1420-1430:transfer.external-wallets-labeltext (“Wallet” vs “Wallets”) should be consistent with the UI context and other locales.
If this labels a section containing multiple wallets, “Wallets (…)” seems more accurate; if it labels a single selector, current is fine—just align across locales to avoid UX inconsistency.
3029-3036:profile-wallet.operations.transfer-savingupdated to “To Savings”: check consistency with other wallet strings inpcm-NG.
You still have “Transfer go Savings” elsewhere; if both appear in the UI, the mix may feel inconsistent.
295-302: Security attributes missing from external link insign-up.learn-more.The key is correctly rendered via the
Tsxcomponent (which safely handles HTML via XSS sanitization), so the HTML will render properly. However, the external link athttps://docs.ecency.com/guides/create-account/lackstarget="_blank"andrel="noopener noreferrer"attributes. The codebase consistently includes these attributes on external links (see other entries like the Coingecko reference in en-US.json), and the HTML whitelist already permits them. Add these attributes for consistency and security:- "learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>", + "learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\" target=\"_blank\" rel=\"noopener noreferrer\">FAQ</a>",
🤖 Fix all issues with AI agents
In @apps/web/src/features/i18n/locales/bg-BG.json:
- Line 3032: The key "transfer-saving" in the Bulgarian locale currently has the
English value "To Savings"; replace this value with the proper Bulgarian
translation (e.g., "Към спестявания") in
apps/web/src/features/i18n/locales/bg-BG.json so the wallet operations menu
displays a Bulgarian label for transfers to savings.
- Around line 411-426: The "tags-page" locale block contains English strings and
needs Bulgarian translations: replace values under the "tags-page" key (title,
description, error) and all nested keys (columns.tag, columns.comments,
columns["top-posts"], columns["total-payouts"], load-more.cta,
load-more.loading, load-more.done) with proper Bulgarian text so the UI shows
localized content for Bulgarian users; update each string value with the correct
Bulgarian translation while preserving the JSON keys and structure.
- Around line 2159-2164: The Bulgarian locale file is missing translations for
several chat-related keys ("no-message", "translate",
"translate-target-language", "pinned-messages", "pin-message", "unpin-message");
update apps/web/src/features/i18n/locales/bg-BG.json by replacing the English
values for those keys with correct Bulgarian strings (e.g., provide Bulgarian
equivalents for "No message content.", "Translate", "Target language", "Pinned
messages", "Pin message", and "Unpin message") ensuring punctuation and casing
match existing locale style.
- Around line 1556-1558: Add Bulgarian translations for the HiveAuth-related
keys currently in English: replace the values for "with-hiveauth",
"invalid-key", and "key-error" with appropriate Bulgarian strings so UI and
error messages are localized; update the locale JSON entries for these keys
(search for "with-hiveauth", "invalid-key", and "key-error") and provide concise
Bulgarian translations for the sign-in label and both key validation/error
messages.
- Line 2524: The "must-claim" localization key was accidentally changed to
English; restore a Bulgarian translation for the error by replacing the current
English value for the "must-claim" key with the correct Bulgarian text (for
example: "Няма наличен баланс за заявяване или вече е заявено.") so the
blockchain error message is shown in Bulgarian again.
- Line 50: The "promoted" key in the Bulgarian locale (JSON key "promoted")
currently contains the English word and should be replaced with a proper
Bulgarian translation; update the value for the "promoted" key in
apps/web/src/features/i18n/locales/bg-BG.json to an appropriate Bulgarian string
(e.g., "промотиран" or another accurate term) so the UI displays the localized
label for Bulgarian users.
- Line 1425: The key "external-wallets-label" contains English "Wallet (BTC,
ETH, SOL, BNB, TRX, TON, APT)"; change the visible word "Wallet" to the
Bulgarian translation (e.g., "Портфейл") while keeping the cryptocurrency
tickers unchanged, updating the value for "external-wallets-label" in bg-BG.json
to "Портфейл (BTC, ETH, SOL, BNB, TRX, TON, APT)".
- Around line 465-468: Translate the three tip-related keys into Bulgarian and
supply correct plural forms: replace "send-tip" with a Bulgarian phrase (e.g.,
"Изпрати бакшиш"), replace "count" with the singular Bulgarian form (e.g.,
"{{count}} бакшиш") and replace "count_plural" with the plural form (e.g.,
"{{count}} бакшиши"); ensure the translations are idiomatic Bulgarian and follow
the app's i18n pluralization pattern so the UI shows proper singular/plural in
Bulgarian.
In @apps/web/src/features/i18n/locales/hi-IN.json:
- Around line 411-426: The messages under the "tags-page" localization key are
still in English; replace each string value with appropriate Hindi translations
while preserving the JSON key structure (update "title", "description", "error",
"columns.tag", "columns.comments", "columns.top-posts", "columns.total-payouts",
and "load-more.cta"/"loading"/"done"). Ensure you keep the same keys and
punctuation/quoting so the file remains valid JSON and the translations read
naturally in Hindi for hi-IN users.
In @apps/web/src/features/i18n/locales/it-IT.json:
- Line 299: The translation string for "sign-up.learn-more" contains an anchor
tag with no inner text, producing an invisible link when rendered via the Tsx
component; update the it-IT translation value (key "sign-up.learn-more") to
include visible anchor text (e.g., "FAQ" or "scopri di più") inside the <a>
element or replace the HTML anchor with plain text and a separate link
placeholder so the Tsx renderer outputs a non-empty clickable label; ensure the
href remains unchanged and the inner text is localized.
In @apps/web/src/features/i18n/locales/ja-JP.json:
- Line 299: The "learn-more" translation contains an unreplaced placeholder
"format@@2" and an empty anchor; replace it with a properly formed Japanese
sentence and fill the anchor text. Update the "learn-more" value to remove
"format@@2", put human-friendly anchor text inside the <a> tag (e.g., "こちら" or
"詳しくはこちら"), and ensure the surrounding text reads naturally (for example:
アカウント作成のメリットについての詳細は<a
href="https://docs.ecency.com/guides/create-account/">こちら</a>をご覧ください。).
In @apps/web/src/features/i18n/locales/ru-RU.json:
- Around line 2524-2525: The translation for the key "must-claim"
(chain-error.must-claim) is semantically incorrect — "залогового баланса"
implies collateral; update the value for "must-claim" in the ru-RU locale to a
clearer phrase such as "Нет баланса наград для получения или награда уже
получена." to match the intended meaning ("no reward balance to claim / already
claimed").
- Around line 464-469: The "entry-tip" translations need Russian wording: change
"send-tip" from "Подсказка" to "Отправить чаевые" and replace the English count
strings with Russian forms—set "count" to a singular form like "{{count}}
чаевая" and "count_plural" to a plural form like "{{count}} чаевых" (adjust if
your i18n supports a separate few/many plural token, add the appropriate Russian
plural forms accordingly); update the keys "entry-tip", "send-tip", "count", and
"count_plural" in the ru-RU.json entry.
In @apps/web/src/features/i18n/locales/th-TH.json:
- Around line 465-468: The th-TH.json file is present but not registered and
mostly untranslated; either finish translations and wire it into the i18n system
or delete it. To fix, add the Thai locale to the langOptions array and
import/register the JSON in the resources dictionary inside
apps/web/src/features/i18n/index.ts (e.g., import thTH from
'./locales/th-TH.json' and add an entry like 'th-TH': thTH in resources), ensure
the language label appears in langOptions, and verify keys match existing locale
structure; alternatively remove th-TH.json if you want it unused.
In @apps/web/src/features/i18n/locales/uk-UA.json:
- Around line 299-300: The "learn-more" locale entry contains an English message
and a link missing security/UX attributes; update the "learn-more" value to a
Ukrainian translation and add target="_blank" rel="noopener noreferrer" to the
<a> tag so it matches other locale keys (e.g., "credits") and stays consistent
with the XSS-sanitation usage in the TSX component.
🟡 Minor comments (63)
apps/web/src/features/i18n/locales/zh-CN.json-467-468 (1)
467-468: Consider translating pluralization values to Chinese.The
countandcount_pluralkeys contain English text ("tip" and "tips") rather than Chinese translations. For consistency with the zh-CN locale, these should likely be translated to Chinese, for example:
"count": "{{count}} 个提示""count_plural": "{{count}} 个提示"However, if "tip" is intentionally used as an untranslated term, this can be ignored.
apps/web/src/features/i18n/locales/zh-CN.json-2162-2162 (1)
2162-2162: Fix Traditional Chinese character in Simplified Chinese locale.Line 2162 uses the Traditional Chinese character "頂" in "置頂消息", but this is a Simplified Chinese (zh-CN) locale file. For consistency, it should use the Simplified form "顶".
🔧 Suggested fix
- "pinned-messages": "置頂消息", + "pinned-messages": "置顶消息",apps/web/src/features/i18n/locales/tr-TR.json-466-468 (1)
466-468: Missing Turkish translations for tip-related strings.The newly added tip strings are in English:
send-tip: "Send a tip" → needs Turkish translation (e.g., "Bahşiş gönder")count: "{{count}} tip" → needs Turkish translationcount_plural: "{{count}} tips" → needs Turkish translationNote: Line 465 has the correct Turkish translation "Bahşiş" for "title".
apps/web/src/features/i18n/locales/tr-TR.json-1425-1425 (1)
1425-1425: Untranslated wallet label.The
external-wallets-labelvalue contains English text "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)". The word "Wallet" should be translated to Turkish while keeping the cryptocurrency symbols.Suggested translation:
"Cüzdan (BTC, ETH, SOL, BNB, TRX, TON, APT)"(consistent with line 228 where "Wallet" is translated as "Cüzdan").apps/web/src/features/i18n/locales/tr-TR.json-50-50 (1)
50-50: Untranslated string detected.The value
"promoted"is in English but this is a Turkish locale file. This key should have a Turkish translation instead.Consider translating to Turkish, for example:
"sponsorlu"or"öne çıkan"(consistent with line 51 where "muted" is translated as "engellenen" and line 431 where "Promoted" is translated as "Sponsorlu").apps/web/src/features/i18n/locales/tr-TR.json-1556-1558 (1)
1556-1558: HiveAuth strings require Turkish translation.The newly added HiveAuth-related strings are in English:
with-hiveauth: "Sign with HiveAuth" → needs Turkish translation (e.g., "HiveAuth ile imzala")invalid-key: "Invalid key format. Please check for invalid characters." → needs Turkish translationkey-error: "Failed to process the key. Please verify it is correct." → needs Turkish translationThese should follow the pattern of existing authentication strings like line 1554
"with-keychain": "Sign with keychain"which could also benefit from Turkish translation.apps/web/src/features/i18n/locales/tr-TR.json-2524-2524 (1)
2524-2524: Updated error message not translated.The
chain-error.must-claimvalue was updated to "No claiming balance or already claimed." but remains in English. This error message should be translated to Turkish.The previous translation for this error should be updated to reflect the new meaning.
apps/web/src/features/i18n/locales/tr-TR.json-411-426 (1)
411-426: Entire section requires translation.The complete
tags-pagesection contains English text instead of Turkish translations. Since this is the tr-TR locale file, all strings in this section need to be translated to Turkish:
title: "Trending tags" → needs Turkish translationdescription: "Discover the most active..." → needs Turkish translationerror: "Unable to load..." → needs Turkish translationcolumns.tag: "Tag" → "Etiket" (consistent with existing translations)columns.comments: "Comments" → "Yorumlar" (already translated at line 60)columns.top-posts: "Top posts" → needs Turkish translationcolumns.total-payouts: "Total payouts" → needs Turkish translationload-more.cta: "Load more" → "Daha Fazla Göster" (consistent with line 34)load-more.loading: "Loading..." → "Yükleniyor" (consistent with line 73)load-more.done: "No more tags" → needs Turkish translationapps/web/src/features/i18n/locales/tr-TR.json-3032-3032 (1)
3032-3032: Wallet operation label not translated.The
operations.transfer-savingvalue "To Savings" is in English. This should be translated to Turkish.Suggested translation:
"Birikimlere"or"Birikime Aktar"for consistency with line 1402 wheretransfer-saving-titleis translated as "Birikime Aktar" and line 1218 where "Transfer to Savings" is translated as "Birikimlere aktar".apps/web/src/features/i18n/locales/tr-TR.json-2159-2164 (1)
2159-2164: Chat feature strings need Turkish translation.The newly added chat translation and pinning features contain English text:
no-message: "No message content." → needs Turkish translationtranslate: "Translate" → "Çevir" or similartranslate-target-language: "Target language" → needs Turkish translationpinned-messages: "Pinned messages" → needs Turkish translationpin-message: "Pin message" → needs Turkish translation (note: line 89 has"pin": "Pin")unpin-message: "Unpin message" → needs Turkish translation (note: line 90 has"unpin": "Unpin")For consistency, check lines 476-484 where pin/unpin actions are used in the entry-menu context - those translations could inform these chat-related ones.
apps/web/src/features/i18n/locales/th-TH.json-50-50 (1)
50-50: Incomplete translation: English text in Thai locale file.The value
"promoted"appears to be in English rather than Thai. Thai-speaking users will see English text for this key, which breaks the localization experience.Please ensure all new keys in the
th-TH.jsonfile contain proper Thai translations.apps/web/src/features/i18n/locales/th-TH.json-3032-3032 (1)
3032-3032: Updated label needs translation.The wallet operation label was improved from "Savings Deposit" to the more concise "To Savings":
"transfer-saving": "To Savings"While this is a clearer label, it should be translated to Thai for the th-TH locale file.
apps/web/src/features/i18n/locales/th-TH.json-1425-1425 (1)
1425-1425: Incomplete translation: Wallet label in English.While cryptocurrency symbols (BTC, ETH, SOL, etc.) are typically universal and don't require translation, the word "Wallet" should be translated to Thai for consistency:
"external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)"Consider translating to something like:
"กระเป๋าเงิน (BTC, ETH, SOL, BNB, TRX, TON, APT)"(if appropriate for Thai).apps/web/src/features/i18n/locales/th-TH.json-2159-2164 (1)
2159-2164: Incomplete translations: Chat UI strings in English.The newly added chat-related keys are all in English:
"no-message": "No message content.", "translate": "Translate", "translate-target-language": "Target language", "pinned-messages": "Pinned messages", "pin-message": "Pin message", "unpin-message": "Unpin message"These are user-facing UI strings that should be translated to Thai to maintain a consistent localized experience.
apps/web/src/features/i18n/locales/th-TH.json-411-426 (1)
411-426: Incomplete translations: Entire section in English.The newly added
tags-pagesection contains all English text instead of Thai translations:
"title": "Trending tags""description": "Discover the most active topics..."- All nested keys under
columnsandload-moreThis will display English content to Thai-speaking users. Ensure all strings in this section are translated to Thai before merging.
apps/web/src/features/i18n/locales/th-TH.json-1556-1558 (1)
1556-1558: Incomplete translations: Error messages in English.The new error message keys contain English text:
"with-hiveauth": "Sign with HiveAuth", "invalid-key": "Invalid key format. Please check for invalid characters.", "key-error": "Failed to process the key. Please verify it is correct."Error messages are critical for user experience. Thai-speaking users need to understand what went wrong. Ensure these messages are properly translated.
apps/web/src/features/i18n/locales/th-TH.json-2524-2524 (1)
2524-2524: Updated message needs translation.The error message was updated from "Pending rewards already claimed." to "No claiming balance or already claimed.", which is more descriptive. However, it remains in English:
"must-claim": "No claiming balance or already claimed."Ensure this updated message is translated to Thai.
apps/web/src/features/i18n/locales/hi-IN.json-50-51 (1)
50-51: Localizeg.promotedto match existing “promoted” translations.
Right now it’s English while other “promoted” strings in this file are “प्रचारित”.Proposed change
- "promoted": "promoted", + "promoted": "प्रचारित",apps/web/src/features/i18n/locales/hi-IN.json-464-469 (1)
464-469: Translate newentry-tipstrings and sanity-check plural handling.
titleis Hindi but the new keys are English.Proposed change
"entry-tip": { "title": "टिप", - "send-tip": "Send a tip", - "count": "{{count}} tip", - "count_plural": "{{count}} tips" + "send-tip": "टिप भेजें", + "count": "{{count}} टिप", + "count_plural": "{{count}} टिप्स" },apps/web/src/features/i18n/locales/hi-IN.json-1425-1426 (1)
1425-1426: Consider localizingtransfer.external-wallets-labelfor hi-IN.
Currently English; could be a mixed-language UX in the transfer form.Proposed change
- "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)", + "external-wallets-label": "वॉलेट (BTC, ETH, SOL, BNB, TRX, TON, APT)",apps/web/src/features/i18n/locales/hi-IN.json-2159-2164 (1)
2159-2164: Chat action labels are English—translate for hi-IN consistency.Possible Hindi translations
- "no-message": "No message content.", - "translate": "Translate", - "translate-target-language": "Target language", - "pinned-messages": "Pinned messages", - "pin-message": "Pin message", - "unpin-message": "Unpin message" + "no-message": "संदेश में कोई सामग्री नहीं है।", + "translate": "अनुवाद", + "translate-target-language": "लक्ष्य भाषा", + "pinned-messages": "पिन किए गए संदेश", + "pin-message": "संदेश पिन करें", + "unpin-message": "संदेश अनपिन करें"apps/web/src/features/i18n/locales/hi-IN.json-1556-1559 (1)
1556-1559: New HiveAuth labels/errors are English—translate or confirm acceptable fallback.Possible Hindi translations
"with-hiveauth": "Sign with HiveAuth", - "invalid-key": "Invalid key format. Please check for invalid characters.", - "key-error": "Failed to process the key. Please verify it is correct." + "invalid-key": "कुंजी प्रारूप अमान्य है। कृपया अमान्य वर्णों की जाँच करें।", + "key-error": "कुंजी प्रोसेस नहीं हो सकी। कृपया जाँचें कि यह सही है।"apps/web/src/features/i18n/locales/it-IT.json-2524-2524 (1)
2524-2524:chain-error.must-claimwording is unclear in Italian. Consider a more direct “Nulla da riscuotere / già riscosso.”Proposed fix
- "must-claim": "Nessun saldo di rivendicazione o già rivendicato.", + "must-claim": "Nessun saldo da riscuotere o già riscosso.",apps/web/src/features/i18n/locales/it-IT.json-2159-2164 (1)
2159-2164: Chat pin/unpin strings are awkward (“Messaggio di pin”). Suggest using standard UI verbs (“Fissa/Rimuovi fissaggio”).Proposed fix
"chat": { ... - "translate": "Trasla", + "translate": "Traduci", "translate-target-language": "Lingua di destinazione", "pinned-messages": "Messaggi bloccati", - "pin-message": "Messaggio di pin", - "unpin-message": "Sblocca messaggio" + "pin-message": "Fissa messaggio", + "unpin-message": "Rimuovi fissaggio" },apps/web/src/features/i18n/locales/it-IT.json-465-469 (1)
465-469:entry-tip: current Italian reads like “suggestion” not “tip”. “Suggerimento” is misleading in a tipping context; “mancia” is the common UI term.Proposed fix
"entry-tip": { - "title": "Invia omaggio", - "send-tip": "Invia un suggerimento", + "title": "Invia una mancia", + "send-tip": "Invia una mancia", "count": "{{count}} tip", "count_plural": "{{count}} suggerimenti" },(Optionally also align plural:
{{count}} mance/{{count}} mancedepending on your i18n plural rules.)apps/web/src/features/i18n/locales/uk-UA.json-411-426 (1)
411-426:tags-pagetranslations: terminology consistency (“теги” vs “мітки”) and phrasing.
Lines 411-425: Title uses “теги” but error/done use “мітки”; consider using one term across the block. Also “гучністю” (Line 413) reads odd for “volume” (maybe “обсягом/активністю”).apps/web/src/features/i18n/locales/uk-UA.json-2522-2525 (1)
2522-2525:chain-error.must-claimmessage meaning is unclear—consider rephrasing.
Line 2524: “Баланс або вже не видається.” reads ambiguous; if this is a user-facing error, consider a clearer explanation of what the user must do next.apps/web/src/features/i18n/locales/uk-UA.json-1423-1426 (1)
1423-1426: Localizetransfer.external-wallets-label(currently English).
Line 1425: This shows in UI next to a phishing warning—worth translating to Ukrainian for clarity (keep tickers as-is).apps/web/src/features/i18n/locales/uk-UA.json-50-51 (1)
50-51: Consider capitalization/wording consistency forg.promoted.
Line 50:promoted= "підвищено" may read like a status (“elevated”) rather than “promoted/boosted”; also it’s lowercase while nearby feed labels are often Title Case.apps/web/src/features/i18n/locales/uk-UA.json-3030-3034 (1)
3030-3034:wallet.operations.transfer-savingtranslation is vague—ensure it matches UI intent.
Line 3032: “В збереження” is short/unnatural; consider “До заощаджень/У заощадження” (depending on the product terminology used elsewhere in this locale).apps/web/src/features/i18n/locales/uk-UA.json-464-469 (1)
464-469: Translateentry-tip.countandentry-tip.count_pluralto Ukrainian.Lines 467-468: The text is in English and needs Ukrainian translation. The project uses manual pluralization (checking count value), so keep the current
countandcount_pluralkey structure:Fix
"entry-tip": { "title": "Порада", "send-tip": "Надіслати пораду", - "count": "{{count}} tip", - "count_plural": "{{count}} tips" + "count": "{{count}} чайова", + "count_plural": "{{count}} чайових" }apps/web/src/features/i18n/locales/pl-PL.json-467-467 (1)
467-467: Fix typo in translationThe word "napiwk" is incomplete and should be "napiwek" (the Polish word for "tip").
✏️ Proposed fix
- "send-tip": "Wyślij napiwk", + "send-tip": "Wyślij napiwek",apps/web/src/features/i18n/locales/pl-PL.json-1134-1134 (1)
1134-1134: Inconsistent translation valueThis key contains a URL instead of translated text, which is inconsistent with other localization keys. The "learn-more" key should contain Polish text like "Dowiedz się więcej" or similar, with the URL handled separately in the code.
💡 Suggested approach
- "learn-more": "https://docs.ecency.com/hive/resource-credits/", + "learn-more": "Dowiedz się więcej",The URL should be referenced from code or a separate configuration file.
apps/web/src/features/i18n/locales/id-ID.json-1423-1427 (1)
1423-1427:transfer.external-wallets-labelis English inid-ID. At minimum consider “Dompet” (or Crowdin translation) to avoid a mixed-language transfer form.apps/web/src/features/i18n/locales/id-ID.json-49-52 (1)
49-52:g.promotedis left untranslated (and inconsistent withentry-filter.filter-promoted). Consider aligning to “Dipromosikan” (or whatever Crowdin provides) to avoid Indonesian UI showing English.apps/web/src/features/i18n/locales/id-ID.json-3030-3035 (1)
3030-3035:profile-wallet.operations.transfer-savingis English (“To Savings”) and may mismatch other “Savings/Tabungan” terminology. Consider aligning with the rest of the wallet strings (e.g., “Ke Tabungan”) to keep terminology consistent.apps/web/src/features/i18n/locales/id-ID.json-2521-2526 (1)
2521-2526:chain-error.must-claimis now English inid-ID. Unless this is a deliberate fallback, please localize it to Indonesian to avoid confusing error UX.apps/web/src/features/i18n/locales/nl-NL.json-2159-2165 (1)
2159-2165: Chat empty-state string reads unnatural in Dutch.
“Geen inhoud van berichten” is awkward; consider “Geen berichten” / “Geen berichteninhoud” depending on meaning.Possible adjustment
- "no-message": "Geen inhoud van berichten", + "no-message": "Geen berichten",apps/web/src/features/i18n/locales/nl-NL.json-3031-3034 (1)
3031-3034: Savings terminology inconsistent: “Naar spaargeld” vs “spaarpot/spaarrekening”.
Elsewhere you use “spaarpot” and “spaarrekening”; “spaargeld” is different/less UI-like. Consider aligning to one (probably “spaarpot” given wallet strings).Possible adjustment
- "transfer-saving": "Naar spaargeld", + "transfer-saving": "Naar spaarpot",apps/web/src/features/i18n/locales/nl-NL.json-1556-1559 (1)
1556-1559:with-hiveauthwording may be misleading in a signing context.
This block reads like a “sign” flow (“Sign with ...”), but Dutch says “Meld je aan met HiveAuth”. Consider “Onderteken met HiveAuth” / “Verbind met HiveAuth” depending on actual UX.Possible adjustment
- "with-hiveauth": "Meld je aan met HiveAuth", + "with-hiveauth": "Onderteken met HiveAuth",apps/web/src/features/i18n/locales/nl-NL.json-411-426 (1)
411-426:tags-pagecopy mixes “tags/labels/topics” andload-more.donereads off.
This page is “tags”, but the description uses “topics” and the “done” string says “Geen labels meer” (could be fine, but it’s inconsistent with “tags” and “Tagnaam”). Consider standardizing.Proposed wording standardization
- "description": "Ontdek de meest actieve topics met hun reactievolume, top berichten en uitbetalingen.", + "description": "Ontdek de meest actieve tags met hun aantal reacties, topberichten en uitbetalingen.", ... - "done": "Geen labels meer" + "done": "Geen tags meer"apps/web/src/features/i18n/locales/ru-RU.json-50-50 (1)
50-50:g.promotedlooks like a mistranslation (verb form + casing mismatch).
"продвигается"reads as “is being promoted” (verb), while this key is likely a label (noun/adjective) like other feed/filter labels; consider aligning with existing wording (e.g., “Продвигаемое/Продвигаемые” or matchentry-filter.filter-promoted).apps/web/src/features/i18n/locales/ru-RU.json-299-299 (1)
299-299: RU locale contains English copy insign-up.learn-more.This should be translated to Russian (and keep markup consistent with how other HTML-in-i18n strings are handled).
apps/web/src/features/i18n/locales/uz-UZ.json-2159-2164 (1)
2159-2164: New chat-related strings are untranslated.The newly added keys (
no-message,translate,translate-target-language,pinned-messages,pin-message,unpin-message) are all in English. While the surrounding chat section also appears to have many untranslated strings, these should ideally be translated to Uzbek for the target audience.apps/web/src/features/i18n/locales/uz-UZ.json-1556-1558 (1)
1556-1558: Untranslated error messages in HiveAuth section.While "HiveAuth" is a proper noun and can remain in English, the error messages
invalid-keyandkey-errorare user-facing strings that should be translated to Uzbek for consistency with other error messages in the file.apps/web/src/features/i18n/locales/uz-UZ.json-2524-2524 (1)
2524-2524: Updatedmust-claimerror message is untranslated.The updated error message "No claiming balance or already claimed." is in English. Other error messages in the
chain-errorsection have Uzbek translations (e.g.,min-root-comment). This should be translated for consistency.apps/web/src/features/i18n/locales/uz-UZ.json-411-426 (1)
411-426: Entiretags-pageblock is untranslated.All values in this new block are in English. Since this is the Uzbek locale file, these strings should be translated to Uzbek for consistency with the rest of the file.
Untranslated keys:
title,description,error,columns.tag,columns.comments,columns.top-posts,columns.total-payouts,load-more.cta,load-more.loading,load-more.done.apps/web/src/features/i18n/locales/uz-UZ.json-465-468 (1)
465-468: Partial translation inentry-tipsection.The
titlekey is properly translated to Uzbek ("Sovg'a"), but the newly added keyssend-tip,count, andcount_pluralremain in English. These should be translated for consistency.apps/web/src/features/i18n/locales/uz-UZ.json-1425-1425 (1)
1425-1425: Partial translation forexternal-wallets-label.The word "Wallet" should be translated to Uzbek. The file uses "Hamyon" for wallet elsewhere (e.g., line 228:
"wallet": "Hamyon"). Cryptocurrency symbols can remain in English as they are universal identifiers.Suggested fix
- "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)", + "external-wallets-label": "Hamyon (BTC, ETH, SOL, BNB, TRX, TON, APT)",apps/web/src/features/i18n/locales/uz-UZ.json-50-50 (1)
50-50: Untranslated string in Uzbek locale.The value
"promoted"is in English while this is the Uzbek (uz-UZ) locale file. For consistency with other translations in this file (e.g.,entry-filter.filter-promoteduses"Rag'batlantilgan"), this should be translated to Uzbek.Suggested fix
- "promoted": "promoted", + "promoted": "Rag'batlantilgan",apps/web/src/features/i18n/locales/uz-UZ.json-3032-3032 (1)
3032-3032:transfer-savinglabel is untranslated.The value "To Savings" should be translated to Uzbek. Based on similar keys in this file (e.g., line 1402:
"transfer-saving-title": "Jang'armaga o'tqazish"), the translation could be "Jamg'armaga" or similar.Suggested fix
- "transfer-saving": "To Savings", + "transfer-saving": "Jamg'armaga",apps/web/src/features/i18n/locales/lt-LT.json-1425-1425 (1)
1425-1425: Partially missing Lithuanian translation for "external-wallets-label".The word "Wallet" should be translated to Lithuanian (e.g., "Piniginė" as used elsewhere in the file at line 228). The cryptocurrency abbreviations (BTC, ETH, etc.) can remain as they are universally recognized symbols.
apps/web/src/features/i18n/locales/lt-LT.json-411-426 (1)
411-426: Missing Lithuanian translations for the entire "tags-page" section.All strings in the newly added
tags-pageblock are in English (title, description, error, column labels, and load-more actions). Since this is a Lithuanian locale file (lt-LT), these should be translated to Lithuanian to provide a consistent user experience for Lithuanian-speaking users.apps/web/src/features/i18n/locales/lt-LT.json-50-50 (1)
50-50: Missing Lithuanian translation for "promoted".This is a Lithuanian locale file (lt-LT), but the value for
g.promotedis in English. Users with Lithuanian language selected will see English text instead of their native language.Consider translating to Lithuanian, for example:
"reklamuojama"or"paremta"(matching the existing translation pattern used elsewhere in the file like line 431).apps/web/src/features/i18n/locales/lt-LT.json-2160-2165 (1)
2160-2165: Missing Lithuanian translations for chat features.The newly added chat-related strings (
no-message,translate,translate-target-language,pinned-messages,pin-message,unpin-message) are all in English. These should be translated to Lithuanian to maintain a consistent chat experience for Lithuanian users.apps/web/src/features/i18n/locales/lt-LT.json-3032-3032 (1)
3032-3032: Missing Lithuanian translation for "transfer-saving" operation label.The updated label "To Savings" is in English, while this is a Lithuanian locale file. Note that line 1402 (
transfer-saving-title) already has the Lithuanian translation "Pervesti į Santaupas" which could be adapted for this shorter label.apps/web/src/features/i18n/locales/lt-LT.json-2524-2524 (1)
2524-2524: Missing Lithuanian translation for updated "chain-error.must-claim".The updated error message text remains in English. Error messages should be localized to help Lithuanian-speaking users understand blockchain operation failures.
apps/web/src/features/i18n/locales/lt-LT.json-1556-1558 (1)
1556-1558: Missing Lithuanian translations for HiveAuth error messages.The newly added HiveAuth-related strings (
with-hiveauth,invalid-key,key-error) are in English. These authentication-related messages should be translated to Lithuanian to help users understand key validation issues.apps/web/src/features/i18n/locales/lt-LT.json-299-299 (1)
299-299: Missing Lithuanian translation for "sign-up.learn-more".The learn-more text is in English. This should be translated to Lithuanian for users who have selected Lithuanian as their language preference.
apps/web/src/features/i18n/locales/lt-LT.json-466-468 (1)
466-468: Missing Lithuanian translations for new "entry-tip" keys.While the
titlefield is correctly translated to Lithuanian ("Arbatpinigiai"), the newly addedsend-tip,count, andcount_pluralkeys remain in English. These should be translated to Lithuanian for consistency.apps/web/src/features/i18n/locales/yo-NG.json-50-50 (1)
50-50: Incomplete Yoruba localization for new and updated keys.This Yoruba (yo-NG) locale file contains multiple new translation keys that remain in English rather than being translated to Yoruba. This creates an inconsistent user experience for Yoruba speakers:
New sections entirely in English:
- Line 50:
g.promoted- Lines 411-426: Complete
tags-pagesection (16 keys including title, description, columns, load-more)- Lines 465-468:
entry-tipsection (4 keys for tipping feature)- Lines 2159-2164:
entry-chat.no-messagesection (6 keys for translation and pinning)New individual keys in English:
- Line 1425:
external-wallets-label- Lines 1556-1558:
key-or-hoterror messages (invalid-key,key-error,with-hiveauth)Updated keys that remain in English:
- Line 2524:
chain-error.must-claim- Line 3032:
transfer-savingWhile the file shows good progress with many properly translated Yoruba strings (e.g., "Fikún", "Túntò", "Tẹ̀síwájú"), these English additions undermine the localization effort. Users who select Yoruba will encounter a mixed-language interface.
Recommendation: Complete Yoruba translations for all new keys, or if translations are pending, consider adding a comment at the file level indicating work-in-progress status. You may also want to coordinate with Yoruba translators via the translation platform mentioned in the FAQ (translate-desktop.ecency.com).
Also applies to: 411-426, 465-468, 1425-1425, 1556-1558, 2159-2164, 2524-2524, 3032-3032
apps/web/src/features/i18n/locales/pcm-NG.json-411-426 (1)
411-426: Newtags-page.*strings are English; confirm that’s acceptable forpcm-NG(or expected as placeholders from Crowdin).
If you aim for Pidgin UX parity, these likely need localization before release; otherwise it’s fine as a temporary fallback but worth tracking.apps/web/src/features/i18n/locales/pcm-NG.json-2521-2526 (1)
2521-2526:chain-error.must-claimupdated: message is clearer, but grammar/tone doesn’t match the rest ofpcm-NG.
If this locale is intended to be Pidgin-first, consider adjusting copy; otherwise OK as a functional placeholder.
🧹 Nitpick comments (9)
apps/web/src/features/i18n/locales/hi-IN.json (1)
299-299: Avoid/verify inline HTML insign-up.learn-more(rendering + XSS posture).
If this string is rendered as raw HTML anywhere, ensure it’s safely handled and that translations can’t inject arbitrary markup/URLs; otherwise prefer building the link in code and keeping the translation as plain text + placeholders.apps/web/src/features/i18n/locales/it-IT.json (3)
50-50:g.promoted: consider capitalization consistency with other generic labels. The rest of"g"uses sentence/title casing inconsistently, but if this label is shown as a navigation/feed name, you may want"Promosso"to match nearby UI labels.
411-426:tags-pageblock: structure looks good; a couple of Italian phrases are a bit literal. Consider “Post migliori” instead of “Post in alto”, and “Nessun altro tag” is ok but “Nessun altro tag disponibile” may read better.
1425-1426:transfer.external-wallets-label: consider “Portafogli esterni” wording. Current string is understandable, but “Portafoglio (…)” can read like a single wallet rather than a category.Proposed tweak
- "external-wallets-label": "Portafoglio (BTC, ETH, SOL, BNB, TRX, TON, APT)", + "external-wallets-label": "Portafogli esterni (BTC, ETH, SOL, BNB, TRX, TON, APT)",apps/web/src/features/i18n/locales/nl-NL.json (2)
50-51: Potential terminology inconsistency forg.promoted.
"gepromoveerd"doesn’t match nearby usage (entry-list-item.promoted: “Gepromoot”, filters often use “Gesponsord”). Consider aligning to one term to avoid UI inconsistency.Proposed adjustment (pick one consistent term)
- "promoted": "gepromoveerd", + "promoted": "gepromoot",
1134-1136: Hard-coded docs URL in locale file: OK, but consider centralizing if it’s identical across locales.
If all locales use the same docs link, a single constant can reduce translation churn.apps/web/src/features/i18n/locales/ru-RU.json (2)
411-426:tags-pagestrings: minor RU phrasing polish.A couple strings read slightly non-idiomatic (e.g., “теги тренда”, “Топ записей”); consider “трендовые теги” / “топ‑посты” to match the feature naming elsewhere.
2159-2164: Chat pin/translate strings: consider RU orthography consistency (“ё”) and existing verbs.E.g., elsewhere you use “Закреплённый/Открепить”; here “Закрепленные сообщения” could be “Закреплённые сообщения” for consistency.
apps/web/src/features/i18n/locales/uz-UZ.json (1)
1-3102: Overall: Translation coverage concern.This Crowdin update adds several new keys to the Uzbek locale file, but most new strings remain in English. While this is common for incremental i18n workflows, consider tracking these untranslated strings for future translation passes:
g.promoted(line 50)- Entire
tags-pageblock (lines 411-426)entry-tipkeys:send-tip,count,count_plural(lines 466-468)external-wallets-label(line 1425)with-hiveauth.invalid-key,with-hiveauth.key-error(lines 1557-1558)- Chat section keys (lines 2159-2164)
chain-error.must-claim(line 2524)profile-wallet.operations.transfer-saving(line 3032)
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (23)
apps/web/src/features/i18n/locales/ac-ace.jsonapps/web/src/features/i18n/locales/bg-BG.jsonapps/web/src/features/i18n/locales/de-DE.jsonapps/web/src/features/i18n/locales/es-ES.jsonapps/web/src/features/i18n/locales/fr-FR.jsonapps/web/src/features/i18n/locales/hi-IN.jsonapps/web/src/features/i18n/locales/id-ID.jsonapps/web/src/features/i18n/locales/it-IT.jsonapps/web/src/features/i18n/locales/ja-JP.jsonapps/web/src/features/i18n/locales/lt-LT.jsonapps/web/src/features/i18n/locales/nl-NL.jsonapps/web/src/features/i18n/locales/pcm-NG.jsonapps/web/src/features/i18n/locales/pl-PL.jsonapps/web/src/features/i18n/locales/pt-PT.jsonapps/web/src/features/i18n/locales/ru-RU.jsonapps/web/src/features/i18n/locales/sr-CS.jsonapps/web/src/features/i18n/locales/th-TH.jsonapps/web/src/features/i18n/locales/tr-TR.jsonapps/web/src/features/i18n/locales/uk-UA.jsonapps/web/src/features/i18n/locales/ur-PK.jsonapps/web/src/features/i18n/locales/uz-UZ.jsonapps/web/src/features/i18n/locales/yo-NG.jsonapps/web/src/features/i18n/locales/zh-CN.json
🚧 Files skipped from review as they are similar to previous changes (2)
- apps/web/src/features/i18n/locales/de-DE.json
- apps/web/src/features/i18n/locales/pt-PT.json
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: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
apps/web/src/features/i18n/locales/es-ES.json
🔇 Additional comments (7)
apps/web/src/features/i18n/locales/es-ES.json (7)
50-50: LGTM - New translation key added.The new
g.promotedkey with value "promocionado" has been added correctly and is consistent with other status/filter translations in the global section.
411-426: LGTM - New tags-page section added.The new
tags-pagesection has been properly structured with all necessary keys for the trending tags functionality. The nested structure for columns and load-more states is well-organized and translations appear appropriate.
465-468: LGTM - Tipping functionality translations added.The
entry-tipsection has been extended with proper pluralization support usingcountandcount_pluralkeys. The Spanish pluralization of "propina/propinas" is grammatically correct.
1425-1425: LGTM - External wallets label added.The new
external-wallets-labelcorrectly translates "Wallet" to "Cartera" while preserving the international cryptocurrency ticker symbols (BTC, ETH, SOL, BNB, TRX, TON, APT).
1556-1558: LGTM - Authentication error messages added.New error handling strings for HiveAuth and key validation have been added with appropriate Spanish translations. The error messages are clear and user-friendly.
2133-2164: LGTM - Chat functionality expanded.The chat section has been enhanced with translations for:
- Status indicators (marking-as-read, joining-channel) using proper ellipsis
- Message translation features with target language selection
- Message pinning capabilities
All translations are appropriate and follow existing patterns in the file.
299-299: LGTM - HTML content in translations properly formatted.Several translation strings contain HTML markup:
- Line 299: Anchor tag with documentation link (properly escaped quotes)
- Line 1134: Plain documentation URL
- Line 1985: More complex HTML with paragraphs, bold text, and links
All HTML tags are properly escaped and well-formed. These appear to be intentional for rich text formatting in the UI.
Also applies to: 1134-1134, 1985-1985
Summary by CodeRabbit
New Features
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.