Skip to content

Conversation

@feruzm
Copy link
Member

@feruzm feruzm commented Dec 18, 2025

Summary by CodeRabbit

Release Notes

  • New Features

    • Message translation support across 24 languages
    • Message pinning and unpinning functionality
    • Tipping feature with localized messaging
    • External wallet integration labels
  • Improvements

    • Enhanced authentication error messaging globally
    • Updated promotion labeling across all supported languages
    • Expanded wallet management UI text

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

@coderabbitai
Copy link

coderabbitai bot commented Dec 29, 2025

📝 Walkthrough

Walkthrough

This pull request adds and updates localization keys across 27 language files in the i18n system. Changes include new keys for promoted content, tipping functionality, external wallet support, HiveAuth key validation, message translation and pinning features, and notification messaging updates. All modifications are to JSON translation files with no functional logic changes.

Changes

Cohort / File(s) Summary
Global localization key additions
apps/web/src/features/i18n/locales/{ac-ace,bg-BG,de-DE,es-ES,fr-FR,hi-IN,id-ID,it-IT,ja-JP,lt-LT,nl-NL,pcm-NG,pl-PL,pt-PT,ru-RU,sr-CS,th-TH,tr-TR,uk-UA,ur-PK,uz-UZ,yo-NG,zh-CN}.json
Added g.promoted key across all language files with localized translations (e.g., "beworben", "promocionado", "已升级").
Tipping feature localization
apps/web/src/features/i18n/locales/{...}.json (all 27 files)
Expanded entry-tip with new keys: send-tip, count, and count_plural to support tip messaging and pluralization in all language packs.
External wallet support
apps/web/src/features/i18n/locales/{...}.json (all 27 files)
Added transfer.external-wallets-label key describing supported wallets (BTC, ETH, SOL, BNB, TRX, TON, APT) in all locales.
HiveAuth key validation
apps/web/src/features/i18n/locales/{...}.json (all 27 files)
Introduced invalid-key and key-error under key-handling sections for enhanced error feedback during HiveAuth operations across all language files.
Chat and messaging features
apps/web/src/features/i18n/locales/{...}.json (all 27 files)
Added message translation and pinning controls: translate, translate-target-language, pinned-messages, pin-message, unpin-message across chat/messaging sections in all locales.
Notification messaging updates
apps/web/src/features/i18n/locales/{...}.json (all 27 files)
Updated spin-str values in notifications and entry-list-item sections, standardizing messaging across languages (e.g., "Time to earn more Points, Play Spin!").
Extensive Chinese localization
apps/web/src/features/i18n/locales/zh-CN.json
Comprehensive expansion including wallet operations, blockchain transaction controls, FAQ content, post scheduling, media uploads, beneficiary management, and user interaction flows with detailed Chinese translations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Through twenty-seven tongues, we hop with glee,
New keys unlock—tips, wallets, chats so free!
From pinned messages to promoted fame,
Every language speaks the same refrain and name! 🌍✨

Pre-merge checks and finishing touches

✅ 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 'New Crowdin updates' accurately describes the primary purpose of the changeset, which is to update localization files with translations from Crowdin across 26 language packs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch l10n_develop

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@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: 11

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 (2)
apps/web/src/features/i18n/locales/ru-RU.json (1)

415-415: Remove trailing newline character.

The translation has a trailing newline character (\n) which may cause unexpected spacing in the UI. This appears inconsistent with other translations in the file.

🔎 Suggested fix
-    "promoted": "Продвинуто\n",
+    "promoted": "Продвинуто",
apps/web/src/features/i18n/locales/es-ES.json (1)

2969-2969: Grammatical error in Spanish translation.

The phrase "asegúrate de hacer una publicar" is grammatically incorrect in Spanish. "Publicar" is an infinitive verb and cannot follow the article "una".

🔎 Suggested grammar fixes

Option 1 (use noun):

-      "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>",

Option 2 (restructure):

-      "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 publicar en Hive explicando el alcance del trabajo y enlázalo 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>",
🟡 Minor comments (30)
apps/web/src/features/i18n/locales/it-IT.json-452-452 (1)

452-452: Untranslated text in Italian locale.

Line 452 contains English text that was not translated:

"count": "{{count}} tip",

This should be translated to Italian to maintain consistency across the locale file.

🔎 Suggested translation
-    "count": "{{count}} tip",
+    "count": "{{count}} mancia",
apps/web/src/features/i18n/locales/it-IT.json-2144-2144 (1)

2144-2144: Incorrect Italian translation for "translate".

The word "Trasla" is not correct Italian. The proper translation for "translate" is "Traduci".

🔎 Corrected translation
-    "translate": "Trasla",
+    "translate": "Traduci",
apps/web/src/features/i18n/locales/it-IT.json-1818-1818 (1)

1818-1818: Unclear translation for spin notification.

The phrase "Gioca giro!" is grammatically awkward and unclear in Italian. "Giro" by itself doesn't convey the spinning wheel concept clearly.

🔎 Suggested improvement
-    "spin-str": "È ora di guadagnare più punti, Gioca giro!",
+    "spin-str": "È ora di guadagnare più punti, Gira la ruota!",

Alternative: "È ora di guadagnare più punti, Prova un giro!"

apps/web/src/features/i18n/locales/fr-FR.json-449-452 (1)

449-452: Fix translation inconsistencies in tipping feature.

The tipping translations contain several issues:

  1. Line 450: "astuce" means "trick/advice", not monetary tip. Should be "pourboire" to match line 449
  2. Line 451: Text is untranslated (still shows "tip" in English)
  3. Line 452: "conseils" means "advice", not monetary tips
🔎 Suggested fixes for consistent tipping terminology
   "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/pl-PL.json-449-452 (1)

449-452: Potential typo in send-tip translation

Line 450 contains "Wyślij napiwk" which appears to be missing the final letter. Should this be "Wyślij napiwek" instead?

Additionally, Line 451 uses the English word "tip" within the Polish translation: "{{count}} tip". Consider whether this should be fully localized to Polish for consistency.

apps/web/src/features/i18n/locales/uz-UZ.json-50-50 (1)

50-50: Complete Uzbek translations for newly added keys.

Several newly added translation keys remain in English despite other locale files (including ru-RU.json) having proper translations:

  • Line 50: "promoted" should be translated (ru-RU: "продвигается")
  • Lines 450-452: "send-tip", "count", "count_plural" in entry-tip section (ru-RU has "send-tip" translated)
  • Line 1409: "external-wallets-label" should translate "Wallet" (ru-RU: "Кошелёк")
  • Lines 1541-1542: "invalid-key", "key-error" in with-hiveauth section
  • Line 1818: "spin-str" notification message
  • Lines 2143-2148: Entire chat section ("no-message", "translate", "translate-target-language", "pinned-messages", "pin-message", "unpin-message") - ru-RU has all these fully translated

