-
Notifications
You must be signed in to change notification settings - Fork 149
New Crowdin updates #6523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Crowdin updates #6523
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughThe PR updates two CowSwap frontend localization files: Spanish ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (1)
apps/cowswap-frontend/src/locales/ru-RU.po (1)
2452-2457: “TWAP” acronym fallback is reasonable but could be clarifiedFalling back to the English “TWAP” is consistent with DeFi jargon; if Russian users are less familiar with the term, you might later consider a tooltip or glossary rather than localizing the label itself.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
apps/cowswap-frontend/src/locales/es-ES.po(28 hunks)apps/cowswap-frontend/src/locales/ru-RU.po(6 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 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.poapps/cowswap-frontend/src/locales/ru-RU.po
📚 Learning: 2025-07-24T16:43:47.639Z
Learnt from: cowdan
Repo: cowprotocol/cowswap PR: 6009
File: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts:18-20
Timestamp: 2025-07-24T16:43:47.639Z
Learning: In apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts, the formatFeePercentage function uses ROUND_DOWN with toSignificant(2) for "at least X%" messaging. This ensures the displayed percentage is never higher than the actual fee, making the "at least" phrasing accurate. For example, if the actual fee is 25.4%, displaying "at least 25%" is correct, but "at least 26%" would be misleading.
Applied to files:
apps/cowswap-frontend/src/locales/es-ES.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
📚 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/es-ES.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 (7)
apps/cowswap-frontend/src/locales/es-ES.po (2)
9-19: Header metadata updates look fine.Project/version/Crowdin fields and revision date updated as expected.
1-1: Confirmed: 28 empty translations found, including critical acronyms (APR, TVL, N/A).The verification script identified 28 empty msgstr entries in the Spanish locale file, with 11 being critical or short identifiers (APR, TVL, N/A, "gas", and single-character entries). These should be addressed before merge to ensure proper Spanish localization.
apps/cowswap-frontend/src/locales/ru-RU.po (5)
9-19: Header metadata update looks consistentProject ID, file ID, and revision date align with a Crowdin reconfiguration and don’t affect runtime behavior. No issues from a frontend perspective.
900-903: Emptymsgstrfor “APR” is acceptableClearing the translation will fall back to the English msgid “APR”, which is standard and likely what you want here.
1257-1260: “CoW AMM” left untranslated to fall back to brand nameUsing an empty
msgstrso the UI shows the exact brand term “CoW AMM” is sensible and avoids awkward localization.
1313-1315: “Bungee” brand name fallbackSame pattern here: empty
msgstrwill display the brand “Bungee” verbatim, which is appropriate for a product name.
1631-1633: “TVL” acronym fallbackLetting “TVL” display from the msgid is fine and keeps the commonly used DeFi acronym intact.
| #: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts | ||
| msgid "h" | ||
| msgstr "h" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blocker: time-unit abbreviations were cleared, causing blank durations in UI.
Restore minimal, non-ambiguous abbreviations.
#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts
msgid "h"
-msgstr ""
+msgstr "h"
#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts
msgid "s"
-msgstr ""
+msgstr "s"
#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts
msgid "d"
-msgstr ""
+msgstr "d"
#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts
msgid "m"
-msgstr ""
+msgstr "m"Also applies to: 1244-1247, 1890-1893, 4404-4407
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 556-559 (and also at
1244-1247, 1890-1893, 4404-4407), the msgstr for time-unit abbreviations were
cleared causing blank durations in the UI; restore minimal, non-ambiguous
Spanish abbreviations by setting the msgstrs to appropriate short forms (for
example: hours -> "h", minutes -> "min", seconds -> "s", days -> "d") matching
each msgid so the UI shows the correct abbreviated units.
| #: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx | ||
| msgid "APR" | ||
| msgstr "APR" | ||
| msgstr "" | ||
|
|
||
| #: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx | ||
| msgid "CoW Protocol Explorer" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
High‑impact labels/acronyms emptied; avoid blank chips/badges.
Passthrough acronyms/brands; localize where stable.
#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx
msgid "APR"
-msgstr ""
+msgstr "APR"
#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx
msgid "TVL"
-msgstr ""
+msgstr "TVL"
#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx
msgid "WalletConnect"
-msgstr ""
+msgstr "WalletConnect"
#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx
msgid "Auto"
-msgstr ""
+msgstr "Auto"
#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx
msgid "N/A"
-msgstr ""
+msgstr "N/D"
#: apps/cowswap-frontend/src/common/constants/routes.ts
msgid "gas"
-msgstr ""
+msgstr "gas"
#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx
msgid "pool"
-msgstr ""
+msgstr "pool"
#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx
msgid "token"
-msgstr ""
+msgstr "token"
#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx
msgid "Token"
-msgstr ""
+msgstr "Token"Also applies to: 1631-1634, 1748-1750, 2808-2811, 4280-4283, 2693-2696, 6125-6127, 294-298, 3054-3057
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 900-905, the msgstr
entries for acronyms/brand labels (e.g., "APR" and "CoW Protocol Explorer") are
empty; update the msgstr to be the same as the msgid (passthrough) so
chips/badges don't render blank (e.g., set msgstr "APR" and msgstr "CoW Protocol
Explorer"); apply the same fix to the other reported ranges (1631-1634,
1748-1750, 2808-2811, 4280-4283, 2693-2696, 6125-6127, 294-298, 3054-3057) by
ensuring acronyms/brand msgstr values mirror their msgid instead of being empty.
| #: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx | ||
| msgid "CoW AMM" | ||
| msgstr "CoW AMM" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Core navigation/feature labels cleared; re-add to prevent empty menus and sections.
Keep brands/acronyms; translate stable terms.
#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx
msgid "CoW AMM"
-msgstr ""
+msgstr "CoW AMM"
#: libs/common-const/src/common.ts
msgid "TWAP"
-msgstr ""
+msgstr "TWAP"
#: apps/cowswap-frontend/src/common/constants/routes.ts
msgid "Yield"
-msgstr ""
+msgstr "Rendimiento"
#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx
msgid "Pre Hooks"
-msgstr ""
+msgstr "Pre Hooks"
#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx
msgid "POST"
-msgstr ""
+msgstr "POST"
#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx
msgid "PRE"
-msgstr ""
+msgstr "PRE"
#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx
msgid "Legal"
-msgstr ""
+msgstr "Legal"
#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx
msgid "FAQs"
-msgstr ""
+msgstr "Preguntas frecuentes"
#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx
msgid "Tokens"
-msgstr ""
+msgstr "Tokens"Also applies to: 2453-2458, 3310-3315, 716-719, 1270-1273, 3850-3853, 5698-5700, 3752-3755, 814-819
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 1258-1261 (and also
update the empty entries at 2453-2458, 3310-3315, 716-719, 1270-1273, 3850-3853,
5698-5700, 3752-3755, 814-819), restore non-empty msgstr values so core
navigation/feature labels are not blank; for brand names/acronyms like "CoW AMM"
keep the original text (msgstr "CoW AMM") and for any stable/common terms
provide the appropriate Spanish translation while preserving brand
capitalization and acronyms.
| msgid "Bungee" | ||
| msgstr "Bungee" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Brand/feature names should not be empty.
Preserve brand; provide clear Spanish for feature.
#: libs/hook-dapp-lib/src/hookDappsRegistry.ts
msgid "Bungee"
-msgstr ""
+msgstr "Bungee"
#: libs/hook-dapp-lib/src/hookDappsRegistry.ts
msgid "Aave Collateral Swap Flashloan"
-msgstr ""
+msgstr "Flashloan de intercambio de garantía de Aave"Also applies to: 4979-4981
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 1314-1316 (and
similarly at 4979-4981) the msgstr for the brand/feature "Bungee" is empty;
populate msgstr with the preserved brand name (e.g., "Bungee") or "Bungee" plus
a brief Spanish descriptor if context requires (e.g., "Bungee
(servicio/función)"), ensuring the brand text is not translated away and the
Spanish string provides clear context.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
apps/cowswap-frontend/src/locales/es-ES.po(34 hunks)apps/cowswap-frontend/src/locales/ru-RU.po(15 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- apps/cowswap-frontend/src/locales/es-ES.po
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
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.
📚 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
⏰ 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 (1)
apps/cowswap-frontend/src/locales/ru-RU.po (1)
9-19: Crowdin metadata updates look correct.Project/file IDs and paths reflect the new Crowdin setup and develop path. No action needed.
| msgid "Scheduled" | ||
| msgstr "Запланированный" | ||
| msgstr "Запланирован" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use neutral form for the standalone status “Scheduled”.
“Запланирован” is gendered; prefer neutral “Запланировано” for status labels.
msgid "Scheduled"
-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.
| msgid "Scheduled" | |
| msgstr "Запланированный" | |
| msgstr "Запланирован" | |
| msgid "Scheduled" | |
| msgstr "Запланировано" | |
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 649-651, the Russian
translation for the standalone status "Scheduled" uses a gendered form
"Запланирован"; replace it with the neutral, status-appropriate form
"Запланировано" so the label is gender-neutral and appropriate for UI status
contexts.
| #: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx | ||
| msgid "APR" | ||
| msgstr "APR" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fill short headers/acronyms to avoid mixed-language UI.
Keep common DeFi acronyms and brand names concise.
msgid "APR"
-msgstr ""
+msgstr "APR" msgid "CoW AMM"
-msgstr ""
+msgstr "CoW AMM" msgid "Bungee"
-msgstr ""
+msgstr "Bungee" msgid "TVL"
-msgstr ""
+msgstr "TVL" msgid "TWAP"
-msgstr ""
+msgstr "TWAP"Also applies to: 1261-1265, 1318-1320, 1635-1638, 2464-2470
| #: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx | ||
| msgid "Got it" | ||
| msgstr "" | ||
|
|
||
| #: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fill new NotificationSettingsPopover strings to avoid English fallback.
Provide concise RU equivalents.
#: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx
msgid "Got it"
-msgstr ""
+msgstr "Понятно" msgid "Trade alerts enabled"
-msgstr ""
+msgstr "Оповещения о сделках включены" msgid "Trade alert settings info"
-msgstr ""
+msgstr "Информация о настройках оповещений о сделках" msgid "Change trade alert settings here"
-msgstr ""
+msgstr "Измените настройки оповещений о сделках здесь"Also applies to: 2704-2707, 3411-3414, 3425-3428
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 908-912 (also apply
same change at 2704-2707, 3411-3414, 3425-3428): the new
NotificationSettingsPopover strings are untranslated causing English fallback;
add concise Russian translations for the msgid "Got it" and any other missing
msgid entries referenced (use appropriate Russian UI phrasing like "Понятно" or
"Принято" for "Got it"), update the corresponding msgstr fields with these RU
equivalents, and ensure pluralization/quotation formatting matches the PO file
style.
| #: apps/cowswap-frontend/src/legacy/components/Header/AccountElement/NotificationAlertPopover.tsx | ||
| msgid "Enable order alerts" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Localize new alert opt-in copy in AccountElement popover.
Add clear RU to keep the UI consistent.
#: .../NotificationAlertPopover.tsx
msgid "Enable order alerts"
-msgstr ""
+msgstr "Включить оповещения об ордерах" msgid "Enable trade alerts"
-msgstr ""
+msgstr "Включить оповещения о сделках" msgid "Not now"
-msgstr ""
+msgstr "Не сейчас" msgid "When orders fill or expire"
-msgstr ""
+msgstr "Когда ордера исполняются или истекают" msgid "Get trade alerts"
-msgstr ""
+msgstr "Получать оповещения о сделках"Also applies to: 2130-2133, 2642-2645, 3551-3553, 5011-5013
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/ru-RU.po around lines 1699-1702 (and also
at 2130-2133, 2642-2645, 3551-3553, 5011-5013), the msgid "Enable order alerts"
is missing a Russian translation; update each msgstr to a concise RU translation
such as "Включить уведомления о заказах" (or "Включить оповещения о заказах" if
preferred) so the UI shows the localized text consistently in all listed
locations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (4)
apps/cowswap-frontend/src/locales/es-ES.po (4)
1249-1251: Blocker: time-unit abbreviations empty → blank durations in UI.Restore minimal abbreviations.
#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts msgid "s" -msgstr "" +msgstr "s" #: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts msgid "d" -msgstr "" +msgstr "d" #: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts msgid "m" -msgstr "" +msgstr "m"Also applies to: 1899-1901, 4437-4439
900-903: High‑impact: acronyms/brands cleared; chips/badges render blank.Pass through acronyms/brands; localize only where stable (N/A → N/D).
#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx msgid "APR" -msgstr "" +msgstr "APR" #: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx msgid "TVL" -msgstr "" +msgstr "TVL" #: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx msgid "WalletConnect" -msgstr "" +msgstr "WalletConnect" #: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx msgid "Auto" -msgstr "" +msgstr "Auto" #: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx msgid "N/A" -msgstr "" +msgstr "N/D" #: apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx #: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx msgid "gas" -msgstr "" +msgstr "gas" #: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx msgid "pool" -msgstr "" +msgstr "pool" #: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx #: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx msgid "token" -msgstr "" +msgstr "token" #: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx msgid "Token" -msgstr "" +msgstr "Token"Also applies to: 1635-1638, 1756-1758, 2829-2831, 4311-4315, 2713-2716, 6161-6163, 294-298, 3074-3077
715-719: Core navigation/feature labels must not be empty.Brands/acronyms pass‑through; translate stable terms.
#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx msgid "Pre Hooks" -msgstr "" +msgstr "Pre Hooks" #: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx msgid "Tokens" -msgstr "" +msgstr "Tokens" #: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx #: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx msgid "CoW AMM" -msgstr "" +msgstr "CoW AMM" #: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx msgid "POST" -msgstr "" +msgstr "POST" #: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx msgid "PRE" -msgstr "" +msgstr "PRE" #: libs/common-const/src/common.ts #: apps/cowswap-frontend/src/common/constants/routes.ts #: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx msgid "TWAP" -msgstr "" +msgstr "TWAP" #: apps/cowswap-frontend/src/common/constants/routes.ts #: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts msgid "Yield" -msgstr "" +msgstr "Rendimiento" #: libs/hook-dapp-lib/src/hookDappsRegistry.ts msgid "Pre" -msgstr "" +msgstr "Pre" #: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx msgid "FAQs" -msgstr "" +msgstr "Preguntas frecuentes" #: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx msgid "Legal" -msgstr "" +msgstr "Legal"Also applies to: 814-819, 1261-1265, 1274-1277, 3882-3885, 2464-2470, 3329-3335, 2060-2065, 3784-3787, 5734-5736
1318-1320: Brand names should not be empty.Preserve brand/product names.
#: libs/hook-dapp-lib/src/hookDappsRegistry.ts msgid "Bungee" -msgstr "" +msgstr "Bungee" #: libs/hook-dapp-lib/src/hookDappsRegistry.ts msgid "Aave Collateral Swap Flashloan" -msgstr "" +msgstr "Aave Collateral Swap Flashloan"Also applies to: 5015-5017
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
apps/cowswap-frontend/src/locales/es-ES.po(33 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 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
📚 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
📚 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/es-ES.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/es-ES.po (2)
9-19: Metadata/header update looks good.Project/file IDs and revision date updated correctly.
9-19: Lock untranslated critical keys in Crowdin glossary as "Do not translate."Verification found 36 empty msgstr entries in es-ES.po, including critical terms: APR, TVL, WalletConnect, CoW AMM, POST, "Got it", "token", "Pre Hooks", "Enable order alerts", and time units (s, d). Add these to the Crowdin glossary with "Do not translate" setting to prevent future emptying during translations.
| #: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx | ||
| msgid "Got it" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New notifications copy added with empty translations.
Provide Spanish to avoid blank popovers/buttons.
#: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx
msgid "Got it"
-msgstr ""
+msgstr "Entendido"
#: apps/cowswap-frontend/src/legacy/components/Header/AccountElement/NotificationAlertPopover.tsx
msgid "Enable order alerts"
-msgstr ""
+msgstr "Habilitar alertas de órdenes"
#: apps/cowswap-frontend/src/legacy/components/Header/AccountElement/NotificationAlertPopover.tsx
msgid "Enable trade alerts"
-msgstr ""
+msgstr "Habilitar alertas de operaciones"
#: apps/cowswap-frontend/src/legacy/components/Header/AccountElement/NotificationAlertPopover.tsx
msgid "Not now"
-msgstr ""
+msgstr "Ahora no"
#: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx
msgid "Trade alerts enabled"
-msgstr ""
+msgstr "Alertas de operaciones habilitadas"
#: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx
msgid "Trade alert settings info"
-msgstr ""
+msgstr "Información sobre la configuración de alertas de operaciones"
#: apps/cowswap-frontend/src/modules/notifications/pure/NotificationSettingsPopover.tsx
msgid "Change trade alert settings here"
-msgstr ""
+msgstr "Cambia la configuración de alertas de operaciones aquí"
#: apps/cowswap-frontend/src/legacy/components/Header/AccountElement/NotificationAlertPopover.tsx
msgid "Get trade alerts"
-msgstr ""
+msgstr "Recibir alertas de operaciones"Also applies to: 1699-1702, 2130-2133, 2642-2645, 2704-2707, 3411-3414, 3425-3428, 5010-5013
| #: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts | ||
| msgid "Error" | ||
| msgstr "Error" | ||
| msgstr "" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor: generic error label empty.
Fill to avoid blank error headings/toasts.
#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx
#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts
#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts
msgid "Error"
-msgstr ""
+msgstr "Error"📝 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.
| #: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts | |
| msgid "Error" | |
| msgstr "Error" | |
| msgstr "" | |
| #: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx | |
| #: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts | |
| #: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts | |
| msgid "Error" | |
| msgstr "Error" |
🤖 Prompt for AI Agents
In apps/cowswap-frontend/src/locales/es-ES.po around lines 2996-2999 the
translation for msgid "Error" is empty which causes blank error headings/toasts;
open the file and replace the empty msgstr with the Spanish translation (e.g.
msgstr "Error"), save the file and recompile or reload the i18n resources so the
non-empty label is used at runtime.
Summary by CodeRabbit