Skip to content

Conversation

@feruzm
Copy link
Member

@feruzm feruzm commented Jan 11, 2026

Summary by CodeRabbit

  • Documentation

    • Updated “Learn more” links to internal FAQ anchors (signup and Resource Credits).
  • New Features

    • Added Direct Message privacy settings, status messages and update confirmations.
    • Surfaced DM states and actions across profile, chat and post views (not allowed / followers-only / disabled; leave/unhide conversations).
    • Show deleted-post notices and “no history” message where applicable.
    • Added “Convert” label to wallet operation menus.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 11, 2026

📝 Walkthrough

Walkthrough

Adds new i18n keys and updates across many locale JSON files: introduces Direct Message (DM) privacy strings (settings.dm-privacy, dm-privacy-updated/failed and dm-not-allowed/dm-followers-only/dm-disabled), deleted-content messages, wallet.operations.convert, and replaces external help links with internal FAQ anchors.

Changes

Cohort / File(s) Summary
Bulk locale additions
apps/web/src/features/i18n/locales/* (see list below)
Added settings.dm-privacy (+status keys), entry.deleted-content, entry.deleted-no-history, DM-related keys (dm-not-allowed, dm-followers-only, dm-disabled, leave-conversation, dm-warning-*) across entry/chat/profile/entry-menu; added wallet.operations.convert; replaced external help links with /faq#how-to-join and /faq#what-are-rc. Validate localized anchor wording, punctuation, and JSON syntax.
Locale file list
apps/web/src/features/i18n/locales/
ac-ace.json, bg-BG.json, de-DE.json, es-ES.json, fr-FR.json, hi-IN.json, id-ID.json, it-IT.json, ja-JP.json, lt-LT.json, nl-NL.json, pcm-NG.json, pl-PL.json, pt-PT.json, ru-RU.json, sr-CS.json, th-TH.json, tr-TR.json, uk-UA.json, ur-PK.json, uz-UZ.json, yo-NG.json, zh-CN.json
All listed locale files receive the repeated key additions and link replacements. Some locales include localized anchor text, minor punctuation/structure differences, or removal of older keys (e.g., hide-message) — check each file for consistent key shapes and valid JSON.

Sequence Diagram(s)

(Skipped — changes are i18n entries only and do not introduce multi-component runtime control flow.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I hopped through locale trees tonight,
Scattered DM rules and FAQ light,
Tucked "convert" in a tiny nook,
Marked deleted posts with a careful look,
A tiny hop — translations all set right.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'New Crowdin updates' is vague and generic, using a non-descriptive term that doesn't convey meaningful information about the specific changes made. Replace with a more specific title describing the main change, such as 'Add DM privacy settings and content deletion messaging across locales' or 'Update i18n locales with DM privacy features and internal FAQ links'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/src/features/i18n/locales/es-ES.json (1)

1134-1134: Update rc-info.learn-more to use internal FAQ anchor—inconsistency with 20+ other locale files.

The rc-info.learn-more field in both es-ES.json and en-US.json (line 1134) still points to the external URL https://docs.ecency.com/hive/resource-credits/, while 20+ other locale files have already been updated to /faq#what-are-rc. This should be:

-    "learn-more": "https://docs.ecency.com/hive/resource-credits/",
+    "learn-more": "/faq#what-are-rc",

Affected files: es-ES.json and en-US.json.

🤖 Fix all issues with AI agents
In @apps/web/src/features/i18n/locales/de-DE.json:
- Line 1134: The "learn-more" translation entry contains a typo in its FAQ
fragment; change the value from "/faq#was-are-rc" to "/faq#what-are-rc" so the
anchor matches the FAQ section key (refer to the "learn-more" key and the
fragment portion of its string).

In @apps/web/src/features/i18n/locales/hi-IN.json:
- Line 1134: The value for the localization key "rc-info.learn-more" currently
uses Hindi Unicode text as a URL and should be replaced with the standard route
used by other locales; update the string value for "rc-info.learn-more" to
"/faq#what-are-rc" (ensuring valid JSON quoting/escaping) so the link resolves
correctly in the app.

In @apps/web/src/features/i18n/locales/ja-JP.json:
- Line 299: The translation value for sign-up.learn-more contains an empty
anchor and a stray "format@@2"; update the "learn-more" string (key:
sign-up.learn-more) to include visible Japanese anchor text and remove the
artifact so it mirrors other locales (e.g., use "<a
href=\"/faq#how-to-join\">FAQ</a> のメリットについての詳細はこちら" or similar Japanese link
text), leaving rc-info.learn-more unchanged. Ensure the updated string keeps the
same URL ("/faq#how-to-join"), has meaningful link text, and has no leftover
"format@@2" artifact.

In @apps/web/src/features/i18n/locales/lt-LT.json:
- Line 299: Replace the English "FAQ" link text in the "learn-more" translation
entry with the Lithuanian equivalent used elsewhere; edit the value for the
"learn-more" key so the anchor text is either "Dažniausiai užduodami klausimai"
or the established abbreviation "DUK" (matching other occurrences in the file)
while keeping the href "/faq#how-to-join" unchanged.

In @apps/web/src/features/i18n/locales/zh-CN.json:
- Line 1134: The "learn-more" translation value contains an invalid space in the
URL fragment ("#what are-rc") which breaks navigation; update the value for the
"learn-more" key in the zh-CN locale to use the hyphenated anchor "#what-are-rc"
(so the string becomes "/faq#what-are-rc") to match the component and other
locales.
🧹 Nitpick comments (3)
apps/web/src/features/i18n/locales/de-DE.json (1)

299-299: Consider format consistency between learn-more links

Line 299 uses full HTML markup with an anchor tag, while line 1134 uses a plain URL path. For consistency and maintainability, consider using the same format for both entries. If the application handles link rendering differently based on context, this may be intentional—otherwise, standardizing the format would improve consistency.

Also applies to: 1134-1134

apps/web/src/features/i18n/locales/it-IT.json (1)

1133-1135: Consider standardizing link format for consistency.

The change to an internal FAQ anchor (/faq#what-are-rc) works correctly. However, there's an inconsistency in approach compared to line 299:

  • Line 299 uses a complete self-contained string: "Leggi di più... <a href=\"/faq#how-to-join\">FAQ</a>"
  • Line 1134 provides only the URL path, relying on surrounding keys (lines 1133, 1135) to construct the complete sentence

While both approaches are functional, standardizing to one pattern would improve maintainability and make the localization file more consistent.

♻️ Optional: Standardize to self-contained format

If you want consistency with line 299's approach:

-    "check-faq": "Scopri di più su RC nel nostro",
-    "learn-more": "/faq#what-are-rc",
-    "faq-link": "Domande frequenti",
+    "check-faq": "Scopri di più su RC nelle nostre <a href=\"/faq#what-are-rc\">FAQ</a>",

Alternatively, keep the current approach if the UI component design specifically requires separate keys.

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

294-303: Consider adding class="push-link" to the new internal FAQ link to avoid full page reloads (if your router relies on it).

If Ecency uses push-link to enable client-side navigation (seems likely given other strings in this file), it’s worth aligning here too.

Proposed change
-    "learn-more": "<a href=\"/faq#how-to-join\">SSS</a> sayfamızdan avantajlar hakkında detaylı bilgi edinebilirsiniz",
+    "learn-more": "<a class=\"push-link\" href=\"/faq#how-to-join\">SSS</a> sayfamızdan avantajlar hakkında detaylı bilgi edinebilirsiniz",
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2479524 and ef3cf26.

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

299-299: No issues found. The different formats for these translation keys are intentional and necessary based on their usage:

  • sign-up.learn-more (line 299) includes full HTML because the Tsx component renders it as HTML content: <Tsx k="sign-up.learn-more"><div className="form-faq" /></Tsx>
  • rc-info.learn-more (line 1134) contains only the URL path because it's used as an href attribute, with the link text sourced from a separate translation key: <a href={i18next.t("rc-info.learn-more")}>{i18next.t("rc-info.faq-link")}</a>

No standardization is needed—each format is correct for its context.

Likely an incorrect or invalid review comment.

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

1133-1135: rc-info.learn-more looks OK—verify the consumer treats it as an internal route and the anchor exists.

If the UI previously treated this value as an external URL (e.g., opens in new tab, adds rel, etc.), ensure /faq#what-are-rc still behaves correctly.

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

1134-1134: Verify that the FAQ anchor /faq#what-are-rc exists and is consistent across all locale files.

The link now points to /faq#what-are-rc. Please ensure:

  • The anchor ID what-are-rc exists in the FAQ page implementation
  • All 24 locale files in this PR have been updated consistently with this link value

299-299: The anchor reference is valid and correctly implemented.

The link to /faq#how-to-join references a FAQ key that is properly defined in apps/web/src/consts/faq-keys-general.ts and will be correctly rendered as an anchor by the FAQ page component (faq-category-stateless.tsx). The change is safe to merge.

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

1134-1134: The FAQ anchor #what-are-rc exists and is properly implemented. The URL /faq#what-are-rc is correct. Each FAQ item in the page is rendered with an id attribute matching its key (e.g., <div id="what-are-rc">) as defined in faq-keys-general.ts, so no broken links will occur.


299-299: No action needed. The FAQ anchor #how-to-join is properly defined in the application. The FAQ page renders this section with id="how-to-join" (from faqKeysGeneral array), and the locale file contains the corresponding translation keys (how-to-join-header and how-to-join-body). The link update is correct and will not result in broken anchors.

apps/web/src/features/i18n/locales/pcm-NG.json (2)

299-299: LGTM! Internal FAQ link correctly formatted.

The update to redirect from an external documentation URL to the internal FAQ anchor /faq#how-to-join is implemented correctly. The corresponding FAQ section exists in this locale file (line 2264: how-to-join-header), and the anchor ID is properly generated by the FAQ system through the faqKeysGeneral array and faq-category-stateless component.


1134-1134: Internal FAQ anchor updated correctly for pcm-NG.json.

The change to /faq#what-are-rc at line 1134 is correct. The path string is used programmatically with surrounding context strings (lines 1133 and 1135: "Learn more about RC in our" + link + "FAQ"), and the corresponding FAQ section exists at line 2284.

However, note that consistency across locale files is not uniform: 17 files use /faq#what-are-rc, while en-US and es-ES use external docs URLs (https://docs.ecency.com/hive/resource-credits/), and 5 other locales use localized FAQ anchors (some with potential formatting issues like zh-CN's /faq#what are-rc). Verify whether this mixed approach is intentional.

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

1134-1134: No issues found. The format difference between line 1134 and line 299 is intentional—line 299 uses HTML markup for full sentence context, while line 1134 uses a plain path format for direct FAQ anchor linking. This pattern is consistent across all locale files. The Portuguese anchor oque-sao-cr is also intentional localization, correctly translating the English "what-are-rc" to Portuguese terminology.


299-299: No action needed — the FAQ anchor /faq#how-to-join is properly defined in the FAQ configuration and will function correctly for Portuguese users.

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

299-299: LGTM: Internal FAQ link properly formatted.

The update from external documentation URL to internal FAQ anchor is correctly implemented with proper HTML markup and valid anchor syntax using hyphens.

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

299-299: LGTM! Internal FAQ link correctly updated.

The sign-up.learn-more field has been properly updated to point to the internal FAQ anchor /faq#how-to-join instead of external documentation. The HTML structure and Spanish translation are correct.

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

1133-1135: No issues found — the anchor /faq#what-are-rc is properly generated and used.

The FAQ page generates dynamic id attributes from the key names (confirmed in page.tsx line 65: id={x}), creating id="what-are-rc" anchors that match the URL in the locale file. Components like rc-info correctly consume this URL as an href attribute, not as display text. "what-are-rc" is registered in faqKeysGeneral and the pattern works correctly across all locale files.


299-299: The hardcoded /faq#... paths are appropriate for this app's architecture.

The app doesn't use basePath or locale-prefixed routing (verified in next.config.js and middleware), so root-relative paths work correctly. The sign-up.learn-more translation properly sanitizes embedded HTML via the safeHtml() function using the xss library. However, note that rc-info.learn-more (line 1134) is used as a raw URL in the rc-info component and shows inconsistency across locales: uz-UZ uses /faq#what-are-rc while en-US and es-ES use full external URLs like https://docs.ecency.com/hive/resource-credits/. Consider standardizing these values across all locale files.

Likely an incorrect or invalid review comment.

apps/web/src/features/i18n/locales/sr-CS.json (1)

299-299: No verification needed — both FAQ anchor links are correctly implemented.

The links to /faq#how-to-join and /faq#what-are-rc are valid. Both FAQ sections (faq.how-to-join.* and faq.what-are-rc.*) have corresponding entries in the locale files and the FAQ page renders these sections with matching anchor IDs. The changes are safe to merge.

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

1134-1134: The FAQ anchor and code usage are both correct.

The value /faq#what-are-rc properly references the FAQ page anchor, which is dynamically generated with id="what-are-rc" when the FAQ renders the corresponding question. The code in rc-info/index.tsx correctly applies this translation to the href attribute using i18next.t(), and the plain string format is appropriate for this use case.


299-299: Confirm that the FAQ page contains the anchor #how-to-join.

The translation now links to /faq#how-to-join. Ensure this anchor exists on the FAQ page; otherwise, users clicking this link will encounter a broken anchor reference.

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

1134-1134: LGTM!

The anchor #what-are-rc is properly implemented in the FAQ page and the internal link is correct. The change is consistent with the overall approach across all locale files.


299-299: LGTM! The change to use an internal FAQ link is good for maintainability. The Dutch translation reads naturally. The anchor #how-to-join is properly implemented in the FAQ page via the dynamic id={x} rendering in page.tsx, so the link will work correctly.

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

1116-1136: rc-info.learn-more looks consistent; just ensure the FAQ anchor stays stable.

Line 1134 switches to a local "/faq#what-are-rc" anchor; looks fine assuming the FAQ section IDs are stable and match this slug.


294-303: No issues found. The implementation is correct:

  • HTML rendering is safe: The Tsx component (used on line 238) sanitizes all HTML strings via the xss library with a whitelist that includes <a> tags with href, class, target, and rel attributes.
  • FAQ anchors exist: Both how-to-join and what-are-rc are confirmed in the faqKeysGeneral array and will be set as id attributes on FAQ items.
  • basePath not configured: Next.js basePath is not set, so the hardcoded /faq#... paths work correctly.
apps/web/src/features/i18n/locales/fr-FR.json (2)

1134-1134: The FAQ anchor is valid.

The link to /faq#what-are-rc is confirmed. The FAQ key "what-are-rc" is documented in the FAQ system and used consistently across all language locales in the codebase.


299-299: Good change. The internal FAQ link at line 299 is correct. The #how-to-join anchor is properly defined in the FAQ system through the faqKeysGeneral constant and is generated by the FAQ category component. The French translation is accurate.

apps/web/src/features/i18n/locales/it-IT.json (1)

299-299: LGTM! Well-structured localization with internal link.

The Italian translation is clear and grammatically correct. The use of an internal FAQ anchor (/faq#how-to-join) instead of an external documentation link improves navigation and keeps users within the application.

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

1134-1134: No changes required. The format difference between line 299 and line 1134 is intentional: line 299 contains translatable HTML text for the signup screen, while line 1134 is a plain URL path used programmatically in the insufficient-resource-credits modal. The FAQ anchor #what-are-rc is properly defined in the FAQ structure and referenced correctly in the codebase. This pattern is consistent across all locale files.


299-299: This change is correct and requires no updates.

The link /faq#how-to-join is valid. The FAQ key "how-to-join" exists in the FAQ keys list and maps to an anchor ID in the FAQ page. The non-localized path is intentional—the application uses i18next for content localization rather than URL-based locale prefixes. The FaqSearchListener component properly handles hash-based navigation to scroll to the correct anchor.

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

299-299: LGTM! Internal FAQ link properly formatted.

The HTML anchor tag is correctly structured with proper escaping, and the internal FAQ path /faq#how-to-join follows the correct format for in-page navigation.


1134-1134: Format difference is intentional by design.

The rc-info.learn-more field contains only a URL path (/faq#what-are-rc) because it's used as the href attribute in the code (line 180 of rc-info/index.tsx):

<a href={i18next.t("rc-info.learn-more")}>{i18next.t("rc-info.faq-link")}</a>

The three fields work together: check-faq provides introductory text, learn-more is the URL, and faq-link is the link text. This is a deliberate separation from the sign-up.learn-more pattern (which embeds complete HTML) to allow flexible URL management without HTML parsing in the locale files.

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

299-299: LGTM!

The internal FAQ anchor /faq#how-to-join is correctly formatted and corresponds to the existing FAQ entry (how-to-join-header/how-to-join-body) in this locale file.


1134-1134: LGTM!

The internal FAQ anchor /faq#what-are-rc is correctly formatted and corresponds to the existing FAQ entry (what-are-rc-header/what-are-rc-body) in this locale file.

apps/web/src/features/i18n/locales/lt-LT.json (1)

1134-1134: No changes required. The anchor #what-are-rc is valid and properly referenced throughout the codebase. The format at line 1134 ("/faq#what-are-rc") is intentional—it's used as a URL path in programmatic navigation (e.g., window.open("/faq#what-are-rc", "_blank")), whereas line 299 uses embedded HTML for direct DOM insertion. This is not an inconsistency but correct usage based on context.

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

1116-1136: The FAQ anchors #what-are-rc and #how-to-join are correctly implemented.

Both anchors are included in the faqKeysGeneral array (apps/web/src/consts/faq-keys-general.ts) and the FAQ page dynamically generates HTML element IDs from these keys. The faq-anchor-listener.tsx component handles hash-based scroll navigation. The i18n keys referencing these URLs will work as expected.

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

299-299: LGTM: Internal FAQ link correctly formatted.

The change from external documentation URL to internal FAQ anchor (/faq#how-to-join) is properly implemented with valid URL format.

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

1134-1134: Anchor is correctly implemented and in use throughout the codebase.

The FAQ anchor #what-are-rc exists and is properly registered in faq-keys-general.ts. The FAQ page component dynamically generates the anchor element by rendering <div id="what-are-rc"> when processing the "what-are-rc" key. The locale change at line 1134 is correct and consistent with other locale files using the same pattern.


299-299: Anchor link is correctly implemented.

The FAQ page renders each item with an id attribute matching the FAQ key (line 70 in apps/web/src/app/(staticPages)/faq/page.tsx). The how-to-join key is registered in faq-keys-general.ts, so the anchor #how-to-join will resolve correctly. The HTML structure is properly formatted with escaped quotes.

"cancel": "Abbrechen",
"check-faq": "Erfahren Sie mehr über RC in unseren",
"learn-more": "https://docs.ecency.com/hive/resource-credits/",
"learn-more": "/faq#was-are-rc",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: Incorrect FAQ anchor fragment identifier

The fragment identifier #was-are-rc contains a typo and will not navigate to the correct FAQ section. The FAQ anchor should be #what-are-rc to match the FAQ section key defined at line 2283.

🐛 Proposed fix
-    "learn-more": "/faq#was-are-rc",
+    "learn-more": "/faq#what-are-rc",
📝 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
"learn-more": "/faq#was-are-rc",
"learn-more": "/faq#what-are-rc",
🤖 Prompt for AI Agents
In @apps/web/src/features/i18n/locales/de-DE.json at line 1134, The "learn-more"
translation entry contains a typo in its FAQ fragment; change the value from
"/faq#was-are-rc" to "/faq#what-are-rc" so the anchor matches the FAQ section
key (refer to the "learn-more" key and the fragment portion of its string).

"cancel": "रद्द करना",
"check-faq": "आरसी के बारे में अधिक जानें",
"learn-more": "https://docs.ecency.com/hive/resource-credits/",
"learn-more": "/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, let's check if the file exists and examine the content around line 1134
wc -l apps/web/src/features/i18n/locales/hi-IN.json

Repository: ecency/vision-next

Length of output: 112


🏁 Script executed:

# Check line 1134 and surrounding context
sed -n '1130,1140p' apps/web/src/features/i18n/locales/hi-IN.json

Repository: ecency/vision-next

Length of output: 576


🏁 Script executed:

# Check what's around line 299 as the review mentions it
sed -n '295,305p' apps/web/src/features/i18n/locales/hi-IN.json

Repository: ecency/vision-next

Length of output: 819


🏁 Script executed:

# Search for "learn-more" across all locale files to see patterns
rg -n '"learn-more"' apps/web/src/features/i18n/locales/ -B0 -A0

Repository: ecency/vision-next

Length of output: 10441


🏁 Script executed:

# Check if there's routing configuration or documentation about URL handling
find apps/web -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.json" \) | xargs grep -l "faq\|learn-more" | head -20

Repository: ecency/vision-next

Length of output: 1306


🏁 Script executed:

# Check the rc-info component to see how these learn-more URLs are used
cat -n apps/web/src/app/\(dynamicPages\)/profile/\[username\]/_components/rc-info/index.tsx | head -150

Repository: ecency/vision-next

Length of output: 6821


🏁 Script executed:

# Search for how these locale strings are rendered in the app
rg -A3 -B3 "learn-more.*rc-info" apps/web/src/ --type tsx --type ts

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

# Look for any routing or href handling in the application
rg "href.*learn-more\|learn-more.*href" apps/web/src/ --type tsx --type ts | head -20

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

# Look for where rc-info.learn-more is used
rg "rc-info\.learn-more" apps/web/src/

Repository: ecency/vision-next

Length of output: 236


🏁 Script executed:

# Check the full rc-info component file to see how it renders content
cat -n apps/web/src/app/\(dynamicPages\)/profile/\[username\]/_components/rc-info/index.tsx | tail -100

Repository: ecency/vision-next

Length of output: 4078


🏁 Script executed:

# Search for how href links are constructed from locale strings
rg "href.*faq\|faq.*href" apps/web/src/features/i18n/locales/ --type json | head -20

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

# Look for how the app handles these URLs in components
rg "dangerously\|innerHTML\|Link.*learn-more" apps/web/src/ | head -20

Repository: ecency/vision-next

Length of output: 44


Fix URL in rc-info.learn-more to use the standard routing path.

The URL uses Hindi Unicode characters (/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं) instead of the application's routing path. This will result in a 404 when users click the link. All other locales use /faq#what-are-rc, which is the actual route in the application.

🐛 Proposed fix
-    "learn-more": "/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं",
+    "learn-more": "/faq#what-are-rc",
📝 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
"learn-more": "/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं",
"learn-more": "/faq#what-are-rc",
🤖 Prompt for AI Agents
In @apps/web/src/features/i18n/locales/hi-IN.json at line 1134, The value for
the localization key "rc-info.learn-more" currently uses Hindi Unicode text as a
URL and should be replaced with the standard route used by other locales; update
the string value for "rc-info.learn-more" to "/faq#what-are-rc" (ensuring valid
JSON quoting/escaping) so the link resolves correctly in the app.

"description-2": "Hiveは多くのアプリをサポートし、世界中のコミュニティメンバーによって完全に分散して実行されています。 アカウントでは、エコシステムに直接アクセスできます。",
"bottom-description": "1つのアカウント、1つのウォレットでブロックチェーン上のすべてを管理できます。",
"learn-more": "<a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a> のメリットについての詳細はこちら",
"learn-more": "<a href=\"/faq#how-to-join\"></a> のメリットについての詳細はこちらformat@@2",
Copy link
Contributor

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:

cat -n apps/web/src/features/i18n/locales/ja-JP.json | sed -n '295,305p'

Repository: ecency/vision-next

Length of output: 662


🏁 Script executed:

cat -n apps/web/src/features/i18n/locales/ja-JP.json | sed -n '1130,1140p'

Repository: ecency/vision-next

Length of output: 528


🏁 Script executed:

rg -n "sign-up\.learn-more" --type json

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

rg -n "sign-up\.learn-more" -A 3 -B 3 --hidden

Repository: ecency/vision-next

Length of output: 569


🏁 Script executed:

rg -n "rc-info\.learn-more" -A 3 -B 3 --hidden

Repository: ecency/vision-next

Length of output: 990


🏁 Script executed:

fd ".*Tsx.*" -t f --hidden | head -5

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

rg -n "component.*Tsx\|export.*Tsx" --type tsx --type ts

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

find . -type f -name "*faq*" -o -name "*FAQ*" | grep -E "\.(tsx?|json)$"

Repository: ecency/vision-next

Length of output: 829


🏁 Script executed:

rg -n "export.*Tsx\|const Tsx" -A 5 --type js --type ts

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

cat apps/web/src/app/signup/email/_page.tsx | sed -n '230,245p'

Repository: ecency/vision-next

Length of output: 705


🏁 Script executed:

find . -path "*/faq/*page*" -type f | head -5

Repository: ecency/vision-next

Length of output: 107


🏁 Script executed:

rg -n "import.*Tsx\|from.*Tsx" apps/web/src/app/signup/email/_page.tsx

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

cat apps/web/src/app/(staticPages)/faq/page.tsx | head -80

Repository: ecency/vision-next

Length of output: 207


🏁 Script executed:

rg -n "how-to-join\|what-are-rc" --type json

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

head -50 "apps/web/src/app/signup/email/_page.tsx"

Repository: ecency/vision-next

Length of output: 2048


🏁 Script executed:

find . -path "*/staticPages/faq/*" -name "page.tsx" -exec head -100 {} \;

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

rg -n "how-to-join" . --hidden -A 2 -B 2

Repository: ecency/vision-next

Length of output: 50374


🏁 Script executed:

rg -n "what-are-rc" . --hidden -A 2 -B 2

Repository: ecency/vision-next

Length of output: 50374


🏁 Script executed:

find . -path "*/features/i18n/helper*" -type f