Uzbek users will see English text for these features while the rest of the interface is properly translated. Coordinate with the translation team to complete these translations before merging.

apps/web/src/features/i18n/locales/tr-TR.json-449-452 (1)

449-452: Incomplete translations: New tipping functionality strings in English.

The send-tip, count, and count_plural keys contain English text in a Turkish locale file. These user-facing strings should be translated to Turkish for proper localization.

Suggested translations:

  • "send-tip": "Bahşiş gönder"
  • "count": "{{count}} bahşiş"
  • "count_plural": "{{count}} bahşişler"
apps/web/src/features/i18n/locales/tr-TR.json-50-50 (1)

50-50: Translation missing: English text in Turkish locale file.

The value "promoted" should be translated to Turkish. Based on the existing translation at line 415 ("promoted": "Sponsorlu"), this should likely be "promoted": "Sponsorlu" to maintain consistency.

apps/web/src/features/i18n/locales/tr-TR.json-2143-2148 (1)

2143-2148: Missing translations: Chat message translation and pinning features in English.

The new chat functionality strings are in English and need Turkish translations:

  • "no-message": "No message content." → Should be translated to Turkish
  • "translate": "Translate""translate": "Çevir" (note: line 473 also has this in English)
  • "translate-target-language": "Target language" → Should be translated to Turkish
  • "pinned-messages": "Pinned messages" → Should be translated to Turkish
  • "pin-message": "Pin message" → Should be translated to Turkish
  • "unpin-message": "Unpin message" → Should be translated to Turkish

These are user-facing strings for the message translation and pinning features and should be properly localized.

apps/web/src/features/i18n/locales/tr-TR.json-1409-1409 (1)

1409-1409: Partial translation: "Wallet" should be in Turkish.

While the cryptocurrency symbols (BTC, ETH, SOL, BNB, TRX, TON, APT) are correctly left as-is, the word "Wallet" should be translated to Turkish. Based on existing translations in the file (e.g., line 228: "wallet": "Cüzdan"), this should be:

"external-wallets-label": "Cüzdan (BTC, ETH, SOL, BNB, TRX, TON, APT)"

apps/web/src/features/i18n/locales/tr-TR.json-1540-1542 (1)

1540-1542: Missing translations: HiveAuth key validation error messages in English.

The new HiveAuth integration strings are in English and should be translated to Turkish:

  • "with-hiveauth": "Sign with HiveAuth""with-hiveauth": "HiveAuth ile imzala"
  • "invalid-key": "Invalid key format. Please check for invalid characters." → Should be translated to Turkish
  • "key-error": "Failed to process the key. Please verify it is correct." → Should be translated to Turkish

These are error messages that users will see, so proper localization is important for user experience.

apps/web/src/features/i18n/locales/tr-TR.json-1818-1818 (1)

1818-1818: Potential localization regression: Turkish text replaced with English.

According to the AI-generated summary, this line "Replaced a Turkish spin string in notifications with an English version." This appears to be a regression, as the notification message "Time to earn more Points, Play Spin!" is now in English instead of Turkish.

This notification message should be translated to Turkish for the tr-TR locale to maintain proper localization and user experience.

apps/web/src/features/i18n/locales/bg-BG.json-1409-1409 (1)

1409-1409: Translate external wallet label to Bulgarian.

The external-wallets-label key contains English text in a Bulgarian locale file. Consider translating "Wallet" to Bulgarian (e.g., "Портфейл").

apps/web/src/features/i18n/locales/bg-BG.json-2143-2148 (1)

2143-2148: Translate chat-related strings to Bulgarian.

The new chat functionality keys (no-message, translate, translate-target-language, pinned-messages, pin-message, unpin-message) contain English text. These UI strings should be translated to Bulgarian to provide a consistent chat experience for Bulgarian-speaking users.

apps/web/src/features/i18n/locales/bg-BG.json-1540-1542 (1)

1540-1542: Translate HiveAuth-related strings to Bulgarian.

The HiveAuth authentication and error handling keys contain English text. Since these appear during critical authentication flows, they should be translated to Bulgarian for consistency and better user experience.

apps/web/src/features/i18n/locales/bg-BG.json-1818-1818 (1)

1818-1818: Restore Bulgarian translation for spin notification.

The spin-str notification message was changed from Bulgarian to English: "Time to earn more Points, Play Spin!" This appears to be a regression since this key was previously translated. Bulgarian users will now see an English notification.

apps/web/src/features/i18n/locales/bg-BG.json-450-452 (1)

450-452: Complete Bulgarian translations for tip-related keys.

The new tip-related keys (send-tip, count, count_plural) contain English text instead of Bulgarian translations. This creates an inconsistent experience for Bulgarian-speaking users who will see mixed language content.

apps/web/src/features/i18n/locales/ac-ace.json-50-50 (1)

50-50: New keys require Acehnese translation.

The newly added localization keys are currently in English, which creates an inconsistent user experience for Acehnese locale users. This includes:

  • Line 50: g.promoted
  • Lines 449-452: entry-tip section (send-tip, count, count_plural)
  • Line 1409: transfer.external-wallets-label
  • Lines 1540-1542: with-hiveauth section (with-hiveauth, invalid-key, key-error)
  • Line 1818: notifications.spin-str
  • Lines 2143-2148: chat section (no-message, translate, translate-target-language, pinned-messages, pin-message, unpin-message)

While the application will function correctly using English fallbacks, users who selected the Acehnese locale will see mixed languages. These keys should be queued for translation through your Crowdin workflow.

apps/web/src/features/i18n/locales/ru-RU.json-449-452 (1)

449-452: Complete Russian translations for tipping functionality.

The entry-tip section has inconsistent translations:

  • Line 450: "Подсказка" means "hint/clue" rather than "tip" (as in gratuity). Consider "Чаевые" or "Вознаграждение"
  • Lines 451-452: The count strings remain in English and should be translated to Russian with proper pluralization rules
🔎 Suggested improvements
     "title": "Чаевые",
-    "send-tip": "Подсказка",
-    "count": "{{count}} tip",
-    "count_plural": "{{count}} tips"
+    "send-tip": "Отправить чаевые",
+    "count": "{{count}} чаевые",
+    "count_plural": "{{count}} чаевых"

Note: Russian has complex pluralization rules. Verify with i18n library's pluralization support.

apps/web/src/features/i18n/locales/ja-JP.json-1818-1818 (1)

1818-1818: Fix unclear notification message translation.

The translation "時間を稼ぐより多くのポイントを獲得します。回りましょう!" is grammatically awkward and unclear. The phrase "時間を稼ぐより" (than buying time) doesn't convey the intended meaning effectively.

Based on context from similar notification strings in other locales, this should encourage users to spin and earn points.

🔎 Proposed fix for clearer messaging
-    "spin-str": "時間を稼ぐより多くのポイントを獲得します。回りましょう!",
+    "spin-str": "もっとポイントを獲得するチャンス!今すぐスピンしましょう!",

Alternative suggestion:

-    "spin-str": "時間を稼ぐより多くのポイントを獲得します。回りましょう!",
+    "spin-str": "時間を使ってポイントを稼ぎましょう。スピンして報酬をゲット!",
apps/web/src/features/i18n/locales/hi-IN.json-1818-1818 (1)

1818-1818: Notification string reverted from Hindi to English.

The spin-str notification was changed from Hindi to English: "Time to earn more Points, Play Spin!". This breaks the localization consistency. If this change is intentional, please verify; otherwise, it should remain in Hindi.

apps/web/src/features/i18n/locales/hi-IN.json-1541-1542 (1)

1541-1542: HiveAuth error messages not translated to Hindi.

The new HiveAuth validation keys (invalid-key, key-error) are in English. These error messages should be translated to Hindi so users see localized error feedback.

apps/web/src/features/i18n/locales/hi-IN.json-50-50 (1)

50-50: Incomplete Hindi translation for promoted key.

The g.promoted key contains the English word "promoted" instead of a Hindi translation. For consistency with the rest of the Hindi localization file, this should be translated to Hindi (e.g., "प्रचारित").

apps/web/src/features/i18n/locales/hi-IN.json-2143-2148 (1)

2143-2148: Chat feature strings missing Hindi translations.

Multiple new chat-related keys are in English instead of Hindi:

  • no-message
  • translate
  • translate-target-language
  • pinned-messages
  • pin-message
  • unpin-message

These should be translated to maintain a consistent Hindi user experience in the chat interface.

apps/web/src/features/i18n/locales/hi-IN.json-449-452 (1)

449-452: Missing Hindi translations for tip-related keys.

The new tip-related keys (send-tip, count, count_plural) contain English text instead of Hindi translations. Hindi-speaking users will see English text in these UI elements.

Consider translating these to Hindi for consistency:

  • send-tip: "टिप भेजें"
  • count: "{{count}} टिप"
  • count_plural: "{{count}} टिप्स"
apps/web/src/features/i18n/locales/id-ID.json-50-50 (1)

50-50: Translation inconsistency: "promoted" should be "Dipromosikan"

The value is in English, but this file already has the Indonesian translation "Dipromosikan" for "promoted" at lines 141 (filter-promoted) and 415 (entry-list-item.promoted). For consistency, this should use the same Indonesian translation.

Suggested fix
-    "promoted": "promoted",
+    "promoted": "Dipromosikan",
apps/web/src/features/i18n/locales/de-DE.json-448-453 (1)

448-453: Mixed language in translation strings.

The count key on line 451 contains the English word "tip" ({{count}} tip), while count_plural on line 452 uses the German word "Tipps". For consistency and proper internationalization, both should use the same language.

🔎 Suggested fix for consistency
     "title": "Hinweis",
     "send-tip": "Tipp senden",
-    "count": "{{count}} tip",
+    "count": "{{count}} Tipp",
     "count_plural": "{{count}} Tipps"
apps/web/src/features/i18n/locales/zh-CN.json-2146-2148 (1)

2146-2148: Inconsistent character usage: Traditional Chinese character in Simplified Chinese file.

Line 2146 uses the traditional character "頂" while lines 2147-2148 correctly use the simplified "顶". The zh-CN locale should use simplified characters consistently.

-    "pinned-messages": "置頂消息",
+    "pinned-messages": "置顶消息",
apps/web/src/features/i18n/locales/zh-CN.json-451-452 (1)

451-452: Untranslated strings in Chinese locale file.

The count and count_plural values remain in English ("tip"/"tips") instead of being translated to Chinese. Consider translating to "{{count}} 个小费" or similar.

-    "count": "{{count}} tip",
-    "count_plural": "{{count}} tips"
+    "count": "{{count}} 个小费",
+    "count_plural": "{{count}} 个小费"
apps/web/src/features/i18n/locales/es-ES.json-449-449 (1)

449-449: Translation inconsistency in entry-tip title.

The title key uses "Sugerencia" (suggestion), but the context is about tipping functionality. This is inconsistent with send-tip which correctly uses "propina" (tip).

🔎 Suggested translation fix
-    "title": "Sugerencia",
+    "title": "Propina",
🧹 Nitpick comments (15)
apps/web/src/features/i18n/locales/it-IT.json (2)

449-453: Inconsistent terminology for "tip" feature.

The entry-tip block uses inconsistent Italian terms:

  • Line 449: "omaggio" (gift)
  • Line 451: "suggerimento" (suggestion)
  • Line 452: "tip" (untranslated)

In the context of tipping/gratuities, "mancia" is the standard Italian term. Consider using consistent terminology throughout this block.

🔎 Suggested consistency improvements
 "entry-tip": {
-    "title": "Invia omaggio",
-    "send-tip": "Invia un suggerimento",
+    "title": "Invia mancia",
+    "send-tip": "Invia una mancia",
     "count": "{{count}} tip",
     "count_plural": "{{count}} suggerimenti"
+    "count": "{{count}} mancia",
+    "count_plural": "{{count}} mance"
 },

2147-2148: Awkward translations for pin/unpin message actions.

The current translations are unclear:

  • "Messaggio di pin" is grammatically awkward
  • "Sblocca messaggio" typically means "unlock" rather than "unpin"
🔎 Clearer translation suggestions
-    "pin-message": "Messaggio di pin",
-    "unpin-message": "Sblocca messaggio"
+    "pin-message": "Fissa messaggio",
+    "unpin-message": "Rimuovi messaggio fissato"
apps/web/src/features/i18n/locales/lt-LT.json (1)

50-50: Complete Lithuanian translations for new keys.

Several newly added localization keys remain in English rather than Lithuanian. While this is common in Crowdin update workflows, these should be translated to provide a consistent Lithuanian user experience:

  • Line 50: "promoted": "promoted" - Should be translated (e.g., "reklamuojama" based on line 141)
  • Lines 450-452: entry-tip keys (send-tip, count, count_plural) remain in English
  • Line 1409: external-wallets-label remains in English
  • Lines 1540-1542: HiveAuth keys (with-hiveauth, invalid-key, key-error) remain in English
  • Line 1818: spin-str updated to English text
  • Lines 2143-2148: Chat translation keys (no-message, translate, translate-target-language, pinned-messages, pin-message, unpin-message) remain in English

The JSON structure is valid and placeholders are used correctly. Consider coordinating with Lithuanian translators to complete these translations for the next Crowdin sync.

Also applies to: 450-452, 1409-1409, 1540-1542, 1818-1818, 2143-2148

apps/web/src/features/i18n/locales/nl-NL.json (1)

50-50: Optional: Consider native speaker review for translation quality.

All the localization changes are properly structured and follow correct i18n patterns. While the Dutch translations appear appropriate, having a native Dutch speaker review them for naturalness and accuracy would be beneficial for ensuring the best user experience.

Also applies to: 449-452, 1409-1409, 1540-1542, 1818-1818, 2143-2148

