Skip to content

Conversation

@alfetopito
Copy link
Collaborator

@alfetopito alfetopito commented Dec 26, 2025

Summary by CodeRabbit

  • Documentation
    • Refreshed and standardized UI translations across multiple locales (ru, en, es, pl, pt‑BR, tr, el, and others); updated PO revision metadata.
    • Consolidated cancellation modal copy into a single modal content source; added/renamed related cancellation messages.
    • Extensive cleanup: many messages marked obsolete/deprecated, with phrasing, consistency, and formatting updates across UI texts and receipts.

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

@vercel
Copy link

vercel bot commented Dec 26, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
cowfi Ready Ready Preview Dec 30, 2025 11:12am
explorer-dev Ready Ready Preview Dec 30, 2025 11:12am
swap-dev Ready Ready Preview Dec 30, 2025 11:12am
widget-configurator Ready Ready Preview Dec 30, 2025 11:12am
2 Skipped Deployments
Project Deployment Review Updated (UTC)
cosmos Ignored Ignored Dec 30, 2025 11:12am
sdk-tools Ignored Ignored Preview Dec 30, 2025 11:12am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 26, 2025

Walkthrough

Bulk localization updates: multiple frontend .po files updated (PO revision dates advanced), many msgid/msgstr edits and obsolete markers added, and numerous cancellation-related translation source references moved from RequestCancellationModal.tsx to ModalTopContent.tsx. No functional code or API changes.

Changes

Cohort / File(s) Summary
Locales — cancellation strings moved
apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx, apps/cowswap-frontend/src/common/pure/CancellationModal/ModalTopContent.tsx, apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
Many cancellation-related msgid source references were relocated from RequestCancellationModal.tsx to ModalTopContent.tsx; a few new msgids added under the modal index.
Russian locale
apps/cowswap-frontend/src/locales/ru-RU.po
Large-scale translation edits and metadata update; many msgid/msgstr changes and numerous entries marked obsolete.
Greek locale
apps/cowswap-frontend/src/locales/el-GR.po
PO revision date advanced; many entries reanchored to new source path or marked obsolete; no API changes.
English locale
apps/cowswap-frontend/src/locales/en-US.po
Multiple cancellation-related msgid source references changed to ModalTopContent.tsx; new cancellation msgids added; many obsolete markers introduced.
Spanish locale
apps/cowswap-frontend/src/locales/es-ES.po
PO revision date update; many entries repointed to ModalTopContent.tsx and marked obsolete/fuzzy or updated.
Polish locale
apps/cowswap-frontend/src/locales/pl-PL.po
PO revision date update; numerous translations marked obsolete or relocated to ModalTopContent.tsx.
Portuguese (BR) locale
apps/cowswap-frontend/src/locales/pt-BR.po
PO revision date update; many entries obsoleted and several cancellation entries moved to ModalTopContent.tsx; new msgid(s) added under index.
Turkish locale
apps/cowswap-frontend/src/locales/tr-TR.po
PO revision date update; cancellation-related msgids relocated and many translations marked obsolete.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • shoom3301
  • elena-zh

Poem

🐇 I hopped through .po lines, nibbling old strings light,

I moved modal words and tucked some out of sight,
Marked sleepy lines with a gentle dot,
Planted new phrases in ModalTopContent's spot,
🥕 translations brushed, ready for flight.

Pre-merge checks

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided; the template requires summary, testing steps, and background information to be filled out. Add a comprehensive description following the template, including a summary of the translation updates, specific file relocations (RequestCancellationModal.tsx to ModalTopContent.tsx), testing steps, and background on the changes.
Title check ❓ Inconclusive The title 'New Crowdin updates' is vague and generic, using non-descriptive terms that don't convey specific information about the actual changes made. Clarify the title to be more specific about the changes, such as 'Update translations for cancellation modal refactor' or 'Sync Crowdin translations following ModalTopContent migration'.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

🧹 Nitpick comments (2)
apps/cowswap-frontend/src/locales/ru-RU.po (2)

1357-1358: Refine Russian wording for region‑restricted token message

Current text is understandable, but slightly less idiomatic and mixes “токен” with a spaced negation:

msgstr "Токен не доступен в вашем регионе"

Consider a more natural variant like:

Suggested wording
-msgstr "Токен не доступен в вашем регионе"
+msgstr "Этот токен недоступен в вашем регионе"

This keeps the meaning while sounding closer to native UI phrasing.


4047-4048: Align “Network costs” translation with existing terminology

Elsewhere in this file, “Network costs” is translated as “Сетевые расходы” (e.g., “Network costs (est.)” → “Сетевые расходы (оцен.)”), but here it's “Комиссии сети”:

msgid "Network costs"
msgstr "Комиссии сети"

For consistency and clarity, suggest using the same term:

Suggested change
-msgid "Network costs"
-msgstr "Комиссии сети"
+msgid "Network costs"
+msgstr "Сетевые расходы"

This keeps the concept aligned across all related UI elements.

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a013fb and 3875448.

📒 Files selected for processing (1)
  • apps/cowswap-frontend/src/locales/ru-RU.po
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Setup
  • GitHub Check: Cypress
🔇 Additional comments (1)
apps/cowswap-frontend/src/locales/ru-RU.po (1)

11-11: PO revision metadata update looks good

