Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
ad68783
fix: import
gabitoesmiapodo Aug 26, 2025
47546d5
New Crowdin updates (#18)
gabitoesmiapodo Aug 26, 2025
03df099
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Aug 27, 2025
c1b9422
fix: eslint warning
gabitoesmiapodo Aug 27, 2025
bd3e284
feat: add feature flag to enable or disable locale loading (#19)
gabitoesmiapodo Aug 27, 2025
3ac6bc5
New Crowdin updates (#23)
gabitoesmiapodo Aug 28, 2025
9e549c8
New Crowdin updates (#24)
gabitoesmiapodo Aug 28, 2025
9048d86
New Crowdin updates (#25)
gabitoesmiapodo Aug 28, 2025
b7d6b96
New Crowdin updates (#26)
gabitoesmiapodo Aug 28, 2025
79047e4
fix: comment wording
gabitoesmiapodo Aug 28, 2025
02aaaa1
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Aug 28, 2025
e4ec3f7
feat: add languages menu as settings dropdown item
gabitoesmiapodo Aug 28, 2025
f2c481f
fix: add flag
gabitoesmiapodo Aug 28, 2025
6dd40f6
New Crowdin updates (#32)
gabitoesmiapodo Aug 28, 2025
8cdd4db
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Aug 28, 2025
be9645e
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Aug 28, 2025
a09e8a6
fix: a few mobile issues
gabitoesmiapodo Aug 28, 2025
a912d8a
chore: add missing lingui macro
gabitoesmiapodo Aug 28, 2025
66baa90
chore: update catalog
gabitoesmiapodo Aug 28, 2025
31c1e3f
New Crowdin updates (#34)
gabitoesmiapodo Aug 28, 2025
cfb5227
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 28, 2025
15e5510
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 28, 2025
69d2bd0
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 28, 2025
e24419e
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 28, 2025
9fff6c0
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 28, 2025
23995f4
chore: update catalog
gabitoesmiapodo Aug 28, 2025
d26c29b
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Aug 28, 2025
aa7117c
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
92c4dca
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
7cc20b6
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
21ab0a4
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
95d9023
fix: usage of t inside string literals
gabitoesmiapodo Aug 29, 2025
8695394
chore: update catalog
gabitoesmiapodo Aug 29, 2025
c4444d8
New Crowdin updates (#37)
gabitoesmiapodo Aug 29, 2025
000115a
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
aad102d
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
868368b
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
cdf66b5
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
51498ad
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
946bb95
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
24be7b5
chore: update catalog
gabitoesmiapodo Aug 29, 2025
d220ca5
New Crowdin updates (#38)
gabitoesmiapodo Aug 29, 2025
85a69da
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
4e32c92
fix: https://github.com/cowprotocol/cowswap/pull/6198#discussion_r230…
gabitoesmiapodo Aug 29, 2025
6f8de05
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Aug 29, 2025
e2d349d
Update apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/…
gabitoesmiapodo Aug 29, 2025
6c53b91
chore: update catalog
gabitoesmiapodo Aug 29, 2025
7863bcf
fix: trans contents
gabitoesmiapodo Aug 29, 2025
ba7b456
chore: update catalog
gabitoesmiapodo Aug 29, 2025
dcbc84e
New Crowdin updates (#39)
gabitoesmiapodo Aug 29, 2025
49f6fe3
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Aug 29, 2025
a04b861
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 1, 2025
8f963ff
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 3, 2025
a832f30
chore: update catalog
gabitoesmiapodo Sep 3, 2025
4d39cb4
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Sep 3, 2025
17da44a
New Crowdin updates (#40)
gabitoesmiapodo Sep 3, 2025
cba6ded
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 10, 2025
659878e
chore: update catalog
gabitoesmiapodo Sep 10, 2025
b1985c8
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 15, 2025
7530eff
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 16, 2025
119297a
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 22, 2025
1561a11
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Sep 22, 2025
58a219b
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 23, 2025
6a88821
chore: remove unused po file
gabitoesmiapodo Sep 23, 2025
379d701
fix: unnecessary symbol
gabitoesmiapodo Sep 23, 2025
fcbbbd5
fix: put back the fortune cookie svg
gabitoesmiapodo Sep 23, 2025
d6ff085
fix: display flags correctly in all operative systems
gabitoesmiapodo Sep 23, 2025
6bde88d
fix: limit translation
gabitoesmiapodo Sep 23, 2025
8d19d09
fix: dropdown layout issues
gabitoesmiapodo Sep 23, 2025
c20662c
fix: order details layout
gabitoesmiapodo Sep 23, 2025
525e824
fix: translate order type
gabitoesmiapodo Sep 23, 2025
6680731
fix: title date
gabitoesmiapodo Sep 23, 2025
5b66835
fix: locale time format
gabitoesmiapodo Sep 23, 2025
924dc50
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 24, 2025
c43df40
fix: view on explorer translation
gabitoesmiapodo Sep 24, 2025
20f67dd
fix: notifications date localization
gabitoesmiapodo Sep 24, 2025
30f2a09
fix: tooltip localization
gabitoesmiapodo Sep 24, 2025
c6cca03
fix: string concatenation
gabitoesmiapodo Sep 24, 2025
ea3c252
fix: add missing translation
gabitoesmiapodo Sep 24, 2025
52ccfe6
fix: add localization to several dates
gabitoesmiapodo Sep 24, 2025
16b85f6
fix: add missing translation
gabitoesmiapodo Sep 24, 2025
be32b96
fix: missing date localization
gabitoesmiapodo Sep 24, 2025
c32f905
fix: broken translations
gabitoesmiapodo Sep 24, 2025
90b12b5
fix: broken translations
gabitoesmiapodo Sep 24, 2025
d696d4d
fix: wrong spaces in translation
gabitoesmiapodo Sep 24, 2025
3a73829
fix: missing spaces in translation
gabitoesmiapodo Sep 24, 2025
1a7144c
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 25, 2025
167b621
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 25, 2025
466b45f
fix: missing spaces in tooltip's text
gabitoesmiapodo Sep 25, 2025
df9b982
fix: broken translation strings
gabitoesmiapodo Sep 25, 2025
9b072b3
fix: make some room so words fit better
gabitoesmiapodo Sep 25, 2025
af07183
fix: broken translation
gabitoesmiapodo Sep 25, 2025
8fe3223
fix: broken translation
gabitoesmiapodo Sep 25, 2025
d9c41b9
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 26, 2025
a3e2b85
chore: add missing translations
gabitoesmiapodo Sep 29, 2025
04f2240
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 29, 2025
adbc9be
chore: add missing translations
gabitoesmiapodo Sep 29, 2025
3b8f258
chore: update catalog
gabitoesmiapodo Sep 29, 2025
20747ff
chore: add missing translation
gabitoesmiapodo Sep 29, 2025
e8ec98e
fix: broken translation
gabitoesmiapodo Sep 30, 2025
d35dbd5
chore: add missing translation
gabitoesmiapodo Sep 30, 2025
eb597ef
fix: unfinished translation
gabitoesmiapodo Sep 30, 2025
c13633b
chore: add missing macros
gabitoesmiapodo Sep 30, 2025
388ae40
chore: add missing macros
gabitoesmiapodo Sep 30, 2025
a1535fd
feat: add correct locales to timeago.js
gabitoesmiapodo Sep 30, 2025
e5cbd85
chore: add missing macros
gabitoesmiapodo Sep 30, 2025
907abd4
fix: translations not updating on change
gabitoesmiapodo Sep 30, 2025
87b1610
fix: localization format
gabitoesmiapodo Sep 30, 2025
f88e5d9
chore: add t tags
gabitoesmiapodo Sep 30, 2025
e5f8b8d
chore: add trans tags
gabitoesmiapodo Sep 30, 2025
541a02f
chore: add missing t macro
gabitoesmiapodo Sep 30, 2025
d845d76
fix: pill width
gabitoesmiapodo Sep 30, 2025
fc8bf31
chore: add missing macros
gabitoesmiapodo Sep 30, 2025
b2f2825
chore: update language catalogs
gabitoesmiapodo Sep 30, 2025
a9b00d3
chore: update crowdin project id
gabitoesmiapodo Sep 30, 2025
3d9836f
New Crowdin updates (#44)
gabitoesmiapodo Sep 30, 2025
e3e1009
fix: translation
gabitoesmiapodo Sep 30, 2025
ab7c49e
fix: add missing dependency
gabitoesmiapodo Sep 30, 2025
0d68b1a
chore: update language catalog
gabitoesmiapodo Sep 30, 2025
f460567
New Crowdin updates (#45)
gabitoesmiapodo Sep 30, 2025
643a4a6
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Sep 30, 2025
6c6aa9e
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 1, 2025
0fbeca6
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 1, 2025
521c3ba
chore: add missing t macro
gabitoesmiapodo Oct 3, 2025
a552798
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 3, 2025
8855fdf
chore: add some missing translation macros
gabitoesmiapodo Oct 3, 2025
4fa7ac8
chore: update catalog
gabitoesmiapodo Oct 3, 2025
3ccb8b9
fix: fortune cookie icon z-index
gabitoesmiapodo Oct 3, 2025
72a54c2
New Crowdin updates (#47)
gabitoesmiapodo Oct 3, 2025
7310882
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 3, 2025
6916fd3
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 6, 2025
e75373c
chore: update language catalog
gabitoesmiapodo Oct 6, 2025
a47a00f
New Crowdin updates (#49)
gabitoesmiapodo Oct 6, 2025
112ae78
fix: word wrapping in menus
gabitoesmiapodo Oct 6, 2025
b09a673
New Crowdin updates (#51)
gabitoesmiapodo Oct 6, 2025
f0cce78
fix: page title update on language switching
gabitoesmiapodo Oct 6, 2025
d20b525
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 6, 2025
f11011e
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 15, 2025
22cc620
chore: update catalog
gabitoesmiapodo Oct 15, 2025
c8cf0dd
chore: update crowdin project id
gabitoesmiapodo Oct 16, 2025
37a7182
New Crowdin updates (#54)
gabitoesmiapodo Oct 16, 2025
5215f09
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 16, 2025
83a625c
chore: localize unlocalized date
gabitoesmiapodo Oct 16, 2025
dec33e1
chore: update catalog
gabitoesmiapodo Oct 16, 2025
7d8ee18
New Crowdin updates (#56)
gabitoesmiapodo Oct 16, 2025
fca3aaa
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 16, 2025
c81cff2
chore: update catalog
gabitoesmiapodo Oct 16, 2025
dc291eb
New Crowdin updates (#58)
gabitoesmiapodo Oct 16, 2025
39c83ff
fix: wrong translation
gabitoesmiapodo Oct 16, 2025
8f5590b
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Oct 16, 2025
1d7686a
fix: wrong translation
gabitoesmiapodo Oct 16, 2025
156c3be
fix: order id string not updating when changing language
gabitoesmiapodo Oct 16, 2025
1a21852
fix: order id string not updating when changing language
gabitoesmiapodo Oct 16, 2025
212534f
chore: add localization macros to partial approval feature
gabitoesmiapodo Oct 16, 2025
eb0a263
chore: update catalog
gabitoesmiapodo Oct 16, 2025
4d2ffa5
New Crowdin updates (#60)
gabitoesmiapodo Oct 16, 2025
1620cf5
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 17, 2025
f67130f
fix: order type appears to be translated to Spanish in the Account modal
gabitoesmiapodo Oct 17, 2025
0ffd3fa
fix: swap confirmation modal word wrapping
gabitoesmiapodo Oct 17, 2025
4e0d011
chore: add localization macros
gabitoesmiapodo Oct 17, 2025
8f0779e
fix: swap and bridge, route not supported is not translated
gabitoesmiapodo Oct 17, 2025
aebd1bd
fix: approve is still not transalted
gabitoesmiapodo Oct 17, 2025
23ae97c
fix: swap and bridge orders: " view on..' is not translated
gabitoesmiapodo Oct 17, 2025
a51aaf0
fix: notifications panel name is still not translated
gabitoesmiapodo Oct 17, 2025
f505454
chore: update catalog
gabitoesmiapodo Oct 17, 2025
02d2a19
fix: change macro for hook
gabitoesmiapodo Oct 17, 2025
c5cfc7f
fix: message descriptor missing i18n function
gabitoesmiapodo Oct 17, 2025
803c307
chore: update catalog
gabitoesmiapodo Oct 17, 2025
17e051b
New Crowdin updates (#61)
gabitoesmiapodo Oct 17, 2025
752672c
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 20, 2025
b9637f6
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Oct 20, 2025
fd3c728
fix: fortune cookie z-index
gabitoesmiapodo Oct 20, 2025
3a52ad1
fix: hooks section appears to be shifted for a swap and bridge order …
gabitoesmiapodo Oct 20, 2025
7570001
fix: swap and bridge orders space is missing between a preposition an…
gabitoesmiapodo Oct 20, 2025
e39a7c9
fix: revert table cell widths to original size
gabitoesmiapodo Oct 20, 2025
3a03eb2
fix: table cell width
gabitoesmiapodo Oct 21, 2025
b219826
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 21, 2025
d7e61b1
chore: update catalog
gabitoesmiapodo Oct 21, 2025
05b2e1f
New Crowdin updates (#62)
gabitoesmiapodo Oct 21, 2025
8d181a4
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 21, 2025
591cb91
chore: update catalog
gabitoesmiapodo Oct 21, 2025
d378232
New Crowdin updates (#63)
gabitoesmiapodo Oct 21, 2025
2e5569e
chore: add new translations
gabitoesmiapodo Oct 21, 2025
6167521
chore: update catalog
gabitoesmiapodo Oct 21, 2025
a4a3b0c
New Crowdin updates (#64)
gabitoesmiapodo Oct 21, 2025
2e08021
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 22, 2025
b16d555
chore: update catalog
gabitoesmiapodo Oct 22, 2025
170ef01
chore: add new translations
gabitoesmiapodo Oct 22, 2025
ce3fb64
chore: update catalog
gabitoesmiapodo Oct 22, 2025
a6ecde6
New Crowdin updates (#65)
gabitoesmiapodo Oct 22, 2025
b25c759
chore: add new translations
gabitoesmiapodo Oct 24, 2025
ef92b31
fix: localization macros placement
gabitoesmiapodo Oct 24, 2025
07721f7
fix: add styles for the browser to break long words in the unlock wid…
gabitoesmiapodo Oct 24, 2025
2111e51
fix: remove period at the end of sentence
gabitoesmiapodo Oct 24, 2025
89f3538
chore: add missing translation macros
gabitoesmiapodo Oct 24, 2025
2800e52
fix: make browser to break long words using hypens
gabitoesmiapodo Oct 24, 2025
463f647
fix: align 'Quote refresh in' to the right
gabitoesmiapodo Oct 24, 2025
eabdecf
fix: word wrapping
gabitoesmiapodo Oct 24, 2025
fc8c281
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 24, 2025
63be613
chore: update catalog
gabitoesmiapodo Oct 24, 2025
bd65414
New Crowdin updates (#66)
gabitoesmiapodo Oct 24, 2025
eb00ca2
fix: countdown font size
gabitoesmiapodo Oct 27, 2025
f53acf2
chore: add missing localization macro
gabitoesmiapodo Oct 27, 2025
33176a4
chore: update catalog
gabitoesmiapodo Oct 27, 2025
76b00c1
New Crowdin updates (#67)
gabitoesmiapodo Oct 27, 2025
5a71d61
New translations en-us.po (Spanish) (#68)
gabitoesmiapodo Oct 27, 2025
d7945b8
fix: some minor layout issues
gabitoesmiapodo Oct 27, 2025
08976b0
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Oct 27, 2025
425205b
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 27, 2025
07178a6
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 28, 2025
49df2dc
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Oct 31, 2025
b2578ba
chore: update catalog
gabitoesmiapodo Oct 31, 2025
da6d3bb
chore: update crowdin project id
gabitoesmiapodo Oct 31, 2025
8c6677d
New Crowdin updates (#69)
gabitoesmiapodo Oct 31, 2025
f28565f
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 3, 2025
5a22b9c
chore: update catalog
gabitoesmiapodo Nov 3, 2025
c78dd1b
New Crowdin updates (#70)
gabitoesmiapodo Nov 3, 2025
86758d9
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 3, 2025
dcf7c78
fix: move selected token string to a constant
gabitoesmiapodo Nov 3, 2025
c9a8d33
refactor: remove export default
gabitoesmiapodo Nov 3, 2025
22f0a24
chore: update catalog
gabitoesmiapodo Nov 3, 2025
1f228ac
fix: remove space from string
gabitoesmiapodo Nov 3, 2025
112815b
chore: update catalog
gabitoesmiapodo Nov 3, 2025
bb9417c
New Crowdin updates (#71)
gabitoesmiapodo Nov 3, 2025
f02d6ff
fix: wrong string was being localized
gabitoesmiapodo Nov 4, 2025
c211c2b
chore: update catalog
gabitoesmiapodo Nov 4, 2025
796ccff
New Crowdin updates (#72)
gabitoesmiapodo Nov 4, 2025
e9a29b4
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 5, 2025
4ad1205
chore: update catalog
gabitoesmiapodo Nov 5, 2025
6dcec32
chore: add new string localizations
gabitoesmiapodo Nov 5, 2025
ad6294f
chore: update catalog
gabitoesmiapodo Nov 5, 2025
0f1d807
New Crowdin updates (#73)
gabitoesmiapodo Nov 5, 2025
0e8e6f5
fix: revert localized string to original state
gabitoesmiapodo Nov 7, 2025
13e16a3
chore: add localization readme
gabitoesmiapodo Nov 7, 2025
1d7ebe3
chore: remove commented code
gabitoesmiapodo Nov 7, 2025
ce64340
chore: add missing localization macros
gabitoesmiapodo Nov 7, 2025
d75f2fe
Merge remote-tracking branch 'BN_fork/feat/internationalization-setup…
gabitoesmiapodo Nov 7, 2025
bdf80f2
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 7, 2025
7553b99
chore: update catalog
gabitoesmiapodo Nov 7, 2025
124582a
New Crowdin updates (#74)
gabitoesmiapodo Nov 7, 2025
5148de0
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 10, 2025
1654070
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 11, 2025
06642a3
fix: explorer build errors
gabitoesmiapodo Nov 11, 2025
cedde94
fix: cow.fi build issues
gabitoesmiapodo Nov 11, 2025
9a7f56a
fix: lingui-related issues in tests
gabitoesmiapodo Nov 12, 2025
27a1f85
refactor: rename jest lingui provider
gabitoesmiapodo Nov 12, 2025
a7d0175
fix: add vite lingui plugin configuration
gabitoesmiapodo Nov 12, 2025
3c83f23
fix: add vite lingui plugin configuration
gabitoesmiapodo Nov 12, 2025
604da76
Merge branch 'develop' into feat/internationalization-setup-for-swap-…
gabitoesmiapodo Nov 12, 2025
52a24fa
fix: text wrapping in menu button
gabitoesmiapodo Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion apps/cowswap-frontend/.env
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,14 @@ INTEGRATION_TESTS_INFURA_KEY=
# Path regex (to detect environment)
# REACT_APP_PATH_REGEX_ENS="/ipfs"


# CMS base URL
# REACT_APP_CMS_BASE_URL=http://localhost:1337/api

# Notifications Telegram bot ID
# REACT_APP_TG_BOT_ID=3713371337

#######################################
# Internationalization
#######################################

#REACT_APP_LINGUI_INTERNATIONALIZATION=true
3 changes: 1 addition & 2 deletions apps/cowswap-frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.

# generated contract types
# generated language types
/src/lib/locales/**/*.js
/src/lib/locales/**/en-US.po
/src/lib/locales/**/pseudo.po
/src/locales/**/*.js
/src/locales/**/*.ts
/src/locales/**/*.json
/src/locales/**/en-US.po
/src/locales/**/pseudo.po

# dependencies
Expand Down
17 changes: 17 additions & 0 deletions apps/cowswap-frontend/LinguiJestProvider.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { FC, ReactNode } from 'react'

import { DEFAULT_LOCALE } from '@cowprotocol/common-const'

import { i18n } from '@lingui/core'
import { I18nProvider } from '@lingui/react'

interface ProviderProps {
children: ReactNode
}

i18n.load(DEFAULT_LOCALE, {})
i18n.activate(DEFAULT_LOCALE)

export const LinguiWrapper: FC<ProviderProps> = ({ children }) => {
return <I18nProvider i18n={i18n}>{children}</I18nProvider>
}
30 changes: 21 additions & 9 deletions apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { t } from '@lingui/core/macro'

type ApiActionType = 'get' | 'create' | 'delete'

export interface ApiErrorObject {
Expand Down Expand Up @@ -108,7 +110,7 @@ function _mapActionToErrorDetail(action?: ApiActionType) {
console.error(
'[OperatorError::_mapActionToErrorDetails] Uncaught error mapping error action type to server error. Please try again later.',
)
return 'Something failed. Please try again later.'
return `Something failed. Please try again later.`
}
}

Expand Down Expand Up @@ -144,23 +146,33 @@ export default class OperatorError extends Error {
case 404:
return this.getErrorMessage(errorObject, action)

case 403:
return `The order cannot be ${action === 'create' ? 'accepted' : 'cancelled'}. Your account is deny-listed.`
case 403: {
const acceptedText = t`accepted`
const cancelledText = t`cancelled`
const statusText = action === 'create' ? acceptedText : cancelledText
return t`The order cannot be ${statusText}. Your account is deny-listed.`
}

case 429:
return `The order cannot be ${
action === 'create' ? 'accepted. Too many order placements' : 'cancelled. Too many order cancellations'
}. Please, retry in a minute`
case 429: {
const placementsText = t`accepted. Too many order placements`
const cancellationsText = t`cancelled. Too many order cancellations`
const msg = action === 'create' ? placementsText : cancellationsText
return t`The order cannot be ${msg}. Please, retry in a minute`
}

case 500:
default:
default: {
console.error(
`[OperatorError::getErrorFromStatusCode] Error ${
action === 'create' ? 'creating' : 'cancelling'
} the order, status code:`,
statusCode || 'unknown',
)
return `Error ${action === 'create' ? 'creating' : 'cancelling'} the order`
const creatingText = t`creating`
const cancellingText = t`cancelling`
const verb = action === 'create' ? creatingText : cancellingText
return t`Error ${verb} the order`
}
}
}
constructor(apiError: ApiErrorObject) {
Expand Down
47 changes: 35 additions & 12 deletions apps/cowswap-frontend/src/common/constants/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import EXPERIMENT_ICON from '@cowprotocol/assets/cow-swap/experiment.svg'
import { isInjectedWidget } from '@cowprotocol/common-utils'
import { BadgeTypes } from '@cowprotocol/ui'

import { MessageDescriptor } from '@lingui/core'
import { msg } from '@lingui/core/macro'

export const TRADE_WIDGET_PREFIX = isInjectedWidget() ? '/widget' : ''

export const Routes = {
Expand Down Expand Up @@ -54,25 +57,45 @@ export interface IMenuItem {
badgeType?: (typeof BadgeTypes)[keyof typeof BadgeTypes]
}

export const MENU_ITEMS: IMenuItem[] = [
{ route: Routes.SWAP, label: 'Swap', description: 'Trade tokens' },
{ route: Routes.LIMIT_ORDER, label: 'Limit', fullLabel: 'Limit order', description: 'Set your own price' },
{ route: Routes.ADVANCED_ORDERS, label: 'TWAP', description: 'Place orders with a time-weighted average price' },
export interface I18nIMenuItem extends Omit<IMenuItem, 'label' | 'fullLabel' | 'description' | 'badge'> {
label: MessageDescriptor
fullLabel?: MessageDescriptor
description: MessageDescriptor
badge?: MessageDescriptor
}

export const MENU_ITEMS: I18nIMenuItem[] = [
{
route: Routes.SWAP,
label: msg`Swap`,
description: msg`Trade tokens`,
},
{
route: Routes.LIMIT_ORDER,
label: msg`Limit`,
fullLabel: msg`Limit order`,
description: msg`Set your own price`,
},
{
route: Routes.ADVANCED_ORDERS,
label: msg`TWAP`,
description: msg`Place orders with a time-weighted average price`,
},
]

export const HOOKS_STORE_MENU_ITEM: IMenuItem = {
export const HOOKS_STORE_MENU_ITEM: I18nIMenuItem = {
route: Routes.HOOKS,
label: 'Hooks',
description: 'Powerful tool to generate pre/post interaction for CoW Protocol',
label: msg`Hooks`,
description: msg`Powerful tool to generate pre/post interaction for CoW Protocol`,
badgeImage: EXPERIMENT_ICON,
badgeType: BadgeTypes.INFORMATION,
}

export const YIELD_MENU_ITEM: IMenuItem = {
export const YIELD_MENU_ITEM: I18nIMenuItem = {
route: Routes.YIELD,
label: 'Yield',
fullLabel: 'Yield',
description: 'Provide liquidity',
badge: 'New',
label: msg`Yield`,
fullLabel: msg`Yield`,
description: msg`Provide liquidity`,
badge: msg`New`,
badgeType: BadgeTypes.ALERT,
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { ClosableBanner } from '@cowprotocol/ui'
import { useIsSmartContractWallet, useWalletInfo } from '@cowprotocol/wallet'
import { CurrencyAmount } from '@uniswap/sdk-core'

import { t } from '@lingui/core/macro'

import { useIsDarkMode } from 'legacy/state/user/hooks'

import { useTradeNavigate } from 'modules/trade'
Expand Down Expand Up @@ -80,8 +82,8 @@ export function CoWAmmBanner({ isTokenSelectorView }: BannerProps) {
<CoWAmmBannerContent
id={bannerId}
isDarkMode={isDarkMode}
title="CoW AMM"
ctaText={isSmartContractWallet ? 'Booooost APR!' : 'Booooost APR gas-free!'}
title={t`CoW AMM`}
ctaText={isSmartContractWallet ? t`Booooost APR!` : t`Booooost APR gas-free!`}
isTokenSelectorView={!!isTokenSelectorView}
vampireAttackContext={vampireAttackContext}
tokensByAddress={tokensByAddress}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { useAtomValue } from 'jotai'

import { confirmationModalContextAtom } from 'common/hooks/useConfirmationRequest'
import { t } from '@lingui/core/macro'

import { confirmationModalContextAtom, DEFAULT_CONFIRMATION_MODAL_CONTEXT } from 'common/hooks/useConfirmationRequest'
import { ConfirmationModal as Pure, ConfirmationModalProps } from 'common/pure/ConfirmationModal'

// TODO: Add proper return type annotation
Expand All @@ -13,12 +15,12 @@ export function ConfirmationModal({ isOpen, onDismiss }: Pick<ConfirmationModalP
<Pure
isOpen={isOpen}
onDismiss={onDismiss}
title={title}
callToAction={callToAction}
title={title === DEFAULT_CONFIRMATION_MODAL_CONTEXT.title ? t`Confirm Action` : title}
callToAction={callToAction === DEFAULT_CONFIRMATION_MODAL_CONTEXT.callToAction ? t`Confirm` : callToAction}
description={description}
onEnable={onEnable}
warning={warning}
confirmWord={confirmWord}
confirmWord={confirmWord === DEFAULT_CONFIRMATION_MODAL_CONTEXT.confirmWord ? t`confirm` : confirmWord}
action={action}
skipInput={skipInput}
/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { ReactNode } from 'react'

import { Trans } from '@lingui/react/macro'

import { useLocalTimeOffset } from './localTimeOffsetState'

import { GlobalWarning } from '../../pure/GlobalWarning'
Expand All @@ -18,7 +20,10 @@ export function InvalidLocalTimeWarning(): ReactNode | null {

return (
<GlobalWarning>
Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time.
<Trans>
Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's
time.
</Trans>
</GlobalWarning>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import { Command } from '@cowprotocol/types'
import { ButtonPrimary } from '@cowprotocol/ui'
import { useWalletInfo } from '@cowprotocol/wallet'

import { t } from '@lingui/core/macro'
import { Trans } from '@lingui/react/macro'

import { LegacyConfirmationModalContent } from 'legacy/components/TransactionConfirmationModal/LegacyConfirmationModalContent'
import { useRequestOrderCancellation } from 'legacy/state/orders/hooks'

Expand Down Expand Up @@ -68,7 +71,7 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode {

if (cancellationError) {
const errorMessage = isRejectRequestProviderError(cancellationError)
? 'User rejected signing the cancellation'
? t`User rejected signing the cancellation`
: getIsOrderBookTypedError(cancellationError)
? cancellationError.body.description || cancellationError.body.errorType
: (getProviderErrorMessage(cancellationError) ?? String(cancellationError))
Expand All @@ -86,9 +89,9 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode {
<ConfirmationPendingContent
modalMode
onDismiss={onDismiss}
title={<>Cancelling {ordersCount} orders</>}
description="Canceling your order"
operationLabel="cancellation"
title={t`Cancelling ${ordersCount} orders`}
description={t`Canceling your order`}
operationLabel={t`cancellation`}
/>
</Modal>
)
Expand All @@ -97,20 +100,24 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode {
return (
<Modal isOpen={isOpen} onDismiss={onDismiss}>
<LegacyConfirmationModalContent
title={`Cancel multiple orders: ${ordersCount}`}
title={t`Cancel multiple orders: ${ordersCount}`}
onDismiss={onDismiss}
// TODO: Extract nested component outside render function
// eslint-disable-next-line react/no-unstable-nested-components
topContent={() => (
<div>
<p>Are you sure you want to cancel {ordersCount} orders?</p>
<p>
<Trans>Are you sure you want to cancel {ordersCount} orders?</Trans>
</p>
</div>
)}
// TODO: Extract nested component outside render function
// eslint-disable-next-line react/no-unstable-nested-components
bottomContent={() => (
<div>
<ButtonPrimary onClick={signAndSendCancellation}>Request cancellations</ButtonPrimary>
<ButtonPrimary onClick={signAndSendCancellation}>
<Trans>Request cancellations</Trans>
</ButtonPrimary>
</div>
)}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { useState } from 'react'

import { CowHookDetails, HookToDappMatch } from '@cowprotocol/hook-dapp-lib'

import { t } from '@lingui/core/macro'
import { Trans, useLingui } from '@lingui/react/macro'
import { ChevronDown, ChevronUp } from 'react-feather'

import { useSimulationData } from 'modules/tenderly/hooks/useSimulationData'
Expand All @@ -13,12 +15,13 @@ import * as styledEl from './styled'
// TODO: Break down this large function into smaller functions
// TODO: Add proper return type annotation
// TODO: Reduce function complexity by extracting logic
// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type, complexity
// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type
export function HookItem({ details, item, index }: { details?: CowHookDetails; item: HookToDappMatch; index: number }) {
const [isOpen, setIsOpen] = useState(false)
const simulationData = useSimulationData(details?.uuid)
const { i18n } = useLingui()

const dappName = item.dapp?.name || 'Unknown Hook'
const dappName = item.dapp?.name || t`Unknown Hook`

return (
<styledEl.HookItemWrapper as="li">
Expand All @@ -34,11 +37,13 @@ export function HookItem({ details, item, index }: { details?: CowHookDetails; i
<styledEl.HookNumber>{index + 1}</styledEl.HookNumber>
{item.dapp ? (
<>
<img src={item.dapp.image} alt={item.dapp.name} />
<span>{item.dapp.name}</span>
<img src={item.dapp.image} alt={i18n._(item.dapp.name)} />
<span>{i18n._(item.dapp.name)}</span>
</>
) : (
<span>Unknown hook dapp</span>
<span>
<Trans>Unknown hook dapp</Trans>
</span>
)}
</styledEl.HookItemInfo>
<styledEl.ToggleIcon isOpen={isOpen}>
Expand All @@ -51,7 +56,9 @@ export function HookItem({ details, item, index }: { details?: CowHookDetails; i
<>
{simulationData && (
<p>
<b>Simulation:</b>
<b>
<Trans>Simulation:</Trans>
</b>
<styledEl.SimulationLink status={simulationData.status}>
<a
href={simulationData.link}
Expand All @@ -63,19 +70,27 @@ export function HookItem({ details, item, index }: { details?: CowHookDetails; i
label: `${dappName} - ${simulationData.status ? 'Success' : 'Failed'}`,
})}
>
{simulationData.status ? 'Simulation successful' : 'Simulation failed'}
{simulationData.status ? <Trans>Simulation successful</Trans> : <Trans>Simulation failed</Trans>}
</a>
</styledEl.SimulationLink>
</p>
)}
<p>
<b>Description:</b> {item.dapp.descriptionShort}
<b>
<Trans>Description</Trans>:
</b>{' '}
{item.dapp?.descriptionShort ? i18n._(item.dapp.descriptionShort) : ''}
</p>
<p>
<b>Version:</b> {item.dapp.version}
<b>
<Trans>Version</Trans>:
</b>{' '}
{item.dapp.version}
</p>
<p>
<b>Website:</b>{' '}
<b>
<Trans>Website</Trans>:
</b>{' '}
<a
href={item.dapp.website}
target="_blank"
Expand Down
Loading
Loading