apps/web/src/features/i18n/locales/yo-NG.json (4)

50-50: Consider providing a Yoruba translation.

The value "promoted" appears to be untranslated English. Other keys in the g section have Yoruba translations. For consistency and better localization, consider translating this term to Yoruba.


1540-1542: Consider translating HiveAuth messages to Yoruba.

The three new HiveAuth-related keys (with-hiveauth, invalid-key, key-error) contain English text. For consistency with the rest of the localization file, consider providing Yoruba translations for these technical messages.


2143-2148: Consider translating chat feature labels to Yoruba.

The six new chat-related keys contain English text. For a complete localization experience, consider translating these UI labels (no-message, translate, translate-target-language, pinned-messages, pin-message, unpin-message) to Yoruba.


1818-1818: Consider translating the gamification message.

The spin-str notification contains English marketing copy. For better user experience with Yoruba-speaking users, consider translating this gamification message to Yoruba.

apps/web/src/features/i18n/locales/uk-UA.json (2)

449-452: Consider translating the count strings to Ukrainian

The count and count_plural values still contain English text ("tip" and "tips"). For consistency with the rest of the Ukrainian localization, consider translating these:

  • "count": "{{count}} чайові" (or appropriate Ukrainian plural form)
  • "count_plural": "{{count}} чайових"

Ukrainian has complex pluralization rules, so you may need to verify the correct forms.

Do you want assistance with proper Ukrainian pluralization forms for this context?


1541-1541: Consider improving the error message wording

The phrase "перевірте неправильні символи" (check incorrect characters) in the invalid-key error message feels somewhat redundant. Consider a more natural Ukrainian phrasing:

🔎 Suggested improvement
-    "invalid-key": "Невірний формат ключа. Будь ласка, перевірте неправильні символи.",
+    "invalid-key": "Невірний формат ключа. Будь ласка, перевірте введені дані.",

This changes "check incorrect characters" to "check entered data" which sounds more natural in Ukrainian.

apps/web/src/features/i18n/locales/pt-PT.json (1)

1818-1818: Consider improving phrasing for better natural flow.

The translation "Jogue Gira!" is understandable but sounds slightly awkward in Portuguese. Consider one of these more natural alternatives:

  • "Jogue o Gira!" (adds the article)
  • "Gire agora!" (spin now)
  • "Hora de ganhar mais Pontos, gire a roda!" (spin the wheel)
apps/web/src/features/i18n/locales/ja-JP.json (2)

50-50: Consider using noun form for UI label consistency.

The translation "昇格しました" (past tense "was promoted") may be less suitable for a UI label. Consider using "プロモート済み" or "プロモーション" to match the pattern of other labels in this file and provide a more natural UI experience.

🔎 Suggested alternative translation
-    "promoted": "昇格しました",
+    "promoted": "プロモート済み",

1540-1542: Consider improving error message clarity.

The translations are functionally correct, but line 1542's error message could be more specific. "正しいことを確認してください" (confirm it is correct) is somewhat vague compared to explicitly mentioning the key.

🔎 Suggested improvement for clarity
   "with-hiveauth": "HiveAuthでサインイン",
   "invalid-key": "無効なキーフォーマットです。無効な文字を確認してください。",
-  "key-error": "キーの処理に失敗しました。正しいことを確認してください。"
+  "key-error": "キーの処理に失敗しました。正しいキーを入力しているか確認してください。"
apps/web/src/features/i18n/locales/de-DE.json (1)

1818-1818: Consider more natural German phrasing.

The current translation "Zeit mehr Punkte zu sammeln, Spin spielen!" is understandable but could flow more naturally in German. A small grammatical adjustment would improve readability.

💡 Optional improvement
-    "spin-str": "Zeit mehr Punkte zu sammeln, Spin spielen!",
+    "spin-str": "Zeit, mehr Punkte zu sammeln - spiele Spin!",

Alternative options:

  • "Sammle mehr Punkte, spiele Spin!"
  • "Mehr Punkte sammeln? Spiele Spin!"
apps/web/src/features/i18n/locales/zh-CN.json (1)

2818-2818: Consider revising translation for spin wheel feature.

"螺旋" (spiral) may not convey the intended meaning for a spin-to-earn feature. A more common term for spin wheels in Chinese would be "转盘" (spinning wheel) or similar.

-    "spin-str": "赚取更多点数的时间, 玩螺旋!",
+    "spin-str": "赚取更多积分的时间到了,转转盘吧!",
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7a0f3ab and 854ffda.

📒 Files selected for processing (23)
  • apps/web/src/features/i18n/locales/ac-ace.json
  • apps/web/src/features/i18n/locales/bg-BG.json
  • apps/web/src/features/i18n/locales/de-DE.json
  • apps/web/src/features/i18n/locales/es-ES.json
  • apps/web/src/features/i18n/locales/fr-FR.json
  • apps/web/src/features/i18n/locales/hi-IN.json
  • apps/web/src/features/i18n/locales/id-ID.json
  • apps/web/src/features/i18n/locales/it-IT.json
  • apps/web/src/features/i18n/locales/ja-JP.json
  • apps/web/src/features/i18n/locales/lt-LT.json
  • apps/web/src/features/i18n/locales/nl-NL.json
  • apps/web/src/features/i18n/locales/pcm-NG.json
  • apps/web/src/features/i18n/locales/pl-PL.json
  • apps/web/src/features/i18n/locales/pt-PT.json
  • apps/web/src/features/i18n/locales/ru-RU.json
  • apps/web/src/features/i18n/locales/sr-CS.json
  • apps/web/src/features/i18n/locales/th-TH.json
  • apps/web/src/features/i18n/locales/tr-TR.json
  • apps/web/src/features/i18n/locales/uk-UA.json
  • apps/web/src/features/i18n/locales/ur-PK.json
  • apps/web/src/features/i18n/locales/uz-UZ.json
  • apps/web/src/features/i18n/locales/yo-NG.json
  • apps/web/src/features/i18n/locales/zh-CN.json
🔇 Additional comments (62)
apps/web/src/features/i18n/locales/fr-FR.json (5)

50-50: LGTM: Correct translation for promoted content.

The French translation "promu" accurately represents "promoted" in this context.


1409-1409: LGTM: Proper translation for external wallet support.

The translation correctly uses "Portefeuille" (Wallet) with standard cryptocurrency token symbols.


1540-1542: LGTM: Clear and accurate HiveAuth validation messages.

The French translations provide clear, user-friendly error messages for key validation scenarios.


2143-2148: LGTM: Accurate chat feature translations.

All translations for message translation and pinning features are correct and follow French localization standards.


2818-2818: LGTM: Proper notification message translation.

The tournament notification message is correctly translated and maintains appropriate enthusiasm for the feature.

apps/web/src/features/i18n/locales/pl-PL.json (5)

50-50: LGTM - Promoted content key added

The new "promoted" key is correctly placed in the global section with appropriate Polish translation.