The updated PO-Revision-Date is consistent with a new Crowdin export; no further action needed.

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

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3875448 and f3fcc90.

📒 Files selected for processing (1)
  • apps/cowswap-frontend/src/locales/ru-RU.po
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Setup
  • GitHub Check: Cypress
🔇 Additional comments (2)
apps/cowswap-frontend/src/locales/ru-RU.po (2)

11-11: Metadata revision date looks fine

PO-Revision-Date correctly reflects the new revision timestamp; no action needed.


4047-4048: “Network costs” translation is appropriate and consistent

“Сетевые расходы” is a good, concise rendering of “Network costs” for the label context; nothing to change here.

Comment on lines 1357 to +1358
msgid "This token is not available in your region"
msgstr ""
msgstr "Токен не доступен в вашем регионе"
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

Russian orthography: use “недоступен” as one word

For natural Russian and correct spelling, “не доступен” should be merged:

Suggested fix
-msgstr "Токен не доступен в вашем регионе"
+msgstr "Токен недоступен в вашем регионе"
📝 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
msgid "This token is not available in your region"
msgstr ""
msgstr "Токен не доступен в вашем регионе"
msgid "This token is not available in your region"
msgstr "Токен недоступен в вашем регионе"
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 1357-1358, the
Russian translation incorrectly splits “не доступен”; replace the phrase "Токен
не доступен в вашем регионе" with the correct single-word form "Токен недоступен
в вашем регионе" in the msgstr for that msgid to fix the orthography.

Comment on lines 5305 to +5306
msgid "Network fees and costs"
msgstr "Комиссии и сборы"
msgstr "Сетевые расходы"
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

Preserve “fees and costs” nuance in Russian

Here the English explicitly says “Network fees and costs”, but the Russian string collapses this to just “Сетевые расходы”, which is identical in meaning to the simpler “Network costs” label and drops “fees/комиссии”.

To better match the source and stay consistent with other strings like “Текущие сетевые комиссии”, consider:

Suggested fix
-msgstr "Сетевые расходы"
+msgstr "Сетевые комиссии и расходы"
📝 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
msgid "Network fees and costs"
msgstr "Комиссии и сборы"
msgstr "Сетевые расходы"
msgid "Network fees and costs"
msgstr "Сетевые комиссии и расходы"
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 5305 to 5306, the
Russian translation collapses “Network fees and costs” into “Сетевые расходы”,
losing the “fees/комиссии” nuance; update the msgstr to include both terms (for
example, "Сетевые комиссии и расходы") so it preserves the English distinction
and stays consistent with other translations like "Текущие сетевые комиссии".

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

♻️ Duplicate comments (2)
apps/cowswap-frontend/src/locales/ru-RU.po (2)

1356-1358: Russian orthography: use “недоступен” as one word

The current msgstr splits “не доступен”, which is non-standard in this context. Prefer the single-word form for natural Russian:

Suggested fix
 msgid "This token is not available in your region"
-msgstr "Токен не доступен в вашем регионе"
+msgstr "Токен недоступен в вашем регионе"

5304-5306: Keep “fees and costs” nuance in Russian

The English string explicitly says “Network fees and costs”, but the current translation collapses this to just “Сетевые расходы”, dropping the “fees/комиссии” part and making it indistinguishable from simpler “network costs” labels.

Suggest including both terms:

Suggested fix
 msgid "Network fees and costs"
-msgstr "Сетевые расходы"
+msgstr "Сетевые комиссии и расходы"
🧹 Nitpick comments (1)
apps/cowswap-frontend/src/locales/el-GR.po (1)

238-240: Confirm intentional deprecation of RWA consent/legal strings and related copy