Repository: ecency/vision-next

Length of output: 146


🏁 Script executed:

cat -n apps/web/src/features/i18n/helper.tsx 2>/dev/null | head -100

Repository: ecency/vision-next

Length of output: 1019


🏁 Script executed:

rg -n "how-to-join\|what-are-rc" --type json -c | head -20

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

find . -path "*staticPages/faq*" -name "*.ts" -o -path "*staticPages/faq*" -name "*.tsx" | head -10

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

rg -n "how-to-join|what-are-rc" --type tsx --type ts | head -30

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

rg -n "id=.*how-to-join|id=.*what-are-rc" --type tsx --type ts

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

find . -path "*/faq/*" -name "*.tsx" -exec grep -l "how-to-join\|what-are-rc" {} \;

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

ls -la apps/web/src/app/staticPages/faq/

Repository: ecency/vision-next

Length of output: 142


🏁 Script executed:

rg -n "how-to-join-header|what-are-rc-header" apps/web/src/features/i18n/locales/en-US.json

Repository: ecency/vision-next

Length of output: 180


🏁 Script executed:

cat apps/web/src/app/staticPages/faq/page.tsx | head -150

Repository: ecency/vision-next

Length of output: 135


🏁 Script executed:

find . -type f -name "page.tsx" | grep -i faq