1409-1409: LGTM - External wallet label added

The external wallet label is appropriately translated with international cryptocurrency symbols.


1540-1542: LGTM - HiveAuth validation keys added

The HiveAuth integration keys are properly translated with clear error messages in Polish.


1818-1818: LGTM - Notification message updated

The Spina promotion notification is appropriately translated and contextually relevant.


2143-2148: LGTM - Chat messaging features added

The translation and message pinning keys are well-integrated with consistent terminology matching existing pin/unpin patterns in the file.

apps/web/src/features/i18n/locales/nl-NL.json (6)

50-50: LGTM! New "promoted" translation added.

The new global translation key for promoted content is properly formatted and consistent with the existing localization structure.


449-452: LGTM! Tipping functionality translations added.

The new tipping feature translations are properly implemented with:

  • Correct pluralization pattern using count and count_plural
  • Proper placeholder preservation ({{count}})
  • Appropriate Dutch translations for the tipping context

1409-1409: LGTM! External wallets label added correctly.

The external wallets label properly translates "Wallet" to Dutch ("Portemonnee") while correctly preserving the cryptocurrency symbols in their original form.


1540-1542: LGTM! HiveAuth authentication keys added.

The new HiveAuth authentication translations include:

  • Clear sign-in method label
  • User-friendly error messages for key validation
  • Consistent formatting with existing authentication keys

2143-2148: LGTM! Chat feature translations added.

The new chat-related translations properly support:

  • Message translation functionality with target language selection
  • Pinned messages feature with pin/unpin actions
  • Empty state messaging
  • All translations are contextually appropriate and consistent

1818-1818: LGTM! Notification message updated to be more concise.

The spin notification message has been shortened to a more direct call-to-action while maintaining its intent to encourage users to play Spin and earn points.

apps/web/src/features/i18n/locales/ru-RU.json (3)

2143-2148: LGTM! Well-translated chat features.

The Russian translations for message translation and pinning features are accurate and consistent with similar functionality elsewhere in the application (e.g., entry-menu section).


1540-1542: LGTM! Clear error messages for HiveAuth.

The HiveAuth validation messages are well-translated with clear, user-friendly error descriptions.


50-50: LGTM! New feature translations are appropriate.

The translations for promoted content, external wallet support, and spin notifications are accurate and well-suited for Russian users.

Also applies to: 1409-1409, 1818-1818

apps/web/src/features/i18n/locales/ur-PK.json (6)

50-50: Approved: New localization key added.

The promoted key has been added correctly to the general translations section.

Note: This key (and others in this file) currently contains an English placeholder value. For a better user experience with Urdu-speaking users, ensure proper Urdu translations are provided through Crowdin.


449-452: LGTM: Tipping feature translations added correctly.

The entry-tip section has been properly structured with singular and plural forms for tip counts. The i18next pluralization pattern (count and count_plural) is correctly implemented.

Reminder: These English placeholders should be translated to Urdu through Crowdin for proper localization.


1409-1409: Approved: External wallets label added.

The label for external wallet support has been added correctly. The cryptocurrency abbreviations (BTC, ETH, SOL, etc.) are universal and typically remain unchanged across locales.

Suggestion: Consider translating the word "Wallet" to Urdu while keeping the cryptocurrency symbols for better localization.


1540-1542: Approved: HiveAuth validation messages added.

The HiveAuth key validation messages have been added correctly. These provide important user feedback during authentication.

Important: Error messages are critical for user experience. Prioritize translating these to Urdu so users can understand validation errors in their native language.


1818-1818: LGTM: Spin feature notification added.

The notification message for the Spin feature has been added correctly.

Note: Since this is promotional/engagement content, translating it to Urdu will help increase user participation in the Points earning feature.


2143-2148: Approved: Chat translation and pinning features added.

The chat functionality keys for message translation and pinning have been added correctly. The feature set is complete with both pin and unpin actions.

Priority: These interactive chat features should be translated to Urdu as they're frequently used in real-time communication. Clear labels in the user's native language improve the chat experience significantly.

apps/web/src/features/i18n/locales/th-TH.json (7)

50-50: Verify translation completeness for promoted content.

The new promoted key has an English value in a Thai language file. Since existing keys in this file use Thai translations (e.g., line 175: "chats": "แชท"), this appears to be an untranslated placeholder.

If this is part of Crowdin's workflow where keys are synced before translation, please confirm:

  1. Is shipping with English fallback values acceptable for production?
  2. Are Thai translations pending from the community translation team?

449-452: Verify translation completeness for tipping feature.

The new entry-tip section contains four keys with English values in a Thai language file:

  • title: "Tip"
  • send-tip: "Send a tip"
  • count: "{{count}} tip"
  • count_plural: "{{count}} tips"

The interpolation syntax ({{count}}) is correct, but the text should be translated to Thai.

Please confirm whether these English placeholders are temporary and Thai translations are pending from the Crowdin community.


1409-1409: Verify translation for external wallet label.

The external-wallets-label has an English value "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)" in a Thai language file. While cryptocurrency ticker symbols are typically kept as-is, the "Wallet" label should be translated to Thai.

Please confirm whether:

  1. The "Wallet" portion should be translated to Thai
  2. This is a temporary placeholder pending Crowdin translation

1540-1542: Verify translation completeness for HiveAuth error messages.

Three new HiveAuth authentication keys have English values in a Thai language file:

  • 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."

These are user-facing error messages that should be translated to Thai for proper error handling and user experience.

Please confirm Thai translations are pending for these authentication error messages, as localized error feedback is important for user experience.


2143-2148: Verify translation completeness for chat features.

Six new chat-related keys have English values in a Thai language file:

  • no-message: "No message content."
  • translate: "Translate"
  • translate-target-language: "Target language"
  • pinned-messages: "Pinned messages"
  • pin-message: "Pin message"
  • unpin-message: "Unpin message"

Notably, the translation feature itself has untranslated labels. These user-facing strings should be in Thai for consistent chat UX.

Please confirm these are temporary placeholders and Thai translations are pending from the Crowdin translation team.


1818-1818: Verify translation for spin notification message.

The new spin-str notification key has an English value "Time to earn more Points, Play Spin!" in a Thai language file. This is a user-facing notification that should be translated to Thai for proper localization.

Please confirm this is a temporary placeholder and Thai translation is pending from the Crowdin community translation team.


1-3086: JSON structure and syntax are correct.

The localization file has valid JSON syntax with proper structure:

  • All keys follow existing naming conventions
  • Interpolation syntax is correct ({{count}}, {{token}}, etc.)
  • Nested structures are properly formatted
  • No trailing commas or syntax errors

However, all new keys added in this update contain English values rather than Thai translations. Since the PR title indicates "New Crowdin updates" and existing keys show Thai translations (e.g., line 175), this appears to be part of Crowdin's workflow where keys are synced across locales first, with community translations following later.