Many RWA consent and location-/eligibility‑related strings (and a few other descriptive texts like “loading”, old “Limit price (incl.costs)”, Bungee descriptions, etc.) have been marked obsolete (#~) in this locale. That’s fine technically as long as:

  • The corresponding msgids have actually been removed or replaced in source code, and
  • Product/legal are aligned that the new UX still surfaces the required consent and restriction messaging across all locales.

Given the regulatory nature of RWA flows, please double‑check that the new copy (in code / base locale) fully replaces what’s being deprecated here and that Crowdin sync didn’t accidentally drop any active keys.

Also applies to: 447-449, 539-541, 580-582, 1050-1052, 1780-1781, 1792-1793, 1883-1885, 2000-2001, 2052-2054, 3603-3604, 5700-5702, 5951-5952

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f3fcc90 and 7ebb803.

📒 Files selected for processing (7)
  • apps/cowswap-frontend/src/locales/el-GR.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
✅ Files skipped from review due to trivial changes (4)
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-07-24T16:42:53.154Z
Learnt from: cowdan
Repo: cowprotocol/cowswap PR: 6009
File: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx:23-33
Timestamp: 2025-07-24T16:42:53.154Z
Learning: In apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx, the use of toFixed(2) for percentage formatting in tooltip content is intentional and differs from the banner message formatting that uses toSignificant(2, undefined, Rounding.ROUND_DOWN). This formatting difference serves different UX purposes and should not be flagged as inconsistent.

Applied to files:

  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/el-GR.po
📚 Learning: 2025-10-10T20:28:16.565Z
Learnt from: fairlighteth
Repo: cowprotocol/cowswap PR: 6347
File: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx:49-49
Timestamp: 2025-10-10T20:28:16.565Z
Learning: In apps/cowswap-frontend/src/modules/trade, TradeConfirmation follows a two-layer architecture: TradeConfirmationView (pure/stateless) in pure/TradeConfirmation/index.tsx renders the UI, while TradeConfirmation (container) in containers/TradeConfirmation/index.tsx wraps it to freeze props during pending trades (via useStableTradeConfirmationProps), wire in signing state (useSigningStep), and inject trade confirmation state (useTradeConfirmState). Consuming modules should import the container TradeConfirmation from 'modules/trade' to preserve this stateful behavior.
<!-- [add_learning]
When reviewing component refactoring in apps/cowswap-frontend/src/modules/trade, recognize the pattern where a pure view component (e.g., TradeConfirmationView) is separated from a stateful container (e.g., TradeConfirmation) that wraps it. The container adds runtime state management (prop stabilization, signing state, etc.) while the view remains testable and composable. Do not flag usages that import th...

Applied to files:

  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/el-GR.po
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Setup
  • GitHub Check: Cypress
🔇 Additional comments (3)
apps/cowswap-frontend/src/locales/ru-RU.po (1)

4046-4049: “Network costs” translation looks accurate and consistent

"Network costs""Сетевые расходы" reads naturally and matches existing phrasing like "Сетевые расходы (оцен.)". No change needed.

apps/cowswap-frontend/src/locales/el-GR.po (1)

3-19: Metadata header update looks fine

PO-Revision-Date refresh and other header metadata remain well‑formed and consistent with the existing Lingui/Crowdin setup. No issues from a tooling or runtime perspective.

apps/cowswap-frontend/src/locales/es-ES.po (1)

11-11: Crowdin sync looks good; double-check RWA consent copy removal across locales

  • Line 11: PO-Revision-Date bump is fine and consistent with a fresh Crowdin pull.
  • Lines 239–241, 541–543, 582–585, 1365–1366, 2003–2004, 2407–2409, 3607–3609: several RwaConsentModal entries with regulatory / eligibility language are now marked obsolete (#~ msgid/msgstr). That means Spanish will no longer use these specific strings anywhere.

Assuming en-US and other locales removed or replaced the same keys, there’s no functional break (the UI just no longer references these IDs), but this is compliance-sensitive text. Please confirm with whoever owns the RWA flow that:

  • The consent/gating UX still shows the legally required messaging, and
  • Any new RWA-related msgids introduced in en-US have corresponding es-ES translations in Crowdin (they appear not to be part of this diff).

If that’s already coordinated, the localization changes here are safe to ship.

Also applies to: 239-241, 541-543, 582-585, 1365-1366, 2003-2004, 2407-2409, 3607-3609

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

Caution

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

⚠️ Outside diff range comments (1)
apps/cowswap-frontend/src/locales/ru-RU.po (1)

1904-1907: “Safe nonce” translated incorrectly as “Легко”

Here “Safe” is the wallet/contract name, and “nonce” is the transaction counter. “Легко” (“easy”) is simply wrong and will confuse users.

Suggested fix
 msgid "Safe nonce"
-msgstr "Легко"
+msgstr "Нонс Safe"

If you prefer a slightly more explanatory variant:

msgstr "Нонс кошелька Safe"
♻️ Duplicate comments (2)
apps/cowswap-frontend/src/locales/ru-RU.po (2)

1361-1362: Russian orthography: “недоступен” should be one word

The phrase splits “не доступен”, which is incorrect in this context. It should be a single word.

Suggested fix
 msgid "This token is not available in your region"
-msgstr "Токен не доступен в вашем регионе"
+msgstr "Токен недоступен в вашем регионе"

5308-5310: Preserve “fees and costs” nuance in RU translation

Here the English explicitly says “Network fees and costs”, but the RU text only mentions “Сетевые расходы”, dropping “fees/комиссии”. This was previously flagged and is still unresolved.

Suggested fix
 msgid "Network fees and costs"
-msgstr "Сетевые расходы"
+msgstr "Сетевые комиссии и расходы"
🧹 Nitpick comments (6)
apps/cowswap-frontend/src/locales/es-ES.po (1)

1766-1768: Verify composition of “This is an {on/off-chain} cancellation” in Spanish

The phrase appears to be built from three separate strings:

  • msgid "This is an"msgstr "Esto es un"
  • msgid "on-chain" / msgid "off-chain"msgstr "en cadena" / msgstr "fuera de cadena"
  • msgid "cancellation"msgstr "cancelación"

If concatenated like English (“This is an” + badge + “cancellation”), the current Spanish fragments likely read awkwardly (e.g. something like “Esto es un en cadena cancelación”). It may be worth checking the rendered UI and adjusting these three translations so the combined sentence sounds natural (e.g. closer to “Esta es una cancelación on-chain/off-chain”) while still keeping the badge emphasis.

Also applies to: 2423-2426, 3903-3906, 4240-4242

apps/cowswap-frontend/src/locales/en-US.po (3)

1663-1665: Consider reducing message fragmentation in CancellationModal/ModalTopContent for better i18n

The modal currently relies on many tiny translatable fragments:

  • "Unknown", "This is an", "on-chain", "off-chain", "cancellation", "Tx cost:", "less", "more", plus the full sentence "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful."

While this works in English, splitting a sentence like “This is an on-chain cancellation. Tx cost: X% more/less than off-chain.” across many msgids makes word order and grammar hard to adapt in other languages.

If you touch this area again, consider combining into one or two richer sentences, using <0>...</0> wrappers for styling instead of separate one-word msgids (e.g., "This is an <0>{cancellationType}</0> cancellation. Tx cost: {delta}% {direction} than off-chain.").

Also applies to: 1773-1775, 2353-2355, 2390-2392, 2649-2651, 2912-2914, 3215-3217, 4446-4449


239-241: Verify RWA consent/legal copy removal is intentional

Several RwaConsentModal strings with explicit eligibility/location/legal disclaimers are now marked obsolete (#~), including:

  • “If you fall into any of these categories, select Cancel.”
  • Jurisdiction and “U.S. Person” clauses.
  • Location-indeterminacy and eligibility acknowledgments (“We could not reliably determine your location…”, “You are solely responsible for complying with your local laws.”, etc.).
  • Headline prompts like “Additional confirmation required for this token”, “By clicking Confirm, you expressly represent and warrant that you are NOT:”, “I Confirm”, and related bullets.

Given these are compliance‑sensitive, please double‑check that:

  1. They’ve been superseded by updated legal copy elsewhere (not just removed), and
  2. There’s no path where RWA tokens can be accessed without an appropriate consent/eligibility step.

If this is part of a broader legal/copy update, then the obsolescence here is fine.

Also applies to: 452-455, 545-547, 585-587, 1060-1061, 1372-1373, 1384-1385, 1793-1796, 1897-1899, 1968-1970, 2014-2015, 2067-2069, 2130-2132, 5717-5719, 5889-5891, 5968-5970


247-249: Fix minor grammar issues in existing user-facing strings

Two pre-existing English strings are slightly off:

  • Line 247: "This ensure smooooth bridging." → should be "This ensures smooooth bridging."
  • Line 255: "The are some errors with CoW Swap widget configuration" → should be "There are some errors with the CoW Swap widget configuration" (or similar).

These are not newly introduced in this PR but are visible to users; consider correcting them in the source .tsx files and regenerating the PO files in a follow-up change.

Also applies to: 255-257

apps/cowswap-frontend/src/locales/pl-PL.po (1)

222-224: Cancellation modal keys moved; placeholders preserved

All cancellation‑related msgids (Are you sure you want to cancel order <0>{shortId}</0>?, Cancelling order with id {shortId}:…, Unknown, This is an, on-chain, off-chain, Tx cost:, more/less, etc.) now reference CancellationModal/ModalTopContent.tsx and CancellationModal/index.tsx instead of the old locations, but the msgids and interpolation placeholders remain unchanged.

From an i18n perspective, this is a safe refactor; translations will continue to match the UI as long as other locales are updated consistently.

If you ever touch this area again, consider avoiding sentence fragments like "This is an", "on-chain", "off-chain", "cancellation" being concatenated at runtime; a single full‑sentence msgid with placeholders will translate better for languages like Polish.

Also applies to: 780-783, 863-865, 1446-1448, 1653-1655, 1763-1765, 2343-2345, 2380-2382, 2639-2641, 3205-3207, 3900-3902, 4235-4237, 4433-4436

apps/cowswap-frontend/src/locales/pt-BR.po (1)

1446-1448: Key CancellationModal helper texts remain untranslated

Several short but user‑visible strings tied to CancellationModal/ModalTopContent.tsx still have empty msgstr:

  • “On-chain cancellations require a regular on-chain transaction and cost gas.”
  • “Unknown”
  • “This is an”
  • “on-chain” / “off-chain”
  • “less” / “more”
  • “Tx cost:”
  • “Keep in mind a solver might already have included the order in a solution even if this cancellation is successful.”
  • Standalone “cancellation”

They’ll currently appear in English in the pt‑BR UI. If you want full localization coverage for the cancellation flows, it’s worth filling these in on Crowdin (keeping the same placeholders/markup). Otherwise behavior is technically correct but UX is slightly mixed‑language.

Also applies to: 1653-1655, 1763-1765, 1899-1901, 2343-2345, 2380-2382, 2639-2642, 3205-3207, 4236-4238, 4334-4336, 4433-4436

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7ebb803 and 923d3fa.

📒 Files selected for processing (7)
  • apps/cowswap-frontend/src/locales/el-GR.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/cowswap-frontend/src/locales/el-GR.po
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-10-10T20:28:16.565Z
Learnt from: fairlighteth
Repo: cowprotocol/cowswap PR: 6347
File: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx:49-49
Timestamp: 2025-10-10T20:28:16.565Z
Learning: In apps/cowswap-frontend/src/modules/trade, TradeConfirmation follows a two-layer architecture: TradeConfirmationView (pure/stateless) in pure/TradeConfirmation/index.tsx renders the UI, while TradeConfirmation (container) in containers/TradeConfirmation/index.tsx wraps it to freeze props during pending trades (via useStableTradeConfirmationProps), wire in signing state (useSigningStep), and inject trade confirmation state (useTradeConfirmState). Consuming modules should import the container TradeConfirmation from 'modules/trade' to preserve this stateful behavior.
<!-- [add_learning]
When reviewing component refactoring in apps/cowswap-frontend/src/modules/trade, recognize the pattern where a pure view component (e.g., TradeConfirmationView) is separated from a stateful container (e.g., TradeConfirmation) that wraps it. The container adds runtime state management (prop stabilization, signing state, etc.) while the view remains testable and composable. Do not flag usages that import th...

Applied to files:

  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
📚 Learning: 2025-07-24T16:42:53.154Z
Learnt from: cowdan
Repo: cowprotocol/cowswap PR: 6009
File: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx:23-33
Timestamp: 2025-07-24T16:42:53.154Z
Learning: In apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx, the use of toFixed(2) for percentage formatting in tooltip content is intentional and differs from the banner message formatting that uses toSignificant(2, undefined, Rounding.ROUND_DOWN). This formatting difference serves different UX purposes and should not be flagged as inconsistent.

Applied to files:

  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
📚 Learning: 2025-02-20T15:59:33.749Z
Learnt from: shoom3301
Repo: cowprotocol/cowswap PR: 5443
File: apps/cowswap-frontend/src/modules/swap/containers/ConfirmSwapModalSetup/index.tsx:71-71
Timestamp: 2025-02-20T15:59:33.749Z
Learning: The swap module in apps/cowswap-frontend/src/modules/swap/ is marked for deletion in PR #5444 as part of the swap widget unification effort.

Applied to files:

  • apps/cowswap-frontend/src/locales/ru-RU.po
  • apps/cowswap-frontend/src/locales/es-ES.po
  • apps/cowswap-frontend/src/locales/en-US.po
  • apps/cowswap-frontend/src/locales/pt-BR.po
  • apps/cowswap-frontend/src/locales/pl-PL.po
  • apps/cowswap-frontend/src/locales/tr-TR.po
📚 Learning: 2025-10-13T19:41:31.440Z
Learnt from: limitofzero
Repo: cowprotocol/cowswap PR: 6351
File: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.ts:87-121
Timestamp: 2025-10-13T19:41:31.440Z
Learning: In apps/cowswap-frontend/src/modules/erc20Approve, useApproveCallback returns Promise<TransactionResponse | undefined> and is distinct from useApproveCurrency, which can return Promise<TransactionReceipt | SafeMultisigTransactionResponse>. When reviewing approval flows, verify which hook is actually being used before flagging Safe wallet concerns.

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Cypress
  • GitHub Check: Setup
🔇 Additional comments (14)
apps/cowswap-frontend/src/locales/es-ES.po (3)

11-11: PO revision date bump looks consistent

PO-Revision-Date was updated to 2025-12-30 09:56, which matches this Crowdin sync and is fine as-is.


223-226: Cancellation modal strings: placeholders preserved and generally correct

For the various cancellation-related strings moved under CancellationModal/ModalTopContent.tsx:

  • Placeholders ({shortId}, <0>…</0>, etc.) are preserved correctly.
  • Core translations like
    • "Are you sure you want to cancel order <0>{shortId}</0>?"¿Estás seguro de que quieres cancelar la orden <0>{shortId}</0>?
    • "Unknown"Desconocido
    • "less" / "more"menos / más
    • "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful."
      → natural Spanish
      look good and consistent with the rest of the UI.

Also applies to: 1556-1559, 2346-2349, 3209-3212, 3903-3906, 4240-4242, 4437-4441


1057-1058: Obsoleted RWA consent strings are correctly marked and safe

Several RwaConsentModal-related consent/legal strings (e.g., “We could not reliably determine your location…”, “You are solely responsible…”, “A resident of any country subject to international sanctions…”, “A resident of the EU or EEA.”, “By clicking Confirm, you acknowledge that:”, “I Confirm”) are now marked obsolete with #~.

Since these entries are no longer active:

  • Their (English) “translations” no longer affect the UI.
  • This cleanup is safe from a runtime perspective.

Nothing further required here for es-ES beyond any future content/UX decisions around RWA copy.

Also applies to: 1891-1892, 2007-2008, 2060-2061, 3611-3612, 5711-5712, 5959-5960

apps/cowswap-frontend/src/locales/ru-RU.po (1)

11-11: PO header date update is fine

PO-Revision-Date was auto-bumped by Crowdin; no manual action needed.

apps/cowswap-frontend/src/locales/en-US.po (1)

222-225: Cancellation modal core strings and placeholder rename look correct

  • Are you sure you want to cancel order <0>{shortId}</0>? now points to CancellationModal/ModalTopContent.tsx and keeps the {shortId} placeholder and component tags intact.
  • The new text Cancelling order with id {shortId}:<0/><1>{orderSummary}</1> matches the updated placeholder name {orderSummary}, and the old {summary} variant is correctly marked obsolete.
  • Shared "cancellation" label now includes ModalTopContent.tsx as a reference, which is consistent with the refactor to centralize cancellation copy.

No issues from an i18n or runtime-placeholder perspective.

Also applies to: 785-788, 4247-4251

apps/cowswap-frontend/src/locales/pl-PL.po (3)

11-11: PO revision date bump looks fine

PO-Revision-Date was updated to 2025-12-30 09:56, which is consistent with a fresh Crowdin sync and has no runtime impact.


239-240: RWA consent strings marked obsolete

Multiple RwaConsentModal consent / eligibility lines (jurisdiction, sanctions, responsibility, confirmation CTA, etc.) are now commented out with #~, effectively deprecating them in this locale.

This is i18n‑safe, but it does change the available copy for the RWA consent flow; just make sure this matches the current product / legal requirements and that replacement strings (if any) are wired in across all locales.

If you want to double‑check usage, you can scan the codebase for active RwaConsentModal msgids and confirm that all live strings still exist in en-US.po and other locales.

Also applies to: 539-541, 580-582, 1367-1368, 1379-1380, 1888-1889, 2004-2005, 5704-5705, 5955-5956


2190-2191: Obsolete Receive (incl. costs) key cleanup is correct

The old "Receive (incl. costs)" msgid has been properly marked obsolete (#~) across all locale files. The newer "Receive (incl. fees)" key is active and actively used in code (apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx:39). No code references the obsolete key.

apps/cowswap-frontend/src/locales/tr-TR.po (3)

11-19: Header metadata update looks fine

PO-Revision-Date has been bumped as expected from a Crowdin sync; no functional impact in the app.


222-225: Cancellation modal strings and refactor to ModalTopContent look consistent

  • New/relocated cancellation strings (including Are you sure you want to cancel order <0>{shortId}</0>?, the Tx cost: / on-chain / off-chain labels, and the explanation about solvers) use valid JSX-style tags and keep placeholders intact.
  • The new msgid Cancelling order with id {shortId}:<0/><1>{orderSummary}</1> is syntactically correct, and the previous {summary} variant is properly marked obsolete, avoiding placeholder mismatches.

No runtime risks spotted in these i18n changes.

Also applies to: 780-783, 862-865, 1446-1448, 1653-1655, 1763-1766, 2343-2345, 2380-2383, 2639-2642, 3205-3207, 3899-3902, 4234-4238, 4334-4336


238-240: Obsolete RWA consent/legal strings – please confirm this is intentional

Several RwaConsentModal entries with legal / eligibility language (e.g. jurisdiction, sanctions, “I Confirm”, location detection) are now marked obsolete (#~). That’s consistent with a copy or flow change, but these look compliance‑sensitive.

Can you confirm that:

  • Replacement copy exists elsewhere (likely new msgids in en-US) or
  • The associated UI/flow has been intentionally removed?

If needed, I can help double‑check the corresponding TSX changes to ensure no disclaimers were dropped unintentionally.

Also applies to: 447-449, 539-541, 580-582, 1054-1056, 1366-1368, 1378-1380, 1887-1889, 2003-2005, 2056-2058, 3606-3608, 5703-5705, 5954-5956

apps/cowswap-frontend/src/locales/pt-BR.po (3)

11-11: PO header revision date update is fine

PO-Revision-Date reflects the new sync timestamp; structure and metadata remain valid.


222-224: Cancellation question translation looks correct

The translation for “Are you sure you want to cancel order <0>{shortId}</0>?” is natural PT‑BR and preserves placeholders and markup correctly.


239-241: RWA consent strings correctly marked obsolete

Multiple RwaConsentModal-related consent and eligibility lines are now #~-commented (obsolete). That’s consistent with deprecating these texts and has no runtime impact; leaving their (English) msgstr values is harmless since they’re no longer loaded.

Also applies to: 448-449, 539-542, 580-583, 1048-1057, 1367-1369, 1379-1381, 1888-1889, 2004-2006, 2057-2058, 3607-3608, 5704-5706, 5755-5757, 5955-5957

Comment on lines +782 to +785
#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr ""

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

Add Spanish translation for new cancellation summary (orderSummary)

The new string

msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr ""

has an empty msgstr, so Spanish users will see the English text. There’s also an obsolete variant using {summary} below. Please add a proper Spanish translation and keep the new {orderSummary} placeholder.

Proposed fix
-#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
-msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
-msgstr ""
+#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
+msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
+msgstr "Cancelando la orden con id {shortId}:<0/><1>{orderSummary}</1>"

Also applies to: 864-867

🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 782-785 (and
similarly at 864-867), the msgstr for the new cancellation summary is empty; add
a Spanish translation that preserves the placeholders and inline tags exactly
(keep {shortId}, <0/>, <1> and {orderSummary} intact). For example, set msgstr
to a natural Spanish phrase such as "Cancelando orden con id
{shortId}:<0/><1>{orderSummary}</1>" (apply the same fix to the duplicate at
lines 864-867).

Comment on lines +1448 to 1451
#: apps/cowswap-frontend/src/common/pure/CancellationModal/ModalTopContent.tsx
msgid "On-chain cancellations require a regular on-chain transaction and cost gas."
msgstr "Las cancelaciones en cadena requieren una transacción regular en cadena y gas de coste."

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

Fix typo and improve Spanish wording for cancellation cost copy

Two small issues in the cancellation cost strings:

  • Line 1450 ("On-chain cancellations require a regular on-chain transaction and cost gas.") is currently translated as
    Las cancelaciones en cadena requieren una transacción regular en cadena y gas de coste.
    which is a bit awkward.

  • Line 2385 ("Tx cost:") is translated as
    Costo x x:
    which looks like a clear typo in the UI.

Suggested wording improvements
- msgid "On-chain cancellations require a regular on-chain transaction and cost gas."
- msgstr "Las cancelaciones en cadena requieren una transacción regular en cadena y gas de coste."
+ msgid "On-chain cancellations require a regular on-chain transaction and cost gas."
+ msgstr "Las cancelaciones on-chain requieren una transacción normal en cadena y tienen un costo de gas."

- msgid "Tx cost:"
- msgstr "Costo x x:"
+ msgid "Tx cost:"
+ msgstr "Costo de la tx:"

Also applies to: 2383-2386

🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 1448-1451 and
2383-2386, fix the awkward/typo translations: replace the line for "On-chain
cancellations require a regular on-chain transaction and cost gas." with a
clearer Spanish string such as "Las cancelaciones on-chain requieren una
transacción on-chain normal y conllevan un coste de gas." and correct the "Tx
cost:" translation (currently garbled as "Costo x x:") to a proper phrase like
"Coste de transacción:" (or "Coste de tx:" if you prefer the abbreviation) in
both occurrences; ensure phrasing and punctuation match project locale
conventions.

Comment on lines +780 to +783
#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr ""

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

New cancellation summary string missing PT‑BR translation

The new msgid
"Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
has an empty msgstr, so users will see English here.

Consider adding a PT‑BR translation such as:

Suggested translation
- msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
- msgstr ""
+ msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
+ msgstr "Cancelando ordem com id {shortId}:<0/><1>{orderSummary}</1>"
📝 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
#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr ""
#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr "Cancelando ordem com id {shortId}:<0/><1>{orderSummary}</1>"
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/pt-BR.po around lines 780–783 the msgid
"Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>" has an empty
msgstr; add a Portuguese‑Brazil translation into msgstr, making sure to preserve
the placeholders ({shortId}, {orderSummary}) and the inline tags (<0/>,
<1>...</1>) exactly as in the msgid so interpolation and markup continue to
work.

Comment on lines +782 to +785
#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx
msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
msgstr ""

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

Missing Russian translation for new cancellation status line

This new string will show up in English for RU users because msgstr is empty. Please add a translation.

Suggested RU translation
 msgid "Cancelling order with id {shortId}:<0/><1>{orderSummary}</1>"
-msgstr ""
+msgstr "Отмена ордера с ID {shortId}:<0/><1>{orderSummary}</1>"
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 782-785, the msgstr
for the new cancellation message is empty causing RU users to see English; add a
Russian translation string into msgstr that preserves the placeholders and
markup exactly ({shortId}, <0/>, <1>{orderSummary}</1>) and matches original
punctuation and context so the line reads appropriately in Russian.

Comment on lines 2384 to 2385
msgid "Tx cost:"
msgstr "Tx стоимость:"
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

Unnatural label for “Tx cost:”

“Tx стоимость:” is not idiomatic Russian and keeps the English abbreviation in an odd position. A normal UI label would spell this out.

Suggested fix
 msgid "Tx cost:"
-msgstr "Tx стоимость:"
+msgstr "Стоимость транзакции:"
📝 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
msgid "Tx cost:"
msgstr "Tx стоимость:"
msgid "Tx cost:"
msgstr "Стоимость транзакции:"
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 2384-2385, the
translation "Tx стоимость:" is unnatural; replace the msgstr value with a fully
spelled-out, idiomatic Russian label such as "Стоимость транзакции:" (i.e.
change msgstr "Tx стоимость:" to msgstr "Стоимость транзакции:") so the UI
displays a natural, localized string.

Comment on lines +3208 to 3211
#: apps/cowswap-frontend/src/common/pure/CancellationModal/ModalTopContent.tsx
msgid "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful."
msgstr "Имейте в виду, что решение уже включало заказ в решение, даже если это отмена выполнена успешно."

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

Clarify solver cancellation warning in Russian

Current RU: “Имейте в виду, что решение уже включало заказ в решение, даже если это отмена выполнена успешно.” is hard to parse and repeats “решение”.

Suggestion is more natural and preserves the “might already have included” nuance and explicit mention of a solver.

Suggested rewording
 msgid "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful."
-msgstr "Имейте в виду, что решение уже включало заказ в решение, даже если это отмена выполнена успешно."
+msgstr "Имейте в виду, что даже если отмена пройдёт успешно, солвер мог уже включить этот ордер в своё решение."
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 3208-3211, the
current Russian msgstr is awkward and repeats "решение"; replace it with a
clearer, more natural phrasing that preserves "might already have included" and
references the solver explicitly, e.g. change the msgstr to: "Учтите, что солвер
мог уже включить этот ордер в своё решение, даже если отмена прошла успешно."

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

🧹 Nitpick comments (1)
apps/cowswap-frontend/src/locales/en-US.po (1)

222-225: Cancellation modal copy is coherent; consider reducing sentence fragmentation for better i18n

The new/updated strings for the cancellation modal (confirmation question, on-/off‑chain explanations, “Tx cost:”, “Unknown”, “more/less”, and the new summary template) look consistent and grammatically fine in en‑US.

However, composing phrases like “This is an on-chain/off-chain cancellation” out of separate msgids ("This is an", "on-chain"/"off-chain", "cancellation") can make translation harder in some languages (articles, word order, gender, etc.). If you see awkward translations in non‑English locales, consider replacing this with a single sentence-level key so translators can reorder words freely.

Also applies to: 785-788, 867-870, 1451-1453, 1663-1665, 1773-1775, 2353-2355, 2390-2392, 3912-3915, 4247-4251, 4446-4449

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 923d3fa and 5f07d80.

📒 Files selected for processing (1)
  • apps/cowswap-frontend/src/locales/en-US.po
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2025-10-10T20:28:16.565Z
Learnt from: fairlighteth
Repo: cowprotocol/cowswap PR: 6347
File: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx:49-49
Timestamp: 2025-10-10T20:28:16.565Z
Learning: In apps/cowswap-frontend/src/modules/trade, TradeConfirmation follows a two-layer architecture: TradeConfirmationView (pure/stateless) in pure/TradeConfirmation/index.tsx renders the UI, while TradeConfirmation (container) in containers/TradeConfirmation/index.tsx wraps it to freeze props during pending trades (via useStableTradeConfirmationProps), wire in signing state (useSigningStep), and inject trade confirmation state (useTradeConfirmState). Consuming modules should import the container TradeConfirmation from 'modules/trade' to preserve this stateful behavior.
<!-- [add_learning]
When reviewing component refactoring in apps/cowswap-frontend/src/modules/trade, recognize the pattern where a pure view component (e.g., TradeConfirmationView) is separated from a stateful container (e.g., TradeConfirmation) that wraps it. The container adds runtime state management (prop stabilization, signing state, etc.) while the view remains testable and composable. Do not flag usages that import th...

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
📚 Learning: 2025-10-13T19:41:31.440Z
Learnt from: limitofzero
Repo: cowprotocol/cowswap PR: 6351
File: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.ts:87-121
Timestamp: 2025-10-13T19:41:31.440Z
Learning: In apps/cowswap-frontend/src/modules/erc20Approve, useApproveCallback returns Promise<TransactionResponse | undefined> and is distinct from useApproveCurrency, which can return Promise<TransactionReceipt | SafeMultisigTransactionResponse>. When reviewing approval flows, verify which hook is actually being used before flagging Safe wallet concerns.

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
📚 Learning: 2025-02-20T15:59:33.749Z
Learnt from: shoom3301
Repo: cowprotocol/cowswap PR: 5443
File: apps/cowswap-frontend/src/modules/swap/containers/ConfirmSwapModalSetup/index.tsx:71-71
Timestamp: 2025-02-20T15:59:33.749Z
Learning: The swap module in apps/cowswap-frontend/src/modules/swap/ is marked for deletion in PR #5444 as part of the swap widget unification effort.

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
📚 Learning: 2025-07-24T16:42:53.154Z
Learnt from: cowdan
Repo: cowprotocol/cowswap PR: 6009
File: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx:23-33
Timestamp: 2025-07-24T16:42:53.154Z
Learning: In apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx, the use of toFixed(2) for percentage formatting in tooltip content is intentional and differs from the banner message formatting that uses toSignificant(2, undefined, Rounding.ROUND_DOWN). This formatting difference serves different UX purposes and should not be flagged as inconsistent.

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
📚 Learning: 2025-06-25T07:28:32.570Z
Learnt from: shoom3301
Repo: cowprotocol/cowswap PR: 5881
File: apps/cowswap-frontend/src/modules/cowShed/containers/ProxyRecipient/index.tsx:68-72
Timestamp: 2025-06-25T07:28:32.570Z
Learning: In the ProxyRecipient component (apps/cowswap-frontend/src/modules/cowShed/containers/ProxyRecipient/index.tsx), throwing an error when recipient address doesn't match proxy address is intentional design choice to prevent proceeding with incorrect data and ensure data integrity.

Applied to files:

  • apps/cowswap-frontend/src/locales/en-US.po
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Setup
  • GitHub Check: Cypress
🔇 Additional comments (1)
apps/cowswap-frontend/src/locales/en-US.po (1)

3002-3005: The placeholder {accountProxyLabel} correctly matches the variable provided in code.

The implementation in apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx retrieves the label via const accountProxyLabel = i18n._(ACCOUNT_PROXY_LABEL) and passes it to the <Trans> component, which properly interpolates the variable into the i18n strings. No rendering issues will occur.

Comment on lines +3420 to 3423
#: apps/cowswap-frontend/src/common/hooks/useBlockNumber/useBlockNumber.ts
msgid "BlockNumber hooks must be wrapped in a"
msgstr "BlockNumber hooks must be wrapped in 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

“BlockNumber hooks must be wrapped in a” reads incomplete; clarify full message

The error text "BlockNumber hooks must be wrapped in a" is syntactically incomplete if surfaced as-is. If the intent is something like “BlockNumber hooks must be wrapped in a BlockNumberProvider.”, consider either:

  • Updating the string to the full sentence, or
  • Including the provider name as a placeholder in the translation (e.g. "BlockNumber hooks must be wrapped in a <0>BlockNumberProvider</0>").

That will make the message clearer to users and easier to translate.

🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/en-US.po around lines 3420 to 3423, the
msgid/msgstr "BlockNumber hooks must be wrapped in a" is incomplete; update the
translation to a complete sentence that names the provider (e.g. "BlockNumber
hooks must be wrapped in a BlockNumberProvider.") or use a placeholder for the
provider name (e.g. include "<0>BlockNumberProvider</0>") so the runtime message
is clear and translatable; ensure msgid and msgstr remain consistent and adjust
any placeholders/markup to match how translations are rendered in the app.

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