Compare commits

...

125 Commits

Author SHA1 Message Date
Zach Pomerantz
15a339a0d7 lint: connect SafeApp on mount (#2341) 2021-09-13 15:29:27 -07:00
Zach Pomerantz
3c371af32a fix: only try SafeApp connection in an iframe (#2340)
* fix: only try SafeApp connection in an iframe

Improves non-iframe pageload by 300ms. Fixes #2338.

The Gnosis check for a SafeApp races a postMessage and a 300ms timeout [1]. The SafeApp embeds the interface in an iframe, so this avoids the check when not in iframes.

[1]: f224869dd5/packages/safe-apps-web3-react/src/connector.ts (L52)

* refactor: IS_IN_IFRAME const
2021-09-13 15:17:54 -07:00
Crowdin Bot
5797a6229b chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-13 18:05:31 +00:00
Crowdin Bot
32212332bb chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-13 17:07:56 +00:00
Justin Domingue
f7ac87fa85 fix: increase max block age for l2s (#2333)
* fix: increase max block age and refresh fee tier more often

* similar for tick data
2021-09-13 12:22:44 -04:00
Crowdin Bot
540ec24e21 chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-13 16:05:01 +00:00
Crowdin Bot
cd4f19836c chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-13 14:05:06 +00:00
Crowdin Bot
a20b2ff7fa chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-10 07:05:03 +00:00
Noah Zinsmeister
a52b7bf06b feat: use SDK to format calldata passed to quoter (#2305)
* replace useSingleCallResult implementation

use useSingleContractMultipleData instead

* use sdk methods to format quoter calldata

* create cleaner useSingleContractWithCallData fn

* clean up useMultipleContractSingleData

* address comments
2021-09-09 16:40:37 -04:00
Moody Salem
0ab1e5f144 fix: cherry pick the logs hook fix from the liquidity incentives branch (#2315) 2021-09-08 14:06:41 -05:00
Justin Domingue
115c72db9e chore: start tracking approvals in ReactGA (#2311)
* chore: start tracking approvals in ReactGA

* move reactga to swap-only code
2021-09-08 10:22:44 -04:00
Ian Lapham
2bb695d84c reduce popup dismiss time on l2; (#2262) 2021-09-07 12:42:30 -04:00
kun
3ea6f6e0c8 chore(ci): upgrade crust pinner adapt to crust mainnet (#2281)
* Add Pin to Crust workflow

* Upgrade crust pinner adapt Crust Mainnet
2021-09-07 09:37:07 -05:00
Noah Zinsmeister
627a5d3a98 Squashed commit of the following:
commit 5f1d1af62bcd47286aafacc18788f4e7e22dd7c0
Author: Aseem Sood <asood123@yahoo.com>
Date:   Fri Sep 3 12:12:39 2021 -0400

    update readme

    tweak

commit 80a5b95c0e0ae8934b5591c982077eaa813db747
Author: Noah Zinsmeister <noahwz@gmail.com>
Date:   Fri Sep 3 11:52:56 2021 -0400

    consolidate and standardize unsupported tokens
2021-09-05 13:26:47 -04:00
Crowdin Bot
353c4751b8 chore(i18n): synchronize translations from crowdin [skip ci] 2021-09-03 17:08:55 +00:00
Zach Pomerantz
416a3f9433 chore: use native flatMap (#2231) 2021-09-03 12:29:37 -04:00
Noah Zinsmeister
30cffb7442 feat: governor bravo support (#2271)
* first pass

* Fix code style issues with ESLint

* address comments

Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
2021-09-03 12:29:25 -04:00
Zach Pomerantz
f59c5f6877 chore: paint currency selector on initialization (#2245)
Avoids a flash of "Select a token" as the App initializes.
2021-09-02 10:57:01 -07:00
Zach Pomerantz
4bdf3c191a fix: always paint StyledPollingNumber (#2254)
Adds a en-space to StyledPollingNumber so it is always painted. Fixes a layout shift when rendering the first block number.
StyledPollingNumber is taller than its container, so waiting to paint it causes a layout shift when rendering.
2021-09-02 10:42:07 -07:00
Zach Pomerantz
7b829135df fix: make non-interactive header elements unselectable (#2288) 2021-09-01 15:30:17 -07:00
Zach Pomerantz
5831328364 style: enforce object-shorthand (#2286) 2021-09-01 13:32:20 -07:00
Jordan Frankfurt
6b99740f91 use network-specific help center link (#2285) 2021-09-01 16:01:24 -04:00
Zach Pomerantz
f5557a434c chore: upgrade type system (#2276)
* chore: upgrade type system

Upgrade types, typescript, and formatters.

* fix: ListsState tests
2021-09-01 12:38:10 -07:00
circlehotarux
5dfe44dad4 fix: older browser suppport (#2228)
* fix: Object.fromEntries polyfill

* fix: update polyfills

* fix: update polyfills
2021-09-01 11:17:49 -07:00
Justin Domingue
cd50d576d4 update optimism subgraph url (#2282) 2021-09-01 11:58:10 -04:00
dependabot[bot]
d922447ef2 chore(deps): bump tar from 6.1.4 to 6.1.11 (#2280)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.4 to 6.1.11.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.4...v6.1.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 09:31:25 -04:00
Jordan Frankfurt
81b1346937 update explorer links for arbitrum (#2279) 2021-08-31 18:19:26 -04:00
Zach Pomerantz
f51335df9d fix: disable serviceworker in integration tests (#2274) 2021-08-31 11:00:19 -07:00
Zach Pomerantz
13a289f6f1 Revert "test: support stubbing subgraph data in cypress (#2259)" (#2269)
This reverts commit 00403a4810.
2021-08-31 11:10:07 -04:00
Jordan Frankfurt
0afeb5acaf add arbitrum token list (#2268) 2021-08-31 11:05:12 -04:00
Zach Pomerantz
9e8d08e22c fix(governance): special case bravo parsing (#2247)
* fix(governance): special case bravo parsing

* fix(governance): explicitly parse U+2018, U+2026

* chore: upgrade ethers to ^5.4.6

Updates parseLog to delay parsing nested properties, so that they will only fail when accessed.

* fix(vote): recover from invalid UTF-8 in proposal descriptions

* fix(vote): special case bravo proposal newlines

* chore: rm dead reference
2021-08-31 10:47:06 -04:00
Ian Lapham
299286a0d9 update token list (#2270) 2021-08-31 10:37:58 -04:00
Justin Domingue
00403a4810 test: support stubbing subgraph data in cypress (#2259)
* upgrade to 7.0

* first iteration of stubbing subgraph in integration tests

* added fixtures

* add tests for fee tier distribution and liquidity chart

* remove unused test utils

* update yarn.lock

* fixed merge artifacts
2021-08-30 15:56:38 -04:00
Moody Salem
b8a9191653 fix: turn service workers back on (#1944)
reconfigure service workers to only cache used assets (excluding .po language files and non-.var.woff2 font files)

* fix: turn service workers back on

* chore: configure service worker caches

* chore: add newline

* Fix code style issues with ESLint

* chore: limit service-worker caching

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
2021-08-25 12:46:56 -07:00
Moody Salem
1304acd8c7 fix: walletconnect on L2 issues with Rainbow (#2242)
* fix: remove the walletconnect bridge url

* fix: use the latest ethereum provider which fixes the optimism rainbow issue
2021-08-24 12:01:53 -05:00
Zach Pomerantz
8112e48e9a chore: rm redux-devtools-extension (#2230)
redux-devtools-extension integration is already provided through @reduxjs/toolkit.
2021-08-23 10:17:24 -05:00
Zach Pomerantz
f3c400c514 chore: remove unused cross-env (#2232) 2021-08-23 10:15:54 -05:00
Zach Pomerantz
c2c7d87ca3 chore: update multicodec usage (#2233) 2021-08-23 10:15:43 -05:00
Zach Pomerantz
db18b486b4 chore: rm unused styled-system (#2234) 2021-08-23 10:13:57 -05:00
Noah Zinsmeister
1613cc473b fix: proposal formatting 2021-08-20 16:57:45 -04:00
Noah Zinsmeister
e1f37b0ec6 fix(governance): hot fix for parseLog crash 2021-08-20 00:04:06 -04:00
Zach Pomerantz
805af2fdb4 chore(accessibility): increase contrast for connections (#2223) 2021-08-19 16:53:06 -04:00
Zach Pomerantz
b833d07b4f chore: change language icon to globe (#2222)
* chore: change language icon to globe
2021-08-19 16:44:28 -04:00
Moody Salem
ec5da7ec8f fix: update walletconnect for deep links and scalability (#2215) 2021-08-18 12:26:00 -05:00
Crowdin Bot
ff10346b06 chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-17 11:04:45 +00:00
Crowdin Bot
f15522a47c chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-17 00:09:22 +00:00
Crowdin Bot
67b66235ba chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-16 23:05:26 +00:00
Zach Pomerantz
7153908935 chore: fix SEO and accessibility nits for Lighthouse (#2212)
* refactor: index.html

* chore: preconnect to GA

* chore(SEO): add meta content

* chore(SEO): add alt to ethereum logo

* chore(accessibility): add aria-labels to menus

* chore(accessibility): mark AppBody as main

* chore(accessibility): update nav link ids

* chore(accessibility): set html.lang to match i18n locale

* chore(refactor): mv html.lang to useEffect
2021-08-16 18:30:52 -04:00
Crowdin Bot
4541e37388 chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-16 13:18:27 +00:00
Crowdin Bot
3bbcdcb8ae chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-13 22:05:18 +00:00
Zach Pomerantz
2daee152ef chore(i18n): do not compile i18n messages (#2211) 2021-08-13 14:03:14 -07:00
Zach Pomerantz
9af7e0e0c3 chore(i18n): touch en-US to prevent lingui from adding a creation date (#2210)
Fixes #2198. Touching en-US.po before extracting messages prevents lingui from adding a creation date, maintaining deterministic builds and IPFS hashes.
2021-08-13 14:02:59 -07:00
Noah Zinsmeister
757741c3df fix: use @walletconnect/ethereum-provider instead of @walletconnect/web3-provider (#2175)
* use @walletconnect/ethereum-provider

* bump to support client-side disconnect
2021-08-13 10:01:56 -05:00
Moody Salem
a3aa6647e7 chore: set default_bump to false per https://github.com/mathieudutour/github-tag-action/issues/85 2021-08-11 10:19:37 -05:00
Moody Salem
f463df97bf fix: do not construct routes with the same pool twice (#2196) 2021-08-11 10:15:53 -05:00
Ian Lapham
99a282b7b4 update blocked address list (#2182)
Co-authored-by: Ian Lapham <ianlapham@Ians-MacBook-Pro.local>
2021-08-10 10:30:54 -04:00
Moody Salem
5a3165358f fix: #isTradeBetter should check that output currencies are equal (#2177)
* fix: isTradeBetter should check that input/output are equal

* fix the fix
2021-08-10 09:25:43 -05:00
Moody Salem
26e334c78f fix: proposal descriptions should be pulled from the right governor (#2176) 2021-08-10 08:53:22 -05:00
Justin Domingue
bd8192c81e update chinese simplified and traditional display names (#2180) 2021-08-10 09:05:17 -04:00
Justin Domingue
ff6bd38992 add ReactGA event for full range (#2181) 2021-08-10 09:05:05 -04:00
Justin Domingue
a48b7ce702 fix: avoid running BestV3Trade when tokens are the same (#2172)
* avoid running BestV3Trade when tokens are the same

* flipped condition
2021-08-09 10:38:23 -04:00
Crowdin Bot
fc08d1fc6a chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-06 20:05:37 +00:00
Ian Lapham
b416603ff4 update unsupported list (#2143)
Co-authored-by: Ian Lapham <ianlapham@Ians-MacBook-Pro.local>
2021-08-05 20:52:17 -04:00
Justin Domingue
c4dc26e1b2 fix: rename weth9 to weth (#2133)
* update @uniswap/sdk-core and @uniswap/v3-sdk

* reorder
2021-08-05 14:43:02 -04:00
Justin Domingue
adfe7225a8 upgrade to walletconnect 1.5.2 (#2134) 2021-08-04 08:49:46 -04:00
dependabot[bot]
13e347ee02 chore(deps): bump tar from 6.1.0 to 6.1.4 (#2132)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.0 to 6.1.4.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.0...v6.1.4)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-04 08:40:22 -04:00
Crowdin Bot
b527bfbeea chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-03 12:05:13 +00:00
Crowdin Bot
a25df00ef6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-03 08:05:04 +00:00
Crowdin Bot
2446a6e88b chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-03 07:04:40 +00:00
Crowdin Bot
3b3bf14e8a chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-02 19:04:33 +00:00
Crowdin Bot
017e79f7ae chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-02 17:09:09 +00:00
Crowdin Bot
804fe8f5ee chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-02 15:05:55 +00:00
Jordan Frankfurt
bf01b0d342 fix: optimism link and some copy changes (#2126)
* fix: optimism link

* fix: (un)planned downtime copy changes
2021-08-02 10:50:46 -04:00
Crowdin Bot
f46f73f35f chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-02 06:05:04 +00:00
Crowdin Bot
cad3575247 chore(i18n): synchronize translations from crowdin [skip ci] 2021-08-02 03:10:20 +00:00
Crowdin Bot
17aa9fcdb0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-31 12:05:49 +00:00
Crowdin Bot
087745d7c6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-31 08:05:54 +00:00
Lint Action
20e6ca6fd5 Fix code style issues with ESLint 2021-07-30 22:06:48 +00:00
Justin Domingue
d51b7e779b update full range documentation link 2021-07-30 15:05:43 -07:00
Matthew Quinn
cfd0412d78 fix: center import pool text V2 (#2122)
* fix: center import pool text V2

* fix: updated based on feedback

Co-authored-by: Matthew Quinn <matthew.quinn@libertymutual.com>
2021-07-30 14:39:46 -04:00
Matthew Quinn
50afef03cb fix: update mobile header to fix overflow (#2125)
Co-authored-by: Matthew Quinn <matthew.quinn@libertymutual.com>
2021-07-30 14:38:40 -04:00
Crowdin Bot
43b6e7abf4 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-30 05:04:40 +00:00
Moody Salem
64b9df8710 fix: upgrade ethers to allow constructing transaction data compatible with eip-1559 (#2121)
* fix: upgrade ethers to allow constructing transaction data compatible with eip-1559

* bump the experimental provider
2021-07-29 17:46:35 -05:00
Crowdin Bot
d75271484a chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-29 21:04:53 +00:00
Justin Domingue
952cc98df3 fix: add support for full range positions in add liquidity (#2090)
* remove arbitrary range buttons and move full range button

* better align full range to deposit

* support dragging range when in full range

* hack to support full range brushing

* restore zoom levels

* adjusted for mocks

* fix styling

* simplify type

* restore rate toggle change

* fix lower bound by looking at isSorted

* better align bottoms

* add reset button for full range positions

* only flip when not at limit

* fix +/- buttons in range selector

* add help link
2021-07-29 13:47:03 -07:00
Crowdin Bot
9b7637e012 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-29 19:04:45 +00:00
Jordan Frankfurt
a7f599127b add link (#2113) 2021-07-29 14:16:47 -04:00
Jordan Frankfurt
676890d89c fix(L2): update downtime warning copy (#2114) 2021-07-29 14:16:09 -04:00
Lint Action
beb1bf3bdc Fix code style issues with ESLint 2021-07-29 17:26:43 +00:00
Justin Domingue
631c202c49 document useQueryCacheInvalidator
explains why `chainId` is pulled directly from the store.
2021-07-29 10:25:29 -07:00
Moody Salem
491c9b4fd3 fix: upgrade walletconnect to 1.5.1 (#2120)
* upgrade walletconnect to 1.5.0

* bump again
2021-07-28 13:48:10 -05:00
Crowdin Bot
dcaed9094e chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-28 11:04:43 +00:00
Jeffrey Lin
8996ba6e38 fix: toggle liquidity position when toggling rates (#2117)
If field A and field B are already populated, chances are the user wants
them to remain the same and only wants to invert the price range
selector.

The conversion isn't exact, but should be preferable to the previous
behavior.
2021-07-27 16:57:52 -07:00
Crowdin Bot
c8570e5427 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-27 20:04:39 +00:00
Ian Lapham
2806f6513a feat: use modal for txn confirmation on l2 (#2055)
* use modal for txn confirmation on l2

* update with error state

* remove 1 translation

* dedicated L2 component

* update styling on to be less jumpy

* add success animation to modal

* revert regular submitted content

* remove useless hook in popups

* remove import

Co-authored-by: Ian Lapham <ian_lapham@alumni.brown.edu>
2021-07-27 15:55:47 -04:00
Noah Zinsmeister
422c703e71 Revert "feat(uma): uma call option routing (#1385)"
This reverts commit 89d484d882.
2021-07-26 14:19:29 -04:00
Noah Zinsmeister
506493e8ab Revert "feat(routing): support mirror protocol routing as additional bases (#1375)"
This reverts commit 3198129af2.
2021-07-26 13:51:53 -04:00
Justin Domingue
8dfd143208 test: set up component snapshot testing (#2102)
* set up snapshot testing

* improvements

* add tests for TextInput as an example

* Fix code style issues with ESLint

* add comment to custom-test-env file

* only set up needed providers

* include style rules in snapshots

* disable redux storage warning

* added setupTests to avoid boilerplate

Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
2021-07-26 10:41:08 -07:00
Moody Salem
718003b6f2 fix: prevent error if user selects ETH and WETH in add liquidity (#2112)
* fix: prevent error if user selects ETH and WETH in add liquidity

fixes https://github.com/Uniswap/uniswap-interface/issues/1763

* linting error

* revert changes to Tokens.ts
2021-07-26 11:08:15 -05:00
Moody Salem
80b3aa9e61 fix: remove html ids and unnecessary keys from the menu 2021-07-26 07:34:11 -05:00
Ian Lapham
4078390a48 update unsupported and broken lists (#2100) 2021-07-23 18:05:14 -04:00
Justin Domingue
e07599ef0f fix: better support decimal overflow (#2075)
* better support decimal overflow

* improve tests

* explicitly define num digits in toSignificant

* add tests for 0 decimals

* undo change to tryParseAmount and instead compute price without relying on parse

* remove console log and add test

* removed comment

* addressed pr feedback

* improve parsing logic

* addressed pr feedback
2021-07-23 11:11:30 -07:00
Ian Lapham
311bdc19b3 add UniH to unsupported list (#2097) 2021-07-23 13:46:05 -04:00
Moody Salem
a6342d40f1 feat: support connecting to a gnosis safe (#2096)
* feat: support connecting to a gnosis safe

* add the manifest.json attributes required by gnosis safe

* remove background fill

* copy

* only try injected provider if not active after trying safe
2021-07-23 12:04:18 -05:00
Moody Salem
3686506f2a perf: remove extra spread operators from the combine maps function 2021-07-23 09:27:23 -05:00
Moody Salem
634d010d92 perf: list to token map function was doing too many reduces (#2095) 2021-07-23 09:16:56 -05:00
Moody Salem
979f29ad62 chore: copy edit on CONTRIBUTING.md 2021-07-22 16:14:55 -05:00
Justin Domingue
4d3ed5d6ba feat: routing api integration (#2080)
* initial routing api integration

* add routing api slice

* display route in dialog

* addressed pr feedback

* switch to `get`

* renamed useRouterTradeExactIn to useRouter

* moving few files to later iteration

* removed unnecessary `as`

* switch to polling

* add todo for blocknumber freshness

* remove account-slippage-deadline
2021-07-21 15:08:35 -07:00
Moody Salem
ea79fbc2e0 chore: add blurb about release process (#2061)
* chore: add blurb about release process

* additional standard

* how to collect feedback
2021-07-20 16:10:58 -05:00
Jordan Frankfurt
4d19122bd2 set 5 min deadline on swaps and hide UI on L2 (#2081) 2021-07-20 12:41:49 -04:00
Moody Salem
13d7d2c992 fix(swap): double max gas for quoting a v3 swap for large trades 2021-07-19 19:00:52 -05:00
Brendan Weinstein
02cf33e115 Update WalletLink and @web3-react/walletlink-connector (#2079) 2021-07-19 14:52:11 -07:00
Justin Domingue
1f62cdf7a2 fix: invert selected range on RateToggle instead of clearing inputs (#2078) 2021-07-19 11:22:46 -07:00
Crowdin Bot
701e8fe116 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-19 13:09:18 +00:00
Crowdin Bot
3207e6026e chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-19 10:05:27 +00:00
Justin Domingue
b0d93dbc0e increase zoom out range (#2076) 2021-07-16 19:14:39 -07:00
Justin Domingue
975a5e3434 remove unused dependencies (#2074) 2021-07-16 15:03:19 -07:00
Ian Lapham
07f52f02ff feat: only block on app url, mobile UI tweaks (#2073)
* start iframe ui updates

* replace hook with constant

* add origin check for blocked lists

* remove origin check for local unsupported list

* remove redundant retun

* remove iframe check

* undo local change
2021-07-16 15:28:19 -04:00
Crowdin Bot
5f112611c8 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-16 18:22:45 +00:00
Justin Domingue
1d82a4c71e fix: set language using url param in language dropdown (#2063)
* set language using url param in language dropdown

* refactor common code into a hook

* add hook

* address pr feedback
2021-07-16 10:56:33 -07:00
Justin Domingue
6004c4be3e fix: change panning cursor to col-resize (#2071)
* change panning cursor to col-resize

* revert to grabby, and support grabbing
2021-07-16 10:49:27 -07:00
Justin Domingue
a00432c1c3 fix: remove chart clamping and show indicator when handle is off screen (#2064)
* initial off screen indicator

* adjust offscreen indicator

* add off screen handle indicator

* hide reset until we get a better behavior

* add svg.tsx
2021-07-15 16:31:06 -07:00
Crowdin Bot
a184afa41e chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-15 22:05:15 +00:00
Crowdin Bot
49fd256e79 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-15 17:09:03 +00:00
Crowdin Bot
c006edf696 chore(i18n): synchronize translations from crowdin [skip ci] 2021-07-15 16:05:00 +00:00
144 changed files with 7230 additions and 3029 deletions

1
.env
View File

@@ -1,2 +1 @@
REACT_APP_INFURA_KEY="4bf032f2d38a4ed6bb975b80d6340847"
REACT_APP_WALLETCONNECT_BRIDGE_URL="https://uniswap.bridge.walletconnect.org"

View File

@@ -29,6 +29,7 @@
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"react/react-in-jsx-scope": "off",
"object-shorthand": ["error", "always"],
"no-restricted-imports": [
"error",
{

View File

@@ -42,6 +42,7 @@ jobs:
env:
CI: false
REACT_APP_NETWORK_URL: "https://mainnet.infura.io/v3/4bf032f2d38a4ed6bb975b80d6340847"
REACT_APP_SERVICE_WORKER: false
- run: yarn integration-test
env:

View File

@@ -23,6 +23,7 @@ jobs:
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
release_branches: .*
default_bump: false
create_release:
name: Create Release
@@ -55,7 +56,7 @@ jobs:
pinata-secret-api-key: ${{ secrets.PINATA_API_SECRET_KEY }}
- name: Pin to Crust
uses: crustio/ipfs-crust-action@v1.0.8
uses: crustio/ipfs-crust-action@v2.0.3
continue-on-error: true
timeout-minutes: 2
with:

View File

@@ -1,3 +1,4 @@
# Contributing
Thank you for your interest in contributing to the Uniswap interface! 🦄
@@ -23,6 +24,7 @@ makes large architectural changes, consider following all the standards.
- Have at least one engineer approve of large code refactorings
- At least manually test small code changes, prefer automated tests
- Thoroughly unit test when code is not obviously correct
- If something breaks, add automated tests so it doesn't break again
- Add integration tests for new pages or flows
- Verify that all CI checks pass before merging
- Have at least one product manager or designer approve of significant UX changes
@@ -42,6 +44,20 @@ The following points should help guide your development:
- Accessibility: anyone can use the interface
- The interface should be responsive, small and run well on low performance devices (majority of swaps on mobile!)
## Release process
Releases are cut automatically from the `main` branch Monday-Thursday in the morning according to the [release workflow](./.github/workflows/release.yaml).
Fix pull requests should be merged whenever ready and tested.
If a fix is urgently needed in production, releases can be manually triggered on [GitHub](https://github.com/Uniswap/uniswap-interface/actions/workflows/release.yaml)
after the fix is merged into `main`.
Features should not be merged into `main` until they are ready for users.
When building larger features or collaborating with other developers, create a new branch from `main` to track its development.
Use the automatic Vercel preview for sharing the feature to collect feedback.
When the feature is ready for review, create a new pull request from the feature branch into `main` and request reviews from
the appropriate UX reviewers (PMs or designers).
## Finding a first issue
Start with issues with the label
@@ -49,13 +65,11 @@ Start with issues with the label
# Translations
Help Uniswap reach a global audience!
Uniswap uses [Crowdin](https://crowdin.com/project/uniswap-interface) for managing translations.
[This workflow](./.github/workflows/crowdin.yaml) uploads new strings for translation to the Crowdin project whenever code using the [lingui translation macros](https://lingui.js.org/ref/macro.html) is merged into `main`.
Uniswap uses [Crowdin](https://crowdin.com/project/uniswap-interface)
for managing translations. Whenever a new string is added to the project,
it gets uploaded to Crowdin for translation by [this workflow](./.github/workflows/crowdin.yaml).
Every hour, translations are synced from Crowdin to the repository in [this other workflow](./.github/workflows/crowdin-sync.yaml).
Every hour, translations are synced back down from Crowdin to the repository in [this other workflow](./.github/workflows/crowdin-sync.yaml).
We sync to the repository on a schedule, rather than download translations at build time, so that builds are always reproducible.
You can contribute by joining Crowdin to proofread existing translations [here](https://crowdin.com/project/uniswap-interface/invite?d=93i5n413q403t4g473p443o4c3t2g3s21343u2c3n403l4b3v2735353i4g4k4l4g453j4g4o4j4e4k4b323l4a3h463s4g453q443m4e3t2b303s2a35353l403o443v293e303k4g4n4r4g483i4g4r4j4e4o473i5n4a3t463t4o4)

View File

@@ -26,14 +26,19 @@ To access the Uniswap Interface, use an IPFS gateway link from the
[latest release](https://github.com/Uniswap/uniswap-interface/releases/latest),
or visit [app.uniswap.org](https://app.uniswap.org).
## Unsupported tokens
Check out `useUnsupportedTokenList()` in [src/state/lists/hooks.ts](./src/state/lists/hooks.ts) for blocking tokens in your instance of the interface.
You can block an entire list of tokens by passing in a tokenlist like [here](./src/constants/lists.ts) or you can block specific tokens by adding them to [unsupported.tokenlist.json](./src/constants/tokenLists/unsupported.tokenlist.json).
## Contributions
For steps on local deployment, development, and code contribution, please see [CONTRIBUTING](./CONTRIBUTING.md).
## Accessing Uniswap V2
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for
Uniswap protocol V2.
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
- Swap on Uniswap V2: https://app.uniswap.org/#/swap?use=v2
- View V2 liquidity: https://app.uniswap.org/#/pool/v2
@@ -41,6 +46,6 @@ Uniswap protocol V2.
- Migrate V2 liquidity to V3: https://app.uniswap.org/#/migrate/v2
## Accessing Uniswap V1
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).

16
custom-test-env.js Normal file
View File

@@ -0,0 +1,16 @@
// Custom test environment to provide `TextEncoder`/`TextDecoder`
// eslint-disable-next-line @typescript-eslint/no-var-requires
const Environment = require('jest-environment-jsdom')
module.exports = class CustomTestEnvironment extends Environment {
async setup() {
await super.setup()
if (typeof this.global.TextEncoder === 'undefined') {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { TextEncoder, TextDecoder } = require('util')
this.global.TextEncoder = TextEncoder
this.global.TextDecoder = TextDecoder
}
}
}

View File

@@ -4,7 +4,8 @@
"homepage": ".",
"private": true,
"devDependencies": {
"@ethersproject/experimental": "^5.2.0",
"@ethersproject/experimental": "^5.4.0",
"@gnosis.pm/safe-apps-web3-react": "^0.6.0",
"@graphql-codegen/cli": "1.21.5",
"@graphql-codegen/typescript": "1.22.3",
"@graphql-codegen/typescript-operations": "^1.18.2",
@@ -18,7 +19,9 @@
"@reach/dialog": "^0.10.3",
"@reach/portal": "^0.10.3",
"@react-hook/window-scroll": "^1.3.0",
"@reduxjs/toolkit": "^1.6.0",
"@reduxjs/toolkit": "^1.6.1",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^12.0.0",
"@typechain/ethers-v5": "^7.0.0",
"@types/d3": "^6.7.1",
"@types/jest": "^25.2.1",
@@ -26,7 +29,6 @@
"@types/lingui__macro": "^2.7.4",
"@types/lingui__react": "^2.8.3",
"@types/lodash.flatmap": "^4.5.6",
"@types/lodash.inrange": "^3.3.6",
"@types/luxon": "^1.24.4",
"@types/ms.macro": "^2.0.0",
"@types/multicodec": "^1.0.0",
@@ -49,23 +51,23 @@
"@uniswap/governance": "^1.0.2",
"@uniswap/liquidity-staker": "^1.0.2",
"@uniswap/merkle-distributor": "1.0.1",
"@uniswap/sdk-core": "^3.0.1",
"@uniswap/token-lists": "^1.0.0-beta.25",
"@uniswap/v2-core": "1.0.0",
"@uniswap/v2-periphery": "^1.1.0-beta.0",
"@uniswap/v2-sdk": "^3.0.0-alpha.2",
"@uniswap/v3-core": "1.0.0",
"@uniswap/v3-periphery": "^1.1.1",
"@uniswap/v3-sdk": "^3.2.1",
"@uniswap/v3-sdk": "^3.4.1",
"@web3-react/core": "^6.0.9",
"@web3-react/fortmatic-connector": "^6.0.9",
"@web3-react/injected-connector": "^6.0.7",
"@web3-react/portis-connector": "^6.0.9",
"@web3-react/walletconnect-connector": "^6.2.0",
"@web3-react/walletlink-connector": "^6.2.0",
"@web3-react/walletconnect-connector": "^7.0.2-alpha.0",
"@web3-react/walletlink-connector": "^6.2.3",
"ajv": "^6.12.3",
"cids": "^1.0.0",
"copy-to-clipboard": "^3.2.0",
"cross-env": "^7.0.2",
"cypress": "^7.7.0",
"d3": "^7.0.0",
"eslint": "^7.11.0",
@@ -73,19 +75,18 @@
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-react": "^7.19.0",
"eslint-plugin-react-hooks": "^4.0.0",
"ethers": "^5.2.0",
"ethers": "^5.4.6",
"graphql": "^15.5.0",
"graphql-request": "^3.4.0",
"inter-ui": "^3.13.1",
"lightweight-charts": "^3.3.0",
"lodash.flatmap": "^4.5.0",
"lodash.inrange": "^3.3.6",
"jest-styled-components": "^7.0.5",
"luxon": "^1.25.0",
"ms.macro": "^2.0.0",
"multicodec": "^3.0.1",
"multihashes": "^4.0.2",
"node-vibrant": "^3.1.5",
"polished": "^3.3.2",
"polyfill-object.fromentries": "^1.0.1",
"prettier": "^2.2.1",
"qs": "^6.9.4",
"react": "^17.0.1",
@@ -105,39 +106,35 @@
"react-virtualized-auto-sizer": "^1.0.2",
"react-window": "^1.8.5",
"rebass": "^4.0.7",
"redux-devtools-extension": "^2.13.9",
"redux-localstorage-simple": "^2.3.1",
"serve": "^11.3.2",
"start-server-and-test": "^1.11.0",
"styled-components": "^5.3.0",
"styled-system": "^5.1.5",
"typechain": "^5.0.0",
"typescript": "^4.2.3",
"ua-parser-js": "^0.7.28",
"use-count-up": "^2.2.5",
"wcag-contrast": "^3.0.0",
"workbox-core": "^6.1.0",
"workbox-expiration": "^6.1.0",
"workbox-precaching": "^6.1.0",
"workbox-routing": "^6.1.0",
"workbox-strategies": "^6.1.0"
"workbox-routing": "^6.1.0"
},
"resolutions": {
"@walletconnect/web3-provider": "1.5.0-rc.5"
"@walletconnect/ethereum-provider": "1.6.4"
},
"scripts": {
"compile-contract-types": "yarn compile-external-abi-types && yarn compile-v3-contract-types",
"compile-external-abi-types": "typechain --target ethers-v5 --out-dir src/abis/types './src/abis/**/*.json'",
"compile-v3-contract-types": "typechain --target ethers-v5 --out-dir src/types/v3 './node_modules/@uniswap/?(v3-core|v3-periphery)/artifacts/contracts/**/*.json'",
"build": "yarn compile-contract-types && yarn graphql:generate && yarn i18n:extract && yarn i18n:compile && react-scripts build",
"build": "yarn compile-contract-types && yarn graphql:generate && yarn i18n:extract && react-scripts build",
"i18n:extract": "lingui extract --locale en-US",
"i18n:compile": "lingui compile",
"integration-test": "start-server-and-test 'serve build -l 3000' http://localhost:3000 'cypress run --record'",
"graphql:generate": "graphql-codegen --config codegen.yml",
"postinstall": "yarn compile-contract-types",
"start": "yarn compile-contract-types && react-scripts start",
"test": "react-scripts test --env=jsdom",
"prestart": "yarn graphql:generate && touch src/locales/en-US.po"
"test": "react-scripts test --env=./custom-test-env.js",
"prei18n:extract": "touch src/locales/en-US.po",
"prestart": "yarn graphql:generate && yarn prei18n:extract"
},
"eslintConfig": {
"extends": "react-app",

View File

@@ -0,0 +1,11 @@
<svg width="257" height="256" viewBox="0 0 257 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M96.4347 60.2768C94.3434 59.9524 94.2552 59.9143 95.2394 59.7631C97.1254 59.473 101.579 59.8683 104.648 60.5981C111.812 62.3011 118.331 66.6637 125.29 74.4117L127.139 76.4701L129.784 76.0449C140.926 74.2544 152.26 75.6774 161.741 80.057C164.349 81.2619 168.461 83.6603 168.975 84.2766C169.138 84.473 169.439 85.7374 169.642 87.0866C170.347 91.7544 169.994 95.3323 168.567 98.0046C167.79 99.4588 167.746 99.9197 168.268 101.164C168.686 102.157 169.848 102.892 170.999 102.891C173.355 102.888 175.891 99.0791 177.066 93.78L177.532 91.6751L178.457 92.7224C183.528 98.4681 187.512 106.304 188.196 111.881L188.374 113.336L187.522 112.014C186.054 109.739 184.58 108.19 182.693 106.941C179.29 104.69 175.693 103.923 166.164 103.421C157.559 102.968 152.689 102.233 147.859 100.658C139.643 97.9792 135.501 94.4114 125.74 81.6059C121.405 75.918 118.726 72.7711 116.06 70.2368C110.004 64.4784 104.053 61.4584 96.4347 60.2768Z" fill="#FF007A"/>
<path d="M170.916 72.9763C171.132 69.1649 171.649 66.651 172.688 64.3552C173.099 63.4465 173.485 62.7027 173.544 62.7027C173.604 62.7027 173.425 63.3735 173.147 64.1931C172.391 66.4212 172.267 69.4687 172.788 73.0144C173.448 77.5132 173.824 78.1623 178.579 83.022C180.809 85.3014 183.403 88.1762 184.344 89.4105L186.054 91.6547L184.344 90.0508C182.253 88.0895 177.444 84.2644 176.381 83.7176C175.669 83.3509 175.563 83.3573 175.124 83.7946C174.719 84.1975 174.634 84.803 174.577 87.6654C174.49 92.1267 173.882 94.9901 172.414 97.8533C171.621 99.4019 171.495 99.0714 172.214 97.3235C172.75 96.0184 172.805 95.4446 172.801 91.1259C172.792 82.4485 171.762 80.3624 165.721 76.7887C164.19 75.8834 161.668 74.5778 160.117 73.8872C158.565 73.1965 157.333 72.595 157.378 72.5501C157.549 72.3798 163.441 74.0995 165.812 75.0117C169.339 76.3686 169.922 76.5444 170.35 76.3807C170.637 76.271 170.776 75.4347 170.916 72.9763Z" fill="#FF007A"/>
<path d="M100.497 87.8209C96.2514 81.9758 93.6246 73.0138 94.1933 66.3144L94.3691 64.2413L95.3355 64.4176C97.1504 64.7486 100.28 65.9133 101.745 66.8033C105.766 69.2453 107.506 72.4605 109.277 80.7164C109.796 83.1346 110.477 85.8712 110.79 86.7976C111.294 88.2889 113.199 91.7721 114.748 94.0343C115.864 95.6636 115.123 96.4356 112.657 96.213C108.89 95.873 103.788 92.3519 100.497 87.8209Z" fill="#FF007A"/>
<path d="M165.766 131.323C145.925 123.335 138.937 116.4 138.937 104.7C138.937 102.979 138.996 101.57 139.068 101.57C139.14 101.57 139.908 102.138 140.774 102.833C144.797 106.06 149.303 107.438 161.776 109.258C169.115 110.328 173.245 111.193 177.056 112.457C189.166 116.473 196.658 124.624 198.445 135.725C198.964 138.951 198.66 145 197.818 148.188C197.153 150.706 195.125 155.245 194.588 155.419C194.439 155.468 194.292 154.896 194.254 154.118C194.05 149.95 191.943 145.891 188.406 142.851C184.383 139.395 178.979 136.643 165.766 131.323Z" fill="#FF007A"/>
<path d="M151.837 134.642C151.588 133.163 151.157 131.273 150.879 130.444L150.372 128.935L151.313 129.991C152.614 131.451 153.642 133.32 154.514 135.81C155.179 137.71 155.254 138.275 155.249 141.362C155.244 144.393 155.161 145.029 154.546 146.739C153.578 149.436 152.376 151.348 150.359 153.4C146.735 157.089 142.075 159.131 135.351 159.978C134.182 160.125 130.775 160.373 127.78 160.529C120.232 160.922 115.264 161.733 110.801 163.3C110.159 163.525 109.586 163.662 109.528 163.604C109.347 163.425 112.386 161.613 114.897 160.404C118.436 158.699 121.96 157.768 129.854 156.454C133.754 155.804 137.781 155.016 138.804 154.702C148.461 151.741 153.426 144.1 151.837 134.642Z" fill="#FF007A"/>
<path d="M160.932 150.795C158.296 145.128 157.691 139.657 159.135 134.554C159.289 134.009 159.538 133.562 159.687 133.562C159.837 133.562 160.459 133.899 161.07 134.31C162.284 135.127 164.721 136.505 171.212 140.044C179.311 144.46 183.929 147.879 187.07 151.786C189.82 155.208 191.522 159.104 192.341 163.856C192.805 166.548 192.533 173.024 191.843 175.735C189.665 184.281 184.604 190.993 177.385 194.911C176.327 195.484 175.377 195.955 175.275 195.958C175.172 195.96 175.557 194.98 176.131 193.78C178.56 188.703 178.836 183.765 177 178.269C175.876 174.904 173.584 170.797 168.956 163.857C163.575 155.788 162.256 153.641 160.932 150.795Z" fill="#FF007A"/>
<path d="M86.4067 181.371C93.7696 175.154 102.931 170.738 111.276 169.382C114.872 168.798 120.864 169.03 124.194 169.882C129.532 171.248 134.307 174.308 136.791 177.954C139.218 181.517 140.259 184.622 141.343 191.53C141.771 194.255 142.236 196.992 142.377 197.611C143.191 201.192 144.775 204.054 146.739 205.491C149.857 207.773 155.227 207.915 160.509 205.855C161.405 205.505 162.184 205.263 162.238 205.318C162.43 205.508 159.77 207.288 157.894 208.226C155.369 209.487 153.361 209.975 150.693 209.975C145.855 209.975 141.839 207.514 138.487 202.495C137.828 201.508 136.346 198.55 135.193 195.922C131.655 187.851 129.907 185.393 125.799 182.702C122.223 180.361 117.612 179.941 114.143 181.642C109.586 183.876 108.315 189.699 111.579 193.39C112.876 194.856 115.295 196.121 117.273 196.367C120.973 196.828 124.153 194.013 124.153 190.277C124.153 187.851 123.221 186.467 120.873 185.407C117.668 183.961 114.222 185.652 114.238 188.663C114.245 189.947 114.805 190.754 116.092 191.336C116.918 191.71 116.937 191.74 116.263 191.6C113.322 190.99 112.633 187.444 114.998 185.09C117.837 182.264 123.709 183.511 125.725 187.368C126.572 188.988 126.67 192.215 125.932 194.164C124.279 198.525 119.46 200.819 114.571 199.571C111.243 198.721 109.887 197.801 105.874 193.667C98.9012 186.484 96.1941 185.092 86.141 183.523L84.2146 183.222L86.4067 181.371Z" fill="#FF007A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.8241 20.4645C57.1114 48.7285 93.0139 92.734 94.7963 95.1977C96.2679 97.232 95.7141 99.0609 93.1929 100.494C91.7909 101.291 88.9084 102.099 87.4652 102.099C85.8329 102.099 83.9939 101.313 82.6548 100.042C81.7084 99.1447 77.8882 93.4402 69.0694 79.7566C62.3216 69.2863 56.6747 60.6007 56.5206 60.4553C56.1644 60.119 56.1705 60.1303 68.3813 81.9787C76.0487 95.6979 78.6371 100.548 78.6371 101.197C78.6371 102.516 78.2771 103.21 76.6495 105.025C73.9363 108.052 72.7235 111.453 71.8479 118.492C70.8664 126.382 68.1064 131.955 60.4577 141.494C55.9803 147.078 55.2477 148.102 54.118 150.352C52.695 153.187 52.3037 154.774 52.1451 158.353C51.9775 162.137 52.3039 164.581 53.46 168.199C54.4721 171.366 55.5285 173.458 58.2292 177.641C60.5599 181.251 61.9019 183.933 61.9019 184.983C61.9019 185.818 62.0613 185.819 65.6729 185.003C74.316 183.052 81.3341 179.619 85.2812 175.412C87.724 172.808 88.2975 171.371 88.3161 167.802C88.3283 165.469 88.2462 164.98 87.6153 163.637C86.5884 161.452 84.7188 159.635 80.5983 156.818C75.1992 153.127 72.8932 150.156 72.2562 146.07C71.7337 142.717 72.3399 140.351 75.3267 134.091C78.4182 127.612 79.1843 124.85 79.7025 118.319C80.0372 114.1 80.5008 112.435 81.7131 111.1C82.9776 109.707 84.1158 109.235 87.245 108.808C92.3466 108.111 95.5951 106.791 98.2652 104.33C100.582 102.196 101.551 100.139 101.7 97.0427L101.813 94.6959L100.518 93.1867C95.8304 87.7209 30.6848 16.168 30.3963 16.168C30.3347 16.168 31.8773 18.1015 33.8241 20.4645ZM64.5333 162.634C65.5932 160.757 65.0301 158.344 63.2572 157.166C61.5821 156.052 58.9799 156.576 58.9799 158.028C58.9799 158.471 59.2248 158.793 59.7768 159.077C60.7063 159.555 60.7738 160.093 60.0425 161.192C59.3019 162.306 59.3616 163.284 60.2111 163.949C61.5802 165.021 63.5183 164.432 64.5333 162.634Z" fill="#FF007A"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M105.032 110.039C102.637 110.774 100.309 113.312 99.5884 115.974C99.1487 117.598 99.3982 120.446 100.057 121.325C101.121 122.746 102.149 123.12 104.935 123.101C110.389 123.063 115.131 120.724 115.682 117.799C116.134 115.402 114.051 112.08 111.183 110.622C109.703 109.87 106.555 109.571 105.032 110.039ZM111.408 115.024C112.249 113.829 111.881 112.537 110.451 111.664C107.726 110 103.607 111.377 103.607 113.95C103.607 115.231 105.755 116.629 107.724 116.629C109.035 116.629 110.829 115.847 111.408 115.024Z" fill="#FF007A"/>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -2,6 +2,14 @@
<html translate="no">
<head>
<meta charset="utf-8" />
<title>Uniswap Interface</title>
<meta name="description" content="Uniswap Interface" />
<!--
%PUBLIC_URL% will be replaced with the URL of the `public` folder during build.
Only files inside the `public` folder can be referenced from the HTML.
-->
<link rel="shortcut icon" type="image/png" href="%PUBLIC_URL%/favicon.png" />
<link rel="apple-touch-icon" sizes="192x192" href="%PUBLIC_URL%/images/192x192_App_Icon.png" />
<link rel="apple-touch-icon" sizes="512x512" href="%PUBLIC_URL%/images/512x512_App_Icon.png" />
@@ -9,20 +17,14 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#ff007a" />
<meta name="fortmatic-site-verification" content="j93LgcVZk79qcgyo" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
manifest.json provides metadata used when the app is installed as a PWA.
See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<link rel="preconnect" href="https://www.google-analytics.com/">
<style>
* {
@@ -83,8 +85,6 @@
}
}
</style>
<title>Uniswap Interface</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>

View File

@@ -2,6 +2,7 @@
"background_color": "#fff",
"display": "standalone",
"homepage_url": "https://app.uniswap.org",
"providedBy": { "name": "Uniswap", "url": "https://uniswap.org" },
"icons": [
{
"src": "./images/192x192_App_Icon.png",
@@ -18,6 +19,8 @@
],
"orientation": "portrait",
"name": "Uniswap",
"description": "Swap or provide liquidity on the Uniswap Protocol",
"iconPath": "./images/256x256_App_Icon_Pink.svg",
"short_name": "Uniswap",
"start_url": ".",
"theme_color": "#ff007a"

1046
src/abis/governor-bravo.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@ const BLOCKED_ADDRESSES: string[] = [
'0x901bb9583b24D97e995513C6778dc6888AB6870e',
'0xA7e5d5A720f06526557c513402f2e6B5fA20b008',
'0x8576aCC5C05D6Ce88f4e49bf65BdF0C62F91353C',
'0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963',
]
export default function Blocklist({ children }: { children: ReactNode }) {

View File

@@ -53,7 +53,8 @@ const Container = styled.div<{ hideInput: boolean }>`
}
`
const CurrencySelect = styled(ButtonGray)<{ selected: boolean; hideInput?: boolean }>`
const CurrencySelect = styled(ButtonGray)<{ visible: boolean; selected: boolean; hideInput?: boolean }>`
visibility: ${({ visible }) => (visible ? 'visible' : 'hidden')};
align-items: center;
font-size: 24px;
font-weight: 500;
@@ -211,6 +212,7 @@ export default function CurrencyInputPanel({
<Container hideInput={hideInput}>
<InputRow style={hideInput ? { padding: '0', borderRadius: '8px' } : {}} selected={!onCurrencySelect}>
<CurrencySelect
visible={currency !== null}
selected={!!currency}
hideInput={hideInput}
className="open-currency-select-button"

View File

@@ -30,7 +30,7 @@ export default function CurrencyLogo({
style,
...rest
}: {
currency?: Currency
currency?: Currency | null
size?: string
style?: React.CSSProperties
}) {
@@ -50,7 +50,7 @@ export default function CurrencyLogo({
}, [currency, uriLocations])
if (currency?.isNative) {
return <StyledEthereumLogo src={EthereumLogo} size={size} style={style} {...rest} />
return <StyledEthereumLogo src={EthereumLogo} alt="ethereum logo" size={size} style={style} {...rest} />
}
return <StyledLogo size={size} srcs={srcs} alt={`${currency?.symbol ?? 'token'} logo`} style={style} {...rest} />

View File

@@ -66,6 +66,7 @@ const FallbackWrapper = styled(YellowCard)`
border-radius: 12px;
padding: 8px 12px;
width: 100%;
user-select: none;
`
const Icon = styled.img`
width: 16px;

View File

@@ -31,7 +31,6 @@ const StyledPollingDot = styled.div`
height: 8px;
min-height: 8px;
min-width: 8px;
margin-left: 0.5rem;
border-radius: 50%;
position: relative;
background-color: ${({ theme }) => theme.green1};
@@ -96,7 +95,7 @@ export default function Polling() {
>
<StyledPolling onMouseEnter={() => setIsHover(true)} onMouseLeave={() => setIsHover(false)}>
<StyledPollingNumber breathe={isMounting} hovering={isHover}>
{blockNumber}
{blockNumber}&ensp;
</StyledPollingNumber>
<StyledPollingDot>{isMounting && <Spinner />}</StyledPollingDot>
</StyledPolling>

View File

@@ -122,7 +122,6 @@ const AccountElement = styled.div<{ active: boolean }>`
border-radius: 12px;
white-space: nowrap;
width: 100%;
cursor: pointer;
:focus {
border: 1px solid blue;
@@ -192,14 +191,15 @@ const StyledNavLink = styled(NavLink).attrs({
text-decoration: none;
color: ${({ theme }) => theme.text2};
font-size: 1rem;
width: fit-content;
font-weight: 500;
padding: 8px 12px;
word-break: break-word;
overflow: hidden;
white-space: nowrap;
&.${activeClassName} {
border-radius: 12px;
font-weight: 600;
justify-content: center;
color: ${({ theme }) => theme.text1};
background-color: ${({ theme }) => theme.bg2};
}
@@ -285,11 +285,11 @@ export default function Header() {
<Trans>Pool</Trans>
</StyledNavLink>
{chainId && chainId === SupportedChainId.MAINNET && (
<StyledNavLink id={`stake-nav-link`} to={'/vote'}>
<StyledNavLink id={`vote-nav-link`} to={'/vote'}>
<Trans>Vote</Trans>
</StyledNavLink>
)}
<StyledExternalLink id={`stake-nav-link`} href={infoLink}>
<StyledExternalLink id={`charts-nav-link`} href={infoLink}>
<Trans>Charts</Trans>
<sup></sup>
</StyledExternalLink>
@@ -314,9 +314,9 @@ export default function Header() {
<CardNoise />
</UNIWrapper>
)}
<AccountElement active={!!account} style={{ pointerEvents: 'auto' }}>
<AccountElement active={!!account}>
{account && userEthBalance ? (
<BalanceText style={{ flexShrink: 0 }} pl="0.75rem" pr="0.5rem" fontWeight={500}>
<BalanceText style={{ flexShrink: 0, userSelect: 'none' }} pl="0.75rem" pr="0.5rem" fontWeight={500}>
<Trans>{userEthBalance?.toSignificant(3)} ETH</Trans>
</BalanceText>
) : null}

View File

@@ -1,169 +0,0 @@
import React, { useRef, useState, useEffect, useCallback, Dispatch, SetStateAction, ReactNode } from 'react'
import { createChart, IChartApi } from 'lightweight-charts'
import { darken } from 'polished'
import { RowBetween } from 'components/Row'
import Card from '../Card'
import styled from 'styled-components/macro'
import useTheme from 'hooks/useTheme'
const Wrapper = styled(Card)`
width: 100%;
padding: 1rem;
display: flex;
background-color: ${({ theme }) => theme.bg0};
flex-direction: column;
> * {
font-size: 1rem;
}
`
const DEFAULT_HEIGHT = 300
type LineChartProps = {
data: any[]
color?: string | undefined
height?: number | undefined
setValue?: Dispatch<SetStateAction<number | undefined>> // used for value on hover
topLeft?: ReactNode | undefined
topRight?: ReactNode | undefined
bottomLeft?: ReactNode | undefined
bottomRight?: ReactNode | undefined
} & React.HTMLAttributes<HTMLDivElement>
const LineChart = ({
data,
color = '#56B2A4',
setValue,
topLeft,
topRight,
bottomLeft,
bottomRight,
height = DEFAULT_HEIGHT,
...rest
}: LineChartProps) => {
const theme = useTheme()
const chartRef = useRef<HTMLDivElement>(null)
const [chartCreated, setChart] = useState<IChartApi | undefined>()
// for reseting value on hover exit
const currenValue = data[data.length - 1].value
const handleResize = useCallback(() => {
if (chartCreated && chartRef?.current?.parentElement) {
chartCreated.resize(chartRef.current.parentElement.clientWidth - 32, height)
chartCreated.timeScale().fitContent()
chartCreated.timeScale().scrollToPosition(0, false)
}
}, [chartCreated, chartRef, height])
// add event listener for resize
const isClient = typeof window === 'object'
useEffect(() => {
if (!isClient) {
return
}
window.addEventListener('resize', handleResize)
return () => window.removeEventListener('resize', handleResize)
}, [isClient, chartRef, handleResize]) // Empty array ensures that effect is only run on mount and unmount
const textColor = theme.text2
// if chart not instantiated in canvas, create it
useEffect(() => {
if (!chartCreated && data && !!chartRef?.current?.parentElement) {
const chart = createChart(chartRef.current, {
height: height,
width: chartRef.current.parentElement.clientWidth - 32,
layout: {
backgroundColor: 'transparent',
textColor: textColor,
fontFamily: 'Inter',
},
rightPriceScale: {
scaleMargins: {
top: 0.1,
bottom: 0.1,
},
borderVisible: false,
},
timeScale: {
borderVisible: false,
},
watermark: {
color: 'rgba(0, 0, 0, 0)',
},
grid: {
horzLines: {
visible: false,
},
vertLines: {
visible: false,
},
},
crosshair: {
horzLine: {
visible: true,
style: 3,
width: 1,
color: '#505050',
labelBackgroundColor: color,
},
vertLine: {
visible: true,
style: 3,
width: 1,
color: '#505050',
labelBackgroundColor: color,
},
},
})
const series = chart.addAreaSeries({
lineColor: color,
topColor: darken(0.4, color),
bottomColor: theme.bg0,
lineWidth: 2,
priceLineVisible: false,
})
series.setData(data)
// update the title when hovering on the chart
chart.subscribeCrosshairMove(function (param) {
if (
chartRef?.current &&
(param === undefined ||
param.time === undefined ||
(param && param.point && param.point.x < 0) ||
(param && param.point && param.point.x > chartRef.current.clientWidth) ||
(param && param.point && param.point.y < 0) ||
(param && param.point && param.point.y > height))
) {
setValue && setValue(currenValue)
} else {
const price = parseFloat(param.seriesPrices.get(series)?.toString() ?? currenValue)
setValue && setValue(price)
}
})
chart.timeScale().fitContent()
setChart(chart)
}
}, [color, chartCreated, currenValue, data, height, setValue, textColor, theme])
return (
<Wrapper>
<RowBetween>
{topLeft ?? null}
{topRight ?? null}
</RowBetween>
<div ref={chartRef} id={'line-chart'} {...rest} />
<RowBetween>
{bottomLeft ?? null}
{bottomRight ?? null}
</RowBetween>
</Wrapper>
)
}
export default LineChart

View File

@@ -1,14 +1,14 @@
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { BrushBehavior, brushX, D3BrushEvent, ScaleLinear, select } from 'd3'
import styled from 'styled-components/macro'
import { brushHandleAccentPath, brushHandlePath } from 'components/LiquidityChartRangeInput/svg'
import { brushHandleAccentPath, brushHandlePath, OffScreenHandle } from 'components/LiquidityChartRangeInput/svg'
import usePrevious from 'hooks/usePrevious'
const Handle = styled.path<{ color: string }>`
cursor: ew-resize;
pointer-events: none;
stroke-width: 4;
stroke-width: 3;
stroke: ${({ color }) => color};
fill: ${({ color }) => color};
`
@@ -40,7 +40,11 @@ const Tooltip = styled.text`
// flips the handles draggers when close to the container edges
const FLIP_HANDLE_THRESHOLD_PX = 20
const compare = (a1: [number, number], a2: [number, number]): boolean => a1[0] !== a2[0] || a1[1] !== a2[1]
// margin to prevent tick snapping from putting the brush off screen
const BRUSH_EXTENT_MARGIN_PX = 2
const compare = (a1: [number, number], a2: [number, number], xScale: ScaleLinear<number, number>): boolean =>
xScale(a1[0]) !== xScale(a2[0]) || xScale(a1[1]) !== xScale(a2[1])
export const Brush = ({
id,
@@ -59,7 +63,7 @@ export const Brush = ({
interactive: boolean
brushLabelValue: (d: 'w' | 'e', x: number) => string
brushExtent: [number, number]
setBrushExtent: (extent: [number, number]) => void
setBrushExtent: (extent: [number, number], mode: string | undefined) => void
innerWidth: number
innerHeight: number
westHandleColor: string
@@ -76,7 +80,9 @@ export const Brush = ({
const previousBrushExtent = usePrevious(brushExtent)
const brushed = useCallback(
({ type, selection }: D3BrushEvent<unknown>) => {
(event: D3BrushEvent<unknown>) => {
const { type, selection, mode } = event
if (!selection) {
setLocalBrushExtent(null)
return
@@ -85,8 +91,8 @@ export const Brush = ({
const scaled = (selection as [number, number]).map(xScale.invert) as [number, number]
// avoid infinite render loop by checking for change
if (type === 'end' && compare(brushExtent, scaled)) {
setBrushExtent(scaled)
if (type === 'end' && compare(brushExtent, scaled, xScale)) {
setBrushExtent(scaled, mode)
}
setLocalBrushExtent(scaled)
@@ -106,8 +112,8 @@ export const Brush = ({
brushBehavior.current = brushX<SVGGElement>()
.extent([
[Math.max(0, xScale(0)), 0],
[innerWidth, innerHeight],
[Math.max(0 + BRUSH_EXTENT_MARGIN_PX, xScale(0)), 0],
[innerWidth - BRUSH_EXTENT_MARGIN_PX, innerHeight],
])
.handleSize(30)
.filter(() => interactive)
@@ -115,7 +121,7 @@ export const Brush = ({
brushBehavior.current(select(brushRef.current))
if (previousBrushExtent && compare(brushExtent, previousBrushExtent)) {
if (previousBrushExtent && compare(brushExtent, previousBrushExtent, xScale)) {
select(brushRef.current)
.transition()
.call(brushBehavior.current.move as any, brushExtent.map(xScale))
@@ -136,15 +142,26 @@ export const Brush = ({
brushBehavior.current.move(select(brushRef.current) as any, brushExtent.map(xScale) as any)
}, [brushExtent, xScale])
// show labels when local brush changes
useEffect(() => {
setShowLabels(true)
const timeout = setTimeout(() => setShowLabels(false), 1500)
return () => clearTimeout(timeout)
}, [localBrushExtent])
// variables to help render the SVGs
const flipWestHandle = localBrushExtent && xScale(localBrushExtent[0]) > FLIP_HANDLE_THRESHOLD_PX
const flipEastHandle = localBrushExtent && xScale(localBrushExtent[1]) > innerWidth - FLIP_HANDLE_THRESHOLD_PX
const showWestArrow = localBrushExtent && (xScale(localBrushExtent[0]) < 0 || xScale(localBrushExtent[1]) < 0)
const showEastArrow =
localBrushExtent && (xScale(localBrushExtent[0]) > innerWidth || xScale(localBrushExtent[1]) > innerWidth)
const westHandleInView =
localBrushExtent && xScale(localBrushExtent[0]) >= 0 && xScale(localBrushExtent[0]) <= innerWidth
const eastHandleInView =
localBrushExtent && xScale(localBrushExtent[1]) >= 0 && xScale(localBrushExtent[1]) <= innerWidth
return useMemo(
() => (
<>
@@ -156,11 +173,7 @@ export const Brush = ({
{/* clips at exactly the svg area */}
<clipPath id={`${id}-brush-clip`}>
<rect x="0" y="0" width={innerWidth} height="100%" />
</clipPath>
<clipPath id={`${id}-handles-clip`}>
<rect x="0" y="0" width="100%" height="100%" />
<rect x="0" y="0" width={innerWidth} height={innerHeight} />
</clipPath>
</defs>
@@ -176,48 +189,56 @@ export const Brush = ({
{localBrushExtent && (
<>
{/* west handle */}
<g
transform={`translate(${Math.max(0, xScale(localBrushExtent[0]))}, 0), scale(${
flipWestHandle ? '-1' : '1'
}, 1)`}
>
<g clipPath={`url(#${id}-handles-clip)`}>
<Handle color={westHandleColor} d={brushHandlePath(innerHeight)} />
<HandleAccent d={brushHandleAccentPath()} />
</g>
<LabelGroup
transform={`translate(50,0), scale(${flipWestHandle ? '1' : '-1'}, 1)`}
visible={showLabels || hovering}
{westHandleInView ? (
<g
transform={`translate(${Math.max(0, xScale(localBrushExtent[0]))}, 0), scale(${
flipWestHandle ? '-1' : '1'
}, 1)`}
>
<TooltipBackground y="0" x="-30" height="30" width="60" rx="8" />
<Tooltip transform={`scale(-1, 1)`} y="15" dominantBaseline="middle">
{brushLabelValue('w', localBrushExtent[0])}
</Tooltip>
</LabelGroup>
</g>
<g>
<Handle color={westHandleColor} d={brushHandlePath(innerHeight)} />
<HandleAccent d={brushHandleAccentPath()} />
</g>
<LabelGroup
transform={`translate(50,0), scale(${flipWestHandle ? '1' : '-1'}, 1)`}
visible={showLabels || hovering}
>
<TooltipBackground y="0" x="-30" height="30" width="60" rx="8" />
<Tooltip transform={`scale(-1, 1)`} y="15" dominantBaseline="middle">
{brushLabelValue('w', localBrushExtent[0])}
</Tooltip>
</LabelGroup>
</g>
) : null}
{/* east handle */}
<g
transform={`translate(${Math.min(xScale(localBrushExtent[1]), innerWidth)}, 0), scale(${
flipEastHandle ? '-1' : '1'
}, 1)`}
>
<g clipPath={`url(#${id}-handles-clip)`}>
<Handle color={eastHandleColor} d={brushHandlePath(innerHeight)} />
<HandleAccent d={brushHandleAccentPath()} />
</g>
{eastHandleInView ? (
<g transform={`translate(${xScale(localBrushExtent[1])}, 0), scale(${flipEastHandle ? '-1' : '1'}, 1)`}>
<g>
<Handle color={eastHandleColor} d={brushHandlePath(innerHeight)} />
<HandleAccent d={brushHandleAccentPath()} />
</g>
<LabelGroup
transform={`translate(50,0), scale(${flipEastHandle ? '-1' : '1'}, 1)`}
visible={showLabels || hovering}
>
<TooltipBackground y="0" x="-30" height="30" width="60" rx="8" />
<Tooltip y="15" dominantBaseline="middle">
{brushLabelValue('e', localBrushExtent[1])}
</Tooltip>
</LabelGroup>
</g>
<LabelGroup
transform={`translate(50,0), scale(${flipEastHandle ? '-1' : '1'}, 1)`}
visible={showLabels || hovering}
>
<TooltipBackground y="0" x="-30" height="30" width="60" rx="8" />
<Tooltip y="15" dominantBaseline="middle">
{brushLabelValue('e', localBrushExtent[1])}
</Tooltip>
</LabelGroup>
</g>
) : null}
{showWestArrow && <OffScreenHandle color={westHandleColor} />}
{showEastArrow && (
<g transform={`translate(${innerWidth}, 0) scale(-1, 1)`}>
<OffScreenHandle color={eastHandleColor} />
</g>
)}
</>
)}
</>
@@ -225,6 +246,7 @@ export const Brush = ({
[
brushLabelValue,
eastHandleColor,
eastHandleInView,
flipEastHandle,
flipWestHandle,
hovering,
@@ -232,8 +254,11 @@ export const Brush = ({
innerHeight,
innerWidth,
localBrushExtent,
showEastArrow,
showLabels,
showWestArrow,
westHandleColor,
westHandleInView,
xScale,
]
)

View File

@@ -1,11 +1,12 @@
import { max, scaleLinear, ZoomTransform } from 'd3'
import { useEffect, useMemo, useRef, useState } from 'react'
import { Bound } from 'state/mint/v3/actions'
import { Area } from './Area'
import { AxisBottom } from './AxisBottom'
import { Brush } from './Brush'
import { Line } from './Line'
import { ChartEntry, LiquidityChartRangeInputProps } from './types'
import Zoom from './Zoom'
import Zoom, { ZoomOverlay } from './Zoom'
export const xAccessor = (d: ChartEntry) => d.price0
export const yAccessor = (d: ChartEntry) => d.activeLiquidity
@@ -13,6 +14,7 @@ export const yAccessor = (d: ChartEntry) => d.activeLiquidity
export function Chart({
id = 'liquidityChartRangeInput',
data: { series, current },
ticksAtLimit,
styles,
dimensions: { width, height },
margins,
@@ -22,7 +24,7 @@ export function Chart({
onBrushDomainChange,
zoomLevels,
}: LiquidityChartRangeInputProps) {
const svgRef = useRef<SVGSVGElement | null>(null)
const zoomRef = useRef<SVGRectElement | null>(null)
const [zoom, setZoom] = useState<ZoomTransform | null>(null)
@@ -56,25 +58,31 @@ export function Chart({
useEffect(() => {
if (!brushDomain) {
onBrushDomainChange(xScale.domain() as [number, number])
onBrushDomainChange(xScale.domain() as [number, number], undefined)
}
}, [brushDomain, onBrushDomainChange, xScale])
// ensures the brush remains in view and adapts to zooms
xScale.clamp(true)
return (
<>
<Zoom
svg={svgRef.current}
svg={zoomRef.current}
xScale={xScale}
setZoom={setZoom}
innerWidth={innerWidth}
innerHeight={innerHeight}
showClear={Boolean(zoom && zoom.k !== 1)}
width={innerWidth}
height={
// allow zooming inside the x-axis
height
}
resetBrush={() => {
onBrushDomainChange(
[current * zoomLevels.initialMin, current * zoomLevels.initialMax] as [number, number],
'reset'
)
}}
showResetButton={Boolean(ticksAtLimit[Bound.LOWER] || ticksAtLimit[Bound.UPPER])}
zoomLevels={zoomLevels}
/>
<svg ref={svgRef} width="100%" height="100%" viewBox={`0 0 ${width} ${height}`} style={{ overflow: 'visible' }}>
<svg width="100%" height="100%" viewBox={`0 0 ${width} ${height}`} style={{ overflow: 'visible' }}>
<defs>
<clipPath id={`${id}-chart-clip`}>
<rect x="0" y="0" width={innerWidth} height={height} />
@@ -117,6 +125,8 @@ export function Chart({
<AxisBottom xScale={xScale} innerHeight={innerHeight} />
</g>
<ZoomOverlay width={innerWidth} height={height} ref={zoomRef} />
<Brush
id={id}
xScale={xScale}

View File

@@ -1,7 +1,7 @@
import React, { useEffect, useMemo, useRef } from 'react'
import { ButtonGray } from 'components/Button'
import styled from 'styled-components/macro'
import { ScaleLinear, select, ZoomBehavior, zoom, ZoomTransform } from 'd3'
import { ScaleLinear, select, ZoomBehavior, zoom, ZoomTransform, zoomIdentity } from 'd3'
import { RefreshCcw, ZoomIn, ZoomOut } from 'react-feather'
import { ZoomLevels } from './types'
@@ -26,26 +26,37 @@ const Button = styled(ButtonGray)`
padding: 4px;
`
export const ZoomOverlay = styled.rect`
fill: transparent;
cursor: grab;
&:active {
cursor: grabbing;
}
`
export default function Zoom({
svg,
xScale,
setZoom,
innerWidth,
innerHeight,
showClear,
width,
height,
resetBrush,
showResetButton,
zoomLevels,
}: {
svg: SVGSVGElement | null
svg: SVGElement | null
xScale: ScaleLinear<number, number>
setZoom: (transform: ZoomTransform) => void
innerWidth: number
innerHeight: number
showClear: boolean
width: number
height: number
resetBrush: () => void
showResetButton: boolean
zoomLevels: ZoomLevels
}) {
const zoomBehavior = useRef<ZoomBehavior<Element, unknown>>()
const [zoomIn, zoomOut, reset, initial] = useMemo(
const [zoomIn, zoomOut, zoomInitial, zoomReset] = useMemo(
() => [
() =>
svg &&
@@ -64,15 +75,16 @@ export default function Zoom({
zoomBehavior.current &&
select(svg as Element)
.transition()
.call(zoomBehavior.current.scaleTo, 1),
.call(zoomBehavior.current.scaleTo, 0.5),
() =>
svg &&
zoomBehavior.current &&
select(svg as Element)
.call(zoomBehavior.current.transform, zoomIdentity.translate(0, 0).scale(1))
.transition()
.call(zoomBehavior.current.scaleTo, 0.5),
],
[svg, zoomBehavior]
[svg]
)
useEffect(() => {
@@ -80,30 +92,30 @@ export default function Zoom({
zoomBehavior.current = zoom()
.scaleExtent([zoomLevels.min, zoomLevels.max])
.translateExtent([
[0, 0],
[innerWidth, innerHeight],
])
.extent([
[0, 0],
[innerWidth, innerHeight],
[width, height],
])
.on('zoom', ({ transform }: { transform: ZoomTransform }) => setZoom(transform))
select(svg as Element)
.call(zoomBehavior.current)
.on('mousedown.zoom', null)
}, [innerHeight, innerWidth, setZoom, svg, xScale, zoomBehavior, zoomLevels, zoomLevels.max, zoomLevels.min])
select(svg as Element).call(zoomBehavior.current)
}, [height, width, setZoom, svg, xScale, zoomBehavior, zoomLevels, zoomLevels.max, zoomLevels.min])
useEffect(() => {
// reset zoom to initial on zoomLevel chang
initial()
}, [initial, zoomLevels])
// reset zoom to initial on zoomLevel change
zoomInitial()
}, [zoomInitial, zoomLevels])
return (
<Wrapper count={showClear ? 3 : 2}>
{showClear && (
<Button onClick={reset} disabled={false}>
<Wrapper count={showResetButton ? 3 : 2}>
{showResetButton && (
<Button
onClick={() => {
resetBrush()
zoomReset()
}}
disabled={false}
>
<RefreshCcw size={16} />
</Button>
)}

View File

@@ -22,19 +22,19 @@ const ZOOM_LEVELS: Record<FeeAmount, ZoomLevels> = {
[FeeAmount.LOW]: {
initialMin: 0.999,
initialMax: 1.001,
min: 0.001,
min: 0.00001,
max: 1.5,
},
[FeeAmount.MEDIUM]: {
initialMin: 0.5,
initialMax: 2,
min: 0.01,
min: 0.00001,
max: 20,
},
[FeeAmount.HIGH]: {
initialMin: 0.5,
initialMax: 2,
min: 0.01,
min: 0.00001,
max: 20,
},
}
@@ -87,6 +87,8 @@ export default function LiquidityChartRangeInput({
const tokenAColor = useColor(currencyA?.wrapped)
const tokenBColor = useColor(currencyB?.wrapped)
const isSorted = currencyA && currencyB && currencyA?.wrapped.sortsBefore(currencyB?.wrapped)
const { isLoading, isUninitialized, isError, error, formattedData } = useDensityChartData({
currencyA,
currencyB,
@@ -94,7 +96,7 @@ export default function LiquidityChartRangeInput({
})
const onBrushDomainChangeEnded = useCallback(
(domain) => {
(domain, mode) => {
let leftRangeValue = Number(domain[0])
const rightRangeValue = Number(domain[1])
@@ -104,40 +106,48 @@ export default function LiquidityChartRangeInput({
batch(() => {
// simulate user input for auto-formatting and other validations
leftRangeValue > 0 && onLeftRangeInput(leftRangeValue.toFixed(6))
rightRangeValue > 0 && onRightRangeInput(rightRangeValue.toFixed(6))
if (
(!ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER] || mode === 'handle' || mode === 'reset') &&
leftRangeValue > 0
) {
onLeftRangeInput(leftRangeValue.toFixed(6))
}
if ((!ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER] || mode === 'reset') && rightRangeValue > 0) {
// todo: remove this check. Upper bound for large numbers
// sometimes fails to parse to tick.
if (rightRangeValue < 1e35) {
onRightRangeInput(rightRangeValue.toFixed(6))
}
}
})
},
[onLeftRangeInput, onRightRangeInput]
[isSorted, onLeftRangeInput, onRightRangeInput, ticksAtLimit]
)
interactive = interactive && Boolean(formattedData?.length)
const brushDomain: [number, number] | undefined = useMemo(() => {
const isSorted = currencyA && currencyB && currencyA?.wrapped.sortsBefore(currencyB?.wrapped)
const leftPrice = isSorted ? priceLower : priceUpper?.invert()
const rightPrice = isSorted ? priceUpper : priceLower?.invert()
return leftPrice && rightPrice
? [parseFloat(leftPrice?.toSignificant(5)), parseFloat(rightPrice?.toSignificant(5))]
? [parseFloat(leftPrice?.toSignificant(6)), parseFloat(rightPrice?.toSignificant(6))]
: undefined
}, [currencyA, currencyB, priceLower, priceUpper])
}, [isSorted, priceLower, priceUpper])
const brushLabelValue = useCallback(
(d: 'w' | 'e', x: number) => {
if (!price) return ''
if (d === 'w' && ticksAtLimit[Bound.LOWER]) return '0'
if (d === 'e' && ticksAtLimit[Bound.UPPER]) return '∞'
//const percent = (((x < price ? -1 : 1) * (Math.max(x, price) - Math.min(x, price))) / Math.min(x, price)) * 100
if (d === 'w' && ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER]) return '0'
if (d === 'e' && ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER]) return '∞'
const percent = (x < price ? -1 : 1) * ((Math.max(x, price) - Math.min(x, price)) / price) * 100
return price ? `${format(Math.abs(percent) > 1 ? '.2~s' : '.2~f')(percent)}%` : ''
},
[price, ticksAtLimit]
[isSorted, price, ticksAtLimit]
)
if (isError) {
@@ -189,6 +199,7 @@ export default function LiquidityChartRangeInput({
brushDomain={brushDomain}
onBrushDomainChange={onBrushDomainChangeEnded}
zoomLevels={ZOOM_LEVELS[feeAmount ?? FeeAmount.MEDIUM]}
ticksAtLimit={ticksAtLimit}
/>
</ChartWrapper>
)}

View File

@@ -20,7 +20,7 @@ export const brushHandlePath = (height: number) =>
`v ${height}`, // vertical line
'm 1 0', // move 1px to the right
`V 0`, // second vertical line
`M 0 2`, // move to origin
`M 0 1`, // move to origin
// head
'h 12', // horizontal line
@@ -33,10 +33,29 @@ export const brushHandlePath = (height: number) =>
export const brushHandleAccentPath = () =>
[
'm 6 8', // move to first accent
'm 5 7', // move to first accent
'v 14', // vertical line
'M 0 0', // move to origin
'm 10 8', // move to second accent
'm 9 7', // move to second accent
'v 14', // vertical line
'z',
].join(' ')
export const OffScreenHandle = ({
color,
size = 10,
margin = 10,
}: {
color: string
size?: number
margin?: number
}) => (
<polygon
points={`0 0, ${size} ${size}, 0 ${size}`}
transform={` translate(${size + margin}, ${margin}) rotate(45) `}
fill={color}
stroke={color}
strokeWidth="4"
strokeLinejoin="round"
/>
)

View File

@@ -1,3 +1,5 @@
import { Bound } from 'state/mint/v3/actions'
export interface ChartEntry {
activeLiquidity: number
price0: number
@@ -30,6 +32,7 @@ export interface LiquidityChartRangeInputProps {
series: ChartEntry[]
current: number
}
ticksAtLimit: { [bound in Bound]?: boolean | undefined }
styles: {
area: {
@@ -52,7 +55,7 @@ export interface LiquidityChartRangeInputProps {
brushLabels: (d: 'w' | 'e', x: number) => string
brushDomain: [number, number] | undefined
onBrushDomainChange: (domain: [number, number]) => void
onBrushDomainChange: (domain: [number, number], mode: string | undefined) => void
zoomLevels: ZoomLevels
}

View File

@@ -1,16 +1,6 @@
import { t } from '@lingui/macro'
import React, { useEffect, useRef, useState } from 'react'
import {
BookOpen,
Code,
Info,
MessageCircle,
PieChart,
Moon,
Sun,
ChevronRight,
ChevronLeft,
Check,
} from 'react-feather'
import { BookOpen, Code, Info, MessageCircle, PieChart, Moon, Sun, Globe, ChevronLeft, Check } from 'react-feather'
import { Link } from 'react-router-dom'
import styled, { css } from 'styled-components/macro'
import { ReactComponent as MenuIcon } from '../../assets/images/menu.svg'
@@ -21,10 +11,12 @@ import { useModalOpen, useToggleModal } from '../../state/application/hooks'
import { Trans } from '@lingui/macro'
import { ExternalLink } from '../../theme'
import { ButtonPrimary } from '../Button'
import { useDarkModeManager, useUserLocaleManager } from 'state/user/hooks'
import { useDarkModeManager } from 'state/user/hooks'
import { L2_CHAIN_IDS, CHAIN_INFO, SupportedChainId } from 'constants/chains'
import { LOCALE_LABEL, SUPPORTED_LOCALES } from 'constants/locales'
import { LOCALE_LABEL, SupportedLocale, SUPPORTED_LOCALES } from 'constants/locales'
import { useLocationLinkProps } from 'hooks/useLocationLinkProps'
import { useActiveLocale } from 'hooks/useActiveLocale'
export enum FlyoutAlignment {
LEFT = 'LEFT',
@@ -140,6 +132,20 @@ const InternalMenuItem = styled(Link)`
}
`
const InternalLinkMenuItem = styled(InternalMenuItem)`
display: flex;
flex-direction: row;
align-items: center;
padding: 0.5rem 0.5rem;
justify-content: space-between;
text-decoration: none;
:hover {
color: ${({ theme }) => theme.text1};
cursor: pointer;
text-decoration: none;
}
`
const ToggleMenuItem = styled.button`
background-color: transparent;
margin: 0;
@@ -163,6 +169,34 @@ const ToggleMenuItem = styled.button`
const CODE_LINK = 'https://github.com/Uniswap/uniswap-interface'
function LanguageMenuItem({ locale, active, key }: { locale: SupportedLocale; active: boolean; key: string }) {
const { to, onClick } = useLocationLinkProps(locale)
if (!to) return null
return (
<InternalLinkMenuItem onClick={onClick} key={key} to={to}>
<div>{LOCALE_LABEL[locale]}</div>
{active && <Check opacity={0.6} size={16} />}
</InternalLinkMenuItem>
)
}
function LanguageMenu({ close }: { close: () => void }) {
const activeLocale = useActiveLocale()
return (
<MenuFlyout>
<ToggleMenuItem onClick={close}>
<ChevronLeft size={16} />
</ToggleMenuItem>
{SUPPORTED_LOCALES.map((locale) => (
<LanguageMenuItem locale={locale} active={activeLocale === locale} key={locale} />
))}
</MenuFlyout>
)
}
export default function Menu() {
const { account, chainId } = useActiveWeb3React()
@@ -175,7 +209,6 @@ export default function Menu() {
const { infoLink } = CHAIN_INFO[chainId ? chainId : SupportedChainId.MAINNET]
const [darkMode, toggleDarkMode] = useDarkModeManager()
const [currentLocale, setLocale] = useUserLocaleManager()
const [menu, setMenu] = useState<'main' | 'lang'>('main')
@@ -186,7 +219,7 @@ export default function Menu() {
return (
// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/30451
<StyledMenu ref={node as any}>
<StyledMenuButton onClick={toggle}>
<StyledMenuButton onClick={toggle} aria-label={t`Menu`}>
<StyledMenuIcon />
</StyledMenuButton>
@@ -194,19 +227,7 @@ export default function Menu() {
(() => {
switch (menu) {
case 'lang':
return (
<MenuFlyout>
<ToggleMenuItem onClick={() => setMenu('main')}>
<ChevronLeft size={16} />
</ToggleMenuItem>
{SUPPORTED_LOCALES.map((locale) => (
<ToggleMenuItem onClick={() => setLocale(locale)} key={locale}>
<div>{LOCALE_LABEL[locale]}</div>
{currentLocale === locale && <Check opacity={0.6} size={16} />}
</ToggleMenuItem>
))}
</MenuFlyout>
)
return <LanguageMenu close={() => setMenu('main')} />
case 'main':
default:
return (
@@ -245,7 +266,7 @@ export default function Menu() {
<div>
<Trans>Language</Trans>
</div>
<ChevronRight size={16} opacity={0.6} />
<Globe opacity={0.6} size={16} />
</ToggleMenuItem>
<ToggleMenuItem onClick={() => toggleDarkMode()}>
<div>{darkMode ? <Trans>Light Theme</Trans> : <Trans>Dark Theme</Trans>}</div>
@@ -306,11 +327,11 @@ export const NewMenu = ({ flyoutAlignment = FlyoutAlignment.RIGHT, ToggleUI, men
<NewMenuFlyout flyoutAlignment={flyoutAlignment}>
{menuItems.map(({ content, link, external }, i) =>
external ? (
<ExternalMenuItem id="link" href={link} key={link + i}>
<ExternalMenuItem href={link} key={i}>
{content}
</ExternalMenuItem>
) : (
<NewMenuItem id="link" to={link} key={link + i}>
<NewMenuItem to={link} key={i}>
{content}
</NewMenuItem>
)

View File

@@ -85,11 +85,11 @@ export function SwapPoolTabs({ active }: { active: 'swap' | 'pool' }) {
export function FindPoolTabs({ origin }: { origin: string }) {
return (
<Tabs>
<RowBetween style={{ padding: '1rem 1rem 0 1rem' }}>
<RowBetween style={{ padding: '1rem 1rem 0 1rem', position: 'relative' }}>
<HistoryLink to={origin}>
<StyledArrowLeft />
</HistoryLink>
<ActiveText>
<ActiveText style={{ position: 'absolute', left: '50%', transform: 'translateX(-50%)' }}>
<Trans>Import V2 Pool</Trans>
</ActiveText>
</RowBetween>

View File

@@ -11,6 +11,7 @@ import { ArrowDownCircle } from 'react-feather'
import { useArbitrumAlphaAlert, useDarkModeManager } from 'state/user/hooks'
import styled from 'styled-components/macro'
import { ExternalLink, MEDIA_WIDTHS } from 'theme'
import { ReadMoreLink } from './styles'
const L2Icon = styled.img`
display: none;
@@ -109,15 +110,20 @@ export function AddLiquidityNetworkAlert() {
return null
}
const info = CHAIN_INFO[chainId as SupportedL2ChainId]
const depositUrl = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
? `${info.bridge}?chainId=1`
: info.bridge
const isOptimism = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
const depositUrl = isOptimism ? `${info.bridge}?chainId=1` : info.bridge
const readMoreLink = isOptimism
? 'https://help.uniswap.org/en/articles/5392809-how-to-deposit-tokens-to-optimism'
: 'https://help.uniswap.org/en/articles/5538618-how-to-deposit-tokens-to-arbitrum'
return (
<Wrapper darkMode={darkMode} chainId={chainId} logoUrl={info.logoUrl}>
<L2Icon src={info.logoUrl} />
<Body>
<Trans>This is an alpha release of Uniswap on the {info.label} network.</Trans>
<DesktopTextBreak /> <Trans>You must bridge L1 assets to the network to use them.</Trans>
<DesktopTextBreak /> <Trans>You must bridge L1 assets to the network to use them.</Trans>{' '}
<ReadMoreLink href={readMoreLink}>
<Trans>Read more</Trans>
</ReadMoreLink>
</Body>
<LinkOutToBridge href={depositUrl}>
<Trans>Deposit to {info.label}</Trans>

View File

@@ -11,6 +11,7 @@ import { ArrowDownCircle } from 'react-feather'
import { useArbitrumAlphaAlert, useDarkModeManager } from 'state/user/hooks'
import styled from 'styled-components/macro'
import { ExternalLink, MEDIA_WIDTHS } from 'theme'
import { ReadMoreLink } from './styles'
const L2Icon = styled.img`
display: none;
@@ -109,15 +110,20 @@ export function MinimalNetworkAlert() {
return null
}
const info = CHAIN_INFO[chainId as SupportedL2ChainId]
const depositUrl = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
? `${info.bridge}?chainId=1`
: info.bridge
const isOptimism = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
const depositUrl = isOptimism ? `${info.bridge}?chainId=1` : info.bridge
const readMoreLink = isOptimism
? 'https://help.uniswap.org/en/articles/5392809-how-to-deposit-tokens-to-optimism'
: 'https://help.uniswap.org/en/articles/5538618-how-to-deposit-tokens-to-arbitrum'
return (
<Wrapper darkMode={darkMode} chainId={chainId} logoUrl={info.logoUrl}>
<L2Icon src={info.logoUrl} />
<Body>
<Trans>This is an alpha release of Uniswap on the {info.label} network.</Trans>
<DesktopTextBreak /> <Trans>You must bridge L1 assets to the network to use them.</Trans>
<DesktopTextBreak /> <Trans>You must bridge L1 assets to the network to use them.</Trans>{' '}
<ReadMoreLink href={readMoreLink}>
<Trans>Read more</Trans>
</ReadMoreLink>
</Body>
<LinkOutToBridge href={depositUrl}>
<Trans>Deposit to {info.label}</Trans>

View File

@@ -8,6 +8,7 @@ import { useETHBalances } from 'state/wallet/hooks'
import styled, { css } from 'styled-components/macro'
import { ExternalLink, MEDIA_WIDTHS } from 'theme'
import { CHAIN_INFO } from '../../constants/chains'
import { ReadMoreLink } from './styles'
const L2Icon = styled.img`
width: 40px;
@@ -136,10 +137,11 @@ export function NetworkAlert() {
return null
}
const info = CHAIN_INFO[chainId as SupportedL2ChainId]
const depositUrl = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
? `${info.bridge}?chainId=1`
: info.bridge
const isOptimism = [SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISTIC_KOVAN].includes(chainId)
const depositUrl = isOptimism ? `${info.bridge}?chainId=1` : info.bridge
const readMoreLink = isOptimism
? 'https://help.uniswap.org/en/articles/5392809-how-to-deposit-tokens-to-optimism'
: 'https://help.uniswap.org/en/articles/5538618-how-to-deposit-tokens-to-arbitrum'
return (
<RootWrapper chainId={chainId} darkMode={darkMode} logoUrl={info.logoUrl}>
<CloseIcon onClick={dismiss} />
@@ -152,7 +154,10 @@ export function NetworkAlert() {
<Trans>
This is an alpha release of Uniswap on the {info.label} network. You must bridge L1 assets to the network to
swap them.
</Trans>
</Trans>{' '}
<ReadMoreLink href={readMoreLink}>
<Trans>Read more</Trans>
</ReadMoreLink>
</Body>
</ContentWrapper>
<LinkOutToBridge href={depositUrl}>

View File

@@ -0,0 +1,7 @@
import styled from 'styled-components/macro'
import { ExternalLink } from 'theme'
export const ReadMoreLink = styled(ExternalLink)`
color: ${({ theme }) => theme.text1};
text-decoration: underline;
`

View File

@@ -3,6 +3,7 @@ import { SupportedChainId } from 'constants/chains'
import { useActiveWeb3React } from 'hooks/web3'
import { AlertOctagon } from 'react-feather'
import styled from 'styled-components/macro'
import { ExternalLink } from 'theme'
const Root = styled.div`
background-color: ${({ theme }) => theme.yellow3};
@@ -11,6 +12,7 @@ const Root = styled.div`
margin-top: 16px;
padding: 16px;
width: 100%;
max-width: 880px;
`
const WarningIcon = styled(AlertOctagon)`
margin: 0 8px 0 0;
@@ -30,8 +32,9 @@ const Body = styled.div`
line-height: 15px;
margin: 8px 0 0 0;
`
const LinkOutToNotion = styled.a`
const ReadMoreLink = styled(ExternalLink)`
color: black;
text-decoration: underline;
`
export default function OptimismDowntimeWarning() {
@@ -44,18 +47,15 @@ export default function OptimismDowntimeWarning() {
<Root>
<TitleRow>
<WarningIcon />
<Trans>{'Optimism'} Scheduled Downtimes</Trans>
<Trans>Optimism Planned Downtime</Trans>
</TitleRow>
<Body>
<Trans>
{'Optimism'} expects some scheduled downtime in the near future.&nbsp;
<LinkOutToNotion
href={`https://www.notion.so/Optimism-Regenesis-Schedule-8d14a34902ca4f5a8910762b3ec4b8da`}
target="_blank"
rel="noopener noreferrer"
>
Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is
down, fees will not be generated and you will be unable to remove liquidity.{' '}
<ReadMoreLink href="https://help.uniswap.org/en/articles/5406082-what-happens-if-the-optimistic-ethereum-network-experiences-downtime">
Read more.
</LinkOutToNotion>
</ReadMoreLink>
</Trans>
</Body>
</Root>

View File

@@ -4,77 +4,28 @@ import { AutoRow } from 'components/Row'
import { TYPE } from 'theme'
import styled from 'styled-components/macro'
import { Trans } from '@lingui/macro'
import { FeeAmount } from '@uniswap/v3-sdk'
import ReactGA from 'react-ga'
const Button = styled(ButtonOutlined).attrs(() => ({
padding: '4px',
borderRadius: '8px',
padding: '8px',
$borderRadius: '8px',
}))`
color: ${({ theme }) => theme.text1};
flex: 1;
background-color: ${({ theme }) => theme.bg2};
`
const RANGES = {
[FeeAmount.LOW]: [
{ label: '0.05', ticks: 5 },
{ label: '0.1', ticks: 10 },
{ label: '0.2', ticks: 20 },
],
[FeeAmount.MEDIUM]: [
{ label: '1', ticks: 100 },
{ label: '10', ticks: 953 },
{ label: '50', ticks: 4055 },
],
[FeeAmount.HIGH]: [
{ label: '2', ticks: 198 },
{ label: '10', ticks: 953 },
{ label: '80', ticks: 5878 },
],
}
interface PresetsButtonProps {
feeAmount: FeeAmount | undefined
setRange: (numTicks: number) => void
setFullRange: () => void
}
const PresetButton = ({
values: { label, ticks },
setRange,
}: {
values: {
label: string
ticks: number
}
setRange: (numTicks: number) => void
}) => (
<Button
onClick={() => {
setRange(ticks)
ReactGA.event({
category: 'Liquidity',
action: 'Preset clicked',
label: label,
})
}}
>
<TYPE.body fontSize={12}>
<Trans>+/- {label}%</Trans>
</TYPE.body>
</Button>
)
export default function PresetsButtons({ feeAmount, setRange, setFullRange }: PresetsButtonProps) {
feeAmount = feeAmount ?? FeeAmount.LOW
export default function PresetsButtons({ setFullRange }: { setFullRange: () => void }) {
return (
<AutoRow gap="4px" width="auto">
<PresetButton values={RANGES[feeAmount][0]} setRange={setRange} />
<PresetButton values={RANGES[feeAmount][1]} setRange={setRange} />
<PresetButton values={RANGES[feeAmount][2]} setRange={setRange} />
<Button onClick={() => setFullRange()}>
<Button
onClick={() => {
setFullRange()
ReactGA.event({
category: 'Liquidity',
action: 'Full Range Clicked',
})
}}
>
<TYPE.body fontSize={12}>
<Trans>Full Range</Trans>
</TYPE.body>

View File

@@ -44,13 +44,13 @@ export default function RangeSelector({
<AutoColumn gap="md">
<RowBetween>
<StepCounter
value={ticksAtLimit[Bound.LOWER] ? '0' : leftPrice?.toSignificant(5) ?? ''}
value={ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER] ? '0' : leftPrice?.toSignificant(5) ?? ''}
onUserInput={onLeftRangeInput}
width="48%"
decrement={isSorted ? getDecrementLower : getIncrementUpper}
increment={isSorted ? getIncrementLower : getDecrementUpper}
decrementDisabled={ticksAtLimit[Bound.LOWER]}
incrementDisabled={ticksAtLimit[Bound.LOWER]}
decrementDisabled={ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER]}
incrementDisabled={ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER]}
feeAmount={feeAmount}
label={leftPrice ? `${currencyB?.symbol}` : '-'}
title={<Trans>Min Price</Trans>}
@@ -58,13 +58,13 @@ export default function RangeSelector({
tokenB={currencyB?.symbol}
/>
<StepCounter
value={ticksAtLimit[Bound.UPPER] ? '∞' : rightPrice?.toSignificant(5) ?? ''}
value={ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER] ? '∞' : rightPrice?.toSignificant(5) ?? ''}
onUserInput={onRightRangeInput}
width="48%"
decrement={isSorted ? getDecrementUpper : getIncrementLower}
increment={isSorted ? getIncrementUpper : getDecrementLower}
incrementDisabled={ticksAtLimit[Bound.UPPER]}
decrementDisabled={ticksAtLimit[Bound.UPPER]}
incrementDisabled={ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER]}
decrementDisabled={ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER]}
feeAmount={feeAmount}
label={rightPrice ? `${currencyB?.symbol}` : '-'}
tokenA={currencyA?.symbol}

View File

@@ -10,6 +10,12 @@ import QuestionHelper from '../QuestionHelper'
import { AutoRow } from '../Row'
import CurrencyLogo from '../CurrencyLogo'
const MobileWrapper = styled(AutoColumn)`
${({ theme }) => theme.mediaWidth.upToSmall`
display: none;
`};
`
const BaseWrapper = styled.div<{ disable?: boolean }>`
border: 1px solid ${({ theme, disable }) => (disable ? 'transparent' : theme.bg3)};
border-radius: 10px;
@@ -39,7 +45,7 @@ export default function CommonBases({
const bases = typeof chainId !== 'undefined' ? COMMON_BASES[chainId] ?? [] : []
return bases.length > 0 ? (
<AutoColumn gap="md">
<MobileWrapper gap="md">
<AutoRow>
<Text fontWeight={500} fontSize={14}>
<Trans>Common bases</Trans>
@@ -63,6 +69,6 @@ export default function CommonBases({
)
})}
</AutoRow>
</AutoColumn>
</MobileWrapper>
) : null
}

View File

@@ -33,10 +33,11 @@ const WarningWrapper = styled(Card)<{ highWarning: boolean }>`
const AddressText = styled(TYPE.blue)`
font-size: 12px;
word-break: break-all;
${({ theme }) => theme.mediaWidth.upToSmall`
font-size: 10px;
`}
`}
`
interface ImportProps {

View File

@@ -173,7 +173,7 @@ export default function SettingsTab({ placeholderSlippage }: { placeholderSlippa
</AutoColumn>
</ModalContentWrapper>
</Modal>
<StyledMenuButton onClick={toggle} id="open-settings-dialog-button">
<StyledMenuButton onClick={toggle} id="open-settings-dialog-button" aria-label={t`Transaction Settings`}>
<StyledMenuIcon />
{expertMode ? (
<EmojiWrapper>

View File

@@ -1,13 +1,10 @@
import { Trans } from '@lingui/macro'
import { useMemo } from 'react'
import ReactGA from 'react-ga'
import { useLocation } from 'react-router'
import styled from 'styled-components/macro'
import { DEFAULT_LOCALE, LOCALE_LABEL, SupportedLocale } from '../../constants/locales'
import { navigatorLocale, useActiveLocale } from '../../hooks/useActiveLocale'
import useParsedQueryString from '../../hooks/useParsedQueryString'
import { StyledInternalLink, TYPE } from '../../theme'
import { stringify } from 'qs'
import { useLocationLinkProps } from 'hooks/useLocationLinkProps'
const Container = styled(TYPE.small)`
opacity: 0.6;
@@ -17,46 +14,35 @@ const Container = styled(TYPE.small)`
margin-top: 1rem !important;
`
export function SwitchLocaleLink() {
const activeLocale = useActiveLocale()
const useTargetLocale = (activeLocale: SupportedLocale) => {
const browserLocale = useMemo(() => navigatorLocale(), [])
const location = useLocation()
const qs = useParsedQueryString()
if (browserLocale && (browserLocale !== DEFAULT_LOCALE || activeLocale !== DEFAULT_LOCALE)) {
let targetLocale: SupportedLocale
if (activeLocale === browserLocale) {
targetLocale = DEFAULT_LOCALE
return DEFAULT_LOCALE
} else {
targetLocale = browserLocale
return browserLocale
}
const target = {
...location,
search: stringify({ ...qs, lng: targetLocale }),
}
return (
<Container>
<Trans>
Uniswap available in:{' '}
{
<StyledInternalLink
onClick={() => {
ReactGA.event({
category: 'Localization',
action: 'Switch Locale',
label: `${activeLocale} -> ${targetLocale}`,
})
}}
to={target}
>
{LOCALE_LABEL[targetLocale]}
</StyledInternalLink>
}
</Trans>
</Container>
)
}
return null
}
export function SwitchLocaleLink() {
const activeLocale = useActiveLocale()
const targetLocale = useTargetLocale(activeLocale)
const { to, onClick } = useLocationLinkProps(targetLocale)
if (!targetLocale || !to) return null
return (
<Container>
<Trans>
Uniswap available in:{' '}
<StyledInternalLink onClick={onClick} to={to}>
{LOCALE_LABEL[targetLocale]}
</StyledInternalLink>
</Trans>
</Container>
)
}

View File

@@ -0,0 +1,130 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`ResizableTextArea renders correctly 1`] = `
<DocumentFragment>
.c0 {
font-size: 12;
outline: none;
border: none;
-webkit-flex: 1 1 auto;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
width: 0;
resize: none;
background-color: #F7F8FA;
-webkit-transition: color 300ms step-start;
transition: color 300ms step-start;
color: #000000;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 500;
width: 100%;
line-height: 1.2;
padding: 0px;
-webkit-appearance: textfield;
}
.c0::-webkit-search-decoration {
-webkit-appearance: none;
}
.c0::-webkit-outer-spin-button,
.c0::-webkit-inner-spin-button {
-webkit-appearance: none;
}
.c0::-webkit-input-placeholder {
color: #C3C5CB;
}
.c0::-moz-placeholder {
color: #C3C5CB;
}
.c0:-ms-input-placeholder {
color: #C3C5CB;
}
.c0::placeholder {
color: #C3C5CB;
}
<textarea
autocapitalize="off"
autocomplete="off"
autocorrect="off"
class="c0 testing"
font-size="12"
placeholder="Test Placeholder"
spellcheck="false"
style="height: auto; min-height: 500px;"
>
My test input
</textarea>
</DocumentFragment>
`;
exports[`TextInput renders correctly 1`] = `
<DocumentFragment>
.c0 {
font-size: 12;
outline: none;
border: none;
-webkit-flex: 1 1 auto;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
width: 0;
background-color: #F7F8FA;
-webkit-transition: color 300ms step-start;
transition: color 300ms step-start;
color: #000000;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 500;
width: 100%;
padding: 0px;
-webkit-appearance: textfield;
}
.c0::-webkit-search-decoration {
-webkit-appearance: none;
}
.c0::-webkit-outer-spin-button,
.c0::-webkit-inner-spin-button {
-webkit-appearance: none;
}
.c0::-webkit-input-placeholder {
color: #C3C5CB;
}
.c0::-moz-placeholder {
color: #C3C5CB;
}
.c0:-ms-input-placeholder {
color: #C3C5CB;
}
.c0::placeholder {
color: #C3C5CB;
}
<div
class="testing"
>
<input
autocapitalize="off"
autocomplete="off"
autocorrect="off"
class="c0"
font-size="12"
placeholder="Test Placeholder"
spellcheck="false"
type="text"
value="My test input"
/>
</div>
</DocumentFragment>
`;

View File

@@ -0,0 +1,68 @@
import { TextInput, ResizingTextArea } from './'
import { render, screen, fireEvent } from 'test-utils'
describe('TextInput', () => {
it('renders correctly', () => {
const { asFragment } = render(
<TextInput
className="testing"
value="My test input"
onUserInput={() => null}
placeholder="Test Placeholder"
fontSize="12"
/>
)
expect(asFragment()).toMatchSnapshot()
})
it('calls the handler on user input', () => {
const onUserInputSpy = jest.fn()
render(
<TextInput
className="testing"
value=""
onUserInput={onUserInputSpy}
placeholder="Test Placeholder"
fontSize="12"
/>
)
fireEvent.change(screen.getByPlaceholderText('Test Placeholder'), { target: { value: 'New value' } })
expect(onUserInputSpy).toHaveBeenCalledWith('New value')
expect(onUserInputSpy).toHaveBeenCalledTimes(1)
})
})
describe('ResizableTextArea', () => {
it('renders correctly', () => {
const { asFragment } = render(
<ResizingTextArea
className="testing"
value="My test input"
onUserInput={() => null}
placeholder="Test Placeholder"
fontSize="12"
/>
)
expect(asFragment()).toMatchSnapshot()
})
it('calls the handler on user input', () => {
const onUserInputSpy = jest.fn()
render(
<ResizingTextArea
className="testing"
value=""
onUserInput={onUserInputSpy}
placeholder="Test Placeholder"
fontSize="12"
/>
)
fireEvent.change(screen.getByPlaceholderText('Test Placeholder'), { target: { value: 'New value' } })
expect(onUserInputSpy).toHaveBeenCalledWith('New value')
expect(onUserInputSpy).toHaveBeenCalledTimes(1)
})
})

View File

@@ -0,0 +1,70 @@
import useTheme from 'hooks/useTheme'
import styled, { keyframes } from 'styled-components/macro'
const Wrapper = styled.div`
height: 90px;
width: 90px;
`
const dash = keyframes`
0% {
stroke-dashoffset: 1000;
}
100% {
stroke-dashoffset: 0;
}
`
const dashCheck = keyframes`
0% {
stroke-dashoffset: -100;
}
100% {
stroke-dashoffset: 900;
}
`
const Circle = styled.circle`
stroke-dasharray: 1000;
stroke-dashoffset: 0;
-webkit-animation: ${dash} 0.9s ease-in-out;
animation: ${dash} 0.9s ease-in-out;
`
const PolyLine = styled.polyline`
stroke-dasharray: 1000;
stroke-dashoffset: 0;
stroke-dashoffset: -100;
-webkit-animation: ${dashCheck} 0.9s 0.35s ease-in-out forwards;
animation: ${dashCheck} 0.9s 0.35s ease-in-out forwards;
`
export default function AnimatedConfirmation() {
const theme = useTheme()
return (
<Wrapper className="w4rAnimated_checkmark">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.2 130.2">
<Circle
className="path circle"
fill="none"
stroke={theme.green1}
strokeWidth="6"
strokeMiterlimit="10"
cx="65.1"
cy="65.1"
r="62.1"
/>
<PolyLine
className="path check"
fill="none"
stroke={theme.green1}
strokeWidth="6"
strokeLinecap="round"
strokeMiterlimit="10"
points="100.2,40.2 51.5,88.8 29.8,67.5 "
/>
</svg>
</Wrapper>
)
}

View File

@@ -1,5 +1,5 @@
import { Currency } from '@uniswap/sdk-core'
import { ReactNode, useContext, useEffect } from 'react'
import { ReactNode, useContext } from 'react'
import styled, { ThemeContext } from 'styled-components/macro'
import { getExplorerLink, ExplorerDataType } from '../../utils/getExplorerLink'
import Modal from '../Modal'
@@ -7,7 +7,7 @@ import { ExternalLink } from '../../theme'
import { Text } from 'rebass'
import { CloseIcon, CustomLightSpinner } from '../../theme/components'
import { RowBetween, RowFixed } from '../Row'
import { AlertTriangle, ArrowUpCircle, CheckCircle } from 'react-feather'
import { AlertCircle, AlertTriangle, ArrowUpCircle, CheckCircle } from 'react-feather'
import { ButtonPrimary, ButtonLight } from '../Button'
import { AutoColumn, ColumnCenter } from '../Column'
import Circle from '../../assets/images/blue-loader.svg'
@@ -15,7 +15,10 @@ import MetaMaskLogo from '../../assets/images/metamask.png'
import { useActiveWeb3React } from '../../hooks/web3'
import useAddTokenToMetamask from 'hooks/useAddTokenToMetamask'
import { Trans } from '@lingui/macro'
import { L2_CHAIN_IDS } from 'constants/chains'
import { CHAIN_INFO, L2_CHAIN_IDS, SupportedL2ChainId } from 'constants/chains'
import { useIsTransactionConfirmed, useTransaction } from 'state/transactions/hooks'
import Badge from 'components/Badge'
import AnimatedConfirmation from './AnimatedConfirmation'
const Wrapper = styled.div`
width: 100%;
@@ -31,7 +34,7 @@ const BottomSection = styled(Section)`
`
const ConfirmedIcon = styled(ColumnCenter)<{ inline?: boolean }>`
padding: ${({ inline }) => (inline ? '20px 0' : '60px 0;')};
padding: ${({ inline }) => (inline ? '20px 0' : '32px 0;')};
`
const StyledLogo = styled.img`
@@ -65,12 +68,10 @@ function ConfirmationPendingContent({
<Text fontWeight={500} fontSize={20} textAlign="center">
<Trans>Waiting For Confirmation</Trans>
</Text>
<AutoColumn gap="12px" justify={'center'}>
<Text fontWeight={600} fontSize={14} color="" textAlign="center">
{pendingText}
</Text>
</AutoColumn>
<Text fontSize={12} color="#565A69" textAlign="center" marginBottom={12}>
<Text fontWeight={400} fontSize={16} textAlign="center">
{pendingText}
</Text>
<Text fontWeight={500} fontSize={14} color="#565A69" textAlign="center" marginBottom="12px">
<Trans>Confirm this transaction in your wallet</Trans>
</Text>
</AutoColumn>
@@ -78,7 +79,6 @@ function ConfirmationPendingContent({
</Wrapper>
)
}
function TransactionSubmittedContent({
onDismiss,
chainId,
@@ -207,6 +207,106 @@ export function TransactionErrorContent({ message, onDismiss }: { message: React
)
}
function L2Content({
onDismiss,
chainId,
hash,
pendingText,
inline,
}: {
onDismiss: () => void
hash: string | undefined
chainId: number
currencyToAdd?: Currency | undefined
pendingText: ReactNode
inline?: boolean // not in modal
}) {
const theme = useContext(ThemeContext)
const transaction = useTransaction(hash)
const confirmed = useIsTransactionConfirmed(hash)
const transactionSuccess = transaction?.receipt?.status === 1
// convert unix time difference to seconds
const secondsToConfirm = transaction?.confirmedTime
? (transaction.confirmedTime - transaction.addedTime) / 1000
: undefined
const info = CHAIN_INFO[chainId as SupportedL2ChainId]
return (
<Wrapper>
<Section inline={inline}>
{!inline && (
<RowBetween mb="16px">
<Badge>
<RowFixed>
<StyledLogo src={info.logoUrl} style={{ margin: '0 8px 0 0' }} />
{info.label}
</RowFixed>
</Badge>
<CloseIcon onClick={onDismiss} />
</RowBetween>
)}
<ConfirmedIcon inline={inline}>
{confirmed ? (
transactionSuccess ? (
// <CheckCircle strokeWidth={1} size={inline ? '40px' : '90px'} color={theme.green1} />
<AnimatedConfirmation />
) : (
<AlertCircle strokeWidth={1} size={inline ? '40px' : '90px'} color={theme.red1} />
)
) : (
<CustomLightSpinner src={Circle} alt="loader" size={inline ? '40px' : '90px'} />
)}
</ConfirmedIcon>
<AutoColumn gap="12px" justify={'center'}>
<Text fontWeight={500} fontSize={20} textAlign="center">
{!hash ? (
<Trans>Confirm transaction in wallet</Trans>
) : !confirmed ? (
<Trans>Transaction Submitted</Trans>
) : transactionSuccess ? (
<Trans>Success</Trans>
) : (
<Trans>Error</Trans>
)}
</Text>
<Text fontWeight={400} fontSize={16} textAlign="center">
{transaction?.summary ?? pendingText ?? ''}
</Text>
{chainId && hash ? (
<ExternalLink href={getExplorerLink(chainId, hash, ExplorerDataType.TRANSACTION)}>
<Text fontWeight={500} fontSize={14} color={theme.primary1}>
<Trans>View on Explorer</Trans>
</Text>
</ExternalLink>
) : (
<div style={{ height: '17px' }}></div>
)}
<Text color={theme.text3} style={{ margin: '20px 0 0 0' }} fontSize={'14px'}>
{!secondsToConfirm ? (
<div style={{ height: '24px' }}></div>
) : (
<div>
<Trans>Transaction completed in </Trans>
<span style={{ fontWeight: 500, marginLeft: '4px', color: theme.text1 }}>
{secondsToConfirm} seconds 🎉
</span>
</div>
)}
</Text>
<ButtonPrimary onClick={onDismiss} style={{ margin: '4px 0 0 0' }}>
<Text fontWeight={500} fontSize={20}>
{inline ? <Trans>Return</Trans> : <Trans>Close</Trans>}
</Text>
</ButtonPrimary>
</AutoColumn>
</Section>
</Wrapper>
)
}
interface ConfirmationModalProps {
isOpen: boolean
onDismiss: () => void
@@ -228,21 +328,16 @@ export default function TransactionConfirmationModal({
}: ConfirmationModalProps) {
const { chainId } = useActiveWeb3React()
// if on L2 and txn is submitted, close automatically (if open)
useEffect(() => {
if (isOpen && chainId && L2_CHAIN_IDS.includes(chainId) && hash) {
onDismiss()
}
}, [chainId, hash, isOpen, onDismiss])
const isL2 = Boolean(chainId && L2_CHAIN_IDS.includes(chainId))
if (!chainId) return null
// confirmation screen
// if on L2 and submitted dont render content, as should auto dismiss
// need this to skip submitted view during state update ^^
return (
<Modal isOpen={isOpen} onDismiss={onDismiss} maxHeight={90}>
{L2_CHAIN_IDS.includes(chainId) && hash ? null : attemptingTxn ? (
{isL2 && (hash || attemptingTxn) ? (
<L2Content chainId={chainId} hash={hash} onDismiss={onDismiss} pendingText={pendingText} />
) : attemptingTxn ? (
<ConfirmationPendingContent onDismiss={onDismiss} pendingText={pendingText} />
) : hash ? (
<TransactionSubmittedContent

View File

@@ -10,6 +10,8 @@ import { RowBetween, RowFixed } from '../Row'
import { DEFAULT_DEADLINE_FROM_NOW } from 'constants/misc'
import { darken } from 'polished'
import { useSetUserSlippageTolerance, useUserSlippageTolerance, useUserTransactionTTL } from 'state/user/hooks'
import { L2_CHAIN_IDS } from 'constants/chains'
import { useActiveWeb3React } from 'hooks/web3'
enum SlippageError {
InvalidInput = 'InvalidInput',
@@ -92,6 +94,7 @@ interface TransactionSettingsProps {
}
export default function TransactionSettings({ placeholderSlippage }: TransactionSettingsProps) {
const { chainId } = useActiveWeb3React()
const theme = useContext(ThemeContext)
const userSlippageTolerance = useUserSlippageTolerance()
@@ -151,6 +154,8 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction
}
}
const showCustomDeadlineRow = Boolean(chainId && !L2_CHAIN_IDS.includes(chainId))
return (
<AutoColumn gap="md">
<AutoColumn gap="sm">
@@ -221,37 +226,41 @@ export default function TransactionSettings({ placeholderSlippage }: Transaction
) : null}
</AutoColumn>
<AutoColumn gap="sm">
<RowFixed>
<TYPE.black fontSize={14} fontWeight={400} color={theme.text2}>
<Trans>Transaction deadline</Trans>
</TYPE.black>
<QuestionHelper text={t`Your transaction will revert if it is pending for more than this period of time.`} />
</RowFixed>
<RowFixed>
<OptionCustom style={{ width: '80px' }} warning={!!deadlineError} tabIndex={-1}>
<Input
placeholder={(DEFAULT_DEADLINE_FROM_NOW / 60).toString()}
value={
deadlineInput.length > 0
? deadlineInput
: deadline === DEFAULT_DEADLINE_FROM_NOW
? ''
: (deadline / 60).toString()
}
onChange={(e) => parseCustomDeadline(e.target.value)}
onBlur={() => {
setDeadlineInput('')
setDeadlineError(false)
}}
color={deadlineError ? 'red' : ''}
{showCustomDeadlineRow && (
<AutoColumn gap="sm">
<RowFixed>
<TYPE.black fontSize={14} fontWeight={400} color={theme.text2}>
<Trans>Transaction deadline</Trans>
</TYPE.black>
<QuestionHelper
text={t`Your transaction will revert if it is pending for more than this period of time.`}
/>
</OptionCustom>
<TYPE.body style={{ paddingLeft: '8px' }} fontSize={14}>
<Trans>minutes</Trans>
</TYPE.body>
</RowFixed>
</AutoColumn>
</RowFixed>
<RowFixed>
<OptionCustom style={{ width: '80px' }} warning={!!deadlineError} tabIndex={-1}>
<Input
placeholder={(DEFAULT_DEADLINE_FROM_NOW / 60).toString()}
value={
deadlineInput.length > 0
? deadlineInput
: deadline === DEFAULT_DEADLINE_FROM_NOW
? ''
: (deadline / 60).toString()
}
onChange={(e) => parseCustomDeadline(e.target.value)}
onBlur={() => {
setDeadlineInput('')
setDeadlineError(false)
}}
color={deadlineError ? 'red' : ''}
/>
</OptionCustom>
<TYPE.body style={{ paddingLeft: '8px' }} fontSize={14}>
<Trans>minutes</Trans>
</TYPE.body>
</RowFixed>
</AutoColumn>
)}
</AutoColumn>
)
}

View File

@@ -43,7 +43,7 @@ export default function UnsupportedCurrencyFooter({
currencies,
}: {
show: boolean
currencies: (Currency | undefined)[]
currencies: (Currency | undefined | null)[]
}) {
const { chainId } = useActiveWeb3React()
const [showDetails, setShowDetails] = useState(false)

View File

@@ -10,7 +10,7 @@ import { TYPE, CustomLightSpinner } from '../../theme'
import { X, ArrowUpCircle } from 'react-feather'
import { ButtonPrimary } from '../Button'
import Circle from '../../assets/images/blue-loader.svg'
import { useVoteCallback, useUserVotes } from '../../state/governance/hooks'
import { useVoteCallback, useUserVotes, VoteOption } from '../../state/governance/hooks'
import { ExternalLink } from '../../theme/components'
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
import { Trans } from '@lingui/macro'
@@ -38,17 +38,13 @@ const ConfirmedIcon = styled(ColumnCenter)`
interface VoteModalProps {
isOpen: boolean
onDismiss: () => void
support: boolean // if user is for or against proposal
voteOption: VoteOption | undefined
proposalId: string | undefined // id for the proposal to vote on
}
export default function VoteModal({ isOpen, onDismiss, proposalId, support }: VoteModalProps) {
export default function VoteModal({ isOpen, onDismiss, proposalId, voteOption }: VoteModalProps) {
const { chainId } = useActiveWeb3React()
const {
voteCallback,
}: {
voteCallback: (proposalId: string | undefined, support: boolean) => Promise<string> | undefined
} = useVoteCallback()
const { voteCallback } = useVoteCallback()
const { votes: availableVotes } = useUserVotes()
// monitor call to help UI loading state
@@ -69,10 +65,10 @@ export default function VoteModal({ isOpen, onDismiss, proposalId, support }: Vo
setAttempting(true)
// if callback not returned properly ignore
if (!voteCallback) return
if (!voteCallback || voteOption === undefined) return
// try delegation and store hash
const hash = await voteCallback(proposalId, support)?.catch((error) => {
const hash = await voteCallback(proposalId, voteOption)?.catch((error) => {
setAttempting(false)
console.log(error)
})
@@ -89,10 +85,12 @@ export default function VoteModal({ isOpen, onDismiss, proposalId, support }: Vo
<AutoColumn gap="lg" justify="center">
<RowBetween>
<TYPE.mediumHeader fontWeight={500}>
{support ? (
{voteOption === VoteOption.Against ? (
<Trans>Vote against proposal {proposalId}</Trans>
) : voteOption === VoteOption.For ? (
<Trans>Vote for proposal {proposalId}</Trans>
) : (
<Trans>Vote against proposal {proposalId}</Trans>
<Trans>Vote to abstain on proposal {proposalId}</Trans>
)}
</TYPE.mediumHeader>
<StyledClosed stroke="black" onClick={wrappedOndismiss} />
@@ -102,10 +100,12 @@ export default function VoteModal({ isOpen, onDismiss, proposalId, support }: Vo
</TYPE.largeHeader>
<ButtonPrimary onClick={onVote}>
<TYPE.mediumHeader color="white">
{support ? (
{voteOption === VoteOption.Against ? (
<Trans>Vote against proposal {proposalId}</Trans>
) : voteOption === VoteOption.For ? (
<Trans>Vote for proposal {proposalId}</Trans>
) : (
<Trans>Vote against proposal {proposalId}</Trans>
<Trans>Vote to abstain on proposal {proposalId}</Trans>
)}
</TYPE.mediumHeader>
</ButtonPrimary>

View File

@@ -1,4 +1,5 @@
import { Web3Provider } from '@ethersproject/providers'
import { SafeAppConnector } from '@gnosis.pm/safe-apps-web3-react'
import { InjectedConnector } from '@web3-react/injected-connector'
import { PortisConnector } from '@web3-react/portis-connector'
import { WalletConnectConnector } from '@web3-react/walletconnect-connector'
@@ -12,7 +13,6 @@ import { NetworkConnector } from './NetworkConnector'
const INFURA_KEY = process.env.REACT_APP_INFURA_KEY
const FORMATIC_KEY = process.env.REACT_APP_FORTMATIC_KEY
const PORTIS_ID = process.env.REACT_APP_PORTIS_ID
const WALLETCONNECT_BRIDGE_URL = process.env.REACT_APP_WALLETCONNECT_BRIDGE_URL
if (typeof INFURA_KEY === 'undefined') {
throw new Error(`REACT_APP_INFURA_KEY must be a defined environment variable`)
@@ -44,12 +44,12 @@ export const injected = new InjectedConnector({
supportedChainIds: ALL_SUPPORTED_CHAIN_IDS,
})
export const gnosisSafe = new SafeAppConnector()
export const walletconnect = new WalletConnectConnector({
supportedChainIds: ALL_SUPPORTED_CHAIN_IDS,
rpc: NETWORK_URLS,
bridge: WALLETCONNECT_BRIDGE_URL,
qrcode: true,
pollingInterval: 15000,
})
// mainnet only

View File

@@ -16,17 +16,23 @@ export const V2_FACTORY_ADDRESSES: AddressMap = constructSameAddressMap(V2_FACTO
export const V2_ROUTER_ADDRESS: AddressMap = constructSameAddressMap('0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D')
/**
* The older V0 governance account
* The oldest V0 governance address
*/
export const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(
'0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'
)
/**
* The latest governor alpha that is currently admin of timelock
* The older V1 governance address
*/
export const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {
[SupportedChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',
}
/**
* The latest governor bravo that is currently admin of timelock
*/
export const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {
[SupportedChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',
}
export const TIMELOCK_ADDRESS: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')

View File

@@ -52,7 +52,7 @@ interface L1ChainInfo {
readonly infoLink: string
readonly label: string
}
interface L2ChainInfo extends L1ChainInfo {
export interface L2ChainInfo extends L1ChainInfo {
readonly bridge: string
readonly logoUrl: string
}
@@ -66,7 +66,7 @@ export const CHAIN_INFO: ChainInfo = {
[SupportedChainId.ARBITRUM_ONE]: {
bridge: 'https://bridge.arbitrum.io/',
docs: 'https://offchainlabs.com/',
explorer: 'https://explorer.arbitrum.io/',
explorer: 'https://arbiscan.io/',
infoLink: 'https://info.uniswap.org/#/arbitrum',
label: 'Arbitrum',
logoUrl: arbitrumLogoUrl,
@@ -74,7 +74,7 @@ export const CHAIN_INFO: ChainInfo = {
[SupportedChainId.ARBITRUM_RINKEBY]: {
bridge: 'https://bridge.arbitrum.io/',
docs: 'https://offchainlabs.com/',
explorer: 'https://explorer.arbitrum.io/',
explorer: 'https://rinkeby-explorer.arbitrum.io/',
infoLink: 'https://info.uniswap.org/#/arbitrum/',
label: 'Arbitrum Rinkeby',
logoUrl: arbitrumLogoUrl,

View File

@@ -5,31 +5,35 @@ const CMC_STABLECOIN = 'stablecoin.cmc.eth'
const COINGECKO_LIST = 'https://tokens.coingecko.com/uniswap/all.json'
const COMPOUND_LIST = 'https://raw.githubusercontent.com/compound-finance/token-list/master/compound.tokenlist.json'
const GEMINI_LIST = 'https://www.gemini.com/uniswap/manifest.json'
export const ARBITRUM_LIST = 'https://bridge.arbitrum.io/token-list-42161.json'
const KLEROS_LIST = 't2crtokens.eth'
export const OPTIMISM_LIST = 'https://static.optimism.io/optimism.tokenlist.json'
const ROLL_LIST = 'https://app.tryroll.com/tokens.json'
const SET_LIST = 'https://raw.githubusercontent.com/SetProtocol/uniswap-tokenlist/main/set.tokenlist.json'
const UMA_LIST = 'https://umaproject.org/uma.tokenlist.json'
const WRAPPED_LIST = 'wrapped.tokensoft.eth'
// used to mark unsupported tokens, these are hosted lists of unsupported tokens
export const UNSUPPORTED_LIST_URLS: string[] = [BA_LIST]
// this is the default list of lists that are exposed to users
// lower index == higher priority for token import
export const DEFAULT_LIST_OF_LISTS: string[] = [
const DEFAULT_LIST_OF_LISTS_TO_DISPLAY: string[] = [
COMPOUND_LIST,
AAVE_LIST,
CMC_ALL_LIST,
CMC_STABLECOIN,
UMA_LIST,
WRAPPED_LIST,
SET_LIST,
ROLL_LIST,
COINGECKO_LIST,
KLEROS_LIST,
ARBITRUM_LIST,
OPTIMISM_LIST,
GEMINI_LIST,
...UNSUPPORTED_LIST_URLS, // need to load unsupported tokens as well
]
export const DEFAULT_LIST_OF_LISTS: string[] = [
...DEFAULT_LIST_OF_LISTS_TO_DISPLAY,
...UNSUPPORTED_LIST_URLS, // need to load dynamic unsupported tokens as well
]
// default lists to be 'active' aka searched across

View File

@@ -66,6 +66,6 @@ export const LOCALE_LABEL: { [locale in SupportedLocale]: string } = {
'tr-TR': 'Türkçe',
'uk-UA': 'Український',
'vi-VN': 'Tiếng Việt',
'zh-CN': '中文 ( 中国 )',
'zh-TW': '中文 ( 台灣 )',
'zh-CN': '简体中文',
'zh-TW': '繁体中文',
}

View File

@@ -5,10 +5,16 @@ export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'
export const NetworkContextName = 'NETWORK'
export const IS_IN_IFRAME = window.parent !== window
// 30 minutes, denominated in seconds
export const DEFAULT_DEADLINE_FROM_NOW = 60 * 30
export const L2_DEADLINE_FROM_NOW = 60 * 5
// transaction popup dismisal amounts
export const DEFAULT_TXN_DISMISS_MS = 25000
export const L2_TXN_DISMISS_MS = 5000
// used for rewards deadlines
export const BIG_INT_SECONDS_IN_WEEK = JSBI.BigInt(60 * 60 * 24 * 7)

View File

@@ -1 +1,2 @@
export const UNISWAP_GRANTS_START_BLOCK = 11473815
export const BRAVO_START_BLOCK = 13059344

View File

@@ -8,14 +8,10 @@ import {
FEI,
FRAX,
FXS,
MIR,
renBTC,
TRIBE,
UMA,
UNI,
USDC,
USDT,
UST,
WBTC,
ETH2X_FLI,
WETH9_EXTENDED,
@@ -32,27 +28,6 @@ type ChainCurrencyList = {
readonly [chainId: number]: Currency[]
}
// List of all mirror's assets addresses.
// Last pulled from : https://whitelist.mirror.finance/eth/tokenlists.json
// TODO: Generate this programmatically ?
const mAssetsAdditionalBases: { [tokenAddress: string]: Token[] } = {
[UST.address]: [MIR],
[MIR.address]: [UST],
'0xd36932143F6eBDEDD872D5Fb0651f4B72Fd15a84': [MIR, UST], // mAAPL
'0x59A921Db27Dd6d4d974745B7FfC5c33932653442': [MIR, UST], // mGOOGL
'0x21cA39943E91d704678F5D00b6616650F066fD63': [MIR, UST], // mTSLA
'0xC8d674114bac90148d11D3C1d33C61835a0F9DCD': [MIR, UST], // mNFLX
'0x13B02c8dE71680e71F0820c996E4bE43c2F57d15': [MIR, UST], // mQQQ
'0xEdb0414627E6f1e3F082DE65cD4F9C693D78CCA9': [MIR, UST], // mTWTR
'0x41BbEDd7286dAab5910a1f15d12CBda839852BD7': [MIR, UST], // mMSFT
'0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7': [MIR, UST], // mAMZN
'0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72': [MIR, UST], // mBABA
'0x1d350417d9787E000cc1b95d70E9536DcD91F373': [MIR, UST], // mIAU
'0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676': [MIR, UST], // mSLV
'0x31c63146a635EB7465e5853020b39713AC356991': [MIR, UST], // mUSO
'0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86': [MIR, UST], // mVIXY
}
const WETH_ONLY: ChainTokenList = Object.fromEntries(
Object.entries(WETH9_EXTENDED).map(([key, value]) => [key, [value]])
)
@@ -65,13 +40,7 @@ export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
}
export const ADDITIONAL_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = {
[SupportedChainId.MAINNET]: {
...mAssetsAdditionalBases,
'0xF16E4d813f4DcfDe4c5b44f305c908742De84eF0': [ETH2X_FLI],
'0xA948E86885e12Fb09AfEF8C52142EBDbDf73cD18': [UNI[SupportedChainId.MAINNET]],
'0x561a4717537ff4AF5c687328c0f7E90a319705C0': [UNI[SupportedChainId.MAINNET]],
'0xE0360A9e2cdd7d03B9408c7D3001E017BAc2EcD5': [UNI[SupportedChainId.MAINNET]],
'0xa6e3454fec677772dd771788a079355e43910638': [UMA],
'0xB46F57e7Ce3a284d74b70447Ef9352B5E5Df8963': [UMA],
[FEI.address]: [TRIBE],
[TRIBE.address]: [FEI],
[FRAX.address]: [FXS],

View File

@@ -0,0 +1,22 @@
{
"name": "Broken Token List",
"timestamp": "2021-01-05T20:47:02.923Z",
"version": {
"major": 1,
"minor": 0,
"patch": 0
},
"tags": {},
"logoURI": "ipfs://QmNa8mQkrNKp1WEEeGjFezDmDeodkWRevGFN8JCV7b4Xir",
"keywords": ["uniswap", "broken"],
"tokens": [
{
"name": "UNI HODL",
"address": "0x4bf5dc91E2555449293D7824028Eb8Fe5879B689",
"symbol": "UniH",
"decimals": 18,
"chainId": 1,
"logoURI": ""
}
]
}

View File

@@ -1,30 +0,0 @@
{
"name": "Unsupported Tokens",
"timestamp": "2021-01-05T20:47:02.923Z",
"version": {
"major": 1,
"minor": 0,
"patch": 0
},
"tags": {},
"logoURI": "ipfs://QmNa8mQkrNKp1WEEeGjFezDmDeodkWRevGFN8JCV7b4Xir",
"keywords": ["uniswap", "unsupported"],
"tokens": [
{
"name": "Gold Tether",
"address": "0x4922a015c4407F87432B179bb209e125432E4a2A",
"symbol": "XAUt",
"decimals": 6,
"chainId": 1,
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png"
},
{
"name": "Grump Cat",
"address": "0x93B2FfF814FCaEFFB01406e80B4Ecd89Ca6A021b",
"symbol": "GRUMPY",
"decimals": 9,
"chainId": 1,
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -100,13 +100,6 @@ export const renBTC = new Token(
'renBTC',
'renBTC'
)
export const UMA = new Token(
SupportedChainId.MAINNET,
'0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828',
18,
'UMA',
'UMA Voting Token v1'
)
export const ETH2X_FLI = new Token(
SupportedChainId.MAINNET,
'0xAa6E8127831c9DE45ae56bB1b0d4D4Da6e5665BD',
@@ -114,21 +107,6 @@ export const ETH2X_FLI = new Token(
'ETH2x-FLI',
'ETH 2x Flexible Leverage Index'
)
// Mirror Protocol compat.
export const UST = new Token(
SupportedChainId.MAINNET,
'0xa47c8bf37f92abed4a126bda807a7b7498661acd',
18,
'UST',
'Wrapped UST'
)
export const MIR = new Token(
SupportedChainId.MAINNET,
'0x09a3ecafa817268f77be1283176b946c4ff2e608',
18,
'MIR',
'Wrapped MIR'
)
export const UNI: { [chainId: number]: Token } = {
[SupportedChainId.MAINNET]: new Token(SupportedChainId.MAINNET, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'),
[SupportedChainId.RINKEBY]: new Token(SupportedChainId.RINKEBY, UNI_ADDRESS[4], 18, 'UNI', 'Uniswap'),

View File

@@ -76,7 +76,7 @@ export function useSearchInactiveTokenLists(search: string | undefined, minResul
if (!list) continue
for (const tokenInfo of list.tokens) {
if (tokenInfo.chainId === chainId && tokenFilter(tokenInfo)) {
const wrapped = new WrappedTokenInfo(tokenInfo, list)
const wrapped: WrappedTokenInfo = new WrappedTokenInfo(tokenInfo, list)
if (!(wrapped.address in activeTokens) && !addressSet[wrapped.address]) {
addressSet[wrapped.address] = true
result.push(wrapped)
@@ -123,9 +123,9 @@ function parseStringOrBytes32(str: string | undefined, bytes32: string | undefin
}
// undefined if invalid or does not exist
// null if loading
// null if loading or null was passed
// otherwise returns the token
export function useToken(tokenAddress?: string): Token | undefined | null {
export function useToken(tokenAddress?: string | null): Token | undefined | null {
const { chainId } = useActiveWeb3React()
const tokens = useAllTokens()
@@ -148,6 +148,7 @@ export function useToken(tokenAddress?: string): Token | undefined | null {
return useMemo(() => {
if (token) return token
if (tokenAddress === null) return null
if (!chainId || !address) return undefined
if (decimals.loading || symbol.loading || tokenName.loading) return null
if (decimals.result) {
@@ -169,13 +170,14 @@ export function useToken(tokenAddress?: string): Token | undefined | null {
symbol.result,
symbolBytes32.result,
token,
tokenAddress,
tokenName.loading,
tokenName.result,
tokenNameBytes32.result,
])
}
export function useCurrency(currencyId: string | undefined): Currency | null | undefined {
export function useCurrency(currencyId: string | null | undefined): Currency | null | undefined {
const { chainId } = useActiveWeb3React()
const isETH = currencyId?.toUpperCase() === 'ETH'
const token = useToken(isETH ? undefined : currencyId)

View File

@@ -1,5 +1,4 @@
import { Currency, Token } from '@uniswap/sdk-core'
import flatMap from 'lodash.flatmap'
import { useMemo } from 'react'
import { ADDITIONAL_BASES, BASES_TO_CHECK_TRADES_AGAINST, CUSTOM_BASES } from '../constants/routing'
import { useActiveWeb3React } from './web3'
@@ -20,7 +19,7 @@ export function useAllCurrencyCombinations(currencyA?: Currency, currencyB?: Cur
}, [chainId, tokenA, tokenB])
const basePairs: [Token, Token][] = useMemo(
() => flatMap(bases, (base): [Token, Token][] => bases.map((otherBase) => [base, otherBase])),
() => bases.flatMap((base): [Token, Token][] => bases.map((otherBase) => [base, otherBase])),
[bases]
)

View File

@@ -5,6 +5,18 @@ import { useUserSingleHopOnly } from '../state/user/hooks'
import { useActiveWeb3React } from './web3'
import { useV3SwapPools } from './useV3SwapPools'
/**
* Returns true if poolA is equivalent to poolB
* @param poolA one of the two pools
* @param poolB the other pool
*/
function poolEquals(poolA: Pool, poolB: Pool): boolean {
return (
poolA === poolB ||
(poolA.token0.equals(poolB.token0) && poolA.token1.equals(poolB.token1) && poolA.fee === poolB.fee)
)
}
function computeAllRoutes(
currencyIn: Currency,
currencyOut: Currency,
@@ -20,7 +32,7 @@ function computeAllRoutes(
if (!tokenIn || !tokenOut) throw new Error('Missing tokenIn/tokenOut')
for (const pool of pools) {
if (currentPath.indexOf(pool) !== -1 || !pool.involvesToken(tokenIn)) continue
if (!pool.involvesToken(tokenIn) || currentPath.find((pathPool) => poolEquals(pool, pathPool))) continue
const outputToken = pool.token0.equals(tokenIn) ? pool.token1 : pool.token0
if (outputToken.equals(tokenOut)) {

View File

@@ -90,7 +90,7 @@ export function useApproveCallback(
.then((response: TransactionResponse) => {
addTransaction(response, {
summary: 'Approve ' + amountToApprove.currency.symbol,
approval: { tokenAddress: token.address, spender: spender },
approval: { tokenAddress: token.address, spender },
})
})
.catch((error: Error) => {

View File

@@ -1,9 +1,9 @@
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
import { encodeRouteToPath, Route, Trade } from '@uniswap/v3-sdk'
import { Route, Trade, SwapQuoter } from '@uniswap/v3-sdk'
import { SupportedChainId } from 'constants/chains'
import { BigNumber } from 'ethers'
import { useMemo } from 'react'
import { useSingleContractMultipleData } from '../state/multicall/hooks'
import { useSingleContractWithCallData } from '../state/multicall/hooks'
import { useAllV3Routes } from './useAllV3Routes'
import { useV3Quoter } from './useContract'
import { useActiveWeb3React } from './web3'
@@ -21,6 +21,8 @@ const QUOTE_GAS_OVERRIDES: { [chainId: number]: number } = {
[SupportedChainId.OPTIMISTIC_KOVAN]: 6_000_000,
}
const DEFAULT_GAS_QUOTE = 2_000_000
/**
* Returns the best v3 trade for a desired exact input swap
* @param amountIn the amount to swap in
@@ -30,23 +32,27 @@ export function useBestV3TradeExactIn(
amountIn?: CurrencyAmount<Currency>,
currencyOut?: Currency
): { state: V3TradeState; trade: Trade<Currency, Currency, TradeType.EXACT_INPUT> | null } {
const { chainId } = useActiveWeb3React()
const quoter = useV3Quoter()
const { routes, loading: routesLoading } = useAllV3Routes(amountIn?.currency, currencyOut)
const quoteExactInInputs = useMemo(() => {
return routes.map((route) => [
encodeRouteToPath(route, false),
amountIn ? `0x${amountIn.quotient.toString(16)}` : undefined,
])
}, [amountIn, routes])
const quotesResults = useSingleContractMultipleData(quoter, 'quoteExactInput', quoteExactInInputs, {
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? 1_000_000 : undefined,
})
const quoter = useV3Quoter()
const { chainId } = useActiveWeb3React()
const quotesResults = useSingleContractWithCallData(
quoter,
amountIn
? routes.map((route) => SwapQuoter.quoteCallParameters(route, amountIn, TradeType.EXACT_INPUT).calldata)
: [],
{
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? DEFAULT_GAS_QUOTE : undefined,
}
)
return useMemo(() => {
if (!amountIn || !currencyOut) {
if (
!amountIn ||
!currencyOut ||
// skip when tokens are the same
amountIn.currency.equals(currencyOut)
) {
return {
state: V3TradeState.INVALID,
trade: null,
@@ -114,23 +120,28 @@ export function useBestV3TradeExactOut(
currencyIn?: Currency,
amountOut?: CurrencyAmount<Currency>
): { state: V3TradeState; trade: Trade<Currency, Currency, TradeType.EXACT_OUTPUT> | null } {
const { chainId } = useActiveWeb3React()
const quoter = useV3Quoter()
const { routes, loading: routesLoading } = useAllV3Routes(currencyIn, amountOut?.currency)
const quoteExactOutInputs = useMemo(() => {
return routes.map((route) => [
encodeRouteToPath(route, true),
amountOut ? `0x${amountOut.quotient.toString(16)}` : undefined,
])
}, [amountOut, routes])
const quotesResults = useSingleContractMultipleData(quoter, 'quoteExactOutput', quoteExactOutInputs, {
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? 1_000_000 : undefined,
})
const quoter = useV3Quoter()
const { chainId } = useActiveWeb3React()
const quotesResults = useSingleContractWithCallData(
quoter,
amountOut
? routes.map((route) => SwapQuoter.quoteCallParameters(route, amountOut, TradeType.EXACT_OUTPUT).calldata)
: [],
{
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? DEFAULT_GAS_QUOTE : undefined,
}
)
return useMemo(() => {
if (!amountOut || !currencyIn || quotesResults.some(({ valid }) => !valid)) {
if (
!amountOut ||
!currencyIn ||
quotesResults.some(({ valid }) => !valid) ||
// skip when tokens are the same
amountOut.currency.equals(currencyIn)
) {
return {
state: V3TradeState.INVALID,
trade: null,

View File

@@ -10,6 +10,7 @@ import { abi as IUniswapV2Router02ABI } from '@uniswap/v2-periphery/build/IUnisw
import { abi as MulticallABI } from '@uniswap/v3-periphery/artifacts/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json'
import ARGENT_WALLET_DETECTOR_ABI from 'abis/argent-wallet-detector.json'
import GOVERNOR_BRAVO_ABI from 'abis/governor-bravo.json'
import ENS_PUBLIC_RESOLVER_ABI from 'abis/ens-public-resolver.json'
import ENS_ABI from 'abis/ens-registrar.json'
import ERC20_ABI from 'abis/erc20.json'
@@ -28,6 +29,7 @@ import {
ENS_REGISTRAR_ADDRESSES,
GOVERNANCE_ALPHA_V0_ADDRESSES,
GOVERNANCE_ALPHA_V1_ADDRESSES,
GOVERNANCE_BRAVO_ADDRESSES,
} from 'constants/addresses'
import { abi as NFTPositionManagerABI } from '@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json'
import { useMemo } from 'react'
@@ -111,14 +113,18 @@ export function useMerkleDistributorContract() {
}
export function useGovernanceV0Contract(): Contract | null {
return useContract(GOVERNANCE_ALPHA_V0_ADDRESSES, GOVERNANCE_ABI, true)
return useContract(GOVERNANCE_ALPHA_V0_ADDRESSES, GOVERNANCE_ABI, false)
}
export function useGovernanceV1Contract(): Contract | null {
return useContract(GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_ABI, true)
return useContract(GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_ABI, false)
}
export const useLatestGovernanceContract = useGovernanceV1Contract
export function useGovernanceBravoContract(): Contract | null {
return useContract(GOVERNANCE_BRAVO_ADDRESSES, GOVERNOR_BRAVO_ABI, true)
}
export const useLatestGovernanceContract = useGovernanceBravoContract
export function useUniContract() {
const { chainId } = useActiveWeb3React()

View File

@@ -11,7 +11,7 @@ import ms from 'ms.macro'
import { PoolState, usePool } from './usePools'
// maximum number of blocks past which we consider the data stale
const MAX_DATA_BLOCK_AGE = 10
const MAX_DATA_BLOCK_AGE = 20
interface FeeTierDistribution {
isLoading: boolean
@@ -85,7 +85,7 @@ function usePoolTVL(token0: Token | undefined, token1: Token | undefined) {
const { isLoading, isFetching, isUninitialized, isError, data } = useFeeTierDistributionQuery(
token0 && token1 ? { token0: token0.address.toLowerCase(), token1: token1.address.toLowerCase() } : skipToken,
{
pollingInterval: ms`2m`,
pollingInterval: ms`30s`,
}
)

View File

@@ -7,7 +7,7 @@ import { useUnsupportedTokens } from './Tokens'
* @param currencyIn the input currency to check
* @param currencyOut the output currency to check
*/
export function useIsSwapUnsupported(currencyIn?: Currency, currencyOut?: Currency): boolean {
export function useIsSwapUnsupported(currencyIn?: Currency | null, currencyOut?: Currency | null): boolean {
const unsupportedTokens: { [address: string]: Token } = useUnsupportedTokens()
return useMemo(() => {

View File

@@ -0,0 +1,37 @@
import ReactGA from 'react-ga'
import { stringify } from 'qs'
import useParsedQueryString from 'hooks/useParsedQueryString'
import { useLocation } from 'react-router-dom'
import { LocationDescriptor } from 'history'
import { SupportedLocale } from 'constants/locales'
import { useActiveLocale } from './useActiveLocale'
import { useMemo } from 'react'
export function useLocationLinkProps(locale: SupportedLocale | null): {
to?: LocationDescriptor
onClick?: () => void
} {
const location = useLocation()
const qs = useParsedQueryString()
const activeLocale = useActiveLocale()
return useMemo(
() =>
!locale
? {}
: {
to: {
...location,
search: stringify({ ...qs, lng: locale }),
},
onClick: () => {
ReactGA.event({
category: 'Localization',
action: 'Switch Locale',
label: `${activeLocale} -> ${locale}`,
})
},
},
[location, qs, activeLocale, locale]
)
}

View File

@@ -31,11 +31,10 @@ export function useAllV3Ticks(
const poolAddress =
currencyA && currencyB && feeAmount ? Pool.getAddress(currencyA?.wrapped, currencyB?.wrapped, feeAmount) : undefined
//TODO(judo): determine if pagination is necessary for this query
const { isLoading, isError, error, isUninitialized, data } = useAllV3TicksQuery(
poolAddress ? { poolAddress: poolAddress?.toLowerCase(), skip: 0 } : skipToken,
{
pollingInterval: ms`2m`,
pollingInterval: ms`30s`,
}
)
@@ -126,7 +125,7 @@ export function usePoolActiveLiquidity(
return {
isLoading,
isUninitialized,
isError: isError,
isError,
error,
activeTick,
data: ticksProcessed,

30
src/hooks/useRouter.ts Normal file
View File

@@ -0,0 +1,30 @@
import { skipToken } from '@reduxjs/toolkit/query/react'
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
import ms from 'ms.macro'
import { useBlockNumber } from 'state/application/hooks'
import { useGetQuoteQuery } from 'state/routing/slice'
import { useActiveWeb3React } from './web3'
export function useRouterTradeExactIn(amountIn?: CurrencyAmount<Currency>, currencyOut?: Currency) {
const { account } = useActiveWeb3React()
const blockNumber = useBlockNumber()
const { isLoading, isError, data } = useGetQuoteQuery(
amountIn && currencyOut && account && blockNumber
? {
tokenInAddress: amountIn.currency.wrapped.address,
tokenInChainId: amountIn.currency.chainId,
tokenOutAddress: currencyOut.wrapped.address,
tokenOutChainId: currencyOut.chainId,
amount: amountIn.quotient.toString(),
type: 'exactIn',
}
: skipToken,
{ pollingInterval: ms`10s` }
)
// todo(judo): validate block number for freshness
return !isLoading && !isError ? data?.routeString : undefined
}

View File

@@ -101,7 +101,7 @@ function useSwapCallArguments(
approveAmountCalldata(trade.maximumAmountIn(allowedSlippage), routerContract.address),
{
to: routerContract.address,
value: value,
value,
data: routerContract.interface.encodeFunctionData(methodName, args),
},
],
@@ -155,7 +155,7 @@ function useSwapCallArguments(
approveAmountCalldata(trade.maximumAmountIn(allowedSlippage), swapRouterAddress),
{
to: swapRouterAddress,
value: value,
value,
data: calldata,
},
],

View File

@@ -21,15 +21,15 @@ const NOT_APPLICABLE = { wrapType: WrapType.NOT_APPLICABLE }
* @param typedValue the user input value
*/
export default function useWrapCallback(
inputCurrency: Currency | undefined,
outputCurrency: Currency | undefined,
inputCurrency: Currency | undefined | null,
outputCurrency: Currency | undefined | null,
typedValue: string | undefined
): { wrapType: WrapType; execute?: undefined | (() => Promise<void>); inputError?: string } {
const { chainId, account } = useActiveWeb3React()
const wethContract = useWETHContract()
const balance = useCurrencyBalance(account ?? undefined, inputCurrency)
const balance = useCurrencyBalance(account ?? undefined, inputCurrency ?? undefined)
// we can always parse the amount typed as the input currency, since wrapping is 1:1
const inputAmount = useMemo(() => tryParseAmount(typedValue, inputCurrency), [inputCurrency, typedValue])
const inputAmount = useMemo(() => tryParseAmount(typedValue, inputCurrency ?? undefined), [inputCurrency, typedValue])
const addTransaction = useTransactionAdder()
return useMemo(() => {

View File

@@ -1,40 +1,62 @@
import { Web3Provider } from '@ethersproject/providers'
import { useWeb3React as useWeb3ReactCore } from '@web3-react/core'
import { useWeb3React } from '@web3-react/core'
import { Web3ReactContextInterface } from '@web3-react/core/dist/types'
import { useEffect, useState } from 'react'
import { isMobile } from 'react-device-detect'
import { injected } from '../connectors'
import { NetworkContextName } from '../constants/misc'
import { gnosisSafe, injected } from '../connectors'
import { IS_IN_IFRAME, NetworkContextName } from '../constants/misc'
export function useActiveWeb3React(): Web3ReactContextInterface<Web3Provider> {
const context = useWeb3ReactCore<Web3Provider>()
const contextNetwork = useWeb3ReactCore<Web3Provider>(NetworkContextName)
const context = useWeb3React<Web3Provider>()
const contextNetwork = useWeb3React<Web3Provider>(NetworkContextName)
return context.active ? context : contextNetwork
}
export function useEagerConnect() {
const { activate, active } = useWeb3ReactCore() // specifically using useWeb3ReactCore because of what this hook does
const { activate, active } = useWeb3React()
const [tried, setTried] = useState(false)
// gnosisSafe.isSafeApp() races a timeout against postMessage, so it delays pageload if we are not in a safe app;
// if we are not embedded in an iframe, it is not worth checking
const [triedSafe, setTriedSafe] = useState(!IS_IN_IFRAME)
// first, try connecting to a gnosis safe
useEffect(() => {
injected.isAuthorized().then((isAuthorized) => {
if (isAuthorized) {
activate(injected, undefined, true).catch(() => {
setTried(true)
})
} else {
if (isMobile && window.ethereum) {
if (!triedSafe) {
gnosisSafe.isSafeApp().then((loadedInSafe) => {
if (loadedInSafe) {
activate(gnosisSafe, undefined, true).catch(() => {
setTriedSafe(true)
})
} else {
setTriedSafe(true)
}
})
}
}) // intentionally only running on mount
// then, if that fails, try connecting to an injected connector
useEffect(() => {
if (!active && triedSafe) {
injected.isAuthorized().then((isAuthorized) => {
if (isAuthorized) {
activate(injected, undefined, true).catch(() => {
setTried(true)
})
} else {
setTried(true)
if (isMobile && window.ethereum) {
activate(injected, undefined, true).catch(() => {
setTried(true)
})
} else {
setTried(true)
}
}
}
})
}, [activate]) // intentionally only running on mount (make sure it's only mounted once :))
})
}
}, [activate, active, triedSafe])
// if the connection worked, wait until we get confirmation of that to flip the flag
// wait until we get confirmation of a connection to flip the flag
useEffect(() => {
if (active) {
setTried(true)
@@ -49,7 +71,7 @@ export function useEagerConnect() {
* and out after checking what network theyre on
*/
export function useInactiveListener(suppress = false) {
const { active, error, activate } = useWeb3ReactCore() // specifically using useWeb3React because of what this hook does
const { active, error, activate } = useWeb3React()
useEffect(() => {
const { ethereum } = window

View File

@@ -90,6 +90,7 @@ export function LanguageProvider({ children }: { children: ReactNode }) {
useEffect(() => {
dynamicActivate(locale)
.then(() => {
document.documentElement.setAttribute('lang', locale)
setLoaded(true)
})
.catch((error) => {

View File

@@ -1,5 +1,6 @@
import 'inter-ui'
import '@reach/dialog/styles.css'
import 'polyfills'
import { createWeb3ReactRoot, Web3ReactProvider } from '@web3-react/core'
import { StrictMode } from 'react'
import { isMobile } from 'react-device-detect'
@@ -86,4 +87,6 @@ ReactDOM.render(
document.getElementById('root')
)
serviceWorkerRegistration.unregister()
if (process.env.REACT_APP_SERVICE_WORKER !== 'false') {
serviceWorkerRegistration.register()
}

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: af_ZA\n"
"Language-Team: Afrikaans\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: af\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: af\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Afrikaans\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(maak alles skoon)"
msgid "(edit)"
msgstr "(wysig)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Verwyder stuur"
@@ -412,6 +408,7 @@ msgstr "Maak alles skoon"
msgid "Clear all"
msgstr "Maak alles skoon"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Naby"
@@ -483,6 +480,10 @@ msgstr "Bevestig die ruil"
msgid "Confirm this transaction in your wallet"
msgstr "Bevestig hierdie transaksie in u beursie"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Bevestig transaksie in beursie"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Voer geldige lysligging in"
msgid "Enter valid token address"
msgstr "Voer geldige tekenadres in"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ongeldige reeks gekies. Die minimum prys moet laer wees as die maksimum
msgid "Invalid recipient"
msgstr "Ongeldige ontvanger"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Taal"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Leer"
@@ -1011,6 +1017,10 @@ msgstr "Maksimum:"
msgid "Maximum sent"
msgstr "Maksimum gestuur"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Spyskaart"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Oeps! 'N Onbekende fout het voorgekom. Verfris die bladsy of besoek 'n ander blaaier of toestel."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme Geskeduleerde stilstandtyd"
msgid "Optimism Planned Downtime"
msgstr "Optimisme beplan stilstand"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimisme verwag in die nabye toekoms 'n bietjie stilstand. <0> Lees meer.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimisme verwag in die nabye toekoms beplande stilstand. Onbeplande stilstand kan ook voorkom. Terwyl die netwerk af is, word fooie nie gegenereer nie en kan u nie likiditeit verwyder nie. <0> Lees meer.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "In die ry staan"
msgid "Rates"
msgstr "Tariewe"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Lees meer"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Lees meer oor UNI"
@@ -1368,6 +1384,7 @@ msgstr "Verwyder {0} {1} en {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Beperk ruilings slegs vir direkte pare."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Stemming indien"
msgid "Succeeded"
msgstr "Geslaag"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Sukses"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Voorsiening"
@@ -1637,10 +1658,12 @@ msgstr "Totale deposito"
msgid "Total deposits"
msgstr "Totale deposito's"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transaksie-instellings"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transaksie-instellings"
msgid "Transaction Submitted"
msgstr "Transaksie ingedien"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaksie voltooi in"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Transaksiesperdatum"
@@ -1826,6 +1853,7 @@ msgstr "Uitsig op Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Bekyk op Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Stem teen voorstel {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Stem vir voorstel {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Stem om te onthou van voorstel {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Die stemming het geeïnding {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: ar_SA\n"
"Language-Team: Arabic\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ar\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ar\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Arabic\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(مسح الكل)"
msgid "(edit)"
msgstr "(تعديل)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}٪"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- إزالة الإرسال"
@@ -412,6 +408,7 @@ msgstr "مسح الكل"
msgid "Clear all"
msgstr "مسح الكل"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "إغلاق"
@@ -483,6 +480,10 @@ msgstr "تأكيد المبادلة"
msgid "Confirm this transaction in your wallet"
msgstr "تأكيد هذه المعاملة في محفظتك"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "تأكيد المعاملة في المحفظة"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "أدخل موقع قائمة صالحة"
msgid "Enter valid token address"
msgstr "أدخل عنوان رمز صالح"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "النطاق المحدد غير صالح. يجب أن يكون الحد
msgid "Invalid recipient"
msgstr "مستلم غير صالح"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "لغة"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "تعلم"
@@ -1011,6 +1017,10 @@ msgstr "الحد الأقصى:"
msgid "Maximum sent"
msgstr "الحد الأقصى المرسل"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "قائمة الطعام"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "عفواً! حدث خطأ غير معروف. يُرجى تحديث الصفحة، أو الزيارة من متصفح آخر أو جهاز آخر."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "التفاؤل أوقات التعطل المجدولة"
msgid "Optimism Planned Downtime"
msgstr "التفاؤل وقت التوقف المخطط له"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "يتوقع التفاؤل بعض التوقفات المقررة في المستقبل القريب. <0> اقرأ المزيد.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "يتوقع التفاؤل توقفًا مخططًا له في المستقبل القريب. قد يحدث أيضًا توقف غير مخطط له. أثناء تعطل الشبكة ، لن يتم فرض رسوم ولن تتمكن من إزالة السيولة. <0> اقرأ المزيد.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "في قائمة الانتظار"
msgid "Rates"
msgstr "الأسعار"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "قراءة المزيد"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "اقرأ المزيد عن UNI"
@@ -1368,6 +1384,7 @@ msgstr "إزالة {0} {1} و {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "يقيد المبادلات إلى أزواج فقط ."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "تقديم التصويت"
msgid "Succeeded"
msgstr "نجح"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "النجاح"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "الإمداد"
@@ -1637,10 +1658,12 @@ msgstr "الإجمالي المودَع"
msgid "Total deposits"
msgstr "مجموع الودائع"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "إعدادات المعاملة"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "إعدادات المعاملة"
msgid "Transaction Submitted"
msgstr "تم إرسال المعاملة"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "اكتملت المعاملة في"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "الموعد النهائي للمعاملة"
@@ -1826,6 +1853,7 @@ msgstr "عرض على Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "عرض على Explorer"
@@ -1858,6 +1886,11 @@ msgstr "التصويت ضد الاقتراح {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "التصويت لصالح الاقتراح {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "التصويت على الامتناع عن التصويت {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "انتهى التصويت {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: ca_ES\n"
"Language-Team: Catalan\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ca\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ca\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Catalan\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(esborra-ho tot)"
msgid "(edit)"
msgstr "(edita)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Elimina l'enviament"
@@ -412,6 +408,7 @@ msgstr "Esborra-ho tot"
msgid "Clear all"
msgstr "Esborra-ho tot"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Tanca"
@@ -483,6 +480,10 @@ msgstr "Confirmeu l'intercanvi"
msgid "Confirm this transaction in your wallet"
msgstr "Confirmeu aquesta transacció a la vostra cartera"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirmeu la transacció a la cartera"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Introduïu la ubicació vàlida de la llista"
msgid "Enter valid token address"
msgstr "Introduïu una adreça de fitxa vàlida"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "L'interval no és vàlid. El preu mínim ha de ser inferior al preu màx
msgid "Invalid recipient"
msgstr "Destinatari no vàlid"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Llenguatge"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Aprendre"
@@ -1011,6 +1017,10 @@ msgstr "Màx.:"
msgid "Maximum sent"
msgstr "Màxim enviat"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menú"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Vaja! S'ha produït un error desconegut. Actualitzeu la pàgina o visiteu-la des dun altre navegador o dispositiu."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Temps d'aturada programat per a l'optimisme"
msgid "Optimism Planned Downtime"
msgstr "Temps d'inactivitat previst per a l'optimisme"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Loptimisme espera un temps daturada programat en un futur proper. <0> Llegiu-ne més.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "L'optimisme espera un temps d'inactivitat previst en un futur proper. També es pot produir un temps d'inactivitat no planificat. Mentre la xarxa estigui inactiva, no es generaran comissions i no podreu eliminar la liquiditat. <0> Llegiu-ne més.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "En cua"
msgid "Rates"
msgstr "Tarifes"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Llegeix més"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Llegiu més sobre UNI"
@@ -1368,6 +1384,7 @@ msgstr "Eliminació de {0} {1} i {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restringeix els intercanvis només a parells directes."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Enviament de vot"
msgid "Succeeded"
msgstr "Ha tingut èxit"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Èxit"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Subministrament"
@@ -1637,10 +1658,12 @@ msgstr "Total dipositat"
msgid "Total deposits"
msgstr "Dipòsits totals"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Configuració de transaccions"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Configuració de transaccions"
msgid "Transaction Submitted"
msgstr "Transacció enviada"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transacció finalitzada el"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Termini de transacció"
@@ -1826,6 +1853,7 @@ msgstr "Veure a Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Veure a Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Vota contra la proposta {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Vota la proposta {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Voteu per abstenir-vos de la proposta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "La votació ha finalitzat {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: cs_CZ\n"
"Language-Team: Czech\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: cs\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: cs\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Czech\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(vyprázdnit vše)"
msgid "(edit)"
msgstr "(upravit)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Odebrat odeslání"
@@ -412,6 +408,7 @@ msgstr "Vymazat vše"
msgid "Clear all"
msgstr "Vymazat vše"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Zavřít"
@@ -483,6 +480,10 @@ msgstr "Potvrdit výměnu"
msgid "Confirm this transaction in your wallet"
msgstr "Potvrďte tuto transakci ve své peněžence"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Potvrďte transakci v peněžence"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Zadejte platnou polohu seznamu"
msgid "Enter valid token address"
msgstr "Zadejte platnou adresu žetonu"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Vybrán neplatný rozsah. Minimální cena musí být nižší než maxi
msgid "Invalid recipient"
msgstr "Neplatný příjemce"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Jazyk"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Učit se"
@@ -1011,6 +1017,10 @@ msgstr "Maximálně:"
msgid "Maximum sent"
msgstr "Maximum odeslané"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Jídelní lístek"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Jejda! Došlo k neznámé chybě. Obnovte prosím stránku nebo ji navštivte z jiného prohlížeče nebo zařízení."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimismus plánované odstávky"
msgid "Optimism Planned Downtime"
msgstr "Optimismus plánované prostoje"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimismus očekává v blízké budoucnosti určité plánované odstávky. <0> Přečtěte si více.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismus v blízké budoucnosti očekává plánované prostoje. Může dojít také k neplánovanému výpadku. I když je síť nefunkční, nebudou generovány poplatky a nebudete moci odstranit likviditu. <0> Přečtěte si více.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Ve frontě"
msgid "Rates"
msgstr "Sazby"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Přečtěte si více"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Přečtěte si více o UNI"
@@ -1368,6 +1384,7 @@ msgstr "Odstraňování {0} {1} a {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Omezte swapy jen na přímé páry."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Odesílání hlasů"
msgid "Succeeded"
msgstr "Uspěl"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Úspěch"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Zásoba"
@@ -1637,10 +1658,12 @@ msgstr "Celkem uloženo"
msgid "Total deposits"
msgstr "Vklady celkem"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Nastavení transakcí"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Nastavení transakcí"
msgid "Transaction Submitted"
msgstr "Transakce odeslána"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transakce dokončena v"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Lhůta pro transakce"
@@ -1826,6 +1853,7 @@ msgstr "Pohled na Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Zobrazit v Průzkumníku"
@@ -1858,6 +1886,11 @@ msgstr "Hlasovat proti návrhu {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Hlasovat pro návrh {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Hlasujte, abyste se zdrželi hlasování o návrhu {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Hlasování skončilo {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: da_DK\n"
"Language-Team: Danish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: da\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: da\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Danish\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(ryd alle)"
msgid "(edit)"
msgstr "(rediger)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Fjern afsendelse"
@@ -412,6 +408,7 @@ msgstr "Ryd alle"
msgid "Clear all"
msgstr "Ryd alle"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Luk"
@@ -483,6 +480,10 @@ msgstr "Bekræft skift"
msgid "Confirm this transaction in your wallet"
msgstr "Bekræft denne transaktion i din tegnebog"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Bekræft transaktion i tegnebogen"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Indtast gyldig listeplacering"
msgid "Enter valid token address"
msgstr "Indtast gyldig tokenadresse"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ugyldigt interval valgt. Minimumspris skal være lavere end den maksimal
msgid "Invalid recipient"
msgstr "Ugyldig modtager"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Sprog"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Lær"
@@ -1011,6 +1017,10 @@ msgstr "Maks:"
msgid "Maximum sent"
msgstr "Maksimum sendt"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menu"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ups! Der opstod en ukendt fejl. Opdater siden, eller besøg fra en anden browser eller enhed."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme Planlagte nedetid"
msgid "Optimism Planned Downtime"
msgstr "Optimisme planlagt nedetid"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimisme forventer noget planlagt nedetid i den nærmeste fremtid. <0> Læs mere.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimisme forventer planlagt nedetid i den nærmeste fremtid. Uplanlagt nedetid kan også forekomme. Mens netværket er nede, genereres der ikke gebyrer, og du vil ikke kunne fjerne likviditet. <0> Læs mere.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "I kø"
msgid "Rates"
msgstr "Satser"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Læs mere"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Læs mere om UNI"
@@ -1368,6 +1384,7 @@ msgstr "Fjerner {0} {1} og {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Begræns swaps til direkte par."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Indsend Stemme"
msgid "Succeeded"
msgstr "Lykkedes"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Succes"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Forsyning"
@@ -1637,10 +1658,12 @@ msgstr "I alt deponeret"
msgid "Total deposits"
msgstr "Indlån i alt"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transaktionsindstillinger"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transaktionsindstillinger"
msgid "Transaction Submitted"
msgstr "Transaktion indsendt"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaktion gennemført i"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Frist for transaktion"
@@ -1826,6 +1853,7 @@ msgstr "Se på Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Vis i Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Stem imod forslag {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Stem på forslag {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Stem for at undlade at stemme om forslag {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Afstemning sluttede {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: de_DE\n"
"Language-Team: German\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: de\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: de\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: German\n"
"PO-Revision-Date: 2021-07-14 12:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(alles löschen)"
msgid "(edit)"
msgstr "(bearbeiten)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Senden entfernen"
@@ -93,7 +89,7 @@ msgstr "<0/> Alle Vorschläge"
#: src/pages/Vote/index.tsx
#: src/pages/Vote/index.tsx
msgid "<0/> Votes"
msgstr "<0/> Abstimmungen"
msgstr "<0/> Stimmen"
#: src/pages/Pool/v2.tsx
msgid "<0>Account analytics and accrued fees</0><1> ↗ </1>"
@@ -412,6 +408,7 @@ msgstr "Alles löschen"
msgid "Clear all"
msgstr "Alles löschen"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Schließen"
@@ -483,6 +480,10 @@ msgstr "Tausch bestätigen"
msgid "Confirm this transaction in your wallet"
msgstr "Diese Transaktion in Ihrer Wallet bestätigen"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Transaktion in Wallet bestätigen"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -600,7 +601,7 @@ msgstr "Delegiert an:"
#: src/state/governance/hooks.ts
msgid "Delegated votes"
msgstr "Delegierte Stimmen"
msgstr "Delegiertes Stimmenrecht"
#: src/components/vote/DelegateModal.tsx
msgid "Delegating votes"
@@ -729,6 +730,7 @@ msgstr "Gültigen Listenort eingeben"
msgid "Enter valid token address"
msgstr "Gültige Token-Adresse eingeben"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ungültiger Bereich ausgewählt. Der Mindestpreis muss kleiner als der M
msgid "Invalid recipient"
msgstr "Ungültiger Empfänger"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Sprache"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Lernen"
@@ -1011,6 +1017,10 @@ msgstr "Max.:"
msgid "Maximum sent"
msgstr "Maximum gesendet"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menü"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1038,7 +1048,7 @@ msgstr "Migrieren Sie Ihre Liquiditäts-Token von Uniswap V2 nach Uniswap V3."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Migrating"
msgstr "Migriere"
msgstr "Migrieren"
#: src/components/PositionPreview/index.tsx
#: src/components/RangeSelector/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Hoppla! Ein unbekannter Fehler ist aufgetreten. Bitte aktualisieren Sie die Seite oder besuchen Sie uns von einem anderen Browser oder Gerät."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Geplante optimism Ausfallzeiten"
msgid "Optimism Planned Downtime"
msgstr "Geplante Ausfallzeit bei Optimism"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimism erwartet in naher Zukunft geplante Ausfallzeiten. <0>Weiterlesen.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismus erwartet geplante Ausfallzeiten in naher Zukunft. Es kann auch zu ungeplanten Ausfallzeiten kommen. Während das Netzwerk ausgefallen ist, werden keine Gebühren generiert und Sie können keine Liquidität entfernen. <0>Weiterlesen.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1177,7 +1187,7 @@ msgstr "Ausstehend"
#: src/components/SearchModal/ManageLists.tsx
msgid "Please confirm you would like to remove this list by typing REMOVE"
msgstr "Bitte bestätigen Sie, dass Sie diese Liste entfernen möchten, indem Sie ENTFERNEN . eingeben"
msgstr "Bitte bestätigen Sie, dass Sie diese Liste entfernen möchten, indem Sie ENTFERNEN eingeben"
#: src/components/vote/ProposalEmptyState.tsx
msgid "Please connect to Layer 1 Ethereum"
@@ -1301,6 +1311,12 @@ msgstr "In Warteschlange"
msgid "Rates"
msgstr "Preise"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Weiterlesen"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Erfahre mehr über UNI"
@@ -1368,6 +1384,7 @@ msgstr "Entferne {0} {1} und {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Begrenzt Swaps nur auf Direktpaare."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1466,7 +1483,7 @@ msgstr "Schritt 1. Holen Sie sich UNI-V2-Liquiditätstoken"
#: src/state/governance/hooks.ts
msgid "Submitted new proposal"
msgstr "Neues Angebot eingereicht"
msgstr "Neuer Vorschlag eingereicht"
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Submitting Proposal"
@@ -1480,6 +1497,10 @@ msgstr "Stimmabgabe wird eingereicht"
msgid "Succeeded"
msgstr "Erfolgreich"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Erfolg"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Bereitstellen"
@@ -1555,7 +1576,7 @@ msgstr "Die Transaktion konnte nicht gesendet werden, da die Frist abgelaufen is
#: src/components/LiquidityChartRangeInput/index.tsx
msgid "There is no liquidity data."
msgstr "Es liegen keine Liquiditätsdaten vor."
msgstr "Keine Liquiditätsdaten vorhanden."
#: src/components/SearchModal/CommonBases.tsx
msgid "These tokens are commonly paired with other tokens."
@@ -1637,10 +1658,12 @@ msgstr "Gesamt deponiert"
msgid "Total deposits"
msgstr "Gesamteinlagen"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transaktionseinstellungen"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transaktionseinstellungen"
msgid "Transaction Submitted"
msgstr "Transaktion gesendet"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaktion abgeschlossen in"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Transaktionsfrist"
@@ -1826,6 +1853,7 @@ msgstr "Auf Etherscan ansehen"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Im Explorer anzeigen"
@@ -1858,6 +1886,11 @@ msgstr "Stimme gegen Antrag {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Für Vorschlag {proposalId} stimmen"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Stimme für Enthaltung bei Vorschlag {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Abstimmung beendet {0}"
@@ -1951,7 +1984,7 @@ msgstr "Du kannst jetzt {0} handeln"
#: src/pages/CreateProposal/index.tsx
msgid "You don't have enough votes to submit a proposal"
msgstr "Sie haben nicht genug Stimmen, um einen Vorschlag einzureichen"
msgstr "Ihr Stimmrecht reicht nicht aus, um einen Vorschlag einzureichen"
#: src/pages/PoolFinder/index.tsx
msgid "You dont have liquidity in this pool yet."
@@ -2146,7 +2179,7 @@ msgstr "{0} ETH"
#: src/components/Header/NetworkCard.tsx
msgid "{0} Explorer"
msgstr "{0} Entdecker"
msgstr "{0} Explorer"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: el_GR\n"
"Language-Team: Greek\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: el\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: el\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Greek\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(καθαρισμός όλων)"
msgid "(edit)"
msgstr "(επεξεργασία)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Αφαίρεση αποστολής"
@@ -412,6 +408,7 @@ msgstr "Εκκαθάριση Όλων"
msgid "Clear all"
msgstr "Εκκαθάριση όλων"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Κλείσιμο"
@@ -483,6 +480,10 @@ msgstr "Επιβεβαίωση ανταλλαγής"
msgid "Confirm this transaction in your wallet"
msgstr "Επιβεβαιώστε αυτή τη συναλλαγή στο πορτοφόλι σας"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Επιβεβαίωση συναλλαγής στο πορτοφόλι"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Εισάγετε έγκυρη λίστα τοποθεσιών"
msgid "Enter valid token address"
msgstr "Εισάγετε μια διεύθυνση έγκυρης μάρκας"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Επιλέχθηκε μη έγκυρο εύρος. Η ελάχιστη
msgid "Invalid recipient"
msgstr "Μη έγκυρος παραλήπτης"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Γλώσσα"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Μάθετε"
@@ -1011,6 +1017,10 @@ msgstr "Μέγιστο:"
msgid "Maximum sent"
msgstr "Απεστάλη το μέγιστο"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Μενού"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ωχ! Προέκυψε ένα άγνωστο σφάλμα. Παρακαλώ ανανεώστε τη σελίδα ή επισκεφθείτε από άλλο πρόγραμμα περιήγησης ή συσκευή."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Προγραμματισμένος χρόνος διακοπής αισιοδοξίας"
msgid "Optimism Planned Downtime"
msgstr "Αισιοδοξία Προγραμματισμένος χρόνος διακοπής"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Η αισιοδοξία αναμένει κάποια προγραμματισμένη διακοπή λειτουργίας στο εγγύς μέλλον. <0> Διαβάστε περισσότερα.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Η αισιοδοξία αναμένει προγραμματισμένο χρόνο διακοπής στο εγγύς μέλλον. Μπορεί επίσης να συμβεί μη προγραμματισμένος χρόνος διακοπής. Ενώ το δίκτυο είναι εκτός λειτουργίας, δεν θα δημιουργηθούν τέλη και δεν θα μπορείτε να αφαιρέσετε τη ρευστότητα. <0> Διαβάστε περισσότερα.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Σε ουρά"
msgid "Rates"
msgstr "Τιμές"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Διαβάστε περισσότερα"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Διαβάστε περισσότερα για UNI"
@@ -1368,6 +1384,7 @@ msgstr "Αφαίρεση των {0} {1} και {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Περιορίζει τις ανταλλαγές μόνο σε απευθείας ζεύγη."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Γίνεται υποβολή ψήφου"
msgid "Succeeded"
msgstr "Επιτεύχθηκε"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Επιτυχία"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Παροχή"
@@ -1637,10 +1658,12 @@ msgstr "Σύνολο που κατατέθηκε"
msgid "Total deposits"
msgstr "Συνολικές καταθέσεις"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Ρυθμίσεις Συναλλαγής"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Ρυθμίσεις Συναλλαγής"
msgid "Transaction Submitted"
msgstr "Συναλλαγή Υποβλήθηκε"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Η συναλλαγή ολοκληρώθηκε στις"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Προθεσμία συναλλαγής"
@@ -1826,6 +1853,7 @@ msgstr "Θέα στο Ethercan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Προβολή στον Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Ψήφοι κατά της πρότασης {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Ψήφοι υπέρ της πρότασης {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Vηφοφορία για αποχή στην πρόταση {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Η ψηφοφορία έληξε {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: es_ES\n"
"Language-Team: Spanish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: es\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Spanish\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(limpiar todo)"
msgid "(edit)"
msgstr "(editar)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Eliminar envío"
@@ -412,6 +408,7 @@ msgstr "Limpiar todo"
msgid "Clear all"
msgstr "Limpiar todo"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Cerrar"
@@ -483,6 +480,10 @@ msgstr "Confirmar intercambio"
msgid "Confirm this transaction in your wallet"
msgstr "Confirmar esta transacción en su cartera"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirmar transacción en billetera"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Introduzca una ubicación de lista válida"
msgid "Enter valid token address"
msgstr "Introduzca una dirección de token válida"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Rango seleccionado no válido. El precio mínimo debe ser inferior al pr
msgid "Invalid recipient"
msgstr "Receptor no válido"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Idioma"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Aprender"
@@ -1011,6 +1017,10 @@ msgstr "Máx:"
msgid "Maximum sent"
msgstr "Máximo enviado"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menú"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "¡Ups! Se ha producido un error desconocido. Actualice la página o acceda desde otro navegador o dispositivo."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimismo Tiempos de inactividad programados"
msgid "Optimism Planned Downtime"
msgstr "Tiempo de inactividad planificado con optimismo"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "El optimismo espera algún tiempo de inactividad programado en un futuro próximo. <0> Leer más.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "El optimismo espera un tiempo de inactividad planificado en un futuro próximo. También puede ocurrir un tiempo de inactividad no planificado. Mientras la red esté inactiva, no se generarán tarifas y no podrá eliminar la liquidez. <0> Leer más.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Puesto en cola"
msgid "Rates"
msgstr "Tarifas"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Lee mas"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Leer más sobre UNI"
@@ -1368,6 +1384,7 @@ msgstr "Eliminando {0} {1} y {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restringe los intercambios a pares directos únicamente."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Enviando Voto"
msgid "Succeeded"
msgstr "Tuvo éxito"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Éxito"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Suministro"
@@ -1637,10 +1658,12 @@ msgstr "Total depositado"
msgid "Total deposits"
msgstr "Total de depósitos"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Ajustes de la transacción"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Ajustes de la transacción"
msgid "Transaction Submitted"
msgstr "Transacción enviada"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transacción completada en"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Fecha límite de la transacción"
@@ -1826,6 +1853,7 @@ msgstr "Ver en Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Ver en el explorador"
@@ -1858,6 +1886,11 @@ msgstr "Votar en contra de la propuesta {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Votar por la propuesta {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Votar para abstenerse sobre la propuesta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Voto finalizado {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: fi_FI\n"
"Language-Team: Finnish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: fi\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: fi\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Finnish\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(clear all)"
msgid "(edit)"
msgstr "(edit)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Poista lähetys"
@@ -412,6 +408,7 @@ msgstr "Tyhjennä kaikki"
msgid "Clear all"
msgstr "Tyhjennä kaikki"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Sulje"
@@ -483,6 +480,10 @@ msgstr "Vahvista vaihto"
msgid "Confirm this transaction in your wallet"
msgstr "Vahvista lompakkosi tapahtuma"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Vahvista tapahtuma lompakossa"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Syötä kelvollinen luettelon sijainti"
msgid "Enter valid token address"
msgstr "Syötä kelvollinen rahakeosoite"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Virheellinen vaihteluväli valittu. Minimihinnan on oltava pienempi kuin
msgid "Invalid recipient"
msgstr "Virheellinen vastaanottaja"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Kieli"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Opi"
@@ -1011,6 +1017,10 @@ msgstr "Maksimi:"
msgid "Maximum sent"
msgstr "Maksimimäärä lähetetty"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Valikko"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Hups! Tapahtui tuntematon virhe. Ole hyvä ja päivitä sivu tai vieraile sivulla toisella selaimella tai laitteella."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimismi suunnitellut seisokit"
msgid "Optimism Planned Downtime"
msgstr "Optimismi Suunniteltu seisokki"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimismi odottaa joitain suunniteltuja seisokkeja lähitulevaisuudessa. <0> Lue lisää.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismi odottaa suunniteltuja seisokkeja lähitulevaisuudessa. Myös odottamattomia seisokkeja voi esiintyä. Kun verkko on poissa käytöstä, maksuja ei synny ja et voi poistaa likviditeettiä. <0> Lue lisää.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Jonossa"
msgid "Rates"
msgstr "Kurssit"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Lue lisää"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Lue lisää UNIsta"
@@ -1368,6 +1384,7 @@ msgstr "Poistetaan {0} {1} ja {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Rajoittaa vaihdot vain suoriin pareihin."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Lähetetään ääntä"
msgid "Succeeded"
msgstr "Menestyi"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Menestys"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Tarjonta"
@@ -1637,10 +1658,12 @@ msgstr "Talletettu yhteensä"
msgid "Total deposits"
msgstr "Talletuksia yhteensä"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Tapahtuma-asetukset"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Tapahtuma-asetukset"
msgid "Transaction Submitted"
msgstr "Tapahtuma lähetetty"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Kauppa suoritettu vuonna"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Tapahtuman määräaika"
@@ -1826,6 +1853,7 @@ msgstr "Näkymä Etherscanissa"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Näytä Explorerissa"
@@ -1858,6 +1886,11 @@ msgstr "Äänestä ehdotusta {proposalId} vastaan"
msgid "Vote for proposal {proposalId}"
msgstr "Äänestä ehdotuksen {proposalId} puolesta"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Äänestää tyhjää ehdotuksesta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Äänestys päättynyt {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: fr_FR\n"
"Language-Team: French\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: fr\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: French\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(tout effacer)"
msgid "(edit)"
msgstr "(modifier)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Supprimer le destinataire"
@@ -412,6 +408,7 @@ msgstr "Tout effacer"
msgid "Clear all"
msgstr "Tout effacer"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Fermer"
@@ -483,6 +480,10 @@ msgstr "Valider le swap"
msgid "Confirm this transaction in your wallet"
msgstr "Validez cette transaction dans votre portefeuille"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirmer la transaction dans le portefeuille"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Saisissez un emplacement de liste valide"
msgid "Enter valid token address"
msgstr "Saisissez une adresse de jeton valide"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Plage non valide sélectionnée. Le prix minimum doit être inférieur a
msgid "Invalid recipient"
msgstr "Destinataire invalide"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Langue"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Apprendre"
@@ -1011,6 +1017,10 @@ msgstr "Max :"
msgid "Maximum sent"
msgstr "Maximum envoyé"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menu"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Oups ! Une erreur inconnue s'est produite. Veuillez rafraîchir la page ou visiter depuis un autre navigateur ou appareil."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme Temps d'arrêt programmés"
msgid "Optimism Planned Downtime"
msgstr "Optimisme Temps d'arrêt planifié"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimism s'attend à des temps d'arrêt programmés dans un proche avenir. <0>En savoir plus.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimism s'attend à des temps d'arrêt planifiés dans un proche avenir. Des temps d'arrêt imprévus peuvent également se produire. Tant que le réseau est en panne, les frais ne seront pas générés et vous ne pourrez pas retirer de liquidité. <0>En savoir plus.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "En attente"
msgid "Rates"
msgstr "Tarifs"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Lire la suite"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "En savoir plus sur UNI"
@@ -1368,6 +1384,7 @@ msgstr "Suppression de {0} {1} et {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restreint les swaps uniquement aux paires directes."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Soumettre un vote"
msgid "Succeeded"
msgstr "Réussi"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Succès"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Approvisionnement"
@@ -1637,10 +1658,12 @@ msgstr "Total déposé"
msgid "Total deposits"
msgstr "Total des dépôts"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Paramètres de la transaction"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Paramètres de la transaction"
msgid "Transaction Submitted"
msgstr "Transaction envoyée"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaction réalisée en"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Date limite de la transaction"
@@ -1826,6 +1853,7 @@ msgstr "Voir sur Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Voir sur Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Voter contre la proposition {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Voter pour la proposition {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Votez pour vous abstenir sur la proposition {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Vote terminé {0}"
@@ -1892,7 +1925,7 @@ msgstr "Lorsque vous vous retirez, le contrat réclamera automatiquement UNI en
#: src/components/earn/UnstakingModal.tsx
msgid "When you withdraw, your UNI is claimed and your liquidity is removed from the mining pool."
msgstr "Lorsque vous retirez, votre UNI est réclamée et votre liquidité est retirée de la réserve minière."
msgstr "Lorsque vous retirez, votre UNI est réclamée et votre liquidité est retirée de la pool de récompense."
#: src/components/earn/UnstakingModal.tsx
#: src/pages/Earn/Manage.tsx

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: he_IL\n"
"Language-Team: Hebrew\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: he\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: he\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Hebrew\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(נקה הכל)"
msgid "(edit)"
msgstr "(עריכה)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- הסר שליחה"
@@ -412,6 +408,7 @@ msgstr "נקה הכל"
msgid "Clear all"
msgstr "נקה הכל"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "סגור"
@@ -483,6 +480,10 @@ msgstr "אשר החלפה"
msgid "Confirm this transaction in your wallet"
msgstr "אשר את העסקה בארנק שלך"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "אשר עסקה בארנק"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "הזן מיקום רשימה חוקי"
msgid "Enter valid token address"
msgstr "הזן כתובת אסימון חוקית"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "נבחר טווח לא חוקי. המחיר המינימלי חייב ל
msgid "Invalid recipient"
msgstr "נמען לא חוקי"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "שפה"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "לִלמוֹד"
@@ -1011,6 +1017,10 @@ msgstr "מקסימום:"
msgid "Maximum sent"
msgstr "מקסימום נשלח"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "תַפרִיט"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "אופס! אירעה שגיאה לא ידועה. אנא רענן את הדף, או בקר בדפדפן או במכשיר אחר."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "זמני השבתה של אופטימיות"
msgid "Optimism Planned Downtime"
msgstr "אופטימיות מתוכננת השבתה"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "האופטימיות צופה זמן השבתה מתוכנן בזמן הקרוב. <0> קרא עוד.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "אופטימיות צופה השבתה מתוכננת בעתיד הקרוב. זמן השבתה לא מתוכנן עשוי להתרחש גם כן. בזמן שהרשת מושבתת, לא ייווצרו עמלות ולא תוכל להסיר נזילות. <0> קרא עוד.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "בתור"
msgid "Rates"
msgstr "תעריפים"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "קרא עוד"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "קרא עוד על UNI"
@@ -1368,6 +1384,7 @@ msgstr "הסרת {0} {1} ו {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "מגבלות מחליפות לזוגות ישירים בלבד."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "הגשת הצבעה"
msgid "Succeeded"
msgstr "הצליח"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "הַצלָחָה"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "לְסַפֵּק"
@@ -1637,10 +1658,12 @@ msgstr "סה\"כ מה שהופקד"
msgid "Total deposits"
msgstr "סך ההפקדות"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "הגדרות עסקה"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "הגדרות עסקה"
msgid "Transaction Submitted"
msgstr "העסקה הוגשה"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "העסקה הושלמה בשנת"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "מועד אחרון לעסקה"
@@ -1826,6 +1853,7 @@ msgstr "מבט על אתרסקאן"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "צפה ב- Explorer"
@@ -1858,6 +1886,11 @@ msgstr "הצביעו נגד הצעה {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "הצביע להצעה {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "הצביעו להימנע מהצעה {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "ההצבעה הסתיימה ב {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: hu_HU\n"
"Language-Team: Hungarian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: hu\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: hu\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Hungarian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(összes törlése)"
msgid "(edit)"
msgstr "(szerkesztés)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Küldés eltávolítása"
@@ -412,6 +408,7 @@ msgstr "Mindent töröl"
msgid "Clear all"
msgstr "Mindent töröl"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Bezárás"
@@ -483,6 +480,10 @@ msgstr "Swap megerősítése"
msgid "Confirm this transaction in your wallet"
msgstr "Tranzakció megerősítése a pénztárcájában"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "A tranzakció megerősítése a pénztárcában"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Adja meg az érvényes lista helyét"
msgid "Enter valid token address"
msgstr "Adja meg az érvényes token címet"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -914,6 +916,10 @@ msgstr "Érvénytelen tartományt választott ki. A minimális árnak alacsonyab
msgid "Invalid recipient"
msgstr "Érvénytelen címzett"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Nyelv"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Tanulás"
@@ -1012,6 +1018,10 @@ msgstr "Max:"
msgid "Maximum sent"
msgstr "Maximum elküldve"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menü"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1132,12 +1142,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Hoppá! Ismeretlen hiba történt. Kérjük, frissítse az oldalt, vagy látogasson el egy másik böngészőből vagy eszközről."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimizmus ütemezett leállások"
msgid "Optimism Planned Downtime"
msgstr "Az optimizmus tervezett leállása"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Az optimizmus a közeljövőben néhány tervezett leállásra számít. <0> További információ.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Az optimizmus a tervezett leállásokra számít a közeljövőben. Előfordulhat nem tervezett leállás is. Amíg a hálózat nem működik, díjak nem keletkeznek, és nem tudja eltávolítani a likviditást. <0> További információ.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1302,6 +1312,12 @@ msgstr "Sorban"
msgid "Rates"
msgstr "Árfolyamok"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Olvass tovább"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "További információk az UNI-ról"
@@ -1369,6 +1385,7 @@ msgstr "{0} {1} és {2} {3} eltávolítása"
msgid "Restricts swaps to direct pairs only."
msgstr "Kizárólag a közvetlen párokra korlátozza a swapokat."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1481,6 +1498,10 @@ msgstr "Szavazat benyújtása"
msgid "Succeeded"
msgstr "Sikerült"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Siker"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Kínálat"
@@ -1638,10 +1659,12 @@ msgstr "Összesen letétbe helyezett"
msgid "Total deposits"
msgstr "Összes letét"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Tranzakció beállítások"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1651,6 +1674,10 @@ msgstr "Tranzakció beállítások"
msgid "Transaction Submitted"
msgstr "Tranzakció benyújtva"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "A tranzakció befejeződött"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Tranzakció határideje"
@@ -1827,6 +1854,7 @@ msgstr "Nézd meg az Etherscan webhelyen"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Megtekintés az Explorerben"
@@ -1859,6 +1887,11 @@ msgstr "Szavazat a(z) {proposalId} javaslat ellen"
msgid "Vote for proposal {proposalId}"
msgstr "Szavazat a(z) {proposalId} mellett"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Szavazzon a tartózkodásra a {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "A szavazás befejeződött {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-13 17:07\n"
"Last-Translator: \n"
"Language: id_ID\n"
"Language-Team: Indonesian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: id\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: id\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Indonesian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(Hapus semua)"
msgid "(edit)"
msgstr "(edit)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Hapus pengiriman"
@@ -113,7 +109,7 @@ msgstr "<0>Kiat:</0> Menghapus token pool akan mengubah posisi Anda kembali ke t
#: src/pages/CreateProposal/index.tsx
msgid "<0>Tip:</0> Select an action and describe your proposal for the community. The proposal cannot be modified after submission, so please verify all information before submitting. The voting period will begin immediately and last for 7 days. To propose a custom action, <1>read the docs</1>."
msgstr "<0>Kiat:</0> Pilih tindakan dan jelaskan proposal Anda untuk komunitas. Proposal tidak dapat diubah setelah pengiriman, jadi harap verifikasi semua informasi sebelum mengirimkan. Periode pemungutan suara akan segera dimulai dan berlangsung selama 7 hari. Untuk mengusulkan tindakan khusus, <1>baca dokumen</1> ."
msgstr "<0>Kiat:</0> Pilih tindakan dan jelaskan proposal Anda untuk komunitas. Proposal tidak dapat diubah setelah dikirimkan, jadi harap verifikasi semua informasi sebelum dikirm. Periode pemungutan suara akan segera dimulai dan berlangsung selama 7 hari. Untuk mengusulkan tindakan khusus, <1>baca dokumen</1>."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
@@ -133,7 +129,7 @@ msgstr "<0>🎉</0>Selamat datang di tim Unicorn :) <1>🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 0.25% of the total UNI supply is required to submit proposals"
msgstr "Ambang batas minimum 0,25% dari total pasokan UNI diperlukan untuk mengirimkan proposal"
msgstr "Memerlukan minimal 0,25% dari total pasokan UNI untuk mengirimkan proposal"
#: src/components/Menu/index.tsx
msgid "About"
@@ -230,7 +226,7 @@ msgstr "Jumlah"
#: src/hooks/useSwapCallback.ts
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Terjadi kesalahan saat mencoba menjalankan swap ini. Anda mungkin perlu meningkatkan toleransi selip Anda. Jika itu tidak berhasil, mungkin ada ketidakcocokan dengan token yang Anda perdagangkan. Catatan: biaya transfer dan token rebase tidak sesuai dengan Uniswap V3."
msgstr "Terjadi kesalahan saat mengeksekusi swap ini. Anda mungkin memerlukan peningkatan toleransi slip Anda. Jika tidak berhasil, kemungkinan token yang anda perdagangkan tidak cocok. Catatan: biaya transfer token rebase tidak cocok dengan Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -412,6 +408,7 @@ msgstr "Hapus Semua"
msgid "Clear all"
msgstr "Hapus semua"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Tutup"
@@ -483,6 +480,10 @@ msgstr "Konfirmasikan Swap"
msgid "Confirm this transaction in your wallet"
msgstr "Konfirmasikan transaksi ini di dompet Anda"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Konfirmasi transaksi di dompet"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -689,7 +690,7 @@ msgstr "Token UNI yang diperoleh mewakili hak suara dalam pengaturan Uniswap."
#: src/components/FeeSelector/index.tsx
msgid "Edit"
msgstr "Sunting"
msgstr "Ubah"
#: src/pages/AddLiquidity/index.tsx
msgid "Efficiency Comparison"
@@ -729,6 +730,7 @@ msgstr "Masukkan lokasi daftar yang valid"
msgid "Enter valid token address"
msgstr "Masukkan alamat token yang valid"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -794,7 +796,7 @@ msgstr "Dari (paling banyak)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "Full Range"
msgstr "Lengkap"
msgstr "Rentang Penuh"
#: src/pages/AddLiquidity/index.tsx
msgid "Full range positions may earn less fees than concentrated positions. Learn more <0>here</0>."
@@ -913,6 +915,10 @@ msgstr "Rentang yang tidak valid dipilih. Harga min harus lebih rendah dari harg
msgid "Invalid recipient"
msgstr "Penerima tidak valid"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Bahasa"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Belajar"
@@ -923,11 +929,11 @@ msgstr "Pelajari tentang menyediakan likuiditas"
#: src/components/Header/NetworkCard.tsx
msgid "Learn more"
msgstr "Belajarlah lagi"
msgstr "Pelajari lebih lanjut"
#: src/components/Menu/index.tsx
msgid "Light Theme"
msgstr "Tema Cahaya"
msgstr "Tema Terang"
#: src/components/claim/ClaimModal.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -1011,6 +1017,10 @@ msgstr "Maks:"
msgid "Maximum sent"
msgstr "Maksimum dikirim"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menu"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1088,7 +1098,7 @@ msgstr "Tidak ada kolam yang ditemukan."
#: src/components/vote/ProposalEmptyState.tsx
msgid "No proposals found."
msgstr "Usulan tidak ditemukan."
msgstr "Proposal tidak ditemukan."
#: src/components/SearchModal/CurrencySearch.tsx
msgid "No results found."
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ups! Terjadi kesalahan yang tidak diketahui. Harap segarkan halaman, atau kunjungi dari browser atau perangkat lain."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme Waktu Henti Terjadwal"
msgid "Optimism Planned Downtime"
msgstr "Optimisme Waktu Henti yang Direncanakan"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimisme mengharapkan beberapa waktu henti yang dijadwalkan dalam waktu dekat. <0>Baca selengkapnya.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimisme mengharapkan downtime yang direncanakan dalam waktu dekat. Waktu henti yang tidak direncanakan juga dapat terjadi. Saat jaringan mati, biaya tidak akan dihasilkan dan Anda tidak akan dapat menghapus likuiditas. <0>Baca selengkapnya.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1144,7 +1154,7 @@ msgstr "Optimis Etherscan"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic L2 Gateway"
msgstr "Gerbang L2 yang Optimis"
msgstr "Optimis L2 Gateway"
#: src/components/Badge/RangeBadge.tsx
msgid "Out of range"
@@ -1181,7 +1191,7 @@ msgstr "Konfirmasikan bahwa Anda ingin menghapus daftar ini dengan mengetik HAPU
#: src/components/vote/ProposalEmptyState.tsx
msgid "Please connect to Layer 1 Ethereum"
msgstr "Silakan terhubung ke Layer 1 Ethereum"
msgstr "Silakan hubungkan ke Layer 1 Ethereum"
#: src/components/WalletModal/index.tsx
msgid "Please connect to the appropriate Ethereum network."
@@ -1267,7 +1277,7 @@ msgstr "Harga dan bagian pool"
#: src/pages/CreateProposal/ProposalEditor.tsx
msgid "Proposal"
msgstr "Usul"
msgstr "Proposal"
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Proposal Submitted"
@@ -1283,7 +1293,7 @@ msgstr "Usulan"
#: src/components/vote/ProposalEmptyState.tsx
msgid "Proposals submitted by community members will appear here."
msgstr "Usulan yang diajukan oleh anggota komunitas akan muncul di sini."
msgstr "Proposal yang diajukan oleh anggota komunitas akan muncul di sini."
#: src/pages/CreateProposal/ProposalActionSelector.tsx
msgid "Proposed Action"
@@ -1295,12 +1305,18 @@ msgstr "Pengusul"
#: src/pages/Vote/styled.tsx
msgid "Queued"
msgstr "antri"
msgstr "Mengantri"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Rates"
msgstr "Tarif"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Baca lebih lajut"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Baca selengkapnya tentang UNI"
@@ -1368,6 +1384,7 @@ msgstr "Menghapus {0} {1} dan {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Membatasi swap hanya untuk pasangan langsung."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1466,7 +1483,7 @@ msgstr "Langkah 1. Dapatkan token Likuiditas UNI-V2"
#: src/state/governance/hooks.ts
msgid "Submitted new proposal"
msgstr "Usulan baru yang diajukan"
msgstr "Proposal baru diajukan"
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Submitting Proposal"
@@ -1480,6 +1497,10 @@ msgstr "Mengirim Suara"
msgid "Succeeded"
msgstr "Berhasil"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Berhasil"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Pasokan"
@@ -1515,7 +1536,7 @@ msgstr "Terima kasih telah menjadi bagian dari komunitas Uniswap <0/>"
#: src/components/FeeSelector/index.tsx
msgid "The % you will earn in fees."
msgstr "% yang akan Anda peroleh dalam biaya."
msgstr "% yang akan Anda peroleh dalam bentuk biaya."
#: src/hooks/useSwapCallback.ts
msgid "The Uniswap invariant x*y=k was not satisfied by the swap. This usually means one of the tokens you are swapping incorporates custom behavior on transfer."
@@ -1535,7 +1556,7 @@ msgstr "Token output tidak dapat ditransfer. Mungkin ada masalah dengan token ou
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Token keluaran tidak dapat ditransfer. Mungkin ada masalah dengan token keluaran. Catatan: biaya transfer dan token rebase tidak sesuai dengan Uniswap V3."
msgstr "Output token tidak dapat ditransfer. Mungkin ada masalah dengan output token. Catatan: biaya transfer dan token rebase tidak sesuai dengan Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
@@ -1564,19 +1585,19 @@ msgstr "Token ini biasanya dipasangkan dengan token lain."
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
msgid "This is an alpha release of Uniswap on the {0} network."
msgstr "Ini adalah rilis alfa Uniswap di jaringan {0}"
msgstr "Ini adalah rilisan alpha dari Uniswap pada jaringan {0}."
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "This is an alpha release of Uniswap on the {0} network. You must bridge L1 assets to the network to swap them."
msgstr "Ini adalah rilis alfa Uniswap di jaringan {0} Anda harus menjembatani aset L1 ke jaringan untuk menukarnya."
msgstr "Ini adalah rilisan alpha dari Uniswap pada jaringan {0}. Anda harus menjembatani aset L1 ke jaringan untuk menukarnya."
#: src/pages/AddLiquidity/index.tsx
msgid "This pool must be initialized before you can add liquidity. To initialize, select a starting price for the pool. Then, enter your liquidity price range and deposit amount. Gas fees will be higher than usual due to the initialization transaction."
msgstr "Kumpulan ini harus diinisialisasi sebelum Anda dapat menambahkan likuiditas. Untuk menginisialisasi, pilih harga awal untuk kumpulan. Kemudian, masukkan kisaran harga likuiditas dan jumlah deposit Anda. Biaya gas akan lebih tinggi dari biasanya karena transaksi inisialisasi."
msgstr "Pool ini harus diinisialisasi sebelum Anda dapat menambahkan likuiditas. Untuk menginisialisasi, pilih harga awal untuk pool. Kemudian, masukkan kisaran harga likuiditas dan jumlah deposit Anda. Biaya gas akan lebih tinggi dari biasanya karena transaksi inisialisasi."
#: src/pages/AddLiquidity/index.tsx
msgid "This pool must be initialized on {0} before you can add liquidity. To initialize, select a starting price for the pool. Then, enter your liquidity price range and deposit amount."
msgstr "Kumpulan ini harus diinisialisasi pada {0} sebelum Anda dapat menambahkan likuiditas. Untuk menginisialisasi, pilih harga awal untuk kumpulan. Kemudian, masukkan kisaran harga likuiditas dan jumlah deposit Anda."
msgstr "Pool ini harus diinisialisasi pada {0} sebelum Anda dapat menambahkan likuiditas. Untuk menginisialisasi, pilih harga awal untuk kumpulan. Kemudian, masukkan kisaran harga likuiditas dan jumlah deposit Anda."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
@@ -1637,10 +1658,12 @@ msgstr "Total deposit"
msgid "Total deposits"
msgstr "Jumlah simpanan"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Pengaturan Transaksi"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Pengaturan Transaksi"
msgid "Transaction Submitted"
msgstr "Transaksi Dikirim"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaksi selesai pada"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Batas waktu transaksi"
@@ -1709,7 +1736,7 @@ msgstr "Tidak diklaim:"
#: src/pages/Vote/styled.tsx
msgid "Undetermined"
msgstr "Yg tak dpt ditentukan"
msgstr "Tidak dapat ditentukan"
#: src/pages/Vote/index.tsx
msgid "Uniswap Governance"
@@ -1826,6 +1853,7 @@ msgstr "Lihat di Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Lihat di Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Beri suara melawan usulan {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Beri suara untuk usulan {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Pilih untuk abstain pada proposal {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Voting berakhir {0}"
@@ -2225,11 +2258,11 @@ msgstr "{0}%"
#: src/components/FeeSelector/index.tsx
msgid "{0}% fee tier"
msgstr "tingkat biaya {0}"
msgstr "tingkat biaya {0}%"
#: src/components/FeeSelector/index.tsx
msgid "{0}% select"
msgstr "{0}% pilih"
msgstr "{0}% memilih"
#: src/pages/Earn/Manage.tsx
msgid "{0}-{1} Liquidity Mining"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: it_IT\n"
"Language-Team: Italian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: it\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: it\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Italian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(cancella tutto)"
msgid "(edit)"
msgstr "(modifica)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Rimuovi invio"
@@ -412,6 +408,7 @@ msgstr "Cancella Tutto"
msgid "Clear all"
msgstr "Cancella tutto"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Chiudi"
@@ -483,6 +480,10 @@ msgstr "Conferma lo scambio"
msgid "Confirm this transaction in your wallet"
msgstr "Conferma questa transazione nel tuo portafoglio"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Conferma transazione nel portafoglio"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Inserisci la posizione della lista valida"
msgid "Enter valid token address"
msgstr "Inserisci un indirizzo di token valido"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Intervallo selezionato non valido. Il prezzo minimo deve essere inferior
msgid "Invalid recipient"
msgstr "Destinatario non valido"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "linguaggio"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Impara"
@@ -1011,6 +1017,10 @@ msgstr "Max:"
msgid "Maximum sent"
msgstr "Massimo inviato"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menù"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Oops! Si è verificato un errore sconosciuto. Si prega di aggiornare la pagina, o visitare da un altro browser o dispositivo."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Ottimismo Tempi di inattività programmati"
msgid "Optimism Planned Downtime"
msgstr "L'ottimismo ha pianificato i tempi di inattività"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "L'ottimismo prevede alcuni tempi di inattività programmati nel prossimo futuro. <0>Leggi di più.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "L'ottimismo prevede tempi di fermo pianificati nel prossimo futuro. Possono verificarsi anche tempi di inattività non pianificati. Mentre la rete è inattiva, non verranno generate commissioni e non sarai in grado di rimuovere la liquidità. <0>Leggi di più.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "In coda"
msgid "Rates"
msgstr "Tariffe"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Leggi di più"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Leggi tutto su UNI"
@@ -1368,6 +1384,7 @@ msgstr "Rimozione di {0} {1} e {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Limita gli swap solo alle coppie dirette."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Invio del voto"
msgid "Succeeded"
msgstr "Successo"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Successo"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Fornitura"
@@ -1637,10 +1658,12 @@ msgstr "Totale depositato"
msgid "Total deposits"
msgstr "Depositi totali"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Impostazioni della transazione"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Impostazioni della transazione"
msgid "Transaction Submitted"
msgstr "Transazione Inviata"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transazione completata in"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Termine transazione"
@@ -1826,6 +1853,7 @@ msgstr "Visualizza su Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Visualizza su Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Vota contro la proposta {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Vota la proposta {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Vota per l'astensione sulla proposta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Votazione terminata {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: ja_JP\n"
"Language-Team: Japanese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ja\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ja\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Japanese\n"
"PO-Revision-Date: 2021-07-14 07:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(すべてクリア)"
msgid "(edit)"
msgstr "(編集)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- 送信を削除"
@@ -105,7 +101,7 @@ msgstr "V3に<0>戻る</0>"
#: src/pages/AddLiquidity/index.tsx
msgid "<0>Current Price:</0><1><2/></1><3>{0} per {1}</3>"
msgstr "<0>現在の価格:</0> <1> <2 /></1> <3>{0} あたり {1}</3>"
msgstr "<0>現在の価格:</0><1><2/></1><3>{0} / {1}</3>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
@@ -412,6 +408,7 @@ msgstr "すべてクリア"
msgid "Clear all"
msgstr "すべてクリア"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "閉じる"
@@ -483,6 +480,10 @@ msgstr "スワップの確認"
msgid "Confirm this transaction in your wallet"
msgstr "ウォレットで取引を確認する"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "ウォレットで取引を確認する"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -705,7 +706,7 @@ msgstr "受取人を入力"
#: src/components/TransactionSettings/index.tsx
msgid "Enter a valid slippage percentage"
msgstr "有効なスリッページの値を入力してください"
msgstr "有効なスリッページの値を入力してください"
#: src/components/claim/AddressClaimModal.tsx
msgid "Enter an address to trigger a UNI claim. If the address has any claimable UNI it will be sent to them on submission."
@@ -729,6 +730,7 @@ msgstr "有効なリストの位置を入力ください"
msgid "Enter valid token address"
msgstr "有効なトークンアドレスを入力してください"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -757,7 +759,7 @@ msgstr "あなたが利用していないトークンリストからの検索結
#: src/components/Settings/index.tsx
msgid "Expert mode turns off the confirm transaction prompt and allows high slippage trades that often result in bad rates and lost funds."
msgstr "エキスパートモードは取引確認画面をスキップし、不利な価格や資金を失う可能性のある高スリッページ取引を許可します。"
msgstr "エキスパートモードは取引確認画面をスキップし、不利な価格や資金を失う可能性のある高スリッページ取引を許可します。"
#: src/pages/Vote/styled.tsx
msgid "Expired"
@@ -913,6 +915,10 @@ msgstr "設定した価格範囲が間違っています。最小価格は最大
msgid "Invalid recipient"
msgstr "受け取りアドレスが無効です"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "言語"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "資料"
@@ -1011,6 +1017,10 @@ msgstr "最大:"
msgid "Maximum sent"
msgstr "最大売却数"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "メニュー"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "不明なエラーが発生しました。ページを更新するか、別のブラウザまたはデバイスからアクセスしてください。"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "楽観的なスケジュールされたダウンタイム"
msgid "Optimism Planned Downtime"
msgstr "Optimismの予定されているダウンタイム"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimismは、近い将来、予定されたダウンタイムが発生すると予想しています。 <0>続きを読む</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismは、近い将来に計画されたダウンタイムを予想しています。計画外のダウンタイムも発生する可能性があります。ネットワークがダウンしている間、手数料は発生せず、流動性を取り除くことはできません。 <0>続きを読む</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1295,12 +1305,18 @@ msgstr "提案者"
#: src/pages/Vote/styled.tsx
msgid "Queued"
msgstr "キューに入れられました"
msgstr "処理待ち"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Rates"
msgstr "レート"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "続きを読む"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "UNIについてもっと見る"
@@ -1323,7 +1339,7 @@ msgstr "最近の取引"
#: src/components/AddressInputPanel/index.tsx
msgid "Recipient"
msgstr "受信者"
msgstr "受取人"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1368,6 +1384,7 @@ msgstr "{0} {1} と {2} {3} を解除中"
msgid "Restricts swaps to direct pairs only."
msgstr "スワップをダイレクトペアのみに制限します。"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1437,7 +1454,7 @@ msgstr "Portisを表示"
#: src/pages/Pool/index.tsx
msgid "Show closed positions"
msgstr "閉じた位置を表示する"
msgstr "決済したポジションを表示"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Simple"
@@ -1446,7 +1463,7 @@ msgstr "シンプル"
#: src/components/TransactionSettings/index.tsx
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Slippage tolerance"
msgstr "スリッページの許容範囲"
msgstr "スリッページの許容範囲"
#: src/components/swap/UnsupportedCurrencyFooter.tsx
msgid "Some assets are not available through this interface because they may not work well with the smart contracts or we are unable to allow trading for legal reasons."
@@ -1458,7 +1475,7 @@ msgstr "何らかの問題が発生しました"
#: src/components/PositionList/index.tsx
msgid "Status"
msgstr "状態"
msgstr "ステータス"
#: src/pages/Earn/Manage.tsx
msgid "Step 1. Get UNI-V2 Liquidity tokens"
@@ -1480,6 +1497,10 @@ msgstr "投票を送信中"
msgid "Succeeded"
msgstr "成功"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "成功"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "追加"
@@ -1507,7 +1528,7 @@ msgstr "{0} {1} を {2} {3} にスワップ中"
#: src/components/Header/NetworkCard.tsx
msgid "Switch to L1 (Mainnet)"
msgstr "L1メインネットに切り替えます"
msgstr "L1メインネットに切り替え"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
@@ -1637,10 +1658,12 @@ msgstr "合計預入数量"
msgid "Total deposits"
msgstr "合計預入額"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "取引設定"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "取引設定"
msgid "Transaction Submitted"
msgstr "取引が送信されました"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "で完了したトランザクション"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "取引期限"
@@ -1768,7 +1795,7 @@ msgstr "サポートされていないアセット"
#: src/state/governance/hooks.ts
msgid "Untitled"
msgstr "無題"
msgstr "タイトル未設定"
#: src/pages/Swap/index.tsx
msgid "Unwrap"
@@ -1801,7 +1828,7 @@ msgstr "V3"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "V3 {0} Price:"
msgstr "v3 {0} 価格:"
msgstr "V3での {0} 価格:"
#: src/components/Header/UniBalanceContent.tsx
msgid "View UNI Analytics"
@@ -1821,11 +1848,12 @@ msgstr "リストを表示"
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "View on Etherscan"
msgstr "Etherscanで表示"
msgstr "Etherscanで見る"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "エクスプローラーで見る"
@@ -1858,6 +1886,11 @@ msgstr "提案 {proposalId} に反対票を入れる"
msgid "Vote for proposal {proposalId}"
msgstr "提案 {proposalId} に賛成票を入れる"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "{proposalId}を棄権するために投票する"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "{0} に投票は終了しました"
@@ -1960,7 +1993,7 @@ msgstr "プールにはまだ流動性がありません。"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
msgid "You must bridge L1 assets to the network to use them."
msgstr "L1アセットを使用するには、L1アセットをネットワークブリッジする必要があります。"
msgstr "レイヤー1の資産を使用するには、ネットワークブリッジする必要があります。"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "You must connect an account."
@@ -2241,7 +2274,7 @@ msgstr "{0}/{1} LP NFT"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "{0}/{1} LP Tokens"
msgstr "{0}/{1} 流動性トークン"
msgstr "{0}/{1} LPトークン"
#: src/components/claim/ClaimModal.tsx
msgid "{SOCKS_AMOUNT} UNI"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: ko_KR\n"
"Language-Team: Korean\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ko\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ko\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Korean\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(모두 지우기)"
msgid "(edit)"
msgstr "(편집)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "-보내기 제거"
@@ -412,6 +408,7 @@ msgstr "모두 지우기"
msgid "Clear all"
msgstr "모두 지우기"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "닫기"
@@ -483,6 +480,10 @@ msgstr "스왑 확인"
msgid "Confirm this transaction in your wallet"
msgstr "지갑에서 이 거래를 확인하세요"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "지갑에서 거래 확인"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "유효한 목록 위치를 입력하세요."
msgid "Enter valid token address"
msgstr "유효한 토큰 주소를 입력하세요."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "잘못된 범위를 선택했습니다. 최소 가격은 최대 가격
msgid "Invalid recipient"
msgstr "잘못된 수령인"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "언어"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "학습"
@@ -1011,6 +1017,10 @@ msgstr "최대 :"
msgid "Maximum sent"
msgstr "최대 이체"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "메뉴"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "죄송합니다! 알 수없는 오류가 발생했습니다. 페이지를 새로 고침하거나 다른 브라우저 또는 기기에서 방문하세요."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "낙관주의 예정된 다운타임"
msgid "Optimism Planned Downtime"
msgstr "낙관적 계획된 다운타임"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "낙관론은 가까운 장래에 예정된 가동 중지 시간을 예상합니다. <0>더 읽어보세요.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "낙관론은 가까운 장래에 계획된 다운타임을 예상합니다. 계획되지 않은 다운타임도 발생할 수 있습니다. 네트워크가 다운되는 동안 수수료가 생성되지 않으며 유동성을 제거할 수 없습니다. <0>더 읽어보세요.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "대기 중"
msgid "Rates"
msgstr "요율"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "더 읽기"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "UNI에 대해 자세히 알아보기"
@@ -1368,6 +1384,7 @@ msgstr "{0} {1} 및 {2} {3} 제거 중"
msgid "Restricts swaps to direct pairs only."
msgstr "스왑을 직접 쌍으로만 제한합니다."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "투표 제출"
msgid "Succeeded"
msgstr "성공"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "성공"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "공급"
@@ -1637,10 +1658,12 @@ msgstr "총 입금"
msgid "Total deposits"
msgstr "총 입금"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "거래 설정"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "거래 설정"
msgid "Transaction Submitted"
msgstr "제출된 거래"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "거래 완료"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "거래 마감 시간"
@@ -1826,6 +1853,7 @@ msgstr "Etherscan에서보기"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Explorer에서 보기"
@@ -1858,6 +1886,11 @@ msgstr "{proposalId} 제안에 반대 투표"
msgid "Vote for proposal {proposalId}"
msgstr "{proposalId} 제안에 투표"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "{proposalId}에 대한 기권 투표"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "투표 종료 {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: nl_NL\n"
"Language-Team: Dutch\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: nl\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: nl\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Dutch\n"
"PO-Revision-Date: 2021-07-13 20:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(alles wissen)"
msgid "(edit)"
msgstr "(bewerken)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Verzenden verwijderen"
@@ -412,6 +408,7 @@ msgstr "Alles wissen"
msgid "Clear all"
msgstr "Alles wissen"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Sluiten"
@@ -483,6 +480,10 @@ msgstr "Bevestig wissel"
msgid "Confirm this transaction in your wallet"
msgstr "Bevestig deze transactie in uw portemonnee"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Bevestig transactie in portemonnee"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Voer een geldige lijstlocatie in"
msgid "Enter valid token address"
msgstr "Voer geldig tokenadres in"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ongeldig bereik geselecteerd. De minimumprijs moet lager zijn dan de max
msgid "Invalid recipient"
msgstr "Ongeldige ontvanger"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Taal"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Leren"
@@ -1011,6 +1017,10 @@ msgstr "Max:"
msgid "Maximum sent"
msgstr "Maximaal verzonden"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menu"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Oeps! Er is een onbekende fout opgetreden. Ververs de pagina of bezoek vanaf een andere browser of apparaat."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme geplande uitvaltijden"
msgid "Optimism Planned Downtime"
msgstr "Optimisme Geplande Downtime"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimisme verwacht in de nabije toekomst enige geplande downtime. <0>Lees meer.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimisme verwacht geplande stilstand in de nabije toekomst. Er kan ook ongeplande uitvaltijd optreden. Zolang het netwerk niet beschikbaar is, worden er geen kosten gegenereerd en kunt u geen liquiditeit verwijderen. <0>Lees meer.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "In de wachtrij"
msgid "Rates"
msgstr "Tarieven"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Lees verder"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Lees meer over UNI"
@@ -1368,6 +1384,7 @@ msgstr "Verwijderen van {0} {1} en {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Beperkt swaps alleen tot directe paren."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Indienen van stem"
msgid "Succeeded"
msgstr "Geslaagd"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Succes"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Levering"
@@ -1637,10 +1658,12 @@ msgstr "Totaal gestort"
msgid "Total deposits"
msgstr "Totale stortingen"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transactie-instellingen"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transactie-instellingen"
msgid "Transaction Submitted"
msgstr "Transactie verzonden"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transactie voltooid in"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Transactiedeadline"
@@ -1826,6 +1853,7 @@ msgstr "Bekijk op Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Weergeven op Verkenner"
@@ -1858,6 +1886,11 @@ msgstr "Stem tegen voorstel {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Stem op voorstel {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Stem onthouding op voorstel {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Stemmen beëindigd {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: no_NO\n"
"Language-Team: Norwegian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: no\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: no\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Norwegian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(fjern alle)"
msgid "(edit)"
msgstr "(rediger)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Fjern sending"
@@ -412,6 +408,7 @@ msgstr "Fjern alle"
msgid "Clear all"
msgstr "Fjern alle"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Lukk"
@@ -483,6 +480,10 @@ msgstr "Bekreft bytte"
msgid "Confirm this transaction in your wallet"
msgstr "Bekreft denne transaksjonen i lommeboken din"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Bekreft transaksjonen i lommeboken"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Oppgi gyldig plassering for listen"
msgid "Enter valid token address"
msgstr "Oppgi gyldig pollettadresse"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ugyldig område valgt. Minsteprisen må være lavere enn maks prisen."
msgid "Invalid recipient"
msgstr "Ugyldig mottaker"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Språk"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Finn ut mer"
@@ -1011,6 +1017,10 @@ msgstr "Maks:"
msgid "Maximum sent"
msgstr "Maksimum sendt"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Meny"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Det oppstod en ukjent feil. Oppdater siden, eller besøk fra en annen nettleser eller enhet."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimisme Planlagte nedetid"
msgid "Optimism Planned Downtime"
msgstr "Optimisme planlagt nedetid"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimisme forventer noe planlagt nedetid i nær fremtid. <0> Les mer.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimisme forventer planlagt nedetid i nær fremtid. Uplanlagt nedetid kan også forekomme. Mens nettverket er nede, genereres det ikke gebyrer, og du kan ikke fjerne likviditet. <0> Les mer.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "I kø"
msgid "Rates"
msgstr "Priser"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Les mer"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Les mer om UNI"
@@ -1368,6 +1384,7 @@ msgstr "Fjerner {0} {1} og {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Begrenset byttebytte til bare direkte par par."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Sender inn stemme"
msgid "Succeeded"
msgstr "Lyktes"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Suksess"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Levering"
@@ -1637,10 +1658,12 @@ msgstr "Totalt avsatt"
msgid "Total deposits"
msgstr "Totale innskudd"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transaksjonsinnstillinger"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transaksjonsinnstillinger"
msgid "Transaction Submitted"
msgstr "Transaksjon sendt"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaksjonen fullført i"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Transaksjons frist"
@@ -1826,6 +1853,7 @@ msgstr "Utsikt på Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Se på Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Stem mot forslag {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Stem på forslag {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Stem for å avstå fra forslag {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Stemmegivningen avsluttet {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: pl_PL\n"
"Language-Team: Polish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: pl\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: pl\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Polish\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(wyczyść wszystkie)"
msgid "(edit)"
msgstr "(edytować)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Usuń wysłanie"
@@ -412,6 +408,7 @@ msgstr "Wyczyść wszystko"
msgid "Clear all"
msgstr "Wyczyść wszystko"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Zamknij"
@@ -483,6 +480,10 @@ msgstr "Potwierdź zamianę"
msgid "Confirm this transaction in your wallet"
msgstr "Potwierdź tę transakcję w swoim portfelu"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Potwierdź transakcję w portfelu"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Wprowadź poprawną lokalizację listy"
msgid "Enter valid token address"
msgstr "Wprowadź prawidłowy adres tokenu"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Wybrano nieprawidłowy zakres. Minimalna cena musi być niższa niż mak
msgid "Invalid recipient"
msgstr "Nieprawidłowy odbiorca"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Język"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Ucz się"
@@ -1011,6 +1017,10 @@ msgstr "Maks.:"
msgid "Maximum sent"
msgstr "Maksymalna wysłana"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menu"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ups! Wystąpił nieznany błąd. Odśwież stronę lub odwiedź z innej przeglądarki lub urządzenia."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Zaplanowane przestoje"
msgid "Optimism Planned Downtime"
msgstr "Optymizm Planowany przestój"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optymizm spodziewa się w najbliższej przyszłości zaplanowanego przestoju. <0>Czytaj więcej.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optymizm spodziewa się planowanego przestoju w najbliższej przyszłości. Mogą również wystąpić nieplanowane przestoje. Gdy sieć nie działa, opłaty nie będą generowane i nie będziesz w stanie usunąć płynności. <0>Czytaj więcej.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "W kolejce"
msgid "Rates"
msgstr "Stawki"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Czytaj więcej"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Dowiedz się więcej o UNI"
@@ -1368,6 +1384,7 @@ msgstr "Usuwanie {0} {1} i {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Ogranicza swapy tylko do par bezpośrednich."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Wysyłanie głosu"
msgid "Succeeded"
msgstr "Udało się"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Sukces"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Dostawa"
@@ -1637,10 +1658,12 @@ msgstr "Całkowita wpłata"
msgid "Total deposits"
msgstr "Depozyty ogółem"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Ustawienia transakcji"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Ustawienia transakcji"
msgid "Transaction Submitted"
msgstr "Transakcja przesłana"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transakcja zakończona w"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Termin transakcji"
@@ -1826,6 +1853,7 @@ msgstr "Zobacz na Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Zobacz w Eksploratorze"
@@ -1858,6 +1886,11 @@ msgstr "Głosuj przeciwko wnioskowi {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Głosuj na propozycję {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Głosuj za wstrzymaniem się od propozycji {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Głosowanie zakończyło się {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: pt_BR\n"
"Language-Team: Portuguese, Brazilian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: pt\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: pt-BR\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Portuguese, Brazilian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(limpar tudo)"
msgid "(edit)"
msgstr "(editar)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Remover o envio"
@@ -412,6 +408,7 @@ msgstr "Limpar Tudo"
msgid "Clear all"
msgstr "Limpar tudo"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Fechar"
@@ -483,6 +480,10 @@ msgstr "Confirmar a conversão"
msgid "Confirm this transaction in your wallet"
msgstr "Confirmar esta operação na sua carteira"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirme a transação na carteira"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Digite uma localização válida para a lista"
msgid "Enter valid token address"
msgstr "Digite um endereço válido para os tokens"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Faixa selecionada inválida. O preço mín deve ser inferior ao preço m
msgid "Invalid recipient"
msgstr "Destinatário inválido"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Língua"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Aprender"
@@ -1011,6 +1017,10 @@ msgstr "Máx:"
msgid "Maximum sent"
msgstr "Máximo enviado"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Cardápio"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Opa! Ocorreu um erro desconhecido. Atualize a página ou visite-a em outro navegador ou dispositivo."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Tempo de inatividade programado para otimismo"
msgid "Optimism Planned Downtime"
msgstr "Tempo de inatividade planejado para otimismo"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "O otimismo espera algum tempo de inatividade programado em um futuro próximo. <0> Leia mais.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "O otimismo espera um tempo de inatividade planejado em um futuro próximo. Tempo de inatividade não planejado também pode ocorrer. Enquanto a rede estiver desligada, as taxas não serão geradas e você não poderá remover a liquidez. <0> Leia mais.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Na fila"
msgid "Rates"
msgstr "Taxas"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Consulte Mais informação"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Leia mais sobre as UNI"
@@ -1368,6 +1384,7 @@ msgstr "Removendo {0} {1} e {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restringir a conversão somente aos pares diretos."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Enviando Voto"
msgid "Succeeded"
msgstr "Bem sucedido"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Sucesso"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Fornecimento"
@@ -1637,10 +1658,12 @@ msgstr "Total depositado"
msgid "Total deposits"
msgstr "Total dos depósitos"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Configurações das operações"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Configurações das operações"
msgid "Transaction Submitted"
msgstr "Operação enviada"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transação concluída em"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Data-limite da operação"
@@ -1826,6 +1853,7 @@ msgstr "Ver no Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Visualizar no Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Vote contra a proposta {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Votar na proposta {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Vote para se abster na proposta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Votação encerrada {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: pt_PT\n"
"Language-Team: Portuguese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: pt\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: pt-PT\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Portuguese\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(limpar tudo)"
msgid "(edit)"
msgstr "(editar)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Remover o envio"
@@ -412,6 +408,7 @@ msgstr "Limpar Tudo"
msgid "Clear all"
msgstr "Limpar tudo"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Fechar"
@@ -483,6 +480,10 @@ msgstr "Confirmar troca"
msgid "Confirm this transaction in your wallet"
msgstr "Confirmar esta transação na sua carteira"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirme a transação na carteira"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Insira um local de lista válido"
msgid "Enter valid token address"
msgstr "Insira um endereço de token válido"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Intervalo selecionado inválido. O preço mínimo deve ser inferior ao p
msgid "Invalid recipient"
msgstr "Destinatário inválido"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Língua"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Aprender"
@@ -1011,6 +1017,10 @@ msgstr "Máx:"
msgid "Maximum sent"
msgstr "Máximo enviado"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Cardápio"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ups! Ocorreu um erro desconhecido. Por favor, atualize a página, ou visite a partir de outro navegador ou dispositivo."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Tempo de inatividade programado para otimismo"
msgid "Optimism Planned Downtime"
msgstr "Tempo de inatividade planejado para otimismo"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "O otimismo espera algum tempo de inatividade programado em um futuro próximo. <0> Leia mais.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "O otimismo espera um tempo de inatividade planejado em um futuro próximo. Tempo de inatividade não planejado também pode ocorrer. Enquanto a rede estiver desligada, as taxas não serão geradas e você não poderá remover a liquidez. <0> Leia mais.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Na fila"
msgid "Rates"
msgstr "Taxas"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Consulte Mais informação"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Leia mais sobre a UNI"
@@ -1368,6 +1384,7 @@ msgstr "A remover {0} {1} e {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restringe trocas apenas para pares diretos."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "A Enviar Voto"
msgid "Succeeded"
msgstr "Bem sucedido"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Sucesso"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Fornecer"
@@ -1637,10 +1658,12 @@ msgstr "Total depositado"
msgid "Total deposits"
msgstr "Total de depósitos"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Configurações de transação"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Configurações de transação"
msgid "Transaction Submitted"
msgstr "Transação Enviada"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transação concluída em"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Prazo de transação"
@@ -1826,6 +1853,7 @@ msgstr "Ver no Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Ver no Explorador"
@@ -1858,6 +1886,11 @@ msgstr "Votar contra a proposta {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Votar a favor da proposta {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Vote para se abster na proposta {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Votação terminada {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: ro_RO\n"
"Language-Team: Romanian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ro\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ro\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Romanian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(elimină tot)"
msgid "(edit)"
msgstr "(editează)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Elimină trimiterile"
@@ -412,6 +408,7 @@ msgstr "Șterge tot"
msgid "Clear all"
msgstr "Șterge tot"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Închide"
@@ -483,6 +480,10 @@ msgstr "Confirmă Schimbul"
msgid "Confirm this transaction in your wallet"
msgstr "Confirmă această tranzacție în portofelul tău"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Confirmați tranzacția în portofel"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Introdu o listă valabilă a locației"
msgid "Enter valid token address"
msgstr "Introdu o adresă valabilă a grupului"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Interval invalid selectat. Prețul minim trebuie să fie mai mic decât
msgid "Invalid recipient"
msgstr "Destinatar nevalid"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Limba"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Învață"
@@ -1011,6 +1017,10 @@ msgstr "Max:"
msgid "Maximum sent"
msgstr "Maximum trimis"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Meniul"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ups! A avut loc o eroare necunoscută. Reîmprospătează pagina, sau vizitează un alt browser sau dispozitiv."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Timpurile de nefuncționare programate pentru optimism"
msgid "Optimism Planned Downtime"
msgstr "Timp de inactivitate planificat pentru optimism"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimismul așteaptă o perioadă de nefuncționare programată în viitorul apropiat. <0> Citiți mai multe.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismul așteaptă perioade de nefuncționare planificate în viitorul apropiat. Poate să apară și perioade de nefuncționare neplanificate. În timp ce rețeaua este oprită, taxele nu vor fi generate și nu veți putea elimina lichiditatea. <0> Citiți mai multe.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "În așteptare"
msgid "Rates"
msgstr "Tarife"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Citeste mai mult"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Citește mai multe despre UNI"
@@ -1368,6 +1384,7 @@ msgstr "Se elimină {0} {1} și {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Restricționează rocadele doar la perechi directe."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Se trimite votul"
msgid "Succeeded"
msgstr "Reușit"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Succes"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Furnizare"
@@ -1637,10 +1658,12 @@ msgstr "Total depozitat"
msgid "Total deposits"
msgstr "Depozite totale"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Setări Tranzacție"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Setări Tranzacție"
msgid "Transaction Submitted"
msgstr "Tranzacție Trimisă"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Tranzacție finalizată în"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Termen limită tranzacție"
@@ -1826,6 +1853,7 @@ msgstr "Vizualizare pe Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Vizualizează pe Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Votează împotriva propunerii {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Votează pentru propunerea {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Votați pentru a vă abține la propunerea {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Votarea s-a încheiat {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-13 14:04\n"
"Last-Translator: \n"
"Language: ru_RU\n"
"Language-Team: Russian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: ru\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: ru\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Russian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(очистить всё)"
msgid "(edit)"
msgstr "(изменить)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Удалить отправку"
@@ -412,6 +408,7 @@ msgstr "Очистить всё"
msgid "Clear all"
msgstr "Очистить всё"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Закрыть"
@@ -464,7 +461,7 @@ msgstr "Подтвердить"
#: src/pages/AddLiquidity/index.tsx
msgid "Confirm Create"
msgstr "Подтвердите создание"
msgstr "Подтвердить создание"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Confirm Supply"
@@ -483,6 +480,10 @@ msgstr "Подтвердить обмен"
msgid "Confirm this transaction in your wallet"
msgstr "Подтвердите эту транзакцию в своём кошельке"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Подтвердите транзакцию в кошельке"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -584,7 +585,7 @@ msgstr "Текущая цена {0}:"
#: src/components/Menu/index.tsx
msgid "Dark Theme"
msgstr "Темная тема"
msgstr "Тёмная тема"
#: src/pages/Vote/styled.tsx
msgid "Defeated"
@@ -729,6 +730,7 @@ msgstr "Введите правильное расположение списк
msgid "Enter valid token address"
msgstr "Введите правильный адрес токена"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -798,7 +800,7 @@ msgstr "Полный диапазон"
#: src/pages/AddLiquidity/index.tsx
msgid "Full range positions may earn less fees than concentrated positions. Learn more <0>here</0>."
msgstr "Позиции полного диапазона могут приносить меньше комиссионных, чем позиции концентрированных. Подробнее <0> здесь</0> ."
msgstr "Позиции полного диапазона могут зарабатывать меньше комиссий, чем концентрированные позиции. Узнайте подробнее <0> здесь</0>."
#: src/components/ErrorBoundary/index.tsx
msgid "Get support on Discord"
@@ -913,13 +915,17 @@ msgstr "Выбран неверный диапазон. Минимальная
msgid "Invalid recipient"
msgstr "Неверный получатель"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Язык"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Узнать больше"
#: src/pages/Pool/CTACards.tsx
msgid "Learn about providing liquidity"
msgstr "Узнайте о предоставлении ликвидности"
msgstr "Узнать подробнее о предоставлении ликвидности"
#: src/components/Header/NetworkCard.tsx
msgid "Learn more"
@@ -1011,6 +1017,10 @@ msgstr "Макс.:"
msgid "Maximum sent"
msgstr "Максимально к отправлению"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Меню"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,20 +1141,20 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ой! Произошла неизвестная ошибка. Пожалуйста, обновите страницу или откройте из другого браузера или с другого устройства."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Перерывы в работе Optimism"
msgid "Optimism Planned Downtime"
msgstr "Плановые перерывы в работе Optimism"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "В ближайшее время ожидается запланированный перерыв в работе Optimism. <0>Узнать подробности.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "В ближайшее время ожидается плановый перерыв в работе Optimism. Также возможны внезапные перерывы в работе. Когда сеть не работает, комиссии не начисляются, а ликвидность невозможно удалить. <0>Подробнее.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
msgstr "Оптимистичный Etherscan"
msgstr "Etherscan сети Optimism"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic L2 Gateway"
msgstr "Оптимистичный шлюз L2"
msgstr "L2-шлюз в Optimism"
#: src/components/Badge/RangeBadge.tsx
msgid "Out of range"
@@ -1177,7 +1187,7 @@ msgstr "Ожидает"
#: src/components/SearchModal/ManageLists.tsx
msgid "Please confirm you would like to remove this list by typing REMOVE"
msgstr "Подтвердите, что вы хотите удалить этот список, набрав УДАЛИТЬ"
msgstr "Чтобы подтвердить, что вы хотите удалить этот список, наберите УДАЛИТЬ"
#: src/components/vote/ProposalEmptyState.tsx
msgid "Please connect to Layer 1 Ethereum"
@@ -1301,6 +1311,12 @@ msgstr "В очереди"
msgid "Rates"
msgstr "Тарифы"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Узнать подробнее"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Подробнее о UNI"
@@ -1368,6 +1384,7 @@ msgstr "Удаление {0} {1} и {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Производить обмен только через прямые пары."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Отправка голоса"
msgid "Succeeded"
msgstr "Успешно"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Успешно"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Внести"
@@ -1572,11 +1593,11 @@ msgstr "Это альфа-версия Uniswap в сети {0}. Вам нужн
#: src/pages/AddLiquidity/index.tsx
msgid "This pool must be initialized before you can add liquidity. To initialize, select a starting price for the pool. Then, enter your liquidity price range and deposit amount. Gas fees will be higher than usual due to the initialization transaction."
msgstr "Этот пул необходимо инициализировать, прежде чем вы сможете добавить ликвидность. Для инициализации выберите начальную цену для пула. Затем введите диапазон цен ликвидности и сумму депозита. Плата за газ будет выше, чем обычно, из-за транзакции инициализации."
msgstr "Этот пул необходимо инициализировать, прежде чем вы сможете добавить ликвидность. Для инициализации выберите начальную цену для пула. Затем введите диапазон цен для ликвидности и сумму депозита. Плата за газ будет выше, чем обычно, из-за инициализирующей транзакции."
#: src/pages/AddLiquidity/index.tsx
msgid "This pool must be initialized on {0} before you can add liquidity. To initialize, select a starting price for the pool. Then, enter your liquidity price range and deposit amount."
msgstr "Этот пул должен быть инициализирован на {0} прежде чем вы сможете добавить ликвидность. Для инициализации выберите начальную цену для пула. Затем введите диапазон цен ликвидности и сумму депозита."
msgstr "Этот пул необходимо инициализировать в {0}, прежде чем вы сможете добавить ликвидность. Для инициализации выберите начальную цену для пула. Затем введите диапазон цен для ликвидности и сумму депозита."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
@@ -1637,10 +1658,12 @@ msgstr "Всего внесено"
msgid "Total deposits"
msgstr "Всего внесено"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Настройки транзакций"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Настройки транзакций"
msgid "Transaction Submitted"
msgstr "Транзакция отправлена"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Транзакция завершена за"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Cрок действия транзакции"
@@ -1826,6 +1853,7 @@ msgstr "Посмотреть на Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Просмотреть в обозревателе"
@@ -1858,6 +1886,11 @@ msgstr "Проголосовать против предложения {proposal
msgid "Vote for proposal {proposalId}"
msgstr "Проголосовать за предложение {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Воздержаться при голосовании по предложению {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Голосование закончилось {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: sr_SP\n"
"Language-Team: Serbian (Cyrillic)\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: sr\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: sr\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Serbian (Cyrillic)\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(обриши све)"
msgid "(edit)"
msgstr "(уреди)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Уклони слање"
@@ -412,6 +408,7 @@ msgstr "Обриши све"
msgid "Clear all"
msgstr "Обриши све"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Затвори"
@@ -483,6 +480,10 @@ msgstr "Потврдите размену"
msgid "Confirm this transaction in your wallet"
msgstr "Потврдите ову трансакцију у новчанику"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Потврдите трансакцију у новчанику"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Унесите важећи списак локација"
msgid "Enter valid token address"
msgstr "Унесите важећу адресу токена"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Изабран је неважећи опсег. Минимална це
msgid "Invalid recipient"
msgstr "Неважећи прималац"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Језик"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Научи"
@@ -1011,6 +1017,10 @@ msgstr "Макс:"
msgid "Maximum sent"
msgstr "Максимално послато"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Мени"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Упс! Дошло је до непознате грешке. Освежите страницу или је посетите из другог прегледача или уређаја."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Оптимизам заказани застоји"
msgid "Optimism Planned Downtime"
msgstr "Оптимизам планирано време застоја"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Оптимизам очекује предвиђени застој у блиској будућности. <0> Прочитајте више.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Оптимизам очекује планиране застоје у блиској будућности. Може доћи и до непланираних застоја. Док је мрежа у квару, накнаде се неће генерисати и нећете моћи да уклоните ликвидност. <0> Прочитајте више.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "У реду"
msgid "Rates"
msgstr "Стопе"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Опширније"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Прочитајте више о UNI-ју"
@@ -1368,6 +1384,7 @@ msgstr "Уклањање {0} {1} и {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Ограничава замене само на директне парове."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Слање гласа"
msgid "Succeeded"
msgstr "Успео"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Успех"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Снабдевање"
@@ -1637,10 +1658,12 @@ msgstr "Укупно депоновано"
msgid "Total deposits"
msgstr "Укупни депозити"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Поставке трансакције"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Поставке трансакције"
msgid "Transaction Submitted"
msgstr "Трансакција је предата"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Трансакција је завршена у"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Крајњи рок за трансакцију"
@@ -1826,6 +1853,7 @@ msgstr "Поглед на Етхерсцан-у"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Поглед на Екплореру"
@@ -1858,6 +1886,11 @@ msgstr "Гласајте против предлога {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Гласајте за предлог {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Гласајте за уздржавање по предлогу {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Гласање се завршило {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: sv_SE\n"
"Language-Team: Swedish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: sv\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: sv-SE\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Swedish\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(rensa alla)"
msgid "(edit)"
msgstr "(redigera)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Ta bort sändning"
@@ -412,6 +408,7 @@ msgstr "Rensa alla"
msgid "Clear all"
msgstr "Rensa alla"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Stäng"
@@ -483,6 +480,10 @@ msgstr "Bekräfta byte"
msgid "Confirm this transaction in your wallet"
msgstr "Bekräfta transaktionen i din plånbok"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Bekräfta transaktionen i plånboken"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Ange giltig listplats"
msgid "Enter valid token address"
msgstr "Ange giltig tokenadress"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Ogiltigt intervall valt. Minimipriset måste vara lägre än maxpriset."
msgid "Invalid recipient"
msgstr "Ogiltig mottagare"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Språk"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Lär dig"
@@ -1011,6 +1017,10 @@ msgstr "Högst:"
msgid "Maximum sent"
msgstr "Maximalt skickat"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Meny"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Hoppsan! Ett okänt fel inträffade. Uppdatera sidan eller använd en annan webbläsare eller enhet."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Optimism schemalagda stilleståndstider"
msgid "Optimism Planned Downtime"
msgstr "Optimism planerad driftstopp"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Optimism förväntar sig en viss schemalagd driftstopp inom en snar framtid. <0> Läs mer.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Optimismen förväntar sig planerad driftstopp inom en snar framtid. Oplanerad stillestånd kan också förekomma. Medan nätverket är nere genereras inte avgifter och du kommer inte att kunna ta bort likviditet. <0> Läs mer.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "Kö"
msgid "Rates"
msgstr "Kurser"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Läs mer"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Läs mer om UNI"
@@ -1368,6 +1384,7 @@ msgstr "Tar bort {0} {1} och {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Begränsar byten till direkta par."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Skickar röstning"
msgid "Succeeded"
msgstr "Lyckades"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Framgång"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Tillgång"
@@ -1637,10 +1658,12 @@ msgstr "Totalt insatt"
msgid "Total deposits"
msgstr "Summa insättningar"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Transaktionsinställningar"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Transaktionsinställningar"
msgid "Transaction Submitted"
msgstr "Transaktion skickad"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Transaktionen slutfördes"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Tidsfrist för transaktion"
@@ -1826,6 +1853,7 @@ msgstr "Visa på Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Visa i Utforskare"
@@ -1858,6 +1886,11 @@ msgstr "Rösta emot förslag {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Rösta för förslag {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Rösta för att avstå från förslag {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Röstningen avslutades {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: tr_TR\n"
"Language-Team: Turkish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: tr\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: tr\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Turkish\n"
"PO-Revision-Date: 2021-07-14 00:38\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(tümünü temizle)"
msgid "(edit)"
msgstr "(düzenle)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Göndermeyi kaldır"
@@ -412,6 +408,7 @@ msgstr "Tümünü Temizle"
msgid "Clear all"
msgstr "Tümünü temizle"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Kapat"
@@ -483,6 +480,10 @@ msgstr "Swap'ı Onayla"
msgid "Confirm this transaction in your wallet"
msgstr "Cüzdanınızda bu işlemi onaylayın"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Cüzdandaki işlemi onaylayın"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Geçerli liste konumu girin"
msgid "Enter valid token address"
msgstr "Geçerli jeton adresini girin"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Geçersiz aralık seçildi. Minimum fiyat, maksimum fiyattan düşük ol
msgid "Invalid recipient"
msgstr "Geçersiz alıcı"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Dil"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Öğren"
@@ -1011,6 +1017,10 @@ msgstr "Maksimum:"
msgid "Maximum sent"
msgstr "Maksimum gönderme"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Menü"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Bilinmeyen bir hata oluştu. Lütfen sayfayı yenileyin veya başka bir tarayıcı ya da cihazdan ziyaret edin."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "İyimserlik Planlı Duruş Süreleri"
msgid "Optimism Planned Downtime"
msgstr "İyimserlik Planlı Kesinti Süresi"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "İyimserlik, yakın gelecekte bazı planlanmış kesintiler beklemektedir. <0>Daha fazlasını okuyun.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "İyimserlik, yakın gelecekte planlı kesintiler beklemektedir. Planlanmamış kesintiler de meydana gelebilir. Ağ kapalıyken ücret alınmayacak ve likiditeyi kaldıramayacaksınız. <0>Daha fazlasını okuyun.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "sıraya alındı"
msgid "Rates"
msgstr "Oranlar"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Daha fazla oku"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "UNI hakkında daha fazla bilgi edinin"
@@ -1368,6 +1384,7 @@ msgstr "{0} {1} ve {2} {3} kaldırılıyor"
msgid "Restricts swaps to direct pairs only."
msgstr "Swap'ları yalnızca doğrudan çiftlerle sınırlar."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Oy Gönderme"
msgid "Succeeded"
msgstr "başarılı"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Başarı"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Kaynak"
@@ -1637,10 +1658,12 @@ msgstr "Toplam yatırılan"
msgid "Total deposits"
msgstr "Toplam mevduat"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "İşlem Ayarları"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "İşlem Ayarları"
msgid "Transaction Submitted"
msgstr "İşlem Gönderildi"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "İşlem tamamlandı"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "İşlem son tarihi"
@@ -1826,6 +1853,7 @@ msgstr "Etherscan üzerinde görüntüle"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Explorer'da Görüntüle"
@@ -1858,6 +1886,11 @@ msgstr "Teklife karşı oy {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Teklife destek oyu {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "{proposalId}önerisinde çekimser oy"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Oylama bitti {0}"

View File

@@ -1,20 +1,20 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-07-13 19:19+0000\n"
"Mime-Version: 1.0\n"
"Project-Id-Version: uniswap-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-09-03 17:08\n"
"Last-Translator: \n"
"Language: uk_UA\n"
"Language-Team: Ukrainian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: uk\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Crowdin-Project: uniswap-interface\n"
"X-Crowdin-Project-ID: 458284\n"
"X-Crowdin-Language: uk\n"
"X-Crowdin-File: en-US.po\n"
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Ukrainian\n"
"PO-Revision-Date: 2021-07-13 20:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -47,10 +47,6 @@ msgstr "(забрати все)"
msgid "(edit)"
msgstr "(редагувати)"
#: src/components/RangeSelector/PresetsButtons.tsx
msgid "+/- {label}%"
msgstr "+/- {label}%"
#: src/pages/Swap/index.tsx
msgid "- Remove send"
msgstr "- Видалити відправку"
@@ -412,6 +408,7 @@ msgstr "Очистити все"
msgid "Clear all"
msgstr "Очистити все"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
msgstr "Закрити"
@@ -483,6 +480,10 @@ msgstr "Підтвердити обмін"
msgid "Confirm this transaction in your wallet"
msgstr "Підтвердьте цю операцію у своєму гаманці"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Confirm transaction in wallet"
msgstr "Підтвердіть транзакцію в гаманці"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/Swap/index.tsx
@@ -729,6 +730,7 @@ msgstr "Введіть дійсне місце списку"
msgid "Enter valid token address"
msgstr "Введіть дійсну адресу токена"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
msgid "Error"
@@ -913,6 +915,10 @@ msgstr "Вибрано недійсний діапазон. Мінімальна
msgid "Invalid recipient"
msgstr "Недійсний одержувач"
#: src/components/Menu/index.tsx
msgid "Language"
msgstr "Мову"
#: src/pages/Pool/index.tsx
msgid "Learn"
msgstr "Ознайомитися"
@@ -1011,6 +1017,10 @@ msgstr "Максимум:"
msgid "Maximum sent"
msgstr "Максимум відправлених"
#: src/components/Menu/index.tsx
msgid "Menu"
msgstr "Меню"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1131,12 +1141,12 @@ msgid "Oops! An unknown error occurred. Please refresh the page, or visit from a
msgstr "Ой! Сталася невідома помилка. Оновіть сторінку або зайдіть з іншого браузера чи пристрою."
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism Scheduled Downtimes"
msgstr "Оптимізм запланованих простоїв"
msgid "Optimism Planned Downtime"
msgstr "Оптимізм запланований час простою"
#: src/components/OptimismDowntimeWarning/index.tsx
msgid "Optimism expects some scheduled downtime in the near future. <0>Read more.</0>"
msgstr "Оптимізм очікує певного запланованого простою найближчим часом. <0> Детальніше.</0>"
msgid "Optimism expects planned downtime in the near future. Unplanned downtime may also occur. While the network is down, fees will not be generated and you will be unable to remove liquidity. <0>Read more.</0>"
msgstr "Оптимізм очікує найближчим часом запланованих простоїв. Також можуть виникнути незаплановані простої. Поки мережа не працює, комісії не будуть генеруватися, і ви не зможете видалити ліквідність. <0> Докладніше.</0>"
#: src/components/Header/NetworkCard.tsx
msgid "Optimistic Etherscan"
@@ -1301,6 +1311,12 @@ msgstr "У черзі"
msgid "Rates"
msgstr "Ставки"
#: src/components/NetworkAlert/AddLiquidityNetworkAlert.tsx
#: src/components/NetworkAlert/MinimalNetworkAlert.tsx
#: src/components/NetworkAlert/NetworkAlert.tsx
msgid "Read more"
msgstr "Читати далі"
#: src/pages/Earn/index.tsx
msgid "Read more about UNI"
msgstr "Дізнатися більше про UNI"
@@ -1368,6 +1384,7 @@ msgstr "Видалення {0} {1} та {2} {3}"
msgid "Restricts swaps to direct pairs only."
msgstr "Обмежує обмін лише прямими парами."
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/pages/CreateProposal/ProposalSubmissionModal.tsx
msgid "Return"
@@ -1480,6 +1497,10 @@ msgstr "Відправка голосу"
msgid "Succeeded"
msgstr "Вдалося"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Success"
msgstr "Успіху"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
msgstr "Пропозиція"
@@ -1637,10 +1658,12 @@ msgstr "Усього внесено"
msgid "Total deposits"
msgstr "Усього внесків"
#: src/components/Settings/index.tsx
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Налаштування транзакцій"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/StakingModal.tsx
@@ -1650,6 +1673,10 @@ msgstr "Налаштування транзакцій"
msgid "Transaction Submitted"
msgstr "Транзакцію надіслано"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Transaction completed in"
msgstr "Транзакція завершена в"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Кінцевий термін транзакції"
@@ -1826,6 +1853,7 @@ msgstr "Переглянути на Etherscan"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Explorer"
msgstr "Переглянути на Explorer"
@@ -1858,6 +1886,11 @@ msgstr "Голосувати проти пропозиції {proposalId}"
msgid "Vote for proposal {proposalId}"
msgstr "Голосувати за пропозицію {proposalId}"
#: src/components/vote/VoteModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Vote to abstain on proposal {proposalId}"
msgstr "Проголосуйте за утримання за пропозицією {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Голосування завершилось {0}"

Some files were not shown because too many files have changed in this diff Show More