Please confirm:

  1. This is expected Crowdin sync behavior (keys added, translations pending)
  2. Fallback to English is acceptable for production deployment
  3. Thai translations will be submitted by the community translation team in a future update
apps/web/src/features/i18n/locales/yo-NG.json (3)

449-453: LGTM! Proper pluralization implementation.

The entry-tip keys are correctly structured with appropriate placeholder usage for count-based pluralization. The format follows i18next conventions properly.


1409-1409: LGTM! External wallets label added correctly.

The external-wallets-label appropriately lists supported cryptocurrency types. The format is correct and cryptocurrency symbols are internationally recognized.


50-50: Verify translations with native Yoruba speakers.

This localization update adds several new keys, some of which appear to use English text as placeholders. To ensure quality localization for Yoruba-speaking users, consider having these strings reviewed by native speakers for:

  • Accuracy of terminology (especially technical terms like "HiveAuth", "promoted", "pin message")
  • Cultural appropriateness of phrases
  • Consistency with existing Yoruba translations in the file

The JSON structure and formatting are correct throughout.

Also applies to: 449-453, 1409-1409, 1540-1542, 1818-1818, 2143-2148

apps/web/src/features/i18n/locales/uk-UA.json (2)

50-50: Translation looks appropriate

The translation "підвищено" (promoted/elevated) is suitable for the promoted content context.


2143-2148: LGTM! Chat translation and pinning features properly translated

The translations for chat translation and message pinning features are accurate and consistent with Ukrainian language conventions:

  • Translation feature labels are clear
  • Pinning action labels follow standard Ukrainian terminology
  • Terminology is consistent with the rest of the localization file
apps/web/src/features/i18n/locales/pt-PT.json (4)

50-50: LGTM! Translation is accurate.

The Portuguese translation "promovido" for "promoted" is correct and consistent with the language conventions used throughout the file.


1409-1409: LGTM! External wallet label translation is appropriate.

The translation correctly uses "Carteira" (Wallet) with the international cryptocurrency symbols, which is the standard approach for multi-currency wallet labels.


1540-1542: LGTM! HiveAuth translations are accurate.

The translations for HiveAuth integration are correct:

  • Login option properly translated
  • Error messages are clear, user-friendly, and grammatically correct in Portuguese

2143-2148: LGTM! Chat feature translations are accurate.

All new chat-related translations are correct:

  • Empty state message is clear
  • Translation functionality labels are appropriate
  • Pin/unpin terminology is consistent with standard Portuguese UI conventions
apps/web/src/features/i18n/locales/pcm-NG.json (6)

50-50: LGTM - Global promoted key added correctly.

The addition of the "promoted" key to the global section follows the correct JSON structure and is properly placed among other feed-related global strings.


448-453: LGTM - Tipping functionality keys properly structured.

The entry-tip section has been expanded with proper internationalization support including singular/plural forms using the standard count and count_plural pattern.


1409-1409: LGTM - External wallets label added.

The external-wallets-label clearly communicates supported wallet types and is appropriately placed in the transfer section for wallet-related operations.


2143-2148: LGTM - Chat translation and pinning features added.

The chat section has been expanded with translation functionality and message pinning capabilities. Note that these keys are in the "chat" section (not "entry-chat" as mentioned in the AI summary, which is a minor documentation inconsistency but doesn't affect the code).


1540-1542: LGTM - HiveAuth authentication support added.

The key-or-hot section has been enhanced with HiveAuth authentication option and helpful error messages for key validation failures. The error messages are clear and guide users toward resolution.


1818-1818: LGTM - Spin notification message updated.

The notification message for the Spin feature has been updated to be more concise and engaging, encouraging users to participate in earning Points.

apps/web/src/features/i18n/locales/id-ID.json (5)

449-452: LGTM - New entry-tip translation keys

The new keys for tipping functionality are correctly structured with proper interpolation syntax ({{count}}). English values are expected as placeholders in a Crowdin translation workflow.


1409-1409: LGTM - External wallets label

Technical labels with cryptocurrency symbols (BTC, ETH, etc.) appropriately remain as universal identifiers.


1540-1542: LGTM - HiveAuth and key validation messages

The HiveAuth brand name is appropriately preserved. The new error keys provide granular messaging for key validation issues, improving the user experience.


2143-2148: LGTM - Chat translation and pinning features

New keys for chat message translation and pinning functionality are correctly structured. These support the new features mentioned in the PR summary.


2818-2818: LGTM - Updated spin notification message

The updated notification message clearly communicates the spin feature benefit to users.

apps/web/src/features/i18n/locales/de-DE.json (4)

50-50: LGTM!

The translation for "promoted" as "beworben" is accurate and properly formatted.


1409-1409: LGTM!

The external wallets label correctly maintains cryptocurrency ticker symbols in their standard format.


1540-1542: LGTM!

The HiveAuth error message translations are clear, grammatically correct, and provide helpful guidance to users.


2143-2148: LGTM!

The chat-related translations are accurate, consistent, and properly formatted. All new keys for message translation and pinning functionality are correctly implemented.

apps/web/src/features/i18n/locales/zh-CN.json (5)

50-50: LGTM!

The new "promoted" key has been added with the translation "已升级".


449-450: LGTM!

The title and send-tip entries are properly translated.


1409-1409: LGTM!

The external wallets label appropriately keeps cryptocurrency abbreviations (BTC, ETH, etc.) in their standard form.


1540-1542: LGTM!

The HiveAuth-related keys are properly translated with clear and accurate Chinese text.


2143-2145: LGTM!

The chat-related translation and message keys are properly translated.

apps/web/src/features/i18n/locales/es-ES.json (1)

50-50: LGTM! Translations are accurate and well-structured.

The remaining Spanish translations are correct:

  • Promoted content, external wallet labels, and HiveAuth error messages use proper terminology
  • Progressive action states ("Marcando…", "Uniéndose…") follow Spanish conventions
  • Chat translation and pinning features have accurate translations
  • Pluralization with {{suffix}} placeholder is properly implemented
  • Notification strings are contextually appropriate

The JSON structure is valid and placeholder usage is consistent.

Also applies to: 1409-1409, 1541-1542, 2117-2117, 2132-2132, 2143-2148, 1788-1788, 1818-1818

Comment on lines +449 to 453
"title": "Tip",
"send-tip": "ヒントを送信",
"count": "{{count}} tip",
"count_plural": "{{count}} のヒント"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix incorrect translation and untranslated text in tipping feature.

The entry-tip section has critical translation issues:

  1. "ヒント" (hint/clue) is used instead of "チップ" or "投げ銭" (monetary tip)
  2. Lines 449 and 451 contain untranslated English text

This misrepresents the tipping feature as a "hint" system rather than a monetary gratuity feature, which could confuse Japanese users.

🔎 Proposed fix for proper tipping terminology
   "entry-tip": {
-    "title": "Tip",
-    "send-tip": "ヒントを送信",
-    "count": "{{count}} tip",
-    "count_plural": "{{count}} のヒント"
+    "title": "チップ",
+    "send-tip": "チップを送る",
+    "count": "{{count}} チップ",
+    "count_plural": "{{count}} チップ"
   },
📝 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
"title": "Tip",
"send-tip": "ヒントを送信",
"count": "{{count}} tip",
"count_plural": "{{count}} のヒント"
},
"title": "チップ",
"send-tip": "チップを送る",
"count": "{{count}} チップ",
"count_plural": "{{count}} チップ"
},
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/ja-JP.json around lines 449 to 453, the
tipping section incorrectly uses "ヒント" (hint) and contains untranslated English;
replace "ヒント" with a proper monetary tipping term such as "チップ" or "投げ銭",
translate "send-tip" to the chosen term (e.g., "チップを送る" or "投げ銭を送る"), and update
"count" and "count_plural" to correct Japanese pluralized forms (e.g.,
"{{count}} チップ" and "{{count}} のチップ" or appropriate phrasing for "投げ銭"). Ensure
consistency across keys and preserve the interpolation token {{count}} exactly.

