Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
a31e876
New translations en-us.json (French)
feruzm Feb 21, 2026
41a8e48
New translations en-us.json (Spanish)
feruzm Feb 21, 2026
8c1b013
New translations en-us.json (Bulgarian)
feruzm Feb 21, 2026
f6c3416
New translations en-us.json (German)
feruzm Feb 21, 2026
5992b5c
New translations en-us.json (Italian)
feruzm Feb 21, 2026
fa943fb
New translations en-us.json (Japanese)
feruzm Feb 21, 2026
76471c0
New translations en-us.json (Lithuanian)
feruzm Feb 21, 2026
02fe028
New translations en-us.json (Dutch)
feruzm Feb 21, 2026
cd56b3f
New translations en-us.json (Polish)
feruzm Feb 21, 2026
dfcb570
New translations en-us.json (Portuguese)
feruzm Feb 21, 2026
f7ff4e1
New translations en-us.json (Russian)
feruzm Feb 21, 2026
dd6745d
New translations en-us.json (Turkish)
feruzm Feb 21, 2026
3d3549f
New translations en-us.json (Ukrainian)
feruzm Feb 21, 2026
be1441f
New translations en-us.json (Chinese Simplified)
feruzm Feb 21, 2026
57a73e1
New translations en-us.json (Urdu (Pakistan))
feruzm Feb 21, 2026
d20a45b
New translations en-us.json (Indonesian)
feruzm Feb 21, 2026
3c1b456
New translations en-us.json (Thai)
feruzm Feb 21, 2026
1008cf3
New translations en-us.json (Hindi)
feruzm Feb 21, 2026
75233c7
New translations en-us.json (Uzbek)
feruzm Feb 21, 2026
bed4713
New translations en-us.json (Serbian (Latin))
feruzm Feb 21, 2026
535b63f
New translations en-us.json (Yoruba)
feruzm Feb 21, 2026
aea873a
New translations en-us.json (Nigerian Pidgin)
feruzm Feb 21, 2026
eb899f5
New translations en-us.json (Acehnese)
feruzm Feb 21, 2026
2b2e8d3
New translations en-us.json (Spanish)
feruzm Feb 21, 2026
4c733c8
New translations en-us.json (French)
feruzm Feb 22, 2026
6a8bb41
New translations en-us.json (Spanish)
feruzm Feb 22, 2026
aee015c
New translations en-us.json (Bulgarian)
feruzm Feb 22, 2026
58befb7
New translations en-us.json (German)
feruzm Feb 22, 2026
0f39911
New translations en-us.json (Italian)
feruzm Feb 22, 2026
3322ec7
New translations en-us.json (Japanese)
feruzm Feb 22, 2026
9a3b8b3
New translations en-us.json (Lithuanian)
feruzm Feb 22, 2026
facbafa
New translations en-us.json (Dutch)
feruzm Feb 22, 2026
598381a
New translations en-us.json (Polish)
feruzm Feb 22, 2026
cd5d69a
New translations en-us.json (Portuguese)
feruzm Feb 22, 2026
12d727f
New translations en-us.json (Russian)
feruzm Feb 22, 2026
24273c7
New translations en-us.json (Turkish)
feruzm Feb 22, 2026
abbd11e
New translations en-us.json (Ukrainian)
feruzm Feb 22, 2026
65110d0
New translations en-us.json (Chinese Simplified)
feruzm Feb 22, 2026
6f75e8a
New translations en-us.json (Urdu (Pakistan))
feruzm Feb 22, 2026
3651827
New translations en-us.json (Indonesian)
feruzm Feb 22, 2026
0a96297
New translations en-us.json (Thai)
feruzm Feb 22, 2026
c07a01e
New translations en-us.json (Hindi)
feruzm Feb 22, 2026
751f7b2
New translations en-us.json (Uzbek)
feruzm Feb 22, 2026
a32037e
New translations en-us.json (Serbian (Latin))
feruzm Feb 22, 2026
0a5d724
New translations en-us.json (Yoruba)
feruzm Feb 22, 2026
c290ee7
New translations en-us.json (Nigerian Pidgin)
feruzm Feb 22, 2026
d868e5d
New translations en-us.json (Acehnese)
feruzm Feb 22, 2026
ea8cf8b
New translations en-us.json (French)
feruzm Feb 23, 2026
6740980
New translations en-us.json (Spanish)
feruzm Feb 23, 2026
df79856
New translations en-us.json (Bulgarian)
feruzm Feb 23, 2026
103ad46
New translations en-us.json (German)
feruzm Feb 23, 2026
e4cbe8d
New translations en-us.json (Italian)
feruzm Feb 23, 2026
3fd6792
New translations en-us.json (Japanese)
feruzm Feb 23, 2026
f805baa
New translations en-us.json (Lithuanian)
feruzm Feb 23, 2026
2d864d0
New translations en-us.json (Dutch)
feruzm Feb 23, 2026
6554dd9
New translations en-us.json (Polish)
feruzm Feb 23, 2026
766416f
New translations en-us.json (Portuguese)
feruzm Feb 23, 2026
8d830f6
New translations en-us.json (Russian)
feruzm Feb 23, 2026
4546c99
New translations en-us.json (Turkish)
feruzm Feb 23, 2026
7ad3010
New translations en-us.json (Ukrainian)
feruzm Feb 23, 2026
c137e46
New translations en-us.json (Chinese Simplified)
feruzm Feb 23, 2026
bef7a71
New translations en-us.json (Urdu (Pakistan))
feruzm Feb 23, 2026
14db4a8
New translations en-us.json (Indonesian)
feruzm Feb 23, 2026
0f2625a
New translations en-us.json (Thai)
feruzm Feb 23, 2026
202c587
New translations en-us.json (Hindi)
feruzm Feb 23, 2026
8957cc6
New translations en-us.json (Uzbek)
feruzm Feb 23, 2026
c1cccc5
New translations en-us.json (Serbian (Latin))
feruzm Feb 23, 2026
8b9d76d
New translations en-us.json (Yoruba)
feruzm Feb 23, 2026
a95713a
New translations en-us.json (Nigerian Pidgin)
feruzm Feb 23, 2026
e9f0684
New translations en-us.json (Acehnese)
feruzm Feb 23, 2026
2ac9ba6
New translations en-us.json (Spanish)
feruzm Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/ac-ace.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "Preference updated!",
"permissions-title": "Keys & permissions",
"permissions-hint": "Manage your keys, control permissions over applications",
"permissions": "Open permissions"
"permissions": "Open permissions",
"image-server": "Image server",
"image-server-default": "Ecency images (Default)",
"image-server-hiveblog": "Hive images (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "Pinah lam konsep"
},
"bookmarks": {
"title": "Pëunanda"
"title": "Pëunanda",
"hint": "You'll receive notifications when bookmarked content receives a reply."
},
"favorites": {
"title": "Palèng galak"
"title": "Palèng galak",
"hint": "You'll receive notifications when a favorite author publishes new content."
},
"fragments": {
"title": "Snippets",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Classic",
"deck": "Deck"
},
"my-favorites-widget": {
"title": "My Favorites",
"empty": "You haven't added any favorite authors yet",
"empty-cta": "Discover authors",
"view-all": "View all"
},
"top-communities": {
"title": "Top communities",
"create-button": "Create decentralized community"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Please, top-up your wallet with some amount of tokens",
"topup-description": "When your wallet balance changes, page will detect automatically and let You continue account creation",
"validation-success": "We have validated your wallet",
"address-copied": "Address copied"
"address-copied": "Address copied",
"minimum-required": "At least {{minimum}} required to validate.",
"estimated-value": "Estimated value: ${{value}}",
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:

#!/bin/bash
# Check the estimated-value pattern across locale files
echo "=== Checking ac-ace.json for estimated-value ==="
rg -n "estimated-value" apps/web/src/features/i18n/locales/ac-ace.json -A1 -B1

echo ""
echo "=== Checking en.json (English baseline) for estimated-value ==="
rg -n "estimated-value" apps/web/src/features/i18n/locales/en.json -A1 -B1

echo ""
echo "=== Checking a few other locale files for consistency ==="
for file in apps/web/src/features/i18n/locales/de.json apps/web/src/features/i18n/locales/fr.json apps/web/src/features/i18n/locales/es.json; do
  if [ -f "$file" ]; then
    echo "--- $(basename "$file") ---"
    rg -n "estimated-value" "$file" -A1 -B1 || echo "(not found)"
  fi
done

Repository: ecency/vision-next

Length of output: 538


🏁 Script executed:

#!/bin/bash
# List all locale files to see what exists
echo "=== Available locale files ==="
ls -la apps/web/src/features/i18n/locales/ | head -20

echo ""
echo "=== Searching for estimated-value across all JSON files ==="
rg "estimated-value" apps/web/src/features/i18n/locales/ --type json -l

echo ""
echo "=== Show all estimated-value occurrences with context ==="
rg "estimated-value" apps/web/src/features/i18n/locales/ --type json -B1 -A1

Repository: ecency/vision-next

Length of output: 10470


Hardcoded $ currency symbol in estimated-value is not i18n-friendly, but this is a systemic pattern across all locale files.

"Estimated value: ${{value}}" bakes the USD symbol into every translation. Verification confirms this pattern exists in all 24+ locale files (including en-US.json, the source), even in fully translated locales (e.g., German, Russian, Japanese). If the app ever needs to render different currency symbols per locale or per wallet context, all locale files would require updates.

Consider passing the currency symbol as a template variable instead:

💡 Suggested approach
-"estimated-value": "Estimated value: ${{value}}",
+"estimated-value": "Estimated value: {{currency}}{{value}}",

Then at the call site, pass currency: "$" (or the locale/context-appropriate symbol) alongside value. This requires refactoring the template variable handling across all locales and call sites.

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

In `@apps/web/src/features/i18n/locales/ac-ace.json` at line 2857, The
"estimated-value" translation currently embeds a hardcoded "$" (key
"estimated-value"), which prevents locale- or context-specific currency symbols;
update the translation string to accept a currency template variable (e.g.,
change the value for "estimated-value" to use a {{currency}} placeholder instead
of "$"), then update every call site that renders this key to pass a currency
parameter (e.g., currency: "$" or the locale/context-appropriate symbol). Apply
the same change across all locale files and ensure any helper that formats or
composes the translation (the code paths that call the i18n lookup for
"estimated-value") forwards the new currency variable.

"checking-balance": "Checking your wallet balance...",
"balance-fetch-error": "Could not refresh your wallet balance. We will keep retrying automatically.",
"price-unavailable": "Price data is temporarily unavailable. Please retry in a moment.",
"price-required": "Price data is required to validate that your balance meets the {{minimum}} minimum. We will keep checking your balance, please retry in a moment."
},
"import": {
"title": "Import own wallet",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/bg-BG.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "Предпочитанията са обновени!",
"permissions-title": "Keys & permissions",
"permissions-hint": "Manage your keys, control permissions over applications",
"permissions": "Open permissions"
"permissions": "Open permissions",
"image-server": "Image server",
"image-server-default": "Ecency images (Default)",
"image-server-hiveblog": "Hive images (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "Премести в чернови"
},
"bookmarks": {
"title": "Отметки"
"title": "Отметки",
"hint": "You'll receive notifications when bookmarked content receives a reply."
},
"favorites": {
"title": "Любими"
"title": "Любими",
"hint": "You'll receive notifications when a favorite author publishes new content."
},
"fragments": {
"title": "Откъси",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Classic",
"deck": "Deck"
},
"my-favorites-widget": {
"title": "My Favorites",
"empty": "You haven't added any favorite authors yet",
"empty-cta": "Discover authors",
"view-all": "View all"
},
"top-communities": {
"title": "Top communities",
"create-button": "Create decentralized community"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Please, top-up your wallet with some amount of tokens",
"topup-description": "When your wallet balance changes, page will detect automatically and let You continue account creation",
"validation-success": "We have validated your wallet",
"address-copied": "Address copied"
"address-copied": "Address copied",
"minimum-required": "At least {{minimum}} required to validate.",
"estimated-value": "Estimated value: ${{value}}",
"checking-balance": "Checking your wallet balance...",
"balance-fetch-error": "Could not refresh your wallet balance. We will keep retrying automatically.",
"price-unavailable": "Price data is temporarily unavailable. Please retry in a moment.",
"price-required": "Price data is required to validate that your balance meets the {{minimum}} minimum. We will keep checking your balance, please retry in a moment."
},
"import": {
"title": "Import own wallet",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "Einstellungen aktualisiert!",
"permissions-title": "Schlüssel & Berechtigungen",
"permissions-hint": "Verwalten Sie Ihre Schlüssel, steuern Sie die Berechtigungen über Anwendungen",
"permissions": "Öffne Berechtigungen"
"permissions": "Öffne Berechtigungen",
"image-server": "Bild-Server",
"image-server-default": "Ecency Bilder (Standard)",
"image-server-hiveblog": "Hive-Bilder (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "In Entwürfe verschieben"
},
"bookmarks": {
"title": "Lesezeichen"
"title": "Lesezeichen",
"hint": "Sie erhalten Benachrichtigungen, wenn gespeicherte Inhalte eine Antwort erhalten."
},
"favorites": {
"title": "Favoriten"
"title": "Favoriten",
"hint": "Sie erhalten Benachrichtigungen, wenn ein bevorzugter Autor neue Inhalte veröffentlicht."
},
"fragments": {
"title": "Schnipsel",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Klassisch",
"deck": "Stapel"
},
"my-favorites-widget": {
"title": "Meine Favoriten",
"empty": "Sie haben noch keine Lieblings-Autoren hinzugefügt",
"empty-cta": "Autoren entdecken",
"view-all": "Alle anzeigen"
},
"top-communities": {
"title": "Top-Gemeinschaften",
"create-button": "Erstelle dezentrale Gemeinschaft"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Bitte laden Sie Ihre Brieftasche mit einigen Tokens auf",
"topup-description": "Wenn sich Ihr Wallet-Guthaben ändert, erkennt die Seite automatisch und lässt Sie die Kontoerstellung fortsetzen",
"validation-success": "Wir haben Ihre Brieftasche bestätigt",
"address-copied": "Adresse kopiert"
"address-copied": "Adresse kopiert",
"minimum-required": "Mindestens {{minimum}} erforderlich für die Validierung.",
"estimated-value": "Geschätzter Wert: ${{value}}",
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

Hardcoded $ currency symbol reduces i18n flexibility.

"Geschätzter Wert: ${{value}}" embeds the USD symbol directly in the translation string. If the displayed currency ever varies, every locale file would need updating. Consider moving the symbol into the interpolated value (e.g., {{value}} already includes the formatted currency string) or adding a {{currency}} placeholder so translators don't need to touch symbol placement.

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

In `@apps/web/src/features/i18n/locales/de-DE.json` at line 2860, The translation
for the "estimated-value" key hardcodes a "$" symbol which breaks currency
flexibility; update the value to remove the hardcoded symbol and either rely on
the interpolated {{value}} to include the formatted currency or add a new
placeholder {{currency}} (e.g., "Geschätzter Wert: {{value}}" or "Geschätzter
Wert: {{currency}}{{value}}") so currency formatting is handled where values are
produced rather than inside the locale string.

"checking-balance": "Ihr Wallet-Guthaben wird überprüft...",
"balance-fetch-error": "Ihr Wallet-Guthaben konnte nicht aktualisiert werden. Wir werden es weiterhin automatisch versuchen.",
"price-unavailable": "Preisdaten sind vorübergehend nicht verfügbar. Bitte versuchen Sie es in Kürze erneut.",
"price-required": "Preisdaten werden benötigt, um zu überprüfen, ob Ihr Guthaben das Minimum von {{minimum}} erreicht. Wir werden Ihr Guthaben weiterhin überprüfen, bitte versuchen Sie es in Kürze erneut."
},
"import": {
"title": "Eigene Brieftasche importieren",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/es-ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "¡Preferencias actualizadas!",
"permissions-title": "Claves y permisos",
"permissions-hint": "Administra tus claves, controla los permisos sobre las aplicaciones",
"permissions": "Permisos abiertos"
"permissions": "Permisos abiertos",
"image-server": "Servidor de imágenes",
"image-server-default": "Imágenes de Ecency (por defecto)",
"image-server-hiveblog": "Imágenes de Hive (Alternativa)"
Comment on lines +1192 to +1195
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

Preferences image-server additions look good; minor capitalisation inconsistency in image-server-hiveblog

The brand-name fix ("Ecency" replacing the earlier "ecuencia") is confirmed correct. The three new keys are well-formed.

One small nit: (Alternativa) uses an uppercase initial, while the sibling key uses (por defecto) (all lowercase). Spanish style conventionally lowercases parenthetical qualifiers, and the two entries within the same block should be consistent.

🐛 Proposed fix
-    "image-server-hiveblog": "Imágenes de Hive (Alternativa)"
+    "image-server-hiveblog": "Imágenes de Hive (alternativa)"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/web/src/features/i18n/locales/es-ES.json` around lines 1192 - 1195,
Update the Spanish translation for the "image-server-hiveblog" key to use a
lowercase parenthetical consistent with "image-server-default": change
"(Alternativa)" to "(alternativa)" so both "image-server-default" and
"image-server-hiveblog" use matching lowercase qualifiers.

},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "Mover a borradores"
},
"bookmarks": {
"title": "Marcadores"
"title": "Marcadores",
"hint": "Recibirás notificaciones cuando el contenido marcado reciba una respuesta."
},
"favorites": {
"title": "Favoritos"
"title": "Favoritos",
"hint": "Recibirás notificaciones cuando un autor favorito publique un nuevo contenido."
},
"fragments": {
"title": "Fragmentos de código",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Clásico",
"deck": "Mazo"
},
"my-favorites-widget": {
"title": "Mis favoritos",
"empty": "Aún no has añadido ningún autor favorito",
"empty-cta": "Descubre autores",
"view-all": "Ver todo"
},
"top-communities": {
"title": "Comunidades populares",
"create-button": "Crear comunidad descentralizada"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Por favor, recargue su wallet con alguna cantidad de tokens",
"topup-description": "Cuando el balance de su cartera cambia, la página lo detectará automáticamente y le permitirá continuar con la creación de la cuenta",
"validation-success": "Hemos validado su wallet",
"address-copied": "Dirección copiada"
"address-copied": "Dirección copiada",
"minimum-required": "Se requiere al menos {{minimum}} para validarlo.",
"estimated-value": "Valor estimado: ${{value}}",
"checking-balance": "Comprobando el saldo de su cartera...",
"balance-fetch-error": "No se pudo actualizar el saldo de tu billetera. Seguiremos intentándolo automáticamente.",
"price-unavailable": "Los datos del precio no están disponibles temporalmente. Vuelva a intentarlo en un momento.",
"price-required": "Los datos de precios son necesarios para validar que tu saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando tu saldo, por favor vuelve a intentarlo en un momento."
Comment on lines +2861 to +2864
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

Inconsistent Spanish register (formal su/usted vs. informal tu/) within validate-funds

The pre-existing strings in this block use the formal usted register ("Validar sus fondos", "recargue su wallet", "su cartera"). The new additions mix both registers within the same user flow:

Key Form Register
checking-balance "el saldo de su cartera" formal ✓
balance-fetch-error "el saldo de tu billetera" informal ✗
price-unavailable "Vuelva a intentarlo" formal ✓
price-required "tu saldo… vuelve a intentarlo" informal ✗

balance-fetch-error and price-required should align with the formal register used by the surrounding strings.

🐛 Proposed fix
-    "balance-fetch-error": "No se pudo actualizar el saldo de tu billetera. Seguiremos intentándolo automáticamente.",
+    "balance-fetch-error": "No se pudo actualizar el saldo de su billetera. Seguiremos intentándolo automáticamente.",
-    "price-required": "Los datos de precios son necesarios para validar que tu saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando tu saldo, por favor vuelve a intentarlo en un momento."
+    "price-required": "Los datos de precios son necesarios para validar que su saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando su saldo, por favor vuelva a intentarlo en un momento."
📝 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
"checking-balance": "Comprobando el saldo de su cartera...",
"balance-fetch-error": "No se pudo actualizar el saldo de tu billetera. Seguiremos intentándolo automáticamente.",
"price-unavailable": "Los datos del precio no están disponibles temporalmente. Vuelva a intentarlo en un momento.",
"price-required": "Los datos de precios son necesarios para validar que tu saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando tu saldo, por favor vuelve a intentarlo en un momento."
"checking-balance": "Comprobando el saldo de su cartera...",
"balance-fetch-error": "No se pudo actualizar el saldo de su billetera. Seguiremos intentándolo automáticamente.",
"price-unavailable": "Los datos del precio no están disponibles temporalmente. Vuelva a intentarlo en un momento.",
"price-required": "Los datos de precios son necesarios para validar que su saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando su saldo, por favor vuelva a intentarlo en un momento."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/web/src/features/i18n/locales/es-ES.json` around lines 2861 - 2864, The
new Spanish strings use an informal register but the surrounding messages use
formal usted; update the keys "balance-fetch-error" and "price-required" to the
formal register and match existing vocabulary: change "No se pudo actualizar el
saldo de tu billetera. Seguiremos intentándolo automáticamente." to a formal
phrasing using "su" and "cartera" (e.g., "No se pudo actualizar el saldo de su
cartera. Seguiremos intentándolo automáticamente.") and change "Los datos de
precios son necesarios para validar que tu saldo alcanza el mínimo {{minimum}}.
Seguiremos comprobando tu saldo, por favor vuelve a intentarlo en un momento."
to formal grammar/verbs and "su" (e.g., "Los datos de precios son necesarios
para validar que su saldo alcanza el mínimo {{minimum}}. Seguiremos comprobando
su saldo; por favor, vuelva a intentarlo en un momento."). Ensure consistency
with existing keys like "checking-balance" and other surrounding messages.

},
"import": {
"title": "Importar cartera propia",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "Préférence mise à jour !",
"permissions-title": "Touches & autorisations",
"permissions-hint": "Gérez vos clés, contrôlez les autorisations sur les applications",
"permissions": "Ouvrir les permissions"
"permissions": "Ouvrir les permissions",
"image-server": "Serveur d'images",
"image-server-default": "Images d'écence (par défaut)",
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

Brand name misspelled in image-server-default value.

"d'écence" should be "d'Ecency" — the brand name is lowercased and misspelled, which will surface directly in the UI's preferences panel.

✏️ Proposed fix
-    "image-server-default": "Images d'écence (par défaut)",
+    "image-server-default": "Images d'Ecency (par défaut)",
📝 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
"image-server-default": "Images d'écence (par défaut)",
"image-server-default": "Images d'Ecency (par défaut)",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/web/src/features/i18n/locales/fr-FR.json` at line 1194, The translation
value for the key "image-server-default" contains a misspelled and lowercased
brand name ("d'écence"); update the string value to use the correct
capitalization and spelling "d'Ecency" so it reads "Images d'Ecency (par
défaut)"—modify the JSON entry for "image-server-default" to replace the
incorrect value with the corrected one.

"image-server-hiveblog": "Images Hive (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "Déplacer vers brouillons"
},
"bookmarks": {
"title": "Signets"
"title": "Signets",
"hint": "Vous recevrez des notifications lorsque le contenu des signets recevra une réponse."
},
"favorites": {
"title": "Favoris"
"title": "Favoris",
"hint": "Vous recevrez des notifications lorsqu'un auteur favori publie un nouveau contenu."
},
"fragments": {
"title": "Extraits",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Classique",
"deck": "Deck"
},
"my-favorites-widget": {
"title": "Mes Favoris",
"empty": "Vous n'avez pas encore ajouté d'auteurs favoris",
"empty-cta": "Découvrir les auteurs",
"view-all": "Tout afficher"
},
"top-communities": {
"title": "Les communautés les plus populaires",
"create-button": "Créer une communauté décentralisée"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Veuillez recharger votre portefeuille avec un certain nombre de jetons",
"topup-description": "Lorsque le solde de votre portefeuille change, la page détecte automatiquement et vous permet de continuer la création de votre compte",
"validation-success": "Nous avons validé votre portefeuille",
"address-copied": "Adresse copiée"
"address-copied": "Adresse copiée",
"minimum-required": "Au moins {{minimum}} requis pour valider.",
"estimated-value": "Valeur estimée : ${{value}}",
"checking-balance": "Vérification du solde de votre portefeuille...",
"balance-fetch-error": "Impossible de rafraîchir le solde de votre portefeuille. Nous continuerons à réessayer automatiquement.",
"price-unavailable": "Les données de prix sont temporairement indisponibles. Veuillez réessayer dans un instant.",
"price-required": "Les données de prix sont requises pour valider que votre solde correspond au minimum {{minimum}} . Nous continuerons à vérifier votre solde, veuillez réessayer dans un instant."
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

Stray space before period in price-required.

{{minimum}} . contains an extraneous space between the interpolated value and the full stop, which will render visibly as . in the UI.

✏️ Proposed fix
-      "price-required": "Les données de prix sont requises pour valider que votre solde correspond au minimum {{minimum}} . Nous continuerons à vérifier votre solde, veuillez réessayer dans un instant."
+      "price-required": "Les données de prix sont requises pour valider que votre solde correspond au minimum {{minimum}}. Nous continuerons à vérifier votre solde, veuillez réessayer dans un instant."
📝 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
"price-required": "Les données de prix sont requises pour valider que votre solde correspond au minimum {{minimum}} . Nous continuerons à vérifier votre solde, veuillez réessayer dans un instant."
"price-required": "Les données de prix sont requises pour valider que votre solde correspond au minimum {{minimum}}. Nous continuerons à vérifier votre solde, veuillez réessayer dans un instant."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/web/src/features/i18n/locales/fr-FR.json` at line 2864, The translation
string for the key "price-required" contains an extra space before the period
after the interpolation ( "{{minimum}} ." ); update the value for
"price-required" to remove the stray space so it reads "...{{minimum}}."
ensuring no space exists between the interpolation token and the trailing full
stop.

},
"import": {
"title": "Importer votre propre portefeuille",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/hi-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "वरीयता अपडेट की गई!",
"permissions-title": "कुंजियाँ और अनुमतियाँ",
"permissions-hint": "अपनी कुंजियाँ प्रबंधित करें, एप्लिकेशन पर अनुमतियों को नियंत्रित करें",
"permissions": "खुली अनुमतियाँ"
"permissions": "खुली अनुमतियाँ",
"image-server": "Image server",
"image-server-default": "Ecency images (Default)",
"image-server-hiveblog": "Hive images (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "प्रलेख में भेजें"
},
"bookmarks": {
"title": "पृष्टस्मृतियाँ"
"title": "पृष्टस्मृतियाँ",
"hint": "You'll receive notifications when bookmarked content receives a reply."
},
"favorites": {
"title": "पसंदीदा"
"title": "पसंदीदा",
"hint": "You'll receive notifications when a favorite author publishes new content."
},
"fragments": {
"title": "स्निपेट्स",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "क्लॅसिक",
"deck": "डेक"
},
"my-favorites-widget": {
"title": "My Favorites",
"empty": "You haven't added any favorite authors yet",
"empty-cta": "Discover authors",
"view-all": "View all"
},
"top-communities": {
"title": "शीर्ष समुदाय",
"create-button": "Create decentralized community"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Please, top-up your wallet with some amount of tokens",
"topup-description": "When your wallet balance changes, page will detect automatically and let You continue account creation",
"validation-success": "We have validated your wallet",
"address-copied": "Address copied"
"address-copied": "Address copied",
"minimum-required": "At least {{minimum}} required to validate.",
"estimated-value": "Estimated value: ${{value}}",
"checking-balance": "Checking your wallet balance...",
"balance-fetch-error": "Could not refresh your wallet balance. We will keep retrying automatically.",
"price-unavailable": "Price data is temporarily unavailable. Please retry in a moment.",
"price-required": "Price data is required to validate that your balance meets the {{minimum}} minimum. We will keep checking your balance, please retry in a moment."
},
"import": {
"title": "Import own wallet",
Expand Down
25 changes: 21 additions & 4 deletions apps/web/src/features/i18n/locales/id-ID.json
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,10 @@
"updated": "Preferensi diperbaharui!",
"permissions-title": "Keys & permissions",
"permissions-hint": "Manage your keys, control permissions over applications",
"permissions": "Open permissions"
"permissions": "Open permissions",
"image-server": "Image server",
"image-server-default": "Ecency images (Default)",
"image-server-hiveblog": "Hive images (Alternative)"
},
"settings": {
"dm-privacy": {
Expand Down Expand Up @@ -2063,10 +2066,12 @@
"move": "Pindahkan ke konsep"
},
"bookmarks": {
"title": "Bookmark"
"title": "Bookmark",
"hint": "You'll receive notifications when bookmarked content receives a reply."
},
"favorites": {
"title": "Favorit"
"title": "Favorit",
"hint": "You'll receive notifications when a favorite author publishes new content."
},
"fragments": {
"title": "Cuplikan",
Expand Down Expand Up @@ -2622,6 +2627,12 @@
"classic": "Klasik",
"deck": "Deck"
},
"my-favorites-widget": {
"title": "My Favorites",
"empty": "You haven't added any favorite authors yet",
"empty-cta": "Discover authors",
"view-all": "View all"
},
"top-communities": {
"title": "Top communities",
"create-button": "Create decentralized community"
Expand Down Expand Up @@ -2844,7 +2855,13 @@
"topup": "Please, top-up your wallet with some amount of tokens",
"topup-description": "When your wallet balance changes, page will detect automatically and let You continue account creation",
"validation-success": "We have validated your wallet",
"address-copied": "Address copied"
"address-copied": "Address copied",
"minimum-required": "At least {{minimum}} required to validate.",
"estimated-value": "Estimated value: ${{value}}",
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:

rg -n --type=ts --type=tsx "estimated-value" -C4 2>/dev/null || rg -n -C4 "estimated-value"

Repository: ecency/vision-next

Length of output: 31783


Hardcoded $ USD symbol ignores locale-specific currency conventions.

The i18n string has a hardcoded $ prefix across all locales, including non-USD regions. For example, Japanese, French, German, and other locales should use their own currency symbols (¥, €, €, etc.) rather than USD $.

The value passed (usdValue.toFixed(2)) is a raw number, so there is no double-formatting risk. However, the hardcoded USD symbol should be removed from the template and the currency formatting should be applied based on the user's locale instead.

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

In `@apps/web/src/features/i18n/locales/id-ID.json` at line 2860, The i18n entry
"estimated-value" currently hardcodes a USD "$" symbol; remove the "$" from the
locale string (change to something like "Estimated value: {{value}}") and update
the rendering code that currently passes usdValue.toFixed(2) to instead format
the numeric value with Intl.NumberFormat (or the app's currency formatting
utility) using the user's locale and appropriate currency code (not always
"USD"); ensure the key "estimated-value" is used when injecting the already
formatted string so no raw "$" is inserted and adapt callers that pass
usdValue.toFixed(2) to pass the numeric value or a preformatted localized
currency string.

"checking-balance": "Checking your wallet balance...",
"balance-fetch-error": "Could not refresh your wallet balance. We will keep retrying automatically.",
"price-unavailable": "Price data is temporarily unavailable. Please retry in a moment.",
"price-required": "Price data is required to validate that your balance meets the {{minimum}} minimum. We will keep checking your balance, please retry in a moment."
},
"import": {
"title": "Import own wallet",
Expand Down
Loading