Repository: ecency/vision-next

Length of output: 107


🏁 Script executed:

find . -type d -name "*faq*" | head -5

Repository: ecency/vision-next

Length of output: 160


🏁 Script executed:

head -200 './apps/web/src/app/(staticPages)/faq/page.tsx'

Repository: ecency/vision-next

Length of output: 3049


🏁 Script executed:

rg -n "how-to-join|what-are-rc" './apps/web/src/app/(staticPages)/faq/' -A 2 -B 2

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

rg -n "static.faq\." apps/web/src/features/i18n/locales/en-US.json | head -30

Repository: ecency/vision-next

Length of output: 44


🏁 Script executed:

cat apps/web/src/app/staticPages/faq/utils/search-within-faq.ts 2>/dev/null || find . -path "*/faq/utils*" -type f -name "*.ts"

Repository: ecency/vision-next

Length of output: 177


🏁 Script executed:

cat './apps/web/src/app/(staticPages)/faq/utils/search-within-faq.ts'

Repository: ecency/vision-next

Length of output: 626


🏁 Script executed:

cat './apps/web/src/app/(staticPages)/faq/utils/index.ts'

Repository: ecency/vision-next

Length of output: 98


🏁 Script executed:

rg -n "faq-keys" -A 50 './apps/web/src/'

Repository: ecency/vision-next

Length of output: 337


🏁 Script executed:

cat './apps/web/src/consts/faq-keys-general.ts'

Repository: ecency/vision-next

Length of output: 3046


Fix broken sign-up.learn-more translation (empty <a> + leaked format@@2).

Line 299 renders a non-clickable empty anchor with a visible format@@2 artifact string. The Tsx component uses dangerouslySetInnerHTML to render translation values as HTML, so the empty <a href="/faq#how-to-join"></a> provides no visible link text, and format@@2 displays as literal UI text.

Other language files properly include anchor text (e.g., "FAQ" in English, Bulgarian, Chinese). Update ja-JP.json line 299 to match this pattern with proper Japanese link text.

Note: rc-info.learn-more on line 1134 is correctly set to "/faq#what-are-rc" and used as a URL in an href attribute—no change needed there.

Proposed fix
-    "learn-more": "<a href=\"/faq#how-to-join\"></a> のメリットについての詳細はこちらformat@@2",
+    "learn-more": "メリットについての詳細は <a href=\"/faq#how-to-join\">こちら</a> をご覧ください。",
📝 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
"learn-more": "<a href=\"/faq#how-to-join\"></a> のメリットについての詳細はこちらformat@@2",
"learn-more": "メリットについての詳細は <a href=\"/faq#how-to-join\">こちら</a> をご覧ください。",
🤖 Prompt for AI Agents
In @apps/web/src/features/i18n/locales/ja-JP.json at line 299, The translation
value for sign-up.learn-more contains an empty anchor and a stray "format@@2";
update the "learn-more" string (key: sign-up.learn-more) to include visible
Japanese anchor text and remove the artifact so it mirrors other locales (e.g.,
use "<a href=\"/faq#how-to-join\">FAQ</a> のメリットについての詳細はこちら" or similar Japanese
link text), leaving rc-info.learn-more unchanged. Ensure the updated string
keeps the same URL ("/faq#how-to-join"), has meaningful link text, and has no
leftover "format@@2" artifact.

"description-2": "Hive powers many apps and is run completely decentralized by community members all around the world. With an account, you have direct access to the ecosystem.",
"bottom-description": "One account, one wallet to manage everything on Blockchain.",
"learn-more": "Learn more about benefits in our <a href=\"https://docs.ecency.com/guides/create-account/\">FAQ</a>",
"learn-more": "Sužinokite daugiau apie privalumus mūsų svetainėje <a href=\"/faq#how-to-join\">FAQ</a>",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Find FAQ-related files and search for the anchor definition
find . -type f \( -name "*faq*" -o -name "*FAQ*" \) | head -20

Repository: ecency/vision-next

Length of output: 910


🏁 Script executed:

# Search for the specific anchor in the codebase
rg -n "how-to-join" --type=tsx --type=ts --type=jsx --type=js 2>/dev/null || echo "Pattern not found in source files"

Repository: ecency/vision-next

Length of output: 95


🏁 Script executed:

# Check the full context of lines around 68 and 1134 in the Lithuanian locale file
cat -n apps/web/src/features/i18n/locales/lt-LT.json | sed -n '65,75p;1130,1140p'

Repository: ecency/vision-next

Length of output: 1004


🏁 Script executed:

# Search for "DUK" in the Lithuanian locale to understand the localization pattern
rg -n "DUK" apps/web/src/features/i18n/locales/lt-LT.json

Repository: ecency/vision-next

Length of output: 619


🏁 Script executed:

# Check the FAQ keys file for anchor definitions
cat apps/web/src/consts/faq-keys-general.ts

Repository: ecency/vision-next

Length of output: 3046


🏁 Script executed:

# Search for both anchors in all files
rg -n "#how-to-join|#what-are-rc" --no-heading

Repository: ecency/vision-next

Length of output: 19898


🏁 Script executed:

# Check FAQ component files for how anchors are defined
cat apps/web/src/app/\(staticPages\)/faq/_components/faq-anchor-listener.tsx | head -50

Repository: ecency/vision-next

Length of output: 385


Use the Lithuanian translation for "FAQ" for consistency.

The anchors #how-to-join and #what-are-rc are valid and properly integrated. However, the link text should use the Lithuanian translation already available in the file. Line 68 provides "Dažniausiai užduodami klausimai" (full translation), so replace "FAQ" with this translation or the common abbreviation "DUK" (used elsewhere in the file, e.g., lines 714 and 1954) for consistency with localization practices.

🤖 Prompt for AI Agents
In @apps/web/src/features/i18n/locales/lt-LT.json at line 299, Replace the
English "FAQ" link text in the "learn-more" translation entry with the
Lithuanian equivalent used elsewhere; edit the value for the "learn-more" key so
the anchor text is either "Dažniausiai užduodami klausimai" or the established
abbreviation "DUK" (matching other occurrences in the file) while keeping the
href "/faq#how-to-join" unchanged.

"cancel": "取消",
"check-faq": "了解更多关于我们的 RC的信息",
"learn-more": "https://docs.ecency.com/hive/resourcescredits/",
"learn-more": "/faq#what are-rc",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Check the content at line 1134 in zh-CN.json and surrounding context
cd /repo && head -1140 apps/web/src/features/i18n/locales/zh-CN.json | tail -10

Repository: ecency/vision-next

Length of output: 117


🏁 Script executed:

# Also check line 299 for comparison
cd /repo && sed -n '295,305p' apps/web/src/features/i18n/locales/zh-CN.json

Repository: ecency/vision-next

Length of output: 117


🏁 Script executed:

# Search for learn-more entries with spaces in anchors across locale files
cd /repo && rg '"learn-more".*#.*\s' apps/web/src/features/i18n/locales/ -A 0 -B 1

Repository: ecency/vision-next

Length of output: 117


🏁 Script executed:

# Check for the correct anchor format in the FAQ
cd /repo && rg -n 'id="what-are-rc"|name="what-are-rc"|what-are-rc' apps/web/ --type html --type json --type jsx --type ts

Repository: ecency/vision-next

Length of output: 117


🏁 Script executed:

# Search for rc-info references to understand the context
cd /repo && rg 'rc-info' apps/web/ --type json -B 2 -A 2 | head -50

Repository: ecency/vision-next

Length of output: 117


🏁 Script executed:

# Check the content at line 1134 in zh-CN.json and surrounding context
head -1140 apps/web/src/features/i18n/locales/zh-CN.json | tail -10

Repository: ecency/vision-next

Length of output: 398


🏁 Script executed:

# Check line 299 for comparison
sed -n '295,305p' apps/web/src/features/i18n/locales/zh-CN.json

Repository: ecency/vision-next

Length of output: 528


🏁 Script executed:

# Search for learn-more entries with spaces in anchors across locale files
rg '"learn-more".*#.*\s' apps/web/src/features/i18n/locales/ -A 0 -B 1

Repository: ecency/vision-next

Length of output: 2786


🏁 Script executed:

# Check for the correct anchor format in the FAQ
rg -n 'id="what-are-rc"|name="what-are-rc"|what-are-rc' apps/web/ --type html --type jsx --type ts

Repository: ecency/vision-next

Length of output: 89


🏁 Script executed:

# Search for rc-info references to understand the context
rg 'rc-info' apps/web/ --type json -B 2 -A 2 | head -50

Repository: ecency/vision-next

Length of output: 2991


🏁 Script executed:

# Search for FAQ page files
fd -e html -e jsx -e tsx -e ts 'faq' apps/web/

Repository: ecency/vision-next

Length of output: 807


🏁 Script executed:

# Search for what-are-rc or what are-rc anchor definitions
rg 'what-are-rc|what are-rc' apps/web/

Repository: ecency/vision-next

Length of output: 44050


🏁 Script executed:

# Check the rc-info.learn-more specifically in zh-CN.json and nearby context
sed -n '1130,1145p' apps/web/src/features/i18n/locales/zh-CN.json

Repository: ecency/vision-next

Length of output: 575


🏁 Script executed:

# Check hi-IN.json rc-info section for the same issue
rg -A 10 '"rc-info"' apps/web/src/features/i18n/locales/hi-IN.json

Repository: ecency/vision-next

Length of output: 442


Critical: Invalid space in URL anchor fragment.

The anchor contains a space (#what are-rc) which will break link navigation. The correct anchor format is #what-are-rc (hyphenated), which is confirmed by:

  • The component that opens this link: /faq#what-are-rc
  • The FAQ anchor key: what-are-rc
  • Other locale files using the same link
🔧 Proposed fix
-    "learn-more": "/faq#what are-rc",
+    "learn-more": "/faq#what-are-rc",
📝 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
"learn-more": "/faq#what are-rc",
"learn-more": "/faq#what-are-rc",
🤖 Prompt for AI Agents
In @apps/web/src/features/i18n/locales/zh-CN.json at line 1134, The "learn-more"
translation value contains an invalid space in the URL fragment ("#what are-rc")
which breaks navigation; update the value for the "learn-more" key in the zh-CN
locale to use the hyphenated anchor "#what-are-rc" (so the string becomes
"/faq#what-are-rc") to match the component and other locales.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

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 (3)
apps/web/src/features/i18n/locales/bg-BG.json (1)

2156-2182: Untranslated strings in Bulgarian locale.

The chat DM-related keys (leave-conversation, unpin-message, dm-not-allowed, dm-followers-only, dm-disabled) are in English. These should be translated to Bulgarian. The template variable {{username}} usage is correct.

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

2156-2183: Localize new chat/DM strings.

leave-conversation, unpin-message, and DM status strings are English; please translate to Indonesian.

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

2156-2182: DM restriction messages need complete, natural phrasing.

One string ends with a trailing comma and reads like a fragment; another is ungrammatical. Consider tightening phrasing.

💡 Suggested fix
-    "dm-followers-only": "Лише приймаються ОП людей, за якими вони стежать,",
-    "dm-disabled": "Є вимкнені прямі повідомлення"
+    "dm-followers-only": "Приймає ОП лише від підписників.",
+    "dm-disabled": "Прямі повідомлення вимкнено"
🤖 Fix all issues with AI agents
In `@apps/web/src/features/i18n/locales/lt-LT.json`:
- Around line 2179-2182: The current English key values under "unpin-message",
"dm-not-allowed", "dm-followers-only", and "dm-disabled" are
incorrect/misaligned for the intended "followers-only" meaning and are not
localized; update these values to correct English wording where needed (ensure
"dm-followers-only" conveys "Only accepts DMs from their followers") and provide
Lithuanian translations for all four keys in lt-LT.json (reference the JSON keys
"unpin-message", "dm-not-allowed", "dm-followers-only", and "dm-disabled" to
locate the strings).

In `@apps/web/src/features/i18n/locales/uk-UA.json`:
- Around line 1193-1202: The translation for dm-privacy.followers-only is
incorrect (it reads "people I follow" instead of "my followers"); update the
"followers-only" value to a correct Ukrainian phrase like "Тільки мої
підписники" or "Тільки підписники", and while here fix minor grammar in
"dm-privacy.title" (e.g., change to "Приватність особистих повідомлень") and
"dm-privacy.description" (e.g., "Контролюйте, хто може надсилати вам прямі
повідомлення, щоб запобігти спаму та фішинговим спробам.") so the dm-privacy
object contains accurate and grammatically correct strings.
♻️ Duplicate comments (14)
apps/web/src/features/i18n/locales/fr-FR.json (2)

1192-1202: Translation error in "followers-only" still present.

The followers-only value at line 1198 still contains the incorrect translation flagged in the previous review. "Seulement les personnes que je suis" means "Only people I follow", but the setting should mean "Only people who follow me".

This mislabels a privacy control and could cause users to misconfigure their DM settings.

🐛 Suggested fix
-      "followers-only": "Seulement les personnes que je suis",
+      "followers-only": "Uniquement les personnes qui me suivent",

2179-2182: Translation error in "dm-followers-only" (same issue as line 1198).

Line 2181 has the same inverted translation: "N'accepte que les MP des personnes qu'ils suivent" means "Only accepts DMs from people they follow", but should mean "Only accepts DMs from people who follow them" (i.e., their followers).

This is inconsistent with line 1083 which correctly uses "suiveurs" (followers).

🐛 Suggested fix
-    "dm-followers-only": "N'accepte que les MP des personnes qu'ils suivent",
+    "dm-followers-only": "N'accepte que les MP de ses abonnés",
apps/web/src/features/i18n/locales/es-ES.json (1)

2179-2182: Fix verb agreement in DM followers-only string.

Line 2181: "siguen" should be singular "sigue" to match the singular subject (the user whose profile is being viewed).

✏️ Proposed fix
-    "dm-followers-only": "Sólo acepta DMs de personas a las que siguen",
+    "dm-followers-only": "Sólo acepta DMs de personas a las que sigue",
apps/web/src/features/i18n/locales/de-DE.json (3)

1138-1138: Typo in FAQ anchor: #was-are-rc should be #what-are-rc

This issue was already identified in a previous review.


1192-1202: Translation error in followers-only already flagged

The followers-only value at line 1198 translates to "people I follow" instead of "people who follow me" — this reverses the privacy setting's meaning. This issue was already identified in a previous review.


2178-2182: Translation error in dm-followers-only already flagged

Line 2181's dm-followers-only value "Akzeptiert nur DMs von Personen, denen sie folgen" translates to "people they follow" instead of "people who follow them." This issue was already identified in a previous review.

The other translations in this block (unpin-message, dm-not-allowed, dm-disabled) are correct and the {{username}} placeholder is properly preserved.

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

1138-1138: Invalid space in URL anchor fragment.

The anchor contains a space (#what are-rc) which breaks link navigation. Should be #what-are-rc.

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

2156-2182: DM followers-only text reverses meaning.
Line 2181 reads “people they follow,” which flips the privacy rule.

🔧 Proposed fix
-    "dm-followers-only": "Accepteert DM's alleen van mensen die ze volgen",
+    "dm-followers-only": "Accepteert DM's alleen van mensen die hen volgen",

1192-1200: Fix followers-only meaning (reversed).
Line 1198 currently says “people I follow,” but the option should be “people who follow me.”

🔧 Proposed fix
-      "followers-only": "Alleen mensen die ik volg",
+      "followers-only": "Alleen mensen die mij volgen",
apps/web/src/features/i18n/locales/ja-JP.json (3)

299-299: Empty anchor and format@@2 artifact remain unfixed.

This issue was previously identified. The anchor tag has no visible link text and contains a stray format@@2 string that will render as literal text in the UI.


1192-1202: Semantic mismatch in followers-only translation persists.

Line 1198 translates "followers-only" as "フォローしている人のみ" (people you follow), but the key semantics indicate it should mean "your followers." This was previously flagged. Note that line 1083 correctly uses "フォロワーのみ" — the same translation should be applied here for consistency.


2179-2182: Line 2181: Semantic mismatch in dm-followers-only persists.

This was previously flagged. The translation "フォローしている人からのDMのみ受け付けます" means "accepts DMs only from people you follow," but the key indicates it should mean "accepts DMs only from your followers" (フォロワーからのDMのみ受け付けます).

Lines 2179, 2180, and 2182 are correctly translated.

apps/web/src/features/i18n/locales/lt-LT.json (2)

299-299: Use the Lithuanian FAQ label for the anchor text.
The link text still says “FAQ”; elsewhere this file uses Lithuanian “DUK/Dažniausiai užduodami klausimai.”


1192-1201: Align “followers-only” wording with actual follower direction and localize.
The label reads as following-only; it should indicate “people who follow me” and be in Lithuanian.

🟡 Minor comments (34)
apps/web/src/features/i18n/locales/tr-TR.json-2156-2156 (1)

2156-2156: Untranslated string.

Should be translated to Turkish: "leave-conversation": "Sohbetten ayrıl"

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

2179-2182: Untranslated chat DM-related strings.

These strings should be translated to Turkish:

  • "unpin-message": "Mesajı sabitlemeyi kaldır"
  • "dm-not-allowed": "@{{username}} sizden mesaj kabul etmiyor"
  • "dm-followers-only": "Yalnızca takip ettiği kişilerden DM kabul ediyor"
  • "dm-disabled": "Doğrudan mesajları devre dışı bıraktı"
apps/web/src/features/i18n/locales/tr-TR.json-867-868 (1)

867-868: Untranslated strings in Turkish locale file.

These entries are in English but should be translated to Turkish for consistency with the rest of the locale file. Turkish users will see English text for deleted content messages.

Suggested translations:

  • "deleted-content": "Bu gönderi {{author}} tarafından silindi"
  • "deleted-no-history": "Silinen içerik geçmişi blok zincirinde mevcut değil."
apps/web/src/features/i18n/locales/tr-TR.json-3054-3054 (1)

3054-3054: Untranslated string.

Should be translated to Turkish: "convert": "Dönüştür" (consistent with the existing translation at line 1234 in the wallet section).

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

1082-1084: Untranslated strings in Turkish locale file.

These profile section entries are in English but should be translated to Turkish:

  • "empty-communities-hint": "Kullanıcı henüz herhangi bir topluluğa üye değil. Topluluklardan birine katılın veya kendi topluluğunuzu oluşturun"
  • "dm-followers-only": "DM: yalnızca takipçiler"
  • "dm-disabled": "DM: devre dışı"
apps/web/src/features/i18n/locales/tr-TR.json-1192-1202 (1)

1192-1202: New DM privacy settings section is entirely untranslated.

This entire new settings block is in English but should be translated to Turkish:

"settings": {
  "dm-privacy": {
    "title": "Doğrudan Mesaj Gizliliği",
    "who-can-message": "Size kimler doğrudan mesaj gönderebilir?",
    "description": "Spam ve kimlik avı girişimlerini önlemek için size kimlerin doğrudan mesaj gönderebileceğini kontrol edin.",
    "allow-all": "Herkes",
    "followers-only": "Yalnızca takip ettiğim kişiler",
    "no-one": "Kimse (DM'leri devre dışı bırak)"
  },
  "dm-privacy-updated": "DM gizlilik ayarları başarıyla güncellendi"
}
apps/web/src/features/i18n/locales/bg-BG.json-1192-1202 (1)

1192-1202: Untranslated strings in Bulgarian locale.

The entire new settings.dm-privacy section is in English. All user-facing strings should be translated to Bulgarian for the bg-BG locale file.

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

1082-1084: Untranslated strings in Bulgarian locale.

These profile DM-related keys are in English. They should be translated to Bulgarian for the bg-BG locale.

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

3054-3054: Untranslated string in Bulgarian locale.

The convert key is in English. Should be translated to Bulgarian (e.g., "Преобразуване" which is already used elsewhere in the file at line 1234).

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

867-868: Untranslated strings in Bulgarian locale.

These new keys are in English. For consistency with the locale file (bg-BG), these should be translated to Bulgarian.

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

3054-3054: Untranslated wallet operation string.

This string should be translated to Uzbek: "Konvertatsiya qilish" (which is already used elsewhere in the file, e.g., line 1234).

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

867-868: Untranslated strings in Uzbek locale.

These new strings are in English but should be translated to Uzbek for consistency with the rest of the locale file.

Key Current (English) Suggested Translation
deleted-content "This post was deleted by {{author}}" "Bu post {{author}} tomonidan o'chirilgan"
deleted-no-history "The deleted content history is not available from the blockchain." "O'chirilgan kontent tarixi blokcheynda mavjud emas."
apps/web/src/features/i18n/locales/uz-UZ.json-1082-1084 (1)

1082-1084: Untranslated profile strings.

These strings are in English and should be translated to Uzbek:

Key Current (English) Suggested Translation
empty-communities-hint "User isn't a member of any community yet..." "Foydalanuvchi hali birorta guruhga a'zo emas. Guruhlardan biriga qo'shiling yoki o'zingiznikini yarating"
dm-followers-only "DMs: followers only" "Xabarlar: faqat kuzatuvchilar"
dm-disabled "DMs: disabled" "Xabarlar: o'chirilgan"
apps/web/src/features/i18n/locales/uz-UZ.json-1192-1202 (1)

1192-1202: Entire DM privacy settings section is untranslated.

This new settings section contains only English text. For a complete localization, these should be translated to Uzbek:

Key Current (English) Suggested Translation
title "Direct Message Privacy" "To'g'ridan-to'g'ri xabar maxfiyligi"
who-can-message "Who can send you direct messages?" "Kim sizga to'g'ridan-to'g'ri xabar yuborishi mumkin?"
description "Control who can send you direct messages..." "Spam va fishing urinishlarini oldini olish uchun kimlar sizga xabar yuborishini boshqaring."
allow-all "Everyone" "Hamma"
followers-only "Only people I follow" "Faqat men kuzatgan odamlar"
no-one "No one (disable DMs)" "Hech kim (xabarlarni o'chirish)"
dm-privacy-updated "DM privacy settings updated successfully" "Xabar maxfiyligi sozlamalari muvaffaqiyatli yangilandi"
apps/web/src/features/i18n/locales/uz-UZ.json-2179-2182 (1)

2179-2182: Untranslated chat DM privacy strings.

These new strings need Uzbek translations:

Key Current (English) Suggested Translation
unpin-message "Unpin message" "Xabarni olib tashlash"
dm-not-allowed "@{{username}} doesn't accept messages from you" "@{{username}} sizdan xabar qabul qilmaydi"
dm-followers-only "Only accepts DMs from people they follow" "Faqat o'zi kuzatgan odamlardan xabar qabul qiladi"
dm-disabled "Has disabled direct messages" "To'g'ridan-to'g'ri xabarlarni o'chirib qo'ygan"
apps/web/src/features/i18n/locales/uz-UZ.json-2156-2156 (1)

2156-2156: Untranslated chat string.

This string should be translated to Uzbek: "Suhbatni tark etish"

apps/web/src/features/i18n/locales/it-IT.json-1082-1082 (1)

1082-1082: Incomplete Italian translation.

The phrase "crea la tua stessa" appears to be truncated. It should likely read "crea la tua stessa comunità" (create your own community) to complete the sentence properly.

Suggested fix
-    "empty-communities-hint": "L'utente non è ancora un membro di nessuna comunità. Unisciti a una delle comunità o crea la tua stessa",
+    "empty-communities-hint": "L'utente non è ancora un membro di nessuna comunità. Unisciti a una delle comunità o crea la tua stessa comunità",
apps/web/src/features/i18n/locales/zh-CN.json-2179-2182 (1)

2179-2182: Untranslated English text in chat section.

Line 2180 contains untranslated English: "@{{username}} doesn't accept messages from you". This should be translated for consistency with other DM-related strings.

🌐 Proposed fix
     "unpin-message": "取消置顶消息",
-    "dm-not-allowed": "@{{username}} doesn't accept messages from you",
+    "dm-not-allowed": "@{{username}} 不接受您的消息",
     "dm-followers-only": "只接受他们所关注的人的私信",
     "dm-disabled": "已禁用私信"
apps/web/src/features/i18n/locales/zh-CN.json-867-868 (1)

867-868: Untranslated English text in Chinese locale.

Line 867 contains English text "This post was deleted by {{author}}" that should be translated to Chinese. Line 868 has mixed language with "blockchain" remaining in English.

Suggested translations:

  • Line 867: "此帖子已被 {{author}} 删除"
  • Line 868: "已删除的内容历史记录在区块链上不可用。"
🌐 Proposed fix
-    "deleted-content": "This post was deleted by {{author}}",
-    "deleted-no-history": "已删除的内容历史记录不可用 blockchain。",
+    "deleted-content": "此帖子已被 {{author}} 删除",
+    "deleted-no-history": "已删除的内容历史记录在区块链上不可用。",
apps/web/src/features/i18n/locales/id-ID.json-1082-1084 (1)

1082-1084: Localize new profile/DM strings.

empty-communities-hint, dm-followers-only, and dm-disabled are English; please translate to Indonesian for consistency.

apps/web/src/features/i18n/locales/id-ID.json-1192-1202 (1)

1192-1202: Translate DM privacy settings block.

All new DM privacy strings are English; please provide Indonesian translations to keep locale consistency.

apps/web/src/features/i18n/locales/id-ID.json-867-868 (1)

867-868: Translate new deleted-content strings for id-ID.

These new keys are still English in the Indonesian locale. Please localize them to avoid mixed-language UI.

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

3054-3054: Localize wallet operation label to match existing terminology.

convert is currently “Convert” while other wallet strings use “Konversi.” Please align it.

Proposed fix
-      "convert": "Convert",
+      "convert": "Konversi",
apps/web/src/features/i18n/locales/ur-PK.json-1082-1084 (1)

1082-1084: New DM privacy profile strings are untranslated.

The new profile strings for DM privacy indicators (dm-followers-only, dm-disabled) are in English rather than Urdu. Same concern as other new keys in this file.

apps/web/src/features/i18n/locales/ur-PK.json-1192-1202 (1)

1192-1202: DM privacy settings block structure is correct, but strings are untranslated.

The new settings.dm-privacy block is well-structured with clear, descriptive keys. However, all values are in English and should be translated to Urdu for this locale file.

apps/web/src/features/i18n/locales/ur-PK.json-867-868 (1)

867-868: Untranslated strings in Urdu locale.

These new strings are in English but this is the ur-PK (Urdu - Pakistan) locale file. Verify whether these are placeholder strings awaiting translation or if Urdu translations should be provided.

apps/web/src/features/i18n/locales/pl-PL.json-2179-2182 (1)

2179-2182: Fix mistranslated DM “followers only” message. The Polish text mentions “gift” instead of “messages” and loses the follower relation.

💡 Suggested fix
-    "dm-followers-only": "Akceptuje tylko prezent od ludzi, którzy obserwują",
+    "dm-followers-only": "Akceptuje wiadomości tylko od obserwujących",
apps/web/src/features/i18n/locales/pt-PT.json-1082-1084 (1)

1082-1084: Translation error: "Dados" should be "DMs" or "Mensagens diretas".

Line 1084 translates to "Data: disabled" but the key dm-disabled refers to Direct Messages. Compare with line 2182 which correctly uses "mensagens diretas".

🌐 Proposed fix
   "empty-communities-hint": "Usuário ainda não é membro de qualquer comunidade. Junte-se a uma das comunidades ou crie sua própria comunidade",
   "dm-followers-only": "DMs: apenas seguidores",
-  "dm-disabled": "Dados: desativado"
+  "dm-disabled": "DMs: desativado"
apps/web/src/features/i18n/locales/ru-RU.json-2179-2182 (1)

2179-2182: Translation issue: "СМС" (SMS) is incorrect terminology for direct messages.

Line 2181 uses "СМС" which refers to phone text messages, not direct/private messages in an app context. This could confuse users.

📝 Suggested fix
-    "dm-followers-only": "Принимает СМС только от пользователей, за которыми они следуют",
+    "dm-followers-only": "Принимает сообщения только от пользователей, на которых подписан",
apps/web/src/features/i18n/locales/ru-RU.json-1138-1138 (1)

1138-1138: Fix broken FAQ anchor link in Russian locale.

The URL anchor /faq#что-are-rc mixes Russian Cyrillic (что) with English (are-rc), resulting in a malformed anchor. This will cause a broken link since the FAQ anchor is defined using the English key (what-are-rc). Change to /faq#what-are-rc to match the FAQ structure used across other locales.

Suggested fix
-    "learn-more": "/faq#что-are-rc",
+    "learn-more": "/faq#what-are-rc",
apps/web/src/features/i18n/locales/uk-UA.json-1082-1084 (1)

1082-1084: Fix grammar and DM label consistency.

The community hint has grammatical issues, and the DM labels mix abbreviations (“ОП” vs “ДП”). Please align to a single abbreviation and correct the hint.

💡 Suggested fix
-    "empty-communities-hint": "Користувач ще не є учасником будь-якого спільноти. Приєднуйтесь до одного з спільнотств або створіть власний",
-    "dm-followers-only": "ОП: тільки підписники",
-    "dm-disabled": "ДП: вимкнуто"
+    "empty-communities-hint": "Користувач ще не є учасником жодної спільноти. Приєднуйтесь до однієї зі спільнот або створіть власну",
+    "dm-followers-only": "ОП: лише підписники",
+    "dm-disabled": "ОП: вимкнено"
apps/web/src/features/i18n/locales/lt-LT.json-866-868 (1)

866-868: Localize new deleted‑content messages.
These new keys are still English in the lt‑LT file and should be translated for user-facing copy.

apps/web/src/features/i18n/locales/lt-LT.json-1082-1084 (1)

1082-1084: Localize new profile strings.
empty-communities-hint, dm-followers-only, and dm-disabled are still English; please translate for consistency.

apps/web/src/features/i18n/locales/lt-LT.json-2156-2156 (1)

2156-2156: Localize the “leave conversation” label.
This new key is still English in the lt‑LT locale.

🧹 Nitpick comments (3)
apps/web/src/features/i18n/locales/sr-CS.json (3)

867-868: Missing Serbian translations for new keys.

These new strings are in English but this is the Serbian (sr-CS) locale file. Other strings in this file have Serbian translations (e.g., line 866 has partial Serbian). Consider translating these strings to Serbian for consistency.

-    "deleted-content": "This post was deleted by {{author}}",
-    "deleted-no-history": "The deleted content history is not available from the blockchain.",
+    "deleted-content": "Ovaj post je obrisao/la {{author}}",
+    "deleted-no-history": "Istorija obrisanog sadržaja nije dostupna na blockchain-u.",

1082-1084: New profile DM strings are in English.

These new DM-related strings should be translated to Serbian for locale consistency.


1192-1202: New DM privacy settings section needs Serbian translations.

This entire new section contains English strings. For consistency with the rest of the locale file, these should be translated to Serbian.

Example translations:

  • "title": "Direct Message Privacy""title": "Privatnost direktnih poruka"
  • "allow-all": "Everyone""allow-all": "Svi"
  • "followers-only": "Only people I follow""followers-only": "Samo ljudi koje pratim"
  • "no-one": "No one (disable DMs)""no-one": "Niko (onemogući direktne poruke)"

Comment on lines +2179 to +2182
"unpin-message": "Unpin message",
"dm-not-allowed": "@{{username}} doesn't accept messages from you",
"dm-followers-only": "Only accepts DMs from people they follow",
"dm-disabled": "Has disabled direct messages"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix followers-only DM wording (followers vs following) and localize.
“Only accepts DMs from people they follow” describes following-only, not followers-only. Please align the meaning and translate these new strings (including unpin-message).

🤖 Prompt for AI Agents
In `@apps/web/src/features/i18n/locales/lt-LT.json` around lines 2179 - 2182, The
current English key values under "unpin-message", "dm-not-allowed",
"dm-followers-only", and "dm-disabled" are incorrect/misaligned for the intended
"followers-only" meaning and are not localized; update these values to correct
English wording where needed (ensure "dm-followers-only" conveys "Only accepts
DMs from their followers") and provide Lithuanian translations for all four keys
in lt-LT.json (reference the JSON keys "unpin-message", "dm-not-allowed",
"dm-followers-only", and "dm-disabled" to locate the strings).

Comment on lines 1193 to 1202
"dm-privacy": {
"title": "Приватність для особистого повідомлення",
"who-can-message": "Хто може надсилати Вам особисті повідомлення?",
"description": "Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму і фішинговій спроби.",
"allow-all": "Кожний",
"followers-only": "Тільки люди, за якими я слідкую",
"no-one": "Ніхто (заборонити ОП)"
},
"dm-privacy-updated": "Налаштування конфіденційності DM успішно оновлено"
},
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

DM “followers-only” translation flips the meaning.

“Тільки люди, за якими я слідкую” implies people I follow, not my followers. This can mislead a privacy setting. Also minor grammar in the description/title.

💡 Suggested fix
-      "title": "Приватність для особистого повідомлення",
+      "title": "Приватність особистих повідомлень",
       "who-can-message": "Хто може надсилати Вам особисті повідомлення?",
-      "description": "Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму і фішинговій спроби.",
+      "description": "Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму і фішинговим спробам.",
       "allow-all": "Кожний",
-      "followers-only": "Тільки люди, за якими я слідкую",
+      "followers-only": "Лише мої підписники",
       "no-one": "Ніхто (заборонити ОП)"
📝 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
"dm-privacy": {
"title": "Приватність для особистого повідомлення",
"who-can-message": "Хто може надсилати Вам особисті повідомлення?",
"description": "Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму і фішинговій спроби.",
"allow-all": "Кожний",
"followers-only": "Тільки люди, за якими я слідкую",
"no-one": "Ніхто (заборонити ОП)"
},
"dm-privacy-updated": "Налаштування конфіденційності DM успішно оновлено"
},
"dm-privacy": {
"title": "Приватність особистих повідомлень",
"who-can-message": "Хто може надсилати Вам особисті повідомлення?",
"description": "Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму і фішинговим спробам.",
"allow-all": "Кожний",
"followers-only": "Лише мої підписники",
"no-one": "Ніхто (заборонити ОП)"
},
"dm-privacy-updated": "Налаштування конфіденційності DM успішно оновлено"
},
🤖 Prompt for AI Agents
In `@apps/web/src/features/i18n/locales/uk-UA.json` around lines 1193 - 1202, The
translation for dm-privacy.followers-only is incorrect (it reads "people I
follow" instead of "my followers"); update the "followers-only" value to a
correct Ukrainian phrase like "Тільки мої підписники" or "Тільки підписники",
and while here fix minor grammar in "dm-privacy.title" (e.g., change to
"Приватність особистих повідомлень") and "dm-privacy.description" (e.g.,
"Контролюйте, хто може надсилати вам прямі повідомлення, щоб запобігти спаму та
фішинговим спробам.") so the dm-privacy object contains accurate and
grammatically correct strings.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

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

2157-2186: Translate new chat/DM strings (currently English).
Lines 2157-2186 are English, which breaks locale consistency for bg-BG.

🤖 Fix all issues with AI agents
In `@apps/web/src/features/i18n/locales/uk-UA.json`:
- Around line 2183-2186: Replace the incorrect and inconsistent translation for
the dm-followers-only key: change the value from "Лише приймаються ОП людей, за
якими вони стежать," to the consistent, correct phrase "Лише підписники"
(matching the usage at line 1083) and remove the trailing comma so the JSON
string ends without punctuation.
♻️ Duplicate comments (13)
apps/web/src/features/i18n/locales/ja-JP.json (3)

299-299: Fix empty anchor + format@@2 artifact in sign-up learn‑more (Line 299).
The current string renders an empty link and leaks the format token. Please add visible anchor text and remove the artifact.

🛠 Suggested fix
-    "learn-more": "<a href=\"/faq#how-to-join\"></a> のメリットについての詳細はこちらformat@@2",
+    "learn-more": "メリットについての詳細は <a href=\"/faq#how-to-join\">こちら</a> をご覧ください。",

1192-1202: Align “followers-only” meaning (Line 1198).
“フォローしている人のみ” means “people you follow,” but this setting is for followers.

🛠 Suggested fix
-      "followers-only": "フォローしている人のみ",
+      "followers-only": "フォロワーのみ",

2183-2186: Fix “dm-followers-only” semantic inversion (Line 2185).
Current text implies “people you follow,” but the key is “followers-only.”

🛠 Suggested fix
-    "dm-followers-only": "フォローしている人からのDMのみ受け付けます",
+    "dm-followers-only": "フォロワーからのDMのみ受け付けます",
apps/web/src/features/i18n/locales/uk-UA.json (1)

1192-1203: DM "followers-only" translation issue previously flagged.

The issues identified in the past review remain unresolved:

  • Line 1198: "Тільки люди, за якими я слідкую" means "people I follow", not "my followers"
  • Line 1196: Grammar issue with "фішинговій спроби" (should be "фішинговим спробам")
apps/web/src/features/i18n/locales/zh-CN.json (1)

1138-1138: Fix broken FAQ anchor (space in fragment).
Line 1138 contains a space in the hash, which breaks navigation.

🔧 Proposed fix
-    "learn-more": "/faq#what are-rc",
+    "learn-more": "/faq#what-are-rc",
apps/web/src/features/i18n/locales/hi-IN.json (1)

1138-1138: Fix URL in rc-info.learn-more to use the standard routing path.

This URL uses Hindi Unicode characters (/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं) instead of the application's routing path. This will result in a 404 when users click the link. All other locales use /faq#what-are-rc.

🐛 Proposed fix
-    "learn-more": "/अक्सर पूछे जाने वाले प्रश्न#आरसी क्या हैं",
+    "learn-more": "/faq#what-are-rc",
apps/web/src/features/i18n/locales/lt-LT.json (3)

299-299: Use the Lithuanian abbreviation "DUK" instead of "FAQ" for consistency.

This was flagged in a previous review. The file uses "DUK" (Dažniausiai užduodami klausimai) elsewhere (e.g., lines 714, 1954). Replace "FAQ" with "DUK" in the link text.


1192-1203: Missing Lithuanian translations for DM privacy settings.

The entire settings.dm-privacy block is in English. Since this is the Lithuanian locale file, all user-facing strings should be translated.

Additionally, the followers-only wording issue ("Only people I follow" vs "Only people who follow me") was flagged in a previous review.

,


2183-2186: Missing Lithuanian translations for DM restriction messages.

These chat strings are in English and should be translated to Lithuanian.

The dm-followers-only wording issue ("people they follow" should be "their followers") was flagged in a previous review.

,

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

1192-1203: The "followers-only" translation reverses the intended privacy meaning.

Line 1198: "Alleen mensen die ik volg" translates to "Only people I follow", but a "followers-only" DM privacy setting should mean "Only people who follow me".

This creates an inconsistency with profile.dm-followers-only (line 1083) which correctly uses "alleen volgers" (only followers).

Suggested fix
-      "followers-only": "Alleen mensen die ik volg",
+      "followers-only": "Alleen mensen die mij volgen",
apps/web/src/features/i18n/locales/ac-ace.json (1)

1192-1203: Untranslated Acehnese strings for DM privacy settings.

These new DM privacy keys contain English text that should be translated to Acehnese to maintain locale consistency. This has been flagged in a previous review.

apps/web/src/features/i18n/locales/fr-FR.json (2)

1192-1203: Fix "followers-only" translation (semantic inversion).

Line 1198's translation "Seulement les personnes que je suis" means "Only people I follow", but the setting should restrict DMs to "Only people who follow me". This inverts the privacy control's meaning.

🐛 Suggested fix
-      "followers-only": "Seulement les personnes que je suis",
+      "followers-only": "Uniquement les personnes qui me suivent",

2183-2186: Fix "dm-followers-only" translation (same semantic inversion).

Line 2185's translation "N'accepte que les MP des personnes qu'ils suivent" means "Only accepts DMs from people they follow", but should mean "Only accepts DMs from people who follow them".

🐛 Suggested fix
-    "dm-followers-only": "N'accepte que les MP des personnes qu'ils suivent",
+    "dm-followers-only": "N'accepte que les MP des personnes qui les suivent",
🟡 Minor comments (31)
apps/web/src/features/i18n/locales/uz-UZ.json-867-868 (1)

867-868: Localize deleted‑content messages for uz-UZ.

These new strings are still in English; please translate to Uzbek (or omit them to fall back to the base locale).

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

1193-1202: DM privacy settings block is still English.

Translate these labels to Uzbek (or drop them for fallback) to keep locale consistency.

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

2183-2186: DM availability messages not localized.

These new status strings are still English; translate for Uzbek UX.

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

2157-2160: Chat safety warning copy not localized.

Please translate these new DM warning strings to Uzbek.

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

1082-1084: DM status label is ambiguous and unlocalized.

Line 1083 says “followers only,” but Line 1198 and Line 2185 say “people I follow.” Please align the wording and translate these new strings to Uzbek.

apps/web/src/features/i18n/locales/pl-PL.json-2183-2186 (1)

2183-2186: Translation error: "prezent" should be "wiadomości"

Line 2185 has an incorrect translation. "prezent" means "gift" in Polish, but this message should refer to "messages".

Current: "Akceptuje tylko prezent od ludzi, którzy obserwują"
Expected: "Akceptuje tylko wiadomości od osób, które obserwują" (Only accepts messages from people who follow)

🌐 Suggested fix
 "unpin-message": "Odepnij wiadomość",
 "dm-not-allowed": "@{{username}} nie akceptuje wiadomości od Ciebie",
-"dm-followers-only": "Akceptuje tylko prezent od ludzi, którzy obserwują",
+"dm-followers-only": "Akceptuje tylko wiadomości od osób, które obserwują",
 "dm-disabled": "Posiada wyłączone wiadomości bezpośrednie"
apps/web/src/features/i18n/locales/uk-UA.json-1082-1084 (1)

1082-1084: Inconsistent abbreviation: "ДП" should be "ОП".

Line 1084 uses "ДП" but line 1083 uses "ОП" for DM (Direct Message). For consistency, both should use the same abbreviation.

Suggested fix
       "dm-followers-only": "ОП: тільки підписники",
-      "dm-disabled": "ДП: вимкнуто"
+      "dm-disabled": "ОП: вимкнуто"
apps/web/src/features/i18n/locales/ru-RU.json-1138-1138 (1)

1138-1138: Broken FAQ link: mixed Russian/English URL anchor.

The anchor #что-are-rc mixes Russian ("что") with English ("are-rc"). FAQ section anchors should remain in English to match the actual FAQ page structure. This will result in a 404 or broken navigation.

🔧 Proposed fix
-    "learn-more": "/faq#что-are-rc",
+    "learn-more": "/faq#what-are-rc",
apps/web/src/features/i18n/locales/pcm-NG.json-1192-1203 (1)

1192-1203: New DM privacy settings structure is well-organized, but uses English text.

The structure for the DM privacy feature is well-organized with clear hierarchy. However, all strings are in English rather than Nigerian Pidgin.

The feature additions are functionally correct, but for full localization they should be translated.

apps/web/src/features/i18n/locales/pcm-NG.json-1082-1084 (1)

1082-1084: Profile DM privacy entries are in English instead of Pidgin.

Similar to the deleted-content entries, these new DM privacy strings should be translated to Nigerian Pidgin for locale consistency.

apps/web/src/features/i18n/locales/pcm-NG.json-867-868 (1)

867-868: New entries are in English instead of Nigerian Pidgin.

These new i18n entries are in English, but this is the Nigerian Pidgin (pcm-NG) locale file. Other entries in this file use Pidgin (e.g., "done": "E don go", "memo-help": "Na everybody go see this memo").

Consider translating these to Nigerian Pidgin for consistency:

  • deleted-content: Could be something like "Dis post don delete by {{author}}"
  • deleted-no-history: Could be something like "E no get history for dis deleted content from blockchain"
apps/web/src/features/i18n/locales/pcm-NG.json-3058-3058 (1)

3058-3058: Inconsistent translation for "convert" within the same file.

Line 1235 already has "convert": "Turn am" using Nigerian Pidgin for the same concept. This new entry under wallet.operations.convert uses English "Convert" instead.

For consistency, this should likely be "convert": "Turn am" to match the existing translation.

-      "convert": "Convert",
+      "convert": "Turn am",
apps/web/src/features/i18n/locales/zh-CN.json-2183-2186 (1)

2183-2186: Translate dm-not-allowed to zh‑CN for locale consistency.
Line 2184 is English in a Chinese locale.

💡 Suggested localization
-    "dm-not-allowed": "@{{username}} doesn't accept messages from you",
+    "dm-not-allowed": "@{{username}} 不接受你的私信",
apps/web/src/features/i18n/locales/zh-CN.json-866-868 (1)

866-868: Localize new deleted-content strings for zh‑CN.
Lines 867–868 are English/mixed and will surface in Chinese UI.

💡 Suggested localization
-    "deleted-content": "This post was deleted by {{author}}",
-    "deleted-no-history": "已删除的内容历史记录不可用 blockchain。",
+    "deleted-content": "该帖子已被 {{author}} 删除",
+    "deleted-no-history": "已删除内容的历史记录在区块链上不可用。"
apps/web/src/features/i18n/locales/ur-PK.json-1083-1084 (1)

1083-1084: Align “followers-only” wording across profile/settings/chat.

Profile says “followers only”, while settings/chat indicate “people I/they follow”, which flips the meaning. Please align to the actual product rule for DM privacy to avoid misleading users.

🔧 Suggested fix (if the rule is “people they follow”)
-    "dm-followers-only": "DMs: followers only",
+    "dm-followers-only": "DMs: people they follow only",

Also applies to: 1198-1199, 2185-2186

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

867-868: Untranslated strings in Hindi locale.

These keys contain English text instead of Hindi translations: "deleted-content": "This post was deleted by {{author}}" and "deleted-no-history": "The deleted content history is not available from the blockchain."

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

1192-1203: Entire settings.dm-privacy block is untranslated.

All strings in this new settings block are in English rather than Hindi. Keys affected: title, who-can-message, description, allow-all, followers-only, no-one, dm-privacy-updated, and dm-privacy-failed.

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

2157-2160: Untranslated chat strings.

These new chat-related keys contain English text instead of Hindi translations:

  • leave-conversation
  • dm-warning-title
  • dm-warning-body
  • dm-warning-settings
apps/web/src/features/i18n/locales/hi-IN.json-1083-1084 (1)

1083-1084: Untranslated strings in Hindi locale.

These DM-related keys contain English text instead of Hindi translations:

  • "dm-followers-only": "DMs: followers only"
  • "dm-disabled": "DMs: disabled"
apps/web/src/features/i18n/locales/hi-IN.json-2183-2186 (1)

2183-2186: Untranslated DM privacy strings in chat section.

These keys contain English text instead of Hindi translations:

  • unpin-message
  • dm-not-allowed
  • dm-followers-only
  • dm-disabled
apps/web/src/features/i18n/locales/hi-IN.json-3058-3058 (1)

3058-3058: Untranslated wallet operation string.

The convert key contains English text "Convert" instead of a Hindi translation. Other wallet operation strings in this file use Hindi (e.g., line 1235: "convert": "बदलें").

💡 Suggested fix
-      "convert": "Convert",
+      "convert": "बदलें",
apps/web/src/features/i18n/locales/lt-LT.json-867-868 (1)

867-868: Missing Lithuanian translations for new entries.

These strings are in English but should be localized to Lithuanian for consistency with the rest of this locale file.

apps/web/src/features/i18n/locales/lt-LT.json-1082-1084 (1)

1082-1084: Missing Lithuanian translations for profile DM status strings.

These user-facing strings are in English. Translate to Lithuanian for consistency with the rest of this locale file.

apps/web/src/features/i18n/locales/lt-LT.json-2157-2160 (1)

2157-2160: Missing Lithuanian translations for DM safety warnings.

These chat safety messages are in English. Given their importance for user safety, they should be translated to Lithuanian.

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

867-868: Multiple new keys added in English to Turkish locale file.

The following newly added keys contain English text instead of Turkish translations:

  • Lines 867-868: deleted-content, deleted-no-history
  • Lines 1082-1084: empty-communities-hint, dm-followers-only, dm-disabled
  • Lines 1192-1203: Entire settings.dm-privacy object
  • Lines 2157-2160: leave-conversation, dm-warning-title, dm-warning-body, dm-warning-settings
  • Lines 2183-2186: unpin-message, dm-not-allowed, dm-followers-only, dm-disabled
  • Line 3058: convert (Turkish equivalent "Dönüştür" already exists elsewhere in the file)

Turkish users will see English strings for these new DM privacy features. Consider completing the translations via Crowdin before merging, or create a follow-up task to ensure these get translated.

Also applies to: 1082-1084, 1192-1203, 2157-2160, 2183-2186, 3058-3058

apps/web/src/features/i18n/locales/it-IT.json-1197-1199 (1)

1197-1199: Align “followers-only” wording with key meaning.
followers-only is translated as “Solo le persone che seguo” (people I follow), while the key name and profile label indicate “followers.” The chat status string is also ambiguous. This could flip the privacy meaning for users.

🔧 Suggested wording alignment
-      "followers-only": "Solo le persone che seguo",
+      "followers-only": "Solo chi mi segue",

-    "dm-followers-only": "Accetta solo DM da persone che seguono",
+    "dm-followers-only": "Accetta solo DM dai follower",

Also applies to: 2185-2185

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

3058-3058: Align wallet operation label with existing Bulgarian terminology.
Line 3058 uses English “Convert” while the wallet section already uses “Преобразуване”.

✏️ Proposed fix
-      "convert": "Convert",
+      "convert": "Преобразуване",
apps/web/src/features/i18n/locales/bg-BG.json-1192-1203 (1)

1192-1203: Localize DM privacy settings strings.
Lines 1192-1203 are still English in bg-BG.json.

🌐 Suggested localization (adjust as needed)
-    "dm-privacy": {
-      "title": "Chat Privacy",
-      "who-can-message": "Who can send you direct messages?",
-      "description": "Control who can send you direct messages to prevent spam and phishing attempts.",
-      "allow-all": "Everyone",
-      "followers-only": "Only people I follow",
-      "no-one": "No one (disable DMs)"
-    },
-    "dm-privacy-updated": "DM privacy settings updated successfully",
-    "dm-privacy-failed": "Failed to update DM privacy settings"
+    "dm-privacy": {
+      "title": "Поверителност на чата",
+      "who-can-message": "Кой може да ви изпраща лични съобщения?",
+      "description": "Контролирайте кой може да ви пише, за да предотвратите спам и фишинг.",
+      "allow-all": "Всички",
+      "followers-only": "Само хората, които следвам",
+      "no-one": "Никой (изключи ЛС)"
+    },
+    "dm-privacy-updated": "Настройките за поверителност на ЛС са обновени успешно",
+    "dm-privacy-failed": "Неуспешно обновяване на настройките за поверителност на ЛС"
apps/web/src/features/i18n/locales/bg-BG.json-867-868 (1)

867-868: Localize new deleted-content strings for bg-BG.
Lines 867-868 are still in English, which is inconsistent with the BG locale.

🌐 Suggested localization (adjust as needed)
-    "deleted-content": "This post was deleted by {{author}}",
-    "deleted-no-history": "The deleted content history is not available from the blockchain.",
+    "deleted-content": "Тази публикация беше изтрита от {{author}}",
+    "deleted-no-history": "Историята на изтритото съдържание не е налична в блокчейна.",
apps/web/src/features/i18n/locales/bg-BG.json-299-299 (1)

299-299: Fix typo in the Bulgarian copy (Line 299).
“ползвите” → “ползите”.

✏️ Proposed fix
-    "learn-more": "Научете повече за ползвите от нашите <a href=\"/faq#how-to-join\">Често Задавани Въпроси</a>",
+    "learn-more": "Научете повече за ползите от нашите <a href=\"/faq#how-to-join\">Често Задавани Въпроси</a>",
apps/web/src/features/i18n/locales/bg-BG.json-1082-1084 (1)

1082-1084: Translate new profile hints (currently English).
Lines 1082-1084 should be Bulgarian for locale consistency.

🌐 Suggested localization (adjust as needed)
-    "empty-communities-hint": "User isn't a member of any community yet. Join one of the communities or create your own",
-    "dm-followers-only": "DMs: followers only",
-    "dm-disabled": "DMs: disabled"
+    "empty-communities-hint": "Потребителят все още не е член на общност. Присъедини се към общност или създай своя.",
+    "dm-followers-only": "ЛС: само последователи",
+    "dm-disabled": "ЛС: изключени"
🧹 Nitpick comments (2)
apps/web/src/features/i18n/locales/id-ID.json (2)

867-868: Untranslated strings in Indonesian locale.

These new keys are in English. Since this is a Crowdin update PR, the Indonesian translations may be pending. Consider flagging these for translation.


1082-1084: Profile DM status strings are untranslated.

The new dm-followers-only and dm-disabled keys, along with the updated hint, remain in English.

Comment on lines +2183 to +2186
"unpin-message": "Відкріпити повідомлення",
"dm-not-allowed": "@{{username}} не приймає повідомлення від вас",
"dm-followers-only": "Лише приймаються ОП людей, за якими вони стежать,",
"dm-disabled": "Є вимкнені прямі повідомлення"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Translation error and inconsistency in dm-followers-only.

Line 2185 has two issues:

  1. Semantic error: "людей, за якими вони стежать" translates to "people they follow", but the key dm-followers-only should indicate "followers only" (people who follow them)
  2. Inconsistency: This conflicts with line 1083 which correctly uses "тільки підписники" (only followers)
  3. Trailing comma at the end of the string
Suggested fix
       "unpin-message": "Відкріпити повідомлення",
       "dm-not-allowed": "@{{username}} не приймає повідомлення від вас",
-      "dm-followers-only": "Лише приймаються ОП людей, за якими вони стежать,",
+      "dm-followers-only": "Приймає ОП лише від підписників",
       "dm-disabled": "Є вимкнені прямі повідомлення"
📝 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
"unpin-message": "Відкріпити повідомлення",
"dm-not-allowed": "@{{username}} не приймає повідомлення від вас",
"dm-followers-only": "Лише приймаються ОП людей, за якими вони стежать,",
"dm-disabled": "Є вимкнені прямі повідомлення"
"unpin-message": "Відкріпити повідомлення",
"dm-not-allowed": "@{{username}} не приймає повідомлення від вас",
"dm-followers-only": "Приймає ОП лише від підписників",
"dm-disabled": "Є вимкнені прямі повідомлення"
🤖 Prompt for AI Agents
In `@apps/web/src/features/i18n/locales/uk-UA.json` around lines 2183 - 2186,
Replace the incorrect and inconsistent translation for the dm-followers-only
key: change the value from "Лише приймаються ОП людей, за якими вони стежать,"
to the consistent, correct phrase "Лише підписники" (matching the usage at line
1083) and remove the trailing comma so the JSON string ends without punctuation.

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