Comment on lines +2143 to +2148
"no-message": "メッセージの内容がありません。",
"translate": "翻訳する",
"translate-target-language": "翻訳先の言語",
"pinned-messages": "僅用於中文",
"pin-message": "メッセージをピン留めする",
"unpin-message": "メッセージのピン留めを解除"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix Chinese text in Japanese locale file.

Line 2146 contains Chinese text "僅用於中文" (meaning "for Chinese use only") instead of Japanese translation. This is a critical localization error that must be corrected.

🔎 Proposed fix with proper Japanese translation
     "no-message": "メッセージの内容がありません。",
     "translate": "翻訳する",
     "translate-target-language": "翻訳先の言語",
-    "pinned-messages": "僅用於中文",
+    "pinned-messages": "ピン留めされたメッセージ",
     "pin-message": "メッセージをピン留めする",
     "unpin-message": "メッセージのピン留めを解除"
📝 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
"no-message": "メッセージの内容がありません。",
"translate": "翻訳する",
"translate-target-language": "翻訳先の言語",
"pinned-messages": "僅用於中文",
"pin-message": "メッセージをピン留めする",
"unpin-message": "メッセージのピン留めを解除"
"no-message": "メッセージの内容がありません。",
"translate": "翻訳する",
"translate-target-language": "翻訳先の言語",
"pinned-messages": "ピン留めされたメッセージ",
"pin-message": "メッセージをピン留めする",
"unpin-message": "メッセージのピン留めを解除"
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/ja-JP.json around lines 2143–2148, the
value for "pinned-messages" contains Chinese text "僅用於中文"; replace it with the
correct Japanese translation (e.g., "中国語専用" or "中国語のみで使用") and ensure the JSON
string value is properly quoted and the surrounding commas remain valid so the
file stays valid JSON.

Comment on lines +449 to 453
"title": "Dica",
"send-tip": "Enviar uma dica",
"count": "{{count}} tip",
"count_plural": "Dicas de {{count}}"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix incomplete translation and improve word order.

Two translation issues found in the entry-tip section:

  1. Line 452: Contains untranslated English text "tip". This should be translated to Portuguese.
  2. Line 453: The word order "Dicas de {{count}}" is unnatural in Portuguese. It should follow the same pattern as the singular form.
🔎 Proposed fix for the translation
 "entry-tip": {
   "title": "Dica",
   "send-tip": "Enviar uma dica",
-  "count": "{{count}} tip",
-  "count_plural": "Dicas de {{count}}"
+  "count": "{{count}} dica",
+  "count_plural": "{{count}} dicas"
 }
📝 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
"title": "Dica",
"send-tip": "Enviar uma dica",
"count": "{{count}} tip",
"count_plural": "Dicas de {{count}}"
},
"title": "Dica",
"send-tip": "Enviar uma dica",
"count": "{{count}} dica",
"count_plural": "{{count}} dicas"
},
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/pt-PT.json around lines 449 to 453, the
translation keys under entry-tip have an untranslated English word ("tip") and
an unnatural plural word order; replace the singular "{{count}} tip" with a
Portuguese translation using the same pattern (e.g., "{{count}} dica") and
change the plural "Dicas de {{count}}" to a natural Portuguese order (e.g.,
"{{count}} dicas") so singular and plural follow consistent "{{count}} <word>"
formatting.

"hot": "feed",
"trending": "feed",
"created": "feed",
"promoted": "promoted",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Translate "promoted" to Serbian.

This is a Serbian locale file, but the value is in English. Serbian-speaking users will see English text instead of their language.

Expected Serbian translation, for example: "promovisano" (based on line 141 where "filter-promoted" uses "Promovisano").

🔎 Suggested fix
-    "promoted": "promoted",
+    "promoted": "promovisano",
📝 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
"promoted": "promoted",
"promoted": "promovisano",
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/sr-CS.json around line 50, the value for
the "promoted" key is in English ("promoted"); replace it with the Serbian
translation (e.g., "promovisano") so the locale file is fully translated and
consistent with the "filter-promoted" entry at line 141.

Comment on lines +449 to +452
"title": "Tip",
"send-tip": "Send a tip",
"count": "{{count}} tip",
"count_plural": "{{count}} tips"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Translate tip-related strings to Serbian.

All four strings in the entry-tip section are in English but should be in Serbian for this locale file.

🔎 Suggested translations
-    "title": "Tip",
-    "send-tip": "Send a tip",
-    "count": "{{count}} tip",
-    "count_plural": "{{count}} tips"
+    "title": "Napojnica",
+    "send-tip": "Pošalji napojnicu",
+    "count": "{{count}} napojnica",
+    "count_plural": "{{count}} napojnice"
📝 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
"title": "Tip",
"send-tip": "Send a tip",
"count": "{{count}} tip",
"count_plural": "{{count}} tips"
"title": "Napojnica",
"send-tip": "Pošalji napojnicu",
"count": "{{count}} napojnica",
"count_plural": "{{count}} napojnice"
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/sr-CS.json around lines 449–452, the four
strings in the entry-tip section are still in English; replace them with Serbian
translations. Update "title" to "Напојница", "send-tip" to "Пошаљи напојницу"
(or "Пошаљите напојницу" if you prefer formal), "count" to "{{count}} напојница"
(singular form) and "count_plural" to "{{count}} напојнице" (plural form) so the
UI displays the tip-related text in Serbian.

Comment on lines +1540 to +1542
"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."
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Translate HiveAuth strings to Serbian.

Three HiveAuth authentication strings are in English but should be in Serbian for consistency with the rest of the file.

🔎 Suggested 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."
+    "with-hiveauth": "Prijavite se sa HiveAuth",
+    "invalid-key": "Nevažeći format ključa. Molimo proverite da li postoje nevažeći znakovi.",
+    "key-error": "Obrada ključa nije uspela. Molimo proverite da li je ispravan."
📝 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
"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": "Prijavite se sa HiveAuth",
"invalid-key": "Nevažeći format ključa. Molimo proverite da li postoje nevažeći znakovi.",
"key-error": "Obrada ključa nije uspela. Molimo proverite da li je ispravan."
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/sr-CS.json around lines 1540 to 1542, the
three HiveAuth strings are still in English; replace them with Serbian
translations: "with-hiveauth" -> "Prijavite se putem HiveAuth", "invalid-key" ->
"Nevažeći format ključa. Proverite da nema nedozvoljenih karaktera.", and
"key-error" -> "Nije moguće obraditi ključ. Proverite da li je tačan."

"payouts-title": "You received a payout on @{{username}}",
"monthly-posts-title": "Finishing the month strong, @{{username}}",
"spin-str": "Vreme je da zaradite više poena. Igrajte obrtanje na Ecency mobilnoj aplikaciji",
"spin-str": "Time to earn more Points, Play Spin!",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Revert "spin-str" to Serbian translation.

According to the AI summary, this string was explicitly changed from Serbian to English. However, this breaks localization consistency for Serbian-speaking users who will see English text.

🔎 Suggested translation
-    "spin-str": "Time to earn more Points, Play Spin!",
+    "spin-str": "Vreme je da zaradite više Poena, Igrajte Spin!",
📝 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
"spin-str": "Time to earn more Points, Play Spin!",
"spin-str": "Vreme je da zaradite više Poena, Igrajte Spin!",
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/sr-CS.json at line 1818, the "spin-str"
value was incorrectly changed to English; revert it to a proper Serbian
translation by replacing "Time to earn more Points, Play Spin!" with a Serbian
string such as "Vreme je da zaradite više poena — igrajte Spin!" (or the
preferred Serbian localization variant), ensuring punctuation and capitalization
match surrounding entries.

Comment on lines +2143 to +2148
"no-message": "No message content.",
"translate": "Translate",
"translate-target-language": "Target language",
"pinned-messages": "Pinned messages",
"pin-message": "Pin message",
"unpin-message": "Unpin message"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Translate chat feature strings to Serbian.

Six new chat-related strings for message translation and pinning are in English but should be in Serbian.

🔎 Suggested 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": "Nema sadržaja poruke.",
+    "translate": "Prevedi",
+    "translate-target-language": "Ciljni jezik",
+    "pinned-messages": "Zakačene poruke",
+    "pin-message": "Zakači poruku",
+    "unpin-message": "Otkači poruku"
📝 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
"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": "Nema sadržaja poruke.",
"translate": "Prevedi",
"translate-target-language": "Ciljni jezik",
"pinned-messages": "Zakačene poruke",
"pin-message": "Zakači poruku",
"unpin-message": "Otkači poruku"
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/sr-CS.json around lines 2143–2148 the six
chat-related strings are still in English; replace them with Serbian
translations so the UI is localized: "no-message" -> "Nema sadržaja poruke.",
"translate" -> "Prevedi", "translate-target-language" -> "Ciljni jezik",
"pinned-messages" -> "Zalijepljene poruke", "pin-message" -> "Zalijepi poruku",
"unpin-message" -> "Ukloni zalijepljenu poruku".

"to-placeholder": "ім'я користувача",
"to-not-found": "Користувача, якому ви намагаєтеся переказати кошти, не існує!",
"to-bad-actor": "Будьте обережні, відправляючи на цей рахунок. Будь ласка, перевірте правильність написання, щоб уникнути можливого фішингу.",
"external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)",
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

Translate "Wallet" to Ukrainian for consistency

The label contains the English word "Wallet" which should be translated to Ukrainian "Гаманець" for consistency with the rest of the localization file (used throughout, e.g., lines 228, 1051, 2431).

🔎 Suggested translation
-    "external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)",
+    "external-wallets-label": "Гаманець (BTC, ETH, SOL, BNB, TRX, TON, APT)",
📝 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
"external-wallets-label": "Wallet (BTC, ETH, SOL, BNB, TRX, TON, APT)",
"external-wallets-label": "Гаманець (BTC, ETH, SOL, BNB, TRX, TON, APT)",
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/uk-UA.json around line 1409, the value for
"external-wallets-label" uses the English word "Wallet" — replace it with the
Ukrainian translation "Гаманець" so the label reads "Гаманець (BTC, ETH, SOL,
BNB, TRX, TON, APT)" to match the rest of the localization file.

"payouts-title": "Ви отримали виплату на @{{username}}",
"monthly-posts-title": "Завершення місяця міцний, @{{username}}",
"spin-str": "Час заробити більше балів, грайте на Ecency Mobile",
"spin-str": "Час заробити більше балів, грати в хребті!",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cd apps/web/src/features/i18n/locales && wc -l uk-UA.json

Repository: ecency/vision-next

Length of output: 77


🏁 Script executed:

cd apps/web/src/features/i18n/locales && sed -n '1810,1830p' uk-UA.json

Repository: ecency/vision-next

Length of output: 999


🏁 Script executed:

cd apps/web/src/features/i18n/locales && rg -i "spin" uk-UA.json -B 2 -A 2

Repository: ecency/vision-next

Length of output: 915


🏁 Script executed:

git ls-files apps/web/src/features/i18n/locales/ | head -20

Repository: ecency/vision-next

Length of output: 983


🏁 Script executed:

cd apps/web/src/features/i18n/locales && sed -n '1810,1830p' en-US.json

Repository: ecency/vision-next

Length of output: 957


🏁 Script executed:

cd apps/web/src/features/i18n/locales && rg -i "spin-str" . --context 2

Repository: ecency/vision-next

Length of output: 9423


Fix critical mistranslation in Ukrainian spin game notification

The phrase "грати в хребті" is incorrect. "Хребті" (the locative form of "хребет") means "spine" or "ridge," which is nonsensical in the context of a spin game.

The phrase should be corrected to "грати в спін" or similar. Note that other spin-related strings in this same file use "обертання" or "оберти" (rotations/spins), so ensure consistency with that terminology.

-    "spin-str": "Час заробити більше балів, грати в хребті!",
+    "spin-str": "Час заробити більше балів, обернути колесо!",

(or "зіграйте в спін" as suggested, both are acceptable translations)

📝 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
"spin-str": "Час заробити більше балів, грати в хребті!",
"spin-str": "Час заробити більше балів, обернути колесо!",
🤖 Prompt for AI Agents
In apps/web/src/features/i18n/locales/uk-UA.json around line 1818, the value
"Час заробити більше балів, грати в хребті!" uses the wrong word "хребті";
replace it with a correct spin-related phrase (e.g. "Час заробити більше балів,
зіграйте в спін!" or use the file's existing terminology like "обертання" — "Час
заробити більше балів, зіграйте в обертання!" ) so the sentence reads naturally
and is consistent with other spin-related strings in the file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants