diff --git a/apps/cowswap-frontend/.env b/apps/cowswap-frontend/.env index 503696302c..9443c21084 100644 --- a/apps/cowswap-frontend/.env +++ b/apps/cowswap-frontend/.env @@ -133,9 +133,14 @@ INTEGRATION_TESTS_INFURA_KEY= # Path regex (to detect environment) # REACT_APP_PATH_REGEX_ENS="/ipfs" - # CMS base URL # REACT_APP_CMS_BASE_URL=http://localhost:1337/api # Notifications Telegram bot ID # REACT_APP_TG_BOT_ID=3713371337 + +####################################### +# Internationalization +####################################### + +#REACT_APP_LINGUI_INTERNATIONALIZATION=true \ No newline at end of file diff --git a/apps/cowswap-frontend/.gitignore b/apps/cowswap-frontend/.gitignore index 69f3b7876f..be34593219 100644 --- a/apps/cowswap-frontend/.gitignore +++ b/apps/cowswap-frontend/.gitignore @@ -1,13 +1,12 @@ # See https://help.github.com/ignore-files/ for more about ignoring files. -# generated contract types +# generated language types /src/lib/locales/**/*.js /src/lib/locales/**/en-US.po /src/lib/locales/**/pseudo.po /src/locales/**/*.js /src/locales/**/*.ts /src/locales/**/*.json -/src/locales/**/en-US.po /src/locales/**/pseudo.po # dependencies diff --git a/apps/cowswap-frontend/LinguiJestProvider.tsx b/apps/cowswap-frontend/LinguiJestProvider.tsx new file mode 100644 index 0000000000..14c03c0554 --- /dev/null +++ b/apps/cowswap-frontend/LinguiJestProvider.tsx @@ -0,0 +1,17 @@ +import { FC, ReactNode } from 'react' + +import { DEFAULT_LOCALE } from '@cowprotocol/common-const' + +import { i18n } from '@lingui/core' +import { I18nProvider } from '@lingui/react' + +interface ProviderProps { + children: ReactNode +} + +i18n.load(DEFAULT_LOCALE, {}) +i18n.activate(DEFAULT_LOCALE) + +export const LinguiWrapper: FC = ({ children }) => { + return {children} +} diff --git a/apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts b/apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts index 086b7bac64..e97c012248 100644 --- a/apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +++ b/apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts @@ -1,3 +1,5 @@ +import { t } from '@lingui/core/macro' + type ApiActionType = 'get' | 'create' | 'delete' export interface ApiErrorObject { @@ -108,7 +110,7 @@ function _mapActionToErrorDetail(action?: ApiActionType) { console.error( '[OperatorError::_mapActionToErrorDetails] Uncaught error mapping error action type to server error. Please try again later.', ) - return 'Something failed. Please try again later.' + return `Something failed. Please try again later.` } } @@ -144,23 +146,33 @@ export default class OperatorError extends Error { case 404: return this.getErrorMessage(errorObject, action) - case 403: - return `The order cannot be ${action === 'create' ? 'accepted' : 'cancelled'}. Your account is deny-listed.` + case 403: { + const acceptedText = t`accepted` + const cancelledText = t`cancelled` + const statusText = action === 'create' ? acceptedText : cancelledText + return t`The order cannot be ${statusText}. Your account is deny-listed.` + } - case 429: - return `The order cannot be ${ - action === 'create' ? 'accepted. Too many order placements' : 'cancelled. Too many order cancellations' - }. Please, retry in a minute` + case 429: { + const placementsText = t`accepted. Too many order placements` + const cancellationsText = t`cancelled. Too many order cancellations` + const msg = action === 'create' ? placementsText : cancellationsText + return t`The order cannot be ${msg}. Please, retry in a minute` + } case 500: - default: + default: { console.error( `[OperatorError::getErrorFromStatusCode] Error ${ action === 'create' ? 'creating' : 'cancelling' } the order, status code:`, statusCode || 'unknown', ) - return `Error ${action === 'create' ? 'creating' : 'cancelling'} the order` + const creatingText = t`creating` + const cancellingText = t`cancelling` + const verb = action === 'create' ? creatingText : cancellingText + return t`Error ${verb} the order` + } } } constructor(apiError: ApiErrorObject) { diff --git a/apps/cowswap-frontend/src/common/constants/routes.ts b/apps/cowswap-frontend/src/common/constants/routes.ts index 02d303ec2d..6bc36e19fd 100644 --- a/apps/cowswap-frontend/src/common/constants/routes.ts +++ b/apps/cowswap-frontend/src/common/constants/routes.ts @@ -2,6 +2,9 @@ import EXPERIMENT_ICON from '@cowprotocol/assets/cow-swap/experiment.svg' import { isInjectedWidget } from '@cowprotocol/common-utils' import { BadgeTypes } from '@cowprotocol/ui' +import { MessageDescriptor } from '@lingui/core' +import { msg } from '@lingui/core/macro' + export const TRADE_WIDGET_PREFIX = isInjectedWidget() ? '/widget' : '' export const Routes = { @@ -54,25 +57,45 @@ export interface IMenuItem { badgeType?: (typeof BadgeTypes)[keyof typeof BadgeTypes] } -export const MENU_ITEMS: IMenuItem[] = [ - { route: Routes.SWAP, label: 'Swap', description: 'Trade tokens' }, - { route: Routes.LIMIT_ORDER, label: 'Limit', fullLabel: 'Limit order', description: 'Set your own price' }, - { route: Routes.ADVANCED_ORDERS, label: 'TWAP', description: 'Place orders with a time-weighted average price' }, +export interface I18nIMenuItem extends Omit { + label: MessageDescriptor + fullLabel?: MessageDescriptor + description: MessageDescriptor + badge?: MessageDescriptor +} + +export const MENU_ITEMS: I18nIMenuItem[] = [ + { + route: Routes.SWAP, + label: msg`Swap`, + description: msg`Trade tokens`, + }, + { + route: Routes.LIMIT_ORDER, + label: msg`Limit`, + fullLabel: msg`Limit order`, + description: msg`Set your own price`, + }, + { + route: Routes.ADVANCED_ORDERS, + label: msg`TWAP`, + description: msg`Place orders with a time-weighted average price`, + }, ] -export const HOOKS_STORE_MENU_ITEM: IMenuItem = { +export const HOOKS_STORE_MENU_ITEM: I18nIMenuItem = { route: Routes.HOOKS, - label: 'Hooks', - description: 'Powerful tool to generate pre/post interaction for CoW Protocol', + label: msg`Hooks`, + description: msg`Powerful tool to generate pre/post interaction for CoW Protocol`, badgeImage: EXPERIMENT_ICON, badgeType: BadgeTypes.INFORMATION, } -export const YIELD_MENU_ITEM: IMenuItem = { +export const YIELD_MENU_ITEM: I18nIMenuItem = { route: Routes.YIELD, - label: 'Yield', - fullLabel: 'Yield', - description: 'Provide liquidity', - badge: 'New', + label: msg`Yield`, + fullLabel: msg`Yield`, + description: msg`Provide liquidity`, + badge: msg`New`, badgeType: BadgeTypes.ALERT, } diff --git a/apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx b/apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx index 91af1ffbeb..72084f2126 100644 --- a/apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +++ b/apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx @@ -8,6 +8,8 @@ import { ClosableBanner } from '@cowprotocol/ui' import { useIsSmartContractWallet, useWalletInfo } from '@cowprotocol/wallet' import { CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' + import { useIsDarkMode } from 'legacy/state/user/hooks' import { useTradeNavigate } from 'modules/trade' @@ -80,8 +82,8 @@ export function CoWAmmBanner({ isTokenSelectorView }: BannerProps) { diff --git a/apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx b/apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx index be64b5d275..6f4f705fa5 100644 --- a/apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx +++ b/apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx @@ -1,5 +1,7 @@ import { ReactNode } from 'react' +import { Trans } from '@lingui/react/macro' + import { useLocalTimeOffset } from './localTimeOffsetState' import { GlobalWarning } from '../../pure/GlobalWarning' @@ -18,7 +20,10 @@ export function InvalidLocalTimeWarning(): ReactNode | null { return ( - Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time. + + Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's + time. + ) } diff --git a/apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx b/apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx index c0f25c8303..a086729e6d 100644 --- a/apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +++ b/apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx @@ -6,6 +6,9 @@ import { Command } from '@cowprotocol/types' import { ButtonPrimary } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' + import { LegacyConfirmationModalContent } from 'legacy/components/TransactionConfirmationModal/LegacyConfirmationModalContent' import { useRequestOrderCancellation } from 'legacy/state/orders/hooks' @@ -68,7 +71,7 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode { if (cancellationError) { const errorMessage = isRejectRequestProviderError(cancellationError) - ? 'User rejected signing the cancellation' + ? t`User rejected signing the cancellation` : getIsOrderBookTypedError(cancellationError) ? cancellationError.body.description || cancellationError.body.errorType : (getProviderErrorMessage(cancellationError) ?? String(cancellationError)) @@ -86,9 +89,9 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode { Cancelling {ordersCount} orders} - description="Canceling your order" - operationLabel="cancellation" + title={t`Cancelling ${ordersCount} orders`} + description={t`Canceling your order`} + operationLabel={t`cancellation`} /> ) @@ -97,20 +100,24 @@ export function MultipleOrdersCancellationModal(props: Props): ReactNode { return ( (
-

Are you sure you want to cancel {ordersCount} orders?

+

+ Are you sure you want to cancel {ordersCount} orders? +

)} // TODO: Extract nested component outside render function // eslint-disable-next-line react/no-unstable-nested-components bottomContent={() => (
- Request cancellations + + Request cancellations +
)} /> diff --git a/apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx b/apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx index 702f5d5fb5..d2d0479726 100644 --- a/apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +++ b/apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx @@ -2,6 +2,8 @@ import { useState } from 'react' import { CowHookDetails, HookToDappMatch } from '@cowprotocol/hook-dapp-lib' +import { t } from '@lingui/core/macro' +import { Trans, useLingui } from '@lingui/react/macro' import { ChevronDown, ChevronUp } from 'react-feather' import { useSimulationData } from 'modules/tenderly/hooks/useSimulationData' @@ -13,12 +15,13 @@ import * as styledEl from './styled' // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation // TODO: Reduce function complexity by extracting logic -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type, complexity +// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type export function HookItem({ details, item, index }: { details?: CowHookDetails; item: HookToDappMatch; index: number }) { const [isOpen, setIsOpen] = useState(false) const simulationData = useSimulationData(details?.uuid) + const { i18n } = useLingui() - const dappName = item.dapp?.name || 'Unknown Hook' + const dappName = item.dapp?.name || t`Unknown Hook` return ( @@ -34,11 +37,13 @@ export function HookItem({ details, item, index }: { details?: CowHookDetails; i {index + 1} {item.dapp ? ( <> - {item.dapp.name} - {item.dapp.name} + {i18n._(item.dapp.name)} + {i18n._(item.dapp.name)} ) : ( - Unknown hook dapp + + Unknown hook dapp + )} @@ -51,7 +56,9 @@ export function HookItem({ details, item, index }: { details?: CowHookDetails; i <> {simulationData && (

- Simulation: + + Simulation: + - {simulationData.status ? 'Simulation successful' : 'Simulation failed'} + {simulationData.status ? Simulation successful : Simulation failed}

)}

- Description: {item.dapp.descriptionShort} + + Description: + {' '} + {item.dapp?.descriptionShort ? i18n._(item.dapp.descriptionShort) : ''}

- Version: {item.dapp.version} + + Version: + {' '} + {item.dapp.version}

- Website:{' '} + + Website: + {' '} - Hooks - - {hasSomeFailedSimulation && Simulation failed} + Hooks + Hooks are interactions before/after order execution.} /> + {hasSomeFailedSimulation && ( + + Simulation failed + + )} {isValidating && } setOpen(!isOpen)}> {preHooksToDapp.length > 0 && ( 0}> - PRE {preHooksToDapp.length} + PRE {preHooksToDapp.length} )} {postHooksToDapp.length > 0 && ( - POST {postHooksToDapp.length} + POST {postHooksToDapp.length} )} @@ -83,8 +89,8 @@ export function OrderHooksDetails({ appData, children, margin, isTradeConfirmati {isOpen && ( - - + + )} , diff --git a/apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx b/apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx index 5814a10fa5..15fb83a275 100644 --- a/apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx +++ b/apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx @@ -3,6 +3,7 @@ import { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, import { useIsWindowVisible } from '@cowprotocol/common-hooks' import { useWalletChainId, useWalletProvider } from '@cowprotocol/wallet-provider' +import { useLingui } from '@lingui/react/macro' const MISSING_PROVIDER = Symbol() const BlockNumberContext = createContext< @@ -16,8 +17,10 @@ const BlockNumberContext = createContext< // eslint-disable-next-line @typescript-eslint/explicit-function-return-type function useBlockNumberContext() { const blockNumber = useContext(BlockNumberContext) + const { t } = useLingui() + if (blockNumber === MISSING_PROVIDER) { - throw new Error('BlockNumber hooks must be wrapped in a ') + throw new Error(t`BlockNumber hooks must be wrapped in a` + ` `) } return blockNumber } @@ -46,7 +49,7 @@ export function BlockNumberProvider({ children }: { children: ReactNode }) { return chainBlock }) }, - [activeChainId, setChainBlock] + [activeChainId, setChainBlock], ) const windowVisible = useIsWindowVisible() @@ -81,7 +84,7 @@ export function BlockNumberProvider({ children }: { children: ReactNode }) { () => ({ value: chainId === activeChainId ? block : undefined, }), - [activeChainId, block, chainId] + [activeChainId, block, chainId], ) return {children} } diff --git a/apps/cowswap-frontend/src/common/hooks/useCancelOrder/index.ts b/apps/cowswap-frontend/src/common/hooks/useCancelOrder/index.ts index 4a6b93f763..e687f8b8e8 100644 --- a/apps/cowswap-frontend/src/common/hooks/useCancelOrder/index.ts +++ b/apps/cowswap-frontend/src/common/hooks/useCancelOrder/index.ts @@ -35,7 +35,7 @@ export type UseCancelOrderReturn = Command | null * In case the order is not eligible, it returns null. This should be used to control whether a cancel button should be displayed */ // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + export function useCancelOrder(): (order: Order) => UseCancelOrderReturn { const { chainId } = useWalletInfo() const { allowsOffchainSigning } = useWalletDetails() diff --git a/apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts b/apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts index 94cf2557ab..77fc5d1878 100644 --- a/apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts +++ b/apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts @@ -2,6 +2,8 @@ import { useCallback } from 'react' import { getIsNativeToken } from '@cowprotocol/common-utils' +import { useLingui } from '@lingui/react/macro' + import { Order } from 'legacy/state/orders/actions' import { useCancelTwapOrder } from 'modules/twap/hooks/useCancelTwapOrder' @@ -21,12 +23,13 @@ export function useGetOnChainCancellation(): (order: Order) => Promise { if (ethFlowChainId !== settlementChainId) { throw new Error( - `Chain Id from contracts should match (ethFlow=${ethFlowChainId}, settlement=${settlementChainId})`, + t`Chain Id from contracts should match (ethFlow=${ethFlowChainId}, settlement=${settlementChainId})`, ) } @@ -46,6 +49,6 @@ export function useGetOnChainCancellation(): (order: Order) => Promise { - return {children} + return ( + + {children} + + ) } // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('useSendOnChainCancellation() + useGetOnChainCancellation()', () => { beforeEach(() => { jest.clearAllMocks() diff --git a/apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts b/apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts index cf0d67a08c..28279dfd99 100644 --- a/apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +++ b/apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts @@ -3,17 +3,21 @@ import { useCallback, useMemo, useState } from 'react' import { ALLOWED_PRICE_IMPACT_HIGH, PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN } from '@cowprotocol/common-const' import { Percent } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' + import { useConfirmationRequest } from 'common/hooks/useConfirmationRequest' // TODO: Add proper return type annotation // eslint-disable-next-line @typescript-eslint/explicit-function-return-type function getDescription(priceImpactWithoutFee: Percent) { + const pct = priceImpactWithoutFee.toFixed(0) + if (!priceImpactWithoutFee.lessThan(PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN)) { - return `This swap has a price impact of at least ${priceImpactWithoutFee.toFixed(0)}%.` + return t`This swap has a price impact of at least ${pct}%.` } if (!priceImpactWithoutFee.lessThan(ALLOWED_PRICE_IMPACT_HIGH)) { - return `This swap has a price impact of at least ${priceImpactWithoutFee.toFixed(0)}%.` + return t`This swap has a price impact of at least ${pct}%.` } return undefined @@ -45,10 +49,10 @@ export function useConfirmPriceImpactWithoutFee() { setIsConfirmed(false) try { const result = await triggerConfirmation({ - confirmWord: 'confirm', - title: 'Confirm Price Impact', - action: 'continue with this swap', - callToAction: 'Confirm Swap', + confirmWord: t`confirm`, + title: t`Confirm Price Impact`, + action: t`continue with this swap`, + callToAction: t`Confirm Swap`, description: getDescription(priceImpactWithoutFee), skipInput: shouldSkipInput(priceImpactWithoutFee), }) diff --git a/apps/cowswap-frontend/src/common/hooks/useConfirmationRequest.ts b/apps/cowswap-frontend/src/common/hooks/useConfirmationRequest.ts index e5dc20a7d9..1a2bef5062 100644 --- a/apps/cowswap-frontend/src/common/hooks/useConfirmationRequest.ts +++ b/apps/cowswap-frontend/src/common/hooks/useConfirmationRequest.ts @@ -4,12 +4,10 @@ import { useCallback } from 'react' import { Command } from '@cowprotocol/types' -import { t } from '@lingui/macro' - import { useCloseModal, useOpenModal } from 'legacy/state/application/hooks' import { ApplicationModal } from 'legacy/state/application/reducer' -import { ConfirmationModalProps } from '../pure/ConfirmationModal/ConfirmationModal' +import { ConfirmationModalProps } from '../pure/ConfirmationModal' type TriggerConfirmationParams = Pick< ConfirmationModalProps, @@ -35,18 +33,19 @@ interface ConfirmationModalContext { }: TriggerConfirmationParams) => Promise } -const DEFAULT_CONFIRMATION_MODAL_CONTEXT: ConfirmationModalContext = { +export const DEFAULT_CONFIRMATION_MODAL_CONTEXT: ConfirmationModalContext = { onDismiss: () => {}, onEnable: () => {}, title: 'Confirm Action', callToAction: 'Confirm', - confirmWord: t`confirm`, + confirmWord: 'confirm', action: 'confirm', skipInput: false, triggerConfirmation: async () => {}, } export const confirmationModalContextAtom = atomWithReset(DEFAULT_CONFIRMATION_MODAL_CONTEXT) + export const updateConfirmationModalContextAtom = atom( null, (get, set, nextState: Partial) => { @@ -55,7 +54,7 @@ export const updateConfirmationModalContextAtom = atom( return { ...prevState, ...nextState } }) - } + }, ) // TODO: Add proper return type annotation @@ -98,6 +97,6 @@ export function useConfirmationRequest({ openModal() }) }, - [setContext, openModal, closeModal, onDismissParam, resetContext, onEnableParam] + [closeModal, onDismissParam, onEnableParam, openModal, resetContext, setContext], ) } diff --git a/apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts b/apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts index 2b480a9603..663678d186 100644 --- a/apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts +++ b/apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts @@ -6,6 +6,8 @@ import { Command } from '@cowprotocol/types' import { useWalletProvider } from '@cowprotocol/wallet-provider' import { TransactionReceipt } from '@ethersproject/abstract-provider' +import { useLingui } from '@lingui/react/macro' + const DEFAULT_RETRY_OPTIONS: RetryOptions = { n: 3, minWait: 1000, maxWait: 3000 } const RETRY_OPTIONS_BY_CHAIN_ID: { [chainId: number]: RetryOptions } = {} @@ -18,13 +20,14 @@ export type GetReceipt = (hash: string) => RetryResult export function useGetReceipt(chainId: SupportedChainId): GetReceipt { const provider = useWalletProvider() + const { t } = useLingui() const getReceipt = useCallback( (hash) => { const retryOptions = RETRY_OPTIONS_BY_CHAIN_ID[chainId] || DEFAULT_RETRY_OPTIONS return retry(() => { - if (!provider) throw new Error('No provider yet') + if (!provider) throw new Error(t`No provider yet`) return provider.getTransactionReceipt(hash).then((receipt) => { if (receipt === null) { @@ -35,7 +38,7 @@ export function useGetReceipt(chainId: SupportedChainId): GetReceipt { }) }, retryOptions) }, - [chainId, provider] + [chainId, provider, t], ) return getReceipt diff --git a/apps/cowswap-frontend/src/common/hooks/useMenuItems.ts b/apps/cowswap-frontend/src/common/hooks/useMenuItems.ts index eae6b1488b..c882af266b 100644 --- a/apps/cowswap-frontend/src/common/hooks/useMenuItems.ts +++ b/apps/cowswap-frontend/src/common/hooks/useMenuItems.ts @@ -1,27 +1,43 @@ -import { useMemo } from 'react' +import { useCallback } from 'react' import { useFeatureFlags } from '@cowprotocol/common-hooks' import { isLocal } from '@cowprotocol/common-utils' +import { useLingui } from '@lingui/react/macro' + import { useHooksEnabled } from 'legacy/state/user/hooks' -import { HOOKS_STORE_MENU_ITEM, MENU_ITEMS, IMenuItem, YIELD_MENU_ITEM } from '../constants/routes' +import { HOOKS_STORE_MENU_ITEM, MENU_ITEMS, IMenuItem, I18nIMenuItem, YIELD_MENU_ITEM } from '../constants/routes' export function useMenuItems(): IMenuItem[] { const isHooksEnabled = useHooksEnabled() const { isYieldEnabled } = useFeatureFlags() - - return useMemo(() => { - const items = [...MENU_ITEMS] - - if (isHooksEnabled) { - items.push(HOOKS_STORE_MENU_ITEM) - } - - if (isYieldEnabled || isLocal) { - items.push(YIELD_MENU_ITEM) - } - - return items - }, [isHooksEnabled, isYieldEnabled]) + const { i18n } = useLingui() + + const extractMenuItem = useCallback( + (item: I18nIMenuItem): IMenuItem => { + const { label, fullLabel, description, badge, ...restProps } = item + + return { + label: i18n._(label), + fullLabel: fullLabel ? i18n._(fullLabel) : undefined, + description: i18n._(description), + badge: badge ? i18n._(badge) : undefined, + ...restProps, + } + }, + [i18n], + ) + + const items: IMenuItem[] = MENU_ITEMS.map((item) => extractMenuItem(item)) + + if (isHooksEnabled) { + items.push(extractMenuItem(HOOKS_STORE_MENU_ITEM)) + } + + if (isYieldEnabled || isLocal) { + items.push(extractMenuItem(YIELD_MENU_ITEM)) + } + + return items } diff --git a/apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts b/apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts index 5abd7db6d8..8d06a9f2f5 100644 --- a/apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +++ b/apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts @@ -4,6 +4,7 @@ import { OrderSigningUtils } from '@cowprotocol/cow-sdk' import { useWalletInfo } from '@cowprotocol/wallet' import { useWalletProvider } from '@cowprotocol/wallet-provider' +import { t } from '@lingui/core/macro' import { orderBookApi } from 'cowSdk' import { CancellableOrder, isOrderCancellable } from 'common/utils/isOrderCancellable' @@ -20,13 +21,13 @@ export function useCancelMultipleOrders(): (orders: CancellableOrder[]) => Promi if (!signer) return if (notCancellableOrders.length) { - throw new Error('Some orders can not be cancelled!') + throw new Error(t`Some orders can not be cancelled!`) } const orderUids = ordersToCancel.map((order) => order.id) const { signature, signingScheme } = await OrderSigningUtils.signOrderCancellations(orderUids, chainId, signer) - if (!signature) throw new Error('Signature is undefined!') + if (!signature) throw new Error(t`Signature is undefined!`) await orderBookApi.sendSignedOrderCancellations( { @@ -34,9 +35,9 @@ export function useCancelMultipleOrders(): (orders: CancellableOrder[]) => Promi signature, signingScheme, }, - { chainId } + { chainId }, ) }, - [chainId, provider] + [chainId, provider], ) } diff --git a/apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx b/apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx index e5dc00f2ba..d7adfc3ff0 100644 --- a/apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx +++ b/apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx @@ -6,6 +6,8 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { useAddSnackbar } from '@cowprotocol/snackbars' import { useSwitchNetwork } from '@cowprotocol/wallet' +import { Trans } from '@lingui/react/macro' + import { useCloseModal } from 'legacy/state/application/hooks' import { ApplicationModal } from 'legacy/state/application/reducer' @@ -27,8 +29,8 @@ export function useOnSelectNetwork(): (chainId: SupportedChainId, skipClose?: bo await switchNetwork(targetChain) setChainIdToUrl(targetChain) - // TODO: Replace any with proper type definitions - // eslint-disable-next-line @typescript-eslint/no-explicit-any + // TODO: Replace any with proper type definitions + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { console.error('Failed to switch networks', error) @@ -36,14 +38,16 @@ export function useOnSelectNetwork(): (chainId: SupportedChainId, skipClose?: bo return } + const chainInfoLabel = getChainInfo(targetChain)?.label + addSnackbar({ id: 'failed-network-switch', icon: 'alert', content: ( - <> - Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on{' '} - {getChainInfo(targetChain)?.label}, you must change the network in your wallet. - + + Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on {chainInfoLabel}, you + must change the network in your wallet. + ), }) @@ -54,6 +58,6 @@ export function useOnSelectNetwork(): (chainId: SupportedChainId, skipClose?: bo closeModal() } }, - [switchNetwork, setWalletConnectionError, addSnackbar, closeModal, setChainIdToUrl] + [switchNetwork, setWalletConnectionError, addSnackbar, closeModal, setChainIdToUrl], ) } diff --git a/apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts b/apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts index 3115f9b04c..af3fb5f151 100644 --- a/apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +++ b/apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts @@ -7,6 +7,7 @@ import { useTokensByAddressMap } from '@cowprotocol/tokens' import { useWalletInfo } from '@cowprotocol/wallet' import { CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' import { useBridgeOrderData, useCrossChainOrder } from 'entities/bridgeOrders' import { useBridgeSupportedNetwork } from 'entities/bridgeProvider' import { bridgingSdk } from 'tradingSdk/bridgingSdk' @@ -74,8 +75,8 @@ export function useSwapAndBridgeContext( chainId: order.inputToken.chainId, // Intermediate token is on same chain as input address: order.buyToken, decimals: order.outputToken.decimals, // Use output token decimals as approximation - symbol: 'Loading...', // Placeholder until tokens are loaded - name: 'Loading...', // Placeholder until tokens are loaded + symbol: t`Loading...`, // Placeholder until tokens are loaded + name: t`Loading...`, // Placeholder until tokens are loaded }) }, [order, tokensByAddress]) diff --git a/apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx b/apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx index 99612a63bc..e3c814c6d3 100644 --- a/apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx @@ -10,7 +10,7 @@ import { useENS } from '@cowprotocol/ens' import { ExternalLink, RowBetween, UI } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' -import { t, Trans } from '@lingui/macro' +import { Trans, useLingui } from '@lingui/react/macro' import styled from 'styled-components/macro' import { AutoColumn } from 'legacy/components/Column' @@ -87,7 +87,7 @@ const Input = styled.input<{ error?: boolean }>` // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation // TODO: Reduce function complexity by extracting logic -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type, complexity +// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type export function AddressInputPanel({ id, className = 'recipient-address-input', @@ -103,6 +103,7 @@ export function AddressInputPanel({ value: string onChange: (value: string) => void }) { + const { t } = useLingui() const { chainId } = useWalletInfo() const chainInfo = getChainInfo(chainId) const addressPrefix = chainInfo?.addressPrefix diff --git a/apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx b/apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx index a5df3acdf6..299c6e547d 100644 --- a/apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx @@ -3,6 +3,7 @@ import { PropsWithChildren } from 'react' import { Command } from '@cowprotocol/types' import { UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import { LinkStyledButton } from 'theme' export type CancelButtonProps = { @@ -15,7 +16,7 @@ export type CancelButtonProps = { export function CancelButton({ onClick, children, className }: CancelButtonProps) { return ( - {children || 'Cancel order'} + {children || Cancel order} ) } diff --git a/apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx b/apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx index 2ebc7dcbd7..0073c52b31 100644 --- a/apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +++ b/apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx @@ -6,6 +6,8 @@ import { ButtonPrimary, TokenAmount, UI } from '@cowprotocol/ui' import type { BigNumber } from '@ethersproject/bignumber' import { CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { ArrowLeft, ArrowRight } from 'react-feather' import styled from 'styled-components/macro' import { LinkStyledButton } from 'theme' @@ -82,7 +84,7 @@ const OrderTypeDetails = styled.div` ` // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + export function RequestCancellationModal(props: RequestCancellationModalProps): ReactElement { const { onDismiss, triggerCancellation, summary, shortId, defaultType, txCost, nativeCurrency } = props const isOffChainCancellable = defaultType === 'offChain' @@ -106,49 +108,55 @@ export function RequestCancellationModal(props: RequestCancellationModalProps): }, [type]) const isOnChainType = type === 'onChain' - const typeLabel = isOnChainType ? 'on-chain' : 'off-chain' + const typeLabel = isOnChainType ? t`on-chain` : t`off-chain` const txCostAmount = txCost && !txCost.isZero() ? CurrencyAmount.fromRawAmount(nativeCurrency, txCost.toString()) : '' return ( (

- Are you sure you want to cancel order {shortId}? + + Are you sure you want to cancel order {shortId}? +

{summary}

- {'This is an '} + This is an{' '} {isOffChainCancellable ? ( {typeLabel} {isOnChainType ? : } ) : ( typeLabel - )} - {' cancellation '} - [{showMore ? '- less' : '+ more'}] + )}{' '} + cancellation{' '} + [{showMore ? `- ` + t`less` : `+ ` + t`more`}]

{showMore && (

- {type === 'onChain' - ? 'On-chain cancellations require a regular on-chain transaction and cost gas.' - : 'Off-chain cancellations require a signature and are free.'} + {type === 'onChain' ? ( + On-chain cancellations require a regular on-chain transaction and cost gas. + ) : ( + Off-chain cancellations require a signature and are free. + )}

- Keep in mind a solver might already have included the order in a solution even if this cancellation is - successful. + + Keep in mind a solver might already have included the order in a solution even if this cancellation is + successful. + {isOnChainType && (

- Tx cost:{' '} - {txCostAmount ? : 'Unknown'} + Tx cost:{' '} + {txCostAmount ? : t`Unknown`}
)} @@ -160,7 +168,9 @@ export function RequestCancellationModal(props: RequestCancellationModalProps): // TODO: Extract nested component outside render function // eslint-disable-next-line react/no-unstable-nested-components bottomContent={() => ( - triggerCancellation(type)}>Request cancellation + triggerCancellation(type)}> + Request cancellation + )} /> ) diff --git a/apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx b/apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx index 7f97107d10..bb92919847 100644 --- a/apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx @@ -3,6 +3,9 @@ import React, { ReactElement, useMemo } from 'react' import { shortenOrderId } from '@cowprotocol/common-utils' import { Command } from '@cowprotocol/types' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' + import { CancellationModalContext } from 'common/hooks/useCancelOrder/state' import { CowModal as Modal } from 'common/pure/Modal' import { TransactionErrorContent } from 'common/pure/TransactionErrorContent' @@ -18,7 +21,7 @@ export type CancellationModalProps = { } // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + export function CancellationModal(props: CancellationModalProps): ReactElement | null { const { isOpen, onDismiss, context } = props const { @@ -41,7 +44,7 @@ export function CancellationModal(props: CancellationModalProps): ReactElement | } if (error !== null) { - return + return } if (isPendingSignature) { @@ -50,14 +53,14 @@ export function CancellationModal(props: CancellationModalProps): ReactElement | modalMode onDismiss={onDismiss} title={ - <> + Cancelling order with id {shortId}:
{summary} - +
} - description="Canceling your order" - operationLabel="cancellation" + description={t`Canceling your order`} + operationLabel={t`cancellation`} /> ) } else { diff --git a/apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx b/apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx index 82ce31c3be..baaf586135 100644 --- a/apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx @@ -1,5 +1,6 @@ import { BaseChainInfo } from '@cowprotocol/common-const' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { WarningCard } from '../WarningCard' @@ -46,18 +47,22 @@ export default function ChainPrefixWarning({ chainPrefixWarning, chainInfo, isDa return (

- The recipient address you inputted had the chain prefix {chainPrefixWarning}, which is not the - expected for the network you are in. + + The recipient address you inputted had the chain prefix {chainPrefixWarning}, which is not + the expected for the network you are in. +

- You are connected to + You are connected to

- Please, make sure your address follows the format {addressPrefix}:<your-address> or - double-check if it is compatible with {label} network. + + Please, make sure your address follows the format {addressPrefix}:<your-address> or + double-check if it is compatible with {label} network. +

) diff --git a/apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx b/apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx index 8d668b480b..0460fe9c8c 100644 --- a/apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx @@ -4,6 +4,7 @@ import { useMediaQuery } from '@cowprotocol/common-hooks' import { ExplorerDataType, getExplorerLink, shortenAddress, getIsNativeToken } from '@cowprotocol/common-utils' import { Media, ContextMenuTooltip, ContextMenuCopyButton, ContextMenuExternalLink, Opacity, UI } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' import { useBridgeSupportedNetwork } from 'entities/bridgeProvider' import { Info } from 'react-feather' import styled from 'styled-components/macro' @@ -62,7 +63,7 @@ export function ClickableAddress(props: ClickableAddressProps): ReactNode { content={ <> - + } placement="bottom" diff --git a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx index 4e97380122..7f767eba44 100644 --- a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx @@ -3,6 +3,8 @@ import React, { ReactNode, RefObject } from 'react' import { LpTokenProvider } from '@cowprotocol/types' import { ProductLogo, ProductVariant, UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' + import { ArrowBackground } from '../../ArrowBackground' import { StarIcon, TextFit } from '../Common' import { LpEmblems } from '../LpEmblems' @@ -43,7 +45,9 @@ export function GlobalContent({ context, children, arrowBackgroundRef, comparedP - One-click convert, boost yield + + One-click convert, boost yield + @@ -54,7 +58,9 @@ export function GlobalContent({ context, children, arrowBackgroundRef, comparedP {ctaText} - Pool analytics ↗ + + Pool analytics ↗ + diff --git a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx index a359bc14e1..a5644e7b7e 100644 --- a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx @@ -4,6 +4,8 @@ import { LpToken } from '@cowprotocol/common-const' import { TokenLogo, TokensByAddress } from '@cowprotocol/tokens' import { TokenSymbol, UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' + import { LP_PROVIDER_NAMES } from '../const' import * as styledEl from '../styled' @@ -16,7 +18,7 @@ interface PoolInfoProps { // TODO: Add proper return type annotation // TODO: Reduce function complexity by extracting logic -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, complexity +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function PoolInfo({ token, tokensByAddress, isTokenSelectorView, isDarkMode }: PoolInfoProps) { const poolName = token.lpTokenProvider ? LP_PROVIDER_NAMES[token.lpTokenProvider] : null const token0 = tokensByAddress[token.tokens[0]] @@ -50,7 +52,8 @@ export function PoolInfo({ token, tokensByAddress, isTokenSelectorView, isDarkMo : undefined } > - higher APR available for your {poolName} pool: + {/* Split to avoid applying macros to acronyms/brands like APR */} + higher APR available for your {poolName} pool:
diff --git a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx index 3d241d3252..7871a5cea9 100644 --- a/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx @@ -4,6 +4,7 @@ import { isTruthy } from '@cowprotocol/common-utils' import { TokensByAddress } from '@cowprotocol/tokens' import { LpTokenProvider } from '@cowprotocol/types' +import { t } from '@lingui/core/macro' import styled from 'styled-components/macro' import { upToSmall, useMediaQuery } from 'legacy/hooks/useMediaQuery' @@ -139,9 +140,11 @@ export function CoWAmmBannerContent({ isTokenSelectorView={isTokenSelectorView} /> ) : isCowAmmAverageBetter && averageProvidersNames ? ( - `yield over average ${averageProvidersNames.join(', ')} pool${averageProvidersNames.length > 1 ? 's' : ''}` + t`yield over average` + + ` ${averageProvidersNames.join(', ')}` + + (averageProvidersNames.length > 1 ? t`pools` : t`pool`) ) : ( - 'pools available to get yield on your assets!' + t`pools available to get yield on your assets!` )} diff --git a/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx b/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx index d5c12f6db7..d5dd079957 100644 --- a/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +++ b/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx @@ -1,4 +1,4 @@ -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' import { ConfirmationModal } from './ConfirmationModal' import { ConfirmationModalHeader } from './ConfirmationModalHeader' @@ -7,18 +7,14 @@ const Fixtures = { default: () => ( {}} onEnable={() => {}} /> ), - header: () => ( - {}}> - Turn on Expert mode? - - ), + header: () => {}}>Turn on Expert mode?, } export default Fixtures diff --git a/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx b/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx index ce79576ded..d486a86e9d 100644 --- a/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx +++ b/apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx @@ -1,6 +1,6 @@ import { Command } from '@cowprotocol/types' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { ContentWrapper, Modal } from 'common/pure/Modal' @@ -44,7 +44,7 @@ export function ConfirmationModal({ title, description, warning, - callToAction = 'Confirm', + callToAction, onDismiss, onEnable, action, @@ -57,23 +57,15 @@ export function ConfirmationModal({ return ( - - {title} - - {shouldShowDescription && ( - - {description} - - )} + {title} + {shouldShowDescription && {description}} {shouldShowWarning && ( - - {warning} - + {warning} )} - {callToAction} + {callToAction ? callToAction : Confirm} diff --git a/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx b/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx index c85a92b19c..cf9ed7bd98 100644 --- a/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +++ b/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx @@ -1,3 +1,5 @@ +import { t } from '@lingui/core/macro' + import { ConfirmationPendingContent } from './ConfirmationPendingContent' import { CowModal } from '../Modal' @@ -12,8 +14,8 @@ const Fixtures = { Reset USDT allowance } - description="Reset USDT allowance to 0 before setting new spending cap" - operationLabel="token approval" + description={t`Reset USDT allowance to 0 before setting new spending cap`} + operationLabel={t`token approval`} /> ), diff --git a/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx b/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx index 5f4eb05375..aea410d7da 100644 --- a/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +++ b/apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx @@ -3,7 +3,7 @@ import React, { ReactNode } from 'react' import { Command } from '@cowprotocol/types' import { useWalletDisplayedAddress } from '@cowprotocol/wallet' -import { t, Trans } from '@lingui/macro' +import { Trans, useLingui } from '@lingui/react/macro' import { CheckCircle, UserCheck } from 'react-feather' import { ConfirmationPendingContentShell } from './ConfirmationPendingContentShell' @@ -27,6 +27,7 @@ export function ConfirmationPendingContent({ isPendingInProgress, }: ConfirmationPendingContentProps): ReactNode { const walletAddress = useWalletDisplayedAddress() + const { t } = useLingui() const firstStepLabel = isPendingInProgress ? ( t`The ${operationLabel} is signed.` @@ -47,7 +48,7 @@ export function ConfirmationPendingContent({ modalMode={modalMode} description={ <> - {description} + {description}
Follow these steps: diff --git a/apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx b/apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx index 513b875d8c..7c9fdf9e32 100644 --- a/apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +++ b/apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx @@ -4,6 +4,7 @@ import { Command } from '@cowprotocol/types' import { ButtonError } from '@cowprotocol/ui' import { UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' const Container = styled.div`` @@ -63,17 +64,21 @@ export function ConfirmedButton({ onConfirm() }, - [onConfirm, shouldButtonBeDisabled] + [onConfirm, shouldButtonBeDisabled], ) return ( {shouldShowInput ? ( - Please type the word "{confirmWord}" to {action}. + + Please type the word "{confirmWord}" to {action}. + ) : ( - Please click confirm to {action}. + + Please click confirm to {action}. + )} {shouldShowInput && } - Max + Max )} diff --git a/apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx b/apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx index 4774b52ac3..9127821c39 100644 --- a/apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx @@ -6,7 +6,8 @@ import { TokenLogo } from '@cowprotocol/tokens' import { TokenName } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { useBridgeSupportedNetwork } from 'entities/bridgeProvider' import { Nullish } from 'types' @@ -52,12 +53,14 @@ export function CurrencySelectButton(props: CurrencySelectButtonProps): ReactNod if (!currency && customSelectTokenButton) { return ( -
+
{customSelectTokenButton}
) } + const selectedToken = t`Selected token:` + ' ' + currency?.symbol || '' + return ( {currency ? ( diff --git a/apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx b/apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx index 3b7282dc52..71488799d0 100644 --- a/apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx @@ -3,6 +3,7 @@ import { ReactNode } from 'react' import { Command } from '@cowprotocol/types' import { ButtonSecondaryAlt, InlineBanner, InlineBannerProps } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' type CustomRecipientBannerProps = InlineBannerProps & { onDismiss?: Command } @@ -37,11 +38,14 @@ export function CustomRecipientWarningBanner({ >

- Caution: Order recipient address differs from order owner! + + Caution: + {' '} + Order recipient address differs from order owner!

{onDismiss && ( - Dismiss + Dismiss )}
diff --git a/apps/cowswap-frontend/src/common/pure/ExecutionPrice/index.tsx b/apps/cowswap-frontend/src/common/pure/ExecutionPrice/index.tsx index 519e8deb70..09a56e86b9 100644 --- a/apps/cowswap-frontend/src/common/pure/ExecutionPrice/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ExecutionPrice/index.tsx @@ -16,7 +16,7 @@ export interface ExecutionPriceProps { // TODO: Add proper return type annotation // TODO: Reduce function complexity by extracting logic -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, complexity +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function ExecutionPrice({ executionPrice, isInverted, diff --git a/apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx b/apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx index ac05fd75e2..be6324eb71 100644 --- a/apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx @@ -2,6 +2,7 @@ import { ReactElement } from 'react' import { Command } from '@cowprotocol/types' +import { Trans } from '@lingui/react/macro' import { AlertTriangle } from 'react-feather' import * as styledEl from './styled' @@ -23,7 +24,9 @@ export function ExternalSourceAlert({ className, onChange, title, children }: Ex - I understand + + I understand + ) diff --git a/apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx b/apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx index 1264db4067..3225d8e41c 100644 --- a/apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx @@ -4,6 +4,7 @@ import { TokenLogo } from '@cowprotocol/tokens' import { UI } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' import styled from 'styled-components/macro' interface IconSpinnerProps { @@ -83,7 +84,7 @@ export function IconSpinner({ if (currency) { return } else if (image) { - return Spinning icon + return {t`Spinning } else if (children) { return {children} } diff --git a/apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx b/apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx index 9914ab55f4..74e6f06c4d 100644 --- a/apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx @@ -1,6 +1,7 @@ import { isInjectedWidget } from '@cowprotocol/common-utils' import { Color, ProductLogo, ProductVariant } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import { transparentize } from 'color2k' import styled, { keyframes, css } from 'styled-components/macro' @@ -158,7 +159,7 @@ export const LoadingApp = () => { )}

- Loading + Loading . . diff --git a/apps/cowswap-frontend/src/common/pure/Modal/index.tsx b/apps/cowswap-frontend/src/common/pure/Modal/index.tsx index a3d08a1723..f11573f4a5 100644 --- a/apps/cowswap-frontend/src/common/pure/Modal/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/Modal/index.tsx @@ -5,6 +5,7 @@ import { isMobile } from '@cowprotocol/common-utils' import { Command } from '@cowprotocol/types' import { Media, UI } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' import { useSpringValue, useTransition } from '@react-spring/web' import { useGesture } from '@use-gesture/react' import styled from 'styled-components/macro' @@ -31,7 +32,7 @@ interface ModalProps { */ // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function Modal({ isOpen, onDismiss, @@ -87,7 +88,7 @@ export function Modal({ style: { transform: y.interpolate((y) => `translateY(${(y as number) > 0 ? y : 0}px)`) }, } : {})} - aria-label="dialog content" + aria-label={t`dialog content`} $minHeight={minHeight} $maxHeight={maxHeight} $mobile={isMobile} diff --git a/apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx b/apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx index 8b38d735ba..09b245adaa 100644 --- a/apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx @@ -2,6 +2,7 @@ import React from 'react' import { UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' const Wrapper = styled.span` @@ -13,5 +14,10 @@ const Wrapper = styled.span` // TODO: Add proper return type annotation // eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function NetworkCostsSuffix() { - return + gas + return ( + + {' '} + + gas + + ) } diff --git a/apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx b/apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx index 1ddee99071..a7928444d7 100644 --- a/apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx @@ -5,7 +5,7 @@ import { getExplorerBaseUrl } from '@cowprotocol/common-utils' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { Badge, BadgeTypes, ExternalLink } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import * as styledEl from './styled' @@ -40,7 +40,7 @@ export function NetworksList(props: NetworksListProps): ReactNode { {label} {isNewNetwork && ( - NEW + NEW )} {isActive && } @@ -63,7 +63,7 @@ export function NetworksList(props: NetworksListProps): ReactNode { )} {explorer && ( - {explorerTitle} + {explorerTitle} )} diff --git a/apps/cowswap-frontend/src/common/pure/NetworksList/styled.tsx b/apps/cowswap-frontend/src/common/pure/NetworksList/styled.tsx index 99e3ef81ef..c473a1553d 100644 --- a/apps/cowswap-frontend/src/common/pure/NetworksList/styled.tsx +++ b/apps/cowswap-frontend/src/common/pure/NetworksList/styled.tsx @@ -39,6 +39,7 @@ export const LinkOutCircle = styled(ArrowDownCircle)` transform: rotate(230deg); width: 16px; height: 16px; + flex-shrink: 0; ` export const FlyoutRow = styled.div<{ active: boolean }>` align-items: center; diff --git a/apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx b/apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx index 03004ac3cc..2a286c434e 100644 --- a/apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx @@ -2,7 +2,7 @@ import { isCowOrder } from '@cowprotocol/common-utils' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { ButtonPrimary } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { EnhancedTransactionLink } from 'legacy/components/EnhancedTransactionLink' diff --git a/apps/cowswap-frontend/src/common/pure/OrderSummaryRow/index.tsx b/apps/cowswap-frontend/src/common/pure/OrderSummaryRow/index.tsx index b1900c47d7..7b280d66fd 100644 --- a/apps/cowswap-frontend/src/common/pure/OrderSummaryRow/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/OrderSummaryRow/index.tsx @@ -32,9 +32,10 @@ export const ShimmerWrapper = styled.span` } ` export const SummaryRow = styled.div` + column-gap: 16px; display: grid; grid-template-rows: 1fr; - grid-template-columns: 100px 1fr; + grid-template-columns: 130px 1fr; width: 100%; margin: 0 0 4px; color: inherit; diff --git a/apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx b/apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx index cd6c273288..c5de3e0af0 100644 --- a/apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx @@ -3,6 +3,8 @@ import { useMemo } from 'react' import { TokenAmount, TokenSymbol } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import ICON_ARROW from 'assets/icon/arrow.svg' import SVG from 'react-inlinesvg' import styled from 'styled-components/macro' @@ -26,7 +28,7 @@ export type PermitModalProps = NewModalProps & { */ // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function PermitModal(props: PermitModalProps) { const { inputAmount, outputAmount, step, icon: inputIcon, orderType, ...rest } = props @@ -35,11 +37,11 @@ export function PermitModal(props: PermitModalProps) { { stepState: step === 'approve' ? 'loading' : 'finished', stepNumber: 1, - label: 'Approve' + (step === 'approve' ? '' : 'd'), + label: step === 'approve' ? t`Approve` : t`Approved`, }, - { stepState: step === 'submit' ? 'loading' : 'active', stepNumber: 2, label: 'Submit' }, + { stepState: step === 'submit' ? 'loading' : 'active', stepNumber: 2, label: t`Submit` }, ], - [step] + [step], ) const icon = useMemo( () => @@ -48,20 +50,21 @@ export function PermitModal(props: PermitModalProps) { ) : ( {inputIcon} ), - [inputAmount?.currency, inputIcon, step] + [inputAmount?.currency, inputIcon, step], ) const title = useMemo( () => step === 'approve' ? ( <> - Approve spending
- on CoW Swap + + Approve spending
on CoW Swap +
) : ( - `Confirm ${orderType}` + t`Confirm ${orderType}` ), - [inputAmount?.currency, orderType, step] + [inputAmount?.currency, orderType, step], ) const body = useMemo( @@ -72,7 +75,7 @@ export function PermitModal(props: PermitModalProps) {

), - [inputAmount, outputAmount, step] + [inputAmount, outputAmount, step], ) return ( @@ -86,7 +89,9 @@ export function PermitModal(props: PermitModalProps) { - Sign (gas-free!) in your wallet... + + Sign (gas-free!) in your wallet... + diff --git a/apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx b/apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx index ce360a7b2b..9443296c57 100644 --- a/apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx @@ -1,7 +1,7 @@ import { COW_PROTOCOL_LINK } from '@cowprotocol/common-const' import { ExternalLink, UI, ProductLogo, ProductVariant } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' const Wrapper = styled.div` @@ -46,7 +46,7 @@ export function PoweredFooter() { - Powered by CoW Protocol + Powered by CoW Protocol ) diff --git a/apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx b/apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx index f56cce1675..9334e28d8c 100644 --- a/apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx @@ -2,7 +2,7 @@ import { formatPercent } from '@cowprotocol/common-utils' import { Loader, HoverTooltip } from '@cowprotocol/ui' import { Percent } from '@uniswap/sdk-core' -import { t } from '@lingui/macro' +import { t } from '@lingui/core/macro' import styled from 'styled-components/macro' import { PriceImpact } from 'legacy/hooks/usePriceImpact' diff --git a/apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx b/apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx index a9e23a2c57..05d8c34e8d 100644 --- a/apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx @@ -5,7 +5,7 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { FiatAmount, TokenAmount, TokenSymbol, UI } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' import { Repeat } from 'react-feather' import styled from 'styled-components/macro' import { Nullish } from 'types' @@ -153,7 +153,7 @@ export function InvertRateControl({ onClick, className }: { onClick(): void; cla export function RateInfo({ rateInfoParams, className, - label = 'Limit price', + label, setSmartQuoteSelectionOnce = false, doNotUseSmartQuote = false, stylized = false, @@ -237,7 +237,7 @@ export function RateInfo({ {!noLabel && ( - {label} + {label ? label : t`Limit price`} )} diff --git a/apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx b/apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx index 12d012495d..96deead7ec 100644 --- a/apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react' import { TokenAmount } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { useLingui } from '@lingui/react/macro' import { BalanceAndSubsidy } from 'legacy/hooks/useCowBalanceAndSubsidy' @@ -22,18 +22,14 @@ export interface ReceiveAmountProps { export function ReceiveAmount(props: ReceiveAmountProps): ReactNode { const { isSell } = props.receiveAmountInfo - + const { t } = useLingui() const { amountAfterFees } = getOrderTypeReceiveAmounts(props.receiveAmountInfo) - const title = amountAfterFees.toExact() + ' ' + props.currency.symbol return (
- - {!isSell ? 'From (incl. costs)' : 'Receive (incl. costs)'} - - + {!isSell ? t`From (incl. costs)` : t`Receive (incl. costs)`} } />
diff --git a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx index 5ddd4e670c..1f7f7cafaf 100644 --- a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx +++ b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx @@ -4,7 +4,7 @@ import { isFractionFalsy } from '@cowprotocol/common-utils' import { TokenAmount } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import * as styledEl from './styled' @@ -19,9 +19,7 @@ export function FeeItem({ title, isSell, feeAmount: feeAmount }: FeeItemProps): return (
- - {title} - + {title} {!isFractionFalsy(feeAmount) ? ( {typeString} diff --git a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx index 46a694a124..0d793cedb8 100644 --- a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +++ b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx @@ -3,7 +3,7 @@ import React, { ReactNode } from 'react' import { TokenAmount } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import * as styledEl from './styled' diff --git a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx index 3c4ef1ae8a..0cbba113f4 100644 --- a/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx @@ -3,7 +3,8 @@ import React, { ReactNode } from 'react' import { isFractionFalsy } from '@cowprotocol/common-utils' import { TokenAmount } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { BalanceAndSubsidy } from 'legacy/hooks/useCowBalanceAndSubsidy' @@ -54,17 +55,15 @@ export function ReceiveAmountInfoTooltip(props: ReceiveAmountInfoTooltipProps): - {(isEoaNotEthFlow || hasPartnerFee) && } + {(isEoaNotEthFlow || hasPartnerFee) && } {bridgeFee && ( - + )} {!isFractionFalsy(amountAfterFees) && ( - - {!isSell ? 'From' : 'To'} - + {!isSell ? t`From` : t`To`} diff --git a/apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx b/apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx index 9dd29951fd..e8994013ce 100644 --- a/apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx @@ -3,6 +3,8 @@ import { ReactElement } from 'react' import { getSafeWebUrl } from '@cowprotocol/core' import { ButtonPrimary, ExternalLink } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' + export function SafeWalletLink(props: { chainId: number safeTransaction?: { safe: string; safeTxHash: string } @@ -31,7 +33,7 @@ export function SafeWalletLink(props: { return ( - View on Safe ↗ + View on Safe ) } diff --git a/apps/cowswap-frontend/src/common/pure/Stepper/index.tsx b/apps/cowswap-frontend/src/common/pure/Stepper/index.tsx index 13461fb143..c2962adf2f 100644 --- a/apps/cowswap-frontend/src/common/pure/Stepper/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/Stepper/index.tsx @@ -1,5 +1,6 @@ import { UI } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' import ICON_CHECK from 'assets/icon/check.svg' import SVG from 'react-inlinesvg' import styled from 'styled-components/macro' @@ -90,8 +91,8 @@ const Step = styled.div` stepState === 'error' ? `var(${stateStyles['error'].dotBackground})` : stepState === 'finished' - ? `var(${stateStyles['finished'].dotBackground})` - : `var(${UI.COLOR_TEXT_OPACITY_25})`}; + ? `var(${stateStyles['finished'].dotBackground})` + : `var(${UI.COLOR_TEXT_OPACITY_25})`}; border-radius: var(${UI.BORDER_RADIUS_NORMAL}); } @@ -134,7 +135,7 @@ export function Stepper({ steps, maxWidth, dotSize = 21 }: StepperProps) { {step.stepNumber} ) : ( - {step.stepState === 'finished' ? : step.stepNumber} + {step.stepState === 'finished' ? : step.stepNumber} )} {step.label}
diff --git a/apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx b/apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx index e2266883ea..5f15ff4d47 100644 --- a/apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +++ b/apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx @@ -2,6 +2,7 @@ import React from 'react' import CarretIcon from '@cowprotocol/assets/cow-swap/carret-down.svg' +import { t } from '@lingui/core/macro' import SVG from 'react-inlinesvg' import { StyledToggleArrow } from './styled' @@ -13,7 +14,7 @@ export interface ToggleArrowProps { } export function ToggleArrow({ isOpen, title, size }: ToggleArrowProps): React.ReactElement { - const SvgTitle = title ?? (isOpen ? 'Close' : 'Open') + const SvgTitle = title ?? (isOpen ? t`Close` : t`Open`) return ( diff --git a/apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx b/apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx index f841f271ec..0b058f124e 100644 --- a/apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx @@ -3,6 +3,8 @@ import { ReactNode, useCallback } from 'react' import { FiatAmount, TokenAmount } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans } from '@lingui/react/macro' + import { ToggleArrow } from 'common/pure/ToggleArrow' import { Details, Summary, SummaryClickable, Wrapper } from './styled' @@ -31,12 +33,12 @@ function DefaultFeeContent({ if (feeTotalAmount?.greaterThan(0)) { return ( <> - Fee + Fee ) } - return 'Free' + return Free } /** diff --git a/apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx b/apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx index d071527ea0..25b5cbb174 100644 --- a/apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from 'react' import { LONG_LOAD_THRESHOLD } from '@cowprotocol/common-const' import { CenteredDots, LongLoadText } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import { Text } from 'rebass' import { ThemedText } from 'theme' @@ -21,7 +22,11 @@ export const TradeLoadingButton = () => { return ( - {isLongLoad && Hang in there. Calculating best price } + {isLongLoad && ( + + Hang in there. Calculating best price{' '} + + )} diff --git a/apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx b/apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx index d431f900be..af0bee48c5 100644 --- a/apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx @@ -2,7 +2,7 @@ import { ReactElement } from 'react' import { BackButton, ButtonPrimary, UI } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { AlertTriangle } from 'react-feather' import styled from 'styled-components/macro' import { CloseIcon } from 'theme' diff --git a/apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx b/apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx index 5718dc1161..f37ff84ea3 100644 --- a/apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx +++ b/apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx @@ -1,6 +1,6 @@ import { ReactElement } from 'react' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' export function UnsupportedNetworksText(): ReactElement { return Please connect your wallet to one of our supported networks. diff --git a/apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx b/apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx index 751169b419..168d554e98 100644 --- a/apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx +++ b/apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx @@ -4,6 +4,7 @@ import { useIsOnline } from '@cowprotocol/common-hooks' import { useAddSnackbar, useRemoveSnackbar, SnackbarItem } from '@cowprotocol/snackbars' import { UI } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import { AlertTriangle } from 'react-feather' import styled from 'styled-components/macro' @@ -23,11 +24,11 @@ const createOfflineNotification = (): SnackbarItem => ({ icon: 'custom', customIcon: , content: ( -
+ Connection Lost
You appear to be offline. Some features may not work properly. -
+ ), duration: NOTIFICATION_DURATION, }) @@ -79,4 +80,4 @@ function useOfflineNotification(): void { export function ConnectionStatusUpdater(): null { useOfflineNotification() return null -} \ No newline at end of file +} diff --git a/apps/cowswap-frontend/src/common/updaters/orders/utils.ts b/apps/cowswap-frontend/src/common/updaters/orders/utils.ts index f19f593c8a..5536bc31cb 100644 --- a/apps/cowswap-frontend/src/common/updaters/orders/utils.ts +++ b/apps/cowswap-frontend/src/common/updaters/orders/utils.ts @@ -2,6 +2,7 @@ import { formatSymbol, formatTokenAmount, isSellOrder, shortenAddress } from '@c import { EnrichedOrder, SupportedChainId as ChainId } from '@cowprotocol/cow-sdk' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' import JSBI from 'jsbi' import { Order, OrderStatus } from 'legacy/state/orders/actions' @@ -9,7 +10,7 @@ import { classifyOrder, OrderTransitionStatus } from 'legacy/state/orders/utils' import { getOrder } from 'api/cowProtocol' import { getIsComposableCowChildOrder } from 'utils/orderUtils/getIsComposableCowChildOrder' -import { getUiOrderType, ORDER_UI_TYPE_TITLES, UiOrderTypeParams } from 'utils/orderUtils/getUiOrderType' +import { getUiOrderType, getUiOrderTypeTitles, UiOrderTypeParams } from 'utils/orderUtils/getUiOrderType' // TODO: Add proper return type annotation // eslint-disable-next-line @typescript-eslint/explicit-function-return-type @@ -42,7 +43,7 @@ export function computeOrderSummary({ const receiver = orderFromApi?.receiver || orderFromStore?.receiver const uiOrderType = getUiOrderType((orderFromStore || orderFromApi) as UiOrderTypeParams) - const orderTitle = ORDER_UI_TYPE_TITLES[uiOrderType] + const orderTitle = getUiOrderTypeTitles()[uiOrderType] let summary: string | undefined = undefined @@ -61,19 +62,20 @@ export function computeOrderSummary({ const isSell = isSellOrder(kind) - const inputPrefix = !isFulfilled && !isSell ? 'at most ' : '' - const outputPrefix = !isFulfilled && isSell ? 'at least ' : '' + const inputPrefix = !isFulfilled && !isSell ? t`at most` + ` ` : '' + const outputPrefix = !isFulfilled && isSell ? t`at least` + ` ` : '' - summary = `${orderTitle} ${inputPrefix}${formatTokenAmount(inputAmount)} ${formatSymbol( - inputAmount.currency.symbol, - )} for ${outputPrefix}${formatTokenAmount(outputAmount)} ${formatSymbol(outputAmount.currency.symbol)}` + summary = + `${orderTitle} ${inputPrefix}${formatTokenAmount(inputAmount)} ${formatSymbol(inputAmount.currency.symbol)} ` + + t`for` + + ` ${outputPrefix}${formatTokenAmount(outputAmount)} ${formatSymbol(outputAmount.currency.symbol)}` } else { // We only have the API order info, let's at least use that - summary = `${orderTitle} ${sellToken} for ${buyToken}` + summary = `${orderTitle} ${sellToken} ` + t`for` + ` ${buyToken}` } if (owner && receiver && receiver !== owner) { - summary += ` to ${shortenAddress(receiver)}` + summary += ` ` + t`to` + ` ${shortenAddress(receiver)}` } return summary diff --git a/apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts b/apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts index 1c67ff2416..8fcb7eced2 100644 --- a/apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +++ b/apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts @@ -2,6 +2,8 @@ import { getChainIdImmediately } from '@cowprotocol/common-utils' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { JsonRpcProvider, Provider } from '@ethersproject/providers' +import { t } from '@lingui/core/macro' + export async function assertProviderNetwork( chainId: SupportedChainId, provider: JsonRpcProvider | Provider, @@ -13,9 +15,11 @@ export async function assertProviderNetwork( if (!ethereumProvider || !ethereumProvider.isMetaMask || ethereumProvider.isRabby) return chainId const network = await getChainIdImmediately(provider) + const networkString = network ? network.toString() : '' + if (network !== chainId) { throw new Error( - `Wallet chainId differs from app chainId. Wallet: ${network}, App: ${chainId}. Action: ${description}`, + t`Wallet chainId differs from app chainId. Wallet: ${networkString}, App: ${chainId}. Action: ${description}`, ) } diff --git a/apps/cowswap-frontend/src/common/utils/isOrderCancellable.test.ts b/apps/cowswap-frontend/src/common/utils/isOrderCancellable.test.ts index 1fb3e664f2..a7fbd35918 100644 --- a/apps/cowswap-frontend/src/common/utils/isOrderCancellable.test.ts +++ b/apps/cowswap-frontend/src/common/utils/isOrderCancellable.test.ts @@ -5,7 +5,7 @@ import { Order, OrderStatus } from 'legacy/state/orders/actions' import { isOrderCancellable } from './isOrderCancellable' // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('isOrderCancellable', () => { it('When order cancellation in progress, the it cannot be cancelled', () => { const order = { diff --git a/apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx b/apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx index e3e8bca8d0..2a7bedb19b 100644 --- a/apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +++ b/apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx @@ -7,66 +7,91 @@ import { PERCENTAGE_PRECISION, } from '@cowprotocol/common-const' -import { Trans } from '@lingui/macro' +import { i18n } from '@lingui/core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' export function getNativeOrderDeadlineTooltip(symbols: (string | undefined)[] | undefined): ReactNode { + const symbolName = symbols?.[0] || t`Native currency (e.g ETH)` + const minutes = MINIMUM_ETH_FLOW_DEADLINE_SECONDS / 60 + return ( - - {symbols?.[0] || 'Native currency (e.g ETH)'} orders require a minimum transaction expiration time threshold of{' '} - {MINIMUM_ETH_FLOW_DEADLINE_SECONDS / 60} minutes to ensure the best swapping experience. + <> + + {symbolName} orders require a minimum transaction expiration time threshold of {minutes} minutes to ensure the + best swapping experience +

- Orders not matched after the threshold time are automatically refunded. -
+ Orders not matched after the threshold time are automatically refunded. + ) } export function getNonNativeOrderDeadlineTooltip(): ReactNode { return ( - - Your swap expires and will not execute if it is pending for longer than the selected duration. + <> + Your swap expires and will not execute if it is pending for longer than the selected duration.

- {INPUT_OUTPUT_EXPLANATION} -
+ {i18n._(INPUT_OUTPUT_EXPLANATION)} + ) } -export const getNativeSlippageTooltip = (symbols: (string | undefined)[] | undefined): ReactNode => ( - - When selling {symbols?.[0] || 'a native currency'}, the minimum slippage tolerance is set to{' '} - {MINIMUM_ETH_FLOW_SLIPPAGE.toSignificant(PERCENTAGE_PRECISION)}% or higher to ensure a high likelihood of order - matching, even in volatile market conditions. -
-
- {symbols?.[0] || 'Native currency'} orders can, in rare cases, be frontrun due to their on-chain component. For more - robust MEV protection, consider wrapping your {symbols?.[0] || 'native currency'} before trading. -
-) +export const getNativeSlippageTooltip = (symbols: (string | undefined)[] | undefined): ReactNode => { + const minimumETHFlowSlippage = MINIMUM_ETH_FLOW_SLIPPAGE.toSignificant(PERCENTAGE_PRECISION) + const aNativeCurrency = symbols?.[0] || t`a native currency` + const currencyNameCapitalized = symbols?.[0] || t`Native currency` + const currencyName = symbols?.[0] || t`native currency` + + return ( + <> + + When selling {aNativeCurrency}, the minimum slippage tolerance is set to {minimumETHFlowSlippage}% or higher to + ensure a high likelihood of order matching, even in volatile market conditions. + +
+
+ + {currencyNameCapitalized} orders can, in rare cases, be frontrun due to their on-chain component. For more + robust MEV protection, consider wrapping your {currencyName} before trading. + + + ) +} export const getNonNativeSlippageTooltip = (params?: { isDynamic?: boolean; isSettingsModal?: boolean }): ReactNode => ( - + <> {params?.isDynamic ? ( <> - CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting - the best price.{' '} + + CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting + the best price. + {' '} {params?.isSettingsModal ? ( <> - To override this, enter your desired slippage amount. -
-
- Either way, your slippage is protected from MEV! + + To override this, enter your desired slippage amount. +
+
+ Either way, your slippage is protected from MEV! +
) : ( <> -
-
- Trades are protected from MEV, so your slippage can't be exploited! + +
+
+ Trades are protected from MEV, so your slippage can't be exploited! +
)} ) : ( - <>CoW Swap trades are protected from MEV, so your slippage can't be exploited! + <> + CoW Swap trades are protected from MEV, so your slippage can't be exploited! + )} -
+ ) diff --git a/apps/cowswap-frontend/src/i18n.tsx b/apps/cowswap-frontend/src/i18n.tsx index c07a30cb4c..caa94df898 100644 --- a/apps/cowswap-frontend/src/i18n.tsx +++ b/apps/cowswap-frontend/src/i18n.tsx @@ -1,6 +1,7 @@ import { ReactNode, useCallback } from 'react' -import { SupportedLocale } from '@cowprotocol/common-const' +import { DEFAULT_LOCALE, SupportedLocale } from '@cowprotocol/common-const' +import { isLinguiInternationalizationEnabled } from '@cowprotocol/common-utils' import { initialLocale, useActiveLocale } from 'legacy/hooks/useActiveLocale' import { useUserLocaleManager } from 'legacy/state/user/hooks' @@ -13,14 +14,14 @@ dynamicActivate(initialLocale) // eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function LanguageProvider({ children }: { children: ReactNode }) { const locale = useActiveLocale() - const [, setUserLocale] = useUserLocaleManager() + const { setLocale } = useUserLocaleManager() const onActivate = useCallback( (locale: SupportedLocale) => { document.documentElement.setAttribute('lang', locale) - setUserLocale(locale) // stores the selected locale to persist across sessions + setLocale(isLinguiInternationalizationEnabled ? locale : DEFAULT_LOCALE) // stores the selected locale to persist across sessions }, - [setUserLocale] + [setLocale], ) return ( diff --git a/apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx b/apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx index d3652d4014..caa049660a 100644 --- a/apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx @@ -4,6 +4,7 @@ import FeedbackIcon from '@cowprotocol/assets/cow-swap/feedback.svg' import { Media } from '@cowprotocol/ui' import { useWalletDetails, useWalletInfo } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' import { isAppziEnabled, openFeedbackAppzi } from 'appzi' import { transparentize } from 'color2k' import SVG from 'react-inlinesvg' @@ -79,7 +80,7 @@ export default function Appzi({ menuTitle }: AppziButtonProps) { return ( {menuTitle && {menuTitle}} - + ) } diff --git a/apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx b/apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx index e718f0f132..0c47a573b5 100644 --- a/apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx @@ -1,7 +1,6 @@ - import { HoverTooltip } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { AlertCircle } from 'react-feather' import styled from 'styled-components/macro' @@ -28,7 +27,7 @@ const ActiveDot = styled.span` // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export default function RangeBadge({ removed, inRange, @@ -49,7 +48,8 @@ export default function RangeBadge({ ) : inRange ? ( - The price of this pool is within your selected range. Your position is currently earning fees. @@ -64,7 +64,8 @@ export default function RangeBadge({ ) : ( - The price of this pool is outside of your selected range. Your position is not currently earning fees. diff --git a/apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx b/apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx index 9f47241d1a..7b0ae4f845 100644 --- a/apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx @@ -3,7 +3,7 @@ import React, { MouseEvent } from 'react' import { useCopyClipboard } from '@cowprotocol/common-hooks' import { UI } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { CheckCircle, Copy } from 'react-feather' import styled, { DefaultTheme, StyledComponentProps } from 'styled-components/macro' import { LinkStyledButton } from 'theme' diff --git a/apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx b/apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx index 5ddb907761..96dbdf8387 100644 --- a/apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx @@ -1,6 +1,6 @@ import { Media, TokenAmount } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import CowProtocolLogo from 'legacy/components/CowProtocolLogo' @@ -38,17 +38,14 @@ const CowBalance = ({ balance, title }: CowBalanceProps) => { - {title && ( - - {title} - - )} + {title && {title}}
- Your combined balance + + Your combined balance +

- {' '}

diff --git a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx index bc27430417..9efebc9860 100644 --- a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +++ b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx @@ -3,6 +3,7 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { TokenAmount, UI } from '@cowprotocol/ui' import { CurrencyAmount } from '@uniswap/sdk-core' +import { Trans } from '@lingui/react/macro' import { lighten, transparentize } from 'color2k' import styled from 'styled-components/macro' @@ -76,7 +77,7 @@ const SubsidyTr = styled.tr<{ selected?: boolean; darkMode?: boolean }>` ${ /* TODO: Break down this large function into smaller functions */ - /* eslint-disable-next-line max-lines-per-function */ + ({ selected, theme }) => selected && ` @@ -175,8 +176,12 @@ function SubsidyTable({ discount }: CowSubsidy) { - (v)COW balance - Fee discount + + (v)COW balance + + + Fee discount + diff --git a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts index 6bd8942b02..f36fb84563 100644 --- a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts +++ b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts @@ -1,5 +1,9 @@ +import { t } from '@lingui/core/macro' + +const getSubsidyInfoMessage = (): string => t`(v)COW token holders are eligible for a fee discount` + // used in modal and popover -export const SUBSIDY_INFO_MESSAGE = '(v)COW token holders are eligible for a fee discount' +export const SUBSIDY_INFO_MESSAGE = getSubsidyInfoMessage() export const COW_SUBSIDY_DATA: [string, number][] = [ ['0', 0], diff --git a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx index c294e12164..08035b64d3 100644 --- a/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx @@ -4,6 +4,8 @@ import { ExternalLink, Row } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { Text } from 'rebass' import { AutoColumn } from 'legacy/components/Column' @@ -53,18 +55,18 @@ export default function CowSubsidyModal({ const TopContent = useCallback( () => , - [account, balance, subsidy] + [account, balance, subsidy], ) const BottomContent = useCallback( () => ( - Read more about the tokenomics + Read more about the tokenomics ), - [] + [], ) if (!chainId) return null @@ -74,7 +76,7 @@ export default function CowSubsidyModal({ { -

Sorry, we were unable to load the requested page.

- This could have happened due to the lack of internet or the release of a new version of the application. + Sorry, we were unable to load the requested page. +

+

+ + This could have happened due to the lack of internet or the release of a new version of the application. +

- {cowNoConnectionIMGCache && } + {cowNoConnectionIMGCache && }
diff --git a/apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx b/apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx index 796d35200f..10cd310015 100644 --- a/apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +++ b/apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx @@ -5,7 +5,8 @@ import { CODE_LINK, DISCORD_LINK } from '@cowprotocol/common-const' import { userAgent } from '@cowprotocol/common-utils' import { AutoRow, MEDIA_WIDTHS, ExternalLink, UI, Media } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { ThemedText } from 'theme' @@ -74,7 +75,7 @@ export const ErrorWithStackTrace = ({ error }: { error: Error }) => { Something went wrong - CowSwap Error + {t`CowSwap diff --git a/apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx b/apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx index fe2a2c935b..c88c349cb8 100644 --- a/apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx @@ -6,6 +6,8 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { ExternalLink } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' + interface PropsBase extends PropsWithChildren { // type?: BlockExplorerLinkType label?: string @@ -41,6 +43,7 @@ export function ExplorerLink(props: Props): ReactNode { const { className } = props const linkContent = getContent(chainId, props) + return ( {linkContent} @@ -70,7 +73,7 @@ function getContent(chainId: SupportedChainId, props: Props): ReactNode { return props.children } - const linkLabel = props.type === 'composable-order' ? 'View on Safe' : getLabel(chainId, props) + const linkLabel = props.type === 'composable-order' ? t`View on Safe` : getLabel(chainId, props) return ( <> diff --git a/apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx b/apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx index 3c488ba695..1bd51b6971 100644 --- a/apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx @@ -1,5 +1,6 @@ import { useTheme } from '@cowprotocol/common-hooks' +import { Trans } from '@lingui/react/macro' import { transparentize } from 'color2k' import styled from 'styled-components/macro' @@ -36,7 +37,7 @@ export const Loading: React.FC = () => { return ( - Loading... + Loading... ) } diff --git a/apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx b/apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx index 7f4afcf87a..5b9daeeb34 100644 --- a/apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx @@ -9,7 +9,7 @@ import { Media } from '@cowprotocol/ui' import { useIsRabbyWallet, useIsSmartContractWallet, useWalletInfo, useIsSafeViaWc } from '@cowprotocol/wallet' import { useWalletProvider } from '@cowprotocol/wallet-provider' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { darken, transparentize } from 'color2k' import { AlertTriangle, ChevronDown } from 'react-feather' import styled from 'styled-components/macro' @@ -198,7 +198,7 @@ export function NetworkSelector(): ReactNode { <> - Switch Network + Switch Network diff --git a/apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx b/apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx index fd1aef93ef..228244560a 100644 --- a/apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx @@ -1,7 +1,7 @@ import { FiatAmount, HoverTooltip } from '@cowprotocol/ui' import { CurrencyAmount, Token } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { useUsdAmount } from 'modules/usdAmount' @@ -24,7 +24,10 @@ export function FiatBalanceCell({ balance }: FiatBalanceCellProps) { ) : ( $ 0.00 - Value may be zero due to missing token price information}> + Value may be zero due to missing token price information} + > diff --git a/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx b/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx index 3e5c134abf..a0d5c438ec 100644 --- a/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx @@ -8,7 +8,8 @@ import { closableBannersStateAtom, Loader } from '@cowprotocol/ui' import { BigNumber } from '@ethersproject/bignumber' import { CurrencyAmount } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { useErrorModal } from 'legacy/hooks/useErrorMessageAndModal' import { useToggleWalletModal } from 'legacy/state/application/hooks' @@ -209,13 +210,17 @@ export function TokenTable({ # handleSort(SORT_FIELD.NAME)}> - Token {arrow(SORT_FIELD.NAME)} + Token {arrow(SORT_FIELD.NAME)} (account ? handleSort(SORT_FIELD.BALANCE) : false)} */> - Balance {arrow(SORT_FIELD.BALANCE)} + Balance {arrow(SORT_FIELD.BALANCE)} - - + + {children && !isDelegateBannerDismissed && {children}} @@ -250,7 +255,9 @@ export function TokenTable({ }) ) : query?.trim() ? ( -

No results found ¯\_(ツ)_/¯

+

+ No results found ¯\_(ツ)_/¯ +

) : ( @@ -267,9 +274,7 @@ export function TokenTable({ - - {'Page ' + page + ' of ' + maxPage} - + {t`Page ${page} of ${maxPage}`} setPage(nextPage)}> diff --git a/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx b/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx index 6f672b578f..f34995055a 100644 --- a/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +++ b/apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx @@ -11,6 +11,8 @@ import { Loader, TokenAmount, TokenName, TokenSymbol } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' import { CurrencyAmount, MaxUint256, Token } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import SVG from 'react-inlinesvg' import { Link } from 'react-router' @@ -113,7 +115,10 @@ export const TokensTableRow = ({ // TODO: make a separate hook out of this and add GA try { openApproveModal(tokenData?.symbol) - await approveCallback(amountToApprove, `Approve ${tokenData?.symbol || 'token'}`) + + const symbol = tokenData?.symbol || t`token` + await approveCallback(amountToApprove, t`Approve ${symbol}`) + // TODO: Replace any with proper type definitions // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { @@ -155,19 +160,29 @@ export const TokensTableRow = ({ } if (approvalState === ApprovalState.APPROVED || balanceLessThanAllowance) { - return Approved ✓ + return ( + + Approved ✓ + + ) } if (!account || approvalState === ApprovalState.NOT_APPROVED) { if (isFractionFalsy(allowance)) { - return Approve + return ( + + Approve + + ) } return ( - Approve all + + Approve all + - Approved:{' '} + Approved:{' '} @@ -213,7 +228,7 @@ export const TokensTableRow = ({ <> - + {displayApproveContent} diff --git a/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/UnsupportedCurrencyFooterMod.tsx b/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/UnsupportedCurrencyFooterMod.tsx index 369f1fe618..ca9cc5e9c0 100644 --- a/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/UnsupportedCurrencyFooterMod.tsx +++ b/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/UnsupportedCurrencyFooterMod.tsx @@ -6,7 +6,8 @@ import { AutoRow, ButtonEmpty, ExternalLink, Media, RowBetween } from '@cowproto import { useWalletInfo } from '@cowprotocol/wallet' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { MessageDescriptor } from '@lingui/core' +import { useLingui } from '@lingui/react/macro' import styled from 'styled-components/macro' import { ThemedText, Z_INDEX, CloseIcon } from 'theme' @@ -48,16 +49,16 @@ export const AddressText = styled(ThemedText.Blue)` ` export interface UnsupportedCurrencyFooterParams { - show: boolean currencies: (Currency | null | undefined)[] - detailsTitle?: React.ReactNode detailsText?: React.ReactNode - showDetailsText?: React.ReactNode + detailsTitle?: MessageDescriptor + show: boolean + showDetailsText?: MessageDescriptor } // TODO: Break down this large function into smaller functions // TODO: Add proper return type annotation -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type export default function UnsupportedCurrencyFooter({ show, currencies, @@ -65,16 +66,15 @@ export default function UnsupportedCurrencyFooter({ detailsText, showDetailsText, }: UnsupportedCurrencyFooterParams) { + const { i18n } = useLingui() const { chainId } = useWalletInfo() const [showDetails, setShowDetails] = useState(false) - const tokens = chainId && currencies ? currencies.map((currency) => { return currency && getWrappedToken(currency) }) : [] - const isUnsupportedToken = useIsUnsupportedToken() return ( @@ -83,9 +83,7 @@ export default function UnsupportedCurrencyFooter({ - - {detailsTitle} - + {detailsTitle ? i18n._(detailsTitle) : ''} setShowDetails(false)} /> {tokens.map((token) => { @@ -109,16 +107,14 @@ export default function UnsupportedCurrencyFooter({ ) })} - - {detailsText} - + {detailsText} setShowDetails(true)}> - {showDetailsText} + {showDetailsText ? i18n._(showDetailsText) : ''} diff --git a/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx b/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx index 0a8ead872f..7ad24addeb 100644 --- a/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +++ b/apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx @@ -1,5 +1,8 @@ import { UNSUPPORTED_TOKENS_FAQ_URL } from '@cowprotocol/common-const' +import { MessageDescriptor } from '@lingui/core' +import { msg } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { transparentize } from 'color2k' import { NavLink } from 'react-router' import styled from 'styled-components/macro' @@ -9,21 +12,23 @@ import UnsupportedCurrencyFooterMod, { UnsupportedCurrencyFooterParams, } from './UnsupportedCurrencyFooterMod' -const DEFAULT_DETAILS_TEXT = ( +const DEFAULT_DETAILS_TEXT: React.ReactNode = (
- CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract methods - which do not operate optimally with CoW Protocol. -

- For more information, please refer to the{' '} - - FAQ - - . -

+ + CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract + methods which do not operate optimally with CoW Protocol. +

+ For more information, please refer to the{' '} + + FAQ + + . +

+
) -const DEFAULT_DETAILS_TITLE = 'Unsupported Token' -const DEFAULT_SHOW_DETAILS_TEXT = 'Read more about unsupported tokens' +const DEFAULT_DETAILS_TITLE: MessageDescriptor = msg`Unsupported Token` +const DEFAULT_SHOW_DETAILS_TEXT: MessageDescriptor = msg`Read more about unsupported tokens` type Props = Omit & { currencies?: UnsupportedCurrencyFooterParams['currencies'] diff --git a/apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts b/apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts index 718a9abbae..ee97f82fcd 100644 --- a/apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts +++ b/apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts @@ -6,6 +6,7 @@ import { useWalletInfo } from '@cowprotocol/wallet' import { useWalletProvider } from '@cowprotocol/wallet-provider' import type { SafeMultisigTransactionResponse } from '@safe-global/safe-core-sdk-types' +import { t } from '@lingui/core/macro' import { RetryResult } from 'types' const DEFAULT_RETRY_OPTIONS: RetryOptions = { n: 3, minWait: 1000, maxWait: 3000 } @@ -20,7 +21,7 @@ export function useGetSafeTxInfo(): GetSafeTxInfo { (hash) => { return retry(() => { if (!provider) { - throw new Error('There is no provider to get Gnosis safe info') + throw new Error(t`There is no provider to get Gnosis safe info`) } return getSafeTransaction(chainId, hash, provider) diff --git a/apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts b/apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts index 0249a03630..9080ec16f6 100644 --- a/apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +++ b/apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts @@ -15,6 +15,8 @@ import { Contract } from '@ethersproject/contracts' import { TransactionResponse } from '@ethersproject/providers' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' + import { useTransactionAdder } from 'legacy/state/enhancedTransactions/hooks' import { CowSwapAnalyticsCategory } from 'common/analytics/types' @@ -111,10 +113,10 @@ export async function wrapUnwrapCallback( useModals && closeModals() const isRejected = isRejectRequestProviderError(error) - const action = isRejected ? 'Reject' : 'Error' + const action = isRejected ? t`Reject` : t`Error` sendWrapEvent(analytics, action as WrapAction, operationMessage, amount) - const errorMessage = (isRejected ? 'Reject' : 'Error') + ' Signing transaction' + const errorMessage = (isRejected ? t`Reject` : t`Error`) + ' ' + t`Signing transaction` console.error(errorMessage, error) if (isRejected) { @@ -131,11 +133,13 @@ function getWrapDescription( inputAmount: CurrencyAmount, ): WrapDescription { const { native, wrapped } = getChainCurrencySymbols(chainId) - const baseSummarySuffix = isWrap ? `${native} to ${wrapped}` : `${wrapped} to ${native}` - const baseSummary = `${formatTokenAmount(inputAmount)} ${baseSummarySuffix}` - const summary = `${isWrap ? 'Wrap' : 'Unwrap'} ${baseSummary}` - const confirmationMessage = `${isWrap ? 'Wrapping' : 'Unwrapping'} ${baseSummary}` - const operationMessage = isWrap ? 'Wrapping ' + native : 'Unwrapping ' + wrapped + const amountStr = formatTokenAmount(inputAmount) + const summary = isWrap ? t`Wrap ${amountStr} ${native} to ${wrapped}` : t`Unwrap ${amountStr} ${wrapped} to ${native}` + const confirmationMessage = isWrap + ? t`Wrapping ${amountStr} ${native} to ${wrapped}` + : t`Unwrapping ${amountStr} ${wrapped} to ${native}` + // Keep analytics label un-translated on purpose + const operationMessage = isWrap ? t`Wrapping` + ' ' + native : t`Unwrapping` + ' ' + wrapped return { summary, diff --git a/apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts b/apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts index 4650b663ee..05ea66df73 100644 --- a/apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +++ b/apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts @@ -7,6 +7,7 @@ import type { BigNumber } from '@ethersproject/bignumber' import { TransactionResponse } from '@ethersproject/providers' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { useLingui } from '@lingui/react/macro' import useSWR from 'swr' import { GAS_LIMIT_DEFAULT } from 'common/constants/common' @@ -97,22 +98,23 @@ export function useVCowData(): VCowData { export function useSwapVCowCallback({ openModal, closeModal }: SwapVCowCallbackParams) { const { account } = useWalletInfo() const { contract: vCowContract, chainId } = useVCowContract() + const { t } = useLingui() const addTransaction = useTransactionAdder() const vCowToken = chainId ? V_COW[chainId] : undefined return useCallback(async () => { if (!account) { - throw new Error('Not connected') + throw new Error(t`Not connected`) } if (!chainId) { - throw new Error('No chainId') + throw new Error(t`No chainId`) } if (!vCowContract) { - throw new Error('vCOW contract not present') + throw new Error(t`vCOW contract not present`) } if (!vCowToken) { - throw new Error('vCOW token not present') + throw new Error(t`vCOW token not present`) } const estimatedGas = await vCowContract.estimateGas.swapAll({ from: account }).catch(() => { @@ -140,7 +142,7 @@ export function useSwapVCowCallback({ openModal, closeModal }: SwapVCowCallbackP }) }) .finally(closeModal) - }, [account, addTransaction, chainId, closeModal, openModal, vCowContract, vCowToken]) + }, [account, addTransaction, chainId, closeModal, openModal, t, vCowContract, vCowToken]) } /** diff --git a/apps/cowswap-frontend/src/legacy/state/enhancedTransactions/reducer.test.ts b/apps/cowswap-frontend/src/legacy/state/enhancedTransactions/reducer.test.ts index a7899cecd4..aeac50a5a7 100644 --- a/apps/cowswap-frontend/src/legacy/state/enhancedTransactions/reducer.test.ts +++ b/apps/cowswap-frontend/src/legacy/state/enhancedTransactions/reducer.test.ts @@ -4,7 +4,7 @@ import { addTransaction, checkedTransaction, clearAllTransactions, finalizeTrans import reducer, { HashType, initialState, EnhancedTransactionState } from './reducer' // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('transaction reducer', () => { let store: Store @@ -41,7 +41,7 @@ describe('transaction reducer', () => { }) // TODO: Break down this large function into smaller functions - // eslint-disable-next-line max-lines-per-function + describe('finalizeTransaction', () => { it('no op if not valid transaction', () => { store.dispatch( @@ -107,7 +107,7 @@ describe('transaction reducer', () => { }) // TODO: Break down this large function into smaller functions - // eslint-disable-next-line max-lines-per-function + describe('checkedTransaction', () => { it('no op if not valid transaction', () => { store.dispatch( diff --git a/apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx b/apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx index 9a75ccd3d2..2a66788f26 100644 --- a/apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx +++ b/apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx @@ -2,6 +2,8 @@ import { ReactElement } from 'react' import { BlockExplorerLinkType, formatOrderId } from '@cowprotocol/common-utils' +import { t } from '@lingui/core/macro' + import { OrderStatus } from './actions' import { OrderObject, OrdersStateNetwork } from './reducer' @@ -47,7 +49,7 @@ type TxnPopupContent = PopupContent function setOrderSummary({ id, summary, status, descriptor }: SetOrderSummaryParams) { // If there isn't summary, return generalized summary if (!summary) { - return `Order ${formatOrderId(id)} ${descriptor || status || ''}` + return t`Order` + ' ' + `${formatOrderId(id)} ${descriptor || status || ''}` } if (typeof summary === 'string') { diff --git a/apps/cowswap-frontend/src/legacy/state/orders/middleware/appziMiddleware.test.ts b/apps/cowswap-frontend/src/legacy/state/orders/middleware/appziMiddleware.test.ts index fd59299662..94140a66d2 100644 --- a/apps/cowswap-frontend/src/legacy/state/orders/middleware/appziMiddleware.test.ts +++ b/apps/cowswap-frontend/src/legacy/state/orders/middleware/appziMiddleware.test.ts @@ -41,7 +41,7 @@ const BASE_ORDER = { } // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('appziMiddleware', () => { beforeEach(() => { jest.clearAllMocks() diff --git a/apps/cowswap-frontend/src/legacy/state/orders/middleware/soundMiddleware.test.ts b/apps/cowswap-frontend/src/legacy/state/orders/middleware/soundMiddleware.test.ts index e6460fa24e..f7e995af80 100644 --- a/apps/cowswap-frontend/src/legacy/state/orders/middleware/soundMiddleware.test.ts +++ b/apps/cowswap-frontend/src/legacy/state/orders/middleware/soundMiddleware.test.ts @@ -14,7 +14,7 @@ const actionMock = mock() jest.mock('modules/sounds') // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('soundMiddleware', () => { beforeEach(() => { resetCalls(actionMock) diff --git a/apps/cowswap-frontend/src/legacy/state/orders/orderPrice.test.ts b/apps/cowswap-frontend/src/legacy/state/orders/orderPrice.test.ts index 442a79e92d..837fc58810 100644 --- a/apps/cowswap-frontend/src/legacy/state/orders/orderPrice.test.ts +++ b/apps/cowswap-frontend/src/legacy/state/orders/orderPrice.test.ts @@ -58,7 +58,7 @@ describe('getEstimatedExecutionPrice()', () => { }) // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('getRemainderAmountsWithoutSurplus()', () => { it('Should return the remainder amounts without the surplus', () => { const fee = new BigNumber(0.00016).times(10 ** WETH_MAINNET.decimals).toString() diff --git a/apps/cowswap-frontend/src/legacy/state/orders/utils.test.ts b/apps/cowswap-frontend/src/legacy/state/orders/utils.test.ts index e34c1cb8b7..391dd62b04 100644 --- a/apps/cowswap-frontend/src/legacy/state/orders/utils.test.ts +++ b/apps/cowswap-frontend/src/legacy/state/orders/utils.test.ts @@ -20,7 +20,7 @@ ORDER.sellAmountBeforeFee = '1000' ORDER.buyAmount = '1000' // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('isOrderUnfillable', () => { describe('sell order', () => { const order = { ...ORDER, kind: OrderKind.SELL } @@ -125,7 +125,7 @@ describe('isOrderUnfillable', () => { }) // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + describe('classifyOrder', () => { const BASE_ORDER: Parameters[0] = { uid: '0x0000000000...', diff --git a/apps/cowswap-frontend/src/legacy/state/user/hooks.tsx b/apps/cowswap-frontend/src/legacy/state/user/hooks.tsx index 310d061e16..2e8954ac8a 100644 --- a/apps/cowswap-frontend/src/legacy/state/user/hooks.tsx +++ b/apps/cowswap-frontend/src/legacy/state/user/hooks.tsx @@ -40,7 +40,10 @@ export function useUserLocale(): SupportedLocale | null { return useAppSelector((state) => state.user.userLocale) } -export function useUserLocaleManager(): [SupportedLocale | null, (newLocale: SupportedLocale) => void] { +export function useUserLocaleManager(): { + locale: SupportedLocale | null + setLocale: (newLocale: SupportedLocale) => void +} { const dispatch = useAppDispatch() const locale = useUserLocale() @@ -51,7 +54,7 @@ export function useUserLocaleManager(): [SupportedLocale | null, (newLocale: Sup [dispatch], ) - return [locale, setLocale] + return { locale, setLocale } } export function useHooksEnabled(): boolean { diff --git a/apps/cowswap-frontend/src/legacy/utils/trade.ts b/apps/cowswap-frontend/src/legacy/utils/trade.ts index f404fd708c..55a3cb3c31 100644 --- a/apps/cowswap-frontend/src/legacy/utils/trade.ts +++ b/apps/cowswap-frontend/src/legacy/utils/trade.ts @@ -19,6 +19,7 @@ import type { Signer } from '@ethersproject/abstract-signer' import type { JsonRpcSigner } from '@ethersproject/providers' import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' import { orderBookApi } from 'cowSdk' import { ChangeOrderStatusParams, Order, OrderStatus } from 'legacy/state/orders/actions' @@ -71,14 +72,18 @@ export function getOrderSubmitSummary( const sellToken = inputAmount.currency const buyToken = outputAmount.currency - const [inputQuantifier, outputQuantifier] = isSellOrder(kind) ? ['', 'at least '] : ['at most ', ''] + const [inputQuantifier, outputQuantifier] = isSellOrder(kind) ? ['', t`at least `] : [t`at most `, ''] const inputSymbol = formatSymbol(sellToken.symbol) const outputSymbol = formatSymbol(buyToken.symbol) // this already contains the fee in the fee amount when fee=0 const inputAmountValue = formatTokenAmount(feeAmount ? inputAmount.add(feeAmount) : inputAmount) const outputAmountValue = formatTokenAmount(outputAmount) - const base = `Swap ${inputQuantifier}${inputAmountValue} ${inputSymbol} for ${outputQuantifier}${outputAmountValue} ${outputSymbol}` + const base = + t`Swap` + + ` ${inputQuantifier} ${inputAmountValue} ${inputSymbol} ` + + t`for` + + ` ${outputQuantifier} ${outputAmountValue} ${outputSymbol}` if (recipient === account) { return base @@ -88,7 +93,7 @@ export function getOrderSubmitSummary( ? shortenAddress(recipientAddressOrName) : recipientAddressOrName - return `${base} to ${toAddress}` + return `${base} ` + t`to` + ` ${toAddress}` } } @@ -113,9 +118,10 @@ export function getSignOrderParams(params: PostOrderParams): SignOrderParams { quoteId, } = params const sellTokenAddress = sellToken.address + const stringifiedJSON = JSON.stringify(sellToken, undefined, 2) if (!sellTokenAddress) { - throw new Error(`Order params invalid sellToken address for token: ${JSON.stringify(sellToken, undefined, 2)}`) + throw new Error(t`Order params invalid sellToken address for token: ${stringifiedJSON}`) } const isSellTrade = isSellOrder(kind) @@ -227,7 +233,7 @@ export async function sendOrderCancellation(params: OrderCancellationParams): Pr const { signature, signingScheme } = await OrderSigningUtils.signOrderCancellation(orderId, chainId, signer) - if (!signature) throw new Error('Signature is undefined!') + if (!signature) throw new Error(t`Signature is undefined!`) await wrapErrorInOperatorError(async () => { await orderBookApi.sendSignedOrderCancellations( diff --git a/apps/cowswap-frontend/src/lib/README-LOCALIZATION.md b/apps/cowswap-frontend/src/lib/README-LOCALIZATION.md new file mode 100644 index 0000000000..ad06b0d2d0 --- /dev/null +++ b/apps/cowswap-frontend/src/lib/README-LOCALIZATION.md @@ -0,0 +1,120 @@ +# CowSwap Internationalization + +## Enable localization + +A feature flag / environment variable was added for disabling or enabling the loading of locales and the languages dropdown menu. Remember to add it to your local and production environments: + +``` +REACT_APP_LINGUI_INTERNATIONALIZATION=true +``` + +## Lingui + +Documentation: [https://lingui.dev/](https://lingui.dev/introduction) + +* Add the `CROWDIN_PERSONAL_TOKEN` to both the repo and your development computer: + + * **Repository**: Add it as a secret to allow GitHub Actions to authenticate with the Crowdin API. Go to *Settings → Secrets and Variables → Actions → Repository Secrets → New Repository Secret → `CROWDIN_PERSONAL_TOKEN`*. + * **Local development**: Add the environment variable on your machine so the CLI can authenticate with Crowdin. + +### Adding a new language to the app + +* Enable (uncomment) the new language (for example `fr-FR`) in `cowswap/lingui.config.ts`. +* Add the new language to the const `SUPPORTED_LOCALES` in `cowswap/libs/common-const/src/locales.ts` so it is available in the languages dropdown. +* Also enable the new language in Crowdin (see [Adding a new language in Crowdin](#adding-a-new-language-in-crowdin)). + +### Adding new strings to the app + +* Wrap new strings in Lingui macros: t\`\`, ``, `msg`, etc. depending on context. +* Build an updated language source file `en-US.po` with: + +``` +yarn run i18n +``` + +* Push your changes to the branch connected to your Crowdin project. +* Crowdin should automatically pick up the changes, or you can sync manually. + +## Crowdin + +Documentation: + +* [Crowdin main docs](https://support.crowdin.com/) +* [Crowdin CLI](https://support.crowdin.com/cli-tool/) +* [Crowdin GitHub integration](https://support.crowdin.com/github-integration/) + +### Creating an account and project + +1. Create an account at [https://crowdin.com/](https://crowdin.com/). +2. Create a `CROWDIN_PERSONAL_TOKEN`: *Account Settings → API → Personal Access Tokens → New Token*. + +* For testing, use "All scopes". For production, you can restrict permissions. +3. Create a project in Crowdin: + +* Add the project id to `cowswap/crowdin.yml`: + +``` +project_id: 'your-project-id' +``` + +* Name: e.g. `CowSwapDev` (name is arbitrary). +* Type: File-based project. +* Install the Onboarding app and configure: + + 1. Type: App (Web, Mobile, Game) + 2. Import content from: DVCS (GitHub, etc.) + 3. Translation approach: choose as needed (AI/MT, TM, etc.) +* Connect the repository: + + * *Setup Integration / Select "Source and translation files mode"* + * Select CowSwap’s repository + * Select a branch for translations + * Enable “Always import new translations from the repository” + * Enable “Push sources” so Crowdin creates PRs after translations change +* Activate languages in *Settings → Languages* (e.g. `es-ES` and `ru-RU`). This generates the `.po` files when `en-US.po` changes. +* Files sync hourly, or can be pushed manually via *Integrations → GitHub → Sync Now*. + +### Translation (first time) + +Note: This section only covers the basics, but Crowdin has plenty of extra settings and features available. + +1. Configure **pre-translation**: *Settings → Translation → Pre-Translate*. Enable all checkboxes: + +* TM Pre-translate +* MT Pre-translate +* AI Pre-translate +* Optionally: *Approve added translations / All* and *Crowdin Translate / All languages* + +2. Configure AI prompts: *Settings → AI / Pre-translation → \[+]*. Defaults are sufficient unless you need fine-tuning. + +3. Translate: + +* Dashboard → Hover on language row (e.g. Russian or Spanish) → Dropdown → Translate +* Select all strings +* Top right dropdown → Pre-translate: + + * Via: **AI**, **Machine Translation**, or **Translation Memory** + * Scope: selected strings + * Source: English (`en-US.po`) +* Click *Pre-translate*. Strings are added to a queue. After processing, translations appear alongside the source. +* Approve valid translations. +* Repeat for other languages. + +4. Trigger sync: *Integrations → GitHub → Sync Now*. A new branch + PR with translations will be created. + +### Adding new strings in Crowdin + +When new strings are added in `en-US.po`: + +* Dashboard → Hover on a language row → Dropdown → Translate +* Fill in the missing strings manually or with Crowdin tools +* Save / Approve changes +* Wait for automatic sync or push manually with *Sync Now* + +### Adding a new language in Crowdin + +After adding the language in Lingui and updating code: + +* Go to Crowdin → Project → *Settings → Languages* +* Add the new language +* Go to dashboard → Translate → Follow the same translation steps as [above](#translation-first-time) in "3. Translate" diff --git a/apps/cowswap-frontend/src/lib/i18n.tsx b/apps/cowswap-frontend/src/lib/i18n.tsx index a69b828f7f..32b17b281a 100644 --- a/apps/cowswap-frontend/src/lib/i18n.tsx +++ b/apps/cowswap-frontend/src/lib/i18n.tsx @@ -1,89 +1,26 @@ import { ReactNode, useEffect } from 'react' import { DEFAULT_LOCALE, SupportedLocale } from '@cowprotocol/common-const' +import { isLinguiInternationalizationEnabled } from '@cowprotocol/common-utils' import { i18n } from '@lingui/core' import { I18nProvider } from '@lingui/react' -import { - af, - ar, - ca, - cs, - da, - de, - el, - en, - es, - fi, - fr, - he, - hu, - id, - it, - ja, - ko, - nl, - no, - pl, - pt, - ro, - ru, - sr, - sv, - sw, - tr, - uk, - vi, - zh, -} from 'make-plural/plurals' -import { PluralCategory } from 'make-plural/plurals' - -type LocalePlural = { - [key in SupportedLocale]: (n: number | string, ord?: boolean) => PluralCategory -} - -const plurals: LocalePlural = { - 'af-ZA': af, - 'ar-SA': ar, - 'ca-ES': ca, - 'cs-CZ': cs, - 'da-DK': da, - 'de-DE': de, - 'el-GR': el, - 'en-US': en, - 'es-ES': es, - 'fi-FI': fi, - 'fr-FR': fr, - 'he-IL': he, - 'hu-HU': hu, - 'id-ID': id, - 'it-IT': it, - 'ja-JP': ja, - 'ko-KR': ko, - 'nl-NL': nl, - 'no-NO': no, - 'pl-PL': pl, - 'pt-BR': pt, - 'pt-PT': pt, - 'ro-RO': ro, - 'ru-RU': ru, - 'sr-SP': sr, - 'sv-SE': sv, - 'sw-TZ': sw, - 'tr-TR': tr, - 'uk-UA': uk, - 'vi-VN': vi, - 'zh-CN': zh, - 'zh-TW': zh, - pseudo: en, -} // TODO: Add proper return type annotation // eslint-disable-next-line @typescript-eslint/explicit-function-return-type export async function dynamicActivate(locale: SupportedLocale) { - i18n.loadLocaleData(locale, { plurals: plurals[locale] }) try { + // Load default (en-US) catalog if internationalization is disabled + if (!isLinguiInternationalizationEnabled) { + const defaultCatalog = await import(`../locales/${DEFAULT_LOCALE}.po`) + + i18n.load(DEFAULT_LOCALE, defaultCatalog.messages || defaultCatalog.default.messages) + i18n.activate(DEFAULT_LOCALE) + return + } + const catalog = await import(`../locales/${locale}.po`) + // Bundlers will either export it as default or as a named export named default. i18n.load(locale, catalog.messages || catalog.default.messages) i18n.activate(locale) @@ -94,9 +31,9 @@ export async function dynamicActivate(locale: SupportedLocale) { } interface ProviderProps { + children: ReactNode locale: SupportedLocale onActivate?: (locale: SupportedLocale) => void - children: ReactNode } // TODO: Add proper return type annotation @@ -115,7 +52,6 @@ export function Provider({ locale, onActivate, children }: ProviderProps) { // as [there are no "default" messages](https://github.com/lingui/js-lingui/issues/388#issuecomment-497779030). // See https://github.com/lingui/js-lingui/issues/1194#issuecomment-1068488619. if (i18n.locale === undefined && locale === DEFAULT_LOCALE) { - i18n.loadLocaleData(DEFAULT_LOCALE, { plurals: plurals[DEFAULT_LOCALE] }) i18n.load(DEFAULT_LOCALE, {}) i18n.activate(DEFAULT_LOCALE) } diff --git a/apps/cowswap-frontend/src/locales/en-US.po b/apps/cowswap-frontend/src/locales/en-US.po new file mode 100644 index 0000000000..85dd692ccd --- /dev/null +++ b/apps/cowswap-frontend/src/locales/en-US.po @@ -0,0 +1,6189 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-08-22 15:17-0300\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en-US\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: " +#~ msgstr "Selected token: " + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "selected" +msgstr "selected" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "View token contract" +msgstr "View token contract" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Signature is undefined!" +msgstr "Signature is undefined!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "I just received surplus on" +msgstr "I just received surplus on" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "years" +msgstr "years" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Learn about surplus on CoW Swap" +msgstr "Learn about surplus on CoW Swap" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Retrieve COW tokens before or after a swap." +msgstr "Retrieve COW tokens before or after a swap." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Disconnect" +msgstr "Disconnect" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Bridge transaction" +msgstr "Bridge transaction" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Because you are using a smart contract wallet, you will pay a separate gas cost for signing the order placement on-chain." +msgstr "Because you are using a smart contract wallet, you will pay a separate gas cost for signing the order placement on-chain." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelled. Too many order cancellations" +msgstr "cancelled. Too many order cancellations" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Your Safe fallback handler was changed after TWAP orders were placed. All open TWAP orders are not getting created because of that. Please, update the fallback handler in order to make the orders work again." +msgstr "Your Safe fallback handler was changed after TWAP orders were placed. All open TWAP orders are not getting created because of that. Please, update the fallback handler in order to make the orders work again." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve operation failed." +msgstr "Approve operation failed." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Set to trade" +msgstr "Set to trade" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "To override this, enter your desired slippage amount.<0/><1/>Either way, your slippage is protected from MEV!" +msgstr "To override this, enter your desired slippage amount.<0/><1/>Either way, your slippage is protected from MEV!" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient allowance on the current account." +#~ msgstr "Order cannot be filled due to insufficient allowance on the current account." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "" +"Did you know? {benefit}\n" +"\n" +"Start swapping on swap.cow.fi #CoWSwap @CoWSwap 🐮" +msgstr "" +"Did you know? {benefit}\n" +"\n" +"Start swapping on swap.cow.fi #CoWSwap @CoWSwap 🐮" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to permit an address to spend your tokens on your behalf. This is useful for allowing a smart contract to spend your tokens without needing to approve each transaction." +msgstr "This hook allows you to permit an address to spend your tokens on your behalf. This is useful for allowing a smart contract to spend your tokens without needing to approve each transaction." + +#: apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx +msgid "<0>Connection Lost<1/>You appear to be offline. Some features may not work properly." +msgstr "<0>Connection Lost<1/>You appear to be offline. Some features may not work properly." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Total duration" +msgstr "Total duration" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrap {amountStr} {wrapped} to {native}" +msgstr "Unwrap {amountStr} {wrapped} to {native}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +msgid "in progress" +msgstr "in progress" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeWarning/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/index.tsx +msgid "Swap anyway" +msgstr "Swap anyway" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The hash for this Safe transaction." +msgstr "The hash for this Safe transaction." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation failed" +msgstr "Simulation failed" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Order {value} filled" +msgstr "Order {value} filled" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your {tokenSymbol}. If you approve the default amount, you will only have to do this once per token." +msgstr "You must give the CoW Protocol smart contracts permission to use your {tokenSymbol}. If you approve the default amount, you will only have to do this once per token." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receiving {nativeTokenSymbol} Refund..." +msgstr "Receiving {nativeTokenSymbol} Refund..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Partially fillable" +msgstr "Partially fillable" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx +msgid "Value may be zero due to missing token price information" +msgstr "Value may be zero due to missing token price information" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Type" +msgstr "Type" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {resStatus}" +msgstr "Unexpected response from BFF: {resStatus}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "orders history" +msgstr "orders history" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Bridging failed" +msgstr "Bridging failed" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "What is {accountProxyLabel}?" +msgstr "What is {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Your activity will appear here..." +msgstr "Your activity will appear here..." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Partially fillable)" +msgstr "(Partially fillable)" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try before you buy - see the potential fill price before you hit trade" +msgstr "Try before you buy - see the potential fill price before you hit trade" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol}" +msgstr "Wrap {nativeSymbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Order expires in" +msgstr "Order expires in" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "Network costs (est.)" +msgstr "Network costs (est.)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The account address which will/did receive the bought amount." +msgstr "The account address which will/did receive the bought amount." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: {sym}" +#~ msgstr "Selected token: {sym}" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Unexpected error fetching data: wrong format data" +msgstr "Unexpected error fetching data: wrong format data" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "is a helper contract that improves the user experience within CoW Swap for features like" +msgstr "is a helper contract that improves the user experience within CoW Swap for features like" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To" +msgstr "To" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Are you sure you want to cancel order <0>{shortId}?" +msgstr "Are you sure you want to cancel order <0>{shortId}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "My Custom Hooks ({customHooksCount})" +msgstr "My Custom Hooks ({customHooksCount})" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order won't execute and is protected if the market price dips more than your set price protection." +msgstr "Your TWAP order won't execute and is protected if the market price dips more than your set price protection." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {statusText}. Your account is deny-listed." +msgstr "The order cannot be {statusText}. Your account is deny-listed." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "The bridge provider modified the recipient address to <0/>. This ensure smooooth bridging." +msgstr "The bridge provider modified the recipient address to <0/>. This ensure smooooth bridging." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation was successful. Your transaction is expected to succeed." +msgstr "The Tenderly simulation was successful. Your transaction is expected to succeed." + +#: apps/cowswap-frontend/src/modules/injectedWidget/pure/WidgetParamsErrorsScreen/index.tsx +msgid "The are some errors with CoW Swap widget configuration" +msgstr "The are some errors with CoW Swap widget configuration" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Provide liquidity" +msgstr "Provide liquidity" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PostHookButton/index.tsx +msgid "Add Post-Hook Action" +msgstr "Add Post-Hook Action" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "The page you are looking for does not exist." +msgstr "The page you are looking for does not exist." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Start boooosting your yield!" +msgstr "Start boooosting your yield!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "replaced" +msgstr "replaced" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge via" +msgstr "Bridge via" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Trade your way - personalize the interface and customize your limit orders" +msgstr "Trade your way - personalize the interface and customize your limit orders" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Supported networks:" +msgstr "Supported networks:" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "EOA wallets" +msgstr "EOA wallets" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrapping {amountStr} {wrapped} to {native}" +msgstr "Unwrapping {amountStr} {wrapped} to {native}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Set any limit price and time horizon" +msgstr "Set any limit price and time horizon" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "token" +msgstr "token" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Please, top up {symbol} balance or cancel the order." +msgstr "Please, top up {symbol} balance or cancel the order." + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Easily set and manage your orders in USD" +msgstr "Easily set and manage your orders in USD" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Wrap {nativeSymbol}\" to try again." +msgstr "Click \"Wrap {nativeSymbol}\" to try again." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from inactive lists. Import specific tokens below or click Manage to activate more lists." +msgstr "Tokens from inactive lists. Import specific tokens below or click Manage to activate more lists." + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." +#~ msgstr "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "sell" +msgstr "sell" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "By connecting a wallet, you acknowledge that you have read, understood and agree to the interface’s <0>Terms & Conditions." +msgstr "By connecting a wallet, you acknowledge that you have read, understood and agree to the interface’s <0>Terms & Conditions." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "<0>By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one.<1><2>If you purchase a token from this list, you may not be able to sell it back." +msgstr "<0>By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one.<1><2>If you purchase a token from this list, you may not be able to sell it back." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#~ msgid "Your favorite saved tokens. Edit this list in your account page." +#~ msgstr "Your favorite saved tokens. Edit this list in your account page." + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "As soon as anything important or interesting happens, we will definitely let you know." +#~ msgstr "As soon as anything important or interesting happens, we will definitely let you know." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "SWAP order" +msgstr "SWAP order" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "y" +msgstr "y" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "This is the current market price, including the fee." +msgstr "This is the current market price, including the fee." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert to COW <0/>" +msgstr "Convert to COW <0/>" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +msgid "Dismiss" +msgstr "Dismiss" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Open" +msgstr "Open" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Refund completed!" +msgstr "Refund completed!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "When" +msgstr "When" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "30 Minutes" +msgstr "30 Minutes" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "" +"My CoW fortune cookie 🐮💬: \"{openFortuneText}\" \n" +"\n" +" Get yours at swap.cow.fi @CoWSwap" +msgstr "" +"My CoW fortune cookie 🐮💬: \"{openFortuneText}\" \n" +"\n" +" Get yours at swap.cow.fi @CoWSwap" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "amount per" +msgstr "amount per" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging failed. Refund started..." +msgstr "Bridging failed. Refund started..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Buy COW" +msgstr "Buy COW" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Reject" +msgstr "Reject" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "got" +msgstr "got" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{sellTokenPart} for at least {buyTokenPart}" +msgstr "{sellTokenPart} for at least {buyTokenPart}" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW..." +msgstr "Converting vCOW..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Run a simulation" +msgstr "Run a simulation" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "This CoW doesn't run away any more! Not from MEV!" +msgstr "This CoW doesn't run away any more! Not from MEV!" + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +#~ msgid "Recover funds from {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Recover funds from {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Max. swap slippage" +msgstr "Max. swap slippage" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "The sell amount per part of your TWAP order should be at least <0>$<1/>. Decrease the number of parts or increase the total sell amount." +msgstr "The sell amount per part of your TWAP order should be at least <0>$<1/>. Decrease the number of parts or increase the total sell amount." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Surplus" +msgstr "Surplus" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place multiple orders using the same balance" +msgstr "Place multiple orders using the same balance" + +#: apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "View details" +msgstr "View details" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "More" +msgstr "More" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was cancelled" +msgstr "Your order was cancelled" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Ninja Cow" +msgstr "Ninja Cow" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +msgid "Free" +msgstr "Free" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "Blocked Address" +msgstr "Blocked Address" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Considering current network costs (<0><1/> per chunk), you could save more by reducing the number of parts or switch to a {swapOrderLink}." +msgstr "Considering current network costs (<0><1/> per chunk), you could save more by reducing the number of parts or switch to a {swapOrderLink}." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit an address to spend one token on your behalf." +msgstr "Permit an address to spend one token on your behalf." + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "sold" +msgstr "sold" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Unlike most other exchanges, CoW Swap doesn't charge you any fees if your trade fails." +msgstr "Unlike most other exchanges, CoW Swap doesn't charge you any fees if your trade fails." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Failed to parse date and time provided" +msgstr "Failed to parse date and time provided" + +#: libs/common-const/src/common.ts +msgid "Only executed swaps incur fees." +msgstr "Only executed swaps incur fees." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Sell amount" +msgstr "Sell amount" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Unfillable" +msgstr "Unfillable" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Request timed out. Please try again." +msgstr "Request timed out. Please try again." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(modified)" +msgstr "(modified)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Month" +msgstr "1 Month" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "If you approve the full amount, you will only have to do this once per token." +msgstr "If you approve the full amount, you will only have to do this once per token." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#~ msgid "Infinite permit an address to spend one token on your behalf." +#~ msgstr "Infinite permit an address to spend one token on your behalf." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging completed!" +msgstr "Bridging completed!" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "Nothing new yet" +#~ msgstr "Nothing new yet" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "One-click convert, <0>boost yield" +msgstr "One-click convert, <0>boost yield" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Name, symbol or address" +msgstr "Name, symbol or address" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "No chainId" +msgstr "No chainId" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "h" +msgstr "h" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "When selling {aNativeCurrency}, the minimum slippage tolerance is set to {minimumETHFlowSlippage}% or higher to ensure a high likelihood of order matching, even in volatile market conditions." +msgstr "When selling {aNativeCurrency}, the minimum slippage tolerance is set to {minimumETHFlowSlippage}% or higher to ensure a high likelihood of order matching, even in volatile market conditions." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "If you believe this is an error, please send an email including your address to " +msgstr "If you believe this is an error, please send an email including your address to " + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "EthFlow contract ({actualContractAddress}) address don't match the expected address for chain {chainId} ({expectedContractAddress}). Please refresh the page and try again." +msgstr "EthFlow contract ({actualContractAddress}) address don't match the expected address for chain {chainId} ({expectedContractAddress}). Please refresh the page and try again." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Receive (before fees)" +msgstr "Receive (before fees)" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "The recipient address you inputted had the chain prefix <0>{chainPrefixWarning}, which is not the expected for the network you are in." +msgstr "The recipient address you inputted had the chain prefix <0>{chainPrefixWarning}, which is not the expected for the network you are in." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "On CoW Swap, orders placed at the same time are" +msgstr "On CoW Swap, orders placed at the same time are" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "for a total of" +msgstr "for a total of" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Sign (gas-free!) in your wallet..." +msgstr "Sign (gas-free!) in your wallet..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "If your order has not been filled by this date & time, it will expire. Don't worry - expirations and order placement are free on CoW Swap!" +msgstr "If your order has not been filled by this date & time, it will expire. Don't worry - expirations and order placement are free on CoW Swap!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Only proceed if you trust this provider." +msgstr "Only proceed if you trust this provider." + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "View jobs" +msgstr "View jobs" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +msgid "Your favorite saved tokens. Edit this list in the <0>Tokens page." +msgstr "Your favorite saved tokens. Edit this list in the <0>Tokens page." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This is the minimum amount that you will receive across your entire TWAP order, assuming all parts of the order execute." +msgstr "This is the minimum amount that you will receive across your entire TWAP order, assuming all parts of the order execute." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Withdraw Liquidity" +msgstr "CoW AMM Withdraw Liquidity" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Adding this app/hook grants it access to your wallet actions and trading information. Ensure you understand the implications." +msgstr "Adding this app/hook grants it access to your wallet actions and trading information. Ensure you understand the implications." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "(View on Explorer)" +msgstr "(View on Explorer)" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Loading {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Loading {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "The connection attempt failed. Please click try again and follow the steps to connect in your wallet." +msgstr "The connection attempt failed. Please click try again and follow the steps to connect in your wallet." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "CoW Shed setup is invalid!" +msgstr "CoW Shed setup is invalid!" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "COW token is not available on this network" +msgstr "COW token is not available on this network" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "CoW AMM only" +msgstr "CoW AMM only" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Scheduled" +msgstr "Scheduled" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve and Swap" +msgstr "Approve and Swap" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "Limit order" +msgstr "Limit order" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "Pool tokens" +msgstr "Pool tokens" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Cancelling order" +msgstr "Cancelling order" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "<0><1>Vested vCOW is the portion of your vCOW token balance, which is fully available to convert to COW token.<2>This includes any vCOW received through an <3>airdrop.<4>When converting your vested vCOW balance to COW, your entire vested balance will be converted." +msgstr "<0><1>Vested vCOW is the portion of your vCOW token balance, which is fully available to convert to COW token.<2>This includes any vCOW received through an <3>airdrop.<4>When converting your vested vCOW balance to COW, your entire vested balance will be converted." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown Hook" +msgstr "Unknown Hook" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Click to copy token contract address" +msgstr "Click to copy token contract address" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Unsupported Token" +msgstr "Unsupported Token" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Limit price (incl. costs)" +msgstr "Limit price (incl. costs)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Order receipt" +msgstr "Order receipt" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW forum" +msgstr "CoW forum" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Signing..." +msgstr "Signing..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" +#~ msgstr "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "You don't have any {orderTabState} orders at the moment." +#~ msgstr "You don't have any {orderTabState} orders at the moment." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Price Position" +msgstr "Limit Price Position" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Pre Hooks" +msgstr "Pre Hooks" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Maybe next time" +msgstr "Maybe next time" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Can't find the pool you're looking for?" +msgstr "Can't find the pool you're looking for?" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Order recipient address differs from order owner!" +msgstr "Order recipient address differs from order owner!" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Import intermediate token" +msgstr "Import intermediate token" + +#: libs/ui/src/pure/MenuBar/index.tsx +msgid "Language {locale} not found" +msgstr "Language {locale} not found" + +#: apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx +msgid "I understand" +msgstr "I understand" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Partial approval" +msgstr "Partial approval" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Safe bundle flow context is not ready" +msgstr "Safe bundle flow context is not ready" + +#: apps/cowswap-frontend/src/modules/tradeQuote/utils/getBridgeQuoteSigner.ts +msgid "No RPC provider available for chain ID: {chainId}" +msgstr "No RPC provider available for chain ID: {chainId}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Sell per part" +msgstr "Sell per part" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable Hooks" +msgstr "Enable Hooks" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim LlamaPay Vesting Hook" +msgstr "Claim LlamaPay Vesting Hook" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Seamlessly swap your tokens into CoW AMM pools" +msgstr "Seamlessly swap your tokens into CoW AMM pools" + +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Overview" +msgstr "Overview" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Loading operation" +msgstr "Loading operation" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: libs/common-const/src/common.ts +msgid "CoW Runner" +msgstr "CoW Runner" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 2" +msgstr "Proposal 2" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Signing" +msgstr "Signing" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Already seen today's fortune? Return tomorrow for a fresh one!" +msgstr "Already seen today's fortune? Return tomorrow for a fresh one!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures, <0>but not executed" +msgstr "Enough signatures, <0>but not executed" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Invalid order" +msgstr "Invalid order" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sending {nativeTokenSymbol}" +msgstr "Sending {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Tokens" +msgstr "Tokens" + +#: apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx +#: apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copied" +msgstr "Copied" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "Can't find your token on the list?" +msgstr "Can't find your token on the list?" + +#: apps/cowswap-frontend/src/modules/trade/pure/ReceiveAmountTitle/index.tsx +msgid "icon" +msgstr "icon" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Cancelling order with id {shortId}:<0/><1>{summary}" +msgstr "Cancelling order with id {shortId}:<0/><1>{summary}" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "Select {walletName} Account" +msgstr "Select {walletName} Account" + +#: apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx +msgid "Please connect your wallet to one of our supported networks." +msgstr "Please connect your wallet to one of our supported networks." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "<0>Read our guide on how to add custom tokens." +msgstr "<0>Read our guide on how to add custom tokens." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Retry" +msgstr "Retry" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The estimated time for the bridge transaction to complete." +msgstr "The estimated time for the bridge transaction to complete." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "months" +msgstr "months" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Delegate (v)COW" +msgstr "Delegate (v)COW" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "On CoW Swap, you can set limit orders for balances you don't have yet." +msgstr "On CoW Swap, you can set limit orders for balances you don't have yet." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Day" +msgstr "1 Day" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Smart contract" +msgstr "Smart contract" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Switch Network" +msgstr "Switch Network" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "warning" +msgstr "warning" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Available COW balance" +msgstr "Available COW balance" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "Bridge explorer" +msgstr "Bridge explorer" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You possibly have other items to claim, but not Airdrops" +msgstr "You possibly have other items to claim, but not Airdrops" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "APR" +msgstr "APR" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "CoW Protocol Explorer" +msgstr "CoW Protocol Explorer" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools" +msgstr "pools" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Failed" +msgstr "Failed" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The amount of extra tokens you get on top of your limit price." +msgstr "The amount of extra tokens you get on top of your limit price." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "sandwich-icon" +msgstr "sandwich-icon" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging to destination..." +msgstr "Bridging to destination..." + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low." +msgstr "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Actions" +msgstr "Actions" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Min received (incl. costs)" +msgstr "Min received (incl. costs)" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/index.tsx +msgid "Search name or paste address..." +msgstr "Search name or paste address..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Copy contract" +msgstr "Copy contract" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools available to get yield on your assets!" +msgstr "pools available to get yield on your assets!" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx +msgid "Confirm" +msgstr "Confirm" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Total vCOW balance" +msgstr "Total vCOW balance" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported token" +msgstr "Unsupported token" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approved" +msgstr "Approved" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "failed" +msgstr "failed" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Airdrop token chain ({tokenToClaimChainId}) and airdrop contract chain ({airdropChainId}) should match" +msgstr "Airdrop token chain ({tokenToClaimChainId}) and airdrop contract chain ({airdropChainId}) should match" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Protection from MEV by default" +msgstr "Protection from MEV by default" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too long" +msgstr "Interval time too long" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "to save on costs!" +msgstr "to save on costs!" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Swaps not supported" +msgstr "Swaps not supported" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +msgid "Some orders can not be cancelled!" +msgstr "Some orders can not be cancelled!" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Orders history" +msgstr "Orders history" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your <0/>." +msgstr "You must give the CoW Protocol smart contracts permission to use your <0/>." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "any token into CoW AMM pools to start benefiting from attractive APRs." +msgstr "any token into CoW AMM pools to start benefiting from attractive APRs." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "You don't have any {orderStatusText} orders at the moment." +msgstr "You don't have any {orderStatusText} orders at the moment." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong. But don't worry! <0>CoW Swap solvers are searching again for the best price for you." +msgstr "Something went wrong. But don't worry! <0>CoW Swap solvers are searching again for the best price for you." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "your orders" +msgstr "your orders" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Symbol" +msgstr "Symbol" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge transaction costs." +msgstr "Bridge transaction costs." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/DeadlineSelector/index.tsx +msgid "Custom" +msgstr "Custom" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Est. partial fill price" +msgstr "Est. partial fill price" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "Partial approval may block <0>{ordersWithPermitLenght} other orders" +#~ msgstr "Partial approval may block <0>{ordersWithPermitLenght} other orders" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +msgid "Loaded" +msgstr "Loaded" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient <0/> balance" +msgstr "Insufficient <0/> balance" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Claim LlamaPay Vesting Hook is a powerful and user-friendly feature designed to streamline the process of claiming funds from LlamaPay vesting contracts. This tool empowers users to easily access and manage their vested tokens, ensuring a smooth and efficient experience in handling time-locked assets." +msgstr "The Claim LlamaPay Vesting Hook is a powerful and user-friendly feature designed to streamline the process of claiming funds from LlamaPay vesting contracts. This tool empowers users to easily access and manage their vested tokens, ensuring a smooth and efficient experience in handling time-locked assets." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Open" +msgstr "Order Open" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "View contract" +msgstr "View contract" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Only \"sell\" orders are supported" +msgstr "Only \"sell\" orders are supported" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Surplus received" +msgstr "Surplus received" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signature is" +msgstr "signature is" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook can only be used as a <0>{hookType}-hook" +msgstr "This app/hook can only be used as a <0>{hookType}-hook" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Place limit order" +msgstr "Place limit order" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Insufficient {symbol} balance" +msgstr "Insufficient {symbol} balance" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "This hook is not compatible with your wallet" +msgstr "This hook is not compatible with your wallet" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started with limit orders" +msgstr "Get started with limit orders" + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "Minimize price impact with TWAP" +msgstr "Minimize price impact with TWAP" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to set partial token approvals instead of full approvals." +msgstr "Allows you to set partial token approvals instead of full approvals." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Switch to {wrappedNativeSymbol}" +msgstr "Switch to {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +#~ msgid "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" +#~ msgstr "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "creating" +msgstr "creating" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit a token" +msgstr "Permit a token" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Claimable amount" +msgstr "Claimable amount" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 1" +msgstr "Proposal 1" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "Select an {accountProxyLabelString} to check for available refunds {chain}" +msgstr "Select an {accountProxyLabelString} to check for available refunds {chain}" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Unsupported wallet" +msgstr "Unsupported wallet" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Expanded results from inactive Token Lists" +msgstr "Expanded results from inactive Token Lists" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks match your search." +msgstr "No hooks match your search." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "New to decentralised applications?" +msgstr "New to decentralised applications?" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Begin with TWAP Today!" +msgstr "Begin with TWAP Today!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Gas-free" +msgstr "Gas-free" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "5 Minutes" +msgstr "5 Minutes" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Share this win!" +msgstr "Share this win!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Create Order" +msgstr "Create Order" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Want to try out limit orders?" +msgstr "Want to try out limit orders?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "smart contracts (e.g. Safe)" +msgstr "smart contracts (e.g. Safe)" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Quote refresh in" +msgstr "Quote refresh in" + +#: apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Account" +msgstr "Account" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders are now easier to use. <0/> Give them a try" +msgstr "Limit orders are now easier to use. <0/> Give them a try" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Create an issue on GitHub" +msgstr "Create an issue on GitHub" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap has over 20 active solvers - more than any other exchange." +msgstr "CoW Swap has over 20 active solvers - more than any other exchange." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Cookie Policy" +msgstr "Cookie Policy" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be more than {PARTNER_FEE_MAX_BPS} BPS!" +msgstr "Partner fee can not be more than {PARTNER_FEE_MAX_BPS} BPS!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokensContent/index.tsx +msgid "Manage Token Lists" +msgstr "Manage Token Lists" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "No results found" +msgstr "No results found" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted. Too many order placements" +msgstr "accepted. Too many order placements" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Unknown token" +msgstr "Unknown token" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "Read more about the tokenomics" +msgstr "Read more about the tokenomics" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and got an extra " +msgstr "and got an extra " + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "s" +msgstr "s" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Cancelled" +msgstr "Order Cancelled" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "Please contact CoW Swap support!" +msgstr "Please contact CoW Swap support!" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "CoW AMM" +msgstr "CoW AMM" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "Too much time between parts" +msgstr "Too much time between parts" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +msgid "Swap and Bridge" +msgstr "Swap and Bridge" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "POST" +msgstr "POST" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "1/2 Confirm funds recovering" +msgstr "1/2 Confirm funds recovering" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Share on Twitter" +msgstr "Share on Twitter" + +#: apps/cowswap-frontend/src/common/pure/CurrencyArrowSeparator/index.tsx +#~ msgid "loading" +#~ msgstr "loading" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to choose a destination address for the swap other than the connected one." +msgstr "Allows you to choose a destination address for the swap other than the connected one." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Your account is affected by the AnySwap Hack" +msgstr "Your account is affected by the AnySwap Hack" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW vesting from locked GNO" +msgstr "COW vesting from locked GNO" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Limit price (incl.costs)" +msgstr "Limit price (incl.costs)" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Update fallback handler" +msgstr "Update fallback handler" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Please read more in this" +msgstr "Please read more in this" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee" +msgstr "Bungee" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "of" +msgstr "of" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "Error {verb} the order" +msgstr "Error {verb} the order" + +#: libs/common-const/src/common.ts +msgid "CoW Swap | The smartest way to trade cryptocurrencies" +msgstr "CoW Swap | The smartest way to trade cryptocurrencies" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "this order" +msgstr "this order" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "or" +msgstr "or" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "A minimum of <0>{time} between parts is required. Decrease the number of parts or increase the total duration." +msgstr "A minimum of <0>{time} between parts is required. Decrease the number of parts or increase the total duration." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "Remove list" +msgstr "Remove list" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "Help Center" +msgstr "Help Center" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee is a liquidity marketplace that lets you swap into any token on any chain in a fully abstracted manner. Trade any token with the best quotes and a gasless UX!" +msgstr "Bungee is a liquidity marketplace that lets you swap into any token on any chain in a fully abstracted manner. Trade any token with the best quotes and a gasless UX!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Market price" +msgstr "Market price" + +#: apps/cowswap-frontend/src/common/pure/CurrencyInputPanel/CurrencyInputPanel.tsx +msgid "Max" +msgstr "Max" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve, Swap & Bridge" +msgstr "Approve, Swap & Bridge" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Get the Time-Weighted Average Price by splitting your large order into parts" +msgstr "Get the Time-Weighted Average Price by splitting your large order into parts" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The bad news" +msgstr "The bad news" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Solver auction rankings" +msgstr "Solver auction rankings" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +#~ msgid "Follow these steps" +#~ msgstr "Follow these steps" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order will either be filled completely or not filled." +msgstr "This order will either be filled completely or not filled." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "On-chain cancellations require a regular on-chain transaction and cost gas." +msgstr "On-chain cancellations require a regular on-chain transaction and cost gas." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap failed" +msgstr "Swap failed" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Didn't find a suitable hook? You can always create your own! To do this, you need to specify which smart contract you want to call, the parameters for the call and the gas limit." +msgstr "Didn't find a suitable hook? You can always create your own! To do this, you need to specify which smart contract you want to call, the parameters for the call and the gas limit." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to WETH" +msgstr "Switch to WETH" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Great!" +msgstr "Great!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "View your private {accountProxyLabelString}" +msgstr "View your private {accountProxyLabelString}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "" +"Hey, I just {actionWord} an extra {surplus} on @CoWSwap! 🐮💸\n" +"\n" +"Start swapping on swap.cow.fi" +msgstr "" +"Hey, I just {actionWord} an extra {surplus} on @CoWSwap! 🐮💸\n" +"\n" +"Start swapping on swap.cow.fi" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect Wallet" +msgstr "Connect Wallet" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "View all orders" +msgstr "View all orders" + +#: apps/cowswap-frontend/src/modules/accountProxy/consts.ts +msgid "Need help" +msgstr "Need help" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "CoW Swap is the only token exchange that gets you extra tokens." +msgstr "CoW Swap is the only token exchange that gets you extra tokens." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Unvested" +msgstr "Unvested" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "(v)COW balance" +msgstr "(v)COW balance" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Closed" +msgstr "Closed" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "CoW Swap 404 not found" +msgstr "CoW Swap 404 not found" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Apply" +msgstr "Apply" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Price Updated" +msgstr "Price Updated" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Enter a hook dapp URL" +msgstr "Enter a hook dapp URL" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Total fee" +msgstr "Total fee" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "Recoverable balance" +msgstr "Recoverable balance" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid hook dapp ID format. The ID must be a 64-character hexadecimal string." +msgstr "Invalid hook dapp ID format. The ID must be a 64-character hexadecimal string." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Select custom token" +msgstr "Select custom token" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "dropdown icon" +msgstr "dropdown icon" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import List" +msgstr "Import List" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "TWAP orders currently require a Safe with a special fallback handler. Have one? Switch to it! Need setup? <0>Click here. Future updates may extend wallet support!" +msgstr "TWAP orders currently require a Safe with a special fallback handler. Have one? Switch to it! Need setup? <0>Click here. Future updates may extend wallet support!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap was the first DEX to offer intent-based trading, gasless swaps, coincidences of wants, and many other DeFi innovations." +msgstr "CoW Swap was the first DEX to offer intent-based trading, gasless swaps, coincidences of wants, and many other DeFi innovations." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient!" +msgstr "Approval amount insufficient!" + +#: apps/cowswap-frontend/src/modules/bridge/constants.ts +msgid "Bridging feature is exclusively operated by the indicated third party. Please review their terms." +msgstr "Bridging feature is exclusively operated by the indicated third party. Please review their terms." + +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copy address" +msgstr "Copy address" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "The limit price" +msgstr "The limit price" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Creating" +msgstr "Creating" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Increase Value" +msgstr "Increase Value" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "All Hooks ({allHooksCount})" +msgstr "All Hooks ({allHooksCount})" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0/> <1><2/> for trading" +msgstr "Approving <0/> <1><2/> for trading" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw liquidity from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Reduce or withdraw liquidity from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This price is taken from external sources and may not accurately reflect the current on-chain price." +msgstr "This price is taken from external sources and may not accurately reflect the current on-chain price." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Now is the time to take some action!" +msgstr "Now is the time to take some action!" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Swap order filled" +msgstr "Swap order filled" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Let's slice some" +msgstr "Let's slice some" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Cancellation failed" +msgstr "Cancellation failed" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Pool address" +msgstr "Pool address" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Initiating {nativeTokenSymbol} Refund..." +msgstr "Initiating {nativeTokenSymbol} Refund..." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance." +msgstr "balance." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Fee tier" +msgstr "Fee tier" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Make the modification when placing order" +msgstr "Make the modification when placing order" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders, but <0>s-moooo-ther than ever" +msgstr "Limit orders, but <0>s-moooo-ther than ever" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW contract not present" +msgstr "vCOW contract not present" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Unknown" +msgstr "Unknown" + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "Wallet Address or ENS name" +msgstr "Wallet Address or ENS name" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Min. to receive" +msgstr "Min. to receive" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No unfillable orders" +msgstr "No unfillable orders" + +#: libs/common-utils/src/tooltips.ts +msgid "This accounts for the current price and the slippage tolerance ({allowedSlippagePercentage}%). If the price moves beyond the slippage tolerance, you won't trade but also you won't pay any fees or gas." +msgstr "This accounts for the current price and the slippage tolerance ({allowedSlippagePercentage}%). If the price moves beyond the slippage tolerance, you won't trade but also you won't pay any fees or gas." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "No fees for failed transactions" +msgstr "No fees for failed transactions" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across" +msgstr "Across" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order type" +msgstr "Order type" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "Learn more." +msgstr "Learn more." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +msgid "Active" +msgstr "Active" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Clear selection" +msgstr "Clear selection" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted" +msgstr "accepted" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "TVL" +msgstr "TVL" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Unlimited one-time" +msgstr "Unlimited one-time" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use Safe web app" +msgstr "Use Safe web app" + +#: apps/cowswap-frontend/src/modules/orders/pure/ReceiverInfo/index.tsx +msgid "Receiver" +msgstr "Receiver" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "An order’s actual execution price will vary based on the market price and network costs." +msgstr "An order’s actual execution price will vary based on the market price and network costs." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "You have already claimed this airdrop" +msgstr "You have already claimed this airdrop" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancel multiple orders: {ordersCount}" +msgstr "Cancel multiple orders: {ordersCount}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap my {nativeSymbol} and swap" +msgstr "Wrap my {nativeSymbol} and swap" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Read more about limit orders" +msgstr "Read more about limit orders" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Your Safe is not connected with a signer.<0/>To place an order, you must connect using a signer of this Safe." +msgstr "Your Safe is not connected with a signer.<0/>To place an order, you must connect using a signer of this Safe." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +msgid "on" +msgstr "on" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive at least" +msgstr "Receive at least" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap trades are protected from MEV, so your slippage can't be exploited!" +msgstr "CoW Swap trades are protected from MEV, so your slippage can't be exploited!" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "This is an" +msgstr "This is an" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Something went wrong creating your order" +msgstr "Something went wrong creating your order" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance." +msgstr "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Volume (24h)" +msgstr "Volume (24h)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order partially filled" +msgstr "Order partially filled" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Time to create a new one!" +msgstr "Time to create a new one!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "View on bridge explorer" +msgstr "View on bridge explorer" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "or send us an email at" +msgstr "or send us an email at" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +#~ msgstr "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The minimum possible outcome after swap, including costs and slippage." +msgstr "The minimum possible outcome after swap, including costs and slippage." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The estimated amount you'll receive after estimated network costs and the max slippage setting" +msgstr "The estimated amount you'll receive after estimated network costs and the max slippage setting" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Run! ...and try not getting sandwiched" +msgstr "Run! ...and try not getting sandwiched" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap your {nativeSymbol} and use the classic {wrappedSymbol} experience!" +msgstr "Wrap your {nativeSymbol} and use the classic {wrappedSymbol} experience!" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Languages" +msgstr "Languages" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom deadline" +msgstr "Set custom deadline" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "WalletConnect" +msgstr "WalletConnect" + +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +msgid "<0>Note: {symbol} specifically requires 2 approval transactions. The first resets your spending cap to 0, and the second sets your desired spending cap. To avoid this in the future, set your spending cap to CoW Swap's recommended default amount." +msgstr "<0>Note: {symbol} specifically requires 2 approval transactions. The first resets your spending cap to 0, and the second sets your desired spending cap. To avoid this in the future, set your spending cap to CoW Swap's recommended default amount." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Earn higher returns with reduced impermanent loss" +msgstr "Earn higher returns with reduced impermanent loss" + +#: apps/cowswap-frontend/src/modules/swap/containers/BottomBanners/index.tsx +msgid "Funds stuck? <0>Recover your funds" +msgstr "Funds stuck? <0>Recover your funds" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Maximizing Your Gains!" +msgstr "Maximizing Your Gains!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Revoke {tokenSymbol} approval" +msgstr "Revoke {tokenSymbol} approval" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Use the <0/> to see {orderTabLink}" +#~ msgstr "Use the <0/> to see {orderTabLink}" + +#: apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx +msgid "Provide Feedback" +msgstr "Provide Feedback" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solvers" +#~ msgstr "solvers" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token supports gas-free approvals. Enjoy! 🐮" +msgstr "This token supports gas-free approvals. Enjoy! 🐮" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Wallet support" +msgstr "Wallet support" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refunding" +msgstr "Refunding" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeOnChainCancellation.ts +msgid "Failed to cancel order selling {sellTokenSymbol}" +msgstr "Failed to cancel order selling {sellTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Slippage tolerance" +msgstr "Slippage tolerance" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Calldata" +msgstr "Calldata" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe nonce" +msgstr "Safe nonce" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "Connect a wallet" +msgstr "Connect a wallet" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Create a pool" +msgstr "Create a pool" + +#: apps/cowswap-frontend/src/common/hooks/useUnsupportedNetworksText.tsx +#~ msgid "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" +#~ msgstr "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click SWAP below to use your existing {wrappedSymbol} balance and trade." +msgstr "To continue, click SWAP below to use your existing {wrappedSymbol} balance and trade." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Effortless Airdrop Claims! The Claim COW Airdrop feature simplifies the process of collecting free COW tokens before or after your swap, seamlessly integrating into the CoW Swap platform. Whether you're claiming new airdrops or exploring CoW on a new network, this tool ensures you get your rewards quickly and easily." +msgstr "Effortless Airdrop Claims! The Claim COW Airdrop feature simplifies the process of collecting free COW tokens before or after your swap, seamlessly integrating into the CoW Swap platform. Whether you're claiming new airdrops or exploring CoW on a new network, this tool ensures you get your rewards quickly and easily." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol}" +msgstr "Approve {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Replaced" +msgstr "Replaced" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#~ msgid "dynamic'" +#~ msgstr "dynamic'" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "MEV Slicer" +msgstr "MEV Slicer" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelling..." +msgstr "Cancelling..." + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order cancelled" +msgstr "Order cancelled" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Expired before creation" +msgstr "Expired before creation" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Use your (v)COW balance to vote on important proposals or participate in forum discussions." +msgstr "Use your (v)COW balance to vote on important proposals or participate in forum discussions." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Collapse" +msgstr "Collapse" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "minutes" +msgstr "minutes" + +#: apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx +msgid "Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time." +msgstr "Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridging via" +msgstr "Bridging via" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "d" +msgstr "d" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Creating..." +msgstr "Creating..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are externally hosted code which needs to be independently verified by the user." +msgstr "{typeLabel} hooks are externally hosted code which needs to be independently verified by the user." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires sufficient balance." +msgstr "The order remains open. Execution requires sufficient balance." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient for input amount." +msgstr "Approval amount insufficient for input amount." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "and" +msgstr "and" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Waiting for confirmation." +msgstr "Waiting for confirmation." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap" +msgstr "Aave Debt Swap" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW token" +msgstr "COW token" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "so we can investigate the problem." +msgstr "so we can investigate the problem." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "(via WalletConnect)" +msgstr "(via WalletConnect)" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "<0>Select an {accountProxyLabelString} and then select a token you want to recover from CoW Shed." +msgstr "<0>Select an {accountProxyLabelString} and then select a token you want to recover from CoW Shed." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. Try again later." +msgstr "Error loading price. Try again later." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Trying to claim without claim data" +msgstr "Trying to claim without claim data" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "CoW Hooks" +msgstr "CoW Hooks" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "up" +msgstr "up" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Sign the {operationLabel} with your wallet." +msgstr "Sign the {operationLabel} with your wallet." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "Recipient" +msgstr "Recipient" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Swap with {symbol}" +#~ msgstr "Swap with {symbol}" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +msgid "Reset USDT allowance to 0 before setting new spending cap" +msgstr "Reset USDT allowance to 0 before setting new spending cap" + +#: apps/cowswap-frontend/src/modules/notifications/containers/ConnectTelegram.tsx +#~ msgid "Enable notifications" +#~ msgstr "Enable notifications" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +msgid "Warning sign. Wallet not supported" +msgstr "Warning sign. Wallet not supported" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Show progress" +msgstr "Show progress" + +#: apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts +msgid "Mooo, we're hiring!" +msgstr "Mooo, we're hiring!" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience.<0/><1/>The fee is {partnerFeeBps} BPS ({feeAsPercent}%), applied only if the trade is executed." +msgstr "This fee helps pay for maintenance & improvements to the trade experience.<0/><1/>The fee is {partnerFeeBps} BPS ({feeAsPercent}%), applied only if the trade is executed." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Share this" +msgstr "Share this" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/index.tsx +msgid "Review limit order" +msgstr "Review limit order" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Trade Smart, Save More!" +msgstr "Trade Smart, Save More!" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "available for your {poolName} pool" +msgstr "available for your {poolName} pool" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Native" +msgstr "Native" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "Pool analytics" +msgstr "Pool analytics" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +msgid "Swap deadline" +msgstr "Swap deadline" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be only sufficient for<0>up to {txsRemaining} wrapping, unwrapping, or approval operation(s)." +msgstr "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be only sufficient for<0>up to {txsRemaining} wrapping, unwrapping, or approval operation(s)." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees." +msgstr "The price of this pool is outside of your selected range. Your position is not currently earning fees." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "days" +msgstr "days" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "This hook is compatible with {compatibleWith}." +msgstr "This hook is compatible with {compatibleWith}." + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridge" +msgstr "Bridge" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Connecting..." +msgstr "Connecting..." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Pre" +msgstr "Pre" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts +msgid "(v)COW token holders are eligible for a fee discount" +msgstr "(v)COW token holders are eligible for a fee discount" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Error connecting" +msgstr "Error connecting" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Trade" +msgstr "Trade" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Context is not full to cancel TWAP order" +msgstr "Context is not full to cancel TWAP order" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "Receive (incl. costs)" +msgstr "Receive (incl. costs)" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sent {nativeTokenSymbol}" +msgstr "Sent {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Since TWAP orders consist of multiple parts, prices are expected to fluctuate. However, to protect you against bad prices, CoW Swap will not execute your TWAP if the price dips below this percentage." +msgstr "Since TWAP orders consist of multiple parts, prices are expected to fluctuate. However, to protect you against bad prices, CoW Swap will not execute your TWAP if the price dips below this percentage." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "are" +msgstr "are" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time before your total TWAP order ends." +msgstr "The time before your total TWAP order ends." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Unsupported network. Please change to Gnosis Chain" +msgstr "Unsupported network. Please change to Gnosis Chain" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Debug Step:" +msgstr "Debug Step:" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +msgid "Your order may not fill exactly when the market price reaches your limit price." +msgstr "Your order may not fill exactly when the market price reaches your limit price." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "BEFORE" +msgstr "BEFORE" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "View your private {ACCOUNT_PROXY_LABEL}" +#~ msgstr "View your private {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "BFF did not return a price for '{currencyAddress}' on chain '{currencyChainId}'" +msgstr "BFF did not return a price for '{currencyAddress}' on chain '{currencyChainId}'" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This tool helps you recover your funds." +msgstr "This tool helps you recover your funds." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Transaction completed" +msgstr "Transaction completed" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Your Safe needs a modification" +msgstr "Your Safe needs a modification" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "{orderType} {orderKind} order" +msgstr "Orden {orderType} {orderKind}" + +#: apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx +#: apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx +msgid "View on Safe" +msgstr "View on Safe" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "modified" +msgstr "modified" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/ProtocolIcons/StackedProtocolIcons.tsx +msgid "CoW Protocol" +msgstr "CoW Protocol" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient allowance granted for" +msgstr "Insufficient allowance granted for" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Failed to fetch manifest from {manifestUrl}. Please verify the URL and try again." +msgstr "Failed to fetch manifest from {manifestUrl}. Please verify the URL and try again." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Order executes at" +msgstr "Order executes at" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "There may be a network issue (such as a gas spike) that is delaying your order. You can wait for the issue to resolve{cancellationModal}" +msgstr "There may be a network issue (such as a gas spike) that is delaying your order. You can wait for the issue to resolve{cancellationModal}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Confirmed" +msgstr "Confirmed" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "place a new order" +msgstr "place a new order" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "To use {orderType} orders, please connect your wallet <0/>to one of our supported networks." +msgstr "To use {orderType} orders, please connect your wallet <0/>to one of our supported networks." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "When enabled, the limit price stays fixed when changing the BUY amount. When disabled, the limit price will update based on the BUY amount changes." +msgstr "When enabled, the limit price stays fixed when changing the BUY amount. When disabled, the limit price will update based on the BUY amount changes." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW token not present" +msgstr "vCOW token not present" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} solvers" +msgstr "{solversLength} solvers" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Claim vested" +msgstr "Claim vested" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Transaction Settings" +msgstr "Transaction Settings" + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "Dismiss hiring message" +msgstr "Dismiss hiring message" + +#: apps/cowswap-frontend/src/common/pure/Modal/index.tsx +msgid "dialog content" +msgstr "dialog content" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since {accountProxyLabelString} is not an upgradeable smart-contract, it can be versioned and there are" +msgstr "Since {accountProxyLabelString} is not an upgradeable smart-contract, it can be versioned and there are" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "open" +msgstr "open" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Filled on" +msgstr "Filled on" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "less" +msgstr "less" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Market" +msgstr "Market" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "You {orderKind} an extra" +msgstr "You {orderKind} an extra" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Invalid argument \"{invalidArgument}\" provided" +msgstr "Invalid argument \"{invalidArgument}\" provided" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Executed" +msgstr "Executed" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap solvers search Uniswap, 1inch, Matcha, Sushi and more to find you the best price." +msgstr "CoW Swap solvers search Uniswap, 1inch, Matcha, Sushi and more to find you the best price." + +#: apps/cowswap-frontend/src/modules/permit/utils/handlePermit.ts +msgid "Unable to generate permit data" +msgstr "Unable to generate permit data" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Place orders with a time-weighted average price" +msgstr "Place orders with a time-weighted average price" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Proxy Accounts" +msgstr "Proxy Accounts" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Tx cost:" +msgstr "Tx cost:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe transaction" +msgstr "Safe transaction" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +msgid "Traded {inputAmount} for a total of {outputAmount}" +msgstr "Traded {inputAmount} for a total of {outputAmount}" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook description" +msgstr "Hook description" + +#: apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx +msgid "Spinning icon" +msgstr "Spinning icon" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Return to Swap" +msgstr "Return to Swap" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Privacy Policy" +msgstr "Privacy Policy" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency" +msgstr "Native currency" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "link" +msgstr "link" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "A new competition has started" +msgstr "A new competition has started" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "Quote expired. Please refresh." +msgstr "Quote expired. Please refresh." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Successfully converted!" +msgstr "Successfully converted!" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Too <0>busy <1/>to vote?" +msgstr "Too <0>busy <1/>to vote?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are integrated code and part of the CoW Swap codebase." +msgstr "{typeLabel} hooks are integrated code and part of the CoW Swap codebase." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Expiration" +msgstr "Expiration" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Unsupported Wallet" +msgstr "Unsupported Wallet" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "<0/><1/>Trades are protected from MEV, so your slippage can't be exploited!" +msgstr "<0/><1/>Trades are protected from MEV, so your slippage can't be exploited!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Expired" +msgstr "Expired" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "native currency" +msgstr "native currency" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" +#~ msgstr "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap operation failed." +msgstr "Wrap operation failed." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If allowance remains insufficient at creation time, this portion will not be created. Approve the" +msgstr "If allowance remains insufficient at creation time, this portion will not be created. Approve the" + +#: apps/cowswap-frontend/src/common/utils/getSwapErrorMessage.ts +#~ msgid "User rejected signing the order" +#~ msgstr "User rejected signing the order" + +#: libs/common-const/src/common.ts +msgid "Account Proxy" +msgstr "Account Proxy" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "Executing', description: 'The winner of the competition is now executing your order on-chain." +#~ msgstr "Executing', description: 'The winner of the competition is now executing your order on-chain." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx +msgid "Estimated bridge transaction time: {bridgeEstimatedTime} minutes" +msgstr "Estimated bridge transaction time: {bridgeEstimatedTime} minutes" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR gas-free!" +msgstr "Booooost APR gas-free!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "In case you want to give allowance only for the trade amount, use the advanced mode. You can also change the amount manually." +msgstr "In case you want to give allowance only for the trade amount, use the advanced mode. You can also change the amount manually." + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Sell amount too small" +msgstr "Sell amount too small" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Your position has 0 liquidity, and is not earning fees." +msgstr "Your position has 0 liquidity, and is not earning fees." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can avoid price impact on large trades by using TWAP orders on CoW Swap." +msgstr "You can avoid price impact on large trades by using TWAP orders on CoW Swap." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Click to copy contract address" +msgstr "Click to copy contract address" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Unsupported wallet detected" +msgstr "Unsupported wallet detected" + +#: libs/common-const/src/common.ts +msgid "Tokens Overview" +msgstr "Tokens Overview" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm approval" +msgstr "Confirm approval" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be less than 0!" +msgstr "Partner fee can not be less than 0!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No order history" +msgstr "No order history" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Bridging without swapping is not yet supported. Let us know if you want this feature!" +msgstr "Bridging without swapping is not yet supported. Let us know if you want this feature!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The input token cannot be transferred. There may be an issue with the input token." +msgstr "The input token cannot be transferred. There may be an issue with the input token." + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "{pendingCount} Pending" +msgstr "{pendingCount} Pending" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "All" +msgstr "All" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "batched together" +msgstr "batched together" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Select a pool" +msgstr "Select a pool" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token not permittable" +msgstr "Token not permittable" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapped on" +msgstr "Swapped on" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Boooost your current LP positions with CoW AMM’s pools." +msgstr "Boooost your current LP positions with CoW AMM’s pools." + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please type the word <0>\"{confirmWord}\" to {action}." +msgstr "Please type the word <0>\"{confirmWord}\" to {action}." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending..." +msgstr "Pending..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Liquidity pools on CoW AMM grow faster than on other AMMs because they don't lose money to arbitrage bots." +msgstr "Liquidity pools on CoW AMM grow faster than on other AMMs because they don't lose money to arbitrage bots." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: libs/common-const/src/common.ts +msgid "TWAP" +msgstr "TWAP" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Refunded to" +msgstr "Refunded to" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Maximize your yield on existing LP positions" +msgstr "Maximize your yield on existing LP positions" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +#~ msgid "Pool description" +#~ msgstr "Pool description" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "6 Hours" +msgstr "6 Hours" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Amount must be at least trade amount" +msgstr "Amount must be at least trade amount" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to a Uniswap v2 pool after the swap" +msgstr "Add liquidity to a Uniswap v2 pool after the swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{buyTokenPart} for at most {sellTokenPart}" +msgstr "{buyTokenPart} for at most {sellTokenPart}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation failed. Please review your transaction." +msgstr "The Tenderly simulation failed. Please review your transaction." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Fill or kill" +msgstr "Fill or kill" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Description" +msgstr "Description" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "on-chain" +msgstr "on-chain" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across Protocol - Transfer Assets Between Layer 2s and Mainnet" +msgstr "Across Protocol - Transfer Assets Between Layer 2s and Mainnet" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Tokens overview" +msgstr "Tokens overview" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Enter slippage percentage between {min}% and {max}%" +msgstr "Enter slippage percentage between {min}% and {max}%" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Learn how" +msgstr "Learn how" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "Token wrapping bundling" +msgstr "Token wrapping bundling" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +#~ msgid "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" +#~ msgstr "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Account overview" +msgstr "Account overview" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate your" +msgstr "Delegate your" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "<0>Enable trade alerts for fills and expiries" +msgstr "<0>Enable trade alerts for fills and expiries" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +msgid "Advanced Order Settings" +msgstr "Advanced Order Settings" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap refunded" +msgstr "Swap refunded" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "TWAP order" +msgstr "TWAP order" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "You can now trade <0/>" +msgstr "You can now trade <0/>" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "How much of the order has been filled." +msgstr "How much of the order has been filled." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge costs <0/>" +msgstr "Bridge costs <0/>" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Reset" +msgstr "Reset" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "No fee for order placement!" +msgstr "No fee for order placement!" + +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "The tokens received from this order will automatically be sent to this address. No need to do a second transaction!" +msgstr "The tokens received from this order will automatically be sent to this address. No need to do a second transaction!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Website" +msgstr "Website" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Signed: <0>{numConfirmations} out of {gnosisSafeThreshold} signers" +msgstr "Signed: <0>{numConfirmations} out of {gnosisSafeThreshold} signers" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order can be partially filled" +msgstr "This order can be partially filled" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Build your own hook" +msgstr "Build your own hook" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that you will receive from each part of the order." +msgstr "Estimated amount that you will receive from each part of the order." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like repaying borrow positions using collateral. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features.msg" +msgstr "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like repaying borrow positions using collateral. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features.msg" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Request cancellation" +msgstr "Request cancellation" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(dynamic)" +msgstr "(dynamic)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Hour" +msgstr "1 Hour" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "{prefix}-hooks allow you to automatically execute any action {position} your trade is executed" +msgstr "{prefix}-hooks allow you to automatically execute any action {position} your trade is executed" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "Safe" +#~ msgstr "Safe" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired. This could be due to gas spikes, volatile prices, or problems with the network." +msgstr "Your order expired. This could be due to gas spikes, volatile prices, or problems with the network." + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Unsupported network" +msgstr "Unsupported network" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Batching orders" +msgstr "Batching orders" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to {wrappedSymbol}" +msgstr "Switch to {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Select debug step" +msgstr "Select debug step" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "You're all caught up" +msgstr "You're all caught up" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "Fee" +msgstr "Fee" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "You could gain an extra <0><1/> compared to using a {swapOrderLink}" +msgstr "You could gain an extra <0><1/> compared to using a {swapOrderLink}" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency (e.g ETH)" +msgstr "Native currency (e.g ETH)" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "<0><1/> Experimental: Add DeFI interactions before and after your trade." +msgstr "<0><1/> Experimental: Add DeFI interactions before and after your trade." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Powerful tool to generate pre/post interaction for CoW Protocol" +msgstr "Powerful tool to generate pre/post interaction for CoW Protocol" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Reduce your slippage by breaking big orders into smaller ones" +msgstr "Reduce your slippage by breaking big orders into smaller ones" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid " out of {totalSolvers}" +#~ msgstr " out of {totalSolvers}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is the only exchange that matches Coincidences of Wants (CoWs): peer-to-peer swaps that save on settlement costs." +msgstr "CoW Swap is the only exchange that matches Coincidences of Wants (CoWs): peer-to-peer swaps that save on settlement costs." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "CoW Swap uses a dedicated {accountProxyLabelString}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +msgstr "CoW Swap uses a dedicated {accountProxyLabelString}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +#~ msgid "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" +#~ msgstr "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" + +#: apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "gas" +msgstr "gas" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "details" +msgstr "details" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "TWAP order split into {twapOrderN} parts" +msgstr "TWAP order split into {twapOrderN} parts" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Gas limit" +msgstr "Gas limit" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Price protection" +msgstr "Price protection" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol} failed!" +msgstr "Approve {wrappedSymbol} failed!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Hooks are interactions before/after order execution." +msgstr "Hooks are interactions before/after order execution." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw Uniswap v2 Liquidity" +msgstr "Withdraw Uniswap v2 Liquidity" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Add a custom hook" +msgstr "Add a custom hook" + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected" +#~ msgstr "Connected" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This page can't be reached" +msgstr "This page can't be reached" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap" +msgstr "Aave Collateral Swap" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Your swap expires and will not execute if it is pending for longer than the selected duration." +msgstr "Your swap expires and will not execute if it is pending for longer than the selected duration." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{currencyNameCapitalized} orders can, in rare cases, be frontrun due to their on-chain component. For more robust MEV protection, consider wrapping your {currencyName} before trading." +msgstr "{currencyNameCapitalized} orders can, in rare cases, be frontrun due to their on-chain component. For more robust MEV protection, consider wrapping your {currencyName} before trading." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Confirmed" +msgstr "Transaction Confirmed" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "This way, you'll take advantage of" +msgstr "This way, you'll take advantage of" + +#: apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx +msgid "Your combined balance" +msgstr "Your combined balance" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Unknown Source" +msgstr "Unknown Source" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Cancel all" +msgstr "Cancel all" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Add Pre-hook" +msgstr "Add Pre-hook" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap are free to place and cancel. That's unique in DeFi!" +msgstr "Limit orders on CoW Swap are free to place and cancel. That's unique in DeFi!" + +#: apps/cowswap-frontend/src/modules/limitOrders/hooks/useHandleOrderPlacement.ts +msgid "safeBundleFlowContext is not set!" +msgstr "safeBundleFlowContext is not set!" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: No manifest.json file found. Please check the URL and try again." +msgstr "Invalid URL: No manifest.json file found. Please check the URL and try again." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "COW token not found for chain {SupportedChainIdMAINNET}" +msgstr "COW token not found for chain {SupportedChainIdMAINNET}" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unwrap" +msgstr "Unwrap" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Connect your wallet first" +msgstr "Connect your wallet first" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Animated cow reacts to empty order list" +msgstr "Animated cow reacts to empty order list" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Trade alerts" +msgstr "Trade alerts" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Auto" +msgstr "Auto" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "you will pay a separate gas cost for signing the order placement on-chain." +msgstr "you will pay a separate gas cost for signing the order placement on-chain." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is live on {availableChainsText}. Switch the network toggle in the nav bar for quick, cheap transactions." +msgstr "CoW Swap is live on {availableChainsText}. Switch the network toggle in the nav bar for quick, cheap transactions." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx +msgid "Status: {label}" +msgstr "Status: {label}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook doesn't support the current network:" +msgstr "This app/hook doesn't support the current network:" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import token" +msgstr "Import token" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Interface Settings" +msgstr "Interface Settings" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +msgid "Enter a price" +msgstr "Enter a price" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't verify {accountProxyLabel}, please try later" +msgstr "Couldn't verify {accountProxyLabel}, please try later" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation time" +msgstr "Creation time" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Partially Filled" +msgstr "Partially Filled" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "<0>Note: If you are using a Safe but still see this message, ensure your Safe is deployed!" +msgstr "<0>Note: If you are using a Safe but still see this message, ensure your Safe is deployed!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Included in the estimated execution price" +msgstr "Included in the estimated execution price" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs (incl. gas) are covered by filling your order when the market price is better than your limit price." +msgstr "Network costs (incl. gas) are covered by filling your order when the market price is better than your limit price." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Technical details:" +msgstr "Technical details:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "How do I recover my funds from {accountProxyLabel}?" +msgstr "How do I recover my funds from {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe confirmed signatures" +msgstr "Safe confirmed signatures" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Winning solver" +msgstr "Winning solver" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from external sources." +msgstr "Tokens from external sources." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient" +msgstr "Insufficient" + +#. placeholder {0}: reason ? `: "${reason}"` : '' +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Not connected" +msgstr "Not connected" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order presigned" +msgstr "Order presigned" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Get support on Discord" +msgstr "Get support on Discord" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a CoW AMM pool before the swap" +msgstr "Remove liquidity from a CoW AMM pool before the swap" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.cosmos.tsx +#~ msgid "Input currency not found for chain {supportedChainId}" +#~ msgstr "Input currency not found for chain {supportedChainId}" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "This swap has a price impact of at least {pct}%." +msgstr "This swap has a price impact of at least {pct}%." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Read how to prevent losing funds" +msgstr "Read how to prevent losing funds" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time each part of your TWAP order will remain active." +msgstr "The time each part of your TWAP order will remain active." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Authorize Telegram" +#~ msgstr "Authorize Telegram" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Buy per part" +msgstr "Buy per part" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Total claimable rewards:" +msgstr "Total claimable rewards:" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on" +msgstr "View on" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Connected with" +msgstr "Connected with" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance detected." +msgstr "balance detected." + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "Deposit tokens to the {label} network." +msgstr "Deposit tokens to the {label} network." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order will be split into this many parts, which will execute one by one." +msgstr "Your TWAP order will be split into this many parts, which will execute one by one." + +#: apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx +msgid "Hang in there. Calculating best price" +msgstr "Hang in there. Calculating best price" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "both {joinedSupportedTypes}" +msgstr "both {joinedSupportedTypes}" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on Explorer" +msgstr "View on Explorer" + +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Error" +msgstr "Error" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#~ msgid "Sell {inputAmount} {label}" +#~ msgstr "Sell {inputAmount} {label}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong and your order couldn't be executed with this batch. But don't worry! CoW Swap is already holding another competition for your order." +msgstr "Something went wrong and your order couldn't be executed with this batch. But don't worry! CoW Swap is already holding another competition for your order." + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving token" +msgstr "Approving token" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "We are unable to calculate the price impact for this order.<0/><1/>You may still move forward but <2>please review carefully that the receive amounts are what you expect." +msgstr "We are unable to calculate the price impact for this order.<0/><1/>You may still move forward but <2>please review carefully that the receive amounts are what you expect." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Off-chain cancellations require a signature and are free." +msgstr "Off-chain cancellations require a signature and are free." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You are not eligible for this airdrop" +msgstr "You are not eligible for this airdrop" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Select a token" +msgstr "Select a token" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Read more about unsupported tokens" +msgstr "Read more about unsupported tokens" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +#~ msgid "Quote refresh in <0>{value} sec" +#~ msgstr "Quote refresh in <0>{value} sec" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelling" +msgstr "cancelling" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Signing transaction" +msgstr "Signing transaction" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks" +msgstr "Search hooks" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "down" +msgstr "down" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Wrap <0/> and Swap" +#~ msgstr "Wrap <0/> and Swap" + +#: apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx +msgid "Source transaction" +msgstr "Source transaction" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Cow Balance" +msgstr "Cow Balance" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful." +msgstr "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token" +msgstr "Token" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order submitted" +msgstr "Order submitted" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote is updating..." +msgstr "Quote is updating..." + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started!" +msgstr "Get started!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom date" +msgstr "Set custom date" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claimable" +msgstr "Claimable" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Docs" +msgstr "Docs" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Simulation:" +msgstr "Simulation:" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Locked limits - lock or unlock prices for finer control, the order does the rest" +msgstr "Locked limits - lock or unlock prices for finer control, the order does the rest" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Cannot sell {nativeSymbol}" +msgstr "Cannot sell {nativeSymbol}" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR!" +msgstr "Booooost APR!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "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." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "blocked activities" +msgstr "blocked activities" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +#~ msgid "Settings" +#~ msgstr "Settings" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "It is required to do a one-time approval of {wrappedSymbol} via an on-chain ERC20 Approve transaction." +msgstr "It is required to do a one-time approval of {wrappedSymbol} via an on-chain ERC20 Approve transaction." + +#: apps/cowswap-frontend/src/modules/trade/hooks/setupTradeState/useResetStateWithSymbolDuplication.ts +msgid "" +"There is more than one token in the list of tokens with the symbol: {doubledSymbol}.\n" +"Please select the token you need from the UI or use the address of the token instead of the symbol" +msgstr "" +"There is more than one token in the list of tokens with the symbol: {doubledSymbol}.\n" +"Please select the token you need from the UI or use the address of the token instead of the symbol" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "unfillable" +msgstr "unfillable" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "saved" +msgstr "saved" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook Store" +msgstr "Hook Store" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting the best price." +msgstr "CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting the best price." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee Protocol - Swap tokens across chains" +msgstr "Bungee Protocol - Swap tokens across chains" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap's robust solver competition protects your slippage from being exploited by MEV bots." +msgstr "CoW Swap's robust solver competition protects your slippage from being exploited by MEV bots." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap Flashloan" +msgstr "Aave Debt Swap Flashloan" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Details" +msgstr "Details" + +#: apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/OrderNotification/index.tsx +msgid "Order" +msgstr "Order" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "TWAP orders require a one-time update to your Safe to enable automated execution of scheduled transactions." +msgstr "TWAP orders require a one-time update to your Safe to enable automated execution of scheduled transactions." + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Order Submitted" +msgstr "Order Submitted" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "You have given an allowance to <0>AnyswapV4Router which is affected by a critical vulnerability." +msgstr "You have given an allowance to <0>AnyswapV4Router which is affected by a critical vulnerability." + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This could have happened due to the lack of internet or the release of a new version of the application." +msgstr "This could have happened due to the lack of internet or the release of a new version of the application." + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "For your convenience, token approval and order placement will be bundled into a single transaction, streamlining your experience!" +msgstr "For your convenience, token approval and order placement will be bundled into a single transaction, streamlining your experience!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No open orders" +msgstr "No open orders" + +#: libs/common-utils/src/tooltips.ts +msgid "Maximum tokens you'll sell." +msgstr "Maximum tokens you'll sell." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid " or <0/>" +msgstr " or <0/>" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "ENS recipient not supported for Swap and Bridge — use address instead." +#~ msgstr "ENS recipient not supported for Swap and Bridge — use address instead." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Careers" +msgstr "Careers" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Expected sell amount" +msgstr "Expected sell amount" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "orders" +msgstr "orders" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Limit Order" +msgstr "Limit Order" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient allowance" +msgstr "Insufficient allowance" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "Coinbase Wallet" +msgstr "Coinbase Wallet" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Connect wallet" +msgstr "Connect wallet" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Approve the token to proceed." +msgstr "Approve the token to proceed." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "Recoverable value" +msgstr "Recoverable value" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "is worth" +msgstr "is worth" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "View account" +msgstr "View account" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "When you swap (sell) <0/>, solvers handle the transaction by purchasing the required tokens, depositing them into the pool, and issuing LP tokens to you in return — all in a gas-less operation." +msgstr "When you swap (sell) <0/>, solvers handle the transaction by purchasing the required tokens, depositing them into the pool, and issuing LP tokens to you in return — all in a gas-less operation." + +#: apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx +msgid "BlockNumber hooks must be wrapped in a" +msgstr "BlockNumber hooks must be wrapped in a" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Wrap <0/> and Swap" +msgstr "Wrap <0/> and Swap" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "A maximum of <0>{time} between parts is required. Increase the number of parts or decrease the total duration." +msgstr "A maximum of <0>{time} between parts is required. Increase the number of parts or decrease the total duration." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience" +msgstr "This fee helps pay for maintenance & improvements to the trade experience" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "No. of parts" +msgstr "No. of parts" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and saved " +msgstr "and saved " + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve all" +msgstr "Approve all" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Caution" +msgstr "Caution" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Morpho Borrow" +msgstr "Morpho Borrow" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This contract is deployed per account, with that account becoming the single owner. CoW Shed acts as an intermediary account that handles trading on your behalf." +msgstr "This contract is deployed per account, with that account becoming the single owner. CoW Shed acts as an intermediary account that handles trading on your behalf." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {msg}. Please, retry in a minute" +msgstr "The order cannot be {msg}. Please, retry in a minute" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Request cancellations" +msgstr "Request cancellations" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Recommended" +msgstr "Recommended" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Price change" +msgstr "Price change" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Yield" +msgstr "Yield" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageLists/index.tsx +msgid "Error importing token list" +msgstr "Error importing token list" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "cancelled" +msgstr "cancelled" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenListDetails/index.tsx +msgid "tokens" +msgstr "tokens" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "No wallet compatibility information available." +msgstr "No wallet compatibility information available." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "submitted a solution" +msgstr "submitted a solution" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Issues have been reported with Metamask sending transactions to the wrong chain on versions prior to <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Before you sign, please check in your wallet that the transaction is being sent to the network:" +msgstr "Issues have been reported with Metamask sending transactions to the wrong chain on versions prior to <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Before you sign, please check in your wallet that the transaction is being sent to the network:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Sell amount is too small" +msgstr "Sell amount is too small" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use the <0>Safe app for advanced trading." +msgstr "Use the <0>Safe app for advanced trading." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Top" +msgstr "Top" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that will be sold in each part of the order." +msgstr "Estimated amount that will be sold in each part of the order." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Part duration" +msgstr "Part duration" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "hours" +msgstr "hours" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Supply collateral, borrow, repay and withdraw collateral on Morpho Protocol." +msgstr "Supply collateral, borrow, repay and withdraw collateral on Morpho Protocol." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Order out of market" +msgstr "Order out of market" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "{solver} logo" +msgstr "{solver} logo" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Approve {tokenSymbol}" +msgstr "Approve {tokenSymbol}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The fill price of this order is close or at the market price and is expected to fill soon" +msgstr "The fill price of this order is close or at the market price and is expected to fill soon" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "My orders <0/>" +msgstr "My orders <0/>" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Define custom total time" +msgstr "Define custom total time" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Expected to receive" +msgstr "Expected to receive" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "Select input and output" +msgstr "Select input and output" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "With hooks you can add specific actions <0>before and <1>after your swap." +msgstr "With hooks you can add specific actions <0>before and <1>after your swap." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "No signatures yet" +msgstr "No signatures yet" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Start bridging" +msgstr "Start bridging" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import at your own risk" +msgstr "Import at your own risk" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0>{currencySymbolOrContext} for trading" +msgstr "Approving <0>{currencySymbolOrContext} for trading" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't load balances" +msgstr "Couldn't load balances" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate" +msgstr "Delegate" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "cancel the order" +msgstr "cancel the order" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Can't find a hook that you like?" +msgstr "Can't find a hook that you like?" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Market:" +msgstr "Market:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No orders" +msgstr "No orders" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token is unsupported as it does not operate optimally with CoW Protocol. Please refer to the FAQ for more information." +msgstr "This token is unsupported as it does not operate optimally with CoW Protocol. Please refer to the FAQ for more information." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "You haven't added any custom hooks yet. Add a custom hook to get started." +msgstr "You haven't added any custom hooks yet. Add a custom hook to get started." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "7 Days" +msgstr "7 Days" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction was cancelled or sped up" +msgstr "Transaction was cancelled or sped up" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Custom Recipient" +msgstr "Custom Recipient" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Received {tokenLabel}" +msgstr "Received {tokenLabel}" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "Please, make sure your address follows the format <0>{addressPrefix}: or double-check if it is compatible with <1>{label} network." +msgstr "Please, make sure your address follows the format <0>{addressPrefix}: or double-check if it is compatible with <1>{label} network." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Recent Activity" +msgstr "Recent Activity" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "2 stops" +msgstr "2 stops" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeSignPermitButton/TradeSignPermitButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +#~ msgid "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." +#~ msgstr "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Please enter the base URL of your dapp, not the direct manifest.json path" +msgstr "Please enter the base URL of your dapp, not the direct manifest.json path" + +#: apps/cowswap-frontend/src/modules/orders/pure/PendingOrderNotification/index.tsx +msgid "submitted" +msgstr "submitted" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are selling {nativeSymbol} (native currency)" +msgstr "Because you are selling {nativeSymbol} (native currency)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrdersTableWidget/index.tsx +msgid "Token symbol, address" +msgstr "Token symbol, address" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order Receipt" +msgstr "Order Receipt" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping debt assets. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping debt assets. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Transaction completed!" +msgstr "Transaction completed!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "No pool tokens available" +msgstr "No pool tokens available" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +#~ msgid "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +#~ msgstr "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Still searching" +msgstr "Still searching" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across is the fastest, cheapest and most secure cross-chain bridge for Ethereum, Arbitrum, Optimism, Polygon and other Layer 1 and Layer 2 networks. Transfer tokens with Across." +msgstr "Across is the fastest, cheapest and most secure cross-chain bridge for Ethereum, Arbitrum, Optimism, Polygon and other Layer 1 and Layer 2 networks. Transfer tokens with Across." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "check" +msgstr "check" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Are you sure you want to cancel {ordersCount} orders?" +msgstr "Are you sure you want to cancel {ordersCount} orders?" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Convert your <0/> LP tokens into CoW AMM pools and earn up to <1>+{apyDiffFormatted}% more yield compared to <2/>. Or, swap" +msgstr "Convert your <0/> LP tokens into CoW AMM pools and earn up to <1>+{apyDiffFormatted}% more yield compared to <2/>. Or, swap" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Lock Limit Price" +msgstr "Lock Limit Price" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Target" +msgstr "Target" + +#: libs/common-utils/src/legacyAddressUtils.ts +#~ msgid "View on {explorerTitle}" +#~ msgstr "View on {explorerTitle}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge failed on" +msgstr "Bridge failed on" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is submitted." +msgstr "The {operationLabel} is submitted." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid manifest format at {manifestUrl}: missing cow_hook_dapp property" +msgstr "Invalid manifest format at {manifestUrl}: missing cow_hook_dapp property" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Valid to" +msgstr "Valid to" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Composable Cow and Settlement contracts are not on the same chain" +msgstr "Composable Cow and Settlement contracts are not on the same chain" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Swap bridged via your" +msgstr "Swap bridged via your" + +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Loading..." +msgstr "Loading..." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported Network" +msgstr "Unsupported Network" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Approve" +msgstr "Approve" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Execution time" +msgstr "Execution time" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW token" +msgstr "vCOW token" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "High slippage amount selected" +msgstr "High slippage amount selected" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place orders for higher than available balance!" +msgstr "Place orders for higher than available balance!" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "first." +msgstr "first." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "No routes found" +msgstr "No routes found" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at most" +msgstr "for at most" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Submitted" +msgstr "Submitted" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "connect wallet" +msgstr "connect wallet" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create LlamaPay Vesting" +msgstr "Create LlamaPay Vesting" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +msgid "Transaction expiration" +msgstr "Transaction expiration" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "CowSwap no connection" +msgstr "CowSwap no connection" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Alert" +msgstr "Alert" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Start time first" +msgstr "Start time first" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Swap with Wrapped {nativeSymbol}" +msgstr "Swap with Wrapped {nativeSymbol}" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Analytics" +msgstr "Analytics" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock TWAP orders" +msgstr "Unlock TWAP orders" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Failed to cancel order" +msgstr "Failed to cancel order" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Uniswap v2 Deposit" +msgstr "Uniswap v2 Deposit" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Set your own price" +msgstr "Set your own price" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This percentage only applies to dips; if prices are better than this percentage, CoW Swap will still execute your order." +msgstr "This percentage only applies to dips; if prices are better than this percentage, CoW Swap will still execute your order." + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "12 Hours" +msgstr "12 Hours" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signatures are" +msgstr "signatures are" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Use the Swap tab for trades that don't involve an LP token." +msgstr "Use the Swap tab for trades that don't involve an LP token." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "off-chain" +msgstr "off-chain" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Price" +msgstr "Price" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Your transaction may expire" +msgstr "Your transaction may expire" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "<0>CoW Swap solvers are scanning liquidity sources across DeFi. The one that finds you the best price wins!" +msgstr "<0>CoW Swap solvers are scanning liquidity sources across DeFi. The one that finds you the best price wins!" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell at most" +msgstr "You sell at most" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No matching orders found" +msgstr "No matching orders found" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wallet Unsupported" +msgstr "Wallet Unsupported" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Full approval" +msgstr "Full approval" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset <0>{symbol} allowance" +msgstr "Reset <0>{symbol} allowance" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is within your selected range. Your position is currently earning fees." +msgstr "The price of this pool is within your selected range. Your position is currently earning fees." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "FAQs" +msgstr "FAQs" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signatures are" +msgstr "more signatures are" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current network costs make up <0><1>{formattedFeePercentage}% of your swap amount." +msgstr "Current network costs make up <0><1>{formattedFeePercentage}% of your swap amount." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Set approval" +msgstr "Set approval" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be before {maxDateStr} {timeZone}" +msgstr "Must be before {maxDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade." +msgstr "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Between currencies" +msgstr "Between currencies" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "wrapped native" +msgstr "wrapped native" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover {target}" +msgstr "Recover {target}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Expiry" +msgstr "Expiry" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Minutes" +msgstr "Minutes" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useHandleApprovalError.ts +msgid "User rejected approval transaction" +msgstr "User rejected approval transaction" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap on" +msgstr "Swap on" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Transaction" +msgstr "Transaction" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe contracts have a so-called \"nonce.\" This is to ensure that each transaction can be executed only once so no replay attacks are possible." +msgstr "Safe contracts have a so-called \"nonce.\" This is to ensure that each transaction can be executed only once so no replay attacks are possible." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "This is the recommended slippage tolerance based on current gas prices & trade size. A lower amount may result in slower execution." +msgstr "This is the recommended slippage tolerance based on current gas prices & trade size. A lower amount may result in slower execution." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "buy" +msgstr "comprar" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW to COW" +msgstr "Converting vCOW to COW" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Maximum sent" +msgstr "Maximum sent" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "More intuitive UI and improved design" +msgstr "More intuitive UI and improved design" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "External" +msgstr "External" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "The winner of the competition is now executing your order on-chain." +msgstr "The winner of the competition is now executing your order on-chain." + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs" +msgstr "Network costs" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "PRE" +msgstr "PRE" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{symbolName} orders require a minimum transaction expiration time threshold of {minutes} minutes to ensure the best swapping experience" +msgstr "{symbolName} orders require a minimum transaction expiration time threshold of {minutes} minutes to ensure the best swapping experience" + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Edit limit order" +msgstr "Edit limit order" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +msgid "Your order is being cancelled." +msgstr "Your order is being cancelled." + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance based on current gas prices and trade size. You can set a custom slippage using the settings icon above." +msgstr "CoW Swap dynamically adjusts your slippage tolerance based on current gas prices and trade size. You can set a custom slippage using the settings icon above." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "CoW Swap has dynamically selected this slippage amount to account for current gas prices and trade size. Changes may result in slower execution." +msgstr "CoW Swap has dynamically selected this slippage amount to account for current gas prices and trade size. Changes may result in slower execution." + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "CoWmunity fees discount" +msgstr "CoWmunity fees discount" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping collateral assets when there are borrow positions. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping collateral assets when there are borrow positions. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Swap with" +msgstr "Swap with" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Current network fees" +msgstr "Current network fees" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "3 Days" +msgstr "3 Days" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Now" +msgstr "Now" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Mooove between <0/> any chain, hassle-free" +msgstr "Mooove between <0/> any chain, hassle-free" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Wrap {nativeSymbol} to {wrappedNativeSymbol}" +msgstr "Wrap {nativeSymbol} to {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The address that will receive the tokens." +msgstr "The address that will receive the tokens." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The number of signers who have confirmed this transaction versus the number of signer confirmations needed." +msgstr "The number of signers who have confirmed this transaction versus the number of signer confirmations needed." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Dynamic" +msgstr "Dynamic" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Fills at" +msgstr "Fills at" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "Confirm Price Impact" +msgstr "Confirm Price Impact" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Executing" +msgstr "Executing" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Another order has used up the approval amount. Set a new token approval to proceed with your order." +msgstr "Another order has used up the approval amount. Set a new token approval to proceed with your order." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#~ msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." +#~ msgstr "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid token address" +msgstr "Enter valid token address" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW conversion" +msgstr "vCOW conversion" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Sorry, we were unable to load the requested page." +msgstr "Sorry, we were unable to load the requested page." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Creation Failed" +msgstr "Order Creation Failed" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "This wallet is not yet supported" +msgstr "This wallet is not yet supported" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Created" +msgstr "Created" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Update Pre-hook" +msgstr "Update Pre-hook" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Governance" +msgstr "Governance" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Cancel" +msgstr "Cancel" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrapping {amountStr} {native} to {wrapped}" +msgstr "Wrapping {amountStr} {native} to {wrapped}" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order surplus" +msgstr "Order surplus" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of <2>{parts} parts placed every <3>{partDurationDisplay}, the total time to complete the order is <4>{totalDurationDisplay}. Each limit order remains open for <5>{partDurationDisplay} until the next part becomes active." +msgstr "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of <2>{parts} parts placed every <3>{partDurationDisplay}, the total time to complete the order is <4>{totalDurationDisplay}. Each limit order remains open for <5>{partDurationDisplay} until the next part becomes active." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "to" +msgstr "to" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "24 Hours" +msgstr "24 Hours" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Recoverable tokens" +msgstr "Recoverable tokens" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract not present or not connected to any supported chain" +msgstr "Contract not present or not connected to any supported chain" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "token approval" +msgstr "token approval" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "including an extra " +msgstr "including an extra " + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL format" +msgstr "Invalid URL format" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "order" +msgstr "order" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "cancellation" +msgstr "cancellation" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create a LlamaPay vesting contract" +msgstr "Create a LlamaPay vesting contract" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "tip" +msgstr "tip" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Open orders" +msgstr "Open orders" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +#~ msgid "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." +#~ msgstr "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Recreate limit order" +msgstr "Recreate limit order" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." +#~ msgstr "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "TWAP order split in <0>{numOfParts} equal parts" +msgstr "TWAP order split in <0>{numOfParts} equal parts" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Your total surplus" +msgstr "Your total surplus" + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "Desktop: Left-Aligned Orders Table" +msgstr "Desktop: Left-Aligned Orders Table" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw rewards from your Gnosis validators." +msgstr "Withdraw rewards from your Gnosis validators." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Selling {symbol} is not supported" +msgstr "Selling {symbol} is not supported" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "before that time." +msgstr "before that time." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "View transaction" +msgstr "View transaction" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "is" +msgstr "is" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Transaction {errorType}" +msgstr "Transaction {errorType}" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "Price impact <0>unknown - trade carefully" +msgstr "Price impact <0>unknown - trade carefully" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable partial approvals" +msgstr "Enable partial approvals" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx +msgid "Version" +msgstr "Version" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "All tokens" +msgstr "All tokens" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Additional Results from External Sources" +msgstr "Additional Results from External Sources" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "CoW Swap will try to lower this cost where possible." +msgstr "CoW Swap will try to lower this cost where possible." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "versions of" +msgstr "versions of" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Edit partial approval" +msgstr "Edit partial approval" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Edit" +msgstr "Edit" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires adequate allowance. Approve the token to proceed." +msgstr "The order remains open. Execution requires adequate allowance. Approve the token to proceed." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Sell → Buy" +msgstr "Sell → Buy" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Cancel order {shortId}" +msgstr "Cancel order {shortId}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "without worry." +msgstr "without worry." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "For your convenience, CoW Swap will bundle all the necessary actions for this trade into a single transaction. This includes the {nativeCurrencySymbol} wrapping and, if needed, {wrappedCurrencySymbol} approval. Even if the trade fails, your wrapping and approval will be done!" +msgstr "For your convenience, CoW Swap will bundle all the necessary actions for this trade into a single transaction. This includes the {nativeCurrencySymbol} wrapping and, if needed, {wrappedCurrencySymbol} approval. Even if the trade fails, your wrapping and approval will be done!" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token balance" +msgstr "Insufficient token balance" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "From" +msgstr "From" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Orders not matched after the threshold time are automatically refunded." +msgstr "Orders not matched after the threshold time are automatically refunded." + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Follow these steps:" +msgstr "Follow these steps:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Buy exactly" +msgstr "Buy exactly" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "{nativeTokenSymbol} Refunded" +msgstr "{nativeTokenSymbol} Refunded" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock the Power of TWAP Orders" +msgstr "Unlock the Power of TWAP Orders" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim GNO from validators" +msgstr "Claim GNO from validators" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "" +"Easily increase your position in a liquidity pool, adding both tokens in the right ratio.\n" +"\n" +" Whether you're seeking to increase your exposure to specific tokens or maximize the returns from your assets, this tool offers a quick and efficient way to enhance your liquidity position after a token swap, all in a smooth, efficient process." +msgstr "" +"Easily increase your position in a liquidity pool, adding both tokens in the right ratio.\n" +"\n" +" Whether you're seeking to increase your exposure to specific tokens or maximize the returns from your assets, this tool offers a quick and efficient way to enhance your liquidity position after a token swap, all in a smooth, efficient process." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Unwrapping" +msgstr "Unwrapping" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unknown quote error" +msgstr "Unknown quote error" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "Read more about unsupported wallets" +msgstr "Read more about unsupported wallets" + +#: apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts +msgid "Chain Id from contracts should match (ethFlow={ethFlowChainId}, settlement={settlementChainId})" +msgstr "Chain Id from contracts should match (ethFlow={ethFlowChainId}, settlement={settlementChainId})" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Back to wallet selection" +msgstr "Back to wallet selection" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +msgid "Confirm Action" +msgstr "Confirm Action" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "more" +msgstr "more" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "CoW Protocol covers the costs by executing your order at a slightly better price than your limit price." +msgstr "CoW Protocol covers the costs by executing your order at a slightly better price than your limit price." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Your limit price is {absoluteRateImpact}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +msgstr "Your limit price is {absoluteRateImpact}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Clear search input" +msgstr "Clear search input" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "The fill price of this order is close or at the market price (<0>fills at <1/>, {priceDiff}% from market) and is expected to {filledValue} fill soon." +msgstr "The fill price of this order is close or at the market price (<0>fills at <1/>, {priceDiff}% from market) and is expected to {filledValue} fill soon." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "of your sell amount! Therefore, your order is unlikely to execute." +msgstr "of your sell amount! Therefore, your order is unlikely to execute." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to easily set up vesting contracts with LlamaPay. Enter the recipient’s address or ENS name, then choose how much to transfer: the token buy will be automatically detected by the hook and the contracts will be linked to your LlamaPay dashboard for seamless tracking." +msgstr "This hook allows you to easily set up vesting contracts with LlamaPay. Enter the recipient’s address or ENS name, then choose how much to transfer: the token buy will be automatically detected by the hook and the contracts will be linked to your LlamaPay dashboard for seamless tracking." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Recreate" +msgstr "Recreate" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: libs/common-const/src/common.ts +msgid "Received" +msgstr "Received" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks available." +msgstr "No hooks available." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Your Metamask extension (<0>v{currentVersion}) is out of date. " +msgstr "Your Metamask extension (<0>v{currentVersion}) is out of date. " + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "Turn on Expert mode?" +msgstr "Turn on Expert mode?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/RenderProgressTopSection.tsx +msgid "N/A" +msgstr "N/A" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "This transaction can be simulated before execution to ensure that it will be succeed, generating a detailed report of the transaction execution." +msgstr "This transaction can be simulated before execution to ensure that it will be succeed, generating a detailed report of the transaction execution." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Year (max)" +msgstr "1 Year (max)" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "partially fillable" +msgstr "partially fillable" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token allowance" +msgstr "Insufficient token allowance" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Rate" +msgstr "Rate" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Decrease Value" +msgstr "Decrease Value" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/WrappingPreview/WrapCard.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Balance" +msgstr "Balance" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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." +msgstr "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." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "dynamic" +msgstr "dynamic" + +#: apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Powered by" +msgstr "Powered by" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Accept" +msgstr "Accept" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To at least" +msgstr "To at least" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Order has expired" +msgstr "Order has expired" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the amount that will be sold in each part of the TWAP order." +msgstr "This is the amount that will be sold in each part of the TWAP order." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Quote expired. Refreshing..." +msgstr "Quote expired. Refreshing..." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay" +msgstr "Aave Repay" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "The URL provided does not return a valid manifest file<0/><1>The server returned an HTML page instead of the expected JSON manifest.json file. Please check if the URL is correct and points to a valid hook dapp." +msgstr "The URL provided does not return a valid manifest file<0/><1>The server returned an HTML page instead of the expected JSON manifest.json file. Please check if the URL is correct and points to a valid hook dapp." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Favorite tokens" +msgstr "Favorite tokens" + +#: libs/common-const/src/common.ts +msgid "Limit Orders" +msgstr "Limit Orders" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts +msgid "Approved amount is not sufficient!" +msgstr "Approved amount is not sufficient!" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "funds" +msgstr "funds" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool details" +msgstr "Pool details" + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "Slippage adjusted to {slippageBpsPercentage}% to ensure quick execution" +msgstr "Slippage adjusted to {slippageBpsPercentage}% to ensure quick execution" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive surplus of your order" +msgstr "Receive surplus of your order" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW DAO Governance" +msgstr "CoW DAO Governance" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add <0/> to {walletName}" +msgstr "Add <0/> to {walletName}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Orders on CoW Swap can either be market orders (which fill at the market price within the slippage tolerance you set) or limit orders (which fill at a price you specify)." +msgstr "Orders on CoW Swap can either be market orders (which fill at the market price within the slippage tolerance you set) or limit orders (which fill at a price you specify)." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at least" +msgstr "at least" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "m" +msgstr "m" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Lists" +msgstr "Lists" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {stringifiedData}" +msgstr "Unexpected response from BFF: {stringifiedData}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +msgid "parts" +msgstr "parts" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "This is the cost of settling your order on-chain, including gas and any LP fees." +msgstr "This is the cost of settling your order on-chain, including gas and any LP fees." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signature is" +msgstr "more signature is" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower minimal slippage (instead of {minEthFlowSlippageToSignificant}% minimum)" +msgstr "Lower minimal slippage (instead of {minEthFlowSlippageToSignificant}% minimum)" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Submit" +msgstr "Submit" + +#: libs/common-const/src/common.ts +msgid "Account Overview" +msgstr "Account Overview" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "FREE order placement and cancellation" +msgstr "FREE order placement and cancellation" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "You cannot edit this field when selling" +msgstr "You cannot edit this field when selling" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Current market price is <0><1/> and needs to go {marketPriceDirection} by <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) to execute your order at <6><7/>." +msgstr "Current market price is <0><1/> and needs to go {marketPriceDirection} by <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) to execute your order at <6><7/>." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Selling {nativeSymbol} is only supported on SWAP orders." +msgstr "Selling {nativeSymbol} is only supported on SWAP orders." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wrap" +msgstr "Wrap" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract and chainId are not on the same chain" +msgstr "Contract and chainId are not on the same chain" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Search hooks by title or description" +msgstr "Search hooks by title or description" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Safe Nonce: <0>{nonce}" +msgstr "Safe Nonce: <0>{nonce}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can protect all your Ethereum transactions from MEV - not just trades on CoW Swap - by installing MEV Blocker." +msgstr "You can protect all your Ethereum transactions from MEV - not just trades on CoW Swap - by installing MEV Blocker." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "HTTPS is required. Please use <0>https://" +msgstr "HTTPS is required. Please use <0>https://" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Transaction in progress. See below for live status updates." +msgstr "Transaction in progress. See below for live status updates." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Please sign order" +msgstr "Please sign order" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Order unlikely to execute" +msgstr "Order unlikely to execute" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Choose where to display the limit price input." +msgstr "Choose where to display the limit price input." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. You are currently offline." +msgstr "Error loading price. You are currently offline." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Approve <0/> and {contextDefaultText}" +msgstr "Approve <0/> and {contextDefaultText}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Minimum receive" +msgstr "Minimum receive" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "This address is blocked on the Uniswap Labs interface because it is associated with one or more" +msgstr "This address is blocked on the Uniswap Labs interface because it is associated with one or more" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too short" +msgstr "Interval time too short" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Order Expired" +msgstr "Order Expired" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Selected token:" +msgstr "Selected token:" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Out of range" +msgstr "Out of range" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Since prices can change significantly over time, we suggest increasing your price protection for orders with long deadlines." +msgstr "Since prices can change significantly over time, we suggest increasing your price protection for orders with long deadlines." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "No surplus for the given time period" +msgstr "No surplus for the given time period" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Notifications" +msgstr "Notifications" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "Trading mode" +msgstr "Trading mode" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Connect your wallet" +msgstr "Connect your wallet" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Back" +msgstr "Back" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap sets the standard for protecting against MEV attacks such as frontrunning and sandwiching." +msgstr "CoW Swap sets the standard for protecting against MEV attacks such as frontrunning and sandwiching." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive exactly" +msgstr "You receive exactly" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter an amount" +msgstr "Enter an amount" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Added <0/>" +msgstr "Added <0/>" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Failed" +msgstr "Transaction Failed" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Select a network" +msgstr "Select a network" + +#: libs/common-utils/src/tooltips.ts +msgid "Minimum tokens you'll receive." +msgstr "Minimum tokens you'll receive." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected <0/>" +#~ msgstr "Connected <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Choose a custom deadline for your limit order" +msgstr "Choose a custom deadline for your limit order" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Cancelled order" +msgstr "Cancelled order" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Deposit" +msgstr "CoW AMM Deposit" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Order Settings" +msgstr "Limit Order Settings" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "on {chainLabel}" +msgstr "on {chainLabel}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Invalid price. Try increasing input/output amount." +msgstr "Invalid price. Try increasing input/output amount." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" +#~ msgstr "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "Token approval bundling" +msgstr "Token approval bundling" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "New" +msgstr "New" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Approval amount" +msgstr "Approval amount" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "Approving" +#~ msgstr "Approving" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "https:// or ipfs:// or ENS name" +msgstr "https:// or ipfs:// or ENS name" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Trade tokens" +msgstr "Trade tokens" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Boost Your Yield with One-Click Conversion" +msgstr "Boost Your Yield with One-Click Conversion" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Vested" +msgstr "Vested" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "Learn more about wallets" +msgstr "Learn more about wallets" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the estimated amount you will receive for each part of the TWAP order." +msgstr "This is the estimated amount you will receive for each part of the TWAP order." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay with Collateral Flashloan" +msgstr "Aave Repay with Collateral Flashloan" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Hooks" +msgstr "Hooks" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "for trading" +#~ msgstr "for trading" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at most " +msgstr "at most " + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to withdraw rewards from your Gnosis Chain validators through CoW Swap. It automates the process of interacting with the Gnosis Deposit Contract, enabling you to claim any available rewards directly to your specified withdrawal address. The hook monitors your validator's accrued rewards and triggers the claimWithdrawals function when rewards are ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring manual contract interaction, providing a smoother and more efficient experience for users." +msgstr "This hook allows you to withdraw rewards from your Gnosis Chain validators through CoW Swap. It automates the process of interacting with the Gnosis Deposit Contract, enabling you to claim any available rewards directly to your specified withdrawal address. The hook monitors your validator's accrued rewards and triggers the claimWithdrawals function when rewards are ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring manual contract interaction, providing a smoother and more efficient experience for users." + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Sandwich icon" +msgstr "Sandwich icon" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Network compatibility error" +msgstr "Network compatibility error" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: URLs cannot contain spaces" +msgstr "Invalid URL: URLs cannot contain spaces" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid list location" +msgstr "Enter valid list location" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "View" +msgstr "View" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Execution price" +msgstr "Execution price" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "No tokens found" +msgstr "No tokens found" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Unsupported" +msgstr "Unsupported" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "seconds" +msgstr "seconds" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "token before creation." +msgstr "token before creation." + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at least " +msgstr "at least " + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +msgid "Recover funds from {accountProxyLabelString}" +msgstr "Recover funds from {accountProxyLabelString}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +msgid "The address that will receive the tokens on the destination chain." +msgstr "The address that will receive the tokens on the destination chain." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation" +msgstr "Creation" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "AFTER" +msgstr "AFTER" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "<0/><1/>Consider waiting for lower network costs.<2/><3/>You may still move forward with this swap but a high percentage of it will be consumed by network costs." +msgstr "<0/><1/>Consider waiting for lower network costs.<2/><3/>You may still move forward with this swap but a high percentage of it will be consumed by network costs." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapping on" +msgstr "Swapping on" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Fill or Kill)" +msgstr "(Fill or Kill)" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Play MEV Slicer" +msgstr "Play MEV Slicer" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Refreshing quote..." +msgstr "Refreshing quote..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "was sent to" +msgstr "was sent to" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +msgid "Deposit" +msgstr "Deposit" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +msgid "Review TWAP order" +msgstr "Review TWAP order" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid manifest format: Missing \"cow_hook_dapp\" property in manifest.json" +msgstr "Invalid manifest format: Missing \"cow_hook_dapp\" property in manifest.json" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Approve {wrappedSymbol}\" to try again." +msgstr "Click \"Approve {wrappedSymbol}\" to try again." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PreHookButton/index.tsx +msgid "Add Pre-Hook Action" +msgstr "Add Pre-Hook Action" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Page {page} of {maxPage}" +msgstr "Page {page} of {maxPage}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Each time you claim, you will receive the entire claimable amount." +msgstr "Each time you claim, you will receive the entire claimable amount." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import" +msgstr "Import" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Order params invalid sellToken address for token: {stringifiedJSON}" +msgstr "Order params invalid sellToken address for token: {stringifiedJSON}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Enable Partial Executions" +msgstr "Enable Partial Executions" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "I acknowledge the high price impact" +msgstr "I acknowledge the high price impact" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Failed" +msgstr "Simulation Failed" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Successfully claimed" +msgstr "Successfully claimed" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Call any smart contract with your own parameters" +msgstr "Call any smart contract with your own parameters" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to the classic {wrappedSymbol} experience and benefit!" +msgstr "Switch to the classic {wrappedSymbol} experience and benefit!" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Add {hookTypeText}-hook" +msgstr "Add {hookTypeText}-hook" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order filled" +msgstr "Order filled" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm swap" +msgstr "Confirm swap" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Part of a {twapOrderN}-part TWAP order split" +msgstr "Part of a {twapOrderN}-part TWAP order split" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claim COW <0/>" +msgstr "Claim COW <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridged via" +msgstr "Bridged via" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" +#~ msgstr "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulation report" +msgstr "Simulation report" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Tip: Custom tokens are stored locally in your browser" +msgstr "Tip: Custom tokens are stored locally in your browser" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive at least" +msgstr "You receive at least" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "You are connected to" +msgstr "You are connected to" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown hook dapp" +msgstr "Unknown hook dapp" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Swap now" +msgstr "Swap now" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "An unexpected error occurred" +msgstr "An unexpected error occurred" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +msgid "Add" +msgstr "Add" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Confirm Swap and Bridge" +msgstr "Confirm Swap and Bridge" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The order will start when it is validated and executed in your Safe." +msgstr "The order will start when it is validated and executed in your Safe." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/ConfirmButton.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormBlankButton/index.tsx +msgid "Confirm with your wallet" +msgstr "Confirm with your wallet" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +#~ msgid "Swaps just got smarter" +#~ msgstr "Swaps just got smarter" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Swap costs are at least {formattedFeePercentage}% of the swap amount" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap capture surplus - so if the price moves in your favor, you're likely to get more than you asked for." +msgstr "Limit orders on CoW Swap capture surplus - so if the price moves in your favor, you're likely to get more than you asked for." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Avg. execution price" +msgstr "Avg. execution price" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Hook position mismatch:" +msgstr "Hook position mismatch:" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx +msgid "Loading hook..." +msgstr "Loading hook..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Terms and Conditions" +msgstr "Terms and Conditions" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Hide today's fortune cookie" +msgstr "Hide today's fortune cookie" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Post Hooks" +msgstr "Post Hooks" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Not compatible with current wallet type" +msgstr "Not compatible with current wallet type" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#~ msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." +#~ msgstr "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "on explorer" +msgstr "on explorer" + +#: apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts +msgid "No provider yet" +msgstr "No provider yet" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Your trade will be executed in 2 stops. First, you swap on <0>{COW_PROTOCOL_NAME} (Stop 1), then you bridge via <1>{providerInfoName} (Stop 2)." +msgstr "Your trade will be executed in 2 stops. First, you swap on <0>{COW_PROTOCOL_NAME} (Stop 1), then you bridge via <1>{providerInfoName} (Stop 2)." + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +msgid "Wallet chainId differs from app chainId. Wallet: {networkString}, App: {chainId}. Action: {description}" +msgstr "Wallet chainId differs from app chainId. Wallet: {networkString}, App: {chainId}. Action: {description}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Executes at" +msgstr "Executes at" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "From (incl. costs)" +msgstr "From (incl. costs)" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap Flashloan" +msgstr "Aave Collateral Swap Flashloan" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "order executes at" +msgstr "order executes at" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Information" +msgstr "Information" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}" +msgstr "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "For this order, network costs would be" +msgstr "For this order, network costs would be" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Canceling your order" +msgstr "Canceling your order" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} out of {totalSolvers} solvers" +msgstr "{solversLength} out of {totalSolvers} solvers" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Something went wrong" +msgstr "Something went wrong" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add the app at your own risk" +msgstr "Add the app at your own risk" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Unknown Currency" +msgstr "Unknown Currency" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receive {tokenLabel}" +msgstr "Receive {tokenLabel}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Set approval amount" +msgstr "Set approval amount" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "CoW Fortune of the day" +msgstr "CoW Fortune of the day" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Order ID" +msgstr "Order ID" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "The order was executed before it could be cancelled." +msgstr "The order was executed before it could be cancelled." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "a native currency" +msgstr "a native currency" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm order" +msgstr "Confirm order" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending pre-signature" +msgstr "Pending pre-signature" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "If your orders often expire, consider increasing your slippage or contact us on" +msgstr "If your orders often expire, consider increasing your slippage or contact us on" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The good news" +msgstr "The good news" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "yield" +msgstr "yield" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Swap completed" +msgstr "Swap completed" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool" +msgstr "Pool" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Allow you to chose whether your limit orders will be <0>Partially fillable or <1>Fill or kill.<2/><3/><4>Fill or kill orders will either be filled fully or not at all.<5/><6>Partially fillable orders may be filled partially if there isn't enough liquidity to fill the full amount." +msgstr "Allow you to chose whether your limit orders will be <0>Partially fillable or <1>Fill or kill.<2/><3/><4>Fill or kill orders will either be filled fully or not at all.<5/><6>Partially fillable orders may be filled partially if there isn't enough liquidity to fill the full amount." + +#: apps/cowswap-frontend/src/modules/trade/pure/UnlockWidgetScreen/index.tsx +msgid "Learn more about <0>{orderType} orders ↗" +msgstr "Learn more about <0>{orderType} orders ↗" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "NEW" +msgstr "NEW" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation successful" +msgstr "Simulation successful" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "part" +msgstr "part" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Cross-chain swaps are here" +msgstr "Cross-chain swaps are here" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +#~ msgid "Approval amount:" +#~ msgstr "Approval amount:" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "Fee discount" +msgstr "Fee discount" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "Allow CoW Swap to use your <0/>" +msgstr "Allow CoW Swap to use your <0/>" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "mo" +msgstr "mo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe logo" +msgstr "Safe logo" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Wrapping" +msgstr "Wrapping" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +msgid "Provided proxy address does not match {accountProxyLabelString} address!, recipient={recipient}, proxyAddress={proxyAddress}" +msgstr "Provided proxy address does not match {accountProxyLabelString} address!, recipient={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be <0>insufficient for any further on-chain transactions." +msgstr "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be <0>insufficient for any further on-chain transactions." + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at least" +msgstr "for at least" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet to recover funds" +msgstr "Connect wallet to recover funds" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Failed to load manifest. Please verify the URL and try again." +msgstr "Failed to load manifest. Please verify the URL and try again." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Created" +msgstr "Order Created" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/index.tsx +msgid "signing" +msgstr "signing" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Cow meditating..." +#~ msgstr "Cow meditating..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "About CoW Swap" +msgstr "About CoW Swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Unlike on other exchanges, you won't be charged for this! Feel free to" +msgstr "Unlike on other exchanges, you won't be charged for this! Feel free to" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Error loading the claimable amount" +msgstr "Error loading the claimable amount" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Attention" +msgstr "Attention" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/SelectTokenModalContent.tsx +msgid "This route is not yet supported." +msgstr "This route is not yet supported." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires sufficient" +msgstr "The order remains open. Execution requires sufficient" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect signer" +msgstr "Connect signer" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet banner" +msgstr "Connect wallet banner" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "The Safe App License Fee incurred here is charged by the Safe Foundation for the display of the app within their Safe Store. The fee is automatically calculated in this quote. Part of the fees will contribute to the CoW DAO treasury that supports the CoW Community." +msgstr "The Safe App License Fee incurred here is charged by the Safe Foundation for the display of the app within their Safe Store. The fee is automatically calculated in this quote. Part of the fees will contribute to the CoW DAO treasury that supports the CoW Community." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "win" +msgstr "win" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This order needs to be signed and executed with your {walletType} wallet" +msgstr "This order needs to be signed and executed with your {walletType} wallet" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Try Again" +msgstr "Try Again" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires adequate allowance for" +msgstr "The order remains open. Execution requires adequate allowance for" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired" +msgstr "Your order expired" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add custom hook" +msgstr "Add custom hook" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve {symbol}" +msgstr "Approve {symbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be after {minDateStr} {timeZone}" +msgstr "Must be after {minDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeRateDetails/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "Limit price" +msgstr "Limit price" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Buy" +msgstr "Buy" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "is required" +msgstr "is required" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Operation in progress!" +msgstr "Operation in progress!" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Morpho Borrow hook enables users to seamlessly combine swaps with borrow-related actions. Users can enter new positions, leave existing ones, or move between different markets through a unified, streamlined process." +msgstr "The Morpho Borrow hook enables users to seamlessly combine swaps with borrow-related actions. Users can enter new positions, leave existing ones, or move between different markets through a unified, streamlined process." + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "When enabled, the orders table will be displayed on the left side on desktop screens. On mobile, the orders table will always be stacked below." +msgstr "When enabled, the orders table will be displayed on the left side on desktop screens. On mobile, the orders table will always be stacked below." + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "View proposals" +msgstr "View proposals" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Creating Order" +msgstr "Creating Order" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Select" +msgstr "Select" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Confirm {orderType}" +msgstr "Confirm {orderType}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Route" +msgstr "Route" + +#: apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx +msgid "Price impact due to current liquidity levels" +msgstr "Price impact due to current liquidity levels" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount and bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Swap costs are at least {formattedFeePercentage}% of the swap amount and bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SlippageTooltip/index.tsx +msgid "MEV-protected slippage" +msgstr "MEV-protected slippage" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {accountProxyLabelString}: <0/>" +#~ msgstr "Swap bridged via your {accountProxyLabelString}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "There was an error trying to load claimable tokens" +msgstr "There was an error trying to load claimable tokens" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Learn" +msgstr "Learn" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "This price is {displayedPercent}% lower than current market price. You could be selling your <0/> at a loss! Click on \"Market price\" to set your limit price to the current market price." +msgstr "This price is {displayedPercent}% lower than current market price. You could be selling your <0/> at a loss! Click on \"Market price\" to set your limit price to the current market price." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Continue swap with {wrappedSymbol}" +msgstr "Continue swap with {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Light mode" +msgstr "Light mode" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The output token cannot be transferred. There may be an issue with the output token." +msgstr "The output token cannot be transferred. There may be an issue with the output token." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and swap" +#~ msgstr "Approve and swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "The competition has started" +msgstr "The competition has started" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You will receive this price or better for your tokens." +msgstr "You will receive this price or better for your tokens." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Add Hook" +msgstr "Add Hook" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "select" +msgstr "select" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Allow spending" +msgstr "Allow spending" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Reset favorites" +msgstr "Reset favorites" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol} failed" +msgstr "Wrap {nativeSymbol} failed" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at most" +msgstr "at most" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "View on explorer" +msgstr "View on explorer" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "for" +msgstr "for" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "Default approve" +msgstr "Default approve" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient balance on the current account." +msgstr "Order cannot be filled due to insufficient balance on the current account." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "required" +msgstr "required" + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Wallet" +msgstr "Wallet" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Before costs" +msgstr "Before costs" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Market orders are always <0>Fill or kill, while limit orders are by default <1>Partially fillable, but can also be changed to <2>Fill or kill through your order settings." +msgstr "Market orders are always <0>Fill or kill, while limit orders are by default <1>Partially fillable, but can also be changed to <2>Fill or kill through your order settings." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The first part of your TWAP order will become active as soon as you confirm the order below." +msgstr "The first part of your TWAP order will become active as soon as you confirm the order below." + +#. js-lingui-explicit-id +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solver-rankings" +#~ msgstr "{0}" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +msgid "All orders" +msgstr "All orders" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "If CoW Swap cannot get this price or better (taking into account fees and price protection tolerance), your TWAP will not execute. CoW Swap will <0>always improve on this price if possible." +msgstr "If CoW Swap cannot get this price or better (taking into account fees and price protection tolerance), your TWAP will not execute. CoW Swap will <0>always improve on this price if possible." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "In order to protect your funds, you will need to remove the approval on this contract." +msgstr "In order to protect your funds, you will need to remove the approval on this contract." + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Advanced" +msgstr "Advanced" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Not yet supported" +msgstr "Not yet supported" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Remove" +msgstr "Remove" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient allowance" +msgstr "Order cannot be filled due to insufficient allowance" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "turn on expert mode" +msgstr "turn on expert mode" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient liquidity for this trade." +msgstr "Insufficient liquidity for this trade." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Buying native currency with smart contract wallets is not currently supported" +msgstr "Buying native currency with smart contract wallets is not currently supported" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Expected to sell" +msgstr "Expected to sell" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "This is the minimum amount that you will receive." +msgstr "This is the minimum amount that you will receive." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claiming COW..." +msgstr "Claiming COW..." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "continue with this swap" +msgstr "continue with this swap" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Could not connect to the provided URL. Please check if the URL is correct and the server is accessible." +msgstr "Could not connect to the provided URL. Please check if the URL is correct and the server is accessible." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Pending execution" +msgstr "Pending execution" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Place TWAP order" +msgstr "Place TWAP order" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Reload page" +msgstr "Reload page" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter a valid recipient" +msgstr "Enter a valid recipient" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeEthFlowTx.ts +msgid "Failed to place order selling {nativeCurrencySymbol}" +msgstr "Failed to place order selling {nativeCurrencySymbol}" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "native" +msgstr "native" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "Your order will execute when the market price is {displayedPercent}% better than the current market price." +msgstr "Your order will execute when the market price is {displayedPercent}% better than the current market price." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover funds" +msgstr "Recover funds" + +#: apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Cancel order" +msgstr "Cancel order" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Your order was created on this date & time. It will remain open until it expires or is filled." +msgstr "Your order was created on this date & time. It will remain open until it expires or is filled." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm Swap" +msgstr "Confirm Swap" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Modified recipient address to" +msgstr "Modified recipient address to" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#~ msgid "Something failed. Please try again later." +#~ msgstr "Something failed. Please try again later." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks..." +msgstr "Search hooks..." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "{value} sec" +msgstr "{value} sec" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee recipient must be set!" +msgstr "Partner fee recipient must be set!" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Unlock Enhanced Yield Features" +msgstr "Unlock Enhanced Yield Features" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Recover!" +msgstr "Recover!" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/EstimatedFillPrice/index.tsx +msgid "Estimated fill price" +msgstr "Estimated fill price" + +#: apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx +msgid "Transaction failed" +msgstr "Transaction failed" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Approve spending <0/> <1/> on CoW Swap" +msgstr "Approve spending <0/> <1/> on CoW Swap" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Status" +msgstr "Status" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "higher" +msgstr "higher" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "When locked, the limit price stays fixed when changing the amounts. When unlocked, the limit price will update based on the amount changes." +msgstr "When locked, the limit price stays fixed when changing the amounts. When unlocked, the limit price will update based on the amount changes." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "For this order, network costs would be <0>{formattedFeePercentage}% (<1/>) of your sell amount! Therefore, your order is unlikely to execute." +msgstr "For this order, network costs would be <0>{formattedFeePercentage}% (<1/>) of your sell amount! Therefore, your order is unlikely to execute." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are approving an amount equal to or greater than the input amount." +msgstr "Check that you are approving an amount equal to or greater than the input amount." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge cases." +msgstr "Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge cases." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "Best price found!" +msgstr "Best price found!" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridging succeeded" +msgstr "Bridging succeeded" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Tokens must be different" +msgstr "Tokens must be different" + +#: apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts +msgid "There is no provider to get Gnosis safe info" +msgstr "There is no provider to get Gnosis safe info" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Expired order" +msgstr "Expired order" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Successful" +msgstr "Simulation Successful" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "Partial approval may block <0>{ordersWithPermitLength} other {orderWord}" +msgstr "Partial approval may block <0>{ordersWithPermitLength} other {orderWord}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Destination transaction" +msgstr "Destination transaction" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are using a smart contract wallet" +msgstr "Because you are using a smart contract wallet" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/SwapStepRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Swap" +msgstr "Swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Advanced users can create complex, conditional orders directly through CoW Protocol. Read the docs for more info." +msgstr "Advanced users can create complex, conditional orders directly through CoW Protocol. Read the docs for more info." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click below to wrap your {nativeSymbol} to {wrappedSymbol} via an on-chain ERC20 transaction." +msgstr "To continue, click below to wrap your {nativeSymbol} to {wrappedSymbol} via an on-chain ERC20 transaction." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current bridge costs make up <0><1>{formattedBridgeFeePercentage}% of your swap amount." +msgstr "Current bridge costs make up <0><1>{formattedBridgeFeePercentage}% of your swap amount." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "In range" +msgstr "In range" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This hook is not compatible with smart contract wallets. It only supports EOA wallets." +msgstr "This hook is not compatible with smart contract wallets. It only supports EOA wallets." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "Order expires" +msgstr "Order expires" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "Minimum sell size" +msgstr "Minimum sell size" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Min. to deposit" +msgstr "Min. to deposit" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "MEV is lethal these days!" +msgstr "MEV is lethal these days!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "FREE" +msgstr "FREE" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Week" +msgstr "1 Week" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Eth flow context is not ready" +msgstr "Eth flow context is not ready" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "There are no orders" +msgstr "There are no orders" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "ENS recipient not supported for Swap and Bridge. Use address instead." +msgstr "ENS recipient not supported for Swap and Bridge. Use address instead." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures" +msgstr "Enough signatures" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Legal" +msgstr "Legal" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "You will be prompted to <0>wrap your {nativeSymbol} to {wrappedSymbol} before placing your order." +msgstr "You will be prompted to <0>wrap your {nativeSymbol} to {wrappedSymbol} before placing your order." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancelling {ordersCount} orders" +msgstr "Cancelling {ordersCount} orders" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "User rejected signing COW claim transaction" +msgstr "User rejected signing COW claim transaction" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelled" +msgstr "Cancelled" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Invalid parameters" +msgstr "Invalid parameters" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "Small orders are unlikely to be executed" +msgstr "Small orders are unlikely to be executed" + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "bought" +msgstr "bought" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Cancellation transaction" +msgstr "Cancellation transaction" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "{walletName} account changed" +msgstr "{walletName} account changed" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Value" +msgstr "Value" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell" +msgstr "You sell" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Longer limit orders - place orders for up to a year." +msgstr "Longer limit orders - place orders for up to a year." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "User rejected signing the cancellation" +msgstr "User rejected signing the cancellation" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Loading {accountProxyLabel}" +msgstr "Loading {accountProxyLabel}" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Manage" +msgstr "Manage" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset {symbol} allowance to 0 before setting new spending cap" +msgstr "Reset {symbol} allowance to 0 before setting new spending cap" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate Now" +msgstr "Delegate Now" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try new limit orders now" +msgstr "Try new limit orders now" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Custom Tokens" +msgstr "Custom Tokens" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a Uniswap v2 Weighted pool before the swap" +msgstr "Remove liquidity from a Uniswap v2 Weighted pool before the swap" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Hook version" +msgstr "Hook version" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Spender" +msgstr "Spender" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "<0>CoW Swap requires offline signatures, which is currently not supported by some wallets.<1>Read more in the <2>FAQ." +msgstr "<0>CoW Swap requires offline signatures, which is currently not supported by some wallets.<1>Read more in the <2>FAQ." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order expired" +msgstr "Order expired" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulate" +msgstr "Simulate" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Start time" +msgstr "Start time" + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Continue" +msgstr "Continue" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +#~ msgid "CowSwap 404 not found" +#~ msgstr "CowSwap 404 not found" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "(also known as CoW Shed)" +msgstr "(also known as CoW Shed)" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx +msgid "Loading bridge data <0/>" +msgstr "Loading bridge data <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Sell" +msgstr "Sell" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Use the <0/> to see {currentTabText}" +msgstr "Use the <0/> to see {currentTabText}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower overall network costs" +msgstr "Lower overall network costs" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "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." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If the balance remains insufficient at creation time, this order portion will not be created. Add more" +msgstr "If the balance remains insufficient at creation time, this order portion will not be created. Add more" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Leverage advanced strategies for optimal growth" +msgstr "Leverage advanced strategies for optimal growth" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Try adjusting your search term or clearing the filter" +msgstr "Try adjusting your search term or clearing the filter" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "View List" +msgstr "View List" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to any of the CoW AMM pools" +msgstr "Add liquidity to any of the CoW AMM pools" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Invalid proxy address" +msgstr "Invalid proxy address" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert vCOW to COW" +msgstr "Convert vCOW to COW" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Exec. price" +msgstr "Exec. price" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "You sold <0/>" +msgstr "You sold <0/>" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "Less" +msgstr "Less" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim your LlamaPay vesting contract funds" +msgstr "Claim your LlamaPay vesting contract funds" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Est. bridge time <0/>" +msgstr "Est. bridge time <0/>" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are providing a sufficient gas limit for the transaction in your wallet." +msgstr "Check that you are providing a sufficient gas limit for the transaction in your wallet." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrap {amountStr} {native} to {wrapped}" +msgstr "Wrap {amountStr} {native} to {wrapped}" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim COW Airdrop" +msgstr "Claim COW Airdrop" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was successfully cancelled." +msgstr "Your order was successfully cancelled." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "surplus cow" +msgstr "surplus cow" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Post" +msgstr "Post" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Save changes" +msgstr "Save changes" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract methods which do not operate optimally with CoW Protocol.<0>For more information, please refer to the <1>FAQ." +msgstr "CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract methods which do not operate optimally with CoW Protocol.<0>For more information, please refer to the <1>FAQ." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Cancelling" +msgstr "Cancelling" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Distance to market" +msgstr "Distance to market" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "Did you know?" +msgstr "Did you know?" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "Insufficient time between parts" +msgstr "Insufficient time between parts" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." +#~ msgstr "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." + +#: apps/cowswap-frontend/src/common/pure/Stepper/index.tsx +msgid "checkmark" +msgstr "checkmark" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote will be updated in {time}" +msgstr "Quote will be updated in {time}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Dark mode" +msgstr "Dark mode" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Bridge costs" +msgstr "Bridge costs" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "View cancellation" +msgstr "View cancellation" + +#: apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx +msgid "Loading" +msgstr "Loading" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Limit" +msgstr "Limit" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm bridging" +msgstr "Confirm bridging" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and {defaultText}" +#~ msgstr "Approve and {defaultText}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "<0>COW vesting from the GNO lock is vested linearly over four years, starting on" +msgstr "<0>COW vesting from the GNO lock is vested linearly over four years, starting on" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Part duration\" refers to the duration between each part of your TWAP order.<0/><1/>Choosing a shorter time allows for faster execution of each part, potentially reducing price fluctuations. Striking the right balance is crucial for optimal execution." +msgstr "The \"Part duration\" refers to the duration between each part of your TWAP order.<0/><1/>Choosing a shorter time allows for faster execution of each part, potentially reducing price fluctuations. Striking the right balance is crucial for optimal execution." + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Hours" +msgstr "Hours" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Clear all" +msgstr "Clear all" + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please click confirm to {action}." +msgstr "Please click confirm to {action}." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Chain ID:" +msgstr "Chain ID:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "What is {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "What is {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/steps/calculateUniqueOrderId.ts +msgid "Missing currency for Eth Flow Fee" +msgstr "Missing currency for Eth Flow Fee" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Page not found!" +msgstr "Page not found!" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Safe App License Fee" +msgstr "Safe App License Fee" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "CowSwap Error" +msgstr "CowSwap Error" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Customize your order size, expiration, and number of parts" +msgstr "Customize your order size, expiration, and number of parts" + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "{label} token bridge" +msgstr "{label} token bridge" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is signed." +msgstr "The {operationLabel} is signed." + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "The price impact is <0>{formattedPriceImpact}%. Consider breaking up your order using a <1>TWAP order and possibly get a better rate." +msgstr "The price impact is <0>{formattedPriceImpact}%. Consider breaking up your order using a <1>TWAP order and possibly get a better rate." + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "confirm" +msgstr "confirm" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Back home" +msgstr "Back home" + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +#~ msgid "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" +#~ msgstr "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refund started" +msgstr "Refund started" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Close" +msgstr "Close" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Execute Safe transaction" +msgstr "Execute Safe transaction" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Always review wallet requests carefully before approving." +msgstr "Always review wallet requests carefully before approving." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw Uniswap v2 from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Reduce or withdraw Uniswap v2 from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "2/2 Sign transaction" +msgstr "2/2 Sign transaction" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "yield over average" +msgstr "yield over average" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Uh oh! The market price has moved outside of your slippage tolerance. You can wait for prices to change{cancellationModal}" +msgstr "Uh oh! The market price has moved outside of your slippage tolerance. You can wait for prices to change{cancellationModal}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Entered amount is invalid" +msgstr "Entered amount is invalid" + +#: libs/common-const/src/common.ts +msgid "Mev Slicer" +msgstr "Mev Slicer" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Creation transaction" +msgstr "Creation transaction" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. Partial approval may affect the execution of other orders. Adjust the amount or choose full approval to proceed." +msgstr "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. Partial approval may affect the execution of other orders. Adjust the amount or choose full approval to proceed." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add token" +msgstr "Add token" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Filled" +msgstr "Filled" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pool" +msgstr "pool" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: Path contains consecutive forward slashes" +msgstr "Invalid URL: Path contains consecutive forward slashes" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "partially" +msgstr "partially" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "View on Bridge Explorer ↗" +msgstr "View on Bridge Explorer ↗" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient balance" +msgstr "Insufficient balance" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Bottom" +msgstr "Bottom" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Filled" +msgstr "Order Filled" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid content type: Expected JSON but received {errorContentType}. Make sure the URL points to a valid manifest file." +msgstr "Invalid content type: Expected JSON but received {errorContentType}. Make sure the URL points to a valid manifest file." + +#: apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx +msgid "Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on {chainInfoLabel}, you must change the network in your wallet." +msgstr "Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on {chainInfoLabel}, you must change the network in your wallet." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "out of" +#~ msgstr "out of" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Learn more" +msgstr "Learn more" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap and bridge costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Swap and bridge costs are at least {formattedFeePercentage}% of the swap amount" diff --git a/apps/cowswap-frontend/src/locales/es-ES.po b/apps/cowswap-frontend/src/locales/es-ES.po new file mode 100644 index 0000000000..02846f5e22 --- /dev/null +++ b/apps/cowswap-frontend/src/locales/es-ES.po @@ -0,0 +1,6177 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-08-22 15:17-0300\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: es\n" +"Project-Id-Version: intercambiovaca\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-11-07 18:59\n" +"Last-Translator: \n" +"Language-Team: Spanish\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: intercambiovaca\n" +"X-Crowdin-Project-ID: 842798\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /feat.internationalization-setup-for-swap-cow-fi/apps/cowswap-frontend/src/locales/en-US.po\n" +"X-Crowdin-File-ID: 11\n" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: " +#~ msgstr "Selected token: " + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "selected" +msgstr "selecc." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "View token contract" +msgstr "Ver contrato del token" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Signature is undefined!" +msgstr "¡La firma no está definida!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "I just received surplus on" +msgstr "Acabo de recibir excedentes en" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "years" +msgstr "años" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Learn about surplus on CoW Swap" +msgstr "Aprender sobre superávit en CoW Swap" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Retrieve COW tokens before or after a swap." +msgstr "Recuperar fichas COW antes o después de un intercambio." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Disconnect" +msgstr "Desconectar" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Bridge transaction" +msgstr "Transacción del puente" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Because you are using a smart contract wallet, you will pay a separate gas cost for signing the order placement on-chain." +msgstr "Debido a que está utilizando una billetera de contrato inteligente, usted pagará un coste de gas separado por firmar la colocación de la orden en cadena." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelled. Too many order cancellations" +msgstr "cancelado. Demasiadas cancelaciones de órdenes" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Your Safe fallback handler was changed after TWAP orders were placed. All open TWAP orders are not getting created because of that. Please, update the fallback handler in order to make the orders work again." +msgstr "Su gestor de reserva seguro fue cambiado después de que se realizaron órdenes TWAP. Todas las órdenes TWAP abiertas no se están creando debido a eso. Por favor, actualice el gestor de reserva para hacer que las órdenes funcionen de nuevo." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve operation failed." +msgstr "Error al aprobar la operación." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Set to trade" +msgstr "Poner en operación" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "To override this, enter your desired slippage amount.<0/><1/>Either way, your slippage is protected from MEV!" +msgstr "Para anular esto, introduce la cantidad de tu deslizante deseada.<0/><1/>De cualquier manera, ¡tu deslizante está protegido de MEV!" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient allowance on the current account." +#~ msgstr "Order cannot be filled due to insufficient allowance on the current account." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "Did you know? {benefit}\n\n" +"Start swapping on swap.cow.fi #CoWSwap @CoWSwap 🐮" +msgstr "¿Sabías que? {benefit}\n\n" +"Comienza a intercambiar en swap.cow.fi #CoWSwap @CoWSwap 🐮" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to permit an address to spend your tokens on your behalf. This is useful for allowing a smart contract to spend your tokens without needing to approve each transaction." +msgstr "Este gancho te permite permitir que una dirección gaste tus fichas en tu nombre. Esto es útil para permitir que un contrato inteligente gaste sus fichas sin necesidad de aprobar cada transacción." + +#: apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx +msgid "<0>Connection Lost<1/>You appear to be offline. Some features may not work properly." +msgstr "<0>Perdida de conexión<1/>Parece que estás desconectado. Algunas características pueden no funcionar correctamente." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Total duration" +msgstr "Duración total" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrap {amountStr} {wrapped} to {native}" +msgstr "Desenvolver {amountStr} {wrapped} a {native}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +msgid "in progress" +msgstr "en progreso" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeWarning/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/index.tsx +msgid "Swap anyway" +msgstr "Intercambiar de todos modos" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The hash for this Safe transaction." +msgstr "El hash para esta transacción segura." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation failed" +msgstr "Simulación fallida" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Order {value} filled" +msgstr "Orden {value} completada" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your {tokenSymbol}. If you approve the default amount, you will only have to do this once per token." +msgstr "Debes dar permiso a los contratos inteligentes del Protocolo CoW para usar tu {tokenSymbol}. Si aprueba la cantidad por defecto, sólo tendrá que hacer esto una vez por token." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receiving {nativeTokenSymbol} Refund..." +msgstr "Recibiendo reembolso de {nativeTokenSymbol}..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Partially fillable" +msgstr "Parcialmente llenable" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx +msgid "Value may be zero due to missing token price information" +msgstr "El valor puede ser cero debido a la falta de información del precio del token" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Type" +msgstr "Tipo" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {resStatus}" +msgstr "Respuesta inesperada de BFF: {resStatus}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "orders history" +msgstr "historial de órdenes" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Bridging failed" +msgstr "Fallo en el Bridging" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "What is {accountProxyLabel}?" +msgstr "¿Qué es {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Your activity will appear here..." +msgstr "Tu actividad aparecerá aquí..." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Partially fillable)" +msgstr "(Parcialmente llenable)" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try before you buy - see the potential fill price before you hit trade" +msgstr "Prueba antes de comprar - mira el precio potencial de relleno antes de golpear la operación" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol}" +msgstr "Envolver {nativeSymbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Order expires in" +msgstr "El orden expira en" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "Network costs (est.)" +msgstr "Costos de red (est.)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The account address which will/did receive the bought amount." +msgstr "La dirección de la cuenta que recibirá el importe comprado." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: {sym}" +#~ msgstr "Selected token: {sym}" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Unexpected error fetching data: wrong format data" +msgstr "Error inesperado obteniendo datos: datos de formato incorrecto" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "is a helper contract that improves the user experience within CoW Swap for features like" +msgstr "es un contrato de ayuda que mejora la experiencia del usuario dentro de CoW Swap para funciones como" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To" +msgstr "A" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Are you sure you want to cancel order <0>{shortId}?" +msgstr "¿Estás seguro de que quieres cancelar la orden <0>{shortId}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "My Custom Hooks ({customHooksCount})" +msgstr "Mis Hooks personalizados ({customHooksCount})" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order won't execute and is protected if the market price dips more than your set price protection." +msgstr "Su orden de TWAP no se ejecutará y está protegido si el precio de mercado cae más que la protección de su precio establecido." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {statusText}. Your account is deny-listed." +msgstr "La orden no puede ser {statusText}. Su cuenta está en la lista negada." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "The bridge provider modified the recipient address to <0/>. This ensure smooooth bridging." +msgstr "El proveedor del puente modificó la dirección del destinatario a <0/>. Esto asegura un puente liso." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation was successful. Your transaction is expected to succeed." +msgstr "La simulación de Tenderly fue exitosa. Se espera que tu transacción tenga éxito." + +#: apps/cowswap-frontend/src/modules/injectedWidget/pure/WidgetParamsErrorsScreen/index.tsx +msgid "The are some errors with CoW Swap widget configuration" +msgstr "Son algunos errores con la configuración del widget de intercambio de CoW" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Provide liquidity" +msgstr "Proporcionar liquidez" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PostHookButton/index.tsx +msgid "Add Post-Hook Action" +msgstr "Añadir acción Post-Hook" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "The page you are looking for does not exist." +msgstr "La página que buscas no existe." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Start boooosting your yield!" +msgstr "¡Empieza a dar un saludo a tu producción!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "replaced" +msgstr "reemplazado" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge via" +msgstr "Puente vía" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Trade your way - personalize the interface and customize your limit orders" +msgstr "Opera a tu manera: personaliza la interfaz y personaliza tus órdenes de límite" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Supported networks:" +msgstr "Redes soportadas:" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "EOA wallets" +msgstr "Billeteras EOA" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrapping {amountStr} {wrapped} to {native}" +msgstr "Desenvolviendo {amountStr} {wrapped} a {native}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Set any limit price and time horizon" +msgstr "Establecer límite de precio y tiempo" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "token" +msgstr "token" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Please, top up {symbol} balance or cancel the order." +msgstr "Por favor, recargue el saldo {symbol} o cancele el pedido." + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Easily set and manage your orders in USD" +msgstr "Configure y gestione fácilmente sus órdenes en USD" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Wrap {nativeSymbol}\" to try again." +msgstr "Haz clic en \"Envolver {nativeSymbol}\" para volver a intentarlo." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from inactive lists. Import specific tokens below or click Manage to activate more lists." +msgstr "Tokens de listas inactivas. Importe fichas específicas debajo o haga clic en Administrar para activar más listas." + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." +#~ msgstr "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "sell" +msgstr "vender" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "By connecting a wallet, you acknowledge that you have read, understood and agree to the interface’s <0>Terms & Conditions." +msgstr "Al conectar una billetera, usted reconoce que ha leído, entendido y está de acuerdo con los <0>Términos y condiciones de la interfaz." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "<0>By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one.<1><2>If you purchase a token from this list, you may not be able to sell it back." +msgstr "<0>Al añadir esta lista confías implícitamente en que los datos son correctos. Cualquiera puede crear una lista, incluyendo la creación de versiones falsas de listas existentes y listas que afirman representar proyectos que no tienen uno.<1><2>Si compras una ficha de esta lista, es posible que no puedas venderla." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#~ msgid "Your favorite saved tokens. Edit this list in your account page." +#~ msgstr "Your favorite saved tokens. Edit this list in your account page." + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "As soon as anything important or interesting happens, we will definitely let you know." +#~ msgstr "As soon as anything important or interesting happens, we will definitely let you know." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "SWAP order" +msgstr "Orden SWAP" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "y" +msgstr "a" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "This is the current market price, including the fee." +msgstr "Este es el precio actual del mercado, incluida la tasa." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert to COW <0/>" +msgstr "Convertir a COW <0/>" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +msgid "Dismiss" +msgstr "Descartar" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Open" +msgstr "Abiertas" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Refund completed!" +msgstr "Reembolso completado!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "When" +msgstr "Cuándo" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "30 Minutes" +msgstr "30 minutos" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "My CoW fortune cookie 🐮💬: \"{openFortuneText}\" \n\n" +" Get yours at swap.cow.fi @CoWSwap" +msgstr "Mi galleta de la fortuna de CoW 🐮💬: \"{openFortuneText}\" \n\n" +" Obtén el tuyo en swap.cow.fi @CoWSwap" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "amount per" +msgstr "monto por" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging failed. Refund started..." +msgstr "Fallo al cortar. Reembolso iniciado..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Buy COW" +msgstr "Comprar COW" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Reject" +msgstr "Rechazar" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "got" +msgstr "conseguida" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{sellTokenPart} for at least {buyTokenPart}" +msgstr "{sellTokenPart} por al menos {buyTokenPart}" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW..." +msgstr "Convirtiendo vCOW..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Run a simulation" +msgstr "Ejecutar una simulación" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "This CoW doesn't run away any more! Not from MEV!" +msgstr "¡Esta vaca no huye más! ¡Ni de MEV!" + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +#~ msgid "Recover funds from {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Recover funds from {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Max. swap slippage" +msgstr "Máx. Deslizar el intercambio" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "The sell amount per part of your TWAP order should be at least <0>$<1/>. Decrease the number of parts or increase the total sell amount." +msgstr "La cantidad vendida por parte de su orden de venta debe ser al menos <0>$<1/>. Reducir el número de partes o aumentar la cantidad total de venta." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Surplus" +msgstr "Superávit" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place multiple orders using the same balance" +msgstr "Realizar múltiples órdenes utilizando el mismo saldo" + +#: apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "View details" +msgstr "Ver detalles" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "More" +msgstr "Más" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was cancelled" +msgstr "Su orden ha sido cancelada" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Ninja Cow" +msgstr "Vaca Ninja" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +msgid "Free" +msgstr "Gratis" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "Blocked Address" +msgstr "Dirección bloqueada" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Considering current network costs (<0><1/> per chunk), you could save more by reducing the number of parts or switch to a {swapOrderLink}." +msgstr "Teniendo en cuenta los costos actuales de la red (<0><1/> por trozo), puedes ahorrar más reduciendo el número de partes o cambiando a un {swapOrderLink}." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit an address to spend one token on your behalf." +msgstr "Permita que una dirección gaste un token en su nombre." + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "sold" +msgstr "vendido" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Unlike most other exchanges, CoW Swap doesn't charge you any fees if your trade fails." +msgstr "A diferencia de la mayoría de los intercambios, CoW Swap no le cobra ninguna comisión si su operación falla." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Failed to parse date and time provided" +msgstr "Error al analizar fecha y hora proporcionadas" + +#: libs/common-const/src/common.ts +msgid "Only executed swaps incur fees." +msgstr "Solo cargos por incur de swaps ejecutados." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Sell amount" +msgstr "Vender monto" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Unfillable" +msgstr "No rellenable" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Request timed out. Please try again." +msgstr "Tiempo de espera agotado. Por favor, inténtelo de nuevo." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(modified)" +msgstr "(modificado)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Month" +msgstr "1 mes" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "If you approve the full amount, you will only have to do this once per token." +msgstr "Si aprueba la cantidad completa, sólo tendrá que hacerlo una vez por token." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#~ msgid "Infinite permit an address to spend one token on your behalf." +#~ msgstr "Infinite permit an address to spend one token on your behalf." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging completed!" +msgstr "¡Bridging completado!" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "Nothing new yet" +#~ msgstr "Nothing new yet" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "One-click convert, <0>boost yield" +msgstr "Convertir en un clic, <0>impulsar rendimiento" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Name, symbol or address" +msgstr "Nombre, símbolo o dirección" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "No chainId" +msgstr "Sin chainId" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "h" +msgstr "h" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "When selling {aNativeCurrency}, the minimum slippage tolerance is set to {minimumETHFlowSlippage}% or higher to ensure a high likelihood of order matching, even in volatile market conditions." +msgstr "Al vender {aNativeCurrency}, la tolerancia mínima de deslizamiento se establece en {minimumETHFlowSlippage}% o superior para garantizar una gran probabilidad de que coincida con la orden. Incluso en condiciones de mercado volátiles." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "If you believe this is an error, please send an email including your address to " +msgstr "Si cree que esto es un error, por favor envíe un correo electrónico incluyendo su dirección a " + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "EthFlow contract ({actualContractAddress}) address don't match the expected address for chain {chainId} ({expectedContractAddress}). Please refresh the page and try again." +msgstr "La dirección del contrato de EthFlow ({actualContractAddress}) no coincide con la dirección esperada para la cadena {chainId} ({expectedContractAddress}). Por favor, actualice la página e inténtelo de nuevo." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Receive (before fees)" +msgstr "Recibir (antes de las tasas)" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "The recipient address you inputted had the chain prefix <0>{chainPrefixWarning}, which is not the expected for the network you are in." +msgstr "La dirección de destinatario que introdujo tenía el prefijo de cadena <0>{chainPrefixWarning}, que no es el esperado para la red en la que se encuentra." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "On CoW Swap, orders placed at the same time are" +msgstr "En CoW Swap, las órdenes realizadas al mismo tiempo son" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "for a total of" +msgstr "para un total de" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Sign (gas-free!) in your wallet..." +msgstr "Firma (¡sin gas!) en tu billetera..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "If your order has not been filled by this date & time, it will expire. Don't worry - expirations and order placement are free on CoW Swap!" +msgstr "Si su orden no ha sido completada en esta fecha y hora, caducará. No se preocupe - ¡las expiraciones y la colocación de órdenes son gratuitas en CoW Swap!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Only proceed if you trust this provider." +msgstr "Sólo proceda si confía en este proveedor." + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "View jobs" +msgstr "Ver trabajos" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +msgid "Your favorite saved tokens. Edit this list in the <0>Tokens page." +msgstr "Tus fichas guardadas favoritas. Edita esta lista en la <0>Página de tokens." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This is the minimum amount that you will receive across your entire TWAP order, assuming all parts of the order execute." +msgstr "Esta es la cantidad mínima que recibirá a través de su orden TWAP completa, asumiendo todas las partes de la ejecución de la orden." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Withdraw Liquidity" +msgstr "CoW AMM saca liquidez" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Adding this app/hook grants it access to your wallet actions and trading information. Ensure you understand the implications." +msgstr "Añadir esta aplicación/hook le permite acceder a sus acciones de billetera e información de trading. Asegúrese de entender las implicaciones." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "(View on Explorer)" +msgstr "(Ver en el explorador)" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Loading {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Loading {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "The connection attempt failed. Please click try again and follow the steps to connect in your wallet." +msgstr "El intento de conexión falló. Por favor, haga clic en intentarlo de nuevo y siga los pasos para conectarse en su billetera." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "CoW Shed setup is invalid!" +msgstr "¡La configuración de CoW Shed no es válida!" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "COW token is not available on this network" +msgstr "El token COW no está disponible en esta red" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "CoW AMM only" +msgstr "Sólo CoW AMM" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Scheduled" +msgstr "Programado" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve and Swap" +msgstr "Aprobar e intercambiar" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "Limit order" +msgstr "Limitar orden" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "Pool tokens" +msgstr "Tokens de Pool" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Cancelling order" +msgstr "Orden de cancelación" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "<0><1>Vested vCOW is the portion of your vCOW token balance, which is fully available to convert to COW token.<2>This includes any vCOW received through an <3>airdrop.<4>When converting your vested vCOW balance to COW, your entire vested balance will be converted." +msgstr "<0><1>Vested vCOW es la porción de su saldo de token vCOW, que está completamente disponible para convertir al token COW. <2>Esto incluye cualquier vCU recibida a través de un <3>airdrop.<4>Al convertir tu saldo vCU adquirido a COW, tu saldo invertido será convertido." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown Hook" +msgstr "Gancho desconocido" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Click to copy token contract address" +msgstr "Haga clic para copiar la dirección del contrato de token" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Unsupported Token" +msgstr "Token no soportado" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Limit price (incl. costs)" +msgstr "Precio límite (incl. costos)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Order receipt" +msgstr "Recibo de la orden" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW forum" +msgstr "Foro de CoW" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Signing..." +msgstr "Firmando..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" +#~ msgstr "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "You don't have any {orderTabState} orders at the moment." +#~ msgstr "You don't have any {orderTabState} orders at the moment." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Price Position" +msgstr "Limitar posición de precio" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Pre Hooks" +msgstr "Pre Hooks" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Maybe next time" +msgstr "Tal vez la próxima vez" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Can't find the pool you're looking for?" +msgstr "¿No encuentras la piscina que estás buscando?" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Order recipient address differs from order owner!" +msgstr "Dirección del destinatario de la orden difiere del propietario de la orden!" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Import intermediate token" +msgstr "Importar token intermedio" + +#: libs/ui/src/pure/MenuBar/index.tsx +msgid "Language {locale} not found" +msgstr "Idioma {locale} no encontrado" + +#: apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx +msgid "I understand" +msgstr "Entiendo" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Partial approval" +msgstr "Aprobación parcial" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Safe bundle flow context is not ready" +msgstr "El contexto de flujo de paquete seguro no está listo" + +#: apps/cowswap-frontend/src/modules/tradeQuote/utils/getBridgeQuoteSigner.ts +msgid "No RPC provider available for chain ID: {chainId}" +msgstr "Ningún proveedor RPC disponible para el ID de cadena: {chainId}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Sell per part" +msgstr "Vender por parte" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable Hooks" +msgstr "Habilitar Hooks" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim LlamaPay Vesting Hook" +msgstr "Reclamar LlamaPay Vesting Hook" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Seamlessly swap your tokens into CoW AMM pools" +msgstr "Intercambia tus fichas a la perfección por piscinas CoW AMM" + +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Overview" +msgstr "Resumen" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Loading operation" +msgstr "Cargando operación" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: libs/common-const/src/common.ts +msgid "CoW Runner" +msgstr "Ejecutador de CoW" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 2" +msgstr "Propuesta 2" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Signing" +msgstr "Firmando" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Already seen today's fortune? Return tomorrow for a fresh one!" +msgstr "¿Ya has visto la suerte de hoy? ¡Regresa mañana por una nueva!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures, <0>but not executed" +msgstr "Suficiente firmas, <0>pero no ejecutadas" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Invalid order" +msgstr "Orden no válida" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sending {nativeTokenSymbol}" +msgstr "Enviando {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Tokens" +msgstr "Tokens" + +#: apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx +#: apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copied" +msgstr "Copiado" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "Can't find your token on the list?" +msgstr "¿No encuentras tu token en la lista?" + +#: apps/cowswap-frontend/src/modules/trade/pure/ReceiveAmountTitle/index.tsx +msgid "icon" +msgstr "icono" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Cancelling order with id {shortId}:<0/><1>{summary}" +msgstr "Orden de cancelación con id {shortId}:<0/><1>{summary}" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "Select {walletName} Account" +msgstr "Seleccionar cuenta {walletName}" + +#: apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx +msgid "Please connect your wallet to one of our supported networks." +msgstr "Por favor, conecte su billetera a una de nuestras redes compatibles." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "<0>Read our guide on how to add custom tokens." +msgstr "<0>Lee nuestra guía sobre cómo añadir tokens personalizados." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Retry" +msgstr "Reintentar" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The estimated time for the bridge transaction to complete." +msgstr "El tiempo estimado para completar la transacción del puente." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "months" +msgstr "meses" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Delegate (v)COW" +msgstr "Delegar (v)COW" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "On CoW Swap, you can set limit orders for balances you don't have yet." +msgstr "En CoW Swap, puede establecer órdenes de límite para los balances que aún no tiene." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Day" +msgstr "1 día" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Smart contract" +msgstr "Contrato inteligente" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Switch Network" +msgstr "Cambiar red" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "warning" +msgstr "advertencia" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Available COW balance" +msgstr "Saldo CÚ disponible" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "Bridge explorer" +msgstr "Explorador de puentes" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You possibly have other items to claim, but not Airdrops" +msgstr "Posiblemente tenga otros artículos que reclamar, pero no Airdrops" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "APR" +msgstr "APR" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "CoW Protocol Explorer" +msgstr "Explorador de CoW Protocol" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools" +msgstr "piscinas" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Failed" +msgstr "Fallo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The amount of extra tokens you get on top of your limit price." +msgstr "La cantidad de fichas extra que obtienes por encima de tu precio límite." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "sandwich-icon" +msgstr "sándwich" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging to destination..." +msgstr "Puenteando hacia el destino..." + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low." +msgstr "La transacción no pudo ser enviada porque la fecha límite ha pasado. Por favor, compruebe que la fecha límite de su transacción no es demasiado baja." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Actions" +msgstr "Acciones" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Min received (incl. costs)" +msgstr "Mínimo recibido (incluyendo costos)" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/index.tsx +msgid "Search name or paste address..." +msgstr "Buscar nombre o pegar dirección..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Copy contract" +msgstr "Copiar contrato" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools available to get yield on your assets!" +msgstr "pools disponibles para obtener rendimiento sobre sus activos!" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx +msgid "Confirm" +msgstr "Confirmar" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Total vCOW balance" +msgstr "Saldo vCU total" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported token" +msgstr "Token no soportado" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approved" +msgstr "Aprobado" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "failed" +msgstr "falló" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Airdrop token chain ({tokenToClaimChainId}) and airdrop contract chain ({airdropChainId}) should match" +msgstr "La cadena Airdrop token ({tokenToClaimChainId}) y la cadena de contrato de drop ({airdropChainId}) deben coincidir" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Protection from MEV by default" +msgstr "Protección de MEV por defecto" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too long" +msgstr "Tiempo de intervalo demasiado largo" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "to save on costs!" +msgstr "¡para ahorrar en costes!" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Swaps not supported" +msgstr "Swaps no soportados" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +msgid "Some orders can not be cancelled!" +msgstr "¡Algunas órdenes no pueden ser canceladas!" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Orders history" +msgstr "Hist. de órdenes" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your <0/>." +msgstr "Debe dar permiso a los contratos inteligentes del Protocolo CoW para usar su <0/>." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "any token into CoW AMM pools to start benefiting from attractive APRs." +msgstr "cualquier token en los pools de CoW AMM para comenzar a beneficiarse de APR atractivos." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "You don't have any {orderStatusText} orders at the moment." +msgstr "No tienes ningún pedido {orderStatusText} en este momento." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong. But don't worry! <0>CoW Swap solvers are searching again for the best price for you." +msgstr "Algo salió mal. Pero no te preocupes! <0>Los solucionadores de intercambio de CoW están buscando de nuevo el mejor precio para ti." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "your orders" +msgstr "sus órdenes" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Symbol" +msgstr "Símbolo" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge transaction costs." +msgstr "Puente costes de transacción." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/DeadlineSelector/index.tsx +msgid "Custom" +msgstr "Personalizado" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Est. partial fill price" +msgstr "Precio de relleno parcial" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "Partial approval may block <0>{ordersWithPermitLenght} other orders" +#~ msgstr "Partial approval may block <0>{ordersWithPermitLenght} other orders" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +msgid "Loaded" +msgstr "Cargado" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient <0/> balance" +msgstr "Saldo <0/> insuficiente" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Claim LlamaPay Vesting Hook is a powerful and user-friendly feature designed to streamline the process of claiming funds from LlamaPay vesting contracts. This tool empowers users to easily access and manage their vested tokens, ensuring a smooth and efficient experience in handling time-locked assets." +msgstr "El Juego de Contratación de LlamaPay de Reclamo es una característica potente y fácil de usar diseñada para agilizar el proceso de reclamación de fondos de los contratos de adquisición de LlamaPay. Esta herramienta permite a los usuarios acceder y administrar fácilmente sus fichas adquiridas, garantizando una experiencia fluida y eficiente en el manejo de activos bloqueados por tiempo." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Open" +msgstr "Orden abierta" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "View contract" +msgstr "Ver contrato" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Only \"sell\" orders are supported" +msgstr "Sólo se admiten órdenes \"vender\"" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Surplus received" +msgstr "Exceso recibido" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signature is" +msgstr "firma es" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook can only be used as a <0>{hookType}-hook" +msgstr "Esta aplicación/gancho solo puede utilizarse como un gancho <0>{hookType}-hook" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Place limit order" +msgstr "Ordenar límite" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Insufficient {symbol} balance" +msgstr "Saldo {symbol} insuficiente" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "This hook is not compatible with your wallet" +msgstr "Este hook no es compatible con su billetera" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started with limit orders" +msgstr "Empezar con órdenes de límite" + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "Minimize price impact with TWAP" +msgstr "Minimizar el impacto del precio con TWAP" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to set partial token approvals instead of full approvals." +msgstr "Le permite establecer aprobaciones parciales de tokens en lugar de aprobaciones completas." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Switch to {wrappedNativeSymbol}" +msgstr "Cambia a {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +#~ msgid "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" +#~ msgstr "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "creating" +msgstr "creando" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit a token" +msgstr "Permitir un token" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Claimable amount" +msgstr "Cantidad reclamable" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 1" +msgstr "Propuesta 1" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "Select an {accountProxyLabelString} to check for available refunds {chain}" +msgstr "Seleccione un {accountProxyLabelString} para comprobar si hay reembolsos disponibles {chain}" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Unsupported wallet" +msgstr "Billetera no soportada" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Expanded results from inactive Token Lists" +msgstr "Resultados ampliados de listas de token inactivas" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks match your search." +msgstr "No hay ganchos que coincidan con tu búsqueda." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "New to decentralised applications?" +msgstr "¿Nuevas aplicaciones descentralizadas?" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Begin with TWAP Today!" +msgstr "¡Comience con TWAP hoy!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Gas-free" +msgstr "Sin gas" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "5 Minutes" +msgstr "5 Minutos" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Share this win!" +msgstr "¡Comparte esta ganancia!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Create Order" +msgstr "Crear orden" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Want to try out limit orders?" +msgstr "¿Quieres probar las órdenes límite?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "smart contracts (e.g. Safe)" +msgstr "contratos inteligentes (por ejemplo, seguro)" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Quote refresh in" +msgstr "Actualizar cotización en" + +#: apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Account" +msgstr "Cuenta" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders are now easier to use. <0/> Give them a try" +msgstr "Las órdenes limitadas son ahora más fáciles de usar. <0/> Inténtalo con ellas" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Create an issue on GitHub" +msgstr "Crear un problema en GitHub" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap has over 20 active solvers - more than any other exchange." +msgstr "CoW Swap tiene más de 20 soluciones activas - más que cualquier otro intercambio." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Cookie Policy" +msgstr "Política de cookies" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be more than {PARTNER_FEE_MAX_BPS} BPS!" +msgstr "¡La cuota de socio no puede ser mayor que {PARTNER_FEE_MAX_BPS} BPS!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokensContent/index.tsx +msgid "Manage Token Lists" +msgstr "Administrar listas de token" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "No results found" +msgstr "No hay resultados" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted. Too many order placements" +msgstr "aceptado. Demasiadas órdenes" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Unknown token" +msgstr "Token desconocido" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "Read more about the tokenomics" +msgstr "Lea más sobre los tokenomics" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and got an extra " +msgstr "y obtuvo un extra " + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "s" +msgstr "s" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Cancelled" +msgstr "Orden cancelada" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "Please contact CoW Swap support!" +msgstr "¡Póngase en contacto con soporte de CoW Swap!" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "CoW AMM" +msgstr "CoW AMM" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "Too much time between parts" +msgstr "Demasiado tiempo entre partes" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +msgid "Swap and Bridge" +msgstr "Intercambiar y Puente" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "POST" +msgstr "POST" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "1/2 Confirm funds recovering" +msgstr "1/2 Confirmar recuperación de fondos" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Share on Twitter" +msgstr "Compartir en Twitter" + +#: apps/cowswap-frontend/src/common/pure/CurrencyArrowSeparator/index.tsx +#~ msgid "loading" +#~ msgstr "loading" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to choose a destination address for the swap other than the connected one." +msgstr "Le permite elegir una dirección de destino para el intercambio que no sea el conectado." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Your account is affected by the AnySwap Hack" +msgstr "Tu cuenta se ve afectada por el Hack de AnySwap" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW vesting from locked GNO" +msgstr "Adquisición de COW de GNO bloqueado" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Limit price (incl.costs)" +msgstr "Limitar precio (incl. costos)" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Update fallback handler" +msgstr "Actualizar manejador de reserva" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Please read more in this" +msgstr "Por favor lea más en esto" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee" +msgstr "Bungee" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "of" +msgstr "de" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "Error {verb} the order" +msgstr "Error {verb} la orden" + +#: libs/common-const/src/common.ts +msgid "CoW Swap | The smartest way to trade cryptocurrencies" +msgstr "CoW Swap | La forma más inteligente de operar con criptomonedas" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "this order" +msgstr "este pedido" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "or" +msgstr "o" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "A minimum of <0>{time} between parts is required. Decrease the number of parts or increase the total duration." +msgstr "Se requiere un mínimo de <0>{time} entre partes. Reducir el número de partes o aumentar la duración total." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "Remove list" +msgstr "Eliminar lista" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "Help Center" +msgstr "Centro de ayuda" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee is a liquidity marketplace that lets you swap into any token on any chain in a fully abstracted manner. Trade any token with the best quotes and a gasless UX!" +msgstr "Bungee es un mercado de liquidez que le permite intercambiar cualquier ficha de cualquier cadena de una manera totalmente abstracta. ¡Intercambia cualquier token con las mejores cotizaciones y un UX sin gas!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Market price" +msgstr "Precio de mercado" + +#: apps/cowswap-frontend/src/common/pure/CurrencyInputPanel/CurrencyInputPanel.tsx +msgid "Max" +msgstr "Máx" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve, Swap & Bridge" +msgstr "Aprobación, intercambio y puente" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Get the Time-Weighted Average Price by splitting your large order into parts" +msgstr "Obtén el precio medio ponderado por el tiempo dividiendo tu gran orden en partes" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The bad news" +msgstr "Las malas noticias" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Solver auction rankings" +msgstr "Ranking de subastas resueltas" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +#~ msgid "Follow these steps" +#~ msgstr "Follow these steps" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order will either be filled completely or not filled." +msgstr "Esta orden se llenará completamente o no se cumplirá." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "On-chain cancellations require a regular on-chain transaction and cost gas." +msgstr "Las cancelaciones en cadena requieren una transacción regular en cadena y gas de coste." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap failed" +msgstr "Error en el intercambio" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Didn't find a suitable hook? You can always create your own! To do this, you need to specify which smart contract you want to call, the parameters for the call and the gas limit." +msgstr "¿No has encontrado un gancho adecuado? ¡Siempre puedes crear el tuyo! Para ello, debe especificar qué contrato inteligente desea llamar, los parámetros de la llamada y el límite de gas." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to WETH" +msgstr "Cambiar a WETH" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Great!" +msgstr "¡Genial!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "View your private {accountProxyLabelString}" +msgstr "Ver tu {accountProxyLabelString} privado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Hey, I just {actionWord} an extra {surplus} on @CoWSwap! 🐮💸\n\n" +"Start swapping on swap.cow.fi" +msgstr "¡Hola, acabo de {actionWord} un {surplus} extra en @CoWSwap! 🐮💸\n\n" +"Empieza a intercambiar en swap.cow.fi" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect Wallet" +msgstr "Conectar billetera" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "View all orders" +msgstr "Ver todas las órdenes" + +#: apps/cowswap-frontend/src/modules/accountProxy/consts.ts +msgid "Need help" +msgstr "Necesita ayuda" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "CoW Swap is the only token exchange that gets you extra tokens." +msgstr "CoW Swap es el único intercambio de tokens que te da fichas extra." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Unvested" +msgstr "No investido" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "(v)COW balance" +msgstr "(v)Saldo CÚ" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Closed" +msgstr "Cerrado" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "CoW Swap 404 not found" +msgstr "Intercambio de CoW 404 no encontrado" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Apply" +msgstr "Aplicar" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Price Updated" +msgstr "Precio actualizado" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Enter a hook dapp URL" +msgstr "Introduzca una URL dapp de hook" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Total fee" +msgstr "Cargo total" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "Recoverable balance" +msgstr "Saldo recuperable" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid hook dapp ID format. The ID must be a 64-character hexadecimal string." +msgstr "Formato de ID dapp de gancho inválido. El ID debe ser una cadena hexadecimal de 64 caracteres." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Select custom token" +msgstr "Seleccionar token personalizado" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "dropdown icon" +msgstr "icono desplegable" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import List" +msgstr "Importar lista" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "TWAP orders currently require a Safe with a special fallback handler. Have one? Switch to it! Need setup? <0>Click here. Future updates may extend wallet support!" +msgstr "Las órdenes TWAP actualmente requieren una caja fuerte con un manejador especial de retroceso. ¿Tienes uno? ¡Cambiar a ella! ¿Necesitas configuración? <0>Haz clic aquí. ¡Las actualizaciones futuras pueden ampliar el soporte de la billetera!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap was the first DEX to offer intent-based trading, gasless swaps, coincidences of wants, and many other DeFi innovations." +msgstr "CoW Swap fue el primer DEX en ofrecer operaciones basadas en intención, swaps sin gas, coincidencias de deseos y muchas otras innovaciones DeFi." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient!" +msgstr "¡Cantidad de aprobación insuficiente!" + +#: apps/cowswap-frontend/src/modules/bridge/constants.ts +msgid "Bridging feature is exclusively operated by the indicated third party. Please review their terms." +msgstr "La característica de bridging está operada exclusivamente por el tercero indicado. Revise sus términos." + +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copy address" +msgstr "Copiar dirección" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "The limit price" +msgstr "El precio límite" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Creating" +msgstr "Creando" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Increase Value" +msgstr "Aumentar valor" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "All Hooks ({allHooksCount})" +msgstr "Todos los Hooks ({allHooksCount})" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0/> <1><2/> for trading" +msgstr "Aprobando <0/> <1><2/> para operar" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw liquidity from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Reduce o retire liquidez de una piscina antes de un intercambio de fichas que integre el proceso directamente en el flujo de la transacción. Al ajustar su liquidez con antelación, usted gana más control sobre sus activos sin ningún paso adicional. Optimice su posición en un grupo, todo en una sola acción sin fisuras — sin necesidad de múltiples transacciones o complejidad añadida." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This price is taken from external sources and may not accurately reflect the current on-chain price." +msgstr "Este precio se toma de fuentes externas y puede que no refleje con exactitud el precio actual de la cadena." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Now is the time to take some action!" +msgstr "¡Ahora es el momento de tomar alguna medida!" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Swap order filled" +msgstr "Orden de intercambio rellenada" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Let's slice some" +msgstr "Rebanemos algunos" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Cancellation failed" +msgstr "Fallo al cancelar" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Pool address" +msgstr "Dirección de Pool" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Initiating {nativeTokenSymbol} Refund..." +msgstr "Iniciando reembolso {nativeTokenSymbol}..." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance." +msgstr "equilibrio." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Fee tier" +msgstr "Nivel de cuota" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Make the modification when placing order" +msgstr "Hacer la modificación al realizar la orden" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders, but <0>s-moooo-ther than ever" +msgstr "Ordenes limitadas, pero <0>s-moooo-ther que nunca" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW contract not present" +msgstr "contrato vCU no presente" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Unknown" +msgstr "Desconocido" + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "Wallet Address or ENS name" +msgstr "Dirección de Billetera o nombre ENS" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Min. to receive" +msgstr "Mínimo para recibir" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No unfillable orders" +msgstr "No hay órdenes impagables" + +#: libs/common-utils/src/tooltips.ts +msgid "This accounts for the current price and the slippage tolerance ({allowedSlippagePercentage}%). If the price moves beyond the slippage tolerance, you won't trade but also you won't pay any fees or gas." +msgstr "Esto representa el precio actual y la tolerancia del deslizamiento ({allowedSlippagePercentage}%). Si el precio va más allá de la tolerancia del deslizamiento, no podrás operar pero tampoco pagarás ninguna comisión o gas." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "No fees for failed transactions" +msgstr "Sin cargos por transacciones fallidas" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across" +msgstr "Cruzar" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order type" +msgstr "Tipo de orden" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "Learn more." +msgstr "Más información." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +msgid "Active" +msgstr "Activo" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Clear selection" +msgstr "Borrar selección" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted" +msgstr "aceptado" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "TVL" +msgstr "TVL" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Unlimited one-time" +msgstr "Una sola vez ilimitada" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use Safe web app" +msgstr "Usar aplicación web segura" + +#: apps/cowswap-frontend/src/modules/orders/pure/ReceiverInfo/index.tsx +msgid "Receiver" +msgstr "Receptor" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "An order’s actual execution price will vary based on the market price and network costs." +msgstr "El precio de ejecución real de una orden variará en función del precio de mercado y los costos de la red." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "You have already claimed this airdrop" +msgstr "Ya has reclamado este aeródromo" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancel multiple orders: {ordersCount}" +msgstr "Cancelar múltiples órdenes: {ordersCount}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap my {nativeSymbol} and swap" +msgstr "Envolver mi {nativeSymbol} e intercambiar" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Read more about limit orders" +msgstr "Leer más sobre las órdenes de límite" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Your Safe is not connected with a signer.<0/>To place an order, you must connect using a signer of this Safe." +msgstr "Tu Safe no está conectado con un firmante.<0/> Para realizar una orden, debes conectarte usando un firmante de esta Safe." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +msgid "on" +msgstr "en" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive at least" +msgstr "Recibir al menos" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap trades are protected from MEV, so your slippage can't be exploited!" +msgstr "¡Las operaciones de intercambio de CoW están protegidas de MEV, por lo que no se puede explotar tu deslizamiento!" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "This is an" +msgstr "Esto es un" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Something went wrong creating your order" +msgstr "Algo salió mal al crear su orden" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance." +msgstr "Esta transacción no tendrá éxito debido al movimiento del precio o a la comisión de la transferencia. Intenta aumentar la tolerancia del deslizamiento." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Volume (24h)" +msgstr "Volumen (24h)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order partially filled" +msgstr "Orden parcialmente llenada" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Time to create a new one!" +msgstr "¡Es hora de crear una nueva!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "View on bridge explorer" +msgstr "Ver en explorador de puentes" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "or send us an email at" +msgstr "o envíanos un email a" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +#~ msgstr "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The minimum possible outcome after swap, including costs and slippage." +msgstr "El mínimo resultado posible después del swap, incluyendo los costos y el deslizamiento." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The estimated amount you'll receive after estimated network costs and the max slippage setting" +msgstr "La cantidad estimada que recibirás después de los costes estimados de la red y de la configuración máxima del deslizamiento" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Run! ...and try not getting sandwiched" +msgstr "¡Corre! ...e intenta no ser sandwickeado" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap your {nativeSymbol} and use the classic {wrappedSymbol} experience!" +msgstr "¡Envuelve tu {nativeSymbol} y usa la clásica experiencia {wrappedSymbol}!" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Languages" +msgstr "Idiomas" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom deadline" +msgstr "Establecer fecha límite" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "WalletConnect" +msgstr "WalletConnect" + +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +msgid "<0>Note: {symbol} specifically requires 2 approval transactions. The first resets your spending cap to 0, and the second sets your desired spending cap. To avoid this in the future, set your spending cap to CoW Swap's recommended default amount." +msgstr "<0>Nota: {symbol} requiere específicamente 2 transacciones de aprobación. El primero reinicia tu límite de gasto a 0, y el segundo establece tu límite de gasto deseado. Para evitar esto en el futuro, establezca su límite de gasto a la cantidad predeterminada recomendada por CoW Swap." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Earn higher returns with reduced impermanent loss" +msgstr "Gana mayores beneficios con pérdida inpermanente reducida" + +#: apps/cowswap-frontend/src/modules/swap/containers/BottomBanners/index.tsx +msgid "Funds stuck? <0>Recover your funds" +msgstr "¿Fondos atascados? <0>Recuperar tus fondos" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Maximizing Your Gains!" +msgstr "¡Maximizando tus ganancias!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Revoke {tokenSymbol} approval" +msgstr "Revocar {tokenSymbol} aprobación" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Use the <0/> to see {orderTabLink}" +#~ msgstr "Use the <0/> to see {orderTabLink}" + +#: apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx +msgid "Provide Feedback" +msgstr "Proporcionar Comentarios" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solvers" +#~ msgstr "solvers" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token supports gas-free approvals. Enjoy! 🐮" +msgstr "Este token soporta aprobaciones sin gas. ¡Disfrútalo! 🐮" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Wallet support" +msgstr "Soporte de Wallet" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refunding" +msgstr "Reembolso" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeOnChainCancellation.ts +msgid "Failed to cancel order selling {sellTokenSymbol}" +msgstr "Error al cancelar la venta del pedido {sellTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Slippage tolerance" +msgstr "Tolerancia de deslizamiento" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Calldata" +msgstr "Datos de llamada" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe nonce" +msgstr "Nonce seguro" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "Connect a wallet" +msgstr "Conectar una billetera" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Create a pool" +msgstr "Crear un grupo" + +#: apps/cowswap-frontend/src/common/hooks/useUnsupportedNetworksText.tsx +#~ msgid "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" +#~ msgstr "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click SWAP below to use your existing {wrappedSymbol} balance and trade." +msgstr "Para continuar, haz clic en SWAP abajo para usar tu saldo y comercio {wrappedSymbol} existente." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Effortless Airdrop Claims! The Claim COW Airdrop feature simplifies the process of collecting free COW tokens before or after your swap, seamlessly integrating into the CoW Swap platform. Whether you're claiming new airdrops or exploring CoW on a new network, this tool ensures you get your rewards quickly and easily." +msgstr "¡Effortless reclamaciones de aeródromo! La función de Reclamar COW Airdrop simplifica el proceso de recogida de fichas COW gratuitas antes o después de su intercambio, integrándose perfectamente en la plataforma de intercambio de CoW. Ya sea que esté reclamando nuevos aviones o explorando CoW en una nueva red, esta herramienta le asegura que obtenga sus recompensas rápida y fácilmente." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol}" +msgstr "Aprobar {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Replaced" +msgstr "Reemplazado" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#~ msgid "dynamic'" +#~ msgstr "dynamic'" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "MEV Slicer" +msgstr "Cortador MEV" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelling..." +msgstr "Cancelando..." + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order cancelled" +msgstr "Orden cancelada" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Expired before creation" +msgstr "Caducó antes de la creación" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Use your (v)COW balance to vote on important proposals or participate in forum discussions." +msgstr "Utilice su balance (v)CÚ para votar sobre propuestas importantes o participar en discusiones en el foro." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Collapse" +msgstr "Colapso" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "minutes" +msgstr "minutos" + +#: apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx +msgid "Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time." +msgstr "La hora del dispositivo local no es exacta, es probable que el intercambio de CoW no funcione correctamente. Por favor, ajuste la hora del dispositivo." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridging via" +msgstr "Bridging vía" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "d" +msgstr "d" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Creating..." +msgstr "Creando..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are externally hosted code which needs to be independently verified by the user." +msgstr "Los ganchos {typeLabel} son código alojado externamente que el usuario debe verificar de forma independiente." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires sufficient balance." +msgstr "La orden permanece abierta. La ejecución requiere un equilibrio suficiente." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient for input amount." +msgstr "Cantidad de aprobación insuficiente para la cantidad de entrada." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "and" +msgstr "y" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Waiting for confirmation." +msgstr "Esperando confirmación." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap" +msgstr "Intercambio de deuda Aave" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW token" +msgstr "Token COW" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "so we can investigate the problem." +msgstr "para que podamos investigar el problema." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "(via WalletConnect)" +msgstr "(a través de WalletConnect)" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "<0>Select an {accountProxyLabelString} and then select a token you want to recover from CoW Shed." +msgstr "<0>Selecciona un {accountProxyLabelString} y luego selecciona un token que quieres recuperar de CoW Shed." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. Try again later." +msgstr "Error cargando precio. Inténtalo de nuevo más tarde." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Trying to claim without claim data" +msgstr "Intentando reclamar sin datos de reclamación" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "CoW Hooks" +msgstr "Hooks de CoW" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "up" +msgstr "arriba" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Sign the {operationLabel} with your wallet." +msgstr "Firma el {operationLabel} con tu billetera." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "Recipient" +msgstr "Destinatario" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Swap with {symbol}" +#~ msgstr "Swap with {symbol}" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +msgid "Reset USDT allowance to 0 before setting new spending cap" +msgstr "Restablecer permisos USDT a 0 antes de establecer un nuevo límite de gasto" + +#: apps/cowswap-frontend/src/modules/notifications/containers/ConnectTelegram.tsx +#~ msgid "Enable notifications" +#~ msgstr "Enable notifications" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +msgid "Warning sign. Wallet not supported" +msgstr "Firma de advertencia. Billetera no soportada" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Show progress" +msgstr "Mostrar progreso" + +#: apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts +msgid "Mooo, we're hiring!" +msgstr "¡Mooo, estamos contratando!" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience.<0/><1/>The fee is {partnerFeeBps} BPS ({feeAsPercent}%), applied only if the trade is executed." +msgstr "Esta cuota ayuda a pagar por mantenimiento y mejoras en la experiencia de trading. <0/><1/>La comisión es {partnerFeeBps} BPS ({feeAsPercent}%), aplicada solo si la operación se ejecuta." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Share this" +msgstr "Compartir esto" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/index.tsx +msgid "Review limit order" +msgstr "Revisar orden límite" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Trade Smart, Save More!" +msgstr "Opera inteligente, ¡Ahorre más!" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "available for your {poolName} pool" +msgstr "disponible para tu piscina {poolName}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Native" +msgstr "Nativo" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "Pool analytics" +msgstr "Análisis de Pool" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +msgid "Swap deadline" +msgstr "Fecha límite de intercambio" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be only sufficient for<0>up to {txsRemaining} wrapping, unwrapping, or approval operation(s)." +msgstr "A los precios actuales del gas, el saldo restante de {nativeSymbol} después de la confirmación puede ser solo suficiente para<0>hasta {txsRemaining} operación(es) de envoltura, desenvoltura o aprobación." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees." +msgstr "El precio de esta piscina está fuera de su rango seleccionado. Su posición no está ganando comisiones en este momento." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "days" +msgstr "días" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "This hook is compatible with {compatibleWith}." +msgstr "Este hook es compatible con {compatibleWith}." + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridge" +msgstr "Puente" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Connecting..." +msgstr "Conectando..." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Pre" +msgstr "Pre" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts +msgid "(v)COW token holders are eligible for a fee discount" +msgstr "Los poseedores de tokens (v)COW son elegibles para un descuento de comisión" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Error connecting" +msgstr "Error al conectar" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Trade" +msgstr "Operar" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Context is not full to cancel TWAP order" +msgstr "El contexto no está completo para cancelar el pedido TWAP" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "Receive (incl. costs)" +msgstr "Recibir (incluyendo costos)" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sent {nativeTokenSymbol}" +msgstr "Enviado {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Since TWAP orders consist of multiple parts, prices are expected to fluctuate. However, to protect you against bad prices, CoW Swap will not execute your TWAP if the price dips below this percentage." +msgstr "Dado que las órdenes de TWAP consisten en múltiples piezas, se espera que los precios fluctúen. Sin embargo, para protegerte de los malos precios, CoW Swap no ejecutará tu TWAP si el precio cae por debajo de este porcentaje." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "are" +msgstr "están" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time before your total TWAP order ends." +msgstr "El tiempo antes de que termine su orden total de TWAP." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Unsupported network. Please change to Gnosis Chain" +msgstr "Red no soportada. Cambie a la cadena de Gnosis" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Debug Step:" +msgstr "Paso de depuración:" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +msgid "Your order may not fill exactly when the market price reaches your limit price." +msgstr "Su orden podría no rellenarse exactamente cuando el precio de mercado llega al precio límite." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "BEFORE" +msgstr "ENCONTRAR" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "View your private {ACCOUNT_PROXY_LABEL}" +#~ msgstr "View your private {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "BFF did not return a price for '{currencyAddress}' on chain '{currencyChainId}'" +msgstr "BFF no devolvió un precio para '{currencyAddress}' en la cadena '{currencyChainId}'" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This tool helps you recover your funds." +msgstr "Esta herramienta le ayuda a recuperar sus fondos." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Transaction completed" +msgstr "Transacción completada" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Your Safe needs a modification" +msgstr "Tu Seguro necesita una modificación" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "{orderType} {orderKind} order" +msgstr "Pedido {orderType} {orderKind}" + +#: apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx +#: apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx +msgid "View on Safe" +msgstr "Ver en seguro" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "modified" +msgstr "modificado" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/ProtocolIcons/StackedProtocolIcons.tsx +msgid "CoW Protocol" +msgstr "Protocolo CoW" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient allowance granted for" +msgstr "Permiso insuficiente concedido para" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Failed to fetch manifest from {manifestUrl}. Please verify the URL and try again." +msgstr "No se pudo obtener el manifiesto de {manifestUrl}. Por favor, comprueba la URL y vuelve a intentarlo." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Order executes at" +msgstr "La orden se ejecuta en" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "There may be a network issue (such as a gas spike) that is delaying your order. You can wait for the issue to resolve{cancellationModal}" +msgstr "Puede haber un problema de red (como un pico de gas) que está retrasando su orden. Puede esperar a que el problema resuelva {cancellationModal}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Confirmed" +msgstr "Confirmada" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "place a new order" +msgstr "hacer una nueva orden" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "To use {orderType} orders, please connect your wallet <0/>to one of our supported networks." +msgstr "Para usar pedidos {orderType}, por favor conecte su billetera <0/>a una de nuestras redes soportadas." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "When enabled, the limit price stays fixed when changing the BUY amount. When disabled, the limit price will update based on the BUY amount changes." +msgstr "Cuando está activado, el precio límite se mantiene fijo al cambiar la cantidad BUY. Cuando está desactivado, el precio límite se actualizará basado en los cambios de la cantidad BUY." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW token not present" +msgstr "token vCW no está presente" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} solvers" +msgstr "Resolutores {solversLength}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Claim vested" +msgstr "Reclamar investido" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Transaction Settings" +msgstr "Ajustes de la transacción" + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "Dismiss hiring message" +msgstr "Descartar mensaje de contratación" + +#: apps/cowswap-frontend/src/common/pure/Modal/index.tsx +msgid "dialog content" +msgstr "contenido del diálogo" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since {accountProxyLabelString} is not an upgradeable smart-contract, it can be versioned and there are" +msgstr "Dado que {accountProxyLabelString} no es un contrato inteligente, puede ser versionado y hay" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "open" +msgstr "abierta" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Filled on" +msgstr "Completado el" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "less" +msgstr "menos" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Market" +msgstr "Mercado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "You {orderKind} an extra" +msgstr "Tú {orderKind} un extra" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Invalid argument \"{invalidArgument}\" provided" +msgstr "Argumento no válido \"{invalidArgument}\" proporcionado" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Executed" +msgstr "Ejecutado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap solvers search Uniswap, 1inch, Matcha, Sushi and more to find you the best price." +msgstr "Los solucionadores de intercambio de coW buscan Uniswap, 1pulgadas, Matcha, Sushi y más para encontrar el mejor precio." + +#: apps/cowswap-frontend/src/modules/permit/utils/handlePermit.ts +msgid "Unable to generate permit data" +msgstr "No se pueden generar datos de permisos" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Place orders with a time-weighted average price" +msgstr "Realizar órdenes con un precio medio ponderado por tiempo" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Proxy Accounts" +msgstr "Cuentas Proxy" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Tx cost:" +msgstr "Costo x x:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe transaction" +msgstr "Transacción segura" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +msgid "Traded {inputAmount} for a total of {outputAmount}" +msgstr "{inputAmount} comercializado para un total de {outputAmount}" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook description" +msgstr "Descripción del Hook" + +#: apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx +msgid "Spinning icon" +msgstr "Icono de Spinning" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Return to Swap" +msgstr "Volver al intercambio" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Privacy Policy" +msgstr "Política de privacidad" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency" +msgstr "Moneda nativa" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "link" +msgstr "enlace" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "A new competition has started" +msgstr "Ha comenzado una nueva competición" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "Quote expired. Please refresh." +msgstr "La cotización ha caducado. Por favor, actualice." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Successfully converted!" +msgstr "¡Convertido con éxito!" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Too <0>busy <1/>to vote?" +msgstr "¿Demasiado <0>ocupado <1/>para votar?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are integrated code and part of the CoW Swap codebase." +msgstr "Los ganchos {typeLabel} son código integrado y parte del código de intercambio de CoW." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Expiration" +msgstr "Caducidad" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Unsupported Wallet" +msgstr "Billetera no soportada" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "<0/><1/>Trades are protected from MEV, so your slippage can't be exploited!" +msgstr "<0/><1/>Las operaciones están protegidas de MEV, por lo que no se puede explotar tu deslizamiento!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Expired" +msgstr "Caducó" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "native currency" +msgstr "moneda nativa" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" +#~ msgstr "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap operation failed." +msgstr "Operación de envoltura fallida." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If allowance remains insufficient at creation time, this portion will not be created. Approve the" +msgstr "Si la asignación sigue siendo insuficiente en tiempo de creación, esta porción no se creará. Aprobar el" + +#: apps/cowswap-frontend/src/common/utils/getSwapErrorMessage.ts +#~ msgid "User rejected signing the order" +#~ msgstr "User rejected signing the order" + +#: libs/common-const/src/common.ts +msgid "Account Proxy" +msgstr "Proxy de la cuenta" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "Executing', description: 'The winner of the competition is now executing your order on-chain." +#~ msgstr "Executing', description: 'The winner of the competition is now executing your order on-chain." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx +msgid "Estimated bridge transaction time: {bridgeEstimatedTime} minutes" +msgstr "Tiempo estimado de transacción de puente: {bridgeEstimatedTime} minutos" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR gas-free!" +msgstr "¡APR de reserva libre de gas!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "In case you want to give allowance only for the trade amount, use the advanced mode. You can also change the amount manually." +msgstr "En caso de que quiera dar permiso sólo para la cantidad de la operación, utilice el modo avanzado. También puede cambiar la cantidad manualmente." + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Sell amount too small" +msgstr "Vender cantidad demasiado pequeña" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Your position has 0 liquidity, and is not earning fees." +msgstr "Su posición tiene 0 liquidez y no está cobrando tasas." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can avoid price impact on large trades by using TWAP orders on CoW Swap." +msgstr "Usted puede evitar el impacto de precios en grandes operaciones usando órdenes TWAP en CoW Swap." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Click to copy contract address" +msgstr "Haga clic para copiar la dirección del contrato" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Unsupported wallet detected" +msgstr "Billetera no soportada detectada" + +#: libs/common-const/src/common.ts +msgid "Tokens Overview" +msgstr "Resumen de tokens" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm approval" +msgstr "Confirmar aprobación" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be less than 0!" +msgstr "La cuota de socio no puede ser inferior a 0!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No order history" +msgstr "Sin historial de pedidos" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Bridging without swapping is not yet supported. Let us know if you want this feature!" +msgstr "El bridging sin intercambio aún no está soportado. ¡Háganos saber si desea esta característica!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The input token cannot be transferred. There may be an issue with the input token." +msgstr "El token de entrada no puede ser transferido. Puede haber un problema con el token de entrada." + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "{pendingCount} Pending" +msgstr "{pendingCount} pendientes" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "All" +msgstr "Todos" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "batched together" +msgstr "emparejado" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Select a pool" +msgstr "Seleccione un grupo" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token not permittable" +msgstr "Token no permitido" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapped on" +msgstr "Intercambiado el" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Boooost your current LP positions with CoW AMM’s pools." +msgstr "Has perdido tus posiciones actuales de LP con los pools de CoW AMM." + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please type the word <0>\"{confirmWord}\" to {action}." +msgstr "Por favor, escribe la palabra <0>\"{confirmWord}\" a {action}." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending..." +msgstr "Pendiente..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Liquidity pools on CoW AMM grow faster than on other AMMs because they don't lose money to arbitrage bots." +msgstr "Los pozos de liquidez en CoW AMM crecen más rápido que en otros AMM, porque no pierden dinero por los bots de arbitraje." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: libs/common-const/src/common.ts +msgid "TWAP" +msgstr "TWAP" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Refunded to" +msgstr "Reembolsado a" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Maximize your yield on existing LP positions" +msgstr "Maximice su rendimiento en las posiciones LP existentes" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +#~ msgid "Pool description" +#~ msgstr "Pool description" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "6 Hours" +msgstr "6 horas" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Amount must be at least trade amount" +msgstr "Monto debe ser al menos el monto de la operación" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to a Uniswap v2 pool after the swap" +msgstr "Añadir liquidez a una piscina de Uniswap v2 después del intercambio" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{buyTokenPart} for at most {sellTokenPart}" +msgstr "{buyTokenPart} para como máximo {sellTokenPart}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation failed. Please review your transaction." +msgstr "La simulación de Tenderly falló. Por favor revise su transacción." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Fill or kill" +msgstr "Rellenar o matar" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Description" +msgstr "Descripción" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "on-chain" +msgstr "en cadena" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across Protocol - Transfer Assets Between Layer 2s and Mainnet" +msgstr "A través del protocolo - Transferir activos entre la capa 2s y la red principal" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Tokens overview" +msgstr "Resumen de tokens" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Enter slippage percentage between {min}% and {max}%" +msgstr "Introduzca el porcentaje de deslizamiento entre {min}% y {max}%" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Learn how" +msgstr "Aprende cómo" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "Token wrapping bundling" +msgstr "Envoltura de Token" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +#~ msgid "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" +#~ msgstr "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Account overview" +msgstr "Vista general de la cuenta" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate your" +msgstr "Delegate tu" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "<0>Enable trade alerts for fills and expiries" +msgstr "<0>Habilitar alertas comerciales para rellenos y expiraciones" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +msgid "Advanced Order Settings" +msgstr "Ajustes avanzados del pedido" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap refunded" +msgstr "Intercambio reembolsado" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Los costes del puente son al menos un {formattedBridgeFeePercentage}% de la cantidad de intercambio" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "TWAP order" +msgstr "Pedido TWAP" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "You can now trade <0/>" +msgstr "Ahora puedes intercambiar <0/>" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "How much of the order has been filled." +msgstr "Cuánta cantidad del pedido se ha cumplido." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge costs <0/>" +msgstr "Puente cuesta <0/>" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Reset" +msgstr "Resetear" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "No fee for order placement!" +msgstr "¡Sin cargo por realizar el pedido!" + +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "The tokens received from this order will automatically be sent to this address. No need to do a second transaction!" +msgstr "Las fichas recibidas de este pedido se enviarán automáticamente a esta dirección. ¡No hay necesidad de hacer una segunda transacción!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Website" +msgstr "Sitio web" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Signed: <0>{numConfirmations} out of {gnosisSafeThreshold} signers" +msgstr "Firmado: <0>{numConfirmations} de los firmantes de {gnosisSafeThreshold} " + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order can be partially filled" +msgstr "Este pedido puede ser parcialmente llenado" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Build your own hook" +msgstr "Construye tu propio hook" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that you will receive from each part of the order." +msgstr "Cantidad estimada que recibirá de cada parte del pedido." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like repaying borrow positions using collateral. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features.msg" +msgstr "Los contratos de adaptador de intercambio integran los préstamos Aave Flash y CoW Swap para facilitar acciones avanzadas como el pago de las posiciones de endeudamiento mediante garantía. Más información en https://aave.com/docs/developeropers/smart-contracts/swap-features.msg" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Request cancellation" +msgstr "Cancelación de solicitud" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(dynamic)" +msgstr "(dinámico)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Hour" +msgstr "1 hora" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "{prefix}-hooks allow you to automatically execute any action {position} your trade is executed" +msgstr "Los ganchos {prefix} te permiten ejecutar automáticamente cualquier acción {position} que tu operación sea ejecutada" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "Safe" +#~ msgstr "Safe" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired. This could be due to gas spikes, volatile prices, or problems with the network." +msgstr "Su pedido ha caducado. Esto podría deberse a picos de gas, precios volátiles o problemas con la red." + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Unsupported network" +msgstr "Red no soportada" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Batching orders" +msgstr "Pedidos de compra" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to {wrappedSymbol}" +msgstr "Cambiar a {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Select debug step" +msgstr "Seleccionar paso de depuración" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "You're all caught up" +msgstr "Estás al día" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "Fee" +msgstr "Cuota" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "You could gain an extra <0><1/> compared to using a {swapOrderLink}" +msgstr "Podrías ganar <0><1/> extra en comparación con el uso de un {swapOrderLink}" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency (e.g ETH)" +msgstr "Moneda nativa (por ejemplo, ETH)" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "<0><1/> Experimental: Add DeFI interactions before and after your trade." +msgstr "<0><1/> Experimental: Añade interacciones de DeFI antes y después de tu operación." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Powerful tool to generate pre/post interaction for CoW Protocol" +msgstr "Herramienta potente para generar interacción pre/post para el protocolo CoW" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Reduce your slippage by breaking big orders into smaller ones" +msgstr "Reduce su deslizamiento rompiendo grandes pedidos en pequeños" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid " out of {totalSolvers}" +#~ msgstr " out of {totalSolvers}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is the only exchange that matches Coincidences of Wants (CoWs): peer-to-peer swaps that save on settlement costs." +msgstr "El intercambio de coW es el único intercambio que coincide con Coincidencias de Wants (CoWs): swaps peer-to-peer que ahorran en costos de liquidación." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "CoW Swap uses a dedicated {accountProxyLabelString}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +msgstr "CoW Swap utiliza un {accountProxyLabelString} dedicado, controlado solo por ti, para asegurar un puente liso. Confirma la dirección del destinatario anterior es <0/>" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +#~ msgid "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" +#~ msgstr "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" + +#: apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "gas" +msgstr "gas" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "details" +msgstr "detalles" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "TWAP order split into {twapOrderN} parts" +msgstr "Orden TWAP dividida en partes {twapOrderN}" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Gas limit" +msgstr "Límite de gas" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Price protection" +msgstr "Protección de precios" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol} failed!" +msgstr "¡Aprobar {wrappedSymbol} falló!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Hooks are interactions before/after order execution." +msgstr "Los Hooks son interacciones antes/después de la ejecución de la orden." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw Uniswap v2 Liquidity" +msgstr "Retira liquidez Uniswap v2" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Add a custom hook" +msgstr "Añadir un hook personalizado" + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected" +#~ msgstr "Connected" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This page can't be reached" +msgstr "No se puede acceder a esta página" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap" +msgstr "Intercambio colateral Aave" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Your swap expires and will not execute if it is pending for longer than the selected duration." +msgstr "Su swap expira y no se ejecutará si está pendiente por más tiempo que la duración seleccionada." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{currencyNameCapitalized} orders can, in rare cases, be frontrun due to their on-chain component. For more robust MEV protection, consider wrapping your {currencyName} before trading." +msgstr "Las órdenes {currencyNameCapitalized} pueden, en raras ocasiones, ser frontrun debido a su componente en cadena. Para una protección MEV más robusta, considera envolver tu {currencyName} antes de operar." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Confirmed" +msgstr "Transacción confirmada" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "This way, you'll take advantage of" +msgstr "De esta manera, aprovecharás de" + +#: apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx +msgid "Your combined balance" +msgstr "Tu saldo combinado" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Unknown Source" +msgstr "Fuente desconocida" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Cancel all" +msgstr "Cancelar todo" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Add Pre-hook" +msgstr "Añadir pre-hook" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap are free to place and cancel. That's unique in DeFi!" +msgstr "Las órdenes limitadas en el intercambio de CoW son gratuitas para realizar y cancelar. ¡Eso es único en DeFi!" + +#: apps/cowswap-frontend/src/modules/limitOrders/hooks/useHandleOrderPlacement.ts +msgid "safeBundleFlowContext is not set!" +msgstr "safeBundleFlowContext no está establecido!" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: No manifest.json file found. Please check the URL and try again." +msgstr "URL no válida: No se encontró archivo manifest.json. Por favor, compruebe la URL y vuelva a intentarlo." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "COW token not found for chain {SupportedChainIdMAINNET}" +msgstr "Token COW no encontrado para la cadena {SupportedChainIdMAINNET}" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unwrap" +msgstr "Desenvolver" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Connect your wallet first" +msgstr "Conecte su billetera primero" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Animated cow reacts to empty order list" +msgstr "La vaca animada reacciona a la lista de pedidos vacía" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Trade alerts" +msgstr "Alertas comerciales" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Auto" +msgstr "Auto" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "you will pay a separate gas cost for signing the order placement on-chain." +msgstr "Usted pagará un coste de gas separado por firmar el pedido colocado en cadena." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is live on {availableChainsText}. Switch the network toggle in the nav bar for quick, cheap transactions." +msgstr "CoW Swap está disponible en vivo en {availableChainsText}. Cambia la opción de cambiar de red en la barra de navegación para realizar transacciones rápidas y baratas." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx +msgid "Status: {label}" +msgstr "Estado: {label}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook doesn't support the current network:" +msgstr "Esta aplicación/hook no soporta la red actual:" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import token" +msgstr "Importar token" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Interface Settings" +msgstr "Ajustes de la interfaz" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +msgid "Enter a price" +msgstr "Introduzca un precio" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't verify {accountProxyLabel}, please try later" +msgstr "No se pudo verificar {accountProxyLabel}, por favor inténtalo más tarde" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation time" +msgstr "Tiempo de creación" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Partially Filled" +msgstr "Relleno parcial" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "<0>Note: If you are using a Safe but still see this message, ensure your Safe is deployed!" +msgstr "<0>Nota: Si estás usando un seguro pero todavía ves este mensaje, asegúrate de que tu seguro está desplegado!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Included in the estimated execution price" +msgstr "Incluido en el precio estimado de ejecución" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs (incl. gas) are covered by filling your order when the market price is better than your limit price." +msgstr "Los costes de red (incluido el gas) se cubren llenando su pedido cuando el precio de mercado es mejor que su precio límite." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Technical details:" +msgstr "Detalles técnicos:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "How do I recover my funds from {accountProxyLabel}?" +msgstr "¿Cómo recupero mis fondos de {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe confirmed signatures" +msgstr "Firmas seguras confirmadas" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Winning solver" +msgstr "Resolver ganador" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from external sources." +msgstr "Tokens de fuentes externas." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient" +msgstr "Insuficiente" + +#. placeholder {0}: reason ? `: "${reason}"` : '' +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "Error desconocido{0}. Intente aumentar la tolerancia de su deslizamiento. Nota: las comisiones en la transferencia y los tokens de rebase son incompatibles con Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Not connected" +msgstr "No conectado" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order presigned" +msgstr "Pedido preestablecido" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Get support on Discord" +msgstr "Obtén apoyo en Discord" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a CoW AMM pool before the swap" +msgstr "Remueve la liquidez de una reserva de CoW AMM antes del intercambio" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.cosmos.tsx +#~ msgid "Input currency not found for chain {supportedChainId}" +#~ msgstr "Input currency not found for chain {supportedChainId}" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "This swap has a price impact of at least {pct}%." +msgstr "Este intercambio tiene un impacto en los precios de al menos un {pct}%." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Read how to prevent losing funds" +msgstr "Lee cómo prevenir la pérdida de fondos" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time each part of your TWAP order will remain active." +msgstr "El tiempo que cada parte de su pedido de TWAP permanecerá activo." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Authorize Telegram" +#~ msgstr "Authorize Telegram" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Buy per part" +msgstr "Comprar por parte" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Total claimable rewards:" +msgstr "Recompensas cobrables totales:" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on" +msgstr "Ver en" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Connected with" +msgstr "Conectado con" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance detected." +msgstr "saldo detectado." + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "Deposit tokens to the {label} network." +msgstr "Depósitos de depósito en la red {label}." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order will be split into this many parts, which will execute one by one." +msgstr "Su orden TWAP se dividirá en esta cantidad de partes, que ejecutará una por una." + +#: apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx +msgid "Hang in there. Calculating best price" +msgstr "Colgar. Calculando el mejor precio" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "both {joinedSupportedTypes}" +msgstr "ambos {joinedSupportedTypes}" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on Explorer" +msgstr "Ver en el Explorador" + +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Error" +msgstr "Error" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#~ msgid "Sell {inputAmount} {label}" +#~ msgstr "Sell {inputAmount} {label}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong and your order couldn't be executed with this batch. But don't worry! CoW Swap is already holding another competition for your order." +msgstr "Algo salió mal y su pedido no pudo ser ejecutado con este lote. ¡Pero no se preocupes! CoW Swap ya está llevando a cabo otra competencia para su pedido." + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving token" +msgstr "Aprobación de token" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "We are unable to calculate the price impact for this order.<0/><1/>You may still move forward but <2>please review carefully that the receive amounts are what you expect." +msgstr "No podemos calcular el impacto del precio para este pedido. <0/><1/>Todavía puedes avanzar, pero <2>revisa cuidadosamente que las cantidades recibidas son las que esperas. " + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Off-chain cancellations require a signature and are free." +msgstr "Las cancelaciones fuera de la cadena requieren una firma y son gratuitas." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You are not eligible for this airdrop" +msgstr "Usted no es elegible para esta aerolínea" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Select a token" +msgstr "Seleccione un token" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Read more about unsupported tokens" +msgstr "Leer más sobre tokens no soportados" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +#~ msgid "Quote refresh in <0>{value} sec" +#~ msgstr "Quote refresh in <0>{value} sec" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelling" +msgstr "cancelando" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Signing transaction" +msgstr "Firmando transacción" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks" +msgstr "Buscar ganchos" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "down" +msgstr "abajo" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Wrap <0/> and Swap" +#~ msgstr "Wrap <0/> and Swap" + +#: apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx +msgid "Source transaction" +msgstr "Transacción de origen" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Cow Balance" +msgstr "Saldo de vacas" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful." +msgstr "Tenga en cuenta que un solucionador podría haber incluido el pedido en una solución incluso si esta cancelación se ha realizado correctamente." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token" +msgstr "Token" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order submitted" +msgstr "Pedido enviado" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote is updating..." +msgstr "La cotización se está actualizando..." + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started!" +msgstr "¡Empecemos!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom date" +msgstr "Fijar fecha personalizada" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claimable" +msgstr "Reclamable" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Docs" +msgstr "Documentos" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Simulation:" +msgstr "Simulación:" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Locked limits - lock or unlock prices for finer control, the order does the rest" +msgstr "Límites bloqueados - bloquear o desbloquear precios para un control más fino, el pedido hace el resto" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Cannot sell {nativeSymbol}" +msgstr "No se puede vender {nativeSymbol}" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR!" +msgstr "¡APR de reserva!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "El token de salida no puede ser transferido. Puede haber un problema con el token de salida. Nota: las comisiones en los tokens de transferencia y rebase son incompatibles con Uniswap V3." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "blocked activities" +msgstr "actividades bloqueadas" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +#~ msgid "Settings" +#~ msgstr "Settings" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "It is required to do a one-time approval of {wrappedSymbol} via an on-chain ERC20 Approve transaction." +msgstr "Es necesario hacer una aprobación única de {wrappedSymbol} mediante una transacción de aprobación ERC20 en cadena." + +#: apps/cowswap-frontend/src/modules/trade/hooks/setupTradeState/useResetStateWithSymbolDuplication.ts +msgid "There is more than one token in the list of tokens with the symbol: {doubledSymbol}.\n" +"Please select the token you need from the UI or use the address of the token instead of the symbol" +msgstr "Hay más de un token en la lista de tokens con el símbolo: {doubledSymbol}.\n" +"Por favor selecciona el token que necesitas desde la interfaz o usa la dirección del token en lugar del símbolo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "unfillable" +msgstr "irrellenable" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "saved" +msgstr "guardado" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook Store" +msgstr "Tienda de Hook" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting the best price." +msgstr "CoW Swap ajusta dinámicamente la tolerancia a los deslizamientos para asegurar que su operación se ejecuta rápidamente mientras obtiene el mejor precio." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee Protocol - Swap tokens across chains" +msgstr "Protocolo de Bungee - Intercambiar tokens a través de cadenas" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap's robust solver competition protects your slippage from being exploited by MEV bots." +msgstr "La robusta competencia de resolución de CoW Swap protege tu deslizamiento de ser explotado por los robots MEV." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap Flashloan" +msgstr "Intercambio Aave de deuda Flashloan" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Details" +msgstr "Detalles" + +#: apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/OrderNotification/index.tsx +msgid "Order" +msgstr "Pedido" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "TWAP orders require a one-time update to your Safe to enable automated execution of scheduled transactions." +msgstr "Las órdenes TWAP requieren una actualización única a su Seguro para permitir la ejecución automática de transacciones programadas." + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Order Submitted" +msgstr "Pedido enviado" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "You have given an allowance to <0>AnyswapV4Router which is affected by a critical vulnerability." +msgstr "Ha concedido una asignación a <0>AnyswapV4Router que se ve afectado por una vulnerabilidad crítica." + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This could have happened due to the lack of internet or the release of a new version of the application." +msgstr "Esto podría haber ocurrido debido a la falta de Internet o la publicación de una nueva versión de la aplicación." + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "For your convenience, token approval and order placement will be bundled into a single transaction, streamlining your experience!" +msgstr "Para su comodidad, la aprobación de tokens y la colocación de pedidos se incluirán en una sola transacción, estirando su experiencia!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No open orders" +msgstr "No hay órdenes abiertas" + +#: libs/common-utils/src/tooltips.ts +msgid "Maximum tokens you'll sell." +msgstr "Máximas fichas que venderás." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid " or <0/>" +msgstr " o <0/>" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "ENS recipient not supported for Swap and Bridge — use address instead." +#~ msgstr "ENS recipient not supported for Swap and Bridge — use address instead." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Careers" +msgstr "Carreras" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Expected sell amount" +msgstr "Cantidad de venta esperada" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "orders" +msgstr "órdenes" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Limit Order" +msgstr "Limitar pedido" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient allowance" +msgstr "Permiso insuficiente" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "Coinbase Wallet" +msgstr "Billetera CoinBase" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Connect wallet" +msgstr "Conectar billetera" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Approve the token to proceed." +msgstr "Aprobar el token para continuar." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "Recoverable value" +msgstr "Valor recuperable" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "is worth" +msgstr "vale" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "View account" +msgstr "Ver cuenta" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "When you swap (sell) <0/>, solvers handle the transaction by purchasing the required tokens, depositing them into the pool, and issuing LP tokens to you in return — all in a gas-less operation." +msgstr "Cuando intercambias (venta) <0/>, los solucionadores manejan la transacción comprando los tokens requeridos, depositarlos en la piscina y emitir tokens de LP a cambio — todo en una operación sin gas." + +#: apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx +msgid "BlockNumber hooks must be wrapped in a" +msgstr "Los ganchos BlockNumber deben estar envueltos en un" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Wrap <0/> and Swap" +msgstr "Envolver <0/> e intercambiar" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "A maximum of <0>{time} between parts is required. Increase the number of parts or decrease the total duration." +msgstr "Se requiere un máximo de <0>{time} entre partes. Aumentar el número de partes o disminuir la duración total." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience" +msgstr "Esta cuota ayuda a pagar por mantenimiento y mejoras en la experiencia de comercio" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "No. of parts" +msgstr "Nº de partes" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and saved " +msgstr "y guardado " + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "Esta transacción no tendrá éxito debido al movimiento de precios. Intenta aumentar la tolerancia de tu deslizamiento. Nota: las comisiones en los tokens de transferencia y rebase son incompatibles con Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve all" +msgstr "Aprobar todo" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Caution" +msgstr "Precaución" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Morpho Borrow" +msgstr "Préstamo Morpho" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This contract is deployed per account, with that account becoming the single owner. CoW Shed acts as an intermediary account that handles trading on your behalf." +msgstr "Este contrato se despliega por cuenta, y esa cuenta se convierte en el propietario único. CoW Shed actúa como una cuenta intermedia que se encarga de operar en tu nombre." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {msg}. Please, retry in a minute" +msgstr "El pedido no puede ser {msg}. Por favor, vuelve a intentarlo en un minuto" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Request cancellations" +msgstr "Cancelaciones de solicitud" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Recommended" +msgstr "Recomendado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Price change" +msgstr "Cambio de precio" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Yield" +msgstr "Yield" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageLists/index.tsx +msgid "Error importing token list" +msgstr "Error importando lista de tokens" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "cancelled" +msgstr "cancelado" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenListDetails/index.tsx +msgid "tokens" +msgstr "fichas" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "No wallet compatibility information available." +msgstr "No hay información de compatibilidad de billetera disponible." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "submitted a solution" +msgstr "envió una solución" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Issues have been reported with Metamask sending transactions to the wrong chain on versions prior to <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Before you sign, please check in your wallet that the transaction is being sent to the network:" +msgstr "Los problemas han sido reportados con Metamask enviando transacciones a la cadena incorrecta en versiones anteriores a <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Antes de registrarte, por favor comprueba en tu billetera que la transacción está siendo enviada a la red:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Sell amount is too small" +msgstr "La cantidad de venta es demasiado pequeña" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use the <0>Safe app for advanced trading." +msgstr "Usa la <0>app segura para realizar operaciones avanzadas." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Top" +msgstr "Subir" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that will be sold in each part of the order." +msgstr "Cantidad estimada que se venderá en cada parte del pedido." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Part duration" +msgstr "Duración de la parte" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "hours" +msgstr "horas" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Supply collateral, borrow, repay and withdraw collateral on Morpho Protocol." +msgstr "Suministrar garantías, prestar, reembolsar y retirar garantías en el Protocolo Morpho." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Order out of market" +msgstr "Pedido fuera del mercado" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "{solver} logo" +msgstr "Logotipo {solver}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Approve {tokenSymbol}" +msgstr "Aprobar {tokenSymbol}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The fill price of this order is close or at the market price and is expected to fill soon" +msgstr "El precio de relleno de este pedido está cerrado o al precio de mercado y se espera que lo llene pronto" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "My orders <0/>" +msgstr "Mis pedidos <0/>" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Define custom total time" +msgstr "Definir tiempo total personalizado" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Expected to receive" +msgstr "Se espera recibir" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "Select input and output" +msgstr "Seleccionar entrada y salida" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "With hooks you can add specific actions <0>before and <1>after your swap." +msgstr "Con ganchos puedes añadir acciones específicas <0>antes y <1>después de tu intercambio." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "No signatures yet" +msgstr "Aún no hay firmas" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Start bridging" +msgstr "Comenzar puente" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import at your own risk" +msgstr "Importar bajo su propio riesgo" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0>{currencySymbolOrContext} for trading" +msgstr "Aprobando <0>{currencySymbolOrContext} para operar" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't load balances" +msgstr "No se pudo cargar los balances" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate" +msgstr "Delegado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "cancel the order" +msgstr "cancelar el pedido" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Can't find a hook that you like?" +msgstr "¿No encuentras un gancho que te gusta?" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Market:" +msgstr "Mercado:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No orders" +msgstr "No hay pedidos" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token is unsupported as it does not operate optimally with CoW Protocol. Please refer to the FAQ for more information." +msgstr "Este token no está soportado ya que no funciona óptimamente con CoW Protocol. Por favor, consulte el FAQ para más información." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "You haven't added any custom hooks yet. Add a custom hook to get started." +msgstr "Aún no has añadido ningún hook personalizado. Añade un hook personalizado para empezar." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "7 Days" +msgstr "7 días" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction was cancelled or sped up" +msgstr "La transacción fue cancelada o acelerada" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Custom Recipient" +msgstr "Destinatario personalizado" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Received {tokenLabel}" +msgstr "Recibida {tokenLabel}" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "Please, make sure your address follows the format <0>{addressPrefix}: or double-check if it is compatible with <1>{label} network." +msgstr "Por favor, asegúrese de que su dirección sigue el formato <0>{addressPrefix}: o compruebe si es compatible con la red <1>{label}." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Recent Activity" +msgstr "Actividad reciente" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "2 stops" +msgstr "2 paradas" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeSignPermitButton/TradeSignPermitButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +#~ msgid "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." +#~ msgstr "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Please enter the base URL of your dapp, not the direct manifest.json path" +msgstr "Por favor, introduzca la URL base de su dapp, no la ruta directa de manifest.json" + +#: apps/cowswap-frontend/src/modules/orders/pure/PendingOrderNotification/index.tsx +msgid "submitted" +msgstr "enviado" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are selling {nativeSymbol} (native currency)" +msgstr "Porque vendes {nativeSymbol} (moneda nativa)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrdersTableWidget/index.tsx +msgid "Token symbol, address" +msgstr "Símbolo del token, dirección" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order Receipt" +msgstr "Recibo del pedido" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping debt assets. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "Los contratos de adaptadores de intercambio integran los préstamos Aave Flash y CoW Swap para facilitar acciones avanzadas como el intercambio de activos de deuda. Más información en https://aave.com/docs/desarrolladores/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Transaction completed!" +msgstr "¡Transacción completada!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "No pool tokens available" +msgstr "No hay fichas de piscina disponibles" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +#~ msgid "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +#~ msgstr "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Still searching" +msgstr "Buscar todavía" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across is the fastest, cheapest and most secure cross-chain bridge for Ethereum, Arbitrum, Optimism, Polygon and other Layer 1 and Layer 2 networks. Transfer tokens with Across." +msgstr "El puente cruzado más rápido, barato y seguro para las redes Ethereum, Arbitrum, Optismo, Polígono y otras redes Layer 1 y Layer 2. Transferir tokens con Across." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "check" +msgstr "comprobar" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Are you sure you want to cancel {ordersCount} orders?" +msgstr "¿Estás seguro de que quieres cancelar los pedidos {ordersCount}?" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Convert your <0/> LP tokens into CoW AMM pools and earn up to <1>+{apyDiffFormatted}% more yield compared to <2/>. Or, swap" +msgstr "Convierte tus fichas <0/> LP en pozos de CoW AMM y gana hasta <1>+{apyDiffFormatted}% más rendimiento en comparación con <2/>. O, cambia" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Lock Limit Price" +msgstr "Bloquear precio límite" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Target" +msgstr "Objetivo" + +#: libs/common-utils/src/legacyAddressUtils.ts +#~ msgid "View on {explorerTitle}" +#~ msgstr "View on {explorerTitle}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge failed on" +msgstr "Puente fallido en" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is submitted." +msgstr "El {operationLabel} ha sido enviado." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid manifest format at {manifestUrl}: missing cow_hook_dapp property" +msgstr "Formato de manifiesto no válido en {manifestUrl}: falta la propiedad cow_hook_dapp" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Valid to" +msgstr "Válido para" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Composable Cow and Settlement contracts are not on the same chain" +msgstr "Los contratos relativos a las vacas y a los acuerdos compuestos no están en la misma cadena" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Swap bridged via your" +msgstr "Intercambiar a través de tu" + +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Loading..." +msgstr "Cargando..." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported Network" +msgstr "Red no soportada" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Approve" +msgstr "Aprobar" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Execution time" +msgstr "Tiempo de ejecución" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW token" +msgstr "token vCU" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "High slippage amount selected" +msgstr "Cantidad alta de deslizamiento seleccionada" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place orders for higher than available balance!" +msgstr "¡Realiza pedidos por encima del saldo disponible!" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "first." +msgstr "primero." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "No routes found" +msgstr "No se encontraron rutas" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at most" +msgstr "para como máximo" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Submitted" +msgstr "Enviado" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "connect wallet" +msgstr "conectar billetera" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create LlamaPay Vesting" +msgstr "Crear Vesting de LlamaPay" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +msgid "Transaction expiration" +msgstr "Expiración de la transacción" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "CowSwap no connection" +msgstr "Cowswap sin conexión" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Alert" +msgstr "Alerta" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Start time first" +msgstr "Hora de inicio primero" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Swap with Wrapped {nativeSymbol}" +msgstr "Intercambiar con {nativeSymbol} envuelto" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Analytics" +msgstr "Analíticas" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock TWAP orders" +msgstr "Desbloquear pedidos TWAP" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Failed to cancel order" +msgstr "Error al cancelar el pedido" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Uniswap v2 Deposit" +msgstr "Deposit de Uniswap v2" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Set your own price" +msgstr "Fijar su propio precio" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This percentage only applies to dips; if prices are better than this percentage, CoW Swap will still execute your order." +msgstr "Este porcentaje sólo se aplica a las caídas; si los precios son mejores que este porcentaje, CoW Swap seguirá ejecutando su pedido." + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "12 Hours" +msgstr "12 horas" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signatures are" +msgstr "firmas son" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Use the Swap tab for trades that don't involve an LP token." +msgstr "Utilice la pestaña de intercambio para operaciones que no involucren un token LP." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "off-chain" +msgstr "fuera de cadena" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Price" +msgstr "Precio" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Your transaction may expire" +msgstr "Su transacción puede expirar" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "<0>CoW Swap solvers are scanning liquidity sources across DeFi. The one that finds you the best price wins!" +msgstr "<0>CoW Swap solvers están escaneando fuentes de liquidez a través de DeFi. ¡El que te encuentre el mejor precio gana!" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell at most" +msgstr "Usted vende como máximo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No matching orders found" +msgstr "No se encontraron pedidos coincidentes" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wallet Unsupported" +msgstr "Billetera no soportada" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Full approval" +msgstr "Aprobación completa" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset <0>{symbol} allowance" +msgstr "Restablecer <0>{symbol} permiso" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is within your selected range. Your position is currently earning fees." +msgstr "El precio de esta piscina está dentro de su rango seleccionado. Su posición actualmente está ganando cuotas." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "FAQs" +msgstr "FAQs" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signatures are" +msgstr "más firmas son" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current network costs make up <0><1>{formattedFeePercentage}% of your swap amount." +msgstr "Los costes de red actuales representan <0><1>{formattedFeePercentage}% de tu cantidad de intercambio." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Set approval" +msgstr "Asignar aprobación" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be before {maxDateStr} {timeZone}" +msgstr "Debe ser antes de {maxDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade." +msgstr "Este token no aparece en la(s) lista(s) de tokens activa(s). Asegúrese de que es el token que desea intercambiar." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Between currencies" +msgstr "Entre monedas" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "wrapped native" +msgstr "envuelto nativo" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover {target}" +msgstr "Recuperar {target}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Expiry" +msgstr "Expira" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Minutes" +msgstr "Minutos" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useHandleApprovalError.ts +msgid "User rejected approval transaction" +msgstr "Transacción rechazada por el usuario" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap on" +msgstr "Intercambiar en" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Transaction" +msgstr "Transacción" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe contracts have a so-called \"nonce.\" This is to ensure that each transaction can be executed only once so no replay attacks are possible." +msgstr "Los contratos seguros tienen un llamado \"nonce\". Esto es para asegurar que cada transacción puede ser ejecutada sólo una vez para que no sea posible ningún ataque de repetición." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "This is the recommended slippage tolerance based on current gas prices & trade size. A lower amount may result in slower execution." +msgstr "Esta es la tolerancia recomendada de deslizamientos basada en los precios actuales del gas y el tamaño del comercio. Una cantidad menor puede resultar en una ejecución más lenta." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "buy" +msgstr "comprar" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW to COW" +msgstr "Convirtiendo vCOW a COW" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Maximum sent" +msgstr "Máximo enviado" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "More intuitive UI and improved design" +msgstr "IU más intuitiva y diseño mejorado" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "External" +msgstr "Externo" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "The winner of the competition is now executing your order on-chain." +msgstr "El ganador del concurso está ejecutando su pedido en cadena." + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs" +msgstr "Costes de red" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "PRE" +msgstr "PRE" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{symbolName} orders require a minimum transaction expiration time threshold of {minutes} minutes to ensure the best swapping experience" +msgstr "Las órdenes {symbolName} requieren un límite mínimo de tiempo de expiración de la transacción de {minutes} minutos para asegurar la mejor experiencia de intercambio" + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Edit limit order" +msgstr "Editar orden límite" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +msgid "Your order is being cancelled." +msgstr "Su pedido está siendo cancelado." + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance based on current gas prices and trade size. You can set a custom slippage using the settings icon above." +msgstr "El intercambio de coW ajusta dinámicamente su tolerancia de deslizamientos en función del precio actual del gas y del tamaño del comercio. Puede establecer un deslizamiento personalizado usando el icono de configuración de arriba." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "CoW Swap has dynamically selected this slippage amount to account for current gas prices and trade size. Changes may result in slower execution." +msgstr "El intercambio de CoW ha seleccionado dinámicamente esta cantidad de deslizamiento para tener en cuenta los precios actuales del gas y el tamaño del comercio. Los cambios pueden resultar en una ejecución más lenta." + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "CoWmunity fees discount" +msgstr "Descuento de cuotas de CoWmunity" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping collateral assets when there are borrow positions. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "Los contratos de adaptador de swap integran los préstamos Aave Flash y CoW Swap para facilitar acciones avanzadas como el intercambio de activos colaterales cuando hay posiciones de préstamo. Obtenga más información en https://aave.com/docs/developeropers/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Swap with" +msgstr "Intercambiar con" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Current network fees" +msgstr "Cargos de red actuales" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "3 Days" +msgstr "3 Días" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Now" +msgstr "Ahora" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Mooove between <0/> any chain, hassle-free" +msgstr "Muuuuevete entre <0/> cualquier cadena, sin problemas" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Wrap {nativeSymbol} to {wrappedNativeSymbol}" +msgstr "Envolver {nativeSymbol} a {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The address that will receive the tokens." +msgstr "La dirección que recibirá las fichas." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The number of signers who have confirmed this transaction versus the number of signer confirmations needed." +msgstr "El número de firmantes que han confirmado esta transacción frente al número de confirmaciones de firmantes necesarios." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Dynamic" +msgstr "Dinámica" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Fills at" +msgstr "Rellenar en" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "Confirm Price Impact" +msgstr "Confirmar Impacto de Precio" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Executing" +msgstr "Ejecutando" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Another order has used up the approval amount. Set a new token approval to proceed with your order." +msgstr "Otro pedido ha utilizado la cantidad de aprobación. Establezca una nueva aprobación de token para continuar con su pedido." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#~ msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." +#~ msgstr "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid token address" +msgstr "Introduzca una dirección de token válida" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW conversion" +msgstr "conversión vCU" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Sorry, we were unable to load the requested page." +msgstr "Lo sentimos, no hemos podido cargar la página solicitada." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Creation Failed" +msgstr "Creación de pedido fallida" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "This wallet is not yet supported" +msgstr "Esta billetera aún no está soportada" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Created" +msgstr "Creado" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Update Pre-hook" +msgstr "Actualizar pre-hook" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Governance" +msgstr "Gobernanza" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrapping {amountStr} {native} to {wrapped}" +msgstr "Envolviendo {amountStr} {native} a {wrapped}" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order surplus" +msgstr "Excedente de orden" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of <2>{parts} parts placed every <3>{partDurationDisplay}, the total time to complete the order is <4>{totalDurationDisplay}. Each limit order remains open for <5>{partDurationDisplay} until the next part becomes active." +msgstr "La \"Duración total\" es la duración que se tarda en ejecutar todas las partes de su pedido TWAP. <0/><1/>Por ejemplo, tu pedido consiste en <2>{parts} partes colocado cada <3>{partDurationDisplay}, el tiempo total para completar el pedido es <4>{totalDurationDisplay}. Cada orden de límite permanece abierta para <5>{partDurationDisplay} hasta que la siguiente parte se active." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "to" +msgstr "a" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "24 Hours" +msgstr "24 horas" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Recoverable tokens" +msgstr "Tokens recuperables" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract not present or not connected to any supported chain" +msgstr "Contrato no presente o no conectado a ninguna cadena soportada" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "token approval" +msgstr "aprobación de token" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "including an extra " +msgstr "incluyendo un extra " + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL format" +msgstr "Formato de URL inválido" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "order" +msgstr "pedido" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "cancellation" +msgstr "cancelación" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create a LlamaPay vesting contract" +msgstr "Crear un contrato de adquisición de LlamaPay" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "tip" +msgstr "consejo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Open orders" +msgstr "Pedidos abiertos" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +#~ msgid "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." +#~ msgstr "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Recreate limit order" +msgstr "Recrear orden de límite" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." +#~ msgstr "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "TWAP order split in <0>{numOfParts} equal parts" +msgstr "Orden TWAP dividido en <0> {numOfParts} partes iguales" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Your total surplus" +msgstr "Tu excedente total" + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "Desktop: Left-Aligned Orders Table" +msgstr "Escritorio: Tabla de pedidos alineados a la izquierda" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw rewards from your Gnosis validators." +msgstr "Retira recompensas de tus validadores de Gnosis." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Selling {symbol} is not supported" +msgstr "Vender {symbol} no es compatible" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "before that time." +msgstr "antes de ese momento." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "View transaction" +msgstr "Ver transacción" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "is" +msgstr "es" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Transaction {errorType}" +msgstr "Transacción {errorType}" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "Price impact <0>unknown - trade carefully" +msgstr "Impacto de precios <0>desconocido - Intercambia cuidadosamente" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable partial approvals" +msgstr "Habilitar aprobación parcial" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx +msgid "Version" +msgstr "Versión" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "All tokens" +msgstr "Todos los tokens" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Additional Results from External Sources" +msgstr "Resultados adicionales de fuentes externas" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "CoW Swap will try to lower this cost where possible." +msgstr "El intercambio de vacas tratará de reducir este coste siempre que sea posible." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "versions of" +msgstr "versiones de" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Edit partial approval" +msgstr "Editar aprobación parcial" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Edit" +msgstr "Editar" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires adequate allowance. Approve the token to proceed." +msgstr "La orden sigue abierta. La ejecución requiere una asignación adecuada. Aprobar el token para continuar." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Sell → Buy" +msgstr "Vender → Comprar" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Cancel order {shortId}" +msgstr "Cancelar la orden {shortId}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "without worry." +msgstr "sin preocuparse." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "For your convenience, CoW Swap will bundle all the necessary actions for this trade into a single transaction. This includes the {nativeCurrencySymbol} wrapping and, if needed, {wrappedCurrencySymbol} approval. Even if the trade fails, your wrapping and approval will be done!" +msgstr "Para su comodidad, CoW Swap agrupará todas las acciones necesarias para esta operación en una sola transacción. Esto incluye el envoltorio {nativeCurrencySymbol} y, si es necesario, la aprobación {wrappedCurrencySymbol}. ¡Incluso si la operación falla, su envoltura y aprobación se harán!" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token balance" +msgstr "Saldo insuficiente de fichas" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "From" +msgstr "De" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Orders not matched after the threshold time are automatically refunded." +msgstr "Los pedidos no coinciden después del límite de tiempo son reembolsados automáticamente." + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Follow these steps:" +msgstr "Siga estos pasos:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Buy exactly" +msgstr "Comprar exactamente" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "{nativeTokenSymbol} Refunded" +msgstr "{nativeTokenSymbol} reembolsado" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock the Power of TWAP Orders" +msgstr "Desbloquea el poder de las Órdenes TWAP" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim GNO from validators" +msgstr "Reclamar GNO a los validadores" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Easily increase your position in a liquidity pool, adding both tokens in the right ratio.\n\n" +" Whether you're seeking to increase your exposure to specific tokens or maximize the returns from your assets, this tool offers a quick and efficient way to enhance your liquidity position after a token swap, all in a smooth, efficient process." +msgstr "Incrementa fácilmente tu posición en un pool de liquidez, agregando ambos tokens en la proporción correcta.\n\n" +"Ya sea que busques aumentar tu exposición a tokens específicos o maximizar los rendimientos de tus activos, esta herramienta ofrece una forma rápida y eficiente de mejorar tu posición de liquidez después de un intercambio de tokens, todo en un proceso fluido y eficiente." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Unwrapping" +msgstr "Desenvoltura" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unknown quote error" +msgstr "Error desconocido de cita" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "Read more about unsupported wallets" +msgstr "Leer más sobre billeteras no soportadas" + +#: apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts +msgid "Chain Id from contracts should match (ethFlow={ethFlowChainId}, settlement={settlementChainId})" +msgstr "El Id de la cadena de contratos debe coincidir (ethFlow={ethFlowChainId}, liquidación={settlementChainId})" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Back to wallet selection" +msgstr "Volver a la selección de billetera" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +msgid "Confirm Action" +msgstr "Confirmar acción" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "more" +msgstr "más" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "CoW Protocol covers the costs by executing your order at a slightly better price than your limit price." +msgstr "El Protocolo de CoW cubre los costos ejecutando su pedido a un precio ligeramente mejor que su precio límite." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Your limit price is {absoluteRateImpact}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +msgstr "Tu precio límite es {absoluteRateImpact}% más bajo que el precio de mercado actual. Podrías estar vendiendo tu<0/> con pérdida (aunque CoW Swap siempre intentará darte el mejor precio de todos modos)." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Clear search input" +msgstr "Borrar entrada de búsqueda" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "The fill price of this order is close or at the market price (<0>fills at <1/>, {priceDiff}% from market) and is expected to {filledValue} fill soon." +msgstr "El precio de relleno de esta orden está cerrado o al precio de mercado (<0>rellena a <1/>, {priceDiff}% del mercado) y pronto se espera que llene {filledValue}." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "of your sell amount! Therefore, your order is unlikely to execute." +msgstr "de su cantidad de venta! Por lo tanto, es poco probable que su orden se ejecute." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to easily set up vesting contracts with LlamaPay. Enter the recipient’s address or ENS name, then choose how much to transfer: the token buy will be automatically detected by the hook and the contracts will be linked to your LlamaPay dashboard for seamless tracking." +msgstr "Este gancho le permite configurar fácilmente contratos de inversión con LlamaPay. Introduzca la dirección del destinatario o el nombre de ENS, luego elija cuánto transferir: la compra del token será detectada automáticamente por el gancho y los contratos estarán vinculados a su panel de control de LlamaPay para un seguimiento sin fisuras." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Recreate" +msgstr "Recrear" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: libs/common-const/src/common.ts +msgid "Received" +msgstr "Recibido" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks available." +msgstr "No hay ganchos disponibles." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Your Metamask extension (<0>v{currentVersion}) is out of date. " +msgstr "Tu extensión de Metamask (<0>v{currentVersion}) está desactualizada. " + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "Turn on Expert mode?" +msgstr "¿Activar el modo Experto?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/RenderProgressTopSection.tsx +msgid "N/A" +msgstr "N/A" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "This transaction can be simulated before execution to ensure that it will be succeed, generating a detailed report of the transaction execution." +msgstr "Esta transacción se puede simular antes de la ejecución para asegurarse de que tendrá éxito, generando un informe detallado de la ejecución de la transacción." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Year (max)" +msgstr "1 año (máx)" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "partially fillable" +msgstr "parcialmente rellenable" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token allowance" +msgstr "Permiso de token insuficiente" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Rate" +msgstr "Tasa" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Decrease Value" +msgstr "Reducir valor" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/WrappingPreview/WrapCard.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Balance" +msgstr "Saldo" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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." +msgstr "El invariante Uniswap x*y=k no estaba satisfecho con el intercambio. Esto generalmente significa que uno de los tokens que estás intercambiando incorpora un comportamiento personalizado en la transferencia." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "dynamic" +msgstr "dinámico" + +#: apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Powered by" +msgstr "Desarrollado por" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Accept" +msgstr "Aceptar" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To at least" +msgstr "Al menos" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Order has expired" +msgstr "El pedido ha caducado" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the amount that will be sold in each part of the TWAP order." +msgstr "Esta es la cantidad que se venderá en cada parte del pedido TWAP." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Quote expired. Refreshing..." +msgstr "Cotización caducada. Actualizando..." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay" +msgstr "Pagar Aave" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "The URL provided does not return a valid manifest file<0/><1>The server returned an HTML page instead of the expected JSON manifest.json file. Please check if the URL is correct and points to a valid hook dapp." +msgstr "La URL proporcionada no devuelve un archivo manifest válido<0/><1>El servidor devolvió una página HTML en lugar del manifiesto JSON esperado. son archivos. Por favor, comprueba si la URL es correcta y apunta a un enlace válido dapp." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Favorite tokens" +msgstr "Tokens Favoritos" + +#: libs/common-const/src/common.ts +msgid "Limit Orders" +msgstr "Órdenes límite" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts +msgid "Approved amount is not sufficient!" +msgstr "¡La cantidad aprobada no es suficiente!" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "funds" +msgstr "fondos" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool details" +msgstr "Detalles de la herramienta" + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "Slippage adjusted to {slippageBpsPercentage}% to ensure quick execution" +msgstr "Deslizamiento ajustado al {slippageBpsPercentage}% para asegurar una ejecución rápida" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive surplus of your order" +msgstr "Recibir excedente de su pedido" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW DAO Governance" +msgstr "Gobernanza de CoW DAO" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add <0/> to {walletName}" +msgstr "Añadir <0/> a {walletName}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Orders on CoW Swap can either be market orders (which fill at the market price within the slippage tolerance you set) or limit orders (which fill at a price you specify)." +msgstr "Los pedidos de CoW Swap pueden ser órdenes de mercado (que se llenan al precio de mercado dentro de la tolerancia del deslizamiento que ha establecido) o órdenes de límite (que se llenan a un precio que usted especifique)." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at least" +msgstr "al menos" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "m" +msgstr "m" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Lists" +msgstr "Listas" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {stringifiedData}" +msgstr "Respuesta inesperada de BFF: {stringifiedData}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +msgid "parts" +msgstr "partes" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "This is the cost of settling your order on-chain, including gas and any LP fees." +msgstr "Este es el costo de ajustar su pedido en cadena, incluyendo el gas y cualquier cargo por LP." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signature is" +msgstr "más firma es" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower minimal slippage (instead of {minEthFlowSlippageToSignificant}% minimum)" +msgstr "Bajar el deslizamiento mínimo (en lugar de {minEthFlowSlippageToSignificant}% mínimo)" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Submit" +msgstr "Enviar" + +#: libs/common-const/src/common.ts +msgid "Account Overview" +msgstr "Vista general de la cuenta" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "FREE order placement and cancellation" +msgstr "Pedido y cancelación GRATIS" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "You cannot edit this field when selling" +msgstr "No puedes editar este campo al vender" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Current market price is <0><1/> and needs to go {marketPriceDirection} by <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) to execute your order at <6><7/>." +msgstr "El precio de mercado actual es <0><1/> y necesita ir {marketPriceDirection} por <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) para ejecutar tu pedido a <6><7/>." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Selling {nativeSymbol} is only supported on SWAP orders." +msgstr "La venta de {nativeSymbol} solo es compatible con pedidos SWAP." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wrap" +msgstr "Envoltura" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract and chainId are not on the same chain" +msgstr "Contrato y chainId no están en la misma cadena" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Search hooks by title or description" +msgstr "Buscar ganchos por título o descripción" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Safe Nonce: <0>{nonce}" +msgstr "Ninguno seguro: <0>{nonce}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can protect all your Ethereum transactions from MEV - not just trades on CoW Swap - by installing MEV Blocker." +msgstr "Puede proteger todas sus transacciones de Ethereum de MEV - no sólo operaciones en CoW Swap - instalando MEV Blocker." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "HTTPS is required. Please use <0>https://" +msgstr "Se requiere HTTPS. Por favor usa <0>https://" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Transaction in progress. See below for live status updates." +msgstr "Transacción en curso. Ver abajo para actualizaciones de estado en vivo." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Please sign order" +msgstr "Por favor firma el pedido" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Order unlikely to execute" +msgstr "No es probable que la orden se ejecute" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Choose where to display the limit price input." +msgstr "Elija dónde mostrar la entrada del precio límite." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. You are currently offline." +msgstr "Error al cargar el precio. Actualmente está desconectado." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Approve <0/> and {contextDefaultText}" +msgstr "Aprobar <0/> y {contextDefaultText}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Minimum receive" +msgstr "Recibir mínimo" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "This address is blocked on the Uniswap Labs interface because it is associated with one or more" +msgstr "Esta dirección está bloqueada en la interfaz de Uniswap Labs porque está asociada con uno o más" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too short" +msgstr "Tiempo de intervalo demasiado corto" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Order Expired" +msgstr "Orden caducada" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Selected token:" +msgstr "Token seleccionado:" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Out of range" +msgstr "Fuera de rango" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Since prices can change significantly over time, we suggest increasing your price protection for orders with long deadlines." +msgstr "Dado que los precios pueden cambiar significativamente con el tiempo, le sugerimos aumentar su protección de precios para pedidos con plazos largos." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "No surplus for the given time period" +msgstr "Sin excedente para el período de tiempo dado" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Notifications" +msgstr "Notificaciones" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "Trading mode" +msgstr "Modo de intercambio" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Connect your wallet" +msgstr "Conecte su billetera" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Back" +msgstr "Atrás" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap sets the standard for protecting against MEV attacks such as frontrunning and sandwiching." +msgstr "CoW Swap establece el estándar para la protección contra ataques MEV como frontracing y sandwiching." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive exactly" +msgstr "Recibes exactamente" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter an amount" +msgstr "Introduzca un monto" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Added <0/>" +msgstr "Añadido <0/>" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Failed" +msgstr "Transacción fallida" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Select a network" +msgstr "Seleccione una red" + +#: libs/common-utils/src/tooltips.ts +msgid "Minimum tokens you'll receive." +msgstr "Tokens mínimos que recibirás." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected <0/>" +#~ msgstr "Connected <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Choose a custom deadline for your limit order" +msgstr "Elija una fecha límite personalizada para su pedido límite" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Cancelled order" +msgstr "Orden cancelada" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Deposit" +msgstr "Depósito de CoW AMM" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Order Settings" +msgstr "Limitar ajustes de pedido" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "on {chainLabel}" +msgstr "en {chainLabel}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Invalid price. Try increasing input/output amount." +msgstr "Precio no válido. Prueba a aumentar la cantidad de entrada/salida." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" +#~ msgstr "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "Token approval bundling" +msgstr "Conjunto de aprobación del token" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "New" +msgstr "Nuevo" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Approval amount" +msgstr "Monto de aprobación" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "Approving" +#~ msgstr "Approving" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "https:// or ipfs:// or ENS name" +msgstr "https:// o ipfs:// o nombre ENS" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Trade tokens" +msgstr "Tokens de comercio" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Boost Your Yield with One-Click Conversion" +msgstr "Aumenta tu rendimiento con una conversión en un clic" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Vested" +msgstr "Ofrecido" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "Learn more about wallets" +msgstr "Más información sobre billeteras" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the estimated amount you will receive for each part of the TWAP order." +msgstr "Esta es la cantidad estimada que recibirá por cada parte del pedido TWAP." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay with Collateral Flashloan" +msgstr "Aave Repay con Collateral Flashloan" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Hooks" +msgstr "Hooks" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "for trading" +#~ msgstr "for trading" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at most " +msgstr "como máximo " + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to withdraw rewards from your Gnosis Chain validators through CoW Swap. It automates the process of interacting with the Gnosis Deposit Contract, enabling you to claim any available rewards directly to your specified withdrawal address. The hook monitors your validator's accrued rewards and triggers the claimWithdrawals function when rewards are ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring manual contract interaction, providing a smoother and more efficient experience for users." +msgstr "Este gancho te permite retirar recompensas de tus validadores de Gnosis Chain a través de CoW Swap. Automatiza el proceso de interacción con el Contrato de Depósito de Gnosis, lo que le permite reclamar cualquier recompensa disponible directamente a su dirección de retiro de dinero. El gancho monitoriza las recompensas acumuladas de su validador y activa la función claimWithdrawals cuando las recompensas están listas para retirarse. Esto simplifica la gestión de las ganancias de los validadores de Gnosis sin necesidad de prepararse para la retirada. Esto simplifica la gestión de las ganancias de los validadores de Gnosis sin requerir una interacción manual de contrato, proporcionando una experiencia más fluida y eficiente para los usuarios." + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Sandwich icon" +msgstr "Icono de Sandwich" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Network compatibility error" +msgstr "Error de compatibilidad de red" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: URLs cannot contain spaces" +msgstr "URL no válida: las URLs no pueden contener espacios" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid list location" +msgstr "Introduzca una ubicación de lista válida" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "View" +msgstr "Ver" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Execution price" +msgstr "Precio de ejecución" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "No tokens found" +msgstr "No se encontraron tokens" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Unsupported" +msgstr "No soportado" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "seconds" +msgstr "segundos" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "token before creation." +msgstr "antes de la creación." + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at least " +msgstr "al menos " + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +msgid "Recover funds from {accountProxyLabelString}" +msgstr "Recuperar fondos de {accountProxyLabelString}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +msgid "The address that will receive the tokens on the destination chain." +msgstr "La dirección que recibirá las fichas en la cadena de destino." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation" +msgstr "Creación" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "AFTER" +msgstr "POST" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "<0/><1/>Consider waiting for lower network costs.<2/><3/>You may still move forward with this swap but a high percentage of it will be consumed by network costs." +msgstr "<0/><1/>Considera esperar menores costes de red.<2/><3/>Todavía puedes avanzar con este intercambio, pero un alto porcentaje de él será consumido por costos de red." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapping on" +msgstr "Cambiando en" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Fill or Kill)" +msgstr "(Llenar o matar)" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Play MEV Slicer" +msgstr "Reproducir MEV Slicer" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Refreshing quote..." +msgstr "Actualizando comilla..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "was sent to" +msgstr "fue enviado a" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +msgid "Deposit" +msgstr "Depósito" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +msgid "Review TWAP order" +msgstr "Revisar el pedido TWAP" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid manifest format: Missing \"cow_hook_dapp\" property in manifest.json" +msgstr "Formato de manifiesto no válido: Falta la propiedad \"cow_hook_dapp\" en manifest.json" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Approve {wrappedSymbol}\" to try again." +msgstr "Haz clic en \"Aprobar {wrappedSymbol}\" para volver a intentarlo." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PreHookButton/index.tsx +msgid "Add Pre-Hook Action" +msgstr "Añadir acción de pre-Hook" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Page {page} of {maxPage}" +msgstr "Página {page} de {maxPage}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Each time you claim, you will receive the entire claimable amount." +msgstr "Cada vez que reclames, recibirás la cantidad total cobrable." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import" +msgstr "Importar" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Order params invalid sellToken address for token: {stringifiedJSON}" +msgstr "Los parámetros de pedido no son válidos para el token: {stringifiedJSON}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Enable Partial Executions" +msgstr "Habilitar Ejecuciones Parciales" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "I acknowledge the high price impact" +msgstr "Reconozco el alto impacto de los precios" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Failed" +msgstr "Simulación fallida" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Successfully claimed" +msgstr "Reclamado con éxito" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Call any smart contract with your own parameters" +msgstr "Llama a cualquier contrato inteligente con tus propios parámetros" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to the classic {wrappedSymbol} experience and benefit!" +msgstr "¡Cambia a la experiencia clásica de {wrappedSymbol} y benefícialo!" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Add {hookTypeText}-hook" +msgstr "Añadir gancho {hookTypeText}" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order filled" +msgstr "Pedido completado" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm swap" +msgstr "Confirmar intercambio" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Part of a {twapOrderN}-part TWAP order split" +msgstr "Parte de una división de orden TWAP de parte de {twapOrderN}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claim COW <0/>" +msgstr "Reclamar CÚ <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridged via" +msgstr "Bridged vía" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" +#~ msgstr "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulation report" +msgstr "Informe de simulación" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Tip: Custom tokens are stored locally in your browser" +msgstr "Consejo: Los tokens personalizados se almacenan localmente en tu navegador" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive at least" +msgstr "Recibes al menos" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "You are connected to" +msgstr "Estás conectado a" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown hook dapp" +msgstr "Dapp de hook desconocido" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Swap now" +msgstr "Intercambiar ahora" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "An unexpected error occurred" +msgstr "Se ha producido un error inesperado" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +msgid "Add" +msgstr "Añadir" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Confirm Swap and Bridge" +msgstr "Confirmar intercambio y puente" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The order will start when it is validated and executed in your Safe." +msgstr "La orden comenzará cuando sea validada y ejecutada en su caja fuerte." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/ConfirmButton.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormBlankButton/index.tsx +msgid "Confirm with your wallet" +msgstr "Confirmar con su billetera" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +#~ msgid "Swaps just got smarter" +#~ msgstr "Swaps just got smarter" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Los costes del intercambio son al menos un {formattedFeePercentage}% de la cantidad del swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap capture surplus - so if the price moves in your favor, you're likely to get more than you asked for." +msgstr "Límite de órdenes en excedente de captura de intercambio de CoW - así que si el precio se mueve a su favor, probablemente obtendrá más de lo que usted solicitó." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Avg. execution price" +msgstr "Precio de ejecución medio" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Hook position mismatch:" +msgstr "Posición del hook no concuerda:" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx +msgid "Loading hook..." +msgstr "Cargando hook..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Terms and Conditions" +msgstr "Térms. & Conds." + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Hide today's fortune cookie" +msgstr "Ocultar la fortune cookie de hoy" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Post Hooks" +msgstr "Publicar Hooks" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Not compatible with current wallet type" +msgstr "No es compatible con el tipo de billetera actual" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#~ msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." +#~ msgstr "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "on explorer" +msgstr "al explorador" + +#: apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts +msgid "No provider yet" +msgstr "Aún no hay proveedor" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Your trade will be executed in 2 stops. First, you swap on <0>{COW_PROTOCOL_NAME} (Stop 1), then you bridge via <1>{providerInfoName} (Stop 2)." +msgstr "Tu intercambio se realizará en 2 paradas. En primer lugar, intercambias en <0>{COW_PROTOCOL_NAME} (Parar 1), luego puentes a través de <1>{providerInfoName} (Detener 2)." + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +msgid "Wallet chainId differs from app chainId. Wallet: {networkString}, App: {chainId}. Action: {description}" +msgstr "Wallet chainId difiere de la aplicación chainId. Wallet: {networkString}, App: {chainId}. Action: {description}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Executes at" +msgstr "Ejecuta en" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "From (incl. costs)" +msgstr "Desde (incl. costes)" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap Flashloan" +msgstr "Aave Collateral Swap Flashloan" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "order executes at" +msgstr "la orden se ejecuta en" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Information" +msgstr "Información" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}" +msgstr "El sobrante que CoW Swap te ha generado en {nativeSymbol} a través de todos tus intercambios desde {startDate}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "For this order, network costs would be" +msgstr "Para este pedido, los costos de red serían" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Canceling your order" +msgstr "Cancelar su pedido" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} out of {totalSolvers} solvers" +msgstr "Resolver {solversLength} de {totalSolvers}" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Something went wrong" +msgstr "Algo salió mal" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add the app at your own risk" +msgstr "Añadir la aplicación bajo tu propio riesgo" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Unknown Currency" +msgstr "Moneda desconocida" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receive {tokenLabel}" +msgstr "Recibir {tokenLabel}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Set approval amount" +msgstr "Establecer cantidad de aprobación" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "CoW Fortune of the day" +msgstr "CoW Fortuna del día" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Order ID" +msgstr "ID del pedido" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "The order was executed before it could be cancelled." +msgstr "La orden fue ejecutada antes de poder ser cancelada." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "a native currency" +msgstr "una moneda nativa" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm order" +msgstr "Confirmar pedido" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending pre-signature" +msgstr "Pre-firma pendiente" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "If your orders often expire, consider increasing your slippage or contact us on" +msgstr "Si sus pedidos a menudo caducan, considere aumentar su deslizamiento o póngase en contacto con nosotros en" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The good news" +msgstr "Las buenas noticias" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "yield" +msgstr "rendimiento" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Swap completed" +msgstr "Intercambio completado" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool" +msgstr "Herramienta" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Allow you to chose whether your limit orders will be <0>Partially fillable or <1>Fill or kill.<2/><3/><4>Fill or kill orders will either be filled fully or not at all.<5/><6>Partially fillable orders may be filled partially if there isn't enough liquidity to fill the full amount." +msgstr "Permite elegir si sus órdenes de límite serán <0>parcialmente facturables o <1>Llenar o matar.<2/><3/><4>Llenar o matar pedidos se completarán o no se completarán en absoluto.<5/><6>Los pedidos se pueden llenar parcialmente parcialmente si no hay suficiente liquidez para llenar la cantidad completa." + +#: apps/cowswap-frontend/src/modules/trade/pure/UnlockWidgetScreen/index.tsx +msgid "Learn more about <0>{orderType} orders ↗" +msgstr "Más información sobre los pedidos <0>{orderType} ↗️" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "NEW" +msgstr "Nuevo" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation successful" +msgstr "Simulación exitosa" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "part" +msgstr "parte" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Cross-chain swaps are here" +msgstr "Los swaps de cadena media están aquí" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +#~ msgid "Approval amount:" +#~ msgstr "Approval amount:" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "Fee discount" +msgstr "Tarifa de descuento" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "Allow CoW Swap to use your <0/>" +msgstr "Permitir a CoW Swap usar tu <0/>" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "mo" +msgstr "mes" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe logo" +msgstr "Logo seguro" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Wrapping" +msgstr "Envoltura" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +msgid "Provided proxy address does not match {accountProxyLabelString} address!, recipient={recipient}, proxyAddress={proxyAddress}" +msgstr "¡La dirección del proxy proporcionada no coincide con la dirección {accountProxyLabelString} !, destinatario={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be <0>insufficient for any further on-chain transactions." +msgstr "Al precio actual del gas, el saldo restante de {nativeSymbol} después de la confirmación puede ser <0>insuficiente para cualquier otra transacción en cadena." + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at least" +msgstr "por lo menos" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet to recover funds" +msgstr "Conectar billetera para recuperar fondos" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Failed to load manifest. Please verify the URL and try again." +msgstr "No se pudo cargar el manifiesto. Por favor, compruebe la URL y vuelva a intentarlo." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Created" +msgstr "Orden creada" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/index.tsx +msgid "signing" +msgstr "firmando" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Cow meditating..." +#~ msgstr "Cow meditating..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "About CoW Swap" +msgstr "Acerca de CoW Swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Unlike on other exchanges, you won't be charged for this! Feel free to" +msgstr "¡A diferencia de otros intercambios, no se te cobrará por esto! Siéntete libre de" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Error loading the claimable amount" +msgstr "Error al cargar la cantidad cobrable" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Attention" +msgstr "Atención" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/SelectTokenModalContent.tsx +msgid "This route is not yet supported." +msgstr "Esta ruta aún no está soportada." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires sufficient" +msgstr "La orden permanece abierta. La ejecución requiere suficiente" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect signer" +msgstr "Conectar firmante" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet banner" +msgstr "Conectar banner de billetera" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "The Safe App License Fee incurred here is charged by the Safe Foundation for the display of the app within their Safe Store. The fee is automatically calculated in this quote. Part of the fees will contribute to the CoW DAO treasury that supports the CoW Community." +msgstr "La Caja de Seguridad de la Licencia de Aplicación Incurred aquí es cobrada por la Fundación para la visualización de la aplicación dentro de su Tienda Segura. La cuota se calcula automáticamente en este presupuesto. Parte de las tasas contribuirán al tesoro de CoW DAO que apoya a la Comunidad de CoW." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "win" +msgstr "ganar" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This order needs to be signed and executed with your {walletType} wallet" +msgstr "Este pedido necesita ser firmado y ejecutado con tu billetera {walletType}" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Try Again" +msgstr "Inténtalo de nuevo" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires adequate allowance for" +msgstr "La orden permanece abierta. La ejecución requiere una asignación adecuada para" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired" +msgstr "Su pedido ha caducado" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add custom hook" +msgstr "Añadir gancho personalizado" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve {symbol}" +msgstr "Aprobar {symbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be after {minDateStr} {timeZone}" +msgstr "Debe ser después de {minDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeRateDetails/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "Limit price" +msgstr "Limitar precio" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Buy" +msgstr "Comprar" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "is required" +msgstr "es obligatorio" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Operation in progress!" +msgstr "¡Operación en curso!" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Morpho Borrow hook enables users to seamlessly combine swaps with borrow-related actions. Users can enter new positions, leave existing ones, or move between different markets through a unified, streamlined process." +msgstr "El Morpho Borrow hook permite a los usuarios combinar perfectamente los swaps con las acciones relacionadas con los préstamos. Los usuarios pueden entrar en nuevas posiciones, dejar las existentes o moverse entre diferentes mercados a través de un proceso unificado y estirado." + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "When enabled, the orders table will be displayed on the left side on desktop screens. On mobile, the orders table will always be stacked below." +msgstr "Cuando se activa, la tabla de órdenes se mostrará en el lado izquierdo en las pantallas de escritorio. En móvil, la tabla de órdenes siempre se apilará a continuación." + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "View proposals" +msgstr "Ver propuestas" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Creating Order" +msgstr "Creando pedido" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Select" +msgstr "Seleccionar" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Confirm {orderType}" +msgstr "Confirmar {orderType}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Route" +msgstr "Ruta" + +#: apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx +msgid "Price impact due to current liquidity levels" +msgstr "Impacto del precio debido a los niveles actuales de liquidez" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount and bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Los costes de intercambio son al menos un {formattedFeePercentage}% de la cantidad de swap y los costes de bridge son al menos un {formattedBridgeFeePercentage}% de la cantidad de swap" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SlippageTooltip/index.tsx +msgid "MEV-protected slippage" +msgstr "Deslizamiento protegido por MEV" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {accountProxyLabelString}: <0/>" +#~ msgstr "Swap bridged via your {accountProxyLabelString}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "There was an error trying to load claimable tokens" +msgstr "Hubo un error al intentar cargar los tokens cobrables" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Learn" +msgstr "Aprender" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "This price is {displayedPercent}% lower than current market price. You could be selling your <0/> at a loss! Click on \"Market price\" to set your limit price to the current market price." +msgstr "Este precio es un {displayedPercent}% inferior al precio de mercado actual. ¡Usted podría estar vendiendo su <0/> con pérdida! Haga clic en \"Precio de mercado\" para fijar su precio límite al precio actual de mercado." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Continue swap with {wrappedSymbol}" +msgstr "Continuar el intercambio con {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Light mode" +msgstr "Modo claro" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The output token cannot be transferred. There may be an issue with the output token." +msgstr "El token de salida no puede ser transferido. Puede haber un problema con el token de salida." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and swap" +#~ msgstr "Approve and swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "The competition has started" +msgstr "La competición ha comenzado" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You will receive this price or better for your tokens." +msgstr "Recibirás este precio o mejor para tus tokens." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Add Hook" +msgstr "Añadir Hook" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "select" +msgstr "seleccionar" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Allow spending" +msgstr "Permitir gastos" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Reset favorites" +msgstr "Restablecer favoritos" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol} failed" +msgstr "No se pudo envolver {nativeSymbol}" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at most" +msgstr "como máximo" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "View on explorer" +msgstr "Ver en explorador" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "for" +msgstr "para" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "Default approve" +msgstr "Aprobar por defecto" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient balance on the current account." +msgstr "El pedido no puede ser llenado debido a un saldo insuficiente en la cuenta corriente." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "required" +msgstr "requerido" + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Wallet" +msgstr "Billetera" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Before costs" +msgstr "Antes de costes" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Market orders are always <0>Fill or kill, while limit orders are by default <1>Partially fillable, but can also be changed to <2>Fill or kill through your order settings." +msgstr "Las órdenes de mercado siempre son <0>Llenar o matar, mientras que las órdenes de límite son por defecto <1>Parcialmente rellenables, pero también se puede cambiar a <2>Rellenar o matar a través de la configuración de tu pedido." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The first part of your TWAP order will become active as soon as you confirm the order below." +msgstr "La primera parte de su pedido TWAP se activará tan pronto como confirme el pedido a continuación." + +#. js-lingui-explicit-id +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solver-rankings" +#~ msgstr "{0}" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +msgid "All orders" +msgstr "Todas las órdenes" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "If CoW Swap cannot get this price or better (taking into account fees and price protection tolerance), your TWAP will not execute. CoW Swap will <0>always improve on this price if possible." +msgstr "Si CoW Swap no puede obtener este precio o mejor (teniendo en cuenta las comisiones y la tolerancia de la protección del precio), su TWAP no se ejecutará. El Intercambio de Coca <0>siempre mejorará este precio si es posible." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "In order to protect your funds, you will need to remove the approval on this contract." +msgstr "Para proteger sus fondos, tendrá que retirar la aprobación de este contrato." + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Advanced" +msgstr "Avanzado" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Not yet supported" +msgstr "Aún no soportado" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Remove" +msgstr "Eliminar" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient allowance" +msgstr "El pedido no se puede completar debido a una asignación insuficiente" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "turn on expert mode" +msgstr "activar el modo experto" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient liquidity for this trade." +msgstr "Falta liquidez suficiente para este comercio." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Buying native currency with smart contract wallets is not currently supported" +msgstr "La compra de moneda nativa con billeteras con contrato inteligente no está soportada actualmente" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Expected to sell" +msgstr "Se espera vender" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "This is the minimum amount that you will receive." +msgstr "Esta es la cantidad mínima que recibirás." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claiming COW..." +msgstr "Reclamando COW..." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "continue with this swap" +msgstr "continuar con este intercambio" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Could not connect to the provided URL. Please check if the URL is correct and the server is accessible." +msgstr "No se pudo conectar a la URL proporcionada. Por favor, compruebe si la URL es correcta y el servidor es accesible." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Pending execution" +msgstr "Ejecución pendiente" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Place TWAP order" +msgstr "Hacer un pedido TWAP" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Reload page" +msgstr "Recargar página" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter a valid recipient" +msgstr "Introduzca un destinatario válido" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeEthFlowTx.ts +msgid "Failed to place order selling {nativeCurrencySymbol}" +msgstr "No se pudo realizar la venta de pedidos {nativeCurrencySymbol}" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "native" +msgstr "nativo" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "Your order will execute when the market price is {displayedPercent}% better than the current market price." +msgstr "Tu pedido se ejecutará cuando el precio de mercado sea {displayedPercent}% mejor que el precio de mercado actual." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover funds" +msgstr "Recuperar fondos" + +#: apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Cancel order" +msgstr "Cancelar orden" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Your order was created on this date & time. It will remain open until it expires or is filled." +msgstr "Su pedido fue creado en esta fecha y hora. Permanecerá abierto hasta que caduque o sea llenado." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm Swap" +msgstr "Confirmar intercambio" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Modified recipient address to" +msgstr "Dirección del destinatario modificada a" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#~ msgid "Something failed. Please try again later." +#~ msgstr "Something failed. Please try again later." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks..." +msgstr "Buscar ganchos..." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "{value} sec" +msgstr "{value} seg" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee recipient must be set!" +msgstr "¡El destinatario de la cuota de socio debe estar establecido!" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Unlock Enhanced Yield Features" +msgstr "Desbloquear características de Yield Mejorado" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Recover!" +msgstr "¡Recuperar!" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/EstimatedFillPrice/index.tsx +msgid "Estimated fill price" +msgstr "Precio estimado de relleno" + +#: apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx +msgid "Transaction failed" +msgstr "Transacción fallida" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Approve spending <0/> <1/> on CoW Swap" +msgstr "Aprobar gasto <0/> <1/> en el intercambio de CoW" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Status" +msgstr "Estado" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "higher" +msgstr "más alto" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "When locked, the limit price stays fixed when changing the amounts. When unlocked, the limit price will update based on the amount changes." +msgstr "Cuando está bloqueado, el precio límite se mantiene fijo al cambiar las cantidades. Cuando se desbloquea, el precio límite se actualizará en función de los cambios en la cantidad." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "For this order, network costs would be <0>{formattedFeePercentage}% (<1/>) of your sell amount! Therefore, your order is unlikely to execute." +msgstr "Para este pedido, los costes de red serían <0>{formattedFeePercentage}% (<1/>) de tu cantidad de venta. Por lo tanto, es poco probable que tu orden se ejecute." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are approving an amount equal to or greater than the input amount." +msgstr "Compruebe que está aprobando una cantidad igual o mayor que la cantidad introducida." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge cases." +msgstr "Dado que este contrato mantiene temporalmente los fondos, existe la posibilidad de que los fondos se atasquen en ciertos casos de riesgo." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "Best price found!" +msgstr "¡El mejor precio encontrado!" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridging succeeded" +msgstr "Bridging exitoso" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Tokens must be different" +msgstr "Las fichas deben ser diferentes" + +#: apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts +msgid "There is no provider to get Gnosis safe info" +msgstr "No hay ningún proveedor para obtener información segura de Gnosis" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Expired order" +msgstr "Orden caducada" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Successful" +msgstr "Simulación exitosa" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "Partial approval may block <0>{ordersWithPermitLength} other {orderWord}" +msgstr "La aprobación parcial puede bloquear <0>{ordersWithPermitLength} otras {orderWord}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Destination transaction" +msgstr "Transacción de destino" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are using a smart contract wallet" +msgstr "Porque está usando una billetera de contratos inteligentes" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/SwapStepRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Swap" +msgstr "Intercambiar" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Advanced users can create complex, conditional orders directly through CoW Protocol. Read the docs for more info." +msgstr "Los usuarios avanzados pueden crear pedidos complejos y condicionales directamente a través de CoW Protocol. Lea los documentos para más información." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click below to wrap your {nativeSymbol} to {wrappedSymbol} via an on-chain ERC20 transaction." +msgstr "Para continuar, haz clic abajo para envolver tu {nativeSymbol} a {wrappedSymbol} a través de una transacción ERC20 en cadena." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current bridge costs make up <0><1>{formattedBridgeFeePercentage}% of your swap amount." +msgstr "Los costes de puente actuales representan <0><1>{formattedBridgeFeePercentage}% de tu cantidad de intercambio." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "In range" +msgstr "En rango" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This hook is not compatible with smart contract wallets. It only supports EOA wallets." +msgstr "Este hook no es compatible con carteras de contratos inteligentes. Sólo soporta carteras EOA." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "Order expires" +msgstr "El orden expira" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "Minimum sell size" +msgstr "Tamaño mínimo de venta" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Min. to deposit" +msgstr "Mínimo de depósito" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "MEV is lethal these days!" +msgstr "¡MEV es letal en estos días!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "FREE" +msgstr "GRATIS" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Week" +msgstr "1 Semana" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Eth flow context is not ready" +msgstr "Contexto de flujo Eth no está listo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "There are no orders" +msgstr "No hay pedidos" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "ENS recipient not supported for Swap and Bridge. Use address instead." +msgstr "El destinatario de ENS no es compatible con Swap y Bridge. Utilice la dirección en su lugar." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures" +msgstr "Basta de firmas" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Legal" +msgstr "Legal" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "You will be prompted to <0>wrap your {nativeSymbol} to {wrappedSymbol} before placing your order." +msgstr "Se te pedirá <0>envolver tu {nativeSymbol} a {wrappedSymbol} antes de realizar tu pedido." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancelling {ordersCount} orders" +msgstr "Cancelando órdenes {ordersCount}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "User rejected signing COW claim transaction" +msgstr "Usuario rechazó la firma de la transacción de reclamo COW" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelled" +msgstr "Cancelado" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Invalid parameters" +msgstr "Parámetros no válidos" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "Small orders are unlikely to be executed" +msgstr "No es probable que se ejecuten órdenes pequeñas" + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "bought" +msgstr "comprado" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Cancellation transaction" +msgstr "Transacción de cancelación" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "{walletName} account changed" +msgstr "Cuenta {walletName} cambiada" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Value" +msgstr "Valor" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell" +msgstr "Ventas" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Longer limit orders - place orders for up to a year." +msgstr "Órdenes límite más largas - Realizar órdenes hasta un año." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "User rejected signing the cancellation" +msgstr "Usuario rechazó la firma de la cancelación" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Loading {accountProxyLabel}" +msgstr "Cargando {accountProxyLabel}" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Manage" +msgstr "Gestionar" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset {symbol} allowance to 0 before setting new spending cap" +msgstr "Restablecer límite de gasto de {symbol} a 0 antes de establecer un nuevo límite" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate Now" +msgstr "Delegar ahora" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try new limit orders now" +msgstr "Pruebe los nuevos pedidos de límite ahora" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Custom Tokens" +msgstr "Tokens personalizados" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a Uniswap v2 Weighted pool before the swap" +msgstr "Remueve la liquidez de una piscina pesada de Uniswap v2 antes del intercambio" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Hook version" +msgstr "Versión de Hook" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Spender" +msgstr "Gastos" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "<0>CoW Swap requires offline signatures, which is currently not supported by some wallets.<1>Read more in the <2>FAQ." +msgstr "<0>CoW Swap requiere firmas sin conexión, que actualmente no están soportadas por algunas billeteras. <1>Leer más en <2>Preguntas frecuentes." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order expired" +msgstr "Orden caducada" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulate" +msgstr "Simular" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Start time" +msgstr "Hora de inicio" + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Continue" +msgstr "Continuar" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +#~ msgid "CowSwap 404 not found" +#~ msgstr "CowSwap 404 not found" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "(also known as CoW Shed)" +msgstr "(también conocido como CoW Shed)" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx +msgid "Loading bridge data <0/>" +msgstr "Cargando datos de puente <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Sell" +msgstr "Vender" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Use the <0/> to see {currentTabText}" +msgstr "Usa el <0/> para ver {currentTabText}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower overall network costs" +msgstr "Costos de red inferiores" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "Ocurrió un error al intentar ejecutar este intercambio. Es posible que necesite aumentar la tolerancia al deslizamiento. Si eso no funciona, puede haber una incompatibilidad con el token que estás intercambiando. Nota: las comisiones en los tokens de transferencia y rebase son incompatibles con Uniswap V3." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If the balance remains insufficient at creation time, this order portion will not be created. Add more" +msgstr "Si el saldo sigue siendo insuficiente en tiempo de creación, esta porción del pedido no se creará. Añadir más" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Leverage advanced strategies for optimal growth" +msgstr "Aprovechar estrategias avanzadas para un crecimiento óptimo" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Try adjusting your search term or clearing the filter" +msgstr "Intenta ajustar tu término de búsqueda o borra el filtro" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "View List" +msgstr "Ver lista" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to any of the CoW AMM pools" +msgstr "Agrega liquidez a cualquiera de las piscinas CoW AMM" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Invalid proxy address" +msgstr "Dirección de proxy inválida" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert vCOW to COW" +msgstr "Convertir vCOW a COW" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Exec. price" +msgstr "Precio Ejec." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "You sold <0/>" +msgstr "Has vendido <0/>" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "Less" +msgstr "Menos" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim your LlamaPay vesting contract funds" +msgstr "Reclamar fondos de contrato de LlamaPay" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Est. bridge time <0/>" +msgstr "Est. hora de puente <0/>" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are providing a sufficient gas limit for the transaction in your wallet." +msgstr "Compruebe que está proporcionando un límite de gas suficiente para la transacción en su billetera." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrap {amountStr} {native} to {wrapped}" +msgstr "Envolver {amountStr} {native} a {wrapped}" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim COW Airdrop" +msgstr "Reclamar Airdrop COW" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was successfully cancelled." +msgstr "Su pedido fue cancelado con éxito." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "surplus cow" +msgstr "vaca excedente" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Post" +msgstr "Publicar" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Save changes" +msgstr "Guardar cambios" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract methods which do not operate optimally with CoW Protocol.<0>For more information, please refer to the <1>FAQ." +msgstr "CoW Swap no soporta todos los tokens. Algunos tokens implementan métodos de contrato similares pero lógicamente diferentes ERC20 que no funcionan óptimamente con CoW Protocol. <0>Para obtener más información, consulte las <1>Preguntas frecuentes." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Cancelling" +msgstr "Cancelar" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Distance to market" +msgstr "Distancia al mercado" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "Did you know?" +msgstr "¿Sabía usted?" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "Insufficient time between parts" +msgstr "Tiempo insuficiente entre partes" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." +#~ msgstr "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." + +#: apps/cowswap-frontend/src/common/pure/Stepper/index.tsx +msgid "checkmark" +msgstr "tilde" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote will be updated in {time}" +msgstr "La cotización se actualizará en {time}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Dark mode" +msgstr "Modo oscuro" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Bridge costs" +msgstr "Costes del puente" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "View cancellation" +msgstr "Ver cancelación" + +#: apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx +msgid "Loading" +msgstr "Cargando" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Limit" +msgstr "Límite" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm bridging" +msgstr "Confirmar puente" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and {defaultText}" +#~ msgstr "Approve and {defaultText}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "<0>COW vesting from the GNO lock is vested linearly over four years, starting on" +msgstr "<0>El COW vesting de GNO bloqueado se concede linealmente durante cuatro años, a partir de" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Part duration\" refers to the duration between each part of your TWAP order.<0/><1/>Choosing a shorter time allows for faster execution of each part, potentially reducing price fluctuations. Striking the right balance is crucial for optimal execution." +msgstr "La \"Duración de la pieza\" se refiere a la duración entre cada parte de su pedido TWAP.<0/><1/>Elegir un tiempo más corto permite una ejecución más rápida de cada pieza, reduciendo potencialmente las fluctuaciones de precios. Lograr el equilibrio correcto es crucial para una ejecución óptima." + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Hours" +msgstr "Horas" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Clear all" +msgstr "Limpiar todo" + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please click confirm to {action}." +msgstr "Por favor haz clic en confirmar a {action}." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Chain ID:" +msgstr "ID de cadena:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "What is {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "What is {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/steps/calculateUniqueOrderId.ts +msgid "Missing currency for Eth Flow Fee" +msgstr "Falta moneda por Eth Flow Flow" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Page not found!" +msgstr "Página no encontrada!" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Safe App License Fee" +msgstr "Tarifa de licencia segura" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "CowSwap Error" +msgstr "Error de CowSwap" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Customize your order size, expiration, and number of parts" +msgstr "Personalice el tamaño de su pedido, la caducidad y el número de partes" + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "{label} token bridge" +msgstr "Puente de tokens {label}" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is signed." +msgstr "El {operationLabel} está firmado." + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "The price impact is <0>{formattedPriceImpact}%. Consider breaking up your order using a <1>TWAP order and possibly get a better rate." +msgstr "El impacto de los precios es <0>{formattedPriceImpact}%. Considere dividir su pedido usando un <1>TWAP order y posiblemente obtener una mejor tarifa." + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "confirm" +msgstr "confirmar" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Back home" +msgstr "Volver a casa" + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +#~ msgid "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" +#~ msgstr "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refund started" +msgstr "Reembolso iniciado" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Close" +msgstr "Cerrar" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Execute Safe transaction" +msgstr "Ejecutar transacción segura" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Always review wallet requests carefully before approving." +msgstr "Revisar siempre las solicitudes de billetera con cuidado antes de aprobar." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw Uniswap v2 from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Reduce o retire Uniswap v2 de un pool antes de un intercambio de tokens que integre el proceso directamente en el flujo de transacción. Al ajustar su liquidez con antelación, usted gana más control sobre sus activos sin ningún paso adicional. Optimice su posición en un grupo, todo en una sola acción sin fisuras — sin necesidad de múltiples transacciones o complejidad añadida." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "2/2 Sign transaction" +msgstr "Transacción de signo 2/2" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "yield over average" +msgstr "rendimiento superior a la media" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Uh oh! The market price has moved outside of your slippage tolerance. You can wait for prices to change{cancellationModal}" +msgstr "¡Oh! El precio de mercado se ha movido fuera de tu tolerancia de deslizamiento. Puedes esperar a que los precios cambien {cancellationModal}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Entered amount is invalid" +msgstr "La cantidad introducida no es válida" + +#: libs/common-const/src/common.ts +msgid "Mev Slicer" +msgstr "Cortador de Mev" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Creation transaction" +msgstr "Creación de transacción" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. Partial approval may affect the execution of other orders. Adjust the amount or choose full approval to proceed." +msgstr "Hay {areIs} <0>{ordersWithPermitLength} existente {orderWord} usando una aprobación de token <1/>. La aprobación parcial puede afectar la ejecución de otras órdenes. Ajuste la cantidad o elija la aprobación completa para continuar." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add token" +msgstr "Añadir token" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Filled" +msgstr "Completo" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pool" +msgstr "pool" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: Path contains consecutive forward slashes" +msgstr "URL no válida: La ruta contiene barras de reenvío consecutivas" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "partially" +msgstr "parcialmente" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "View on Bridge Explorer ↗" +msgstr "Ver en Bridge Explorer ↗️" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient balance" +msgstr "Saldo insuficiente" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Bottom" +msgstr "Abajo" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Filled" +msgstr "Pedido completado" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid content type: Expected JSON but received {errorContentType}. Make sure the URL points to a valid manifest file." +msgstr "Tipo de contenido inválido: Se esperaba JSON pero se recibió {errorContentType}. Asegúrese de que la URL apunta a un archivo manifest válido." + +#: apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx +msgid "Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on {chainInfoLabel}, you must change the network in your wallet." +msgstr "No se pudo cambiar de redes desde la interfaz de intercambio de CoW. Para poder usar CoW Swap en {chainInfoLabel}, debes cambiar la red de tu billetera." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "out of" +#~ msgstr "out of" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Learn more" +msgstr "Aprende más" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap and bridge costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Los costos de intercambio y puente son por lo menos {formattedFeePercentage}% del monto de intercambio" + diff --git a/apps/cowswap-frontend/src/locales/ru-RU.po b/apps/cowswap-frontend/src/locales/ru-RU.po new file mode 100644 index 0000000000..8770e70723 --- /dev/null +++ b/apps/cowswap-frontend/src/locales/ru-RU.po @@ -0,0 +1,6177 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-08-22 15:17-0300\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ru\n" +"Project-Id-Version: intercambiovaca\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-11-07 18:59\n" +"Last-Translator: \n" +"Language-Team: Russian\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: intercambiovaca\n" +"X-Crowdin-Project-ID: 842798\n" +"X-Crowdin-Language: ru\n" +"X-Crowdin-File: /feat.internationalization-setup-for-swap-cow-fi/apps/cowswap-frontend/src/locales/en-US.po\n" +"X-Crowdin-File-ID: 11\n" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: " +#~ msgstr "Selected token: " + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "selected" +msgstr "выбрано" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "View token contract" +msgstr "Просмотр контракта на токен" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Signature is undefined!" +msgstr "Подпись не определена!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "I just received surplus on" +msgstr "Я только что получил излишки" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "years" +msgstr "лет" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Learn about surplus on CoW Swap" +msgstr "Узнайте об избытке на CoW Swap" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Retrieve COW tokens before or after a swap." +msgstr "Получить COW токены до или после подкачки." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Disconnect" +msgstr "Отключиться" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Bridge transaction" +msgstr "Мост транзакции" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Because you are using a smart contract wallet, you will pay a separate gas cost for signing the order placement on-chain." +msgstr "Так как вы используете смарт-контрактный кошелек, вы оплатите отдельную стоимость за подписание заказа по цепочке." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelled. Too many order cancellations" +msgstr "отменено. Слишком много отмены заказа" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Your Safe fallback handler was changed after TWAP orders were placed. All open TWAP orders are not getting created because of that. Please, update the fallback handler in order to make the orders work again." +msgstr "Ваш обработчик резервной копии был изменен после того, как заказы TWAP были размещены. Из-за этого все открытые заказы TWAP не создаются. Пожалуйста, обновите резервный обработчик для повторной работы заказов." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve operation failed." +msgstr "Не удалось утвердить операцию." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Set to trade" +msgstr "Сделка" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "To override this, enter your desired slippage amount.<0/><1/>Either way, your slippage is protected from MEV!" +msgstr "Чтобы переопределить это, введите сумму желаемого проскальзывания.<0/><1/>В любом случае, ваше проскальзывание защищено от MEV!" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient allowance on the current account." +#~ msgstr "Order cannot be filled due to insufficient allowance on the current account." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "Did you know? {benefit}\n\n" +"Start swapping on swap.cow.fi #CoWSwap @CoWSwap 🐮" +msgstr "Знаете ли вы? {benefit}\n\n" +"Начать смену на swap.cow.fi #CoWSwap @CoWSwap 🐮" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to permit an address to spend your tokens on your behalf. This is useful for allowing a smart contract to spend your tokens without needing to approve each transaction." +msgstr "Этот хук позволяет вам разрешать адрес тратить ваши токены от вашего имени. Это полезно для разрешения смарт-контракта тратить ваши токены без необходимости утверждения каждой транзакции." + +#: apps/cowswap-frontend/src/common/updaters/ConnectionStatusUpdater.tsx +msgid "<0>Connection Lost<1/>You appear to be offline. Some features may not work properly." +msgstr "<0>Потеря подключения<1/>Вы не в сети. Некоторые функции могут работать неправильно." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Total duration" +msgstr "Общая длительность" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrap {amountStr} {wrapped} to {native}" +msgstr "Разверните {amountStr} {wrapped} в {native}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +msgid "in progress" +msgstr "в процессе" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeWarning/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/index.tsx +msgid "Swap anyway" +msgstr "Все равно поменять" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The hash for this Safe transaction." +msgstr "Хэш для этой безопасной транзакции." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation failed" +msgstr "Сбой моделирования" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Order {value} filled" +msgstr "Заказ {value} выполнен" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your {tokenSymbol}. If you approve the default amount, you will only have to do this once per token." +msgstr "Вы должны предоставить разрешение на использование {tokenSymbol} для протокола CoW. Если вы подтвердите сумму по умолчанию, это необходимо будет сделать только один раз за токен." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receiving {nativeTokenSymbol} Refund..." +msgstr "Получение возврата {nativeTokenSymbol}..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Partially fillable" +msgstr "Частично заполненные" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/FiatBalanceCell.tsx +msgid "Value may be zero due to missing token price information" +msgstr "Значение может быть ноль из-за отсутствия информации о цене токена" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Type" +msgstr "Тип" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {resStatus}" +msgstr "Неожиданный ответ от BFF: {resStatus}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "orders history" +msgstr "история заказов" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Bridging failed" +msgstr "Подключение к мосту не удалось" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "What is {accountProxyLabel}?" +msgstr "Что такое {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Your activity will appear here..." +msgstr "Ваша активность появится здесь..." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Partially fillable)" +msgstr "(частично заполненные)" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try before you buy - see the potential fill price before you hit trade" +msgstr "Попробуйте перед покупкой - посмотрите потенциальную цену заполнить, прежде чем перейти к сделке" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol}" +msgstr "Перенос {nativeSymbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Order expires in" +msgstr "Заказ истекает через" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "Network costs (est.)" +msgstr "Сетевые расходы (оцен.)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The account address which will/did receive the bought amount." +msgstr "Адрес счета, который получит/получит купленную сумму." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#~ msgid "Selected token: {sym}" +#~ msgstr "Selected token: {sym}" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Unexpected error fetching data: wrong format data" +msgstr "Непредвиденная ошибка при получении данных: неверные данные формата" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "is a helper contract that improves the user experience within CoW Swap for features like" +msgstr "является вспомогательным контрактом, который улучшает пользовательский опыт в CoW Swap для таких функций, как" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To" +msgstr "Кому" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Are you sure you want to cancel order <0>{shortId}?" +msgstr "Вы уверены, что хотите отменить заказ <0>{shortId}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "My Custom Hooks ({customHooksCount})" +msgstr "Мои пользовательские хуки ({customHooksCount})" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order won't execute and is protected if the market price dips more than your set price protection." +msgstr "Ваш ордер на TWAP не будет выполнять и защищен в случае, если рыночная цена упадет больше, чем установленная вами защита от цен." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {statusText}. Your account is deny-listed." +msgstr "Заказ не может быть {statusText}. Ваша учетная запись запрещена в списке." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "The bridge provider modified the recipient address to <0/>. This ensure smooooth bridging." +msgstr "Провайдер мостов изменил адрес получателя на <0/>. Это обеспечивает плавный мостик." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation was successful. Your transaction is expected to succeed." +msgstr "Тендерная симуляция прошла успешно. Ожидается, что Ваша транзакция будет успешной." + +#: apps/cowswap-frontend/src/modules/injectedWidget/pure/WidgetParamsErrorsScreen/index.tsx +msgid "The are some errors with CoW Swap widget configuration" +msgstr "Это некоторые ошибки с конфигурацией виджета CoW Swap" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Provide liquidity" +msgstr "Обеспечение ликвидности" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PostHookButton/index.tsx +msgid "Add Post-Hook Action" +msgstr "Добавить действие после хука" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "The page you are looking for does not exist." +msgstr "Страница, которую вы ищете, не существует." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Start boooosting your yield!" +msgstr "Начните выдать свой доход!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "replaced" +msgstr "заменено" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge via" +msgstr "Мост через" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Trade your way - personalize the interface and customize your limit orders" +msgstr "Торгуйте своим способом - персонализируйте интерфейс и настройте лимитные ордера" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Supported networks:" +msgstr "Поддерживаемые сети:" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "EOA wallets" +msgstr "EOA кошельки" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Unwrapping {amountStr} {wrapped} to {native}" +msgstr "Перенос {amountStr} {wrapped} на {native}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Set any limit price and time horizon" +msgstr "Установите любую лимитную цену и время горизонта" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "token" +msgstr "токен" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Please, top up {symbol} balance or cancel the order." +msgstr "Пожалуйста, пополните баланс по {symbol} или отмените заказ." + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Easily set and manage your orders in USD" +msgstr "Легко настраивайте и управляйте заказами в USD" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Wrap {nativeSymbol}\" to try again." +msgstr "Нажмите \"Перенос {nativeSymbol}\", чтобы повторить попытку." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from inactive lists. Import specific tokens below or click Manage to activate more lists." +msgstr "Маркеры из неактивных списков. Импортируйте специальные токены ниже или нажмите кнопку Управление, чтобы активировать больше списков." + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +#~ msgid "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." +#~ msgstr "Order cannot be filled due to insufficient balance on the current account.<0/>Please, top up {inputAmountCurrencySymbol} balance or cancel the order." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "sell" +msgstr "продать" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "By connecting a wallet, you acknowledge that you have read, understood and agree to the interface’s <0>Terms & Conditions." +msgstr "Подключая кошелек, вы подтверждаете, что прочитали, поняли и соглашаетесь с <0>Условиями использования интерфейса." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "<0>By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one.<1><2>If you purchase a token from this list, you may not be able to sell it back." +msgstr "<0>Добавляя этот список, вы явно верите, что данные верны. Каждый может создать список, включая создание поддельных версий существующих списков и списков, которые претендуют на представление проектов, которые у них нет.<1><2>Если вы приобрели токен из этого списка, вы можете не продать его обратно." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#~ msgid "Your favorite saved tokens. Edit this list in your account page." +#~ msgstr "Your favorite saved tokens. Edit this list in your account page." + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "As soon as anything important or interesting happens, we will definitely let you know." +#~ msgstr "As soon as anything important or interesting happens, we will definitely let you know." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "SWAP order" +msgstr "Порядок SWAP" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "y" +msgstr "у" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "This is the current market price, including the fee." +msgstr "Это текущая рыночная цена, включая комиссию." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert to COW <0/>" +msgstr "Преобразовать в COW <0/>" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +msgid "Dismiss" +msgstr "Отклонить" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Open" +msgstr "Открыть" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Refund completed!" +msgstr "Возврат завершен!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "When" +msgstr "Когда" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "30 Minutes" +msgstr "30 минут" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "My CoW fortune cookie 🐮💬: \"{openFortuneText}\" \n\n" +" Get yours at swap.cow.fi @CoWSwap" +msgstr "Мой CoW печенье фортуны 🐮💬: \"{openFortuneText}\" \n\n" +" Получите себе по адресу swap.cow.fi @CoWSwap" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "amount per" +msgstr "сумма за" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging failed. Refund started..." +msgstr "Не удалось восстановить. Возврат начался..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Buy COW" +msgstr "Купить COW" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Reject" +msgstr "Отклонить" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "got" +msgstr "получил" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{sellTokenPart} for at least {buyTokenPart}" +msgstr "{sellTokenPart} для хотя бы {buyTokenPart}" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW..." +msgstr "Преобразование vCOW..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Run a simulation" +msgstr "Запуск симуляции" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "This CoW doesn't run away any more! Not from MEV!" +msgstr "Этот CoW больше не убегает! Не от MEV!" + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +#~ msgid "Recover funds from {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Recover funds from {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Max. swap slippage" +msgstr "Макс. перемещение проскальзывания" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "The sell amount per part of your TWAP order should be at least <0>$<1/>. Decrease the number of parts or increase the total sell amount." +msgstr "Сумма продажи на часть вашего TWAP ордера должна быть не менее <0>$<1/>. Уменьшите количество частей или увеличите общую сумму продажи." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Surplus" +msgstr "Избыточные" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place multiple orders using the same balance" +msgstr "Разместить несколько ордеров с одинаковым балансом" + +#: apps/cowswap-frontend/src/common/pure/ClickableAddress/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "View details" +msgstr "Детали" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "More" +msgstr "Ещё" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was cancelled" +msgstr "Ваш заказ был отменен" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Ninja Cow" +msgstr "Корова Ниндзя" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/FeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +msgid "Free" +msgstr "Бесплатно" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "Blocked Address" +msgstr "Заблокированный адрес" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Considering current network costs (<0><1/> per chunk), you could save more by reducing the number of parts or switch to a {swapOrderLink}." +msgstr "Принимая во внимание текущую стоимость сети (<0><1/> на чанк), вы можете сэкономить, уменьшив количество частей или переключившись на {swapOrderLink}." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit an address to spend one token on your behalf." +msgstr "Разрешите адрес тратить один токен на ваше имя." + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "sold" +msgstr "продано" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Unlike most other exchanges, CoW Swap doesn't charge you any fees if your trade fails." +msgstr "В отличие от большинства других обменных пунктов, CoW Swap не взимает комиссию в случае неудачной торговли." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Failed to parse date and time provided" +msgstr "Не удалось проанализировать дату и время" + +#: libs/common-const/src/common.ts +msgid "Only executed swaps incur fees." +msgstr "Только выполненные операции влекут за собой сборы за замену." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Sell amount" +msgstr "Сумма продажи" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Unfillable" +msgstr "Неизлечимый" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Request timed out. Please try again." +msgstr "Истекло время ожидания запроса. Попробуйте еще раз." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(modified)" +msgstr "(изменено)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Month" +msgstr "1 месяц" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "If you approve the full amount, you will only have to do this once per token." +msgstr "Если вы подтвердите полную сумму, то это нужно сделать только один раз за токен." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#~ msgid "Infinite permit an address to spend one token on your behalf." +#~ msgstr "Infinite permit an address to spend one token on your behalf." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging completed!" +msgstr "Мост завершен!" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +#~ msgid "Nothing new yet" +#~ msgstr "Nothing new yet" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "One-click convert, <0>boost yield" +msgstr "Преобразование в один клик, <0>Усиление урожая" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Name, symbol or address" +msgstr "Имя, символ или адрес" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "No chainId" +msgstr "Нет цепочки" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "h" +msgstr "ч" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "When selling {aNativeCurrency}, the minimum slippage tolerance is set to {minimumETHFlowSlippage}% or higher to ensure a high likelihood of order matching, even in volatile market conditions." +msgstr "При продаже {aNativeCurrency} минимальная допустимость проскальзывания установлена в {minimumETHFlowSlippage}% или выше, чтобы обеспечить высокую вероятность соответствия заказа, даже в неустойчивых рыночных условиях." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "If you believe this is an error, please send an email including your address to " +msgstr "Если вы считаете, что это ошибка, пожалуйста, отправьте письмо с вашим адресом на " + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "EthFlow contract ({actualContractAddress}) address don't match the expected address for chain {chainId} ({expectedContractAddress}). Please refresh the page and try again." +msgstr "Договор EthFlow ({actualContractAddress}) адрес не совпадает с ожидаемым адресом цепочки {chainId} ({expectedContractAddress}). Пожалуйста, обновите страницу и повторите попытку." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Receive (before fees)" +msgstr "Получать (перед сборами)" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "The recipient address you inputted had the chain prefix <0>{chainPrefixWarning}, which is not the expected for the network you are in." +msgstr "Введенный вами адрес получателя имеет префикс цепочки <0>{chainPrefixWarning}, что не является ожидаемым для сети, в которой вы находитесь." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "On CoW Swap, orders placed at the same time are" +msgstr "На CoW Swap, заказы, размещенные одновременно" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "for a total of" +msgstr "в общей сложности" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Sign (gas-free!) in your wallet..." +msgstr "Подпишитесь (бесплатно!) в вашем кошельке..." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "If your order has not been filled by this date & time, it will expire. Don't worry - expirations and order placement are free on CoW Swap!" +msgstr "Если ваш заказ не был исполнен к этой дате и времени, срок его действия истечет. Не волнуйтесь - срок действия и размещение заказов бесплатны на CoW Swap!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Only proceed if you trust this provider." +msgstr "Продолжайте только если доверяете этому поставщику." + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "View jobs" +msgstr "Просмотр заданий" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +msgid "Your favorite saved tokens. Edit this list in the <0>Tokens page." +msgstr "Ваши любимые сохраненные маркеры. Редактировать этот список на странице <0>Жетоны." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This is the minimum amount that you will receive across your entire TWAP order, assuming all parts of the order execute." +msgstr "Это минимальная сумма, которую вы получите по всему вашему заказу TWAP с учетом всех частей выполненного заказа." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Withdraw Liquidity" +msgstr "Вывод ликвидности AMM CoW" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Adding this app/hook grants it access to your wallet actions and trading information. Ensure you understand the implications." +msgstr "Добавление этого приложения/хука предоставляет ему доступ к действиям вашего кошелька и торговой информации. Убедитесь, что вы понимаете последствия." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "(View on Explorer)" +msgstr "(Просмотр в проводнике)" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Loading {ACCOUNT_PROXY_LABEL}" +#~ msgstr "Loading {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "The connection attempt failed. Please click try again and follow the steps to connect in your wallet." +msgstr "Попытка подключения не удалась. Пожалуйста, попробуйте еще раз и выполните шаги для подключения в вашем кошельке." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "CoW Shed setup is invalid!" +msgstr "Конфигурация CoW Shed недействительна!" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "COW token is not available on this network" +msgstr "COW токен недоступен в этой сети" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "CoW AMM only" +msgstr "Только CoW AMM" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Scheduled" +msgstr "Запланированный" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve and Swap" +msgstr "Одобрить и заменить" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "Limit order" +msgstr "Лимит ордер" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "Pool tokens" +msgstr "Токены пула" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Cancelling order" +msgstr "Отмена заказа" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "<0><1>Vested vCOW is the portion of your vCOW token balance, which is fully available to convert to COW token.<2>This includes any vCOW received through an <3>airdrop.<4>When converting your vested vCOW balance to COW, your entire vested balance will be converted." +msgstr "<0><1>Вложенный vCOW является частью баланса вашего vCOW токена, который полностью доступен для преобразования в COW токен. <2>Это включает в себя любой vCOW полученный через <3>Эирдроп.<4>При преобразовании оставшегося vCOW баланса в COW, весь вестренный баланс будет преобразован." + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown Hook" +msgstr "Неизвестный крюк" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Click to copy token contract address" +msgstr "Нажмите, чтобы скопировать адрес контракта токена" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Unsupported Token" +msgstr "Неподдерживаемый токен" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Limit price (incl. costs)" +msgstr "Ограниченная цена (включая стоимость)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Order receipt" +msgstr "Получение заказа" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW forum" +msgstr "CoW форум" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Signing..." +msgstr "Подпись..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" +#~ msgstr "CoW Swap is now live on Arbitrum, Base, Polygon, and Avalanche. Switch the network toggle in the nav bar for quick, cheap transactions" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "You don't have any {orderTabState} orders at the moment." +#~ msgstr "You don't have any {orderTabState} orders at the moment." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Price Position" +msgstr "Ограничить позицию цены" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Pre Hooks" +msgstr "Предкаты" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Maybe next time" +msgstr "Может быть, в следующий раз" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Can't find the pool you're looking for?" +msgstr "Не удается найти фонд, который вы ищете?" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Order recipient address differs from order owner!" +msgstr "Адрес получателя заказа отличается от адреса владельца заказа!" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Import intermediate token" +msgstr "Импорт промежуточного токена" + +#: libs/ui/src/pure/MenuBar/index.tsx +msgid "Language {locale} not found" +msgstr "Язык {locale} не найден" + +#: apps/cowswap-frontend/src/common/pure/ExternalSourceAlert/index.tsx +msgid "I understand" +msgstr "Я понимаю" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Partial approval" +msgstr "Частичное одобрение" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Safe bundle flow context is not ready" +msgstr "Контекст безопасного потока не готов" + +#: apps/cowswap-frontend/src/modules/tradeQuote/utils/getBridgeQuoteSigner.ts +msgid "No RPC provider available for chain ID: {chainId}" +msgstr "Нет доступного RPC-провайдера для идентификатора цепочки: {chainId}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Sell per part" +msgstr "Продать за часть" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable Hooks" +msgstr "Включить хуки" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim LlamaPay Vesting Hook" +msgstr "Заявить вестинг-хук LlamaPay" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Seamlessly swap your tokens into CoW AMM pools" +msgstr "Заморозить ваши токены в пулы AMM" + +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Overview" +msgstr "Общий обзор" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There are <0>{ordersWithPermitLenght} existing orders using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Loading operation" +msgstr "Операция загрузки" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: libs/common-const/src/common.ts +msgid "CoW Runner" +msgstr "CoW бегун" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 2" +msgstr "Предложение 2" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Signing" +msgstr "Подписание" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Already seen today's fortune? Return tomorrow for a fresh one!" +msgstr "Уже видели сегодняшнюю удачу? Вернитесь завтра!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures, <0>but not executed" +msgstr "Достаточно подписей, <0>но не выполнено" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Invalid order" +msgstr "Неправильный заказ" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sending {nativeTokenSymbol}" +msgstr "Отправка {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Menu.tsx +msgid "Tokens" +msgstr "Жетоны" + +#: apps/cowswap-frontend/src/legacy/components/Copy/CopyMod.tsx +#: apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copied" +msgstr "Скопировано" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "Can't find your token on the list?" +msgstr "Не удается найти ваш токен в списке?" + +#: apps/cowswap-frontend/src/modules/trade/pure/ReceiveAmountTitle/index.tsx +msgid "icon" +msgstr "иконка" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Cancelling order with id {shortId}:<0/><1>{summary}" +msgstr "Отмена ордера с id {shortId}:<0/><1>{summary}" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "Select {walletName} Account" +msgstr "Выберите аккаунт {walletName}" + +#: apps/cowswap-frontend/src/common/pure/UnsupportedNetworksText/index.tsx +msgid "Please connect your wallet to one of our supported networks." +msgstr "Пожалуйста, подключите ваш кошелек к одной из поддерживаемых сетей." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/TokenSearchResults/index.tsx +msgid "<0>Read our guide on how to add custom tokens." +msgstr "<0>Прочтите наше руководство о том, как добавить пользовательские токены." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Retry" +msgstr "Повторить" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The estimated time for the bridge transaction to complete." +msgstr "Ожидаемое время завершения операции по мосту." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "months" +msgstr "месяцы" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Delegate (v)COW" +msgstr "Делегат (v)COW" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "On CoW Swap, you can set limit orders for balances you don't have yet." +msgstr "В CoW Swap, вы можете установить лимит ордеров на остатки, которые у вас еще нет." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Day" +msgstr "1 день" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Smart contract" +msgstr "Умный контракт" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Switch Network" +msgstr "Переключить сеть" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "warning" +msgstr "предупреждение" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Available COW balance" +msgstr "Доступный баланс COW" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "Bridge explorer" +msgstr "Обозреватель мостов" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You possibly have other items to claim, but not Airdrops" +msgstr "Возможно, у вас есть другие вещи, но не Airdrops" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "APR" +msgstr "APR" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "CoW Protocol Explorer" +msgstr "Исследователь протоколов CoW" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools" +msgstr "бассейны" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Failed" +msgstr "Неудачный" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "The amount of extra tokens you get on top of your limit price." +msgstr "Количество дополнительных токенов вы получаете поверх лимитной цены." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "sandwich-icon" +msgstr "иконка сэндвича" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BridgingStatusHeader/index.tsx +msgid "Bridging to destination..." +msgstr "Перемотка к месту назначения..." + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low." +msgstr "Транзакция не может быть отправлена, так как истек крайний срок. Пожалуйста, проверьте, что срок совершения транзакции не является слишком низким." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Actions" +msgstr "Действия" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Min received (incl. costs)" +msgstr "Мин. получено (включая затраты)" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/index.tsx +msgid "Search name or paste address..." +msgstr "Поиск по названию или вставить адрес..." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Copy contract" +msgstr "Копировать контракт" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pools available to get yield on your assets!" +msgstr "доступные бассейны, чтобы получить доходность на ваших активах!" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/index.tsx +msgid "Confirm" +msgstr "Подтвердить" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Total vCOW balance" +msgstr "Общий баланс vCOW" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported token" +msgstr "Неподдерживаемый токен" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approved" +msgstr "Одобрено" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "failed" +msgstr "не удалось" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "Airdrop token chain ({tokenToClaimChainId}) and airdrop contract chain ({airdropChainId}) should match" +msgstr "Цепочка токенов Airdrop ({tokenToClaimChainId}) и цепочка контракта воздушного падения ({airdropChainId}) должны совпадать" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Protection from MEV by default" +msgstr "Защита от MEV по умолчанию" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too long" +msgstr "Время интервала слишком длинное" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "to save on costs!" +msgstr "чтобы сэкономить деньги!" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Swaps not supported" +msgstr "Замена не поддерживаются" + +#: apps/cowswap-frontend/src/common/hooks/useMultipleOrdersCancellation/useCancelMultipleOrders.ts +msgid "Some orders can not be cancelled!" +msgstr "Некоторые заказы не могут быть отменены!" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Orders history" +msgstr "История заказов" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +msgid "You must give the CoW Protocol smart contracts permission to use your <0/>." +msgstr "Вы должны предоставить разрешение на использование вашего <0/>." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "any token into CoW AMM pools to start benefiting from attractive APRs." +msgstr "любой токен в пулы AMM CoW для того, чтобы начать пользоваться привлекательными APR." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "You don't have any {orderStatusText} orders at the moment." +msgstr "В данный момент у вас нет ордеров {orderStatusText}." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong. But don't worry! <0>CoW Swap solvers are searching again for the best price for you." +msgstr "Что-то пошло не так. Но не волнуйтесь! <0>CoW Swap решения снова ищет лучшую цену." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "your orders" +msgstr "ваши заказы" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Symbol" +msgstr "Символ" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge transaction costs." +msgstr "Стоимость трансакции моста." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/DeadlineSelector/index.tsx +msgid "Custom" +msgstr "Свой" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Est. partial fill price" +msgstr "Цена частичного заполнения" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "Partial approval may block <0>{ordersWithPermitLenght} other orders" +#~ msgstr "Partial approval may block <0>{ordersWithPermitLenght} other orders" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +msgid "Loaded" +msgstr "Загружено" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient <0/> balance" +msgstr "Недостаточно <0/> баланса" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Claim LlamaPay Vesting Hook is a powerful and user-friendly feature designed to streamline the process of claiming funds from LlamaPay vesting contracts. This tool empowers users to easily access and manage their vested tokens, ensuring a smooth and efficient experience in handling time-locked assets." +msgstr "Claim LlamaPay Vesting Hook - это мощная и удобная для пользователя функция, предназначенная для упорядочения процесса получения средств на основе вестинговых контрактов LlamaPay. Этот инструмент позволяет пользователям легко получить доступ к своим собственным токенам и управлять ими, обеспечивая бесперебойный и эффективный опыт работы с заблокированными на время активами." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Open" +msgstr "Открыть заказ" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "View contract" +msgstr "Просмотр контракта" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Only \"sell\" orders are supported" +msgstr "Только \"продающие\" ордера поддерживаются" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Surplus received" +msgstr "Излишки получены" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signature is" +msgstr "подпись" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook can only be used as a <0>{hookType}-hook" +msgstr "Это приложение/хук может быть использовано только как <0>{hookType}-hook" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Place limit order" +msgstr "Разместить лимитный ордер" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Insufficient {symbol} balance" +msgstr "Недостаточно баланса {symbol}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "This hook is not compatible with your wallet" +msgstr "Этот хук несовместим с вашим кошельком" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started with limit orders" +msgstr "Начните с лимитных ордеров" + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "Minimize price impact with TWAP" +msgstr "Свернуть влияние на цены с помощью TWAP" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to set partial token approvals instead of full approvals." +msgstr "Позволяет устанавливать частичные одобрения токенов вместо полного одобрения." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Switch to {wrappedNativeSymbol}" +msgstr "Переключиться на {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +#~ msgid "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" +#~ msgstr "Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chain}" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "creating" +msgstr "создание" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Permit a token" +msgstr "Разрешить токен" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Claimable amount" +msgstr "Зависимая сумма" + +#: apps/cowswap-frontend/src/modules/governance/pure/GovernanceList/index.tsx +msgid "Proposal 1" +msgstr "Предложение 1" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "Select an {accountProxyLabelString} to check for available refunds {chain}" +msgstr "Выберите {accountProxyLabelString} для проверки доступных возвратов средств {chain}" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Unsupported wallet" +msgstr "Неподдерживаемый кошелёк" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Expanded results from inactive Token Lists" +msgstr "Расширенные результаты из неактивных списков токенов" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks match your search." +msgstr "Нет хуков, соответствующих вашему запросу." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "New to decentralised applications?" +msgstr "Новые приложения на децентрализованные?" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Begin with TWAP Today!" +msgstr "Начните с TWAP сегодня!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Gas-free" +msgstr "Без газа" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "5 Minutes" +msgstr "5 минут" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Share this win!" +msgstr "Поделитесь этой победой!" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Create Order" +msgstr "Создать заказ" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Want to try out limit orders?" +msgstr "Хотите попробовать лимитные ордеры?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "smart contracts (e.g. Safe)" +msgstr "смарт-контракты (например, Safe)" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Quote refresh in" +msgstr "Обновление квоты через" + +#: apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Account" +msgstr "Аккаунт" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders are now easier to use. <0/> Give them a try" +msgstr "Ограничение ордеров теперь проще использовать. <0/> Попробуй" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Create an issue on GitHub" +msgstr "Создать задачу на GitHub" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap has over 20 active solvers - more than any other exchange." +msgstr "CoW Swap имеет более 20 активных решений - больше, чем любой другой обмен." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Cookie Policy" +msgstr "Политика cookie" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be more than {PARTNER_FEE_MAX_BPS} BPS!" +msgstr "Партнерская комиссия не может быть больше, чем {PARTNER_FEE_MAX_BPS} BPS!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokensContent/index.tsx +msgid "Manage Token Lists" +msgstr "Управление списками токенов" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "No results found" +msgstr "Ничего не найдено" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted. Too many order placements" +msgstr "принято. Слишком много размещений заказов" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Unknown token" +msgstr "Неизвестный токен" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "Read more about the tokenomics" +msgstr "Подробнее о tokenomics" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and got an extra " +msgstr "и получил дополнительный " + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "s" +msgstr "с" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Cancelled" +msgstr "Заказ отменен" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +msgid "Please contact CoW Swap support!" +msgstr "Обратитесь в службу поддержки CoW Swap!" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "CoW AMM" +msgstr "CoW AMM" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "Too much time between parts" +msgstr "Слишком много времени между частями" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +msgid "Swap and Bridge" +msgstr "Поменять местами" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "POST" +msgstr "ПОСТ" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "1/2 Confirm funds recovering" +msgstr "1/2 Подтверждение возврата средств" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Share on Twitter" +msgstr "Поделиться в Twitter" + +#: apps/cowswap-frontend/src/common/pure/CurrencyArrowSeparator/index.tsx +#~ msgid "loading" +#~ msgstr "loading" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Allows you to choose a destination address for the swap other than the connected one." +msgstr "Позволяет вам выбрать адрес назначения для замены, отличной от подключенного адреса." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Your account is affected by the AnySwap Hack" +msgstr "На Вашу учетную запись влияет AnySwap Hack" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW vesting from locked GNO" +msgstr "COW вестинг от заблокированного GNO" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Limit price (incl.costs)" +msgstr "Ограничить цену (включая затраты)" + +#: apps/cowswap-frontend/src/modules/twap/containers/SetupFallbackHandlerWarning/index.tsx +msgid "Update fallback handler" +msgstr "Обновить резервный обработчик" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Please read more in this" +msgstr "Подробнее в этом" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee" +msgstr "Bungee" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/FilledField.tsx +msgid "of" +msgstr "из" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "Error {verb} the order" +msgstr "Ошибка {verb} заказа" + +#: libs/common-const/src/common.ts +msgid "CoW Swap | The smartest way to trade cryptocurrencies" +msgstr "CoW Swap | Умный способ торговли криптовалютами" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "this order" +msgstr "этот заказ" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "or" +msgstr "или" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "A minimum of <0>{time} between parts is required. Decrease the number of parts or increase the total duration." +msgstr "Между частями требуется минимум <0>{time}. Уменьшите количество частей или увеличьте общую длительность." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "Remove list" +msgstr "Удалить список" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "Help Center" +msgstr "Центр поддержки" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee is a liquidity marketplace that lets you swap into any token on any chain in a fully abstracted manner. Trade any token with the best quotes and a gasless UX!" +msgstr "Bungee - это торговая площадка ликвидности, которая позволяет вам обменять любой токен на любой цепи полностью абстрагированным. Торгуйте любым фокином!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Market price" +msgstr "Рыночная цена" + +#: apps/cowswap-frontend/src/common/pure/CurrencyInputPanel/CurrencyInputPanel.tsx +msgid "Max" +msgstr "Макс" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +msgid "Approve, Swap & Bridge" +msgstr "Утверждение, замена и мост" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Get the Time-Weighted Average Price by splitting your large order into parts" +msgstr "Получите среднюю цену с учетом времени, разбив ваш крупный ордер на части" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The bad news" +msgstr "Плохая новость" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Solver auction rankings" +msgstr "Рейтинг по выбору аукциона" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +#~ msgid "Follow these steps" +#~ msgstr "Follow these steps" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order will either be filled completely or not filled." +msgstr "Этот ордер будет исполнен либо полностью, либо не будет выполнен." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "On-chain cancellations require a regular on-chain transaction and cost gas." +msgstr "Отмена через цепь требует регулярных операций по цепочке и затрат на газ." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap failed" +msgstr "Обмен не удался" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Didn't find a suitable hook? You can always create your own! To do this, you need to specify which smart contract you want to call, the parameters for the call and the gas limit." +msgstr "Не нашли подходящий хук? Вы всегда можете создать свой собственный! Для этого необходимо указать, какой смарт-контракт вы хотите вызвать, параметры вызова и газовый лимит." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to WETH" +msgstr "Переключиться на WETH" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Great!" +msgstr "Отлично!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "View your private {accountProxyLabelString}" +msgstr "Просмотреть вашу личную {accountProxyLabelString}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Hey, I just {actionWord} an extra {surplus} on @CoWSwap! 🐮💸\n\n" +"Start swapping on swap.cow.fi" +msgstr "Эй, я просто {actionWord} еще {surplus} на @CoWSwap! 🐮💸\n\n" +"Начать смену swap.cow.fi" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect Wallet" +msgstr "Подключить кошелек" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "View all orders" +msgstr "Просмотреть все заказы" + +#: apps/cowswap-frontend/src/modules/accountProxy/consts.ts +msgid "Need help" +msgstr "Нужна помощь" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "CoW Swap is the only token exchange that gets you extra tokens." +msgstr "CoW Swap - это единственная биржа токенов, которая дает вам дополнительные токены." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Unvested" +msgstr "Невестный" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "(v)COW balance" +msgstr "(v)Баланс COW" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Closed" +msgstr "Закрыто" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "CoW Swap 404 not found" +msgstr "CoW Swap 404 не найден" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Apply" +msgstr "Применить" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Price Updated" +msgstr "Цена обновлена" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Enter a hook dapp URL" +msgstr "Введите URL-адрес dapp для хука" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Total fee" +msgstr "Общая сумма" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "Recoverable balance" +msgstr "Восстановленный баланс" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid hook dapp ID format. The ID must be a 64-character hexadecimal string." +msgstr "Недопустимый формат идентификатора hook dapp. Идентификатор должен быть 64-символьной шестнадцатеричной строкой." + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Select custom token" +msgstr "Выберите пользовательский токен" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "dropdown icon" +msgstr "значок раскрывающегося списка" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import List" +msgstr "Список импорта" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "TWAP orders currently require a Safe with a special fallback handler. Have one? Switch to it! Need setup? <0>Click here. Future updates may extend wallet support!" +msgstr "На данный момент ордера TWAP требуют сейфа со специальным резервным обработчиком. Его? Перейти к нему! Нужна настройка? <0>Нажмите здесь. Будущие обновления могут расширить поддержку кошелька!" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap was the first DEX to offer intent-based trading, gasless swaps, coincidences of wants, and many other DeFi innovations." +msgstr "CoW Swap стал первым детектором, предлагающим основанные на намерениях торговые операции, бесгазные свопы, коинциденты с нулями и многие другие инновации в области DeFi." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient!" +msgstr "Одобрение суммы недостаточно!" + +#: apps/cowswap-frontend/src/modules/bridge/constants.ts +msgid "Bridging feature is exclusively operated by the indicated third party. Please review their terms." +msgstr "Функция мостов управляется исключительно указанной третьей стороной. Пожалуйста, ознакомьтесь с их условиями." + +#: libs/ui/src/pure/ContextMenu/ContextMenuCopyButton.tsx +msgid "Copy address" +msgstr "Копировать адрес" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "The limit price" +msgstr "Предельная цена" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Creating" +msgstr "Создание" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Increase Value" +msgstr "Увеличить значение" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListsTabs/index.tsx +msgid "All Hooks ({allHooksCount})" +msgstr "Все хуки ({allHooksCount})" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0/> <1><2/> for trading" +msgstr "Утверждение <0/> <1><2/> для торговли" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw liquidity from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Уменьшение или вывод ликвидности из пула до того, как замена токена интегрирует процесс непосредственно в транзакционный поток. Заблаговременно корректируя ликвидность, вы получаете больше контроля над своими активами без каких-либо дополнительных шагов. Оптимизировать свою позицию в пуле, все в одном бесшовном действии — без необходимости нескольких транзакций или дополнительной сложности." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This price is taken from external sources and may not accurately reflect the current on-chain price." +msgstr "Эта цена берется из внешних источников и может неточно отражать текущую цену в цепочке." + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Now is the time to take some action!" +msgstr "Пришло время предпринять какие-то действия!" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Swap order filled" +msgstr "Заказ на замену выполнен" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Let's slice some" +msgstr "Давай разобрать несколько" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Cancellation failed" +msgstr "Отмена не удалась" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Pool address" +msgstr "Адрес фонда" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Initiating {nativeTokenSymbol} Refund..." +msgstr "Начало возврата {nativeTokenSymbol}..." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance." +msgstr "баланс." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Fee tier" +msgstr "Размер комиссии" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Make the modification when placing order" +msgstr "Сделать изменения при размещении заказа" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Limit orders, but <0>s-moooo-ther than ever" +msgstr "Ограничить приказы, но <0>s-moo-ther как никогда" + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW contract not present" +msgstr "Отсутствует договор vCOW" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Unknown" +msgstr "Неизвестен" + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +msgid "Wallet Address or ENS name" +msgstr "Адрес кошелька или название ENS" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "Min. to receive" +msgstr "Мин. для получения" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No unfillable orders" +msgstr "Нет незаполненных ордеров" + +#: libs/common-utils/src/tooltips.ts +msgid "This accounts for the current price and the slippage tolerance ({allowedSlippagePercentage}%). If the price moves beyond the slippage tolerance, you won't trade but also you won't pay any fees or gas." +msgstr "Это составляет текущую цену и допустимость проскальзывания ({allowedSlippagePercentage}%). Если цена переходит за пределы допустимого проскальзывания, вы не будете торговать, а также вы не будете платить никаких сборов и газа." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "No fees for failed transactions" +msgstr "Нет комиссий за неудачные транзакции" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across" +msgstr "Вся" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order type" +msgstr "Тип ордера" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "Learn more." +msgstr "Узнать больше." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +msgid "Active" +msgstr "Активный" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Clear selection" +msgstr "Очистить выделенное" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "accepted" +msgstr "принят" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "TVL" +msgstr "TVL" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Unlimited one-time" +msgstr "Неограниченное единоразовое" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use Safe web app" +msgstr "Безопасное веб-приложение" + +#: apps/cowswap-frontend/src/modules/orders/pure/ReceiverInfo/index.tsx +msgid "Receiver" +msgstr "Приемник" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "An order’s actual execution price will vary based on the market price and network costs." +msgstr "Фактическая цена ордера будет варьироваться в зависимости от рыночной цены и сетевых затрат." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "You have already claimed this airdrop" +msgstr "Вы уже получили этот воздух" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancel multiple orders: {ordersCount}" +msgstr "Отменить несколько заказов: {ordersCount}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap my {nativeSymbol} and swap" +msgstr "Перенос моих {nativeSymbol} и подкачки" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Read more about limit orders" +msgstr "Подробнее о лимитных ордерах" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Your Safe is not connected with a signer.<0/>To place an order, you must connect using a signer of this Safe." +msgstr "Ваш сейф не связан с подписчиком.<0/>Чтобы разместить заказ, вы должны соединиться с помощью подписчика этого сейфа." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +msgid "on" +msgstr "вкл" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive at least" +msgstr "Получить по крайней мере" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap trades are protected from MEV, so your slippage can't be exploited!" +msgstr "CoW Swap сделки защищены от MEV, поэтому ваше проскальзывание не может быть использовано!" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "This is an" +msgstr "Это" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Something went wrong creating your order" +msgstr "Что-то пошло не так при создании заказа" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance." +msgstr "Эта транзакция не увенчается успехом либо из-за изменения цены или комиссии. Попробуйте увеличить допустимое отклонение от проскальзывания." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Volume (24h)" +msgstr "Объем (24ч)" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order partially filled" +msgstr "Частично заполненный заказ" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Time to create a new one!" +msgstr "Пришло время создать новый!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +msgid "View on bridge explorer" +msgstr "Просмотр в обозревателе мостов" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "or send us an email at" +msgstr "или отправьте нам письмо на" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +#~ msgstr "CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "The minimum possible outcome after swap, including costs and slippage." +msgstr "Минимальный возможный результат после подмены, включая расходы и проскальзывание." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The estimated amount you'll receive after estimated network costs and the max slippage setting" +msgstr "Ориентировочная сумма, которую вы получите после оценки стоимости сети и установки максимального проскальзывания" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Run! ...and try not getting sandwiched" +msgstr "Выполнить! ...и старайтесь не получать бутерброды" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Wrap your {nativeSymbol} and use the classic {wrappedSymbol} experience!" +msgstr "Отредактируйте {nativeSymbol} и используйте классический опыт {wrappedSymbol}!" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Languages" +msgstr "Языки" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom deadline" +msgstr "Установить свой срок" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "WalletConnect" +msgstr "Подключение к кошельку" + +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +msgid "<0>Note: {symbol} specifically requires 2 approval transactions. The first resets your spending cap to 0, and the second sets your desired spending cap. To avoid this in the future, set your spending cap to CoW Swap's recommended default amount." +msgstr "<0>Примечание: {symbol} специально требует 2 транзакции утверждения. Первый сбрасывает ваш лимит на 0, а второй устанавливает лимит на ваши расходы. Чтобы избежать этого в будущем, установите ваш лимит расходов на рекомендованную по умолчанию сумму капсулы." + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Earn higher returns with reduced impermanent loss" +msgstr "Заработайте больше возвратов с уменьшенными потерями" + +#: apps/cowswap-frontend/src/modules/swap/containers/BottomBanners/index.tsx +msgid "Funds stuck? <0>Recover your funds" +msgstr "Сделки средств? <0>Восстановить средства" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Maximizing Your Gains!" +msgstr "Увеличивает ваши доходы!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Revoke {tokenSymbol} approval" +msgstr "Отозвать одобрение {tokenSymbol}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Use the <0/> to see {orderTabLink}" +#~ msgstr "Use the <0/> to see {orderTabLink}" + +#: apps/cowswap-frontend/src/legacy/components/AppziButton/index.tsx +msgid "Provide Feedback" +msgstr "Оставить отзыв" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solvers" +#~ msgstr "solvers" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token supports gas-free approvals. Enjoy! 🐮" +msgstr "Этот токен поддерживает одобрения, свободные от газа. Наслаждайтесь! 🐮" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Wallet support" +msgstr "Поддержка кошелька" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refunding" +msgstr "Возврат средств" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeOnChainCancellation.ts +msgid "Failed to cancel order selling {sellTokenSymbol}" +msgstr "Не удалось отменить продажу заказа {sellTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Slippage tolerance" +msgstr "Допустимость проскальзывания" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Calldata" +msgstr "Данные звонков" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe nonce" +msgstr "Легко" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/index.tsx +msgid "Connect a wallet" +msgstr "Подключить кошелек" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Create a pool" +msgstr "Создать пул" + +#: apps/cowswap-frontend/src/common/hooks/useUnsupportedNetworksText.tsx +#~ msgid "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" +#~ msgstr "Please connect your wallet to one of our supported networks:<0/>{chainLabels}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click SWAP below to use your existing {wrappedSymbol} balance and trade." +msgstr "Чтобы продолжить, нажмите SWAP ниже, чтобы использовать существующий баланс и торговую операцию {wrappedSymbol}." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Effortless Airdrop Claims! The Claim COW Airdrop feature simplifies the process of collecting free COW tokens before or after your swap, seamlessly integrating into the CoW Swap platform. Whether you're claiming new airdrops or exploring CoW on a new network, this tool ensures you get your rewards quickly and easily." +msgstr "Усилительные Утерянные Утерянные Утерян! Функция Claim COW Airdrop упрощает процесс сбора бесплатных COW токенов до или после подкачки, что позволяет легко интегрироваться в платформу CoW Swap. Независимо от того, претендуете ли вы на новые авиабилеты или изучаете CoW в новой сети, этот инструмент обеспечит вам быстрое и легкое получение вознаграждения." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol}" +msgstr "Утвердить {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Replaced" +msgstr "Заменено" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#~ msgid "dynamic'" +#~ msgstr "dynamic'" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "MEV Slicer" +msgstr "Слизень MEV" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelling..." +msgstr "Отмена..." + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order cancelled" +msgstr "Заказ отменен" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Expired before creation" +msgstr "Истек до создания" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "Use your (v)COW balance to vote on important proposals or participate in forum discussions." +msgstr "Используйте свой (v)COW баланс для голосования по важным предложениям или участия в дискуссиях на форуме." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Collapse" +msgstr "Свернуть" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "minutes" +msgstr "минуты" + +#: apps/cowswap-frontend/src/common/containers/InvalidLocalTimeWarning/index.tsx +msgid "Local device time is not accurate, CoW Swap most likely will not work correctly. Please adjust your device's time." +msgstr "Локальное время устройства неточно, CoW Swap скорее всего не будет работать корректно. Пожалуйста, настройте время вашего устройства." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridging via" +msgstr "Мост через" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "d" +msgstr "д" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Creating..." +msgstr "Создание..." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are externally hosted code which needs to be independently verified by the user." +msgstr "{typeLabel} хуки - это код, размещенный на внешних серверах, который должен быть самостоятельно проверен пользователем." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires sufficient balance." +msgstr "Постановление остается открытым." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approval amount insufficient for input amount." +msgstr "Одобрение недостаточное для ввода суммы." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "and" +msgstr "и" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Waiting for confirmation." +msgstr "Ожидает подтверждения." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap" +msgstr "Сохраненный перевод долгов" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "COW token" +msgstr "COW токен" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "so we can investigate the problem." +msgstr "чтобы мы могли исследовать проблему." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "(via WalletConnect)" +msgstr "(через WalletConnect)" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "<0>Select an {accountProxyLabelString} and then select a token you want to recover from CoW Shed." +msgstr "<0>Выберите {accountProxyLabelString} и затем выберите токен, который вы хотите восстановить из CoW Shed." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. Try again later." +msgstr "Ошибка загрузки цены. Повторите попытку позже." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Trying to claim without claim data" +msgstr "Попытка востребовать без данных о претензиях" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "CoW Hooks" +msgstr "CoW хуки" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "up" +msgstr "вверх" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Sign the {operationLabel} with your wallet." +msgstr "Подпишите {operationLabel} через ваш кошелек." + +#: apps/cowswap-frontend/src/common/pure/AddressInputPanel/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "Recipient" +msgstr "Получатель" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Swap with {symbol}" +#~ msgstr "Swap with {symbol}" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +msgid "Reset USDT allowance to 0 before setting new spending cap" +msgstr "Сброс USDT разрешения на 0 перед установкой новой капилки расходов" + +#: apps/cowswap-frontend/src/modules/notifications/containers/ConnectTelegram.tsx +#~ msgid "Enable notifications" +#~ msgstr "Enable notifications" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +msgid "Warning sign. Wallet not supported" +msgstr "Предупреждающий знак. Кошелёк не поддерживается" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Show progress" +msgstr "Показать прогресс" + +#: apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts +msgid "Mooo, we're hiring!" +msgstr "Муу, мы нанимаем!" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience.<0/><1/>The fee is {partnerFeeBps} BPS ({feeAsPercent}%), applied only if the trade is executed." +msgstr "Эта комиссия помогает оплатить техническое обслуживание и улучшение торгового опыта. <0/><1/>Комиссия составляет {partnerFeeBps} BPS ({feeAsPercent}%), применяется только при выполнении сделки." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Share this" +msgstr "Поделиться" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/index.tsx +msgid "Review limit order" +msgstr "Обзор лимитного ордера" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "Trade Smart, Save More!" +msgstr "Торгуйте умно, экономьте больше!" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "available for your {poolName} pool" +msgstr "доступно для вашего пула {poolName}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Native" +msgstr "Родной" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/GlobalContent/index.tsx +msgid "Pool analytics" +msgstr "Аналитика пула" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/DeadlineTransactionSettings/index.tsx +msgid "Swap deadline" +msgstr "Сроки замены" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be only sufficient for<0>up to {txsRemaining} wrapping, unwrapping, or approval operation(s)." +msgstr "По текущим ценам на газ ваш оставшийся баланс {nativeSymbol} после подтверждения может быть достаточен только для<0>до {txsRemaining} операции(й) обертывания, развёртывания или подтверждения." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees." +msgstr "Цена этого пула находится за пределами выбранного вами диапазона. Ваша позиция в настоящее время не взимает плату за заработок." + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "days" +msgstr "дней" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "This hook is compatible with {compatibleWith}." +msgstr "Этот хук совместим с {compatibleWith}." + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridge" +msgstr "Мост" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Connecting..." +msgstr "Подключение..." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Pre" +msgstr "Пре" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/constants.ts +msgid "(v)COW token holders are eligible for a fee discount" +msgstr "(v)Держатели COW токенов имеют право на скидку" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Error connecting" +msgstr "Ошибка при подключении" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Trade" +msgstr "Торговля" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Context is not full to cancel TWAP order" +msgstr "Контекст не полон для отмены TWAP ордера" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "Receive (incl. costs)" +msgstr "Получить (включая затраты)" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Sent {nativeTokenSymbol}" +msgstr "Отправлено {nativeTokenSymbol}" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Since TWAP orders consist of multiple parts, prices are expected to fluctuate. However, to protect you against bad prices, CoW Swap will not execute your TWAP if the price dips below this percentage." +msgstr "Поскольку ордера TWAP состоят из нескольких частей, цены должны меняться. Однако, чтобы защитить вас от плохих цен, CoW Swap не выполнит ваш TWAP, если цена упадет ниже этого процента." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "are" +msgstr "являются" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time before your total TWAP order ends." +msgstr "Время, предшествующее полной TWAP заказы, заканчивается." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Unsupported network. Please change to Gnosis Chain" +msgstr "Неподдерживаемая сеть. Пожалуйста, измените на цепь Gnosis" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Debug Step:" +msgstr "Шаг отладки:" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +msgid "Your order may not fill exactly when the market price reaches your limit price." +msgstr "Ваш ордер не может быть заполнен, когда рыночная цена достигнет лимитной цены." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "BEFORE" +msgstr "ДО" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "View your private {ACCOUNT_PROXY_LABEL}" +#~ msgstr "View your private {ACCOUNT_PROXY_LABEL}" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "BFF did not return a price for '{currencyAddress}' on chain '{currencyChainId}'" +msgstr "ДФФ не вернул цену за '{currencyAddress}' в цепочке '{currencyChainId}'" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This tool helps you recover your funds." +msgstr "Этот инструмент поможет вам восстановить ваши средства." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Transaction completed" +msgstr "Транзакция завершена" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "Your Safe needs a modification" +msgstr "Ваш Сейф нуждается в модификации" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "{orderType} {orderKind} order" +msgstr "{orderType} {orderKind} заказ" + +#: apps/cowswap-frontend/src/common/pure/SafeWalletLink/index.tsx +#: apps/cowswap-frontend/src/legacy/components/ExplorerLink/index.tsx +msgid "View on Safe" +msgstr "Смотреть на Сейфе" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "modified" +msgstr "изменено" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/ProtocolIcons/StackedProtocolIcons.tsx +msgid "CoW Protocol" +msgstr "Протокол о СОЗ" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient allowance granted for" +msgstr "Недостаточная надбавка для" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Failed to fetch manifest from {manifestUrl}. Please verify the URL and try again." +msgstr "Не удалось получить манифест от {manifestUrl}. Проверьте URL-адрес и повторите попытку." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Order executes at" +msgstr "Заказ выполняется в" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "There may be a network issue (such as a gas spike) that is delaying your order. You can wait for the issue to resolve{cancellationModal}" +msgstr "Возможно проблема с сетью (например, газовая шпилька), которая задерживает ваш заказ. Вы можете дождаться, пока проблема будет решена{cancellationModal}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Confirmed" +msgstr "Подтверждено" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "place a new order" +msgstr "создать новый заказ" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "To use {orderType} orders, please connect your wallet <0/>to one of our supported networks." +msgstr "Чтобы использовать заказы {orderType}, подключите ваш кошелек <0/> к одной из поддерживаемых сетей." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "When enabled, the limit price stays fixed when changing the BUY amount. When disabled, the limit price will update based on the BUY amount changes." +msgstr "Когда включено, лимитная цена остается фиксированной при изменении суммы КУПЫ. При отключении, лимитная цена обновится на основе изменения суммы КУПЫ." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +msgid "vCOW token not present" +msgstr "vCOW токен отсутствует" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} solvers" +msgstr "{solversLength} решения" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Claim vested" +msgstr "Востребовано" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Transaction Settings" +msgstr "Настройки транзакций" + +#: apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +msgid "Dismiss hiring message" +msgstr "Отклонить сообщение о найме" + +#: apps/cowswap-frontend/src/common/pure/Modal/index.tsx +msgid "dialog content" +msgstr "содержимое диалогового окна" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since {accountProxyLabelString} is not an upgradeable smart-contract, it can be versioned and there are" +msgstr "Поскольку {accountProxyLabelString} не является обновлённым смарт-контрактом, он может быть версирован и есть" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "open" +msgstr "открытые" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Filled on" +msgstr "Заполнено" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "less" +msgstr "меньше" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Market" +msgstr "Рынок" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "You {orderKind} an extra" +msgstr "Вы {orderKind} лишний" + +#: apps/cowswap-frontend/src/modules/twap/utils/parseTwapError.ts +msgid "Invalid argument \"{invalidArgument}\" provided" +msgstr "Предоставлен недопустимый аргумент \"{invalidArgument}\"" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Executed" +msgstr "Выполнено" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap solvers search Uniswap, 1inch, Matcha, Sushi and more to find you the best price." +msgstr "Решение CoW Swap ищут Uniswap, 1inch, Matcha, Sushi и другие, чтобы найти вам лучшую цену." + +#: apps/cowswap-frontend/src/modules/permit/utils/handlePermit.ts +msgid "Unable to generate permit data" +msgstr "Не удается сгенерировать данные разрешения" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Place orders with a time-weighted average price" +msgstr "Размещение ордеров с средней ценой по времени" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Proxy Accounts" +msgstr "Аккаунты прокси" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Tx cost:" +msgstr "Tx стоимость:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe transaction" +msgstr "Безопасная транзакция" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +msgid "Traded {inputAmount} for a total of {outputAmount}" +msgstr "Сделка {inputAmount} в общей сложности на {outputAmount}" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook description" +msgstr "Описание обработчика" + +#: apps/cowswap-frontend/src/common/pure/IconSpinner/index.tsx +msgid "Spinning icon" +msgstr "Иконка проигрывания" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Return to Swap" +msgstr "Вернуться к замене" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Privacy Policy" +msgstr "Политика конфиденциальности" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency" +msgstr "Нативная валюта" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "link" +msgstr "ссылка" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "A new competition has started" +msgstr "Новый конкурс начался" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/index.ts +msgid "Quote expired. Please refresh." +msgstr "Цитата истекла. Пожалуйста, обновите." + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Successfully converted!" +msgstr "Успешно преобразовано!" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Too <0>busy <1/>to vote?" +msgstr "Слишком <0>занят <1/>для голосования?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "{typeLabel} hooks are integrated code and part of the CoW Swap codebase." +msgstr "{typeLabel} хуки являются встроенным кодом и частью кодовой базы подкачки." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Expiration" +msgstr "Истечение" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Unsupported Wallet" +msgstr "Неподдерживаемый кошелек" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "<0/><1/>Trades are protected from MEV, so your slippage can't be exploited!" +msgstr "<0/><1/>Торговцы защищены от MEV, поэтому ваше проскальзывание не может быть использовано!" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Expired" +msgstr "Истёк" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "native currency" +msgstr "родная валюта" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" +#~ msgstr "Couldn't verify {ACCOUNT_PROXY_LABEL}, please try later" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap operation failed." +msgstr "Операция переноса не удалась." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If allowance remains insufficient at creation time, this portion will not be created. Approve the" +msgstr "Если пособие остается недостаточным в момент создания, эта часть не будет создана. Утвердите" + +#: apps/cowswap-frontend/src/common/utils/getSwapErrorMessage.ts +#~ msgid "User rejected signing the order" +#~ msgstr "User rejected signing the order" + +#: libs/common-const/src/common.ts +msgid "Account Proxy" +msgstr "Аккаунт прокси" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#~ msgid "Executing', description: 'The winner of the competition is now executing your order on-chain." +#~ msgstr "Executing', description: 'The winner of the competition is now executing your order on-chain." + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx +msgid "Estimated bridge transaction time: {bridgeEstimatedTime} minutes" +msgstr "Расчетное время транзакции по мосту: {bridgeEstimatedTime} минут" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR gas-free!" +msgstr "Booooost APR без газа!" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "In case you want to give allowance only for the trade amount, use the advanced mode. You can also change the amount manually." +msgstr "В случае, если вы хотите дать кредит только на сумму сделки, используйте расширенный режим. Вы также можете изменить сумму вручную." + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Sell amount too small" +msgstr "Продать сумму слишком мала" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Your position has 0 liquidity, and is not earning fees." +msgstr "Ваша позиция имеет 0 ликвидности, и она не заработает." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can avoid price impact on large trades by using TWAP orders on CoW Swap." +msgstr "Вы можете избежать влияния цены на крупные сделки, используя TWAP ордера на CoW Swap." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Click to copy contract address" +msgstr "Нажмите, чтобы скопировать адрес контракта" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Unsupported wallet detected" +msgstr "Обнаружен неподдерживаемый кошелёк" + +#: libs/common-const/src/common.ts +msgid "Tokens Overview" +msgstr "Обзор токенов" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm approval" +msgstr "Подтверждение одобрения" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee can not be less than 0!" +msgstr "Партнерская комиссия не может быть меньше 0!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No order history" +msgstr "Нет истории ордеров" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Bridging without swapping is not yet supported. Let us know if you want this feature!" +msgstr "Мост без обмена еще не поддерживается. Дайте нам знать, если вы хотите эту функцию!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The input token cannot be transferred. There may be an issue with the input token." +msgstr "Не удалось перенести входной токен. Возможно проблема с вводным токеном." + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "{pendingCount} Pending" +msgstr "{pendingCount} в ожидании" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenListsWidget/index.tsx +msgid "All" +msgstr "Все" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/InitialStep.tsx +msgid "batched together" +msgstr "загружено вместе" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Select a pool" +msgstr "Выберите фонд" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token not permittable" +msgstr "Токен не разрешён" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapped on" +msgstr "Заменено" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Boooost your current LP positions with CoW AMM’s pools." +msgstr "Загрузите ваши текущие позиции LP с пулами CoW AMM." + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please type the word <0>\"{confirmWord}\" to {action}." +msgstr "Пожалуйста, введите слово <0>\"{confirmWord}\" до {action}." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending..." +msgstr "Ожидание..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Liquidity pools on CoW AMM grow faster than on other AMMs because they don't lose money to arbitrage bots." +msgstr "Ликвидность пулов на CoW AMM растет быстрее, чем на других AMM, потому что они не теряют деньги для арбитражных ботов." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: libs/common-const/src/common.ts +msgid "TWAP" +msgstr "TWAP" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +msgid "Refunded to" +msgstr "Возвращено" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Maximize your yield on existing LP positions" +msgstr "Увеличить доходность на существующих позициях LP" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +#~ msgid "Pool description" +#~ msgstr "Pool description" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "6 Hours" +msgstr "6 часов" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Amount must be at least trade amount" +msgstr "Сумма должна быть по крайней мере суммой сделки" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to a Uniswap v2 pool after the swap" +msgstr "Добавить ликвидность в пул Uniswap v2 после обмена" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/OrderIntent.tsx +msgid "{buyTokenPart} for at most {sellTokenPart}" +msgstr "{buyTokenPart} не более {sellTokenPart}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "The Tenderly simulation failed. Please review your transaction." +msgstr "Не удалось смоделировать тендер. Пожалуйста, просмотрите вашу транзакцию." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "Fill or kill" +msgstr "Заполнить или убить" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Description" +msgstr "Описание" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "on-chain" +msgstr "в цепи" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across Protocol - Transfer Assets Between Layer 2s and Mainnet" +msgstr "Трансляция между слоем 2и Mainnet" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Tokens overview" +msgstr "Обзор токенов" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Enter slippage percentage between {min}% and {max}%" +msgstr "Введите процент проскальзывания между {min}% и {max}%" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Learn how" +msgstr "Узнайте как" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "Token wrapping bundling" +msgstr "Упаковка токенов" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +#~ msgid "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" +#~ msgstr "Provided proxy address does not match {ACCOUNT_PROXY_LABEL} address!, recipient={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Account overview" +msgstr "Обзор аккаунта" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate your" +msgstr "Делегировать" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "<0>Enable trade alerts for fills and expiries" +msgstr "<0>Включить оповещения о сделках для заполнения и истекает" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +msgid "Advanced Order Settings" +msgstr "Расширенные настройки заказа" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap refunded" +msgstr "Перевод возвращен" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Длительность моста составляет не менее {formattedBridgeFeePercentage}% от суммы замены" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +msgid "TWAP order" +msgstr "Порядок TWAP" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "You can now trade <0/>" +msgstr "Вы можете торговать <0/>" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "How much of the order has been filled." +msgstr "Сколько ордера было заполнено." + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Bridge costs <0/>" +msgstr "Стоимость моста <0/>" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Reset" +msgstr "Сброс" + +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "No fee for order placement!" +msgstr "Плата за размещение заказа!" + +#: apps/cowswap-frontend/src/modules/trade/pure/RecipientRow/index.tsx +msgid "The tokens received from this order will automatically be sent to this address. No need to do a second transaction!" +msgstr "Полученные от этого заказа токены будут автоматически отправлены на этот адрес. Не нужно делать вторую транзакцию!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Website" +msgstr "Сайт" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Signed: <0>{numConfirmations} out of {gnosisSafeThreshold} signers" +msgstr "Подписано: <0>{numConfirmations} из подписчиков {gnosisSafeThreshold} " + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/OrderType/index.tsx +msgid "This order can be partially filled" +msgstr "Этот заказ можно частично выполнить" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Build your own hook" +msgstr "Создайте собственный хук" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that you will receive from each part of the order." +msgstr "Предполагаемая сумма, которую Вы получите от каждой части заказа." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like repaying borrow positions using collateral. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features.msg" +msgstr "Контракты на адаптер swap интегрируют кредиты на Flash и CoW Swap для упрощения дополнительных действий, таких как погашение займов с помощью залога. Подробнее на https://aave.com/docs/developers/smart-contracts/swap-features.msg" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Request cancellation" +msgstr "Запросить отмену" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "(dynamic)" +msgstr "(динамический)" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Hour" +msgstr "1 час" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "{prefix}-hooks allow you to automatically execute any action {position} your trade is executed" +msgstr "{prefix}-хуки позволяют автоматически выполнить любое действие {position} вашей торговли будет выполнена" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "Safe" +#~ msgstr "Safe" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired. This could be due to gas spikes, volatile prices, or problems with the network." +msgstr "Ваш заказ истек. Это может быть вызвано газовыми шипами, изменчивыми ценами или проблемами с сетью." + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Unsupported network" +msgstr "Неподдерживаемая сеть" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Batching orders" +msgstr "Пакетные ордера" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to {wrappedSymbol}" +msgstr "Переключиться на {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/DebugPanel/index.tsx +msgid "Select debug step" +msgstr "Выберите шаг отладки" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationsList/index.tsx +msgid "You're all caught up" +msgstr "Вы все поймали" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/common/pure/TradeDetailsAccordion/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +msgid "Fee" +msgstr "Комиссия" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SwapPriceDifferenceWarning.tsx +msgid "You could gain an extra <0><1/> compared to using a {swapOrderLink}" +msgstr "Вы можете получить дополнительно <0><1/> по сравнению с {swapOrderLink}" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Native currency (e.g ETH)" +msgstr "Нативная валюта (например ETH)" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "<0><1/> Experimental: Add DeFI interactions before and after your trade." +msgstr "<0><1/> Эксперименталь: Добавить взаимодействия DeFI до и после торговли." + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Powerful tool to generate pre/post interaction for CoW Protocol" +msgstr "Мощный инструмент для создания взаимодействия до / после для протокола CoW" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Reduce your slippage by breaking big orders into smaller ones" +msgstr "Уменьшите ваше проскальзывание, разбив большие заказы на меньшие" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid " out of {totalSolvers}" +#~ msgstr " out of {totalSolvers}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is the only exchange that matches Coincidences of Wants (CoWs): peer-to-peer swaps that save on settlement costs." +msgstr "CoW Swap – это единственная биржа, которая совпадает с Coincidences of Wants (CoWs): равноправная замена, которая сэкономит на расчетно-расчетных расходах." + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "CoW Swap uses a dedicated {accountProxyLabelString}, controlled only by you, to ensure smooooth bridging. Confirm the recipient address above is <0/>" +msgstr "CoW Swap использует выделенный {accountProxyLabelString}, управляется только вами, чтобы обеспечить плавный мостик. Подтвердите адрес получателя выше <0/>" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +#~ msgid "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" +#~ msgstr "Your swap expires and will not execute if it is pending for longer than the selected duration.<0/><1/>{INPUT_OUTPUT_EXPLANATION}" + +#: apps/cowswap-frontend/src/common/pure/NetworkCostsSuffix/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "gas" +msgstr "газ" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "details" +msgstr "подробнее" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "TWAP order split into {twapOrderN} parts" +msgstr "TWAP ордер разделён на {twapOrderN} частей" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Gas limit" +msgstr "Лимит газа" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Price protection" +msgstr "Защита цен" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Approve {wrappedSymbol} failed!" +msgstr "Не удалось утвердить {wrappedSymbol}!" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Hooks are interactions before/after order execution." +msgstr "Хуки взаимодействуют до/после выполнения заказа." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw Uniswap v2 Liquidity" +msgstr "Вывести Uniswap v2 ликвидность" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Add a custom hook" +msgstr "Добавить пользовательский хук" + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected" +#~ msgstr "Connected" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This page can't be reached" +msgstr "Эта страница недоступна" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap" +msgstr "Сохранение сопутствующего обмена" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Your swap expires and will not execute if it is pending for longer than the selected duration." +msgstr "Ваш обмен истекает и не будет выполняться, если он ожидает длиннее выбранной продолжительности." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{currencyNameCapitalized} orders can, in rare cases, be frontrun due to their on-chain component. For more robust MEV protection, consider wrapping your {currencyName} before trading." +msgstr "Заказы {currencyNameCapitalized} могут в редких случаях быть на переднем плане за счет их компонента. Для более надежной защиты MEV попробуйте обернуть ваш {currencyName} перед торговлей." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Confirmed" +msgstr "Транзакция подтверждена" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "This way, you'll take advantage of" +msgstr "Таким образом, вы воспользуетесь" + +#: apps/cowswap-frontend/src/legacy/components/CowBalance/index.tsx +msgid "Your combined balance" +msgstr "Ваш общий баланс" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Unknown Source" +msgstr "Неизвестный источник" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +msgid "Cancel all" +msgstr "Отменить все" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Add Pre-hook" +msgstr "Добавить пред-хук" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap are free to place and cancel. That's unique in DeFi!" +msgstr "Лимит ордера на замену CoW можно разместить и отменить. Это уникальное в DeFi!" + +#: apps/cowswap-frontend/src/modules/limitOrders/hooks/useHandleOrderPlacement.ts +msgid "safeBundleFlowContext is not set!" +msgstr "safeBundleFlowContext не установлен!" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: No manifest.json file found. Please check the URL and try again." +msgstr "Недопустимый URL: Файл manifest.json не найден. Проверьте URL-адрес и повторите попытку." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "COW token not found for chain {SupportedChainIdMAINNET}" +msgstr "COW токен не найден для цепочки {SupportedChainIdMAINNET}" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unwrap" +msgstr "Развернуть" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Connect your wallet first" +msgstr "Сначала подключите ваш кошелёк" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Animated cow reacts to empty order list" +msgstr "Анимированная корова реагирует на пустой список заказов" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Trade alerts" +msgstr "Уведомления о сделках" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Auto" +msgstr "Авто" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "you will pay a separate gas cost for signing the order placement on-chain." +msgstr "оплатить отдельную газовую стоимость для подписания заказа по цепочке." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap is live on {availableChainsText}. Switch the network toggle in the nav bar for quick, cheap transactions." +msgstr "CoW Swap живет на {availableChainsText}. Переключить переключатель сети в навбаре для быстрых и дешевых транзакций." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx +msgid "Status: {label}" +msgstr "Статус: {label}" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This app/hook doesn't support the current network:" +msgstr "Это приложение/хук не поддерживает текущую сеть:" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import token" +msgstr "Импортировать токен" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Interface Settings" +msgstr "Настройки интерфейса" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +msgid "Enter a price" +msgstr "Введите цену" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't verify {accountProxyLabel}, please try later" +msgstr "Не удалось проверить {accountProxyLabel}, повторите попытку позже" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation time" +msgstr "Дата создания" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Partially Filled" +msgstr "Частично заполнено" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "<0>Note: If you are using a Safe but still see this message, ensure your Safe is deployed!" +msgstr "<0>Примечание: Если вы используете Сейф, но все еще видите это сообщение, убедитесь, что ваш Сейф установлен!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Included in the estimated execution price" +msgstr "Включено в предполагаемую цену исполнения" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs (incl. gas) are covered by filling your order when the market price is better than your limit price." +msgstr "Сетевые расходы (включая газ) покрываются за счет заполнения ордера, когда рыночная цена выше лимитной цены." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Technical details:" +msgstr "Технические подробности:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "How do I recover my funds from {accountProxyLabel}?" +msgstr "Как я могу вернуть средства с {accountProxyLabel}?" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe confirmed signatures" +msgstr "Подтвержденные надписи" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Winning solver" +msgstr "Победа решателя" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Tokens from external sources." +msgstr "Маркеры из внешних источников." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient" +msgstr "Недостаточно" + +#. placeholder {0}: reason ? `: "${reason}"` : '' +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "Неизвестная ошибка{0}. Попробуйте увеличить допуск на проскальзывание. Примечание: комиссия за передачу и rebase токены несовместима с Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/state/cowToken/hooks.ts +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Not connected" +msgstr "Не подключен" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order presigned" +msgstr "Предыдущий заказ" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Get support on Discord" +msgstr "Получить поддержку в Discord" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a CoW AMM pool before the swap" +msgstr "Снимите ликвидность из пула AMM перед заменой" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.cosmos.tsx +#~ msgid "Input currency not found for chain {supportedChainId}" +#~ msgstr "Input currency not found for chain {supportedChainId}" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "This swap has a price impact of at least {pct}%." +msgstr "Этот обмен влияет на цену по крайней мере на {pct}%." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "Read how to prevent losing funds" +msgstr "Читайте как предотвратить потерю средств" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The time each part of your TWAP order will remain active." +msgstr "Время каждой части вашего заказа TWAP останется активным." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Authorize Telegram" +#~ msgstr "Authorize Telegram" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Buy per part" +msgstr "Купить за часть" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Total claimable rewards:" +msgstr "Общее количество наград:" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on" +msgstr "Вид на" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Connected with" +msgstr "Подключено к" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "balance detected." +msgstr "баланс обнаружен." + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "Deposit tokens to the {label} network." +msgstr "Токены пополнения в сеть {label}." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Your TWAP order will be split into this many parts, which will execute one by one." +msgstr "Ваш заказ будет разделён на несколько частей, которые будут исполнять один за другим." + +#: apps/cowswap-frontend/src/common/pure/TradeLoadingButton/index.tsx +msgid "Hang in there. Calculating best price" +msgstr "Отправляйтесь туда. Расчет лучшей цены" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "both {joinedSupportedTypes}" +msgstr "обе {joinedSupportedTypes}" + +#: libs/common-utils/src/legacyAddressUtils.ts +msgid "View on Explorer" +msgstr "Смотреть в проводнике" + +#: apps/cowswap-frontend/src/common/pure/TransactionErrorContent/index.tsx +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Error" +msgstr "Ошибка" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#~ msgid "Sell {inputAmount} {label}" +#~ msgstr "Sell {inputAmount} {label}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Something went wrong and your order couldn't be executed with this batch. But don't worry! CoW Swap is already holding another competition for your order." +msgstr "Что-то пошло не так и ваш заказ не может быть выполнен с этой партией. Но не волнуйтесь! CoW Swap уже проводит другое соревнование по вашему заказу." + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving token" +msgstr "Подтверждение токена" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "We are unable to calculate the price impact for this order.<0/><1/>You may still move forward but <2>please review carefully that the receive amounts are what you expect." +msgstr "Мы не можем рассчитать влияние цены на этот ордер. <0/><1/>Вы все еще можете двигаться вперед, но <2>внимательно проверьте, что Вы ожидаете получить суммы." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Off-chain cancellations require a signature and are free." +msgstr "Отмена вне цепи требует подписи и бесплатно." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "You are not eligible for this airdrop" +msgstr "Вы не имеете права на это воздушное судно" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Select a token" +msgstr "Выберите токен" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "Read more about unsupported tokens" +msgstr "Подробнее о неподдерживаемых токенах" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +#~ msgid "Quote refresh in <0>{value} sec" +#~ msgstr "Quote refresh in <0>{value} sec" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "cancelling" +msgstr "отмена" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Signing transaction" +msgstr "Подписание транзакции" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks" +msgstr "Поиск хуков" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "down" +msgstr "вниз" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#~ msgid "Wrap <0/> and Swap" +#~ msgstr "Wrap <0/> and Swap" + +#: apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx +msgid "Source transaction" +msgstr "Исходная транзакция" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Cow Balance" +msgstr "Баланс коровы" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Keep in mind a solver might already have included the order in a solution even if this cancellation is successful." +msgstr "Имейте в виду, что решение уже включало заказ в решение, даже если это отмена выполнена успешно." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Token" +msgstr "Токен" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +msgid "Order submitted" +msgstr "Заказ отправлен" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote is updating..." +msgstr "Цитата обновляется..." + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Get started!" +msgstr "Начнем!" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Set custom date" +msgstr "Установка пользовательской даты" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claimable" +msgstr "Утверждаемый" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Docs" +msgstr "Документ" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Simulation:" +msgstr "Симуляция:" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Locked limits - lock or unlock prices for finer control, the order does the rest" +msgstr "Заблокированные ограничения - цены блокировки или разблокировки для более качественного контроля, ордер делает остальные" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Cannot sell {nativeSymbol}" +msgstr "Нельзя продать {nativeSymbol}" + +#: apps/cowswap-frontend/src/common/containers/CoWAmmBanner/index.tsx +msgid "Booooost APR!" +msgstr "Загрузка APR!" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "Невозможно перенести выходной токен. Возможно проблема с маркером вывода. Примечание: комиссия за передачу и rebase токены несовместимы с Uniswap V3." + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "blocked activities" +msgstr "заблокированные действия" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +#~ msgid "Settings" +#~ msgstr "Settings" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "It is required to do a one-time approval of {wrappedSymbol} via an on-chain ERC20 Approve transaction." +msgstr "Единоразовое одобрение {wrappedSymbol} требуется через цепочку ERC20 Подтвердить транзакцию." + +#: apps/cowswap-frontend/src/modules/trade/hooks/setupTradeState/useResetStateWithSymbolDuplication.ts +msgid "There is more than one token in the list of tokens with the symbol: {doubledSymbol}.\n" +"Please select the token you need from the UI or use the address of the token instead of the symbol" +msgstr "В списке токенов с символом есть более одного токена: {doubledSymbol}.\n" +"Пожалуйста, выберите необходимый токен из пользовательского интерфейса или используйте адрес токена вместо символа" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "unfillable" +msgstr "незаполненный" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "saved" +msgstr "сохранено" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Hook Store" +msgstr "Хук магазин" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance to ensure your trade executes quickly while still getting the best price." +msgstr "CoW Swap динамически регулирует толерантность ваших проскальзываний, чтобы обеспечить быстрое выполнение вашей сделки и при этом получить лучшую цену." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Bungee Protocol - Swap tokens across chains" +msgstr "Протокол Bungee - токены подкачки между цепями" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap's robust solver competition protects your slippage from being exploited by MEV bots." +msgstr "Крепкая конкуренция колбасы CoW защищает Ваше скольжение от использования MEV ботами." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Debt Swap Flashloan" +msgstr "Флешкредит в архиве долгов" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Details" +msgstr "Детали" + +#: apps/cowswap-frontend/src/legacy/state/orders/helpers.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/OrderNotification/index.tsx +msgid "Order" +msgstr "Заказ" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +msgid "TWAP orders require a one-time update to your Safe to enable automated execution of scheduled transactions." +msgstr "Заказы TWAP требуют одноразового обновления вашего сейфа для автоматического выполнения запланированных транзакций." + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Order Submitted" +msgstr "Заказ отправлен" + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "You have given an allowance to <0>AnyswapV4Router which is affected by a critical vulnerability." +msgstr "Вы указали разрешение <0>AnyswapV4Router, на которое влияет критическая уязвимость." + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "This could have happened due to the lack of internet or the release of a new version of the application." +msgstr "Это могло произойти из-за отсутствия интернета или выхода новой версии приложения." + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "For your convenience, token approval and order placement will be bundled into a single transaction, streamlining your experience!" +msgstr "Для вашего удобства утверждение токена и размещение заказа будут объединены в одну транзакцию, упорядочивая ваш опыт!" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No open orders" +msgstr "Нет открытых ордеров" + +#: libs/common-utils/src/tooltips.ts +msgid "Maximum tokens you'll sell." +msgstr "Максимальное количество токенов, которые вы продаете." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid " or <0/>" +msgstr " или <0/>" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "ENS recipient not supported for Swap and Bridge — use address instead." +#~ msgstr "ENS recipient not supported for Swap and Bridge — use address instead." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Careers" +msgstr "Карьера" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Expected sell amount" +msgstr "Ожидаемая сумма продаж" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "orders" +msgstr "заказы" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Limit Order" +msgstr "Лимит ордера" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient allowance" +msgstr "Недостаточно надбавки" + +#: apps/cowswap-frontend/src/modules/wallet/pure/StatusIcon/index.tsx +msgid "Coinbase Wallet" +msgstr "Кошелек Coinbase" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Connect wallet" +msgstr "Подключить кошелек" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Approve the token to proceed." +msgstr "Утвердите токен, чтобы продолжить." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "Recoverable value" +msgstr "Восстановляемое значение" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "is worth" +msgstr "стоит" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "View account" +msgstr "Посмотреть аккаунт" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "When you swap (sell) <0/>, solvers handle the transaction by purchasing the required tokens, depositing them into the pool, and issuing LP tokens to you in return — all in a gas-less operation." +msgstr "Когда вы подкачиваете (продавать) <0/>, решатели обрабатывают транзакцию, покупая необходимые токены, Внесение их в бассейн и выдача токенов LP в обмен — все это в безгазовую операцию." + +#: apps/cowswap-frontend/src/common/hooks/useBlockNumber.tsx +msgid "BlockNumber hooks must be wrapped in a" +msgstr "BlockNumber хуки должны быть завернуты в" + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Wrap <0/> and Swap" +msgstr "Перенос <0/> и замена" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/BigPartTimeWarning.tsx +msgid "A maximum of <0>{time} between parts is required. Increase the number of parts or decrease the total duration." +msgstr "Между необходимыми частями максимум <0>{time}. Увеличение количества частей или уменьшение общей длительности." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "This fee helps pay for maintenance & improvements to the trade experience" +msgstr "Эта комиссия помогает оплатить обслуживание и улучшение опыта торговли" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "No. of parts" +msgstr "№ частей" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "and saved " +msgstr "и сохранены " + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3." +msgstr "Эта транзакция не увенчается успехом из-за изменения цены. Попробуйте увеличить толерантность проскальзывания. Примечание: комиссия за передачу и rebase токены несовместимы с Uniswap V3." + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve all" +msgstr "Одобрить все" + +#: apps/cowswap-frontend/src/common/pure/CustomRecipientWarningBanner/index.tsx +msgid "Caution" +msgstr "Внимание" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Morpho Borrow" +msgstr "Морфо Борроу" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "This contract is deployed per account, with that account becoming the single owner. CoW Shed acts as an intermediary account that handles trading on your behalf." +msgstr "Этот контракт используется для каждого счета, и этот счет становится единственным владельцем. CoW Shed действует в качестве счета посредника, который занимается торговлей от Вашего имени." + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +msgid "The order cannot be {msg}. Please, retry in a minute" +msgstr "Заказ не может быть {msg}. Пожалуйста, повторите попытку через минуту" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Request cancellations" +msgstr "Запросить отмену" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "Recommended" +msgstr "Рекомендовано" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Price change" +msgstr "Изменение цены" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Yield" +msgstr "Выход" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageLists/index.tsx +msgid "Error importing token list" +msgstr "Ошибка импорта списка токенов" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "cancelled" +msgstr "отменено" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenListDetails/index.tsx +msgid "tokens" +msgstr "жетоны" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "No wallet compatibility information available." +msgstr "Информация о совместимости кошелька не доступна." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "submitted a solution" +msgstr "предоставлено решение" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Issues have been reported with Metamask sending transactions to the wrong chain on versions prior to <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Before you sign, please check in your wallet that the transaction is being sent to the network:" +msgstr "Были отмечены проблемы с отправкой транзакций в неправильную цепочку в версиях <0>v{VERSION_WHERE_BUG_WAS_FIXED}. Прежде чем подписать, пожалуйста, проверьте ваш кошелек на отправку транзакции в сети:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Sell amount is too small" +msgstr "Сумма продажи слишком мала" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/UnsupportedWalletWarning.tsx +msgid "Use the <0>Safe app for advanced trading." +msgstr "Используйте <0>Безопасное приложение для продвинутой торговли." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Top" +msgstr "Сверху" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Estimated amount that will be sold in each part of the order." +msgstr "Примерная сумма, которая будет продана в каждой части заказа." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Part duration" +msgstr "Длительность части" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "hours" +msgstr "часов" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Supply collateral, borrow, repay and withdraw collateral on Morpho Protocol." +msgstr "Предоставление обеспечения, заемки, погашения и вывода залога на основе Морского протокола." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +msgid "Order out of market" +msgstr "Заказ вне рынка" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "{solver} logo" +msgstr "Логотип {solver}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +msgid "Approve {tokenSymbol}" +msgstr "Утвердить {tokenSymbol}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The fill price of this order is close or at the market price and is expected to fill soon" +msgstr "Заполняемая цена этого ордера близка или по рыночной цене и, как ожидается, будет заполнена в ближайшее время" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "My orders <0/>" +msgstr "Мои заказы <0/>" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Define custom total time" +msgstr "Определить общее время" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Expected to receive" +msgstr "Ожидается получение" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateInput/HeadingText.tsx +msgid "Select input and output" +msgstr "Выберите ввод и вывод" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HooksStoreWidget/index.tsx +msgid "With hooks you can add specific actions <0>before and <1>after your swap." +msgstr "С помощью хуков вы можете добавить конкретные действия <0>раньше и <1>после ваш своп." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "No signatures yet" +msgstr "Ещё нет подписей" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Start bridging" +msgstr "Начать мостик" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +msgid "Import at your own risk" +msgstr "Импорт на свой страх и риск" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +msgid "Approving <0>{currencySymbolOrContext} for trading" +msgstr "Утверждение <0>{currencySymbolOrContext} для торговли" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Couldn't load balances" +msgstr "Не удалось загрузить балансы" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate" +msgstr "Делегировать" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "cancel the order" +msgstr "отменить заказ" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Can't find a hook that you like?" +msgstr "Не могу найти крюк, который вам нравится?" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "Market:" +msgstr "Рынок:" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No orders" +msgstr "Нет заказов" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "This token is unsupported as it does not operate optimally with CoW Protocol. Please refer to the FAQ for more information." +msgstr "Этот токен не поддерживается, так как он не работает оптимально с протоколом CoW. Пожалуйста, обратитесь к FAQ для получения дополнительной информации." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "You haven't added any custom hooks yet. Add a custom hook to get started." +msgstr "Вы еще не добавили пользовательские хуки. Добавьте пользовательский хук, чтобы начать." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "7 Days" +msgstr "7 дней" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction was cancelled or sped up" +msgstr "Транзакция была отменена или изменена" + +#: apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Custom Recipient" +msgstr "Пользовательский получатель" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Received {tokenLabel}" +msgstr "Получено {tokenLabel}" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "Please, make sure your address follows the format <0>{addressPrefix}: or double-check if it is compatible with <1>{label} network." +msgstr "Пожалуйста, убедитесь, что ваш адрес соответствует формату <0>{addressPrefix}: или дважды проверьте совместимость с сетью <1>{label}." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +msgid "Recent Activity" +msgstr "Недавняя активность" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "2 stops" +msgstr "2 остановки" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeSignPermitButton/TradeSignPermitButton.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +#~ msgid "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." +#~ msgstr "You must give the CoW Protocol smart contracts permission to use your <0/>. If you approve the default amount, you will only have to do this once per token." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Please enter the base URL of your dapp, not the direct manifest.json path" +msgstr "Пожалуйста, введите базовый URL-адрес вашего приложения, а не прямой путь manifest.json" + +#: apps/cowswap-frontend/src/modules/orders/pure/PendingOrderNotification/index.tsx +msgid "submitted" +msgstr "опубликовано" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are selling {nativeSymbol} (native currency)" +msgstr "Так как вы продаете {nativeSymbol} (родную валюту)" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrdersTableWidget/index.tsx +msgid "Token symbol, address" +msgstr "Символ токена, адрес" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order Receipt" +msgstr "Квитанция заказа" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping debt assets. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "Контракты на адаптеры Swap интегрируют кредиты на Flash и CoW Swap для упрощения сложных действий, таких как замена долговых активов. Подробнее об этом читайте на https://aave.com/docs/developers/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "Transaction completed!" +msgstr "Транзакция завершена!" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "No pool tokens available" +msgstr "Нет доступных маркеров пула" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +#~ msgid "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +#~ msgstr "Your limit price is {percent}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Still searching" +msgstr "Искать все еще" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Across is the fastest, cheapest and most secure cross-chain bridge for Ethereum, Arbitrum, Optimism, Polygon and other Layer 1 and Layer 2 networks. Transfer tokens with Across." +msgstr "Внутри это самый быстрый и дешевый перекрестный мост для Ethereum, Arbitrum, Optimism, Polygon и других сетей Layer 1 и Layer 2. Трансферные токены с Across." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "check" +msgstr "проверить" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Are you sure you want to cancel {ordersCount} orders?" +msgstr "Вы уверены, что хотите отменить заказы {ordersCount}?" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Convert your <0/> LP tokens into CoW AMM pools and earn up to <1>+{apyDiffFormatted}% more yield compared to <2/>. Or, swap" +msgstr "Конвертируйте ваши <0/> LP токены в CoW AMM пулы и зарабатывайте до <1>+{apyDiffFormatted}% больше по сравнению с <2/>. Или, подкачки" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Lock Limit Price" +msgstr "Заблокировать лимитную цену" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "Target" +msgstr "цель" + +#: libs/common-utils/src/legacyAddressUtils.ts +#~ msgid "View on {explorerTitle}" +#~ msgstr "View on {explorerTitle}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridge failed on" +msgstr "Мост не удался на" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is submitted." +msgstr "{operationLabel} отправлен." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid manifest format at {manifestUrl}: missing cow_hook_dapp property" +msgstr "Недопустимый формат манифеста на {manifestUrl}: отсутствует свойство cow_hook_dapp" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Valid to" +msgstr "Действителен до" + +#: apps/cowswap-frontend/src/modules/twap/hooks/useCancelTwapOrder.ts +msgid "Composable Cow and Settlement contracts are not on the same chain" +msgstr "Контракты на композиционные коровы и расчеты не заключаются в одной цепочке" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Swap bridged via your" +msgstr "Поменять местами мост через" + +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/common/hooks/useSwapAndBridgeContext.ts +#: apps/cowswap-frontend/src/legacy/components/FlashingLoading/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Loading..." +msgstr "Загрузка..." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unsupported Network" +msgstr "Неподдерживаемая сеть" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersConfirmModal/index.tsx +msgid "Approve" +msgstr "Одобрить" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Execution time" +msgstr "Время выполнения" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW token" +msgstr "vCOW токен" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "High slippage amount selected" +msgstr "Выбрана высота проскальзывания" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Place orders for higher than available balance!" +msgstr "Разместите заказы для более чем доступного баланса!" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "first." +msgstr "первый." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "No routes found" +msgstr "Маршруты не найдены" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at most" +msgstr "максимум" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Submitted" +msgstr "Отправлено" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/ConnectWalletContent.tsx +msgid "connect wallet" +msgstr "подключить кошелек" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create LlamaPay Vesting" +msgstr "Создать вестинг LlamaPay" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowDeadline/index.tsx +msgid "Transaction expiration" +msgstr "Срок действия транзакции" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "CowSwap no connection" +msgstr "CowSwap нет соединения" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Alert" +msgstr "Оповещение" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Start time first" +msgstr "Сначала время начала" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Swap with Wrapped {nativeSymbol}" +msgstr "Поменять на завернутый {nativeSymbol}" + +#: apps/cowswap-frontend/src/modules/yield/pure/TargetPoolPreviewInfo.tsx +msgid "Analytics" +msgstr "Статистика" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock TWAP orders" +msgstr "Разблокировать TWAP ордера" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Failed to cancel order" +msgstr "Не удалось отменить ордер" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Uniswap v2 Deposit" +msgstr "Депозит Uniswap v2" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Set your own price" +msgstr "Установите свою собственную цену" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "This percentage only applies to dips; if prices are better than this percentage, CoW Swap will still execute your order." +msgstr "Этот процент применяется только для заказов; если цены лучше, чем этот процент, CoW Swap все еще будет выполнять ваш заказ." + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "12 Hours" +msgstr "12 часов" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "signatures are" +msgstr "подписи" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/yieldTradeButtonsMap.tsx +msgid "Use the Swap tab for trades that don't involve an LP token." +msgstr "Используйте вкладку Swap для сделок, которые не включают токен LP." + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "off-chain" +msgstr "вне цепи" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "Price" +msgstr "Цена" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/SlippageWarning/index.tsx +msgid "Your transaction may expire" +msgstr "Ваша транзакция может истечь" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "<0>CoW Swap solvers are scanning liquidity sources across DeFi. The one that finds you the best price wins!" +msgstr "<0>CoW Swap решения сканирует источники ликвидности через DeFi." + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell at most" +msgstr "Вы продаете больше всего" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "No matching orders found" +msgstr "Соответствующих ордеров не найдено" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wallet Unsupported" +msgstr "Кошелек не поддерживается" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +msgid "Full approval" +msgstr "Полное утверждение" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset <0>{symbol} allowance" +msgstr "Сброс <0>{symbol} допуск" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "The price of this pool is within your selected range. Your position is currently earning fees." +msgstr "Цена этого пула находится в пределах выбранного вами диапазона. Ваша позиция в настоящее время взимает плату за заработок." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "FAQs" +msgstr "ЧАВО" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signatures are" +msgstr "больше подписей" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current network costs make up <0><1>{formattedFeePercentage}% of your swap amount." +msgstr "Текущие сетевые расходы составляют <0><1>{formattedFeePercentage}% вашей суммы замены." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Set approval" +msgstr "Установить одобрение" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be before {maxDateStr} {timeZone}" +msgstr "Должно быть перед {maxDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade." +msgstr "Этот токен не отображается в активных списках токенов. Убедитесь, что это токен, который вы хотите торговать." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Between currencies" +msgstr "Между валютами" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "wrapped native" +msgstr "завернутый родной" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover {target}" +msgstr "Восстановить {target}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Expiry" +msgstr "Срок действия" + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Minutes" +msgstr "Минут" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useHandleApprovalError.ts +msgid "User rejected approval transaction" +msgstr "Пользователь отклонил транзакцию утверждения" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swap on" +msgstr "Поменять на" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Transaction" +msgstr "Транзакция" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe contracts have a so-called \"nonce.\" This is to ensure that each transaction can be executed only once so no replay attacks are possible." +msgstr "Безопасные контракты имеют так называемые \"нече\". Таким образом, каждая транзакция может быть выполнена только один раз, так что атак повторов невозможны." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/Row/RowSlippageContent/index.tsx +msgid "This is the recommended slippage tolerance based on current gas prices & trade size. A lower amount may result in slower execution." +msgstr "Это рекомендуемый допуск проскальзывания на основе текущих цен на газ и торговых показателей. Более низкая сумма может привести к медленному исполнению." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "buy" +msgstr "купить" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Converting vCOW to COW" +msgstr "Преобразование vCOW в COW" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Maximum sent" +msgstr "Максимальное количество отправленных" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "More intuitive UI and improved design" +msgstr "Интуитивно понятный интерфейс и улучшенный дизайн" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "External" +msgstr "Внешний" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "The winner of the competition is now executing your order on-chain." +msgstr "Победитель конкурса в настоящее время выполняет Ваш заказ по цепочке." + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/NetworkFeeItem.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Network costs" +msgstr "Сетевые расходы" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "PRE" +msgstr "ПРЕ" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "{symbolName} orders require a minimum transaction expiration time threshold of {minutes} minutes to ensure the best swapping experience" +msgstr "Для ордеров {symbolName} требуется минимальный порог истечения срока транзакции, равный {minutes} минутам, чтобы обеспечить максимальный эффект обмена" + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Edit limit order" +msgstr "Изменить лимитный ордер" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +msgid "Your order is being cancelled." +msgstr "Ваш заказ будет отменен." + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "CoW Swap dynamically adjusts your slippage tolerance based on current gas prices and trade size. You can set a custom slippage using the settings icon above." +msgstr "CoW Swap динамически регулирует толерантность проскальзывания на основе текущих цен на газ и размера торговли. Вы можете установить пользовательское проскальзывание, используя значок настроек выше." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "CoW Swap has dynamically selected this slippage amount to account for current gas prices and trade size. Changes may result in slower execution." +msgstr "CoW Swap динамически выбрал эту величину проскальзывания для учета текущих цен на газ и объема торговли. Изменения могут привести к медленному исполнению." + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/index.tsx +msgid "CoWmunity fees discount" +msgstr "Скидка на CoWmunity" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The swap adapter contracts integrate Aave Flash Loans and CoW Swap to facilitate advanced actions like swapping collateral assets when there are borrow positions. Learn more at https://aave.com/docs/developers/smart-contracts/swap-features." +msgstr "Контракты на адаптеры интегрируют кредиты Aave Flash и CoW Swap для упрощения передовых действий, таких как замена залогового актива при наличии займов. Узнайте больше на https://aave.com/docs/developers/smart-contracts/swap-features." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +msgid "Swap with" +msgstr "Поменять на" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +msgid "Current network fees" +msgstr "Текущие сетевые сборы" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "3 Days" +msgstr "3 дня" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Now" +msgstr "Сейчас" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Mooove between <0/> any chain, hassle-free" +msgstr "Размещение между <0/> любой цепи, без проблем" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Wrap {nativeSymbol} to {wrappedNativeSymbol}" +msgstr "Перенос {nativeSymbol} в {wrappedNativeSymbol}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +msgid "The address that will receive the tokens." +msgstr "Адрес, который будет получать токены." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "The number of signers who have confirmed this transaction versus the number of signer confirmations needed." +msgstr "Количество подписавших, которые подтвердили эту транзакцию, против количества подписавших ее подтверждений." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/TransactionSlippageInput/index.tsx +msgid "Dynamic" +msgstr "Динамический" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Fills at" +msgstr "Заполняется" + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "Confirm Price Impact" +msgstr "Подтверждение влияния цены" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Executing" +msgstr "Выполнение" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Another order has used up the approval amount. Set a new token approval to proceed with your order." +msgstr "Другой заказ использовал сумму одобрения. Установите новый токен, чтобы выполнить ваш заказ." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +#~ msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." +#~ msgstr "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}." + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid token address" +msgstr "Введите правильный адрес токена" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "vCOW conversion" +msgstr "Преобразование vCOW" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Sorry, we were unable to load the requested page." +msgstr "К сожалению, не удалось загрузить запрашиваемую страницу." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Creation Failed" +msgstr "Не удалось создать заказ" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "This wallet is not yet supported" +msgstr "Этот кошелек еще не поддерживается" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Created" +msgstr "Создано" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Update Pre-hook" +msgstr "Обновить предхук" + +#: apps/cowswap-frontend/src/pages/Account/index.tsx +msgid "Governance" +msgstr "Управление" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/MultipleCancellationMenu/index.tsx +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Cancel" +msgstr "Отмена" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrapping {amountStr} {native} to {wrapped}" +msgstr "Перенос {amountStr} {native} на {wrapped}" + +#: apps/cowswap-frontend/src/modules/orders/containers/FulfilledOrderInfo/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Order surplus" +msgstr "Остаток заказов" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of <2>{parts} parts placed every <3>{partDurationDisplay}, the total time to complete the order is <4>{totalDurationDisplay}. Each limit order remains open for <5>{partDurationDisplay} until the next part becomes active." +msgstr "\"Общая длительность\" - это продолжительность, требуемая для выполнения всех частей вашего TWAP заказа. <0/><1/>Например, ваш заказ состоит из <2>{parts} частей размещаемых каждый <3>{partDurationDisplay}, время выполнения заказа составляет <4>{totalDurationDisplay}. Каждый лимитный ордер остается открытым для <5>{partDurationDisplay} до тех пор, пока не станет активным." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "to" +msgstr "до" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "24 Hours" +msgstr "24 часа" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Recoverable tokens" +msgstr "Восстановленные токены" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract not present or not connected to any supported chain" +msgstr "Контракт не присутствует или не подключен к поддерживаемой цепочке" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.cosmos.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "token approval" +msgstr "одобрение токена" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/helpers.ts +msgid "including an extra " +msgstr "включая доп. " + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL format" +msgstr "Неверный формат URL" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "order" +msgstr "заказ" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "cancellation" +msgstr "отмена" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Create a LlamaPay vesting contract" +msgstr "Создать контракт на связывание LlamaPay" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "tip" +msgstr "Совет" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/index.cosmos.tsx +msgid "Open orders" +msgstr "Открытые ордера" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +#~ msgid "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." +#~ msgstr "<0>Switch to {wrappedNativeSymbol} or <1>Wrap {nativeSymbol} to {wrappedNativeSymbol} first." + +#: apps/cowswap-frontend/src/pages/LimitOrders/AlternativeLimitOrder.tsx +msgid "Recreate limit order" +msgstr "Вернуть лимитный ордер" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#~ msgid "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." +#~ msgstr "The fill price of this order is close or at the market price (<0>fills at <1/>,{priceDiff}% from market) and is expected to {filledValue} fill soon." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "TWAP order split in <0>{numOfParts} equal parts" +msgstr "TWAP порядок разделен на <0>{numOfParts} равные части" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "Your total surplus" +msgstr "Ваш общий излишек" + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "Desktop: Left-Aligned Orders Table" +msgstr "Рабочий стол: левая таблица заказов" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Withdraw rewards from your Gnosis validators." +msgstr "Вывести награды из вашего репозитория Gnosis." + +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/swapTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Selling {symbol} is not supported" +msgstr "Продажа {symbol} не поддерживается" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "before that time." +msgstr "до этого времени." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "View transaction" +msgstr "Просмотр транзакции" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "is" +msgstr "это" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Transaction {errorType}" +msgstr "Транзакция {errorType}" + +#: apps/cowswap-frontend/src/modules/trade/containers/NoImpactWarning/index.tsx +msgid "Price impact <0>unknown - trade carefully" +msgstr "Влияние цены <0>неизвестно - тщательно торгуйте" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SettingsTab/index.tsx +msgid "Enable partial approvals" +msgstr "Включить частичные утверждения" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx +msgid "Version" +msgstr "Версии" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "All tokens" +msgstr "Все токены" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "Additional Results from External Sources" +msgstr "Дополнительные результаты из внешних источников" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "CoW Swap will try to lower this cost where possible." +msgstr "Постарайтесь уменьшить эти расходы там, где это возможно." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "versions of" +msgstr "версии" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Edit partial approval" +msgstr "Редактировать частичное одобрение" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Edit" +msgstr "Редактирование" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "The order remains open. Execution requires adequate allowance. Approve the token to proceed." +msgstr "Ордер остается открытым. Выполнение требует соответствующей доли. Подтвердите токен, чтобы продолжить." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Sell → Buy" +msgstr "Продать → Купить" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +msgid "Cancel order {shortId}" +msgstr "Отменить заказ {shortId}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "without worry." +msgstr "без беспокойства." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/BundleTxWrapBanner/index.tsx +msgid "For your convenience, CoW Swap will bundle all the necessary actions for this trade into a single transaction. This includes the {nativeCurrencySymbol} wrapping and, if needed, {wrappedCurrencySymbol} approval. Even if the trade fails, your wrapping and approval will be done!" +msgstr "Для вашего удобства CoW Swap будет объединять все необходимые действия для этой сделки в одну транзакцию. Сюда входит обертка {nativeCurrencySymbol} и, при необходимости, одобрение {wrappedCurrencySymbol}. Даже в случае неудачи сделки, ваша упаковка и подтверждение будут сделаны!" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token balance" +msgstr "Недостаточный баланс токена" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "From" +msgstr "От" + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "Orders not matched after the threshold time are automatically refunded." +msgstr "Заказы, не совпадающие после порогового времени, автоматически возвращаются." + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "Follow these steps:" +msgstr "Выполните следующие шаги:" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/SwapWidget/index.tsx +msgid "Buy exactly" +msgstr "Купить точно" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "{nativeTokenSymbol} Refunded" +msgstr "{nativeTokenSymbol} возвращено" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Unlock the Power of TWAP Orders" +msgstr "Разблокировать мощь TWAP ордеров" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim GNO from validators" +msgstr "Забрать ГНО от валидаторов" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Easily increase your position in a liquidity pool, adding both tokens in the right ratio.\n\n" +" Whether you're seeking to increase your exposure to specific tokens or maximize the returns from your assets, this tool offers a quick and efficient way to enhance your liquidity position after a token swap, all in a smooth, efficient process." +msgstr "Увеличьте свою позицию в пуле ликвидности, добавляя оба жетона в правильное соотношение.\n\n" +" Желаете ли вы увеличить вашу экспозицию по определенным токенам или максимизировать прибыль от ваших активов, этот инструмент предоставляет быстрый и эффективный способ улучшения позиции по ликвидности после обмена токенов, все это в гладком и эффективном процессе." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Unwrapping" +msgstr "Развертка" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Unknown quote error" +msgstr "Неизвестная ошибка кавычки" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "Read more about unsupported wallets" +msgstr "Подробнее о неподдерживаемых кошельках" + +#: apps/cowswap-frontend/src/common/hooks/useCancelOrder/useGetOnChainCancellation.ts +msgid "Chain Id from contracts should match (ethFlow={ethFlowChainId}, settlement={settlementChainId})" +msgstr "Идентификатор цепи по контрактам должен совпадать (ethFlow={ethFlowChainId}, расчеты ={settlementChainId})" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Back to wallet selection" +msgstr "Вернуться к выбору кошелька" + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +msgid "Confirm Action" +msgstr "Подтвердить действие" + +#: apps/cowswap-frontend/src/common/pure/CancellationModal/RequestCancellationModal.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "more" +msgstr "больше" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "CoW Protocol covers the costs by executing your order at a slightly better price than your limit price." +msgstr "Протокол CoW покрывает расходы, выполняя ваш ордер по несколько более высокой цене, чем лимитная цена." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "Your limit price is {absoluteRateImpact}% lower than current market price. You could be selling your<0/> at a loss (although CoW Swap will always try to give you the best price regardless)." +msgstr "Ваша лимитная цена на {absoluteRateImpact}% ниже текущей рыночной цены. Вы можете продать свой <0/> с убытком (хотя CoW Swap всегда будет пытаться дать вам лучшую цену независимо от этого)." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Clear search input" +msgstr "Очистить строку поиска" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "The fill price of this order is close or at the market price (<0>fills at <1/>, {priceDiff}% from market) and is expected to {filledValue} fill soon." +msgstr "Цена исполнения этого ордера близка или по рыночной цене (<0>заполняется <1/>, {priceDiff}% от рынка) и ожидается скоро заполнить {filledValue}." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "of your sell amount! Therefore, your order is unlikely to execute." +msgstr "от суммы продажи! Поэтому ваш ордер вряд ли будет выполнен." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to easily set up vesting contracts with LlamaPay. Enter the recipient’s address or ENS name, then choose how much to transfer: the token buy will be automatically detected by the hook and the contracts will be linked to your LlamaPay dashboard for seamless tracking." +msgstr "Этот хук позволяет вам легко установить инвестиционные контракты с LlamaPay. Введите адрес получателя или имя ENS, затем выберите, как много переводить: покупка токена будет автоматически обнаружена хуком и контракты будут связаны с вашей панели управления LlamaPay для бесшовного отслеживания." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Recreate" +msgstr "Восстановить" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +#: libs/common-const/src/common.ts +msgid "Received" +msgstr "Получено" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "No hooks available." +msgstr "Нет хуков." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/MetamaskTransactionWarning/index.tsx +msgid "Your Metamask extension (<0>v{currentVersion}) is out of date. " +msgstr "Ваше расширение Metamask (<0>v{currentVersion}) устарело. " + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "Turn on Expert mode?" +msgstr "Включить Экспертный режим?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/RenderProgressTopSection.tsx +msgid "N/A" +msgstr "Н/Д" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "This transaction can be simulated before execution to ensure that it will be succeed, generating a detailed report of the transaction execution." +msgstr "Эта транзакция может быть смоделирована перед выполнением, чтобы убедиться, что она будет успешной, генерировать подробный отчет о выполнении транзакции." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/deadlines.ts +msgid "1 Year (max)" +msgstr "1 год (макс)" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "partially fillable" +msgstr "частично заполненный" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "Insufficient token allowance" +msgstr "Недостаточно допустимости токенов" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Rate" +msgstr "Оценить" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeNumberInput/index.tsx +msgid "Decrease Value" +msgstr "Уменьшить значение" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/WrappingPreview/WrapCard.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Balance" +msgstr "Баланс" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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." +msgstr "Инвентарист Uniswap x*y=k не удовлетворен обменом. Обычно это означает, что один из токенов, который вы осуществляете, включает в себя индивидуальное поведение при передаче." + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "dynamic" +msgstr "динамичный" + +#: apps/cowswap-frontend/src/common/pure/PoweredFooter/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Powered by" +msgstr "При поддержке" + +#: apps/cowswap-frontend/src/modules/trade/pure/PriceUpdatedBanner/index.tsx +msgid "Accept" +msgstr "Принять" + +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeSummaryHeader.tsx +msgid "To at least" +msgstr "Не менее" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Order has expired" +msgstr "Срок действия заказа истек" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the amount that will be sold in each part of the TWAP order." +msgstr "Это сумма, которая будет продана в каждой части заказа TWAP." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Quote expired. Refreshing..." +msgstr "Истек срок действия предложения. Обновление..." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay" +msgstr "Сохранить погашение" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "The URL provided does not return a valid manifest file<0/><1>The server returned an HTML page instead of the expected JSON manifest.json file. Please check if the URL is correct and points to a valid hook dapp." +msgstr "Указанный URL не возвращает допустимый файл манифеста<0/><1>Сервер вернул HTML-страницу вместо ожидаемого манифеста JSON. son файл. Пожалуйста, проверьте, правильно ли URL и указывает на корректную дату хуков." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/FavoriteTokensList/index.tsx +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Favorite tokens" +msgstr "Избранные токены" + +#: libs/common-const/src/common.ts +msgid "Limit Orders" +msgstr "Лимит ордера" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts +msgid "Approved amount is not sufficient!" +msgstr "Одобренная сумма недостаточна!" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "funds" +msgstr "средства" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool details" +msgstr "Детали фонда" + +#: apps/cowswap-frontend/src/modules/tradeSlippage/containers/HighSuggestedSlippageWarning/index.tsx +msgid "Slippage adjusted to {slippageBpsPercentage}% to ensure quick execution" +msgstr "Проскальзывание скорректировано на {slippageBpsPercentage}% для обеспечения быстрого выполнения" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "Receive surplus of your order" +msgstr "Получить излишки вашего заказа" + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "CoW DAO Governance" +msgstr "Управление DAO" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add <0/> to {walletName}" +msgstr "Добавить <0/> в {walletName}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Orders on CoW Swap can either be market orders (which fill at the market price within the slippage tolerance you set) or limit orders (which fill at a price you specify)." +msgstr "Ордеры на CoW Swap могут быть либо рыночными ордерами (которые заполняются по рыночной цене в установленном допустимом разрешении проскальзывания) либо лимитными ордерами (которые заполняются по указанной вами цене)." + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at least" +msgstr "по крайней мере" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "m" +msgstr "м" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Lists" +msgstr "Списки" + +#: apps/cowswap-frontend/src/modules/usdAmount/apis/getBffUsdPrice.ts +msgid "Unexpected response from BFF: {stringifiedData}" +msgstr "Неожиданный ответ от BFF: {stringifiedData}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +msgid "parts" +msgstr "запчасти" + +#: apps/cowswap-frontend/src/modules/trade/pure/NetworkCostsRow/index.tsx +msgid "This is the cost of settling your order on-chain, including gas and any LP fees." +msgstr "Это стоимость оформить Ваш заказ по цепочке, включая газ и любые сборы LP." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "more signature is" +msgstr "больше подписи" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower minimal slippage (instead of {minEthFlowSlippageToSignificant}% minimum)" +msgstr "Меньше минимального проскальзывания (вместо {minEthFlowSlippageToSignificant}% минимум)" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Submit" +msgstr "Отправить" + +#: libs/common-const/src/common.ts +msgid "Account Overview" +msgstr "Обзор аккаунта" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +msgid "FREE order placement and cancellation" +msgstr "Бесплатное размещение и отмена заказа" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidget/TradeWidgetForm.tsx +msgid "You cannot edit this field when selling" +msgstr "Вы не можете редактировать это поле при продаже" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Current market price is <0><1/> and needs to go {marketPriceDirection} by <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) to execute your order at <6><7/>." +msgstr "Текущая рыночная цена <0><1/> и должна пойти {marketPriceDirection} <2><3/> <4>(<5>{percentageDifferenceInvertedFormatted}%) для выполнения ордера по <6><7/>." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "Selling {nativeSymbol} is only supported on SWAP orders." +msgstr "Продажа {nativeSymbol} поддерживается только в SWAP ордерах." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Wrap" +msgstr "Перенос" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/hooks.ts +msgid "Contract and chainId are not on the same chain" +msgstr "Контракт и идентификатор цепи не совпадают" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookRegistryList/index.tsx +msgid "Search hooks by title or description" +msgstr "Поиск хуков по заголовку или описанию" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Safe Nonce: <0>{nonce}" +msgstr "Сейф Нен: <0>{nonce}" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "You can protect all your Ethereum transactions from MEV - not just trades on CoW Swap - by installing MEV Blocker." +msgstr "Вы можете защитить все ваши Ethereum транзакции от MEV - а не просто торговать на CoW Swap - установив MEV Blocker." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "HTTPS is required. Please use <0>https://" +msgstr "Требуется HTTPS. Пожалуйста, используйте <0>https://" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Transaction in progress. See below for live status updates." +msgstr "Транзакция в процессе. Смотрите ниже для обновлений текущего статуса." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Please sign order" +msgstr "Пожалуйста, подпишите заказ" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "Order unlikely to execute" +msgstr "Порядок маловероятного выполнения" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Choose where to display the limit price input." +msgstr "Выберите, где отображать введенные ограничения цены." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Error loading price. You are currently offline." +msgstr "Ошибка загрузки цены. В настоящее время вы оффлайн." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Approve <0/> and {contextDefaultText}" +msgstr "Одобрить <0/> и {contextDefaultText}" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Minimum receive" +msgstr "Минимальное количество" + +#: apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +msgid "This address is blocked on the Uniswap Labs interface because it is associated with one or more" +msgstr "Этот адрес заблокирован в интерфейсе Uniswap Labs, потому что он связан с одним или несколькими" + +#: apps/cowswap-frontend/src/modules/twap/pure/PrimaryActionButton/index.tsx +msgid "Interval time too short" +msgstr "Время интервала слишком короткое" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step1.tsx +msgid "Order Expired" +msgstr "Заказ просрочен" + +#: apps/cowswap-frontend/src/common/pure/CurrencySelectButton/index.tsx +msgid "Selected token:" +msgstr "Выбранный токен:" + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "Out of range" +msgstr "Вне диапазона" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Since prices can change significantly over time, we suggest increasing your price protection for orders with long deadlines." +msgstr "Так как цены могут значительно меняться со временем, мы предлагаем увеличить вашу защиту цен на заказы с длительными сроками." + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "No surplus for the given time period" +msgstr "Нет излишков за указанный период времени" + +#: apps/cowswap-frontend/src/modules/notifications/containers/NotificationSidebar/index.tsx +msgid "Notifications" +msgstr "Уведомления" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "Trading mode" +msgstr "Режим торговли" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Connect your wallet" +msgstr "Подключите ваш кошелек" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Back" +msgstr "Назад" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "CoW Swap sets the standard for protecting against MEV attacks such as frontrunning and sandwiching." +msgstr "CoW Swap устанавливает стандарт защиты от MEV атаки, таких как frontrunning и sandwiching." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive exactly" +msgstr "Вы получите ровно" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter an amount" +msgstr "Введите сумму" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Added <0/>" +msgstr "Добавлено <0/>" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Transaction Failed" +msgstr "Транзакция не удалась" + +#: apps/cowswap-frontend/src/legacy/components/Header/NetworkSelector/index.tsx +msgid "Select a network" +msgstr "Выберите сеть" + +#: libs/common-utils/src/tooltips.ts +msgid "Minimum tokens you'll receive." +msgstr "Минимальное количество токенов, которые вы получите." + +#: apps/cowswap-frontend/src/modules/notifications/pure/TelegramConnectionStatus/index.tsx +#~ msgid "Connected <0/>" +#~ msgstr "Connected <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Choose a custom deadline for your limit order" +msgstr "Выберите пользовательский срок для вашего лимитного ордера" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Cancelled order" +msgstr "Отмененный заказ" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "CoW AMM Deposit" +msgstr "Депозит CW AMM" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Limit Order Settings" +msgstr "Ограничить параметры заказа" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +msgid "on {chainLabel}" +msgstr "на {chainLabel}" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeButtons/limitOrdersTradeButtonsMap.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Invalid price. Try increasing input/output amount." +msgstr "Неправильная цена. Попробуйте увеличить ввод/вывод." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" +#~ msgstr "Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWarnings/index.tsx +msgid "Token approval bundling" +msgstr "Пакет одобрения токенов" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "New" +msgstr "Новый" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +msgid "Approval amount" +msgstr "Одобрение суммы" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "Approving" +#~ msgstr "Approving" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "https:// or ipfs:// or ENS name" +msgstr "https:// или ipfs:// или ENS имя" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +msgid "Trade tokens" +msgstr "Торговые токены" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Boost Your Yield with One-Click Conversion" +msgstr "Увеличьте ваш показатель с помощью преобразования в один клик" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Vested" +msgstr "Вложенный" + +#: apps/cowswap-frontend/src/modules/wallet/pure/WalletModal/styled.tsx +msgid "Learn more about wallets" +msgstr "Узнайте больше о кошельках" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "This is the estimated amount you will receive for each part of the TWAP order." +msgstr "Это примерная сумма, которую вы получите за каждую часть заказа TWAP." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Repay with Collateral Flashloan" +msgstr "Освободить погашение с помощью сопутствующего Flashloan" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Hooks" +msgstr "Хуки" + +#: apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +#~ msgid "for trading" +#~ msgstr "for trading" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at most " +msgstr "максимум " + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "This hook allows you to withdraw rewards from your Gnosis Chain validators through CoW Swap. It automates the process of interacting with the Gnosis Deposit Contract, enabling you to claim any available rewards directly to your specified withdrawal address. The hook monitors your validator's accrued rewards and triggers the claimWithdrawals function when rewards are ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring ready for withdrawal. This simplifies the management of Gnosis validator earnings without requiring manual contract interaction, providing a smoother and more efficient experience for users." +msgstr "Этот хук позволяет снимать вознаграждения с вашей Gnosis Chain validators через CoW Swap. Он автоматизирует процесс взаимодействия с Договором депозита Gnosis, позволяя Вам получить все доступные награды непосредственно на указанный Вами адрес снятия. Хук следит за начисленными наградами вашего валидатора и активирует функцию снятия претензий, когда вознаграждение будет готово к выводу. Это упрощает управление доходами в системе Gnosis без необходимости готовых к выводу. Это упрощает управление доходами от Gnosis без необходимости ручного взаимодействия с контрагентами, обеспечивая более гладкий и более эффективный опыт для пользователей." + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "Sandwich icon" +msgstr "Значок Сэндвича" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Network compatibility error" +msgstr "Ошибка совместимости сети" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: URLs cannot contain spaces" +msgstr "Недопустимый URL: URL-адреса не могут содержать пробелы" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Enter valid list location" +msgstr "Введите правильное расположение списка" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "View" +msgstr "Вид" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Execution price" +msgstr "Цена исполнения" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenSearchContent/index.tsx +msgid "No tokens found" +msgstr "Маркеры не найдены" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/TokenTags/index.tsx +msgid "Unsupported" +msgstr "Не поддерживается" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "seconds" +msgstr "секунд" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "token before creation." +msgstr "токен перед созданием." + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "at least " +msgstr "по крайней мере " + +#: apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +msgid "Recover funds from {accountProxyLabelString}" +msgstr "Возврат средств с {accountProxyLabelString}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +msgid "The address that will receive the tokens on the destination chain." +msgstr "Адрес, который будет получать токены в цепочке назначения." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Creation" +msgstr "Создание" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "AFTER" +msgstr "ПОСЛЕ" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "<0/><1/>Consider waiting for lower network costs.<2/><3/>You may still move forward with this swap but a high percentage of it will be consumed by network costs." +msgstr "<0/><1/>Рассмотрим возможность ожидания более низких сетевых затрат.<2/><3/>Вы все еще можете двигаться вперед с этим заменом, но большая часть этого времени будет потребляться сетевыми расходами." + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Swapping on" +msgstr "Переключение на" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "(Fill or Kill)" +msgstr "(Заполнить или Убить)" + +#: apps/cowswap-frontend/src/pages/games/MevSlicer/index.tsx +msgid "Play MEV Slicer" +msgstr "Играть в MEV Slicer" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "Refreshing quote..." +msgstr "Обновление кавычки..." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "was sent to" +msgstr "был отправлен" + +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +msgid "Deposit" +msgstr "Пополнение" + +#: apps/cowswap-frontend/src/modules/twap/containers/ActionButtons/index.tsx +msgid "Review TWAP order" +msgstr "Просмотреть порядок TWAP" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid manifest format: Missing \"cow_hook_dapp\" property in manifest.json" +msgstr "Недопустимый формат манифеста: отсутствует свойство \"cow_hook_dapp\" в manifest.json" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Click \"Approve {wrappedSymbol}\" to try again." +msgstr "Нажмите \"Подтвердить {wrappedSymbol}\", чтобы повторить попытку." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/PreHookButton/index.tsx +msgid "Add Pre-Hook Action" +msgstr "Действие перед закрытием" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Page {page} of {maxPage}" +msgstr "Страница {page} из {maxPage}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Each time you claim, you will receive the entire claimable amount." +msgstr "Каждый раз, когда вы заказываете, вы получите всю подлежащую возмещению сумму." + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportListModal/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenListItem/index.tsx +#: apps/cowswap-frontend/src/modules/tokensList/pure/ImportTokenModal/index.tsx +msgid "Import" +msgstr "Импорт" + +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "Order params invalid sellToken address for token: {stringifiedJSON}" +msgstr "Недопустимый адрес sellToken для параметра заказа: {stringifiedJSON}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Enable Partial Executions" +msgstr "Включить частичные исполнения" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactWarning/index.tsx +msgid "I acknowledge the high price impact" +msgstr "Я признаю большое ценовое влияние" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Failed" +msgstr "Сбой моделирования" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Successfully claimed" +msgstr "Успешно получено" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Call any smart contract with your own parameters" +msgstr "Позвоните любому смарт-контракту с вашими параметрами" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Switch to the classic {wrappedSymbol} experience and benefit!" +msgstr "Переключитесь на классическую {wrappedSymbol} и преимущества!" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Add {hookTypeText}-hook" +msgstr "Добавить {hookTypeText}-хук" + +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order filled" +msgstr "Заказ выполнен" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm swap" +msgstr "Подтвердить замену" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Part of a {twapOrderN}-part TWAP order split" +msgstr "Часть раздела {twapOrderN} части TWAP ордера" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claim COW <0/>" +msgstr "Получить COW <0/>" + +#: apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +msgid "Bridged via" +msgstr "Мост через" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" +#~ msgstr "Swap bridged via your {ACCOUNT_PROXY_LABEL}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulation report" +msgstr "Отчет по моделированию" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Tip: Custom tokens are stored locally in your browser" +msgstr "Совет: Пользовательские токены хранятся локально в вашем браузере" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You receive at least" +msgstr "Вы получаете по крайней мере" + +#: apps/cowswap-frontend/src/common/pure/ChainPrefixWarning/index.tsx +msgid "You are connected to" +msgstr "Вы подключены к" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +msgid "Unknown hook dapp" +msgstr "Неизвестное приложение для хука" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Swap now" +msgstr "Поменять" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "An unexpected error occurred" +msgstr "Произошла непредвиденная ошибка" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +msgid "Add" +msgstr "Добавить" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +msgid "Confirm Swap and Bridge" +msgstr "Подтверждение смены и моста" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The order will start when it is validated and executed in your Safe." +msgstr "Заказ начнется после его подтверждения и исполнения в вашем Сейфе." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/ConfirmButton.tsx +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormBlankButton/index.tsx +msgid "Confirm with your wallet" +msgstr "Подтвердите с помощью кошелька" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +#~ msgid "Swaps just got smarter" +#~ msgstr "Swaps just got smarter" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Стоимость замены по крайней мере {formattedFeePercentage}% от суммы замены" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Limit orders on CoW Swap capture surplus - so if the price moves in your favor, you're likely to get more than you asked for." +msgstr "Лимит ордера на покупку заменителя - поэтому, если цена движется в вашем любимом стиле, вы получите больше, чем вы запросили его." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Avg. execution price" +msgstr "Средняя цена исполнения" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Hook position mismatch:" +msgstr "Позиция обработчика не совпадает:" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx +msgid "Loading hook..." +msgstr "Загрузка хука..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Terms and Conditions" +msgstr "Правила и Условия" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "Hide today's fortune cookie" +msgstr "Скрыть печенье фортуны" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/index.tsx +msgid "Post Hooks" +msgstr "Хуки поста" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "How do I recover my funds from {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDetailHeader/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Not compatible with current wallet type" +msgstr "Не совместимо с текущим типом кошелька" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +#~ msgid "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." +#~ msgstr "The \"Total duration\" is the duration it takes to execute all parts of your TWAP order.<0/><1/>For instance, your order consists of<2>{parts} partsplaced every<3>{partDurationDisplay}, the total time to complete the order is<4>{totalDurationDisplay}. Each limit order remains open for<5>{partDurationDisplay}until the next part becomes active." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +msgid "on explorer" +msgstr "в обозревателе" + +#: apps/cowswap-frontend/src/common/hooks/useGetReceipt.ts +msgid "No provider yet" +msgstr "Нет провайдера" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Your trade will be executed in 2 stops. First, you swap on <0>{COW_PROTOCOL_NAME} (Stop 1), then you bridge via <1>{providerInfoName} (Stop 2)." +msgstr "Ваша сделка будет выполнена в 2 остановки. Во-первых, вы замените <0>{COW_PROTOCOL_NAME} (верхний 1), затем вы мостаетесь через <1>{providerInfoName} (верхний 2)." + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +msgid "Wallet chainId differs from app chainId. Wallet: {networkString}, App: {chainId}. Action: {description}" +msgstr "Кошелечная цепочка отличается от цепи приложений. Кошелек: {networkString}, App: {chainId}. Действие: {description}" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Executes at" +msgstr "Выполняется в" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmount/index.tsx +msgid "From (incl. costs)" +msgstr "От (включая затраты)" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Aave Collateral Swap Flashloan" +msgstr "Флэш-кредит для сохранения сопутствующего обмена" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "order executes at" +msgstr "ордер исполняется в" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Information" +msgstr "Информация" + +#: apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +msgid "The total surplus CoW Swap has generated for you in {nativeSymbol} across all your trades since {startDate}" +msgstr "Общий излишек CoW Swap для Вас сформировал в {nativeSymbol} по всем сделкам с {startDate}" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +msgid "For this order, network costs would be" +msgstr "Для этого заказа, сетевые расходы будут" + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +#: apps/cowswap-frontend/src/common/pure/CancellationModal/index.tsx +msgid "Canceling your order" +msgstr "Отмена заказа" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "{solversLength} out of {totalSolvers} solvers" +msgstr "{solversLength} из {totalSolvers} решений" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "Something went wrong" +msgstr "Что-то пошло не так" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add the app at your own risk" +msgstr "Добавьте приложение на свой риск" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Unknown Currency" +msgstr "Неизвестная валюта" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step3.tsx +msgid "Receive {tokenLabel}" +msgstr "Получить {tokenLabel}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ChangeApproveAmountModal/ChangeApproveAmountModalPure.tsx +msgid "Set approval amount" +msgstr "Установить сумму одобрения" + +#: apps/cowswap-frontend/src/modules/fortune/containers/FortuneWidget/index.tsx +msgid "CoW Fortune of the day" +msgstr "CoW Фортуна дня" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Order ID" +msgstr "ID Заказа" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "The order was executed before it could be cancelled." +msgstr "Ордер был выполнен, прежде чем он может быть отменен." + +#: apps/cowswap-frontend/src/common/utils/tradeSettingsTooltips.tsx +msgid "a native currency" +msgstr "родная валюта" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm order" +msgstr "Подтвердите заказ" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Pending pre-signature" +msgstr "Ожидает предварительной подписи" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "If your orders often expire, consider increasing your slippage or contact us on" +msgstr "Если ваши заказы часто истекают, попробуйте увеличить свои проскальзывания или свяжитесь с нами" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "The good news" +msgstr "Хорошие новости" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "yield" +msgstr "доходность" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "Swap completed" +msgstr "Обмен завершен" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/LpTokenLists/index.tsx +msgid "Pool" +msgstr "Пул" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Allow you to chose whether your limit orders will be <0>Partially fillable or <1>Fill or kill.<2/><3/><4>Fill or kill orders will either be filled fully or not at all.<5/><6>Partially fillable orders may be filled partially if there isn't enough liquidity to fill the full amount." +msgstr "Выберите, будут ли ваши лимитные ордера <0>Частично заполнены или <1>Заполнить или убить .<2/><3/><4>Заполнение или убийство ордера будут либо выполнены полностью, либо вообще не будут выполнены.<5/><6>Частично заполняемые ордеры могут быть исполнены частично, если недостаточно ликвидности для пополнения полной суммы." + +#: apps/cowswap-frontend/src/modules/trade/pure/UnlockWidgetScreen/index.tsx +msgid "Learn more about <0>{orderType} orders ↗" +msgstr "Подробнее о <0>{orderType} заказах ↗️" + +#: apps/cowswap-frontend/src/common/pure/NetworksList/index.tsx +msgid "NEW" +msgstr "НОВЫЙ" + +#: apps/cowswap-frontend/src/common/containers/OrderHooksDetails/HookItem/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation successful" +msgstr "Моделирование завершено" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapStatusAndToggle/index.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "part" +msgstr "часть" + +#: apps/cowswap-frontend/src/modules/swap/pure/CrossChainUnlockScreen/index.tsx +msgid "Cross-chain swaps are here" +msgstr "Перекрестные цепочки здесь" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +#~ msgid "Approval amount:" +#~ msgstr "Approval amount:" + +#: apps/cowswap-frontend/src/legacy/components/CowSubsidyModal/SubsidyTable.tsx +msgid "Fee discount" +msgstr "Скидка за оплату" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +msgid "Allow CoW Swap to use your <0/>" +msgstr "Разрешить CoW подкачку использовать <0/>" + +#: apps/cowswap-frontend/src/modules/twap/utils/deadlinePartsDisplay.ts +msgid "mo" +msgstr "мес" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/fields/SafeTxFields.tsx +msgid "Safe logo" +msgstr "Логотип Safe" + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +#: apps/cowswap-frontend/src/modules/trade/containers/WrapNativeModal/index.tsx +msgid "Wrapping" +msgstr "Упаковка" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +msgid "Provided proxy address does not match {accountProxyLabelString} address!, recipient={recipient}, proxyAddress={proxyAddress}" +msgstr "Указанный адрес прокси не совпадает с {accountProxyLabelString} -адресом!, получатель={recipient}, proxyAddress={proxyAddress}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +msgid "At current gas prices, your remaining {nativeSymbol} balance after confirmation may be <0>insufficient for any further on-chain transactions." +msgstr "По текущим ценам на газ, оставшийся баланс {nativeSymbol} после подтверждения может быть <0>недостаточным для дальнейших операций в цепочке." + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +msgid "for at least" +msgstr "хотя бы для" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet to recover funds" +msgstr "Подключите кошелек для восстановления средств" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Failed to load manifest. Please verify the URL and try again." +msgstr "Не удалось загрузить манифест. Проверьте URL-адрес и повторите попытку." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Order Created" +msgstr "Заказ создан" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/OrdersTabs.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/index.tsx +msgid "signing" +msgstr "подпись" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#~ msgid "Cow meditating..." +#~ msgstr "Cow meditating..." + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "About CoW Swap" +msgstr "О CoW Swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Unlike on other exchanges, you won't be charged for this! Feel free to" +msgstr "В отличие от других обменных пунктов, вы не будете платить за это! Не стесняйтесь" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/ClaimGnoHookApp/index.tsx +msgid "Error loading the claimable amount" +msgstr "Ошибка загрузки подлежащей возмещению суммы" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPriceProtectionWarning.tsx +msgid "Attention" +msgstr "Внимание" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/SelectTokenModal/SelectTokenModalContent.tsx +msgid "This route is not yet supported." +msgstr "Этот маршрут еще не поддерживается." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires sufficient" +msgstr "Порядок остается открытым. Выполнение требует достаточного" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Connect signer" +msgstr "Подключить подписчика" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +msgid "Connect wallet banner" +msgstr "Подключить баннер кошелька" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "The Safe App License Fee incurred here is charged by the Safe Foundation for the display of the app within their Safe Store. The fee is automatically calculated in this quote. Part of the fees will contribute to the CoW DAO treasury that supports the CoW Community." +msgstr "Введенная здесь лицензионная плата Safe App оплачивается компанией Safe Foundation для отображения приложения в своем Safe Store. Комиссия автоматически рассчитывается в этой котировке. Часть сборов будет вносить вклад в сокровищницу CoW DAO, поддерживающую Сообщество CoW." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "win" +msgstr "победа" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "This order needs to be signed and executed with your {walletType} wallet" +msgstr "Заказ должен быть подписан и исполнен с вашего кошелька {walletType}" + +#: apps/cowswap-frontend/src/modules/wallet/pure/PendingView/index.tsx +msgid "Try Again" +msgstr "Попробовать ещё раз" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "The order remains open. Execution requires adequate allowance for" +msgstr "Приказ остается открытым. Выполнение требует соответствующей выплаты" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExpiredStep.tsx +msgid "Your order expired" +msgstr "Срок действия вашего ордера истек" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Add custom hook" +msgstr "Добавить пользовательский хук" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTableRow.tsx +msgid "Approve {symbol}" +msgstr "Утвердить {symbol}" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/DeadlineSelector/index.tsx +msgid "Must be after {minDateStr} {timeZone}" +msgstr "Должно быть после {minDateStr} {timeZone}" + +#: apps/cowswap-frontend/src/common/pure/RateInfo/index.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/containers/TradeRateDetails/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/ExecutionPriceTooltip/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/LimitPriceRow.tsx +msgid "Limit price" +msgstr "Ограничить цену" + +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Buy" +msgstr "Купить" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +msgid "is required" +msgstr "обязательно" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Operation in progress!" +msgstr "Выполняется операция!" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "The Morpho Borrow hook enables users to seamlessly combine swaps with borrow-related actions. Users can enter new positions, leave existing ones, or move between different markets through a unified, streamlined process." +msgstr "Hook Morpho Borrow позволяет пользователям легко комбинировать откаты с действиями, связанными с заимствованием. Пользователи могут входить в новые позиции, оставлять существующие или перемещаться между различными рынками через унифицированный упорядоченный процесс." + +#: apps/cowswap-frontend/src/modules/trade/const/common.ts +msgid "When enabled, the orders table will be displayed on the left side on desktop screens. On mobile, the orders table will always be stacked below." +msgstr "Если включено, таблица ордеров будет отображаться на экранах рабочего стола. На мобильных устройствах таблица ордеров будет всегда складываться ниже." + +#: apps/cowswap-frontend/src/pages/Account/Governance.tsx +msgid "View proposals" +msgstr "Просмотреть предложения" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/steps/Step2.tsx +msgid "Creating Order" +msgstr "Создание заказа" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/LpTokenPage/index.tsx +msgid "Select" +msgstr "Выбрать" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Confirm {orderType}" +msgstr "Подтвердить {orderType}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +msgid "Route" +msgstr "Маршрут" + +#: apps/cowswap-frontend/src/common/pure/PriceImpactIndicator/index.tsx +msgid "Price impact due to current liquidity levels" +msgstr "Влияние цены в связи с текущими уровнями ликвидности" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap costs are at least {formattedFeePercentage}% of the swap amount and bridge costs are at least {formattedBridgeFeePercentage}% of the swap amount" +msgstr "Расходы на замену по крайней мере составляют {formattedFeePercentage}% от суммы замены и расходы на мост по крайней мере {formattedBridgeFeePercentage}% от суммы замены" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SlippageTooltip/index.tsx +msgid "MEV-protected slippage" +msgstr "MEV-защищённое проскальзывание" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +#~ msgid "Swap bridged via your {accountProxyLabelString}: <0/>" +#~ msgstr "Swap bridged via your {accountProxyLabelString}: <0/>" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/hooks/useClaimData.ts +msgid "There was an error trying to load claimable tokens" +msgstr "Произошла ошибка при попытке загрузить присвоенные токены" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Learn" +msgstr "Учить" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "This price is {displayedPercent}% lower than current market price. You could be selling your <0/> at a loss! Click on \"Market price\" to set your limit price to the current market price." +msgstr "Эта цена на {displayedPercent}% ниже текущей рыночной цены. Вы можете продать свой <0/> с убытком! Нажмите «Рыночная цена», чтобы установить лимитную цену равной текущей рыночной цене." + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +#~ msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." +#~ msgstr "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. If you sign a new one, only one order can fill. Continue with current permit amount or choose full approval so all orders can be filled." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Continue swap with {wrappedSymbol}" +msgstr "Продолжить обмен с {wrappedSymbol}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Light mode" +msgstr "Светлый режим" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +msgid "The output token cannot be transferred. There may be an issue with the output token." +msgstr "Невозможно перенести выходной токен. Возможно проблема с маркером вывода." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and swap" +#~ msgstr "Approve and swap" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "The competition has started" +msgstr "Конкурс начался" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You will receive this price or better for your tokens." +msgstr "Вы получите эту цену или лучше для ваших токенов." + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/AirdropHookApp/index.tsx +msgid "Add Hook" +msgstr "Добавить крюк" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeWidgetLinks/index.tsx +msgid "select" +msgstr "выбрать" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Allow spending" +msgstr "Разрешить траты" + +#: apps/cowswap-frontend/src/pages/Account/Tokens/TokensOverview.tsx +msgid "Reset favorites" +msgstr "Сбросить избранное" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Wrap {nativeSymbol} failed" +msgstr "Ошибка переноса {nativeSymbol}" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "at most" +msgstr "максимум" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "View on explorer" +msgstr "Просмотр в обозревателе" + +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/common/updaters/orders/utils.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +msgid "for" +msgstr "для" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +msgid "Default approve" +msgstr "Подтверждение по умолчанию" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient balance on the current account." +msgstr "Заказ не может быть заполнен из-за недостаточного баланса на текущем счете." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "required" +msgstr "обязательный" + +#: apps/cowswap-frontend/src/modules/wallet/pure/Web3StatusInner/index.tsx +msgid "Wallet" +msgstr "Кошелек" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Before costs" +msgstr "Перед расходами" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Market orders are always <0>Fill or kill, while limit orders are by default <1>Partially fillable, but can also be changed to <2>Fill or kill through your order settings." +msgstr "Рыночные ордера всегда <0>Заполнить или убить , в то время как лимитные ордера по умолчанию <1>Выполняются частично, но также может быть изменено на <2>Заполнить или убить через настройки заказа." + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "The first part of your TWAP order will become active as soon as you confirm the order below." +msgstr "Первая часть вашего заказа TWAP станет активной, как только вы подтвердите заказ." + +#. js-lingui-explicit-id +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "solver-rankings" +#~ msgstr "{0}" + +#: apps/cowswap-frontend/src/modules/ordersTable/const/tabs.ts +msgid "All orders" +msgstr "Все заказы" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "If CoW Swap cannot get this price or better (taking into account fees and price protection tolerance), your TWAP will not execute. CoW Swap will <0>always improve on this price if possible." +msgstr "Если CoW Swap не может получить эту цену или лучше (учитывая плату за учет и толерантность цены), ваш TWAP не будет выполнен. Конвертер будет <0>всегда улучшаться по этой цене." + +#: apps/cowswap-frontend/src/pages/error/AnySwapAffectedUsers/index.tsx +msgid "In order to protect your funds, you will need to remove the approval on this contract." +msgstr "Чтобы защитить ваши средства, вам нужно будет удалить одобрение этого контракта." + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Advanced" +msgstr "Расширенные" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Not yet supported" +msgstr "Ещё не поддерживается" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookListItem/index.tsx +msgid "Remove" +msgstr "Удалить" + +#: apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +msgid "Order cannot be filled due to insufficient allowance" +msgstr "Заказ не может быть исполнен из-за недостаточной суммы" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "turn on expert mode" +msgstr "включить режим эксперта" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Insufficient liquidity for this trade." +msgstr "Недостаточная ликвидность для этой сделки." + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Buying native currency with smart contract wallets is not currently supported" +msgstr "Покупка родной валюты с смарт-кошельками контракта в настоящее время не поддерживается" + +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/useLabelsAndTooltips.tsx +msgid "Expected to sell" +msgstr "Ожидается продажа" + +#: apps/cowswap-frontend/src/modules/trade/containers/TradeBasicConfirmDetails/index.tsx +msgid "This is the minimum amount that you will receive." +msgstr "Это минимальная сумма, которую вы получите." + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "Claiming COW..." +msgstr "Получение COW..." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +msgid "continue with this swap" +msgstr "продолжить с этим обменом" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Could not connect to the provided URL. Please check if the URL is correct and the server is accessible." +msgstr "Не удалось подключиться к предоставленному URL. Пожалуйста, проверьте, правильно ли URL-адрес и сервер доступен." + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "Pending execution" +msgstr "В ожидании исполнения" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/index.tsx +msgid "Place TWAP order" +msgstr "Разместить заказ TWAP" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ChunkLoadError.tsx +msgid "Reload page" +msgstr "Перезагрузить страницу" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Enter a valid recipient" +msgstr "Введите верного получателя" + +#: apps/cowswap-frontend/src/modules/onchainTransactions/updaters/FinalizeTxUpdater/services/finalizeEthFlowTx.ts +msgid "Failed to place order selling {nativeCurrencySymbol}" +msgstr "Не удалось разместить заказ продажи {nativeCurrencySymbol}" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/SellNativeWarningBanner/index.tsx +msgid "native" +msgstr "родной" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/RateImpactIndicator/index.tsx +msgid "Your order will execute when the market price is {displayedPercent}% better than the current market price." +msgstr "Ваш ордер будет выполняться, когда рыночная цена {displayedPercent}выше текущей рыночной цены." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +msgid "Recover funds" +msgstr "Возврат средств" + +#: apps/cowswap-frontend/src/common/pure/CancelButton/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderContextMenu.tsx +msgid "Cancel order" +msgstr "Отменить заказ" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Your order was created on this date & time. It will remain open until it expires or is filled." +msgstr "Ваш заказ был создан на эту дату и время. Он будет оставаться открытым до тех пор, пока он не истечет или не будет исполнен." + +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldConfirmModal/index.tsx +msgid "Confirm Swap" +msgstr "Подтверждение смены" + +#: apps/cowswap-frontend/src/modules/bridge/pure/ProxyAccountBanner/index.tsx +msgid "Modified recipient address to" +msgstr "Изменен адрес получателя на" + +#: apps/cowswap-frontend/src/api/cowProtocol/errors/OperatorError.ts +#~ msgid "Something failed. Please try again later." +#~ msgstr "Something failed. Please try again later." + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/HookSearchInput/index.tsx +msgid "Search hooks..." +msgstr "Поиск хуков..." + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/CountDown.tsx +msgid "{value} sec" +msgstr "{value} сек" + +#: apps/cowswap-frontend/src/modules/injectedWidget/utils/validatePartnerFee.ts +msgid "Partner fee recipient must be set!" +msgstr "Должен быть указан получатель партнерской комиссии!" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Unlock Enhanced Yield Features" +msgstr "Разблокировать улучшенные возможности Yield" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Recover!" +msgstr "Восстановление!" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +#: apps/cowswap-frontend/src/modules/limitOrders/pure/EstimatedFillPrice/index.tsx +msgid "Estimated fill price" +msgstr "Предполагаемая цена заливки" + +#: apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx +msgid "Transaction failed" +msgstr "Транзакция не удалась" + +#: apps/cowswap-frontend/src/common/pure/PermitModal/index.tsx +msgid "Approve spending <0/> <1/> on CoW Swap" +msgstr "Утвердить расходы <0/> <1/> на CoW подкачке" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Status" +msgstr "Статус" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/PoolInfo/index.tsx +msgid "higher" +msgstr "выше" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/RateInput/index.tsx +msgid "When locked, the limit price stays fixed when changing the amounts. When unlocked, the limit price will update based on the amount changes." +msgstr "При блокировке лимитная цена остается фиксированной при изменении сумм. При разблокировке лимитная цена обновится на основании изменений суммы." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "For this order, network costs would be <0>{formattedFeePercentage}% (<1/>) of your sell amount! Therefore, your order is unlikely to execute." +msgstr "Для этого заказа, сетевые расходы будут <0>{formattedFeePercentage}% (<1/>) вашей суммы продажи! Поэтому ваш ордер вряд ли будет выполнен." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are approving an amount equal to or greater than the input amount." +msgstr "Проверьте, что вы подтверждаете сумму, равную или превышающую вводную сумму." + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge cases." +msgstr "Поскольку этот контракт временно удерживает средства, существует возможность того, что средства могут застрять в некоторых краевых случаях." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/ExecutingStep.tsx +msgid "Best price found!" +msgstr "Найдена лучшая цена!" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "Bridging succeeded" +msgstr "Замотка прошла успешно" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Tokens must be different" +msgstr "Токены должны отличаться" + +#: apps/cowswap-frontend/src/legacy/hooks/useGetSafeTxInfo.ts +msgid "There is no provider to get Gnosis safe info" +msgstr "Нет провайдера для получения безопасной информации о Gnosis" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Expired order" +msgstr "Истекший заказ" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AppliedHookItem/index.tsx +msgid "Simulation Successful" +msgstr "Моделирование завершено" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "Partial approval may block <0>{ordersWithPermitLength} other {orderWord}" +msgstr "Частичное утверждение может блокировать <0>{ordersWithPermitLength} другой {orderWord}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +msgid "Destination transaction" +msgstr "Целевая транзакция" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/pure/NetworkCostsTooltipSuffix.tsx +msgid "Because you are using a smart contract wallet" +msgstr "Так как вы используете смарт-кошелек с контрактом" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/legacy/utils/trade.ts +#: apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/SwapStepRow.tsx +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +#: apps/cowswap-frontend/src/modules/swap/containers/SwapConfirmModal/index.tsx +#: apps/cowswap-frontend/src/modules/swap/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/TradeButtons/index.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +#: apps/cowswap-frontend/src/utils/orderUtils/getUiOrderType.ts +#: libs/common-const/src/common.ts +msgid "Swap" +msgstr "Поменять" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/constants.ts +msgid "Advanced users can create complex, conditional orders directly through CoW Protocol. Read the docs for more info." +msgstr "Продвинутые пользователи могут создавать сложные условные заказы непосредственно через протокол CoW. Читайте документацию для получения дополнительной информации." + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "To continue, click below to wrap your {nativeSymbol} to {wrappedSymbol} via an on-chain ERC20 transaction." +msgstr "Чтобы продолжить, нажмите ниже, чтобы перенести ваш {nativeSymbol} на {wrappedSymbol} с помощью цепной транзакции ERC20." + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/HighFeeWarningTooltipContent.tsx +msgid "Current bridge costs make up <0><1>{formattedBridgeFeePercentage}% of your swap amount." +msgstr "Текущие расходы моста составляют <0><1>{formattedBridgeFeePercentage}% от суммы замены." + +#: apps/cowswap-frontend/src/legacy/components/Badge/RangeBadge.tsx +msgid "In range" +msgstr "В диапазоне" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "This hook is not compatible with smart contract wallets. It only supports EOA wallets." +msgstr "Этот хук несовместим с смарт-контрактными кошельками. Он поддерживает только кошельки EOA." + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/LimitOrdersDetails/index.tsx +msgid "Order expires" +msgstr "Срок действия заказа истекает" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartVolumeWarning.tsx +msgid "Minimum sell size" +msgstr "Минимальный размер продажи" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Min. to deposit" +msgstr "Мин. для пополнения" + +#: apps/cowswap-frontend/src/pages/games/CowRunner/index.tsx +msgid "MEV is lethal these days!" +msgstr "MEV является смертельным в эти дни!" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/PartnerFeeRow/index.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/RowFeeContent/index.tsx +msgid "FREE" +msgstr "БЕСПЛАТНЫЙ" + +#: apps/cowswap-frontend/src/modules/twap/const.ts +msgid "1 Week" +msgstr "1 неделя" + +#: apps/cowswap-frontend/src/modules/tradeFlow/hooks/useHandleSwap.ts +msgid "Eth flow context is not ready" +msgstr "Контекст Eth потока не готов" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "There are no orders" +msgstr "Нет заказов" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "ENS recipient not supported for Swap and Bridge. Use address instead." +msgstr "ENS получатель не поддерживается для подкачки и моста. Используйте адрес." + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Enough signatures" +msgstr "Достаточная подпись" + +#: apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +msgid "Legal" +msgstr "Юридическая информация" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "You will be prompted to <0>wrap your {nativeSymbol} to {wrappedSymbol} before placing your order." +msgstr "Вам будет предложено сделать <0>обернуть ваш {nativeSymbol} на {wrappedSymbol} перед оформлением заказа." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "Cancelling {ordersCount} orders" +msgstr "Отмена заказов {ordersCount}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "User rejected signing COW claim transaction" +msgstr "Пользователь отклонил подпись COW транзакции" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +msgid "Cancelled" +msgstr "Отменено" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Invalid parameters" +msgstr "Неверные параметры" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/SmallVolumeWarningBanner/index.tsx +msgid "Small orders are unlikely to be executed" +msgstr "Маленькие заказы вряд ли будут выполнены" + +#: apps/cowswap-frontend/src/utils/orderUtils/getFilledAmounts.ts +msgid "bought" +msgstr "купил" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Cancellation transaction" +msgstr "Отмена транзакции" + +#: apps/cowswap-frontend/src/modules/wallet/containers/AccountSelectorModal/index.tsx +msgid "{walletName} account changed" +msgstr "Аккаунт {walletName} изменен" + +#: apps/cowswap-frontend/src/legacy/components/Tokens/TokensTable.tsx +msgid "Value" +msgstr "Значение" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "You sell" +msgstr "Вы продаете" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Longer limit orders - place orders for up to a year." +msgstr "Более длинные лимитные ордера - размещать заказы на срок до года." + +#: apps/cowswap-frontend/src/common/containers/MultipleOrdersCancellationModal/index.tsx +msgid "User rejected signing the cancellation" +msgstr "Пользователь отклонил отмену" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +msgid "Loading {accountProxyLabel}" +msgstr "Загрузка {accountProxyLabel}" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageListsAndTokens/index.tsx +msgid "Manage" +msgstr "Управлять" + +#: apps/cowswap-frontend/src/modules/zeroApproval/containers/ZeroApprovalModal/ZeroApprovalModal.tsx +msgid "Reset {symbol} allowance to 0 before setting new spending cap" +msgstr "Сброс разрешения {symbol} на 0 перед установкой новой капилки расходов" + +#: apps/cowswap-frontend/src/pages/Account/Delegate.tsx +msgid "Delegate Now" +msgstr "Делегировать сейчас" + +#: apps/cowswap-frontend/src/modules/trade/pure/LimitOrdersPromoBanner/index.tsx +msgid "Try new limit orders now" +msgstr "Попробовать лимитные ордера сейчас" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Custom Tokens" +msgstr "Пользовательские токены" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Remove liquidity from a Uniswap v2 Weighted pool before the swap" +msgstr "Удалить ликвидность из Uniswap v2 взвешенного пула перед заменой" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookDappDetails/index.tsx +msgid "Hook version" +msgstr "Версия Хука" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Spender" +msgstr "Тендер" + +#: apps/cowswap-frontend/src/modules/trade/pure/CompatibilityIssuesWarning/index.tsx +msgid "<0>CoW Swap requires offline signatures, which is currently not supported by some wallets.<1>Read more in the <2>FAQ." +msgstr "<0>CoW Swap требует автономных подписей, которые в настоящее время не поддерживаются некоторыми кошельками.<1>Подробнее читайте в <2>Часто задаваемые вопросы." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TopSections.tsx +#: apps/cowswap-frontend/src/modules/orders/updaters/OrdersNotificationsUpdater/handlers.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/TwapOrderStatus/index.tsx +msgid "Order expired" +msgstr "Срок действия заказа истек" + +#: apps/cowswap-frontend/src/modules/hooksStore/containers/TenderlySimulate/index.tsx +msgid "Simulate" +msgstr "Имитация" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "Start time" +msgstr "Время начала" + +#: apps/cowswap-frontend/src/common/pure/OrderSubmittedContent/index.tsx +msgid "Continue" +msgstr "Продолжить" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +#~ msgid "CowSwap 404 not found" +#~ msgstr "CowSwap 404 not found" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +msgid "(also known as CoW Shed)" +msgstr "(также известный как CoW Shed)" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx +msgid "Loading bridge data <0/>" +msgstr "Загрузка данных моста <0/>" + +#: apps/cowswap-frontend/src/modules/limitOrders/containers/LimitOrdersWidget/index.tsx +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +#: apps/cowswap-frontend/src/modules/orders/pure/OrderSummary/summaryTemplates.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapConfirmModal/TwapConfirmDetails.tsx +msgid "Sell" +msgstr "Продать" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Use the <0/> to see {currentTabText}" +msgstr "Используйте <0/> чтобы увидеть {currentTabText}" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +msgid "Lower overall network costs" +msgstr "Снижение общих расходов на сеть" + +#: libs/common-utils/src/swapErrorToUserReadableMessage.tsx +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 "Произошла ошибка при попытке выполнить эту замену. Возможно вам нужно увеличить толерантность проскальзывания. Если это не сработает, может возникнуть несовместимость с торговым токеном. Примечание: комиссия за передачу и rebase токены несовместимы с Uniswap V3." + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/OrderWarning.tsx +msgid "If the balance remains insufficient at creation time, this order portion will not be created. Add more" +msgstr "Если остаток на момент создания недостаточен, эта часть заказа не будет создана. Добавить больше" + +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/index.tsx +msgid "Leverage advanced strategies for optimal growth" +msgstr "Передовые стратегии обеспечения оптимального роста" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +msgid "Try adjusting your search term or clearing the filter" +msgstr "Попробуйте изменить условия поиска или очистить фильтр" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ListItem/index.tsx +msgid "View List" +msgstr "Показать список" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Add liquidity to any of the CoW AMM pools" +msgstr "Добавить ликвидность в любой резерв AMM" + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +msgid "Invalid proxy address" +msgstr "Неверный адрес прокси" + +#: apps/cowswap-frontend/src/pages/Account/Balances.tsx +msgid "Convert vCOW to COW" +msgstr "Преобразовать vCOW в COW" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +msgid "Exec. price" +msgstr "Примерная цена" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +msgid "You sold <0/>" +msgstr "Вы продали <0/>" + +#: apps/cowswap-frontend/src/modules/tokensList/pure/ChainsSelector/index.tsx +msgid "Less" +msgstr "Меньше" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim your LlamaPay vesting contract funds" +msgstr "Запросите средства на содержание инвестиционного контракта LlamaPay" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +msgid "Est. bridge time <0/>" +msgstr "Эст. время моста <0/>" + +#: apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +msgid "Check that you are providing a sufficient gas limit for the transaction in your wallet." +msgstr "Проверьте, что вы обеспечиваете достаточный лимит газа для транзакции в кошельке." + +#: apps/cowswap-frontend/src/legacy/hooks/useWrapCallback.ts +msgid "Wrap {amountStr} {native} to {wrapped}" +msgstr "Перенос {amountStr} {native} в {wrapped}" + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Claim COW Airdrop" +msgstr "Востребовать COW Airdrop" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancelledStep.tsx +msgid "Your order was successfully cancelled." +msgstr "Ваш заказ был успешно отменен." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/SurplusModal.tsx +msgid "surplus cow" +msgstr "избыточная корова" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/HookTooltip/index.tsx +msgid "Post" +msgstr "Пост" + +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/BuildHookApp/index.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/dapps/PermitHookApp/index.tsx +msgid "Save changes" +msgstr "Сохранить изменения" + +#: apps/cowswap-frontend/src/legacy/components/swap/UnsupportedCurrencyFooter/index.tsx +msgid "CoW Swap does not support all tokens. Some tokens implement similar, but logically different ERC20 contract methods which do not operate optimally with CoW Protocol.<0>For more information, please refer to the <1>FAQ." +msgstr "CoW Swap не поддерживает все токены, некоторые токены реализуют схожие, но логически различные контрактные методы ERC20, которые не работают оптимально с CoW Протоколом. <0>Для получения дополнительной информации обратитесь к <1>Часто задаваемые вопросы." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/CancellingStep.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Cancelling" +msgstr "Отмена" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +msgid "Distance to market" +msgstr "Расстояние до рынка" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/BenefitComponents.tsx +msgid "Did you know?" +msgstr "Знаете ли вы?" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/SmallPartTimeWarning.tsx +msgid "Insufficient time between parts" +msgstr "Недостаточно времени между частями" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." +#~ msgstr "<0>Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to recover from CoW Shed." + +#: apps/cowswap-frontend/src/common/pure/Stepper/index.tsx +msgid "checkmark" +msgstr "галочка" + +#: apps/cowswap-frontend/src/modules/trade/containers/QuotePolingProgress/index.tsx +msgid "Quote will be updated in {time}" +msgstr "Цитата будет обновлена в {time}" + +#: apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +msgid "Dark mode" +msgstr "Темный режим" + +#: apps/cowswap-frontend/src/common/pure/ReceiveAmountInfo/index.tsx +msgid "Bridge costs" +msgstr "Стоимость моста" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "View cancellation" +msgstr "Просмотр отмены" + +#: apps/cowswap-frontend/src/common/pure/LoadingApp/index.tsx +msgid "Loading" +msgstr "Загрузка" + +#: apps/cowswap-frontend/src/common/constants/routes.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/OrderTypeField.tsx +msgid "Limit" +msgstr "Лимит" + +#: apps/cowswap-frontend/src/modules/trade/pure/TradeConfirmation/getPendingText.ts +msgid "Confirm bridging" +msgstr "Подтверждение моста" + +#: apps/cowswap-frontend/src/modules/tradeFormValidation/pure/TradeFormButtons/tradeButtonsMap.tsx +#~ msgid "Approve and {defaultText}" +#~ msgstr "Approve and {defaultText}" + +#: apps/cowswap-frontend/src/pages/Account/LockedGnoVesting/index.tsx +msgid "<0>COW vesting from the GNO lock is vested linearly over four years, starting on" +msgstr "<0>СОЗДАТЬ вестинг от GNO блокировки работает линейно в течение четырех лет, начиная с" + +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWidget/tooltips.tsx +msgid "The \"Part duration\" refers to the duration between each part of your TWAP order.<0/><1/>Choosing a shorter time allows for faster execution of each part, potentially reducing price fluctuations. Striking the right balance is crucial for optimal execution." +msgstr "\"Продолжительность части\" означает длительность между каждой частью вашего TWAP заказа. <0/><1/>Выбор более короткого времени позволяет быстрее выполнять каждую часть, потенциально уменьшая ценовые колебания." + +#: apps/cowswap-frontend/src/modules/twap/pure/CustomDeadlineSelector/index.tsx +msgid "Hours" +msgstr "Часы" + +#: apps/cowswap-frontend/src/modules/tokensList/containers/ManageTokens/index.tsx +msgid "Clear all" +msgstr "Очистить все" + +#: apps/cowswap-frontend/src/common/pure/ConfirmedButton/ConfirmedButton.tsx +msgid "Please click confirm to {action}." +msgstr "Пожалуйста, подтвердите для {action}." + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Chain ID:" +msgstr "ID цепочки:" + +#: apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +#~ msgid "What is {ACCOUNT_PROXY_LABEL}?" +#~ msgstr "What is {ACCOUNT_PROXY_LABEL}?" + +#: apps/cowswap-frontend/src/modules/ethFlow/services/ethFlow/steps/calculateUniqueOrderId.ts +msgid "Missing currency for Eth Flow Fee" +msgstr "Отсутствует валюта при оплате Eth Flow" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Page not found!" +msgstr "Страница не найдена!" + +#: apps/cowswap-frontend/src/modules/volumeFee/hooks/useVolumeFeeTooltip.ts +msgid "Safe App License Fee" +msgstr "Плата за лицензию Safe App" + +#: apps/cowswap-frontend/src/legacy/components/ErrorBoundary/ErrorWithStackTrace.tsx +msgid "CowSwap Error" +msgstr "CowSwap Ошибка" + +#: apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +msgid "Customize your order size, expiration, and number of parts" +msgstr "Настройте размер заказа, срок действия и количество частей" + +#: apps/cowswap-frontend/src/modules/swap/containers/NetworkBridgeBanner/NetworkBridgeBanner.tsx +msgid "{label} token bridge" +msgstr "{label} токен моста" + +#: apps/cowswap-frontend/src/common/pure/ConfirmationPendingContent/ConfirmationPendingContent.tsx +msgid "The {operationLabel} is signed." +msgstr "Подписано {operationLabel}." + +#: apps/cowswap-frontend/src/modules/swap/pure/TwapSuggestionBanner.tsx +msgid "The price impact is <0>{formattedPriceImpact}%. Consider breaking up your order using a <1>TWAP order and possibly get a better rate." +msgstr "Влияние цены <0>{formattedPriceImpact}%. Подумайте о разбитии вашего заказа, используя <1>TWAP ордер и, возможно, получите лучшую ставку." + +#: apps/cowswap-frontend/src/common/containers/ConfirmationModal/index.tsx +#: apps/cowswap-frontend/src/common/hooks/useConfirmPriceImpactWithoutFee.ts +#: apps/cowswap-frontend/src/common/pure/ConfirmationModal/ConfirmationModal.cosmos.tsx +msgid "confirm" +msgstr "подтвердить" + +#: apps/cowswap-frontend/src/pages/error/NotFound/index.tsx +msgid "Back home" +msgstr "Вернуться домой" + +#: apps/cowswap-frontend/src/common/utils/assertProviderNetwork.ts +#~ msgid "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" +#~ msgstr "Wallet chainId differs from app chainId. Wallet: {network}, App: {chainId}. Action: {description}" + +#: apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +msgid "Refund started" +msgstr "Возврат начат" + +#: apps/cowswap-frontend/src/common/pure/ToggleArrow/ToggleArrow.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/TransactionSubmittedContent/index.tsx +msgid "Close" +msgstr "Закрыть" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +msgid "Execute Safe transaction" +msgstr "Выполнить безопасную транзакцию" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/index.tsx +msgid "Always review wallet requests carefully before approving." +msgstr "Всегда внимательно просматривать запросы кошелька перед утверждением." + +#: libs/hook-dapp-lib/src/hookDappsRegistry.ts +msgid "Reduce or withdraw Uniswap v2 from a pool before a token swap integrating the process directly into the transaction flow. By adjusting your liquidity ahead of time, you gain more control over your assets without any extra steps. Optimize your position in a pool, all in one seamless action — no need for multiple transactions or added complexity." +msgstr "Уменьшить или вывести Uniswap v2 из пула до того, как токен интегрирует процесс непосредственно в транзакционный поток. Заблаговременно корректируя ликвидность, вы получаете больше контроля над своими активами без каких-либо дополнительных шагов. Оптимизировать свою позицию в пуле, все в одном бесшовном действии — без необходимости нескольких транзакций или дополнительной сложности." + +#: apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +msgid "2/2 Sign transaction" +msgstr "Транзакция с подписью 2/2" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "yield over average" +msgstr "доходность по среднему" + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/SolvingStep.tsx +msgid "Uh oh! The market price has moved outside of your slippage tolerance. You can wait for prices to change{cancellationModal}" +msgstr "Ой! Рыночная цена изменилась за пределы вашего согласия на проскальзывание. Вы можете дождаться изменения цен на{cancellationModal}" + +#: apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +msgid "Entered amount is invalid" +msgstr "Введенная сумма является недопустимой" + +#: libs/common-const/src/common.ts +msgid "Mev Slicer" +msgstr "Мевский лицер" + +#: apps/cowswap-frontend/src/utils/orderUtils/parseOrder.ts +msgid "Creation transaction" +msgstr "Создание транзакции" + +#: apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +msgid "There {areIs} <0>{ordersWithPermitLength} existing {orderWord} using a <1/> token approval. Partial approval may affect the execution of other orders. Adjust the amount or choose full approval to proceed." +msgstr "Там {areIs} <0>{ordersWithPermitLength} существующий {orderWord} с <1/> одобрением токена. Частичное утверждение может повлиять на исполнение других заказов. Отрегулируйте сумму или выберите полное одобрение для продолжения." + +#: apps/cowswap-frontend/src/modules/wallet/pure/WatchAssetInWallet/index.tsx +msgid "Add token" +msgstr "Добавить токен" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/tableHeaders.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderStatusBox/getOrderStatusTitleAndColor.ts +#: apps/cowswap-frontend/src/modules/ordersTable/pure/ReceiptModal/index.tsx +msgid "Filled" +msgstr "Заполнено" + +#: apps/cowswap-frontend/src/common/pure/CoWAmmBannerContent/index.tsx +msgid "pool" +msgstr "бассейн" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/constants.tsx +msgid "Invalid URL: Path contains consecutive forward slashes" +msgstr "Недопустимый URL: Путь содержит последовательную прямолинейную слэш" + +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrderFillsAt/index.tsx +msgid "partially" +msgstr "частично" + +#: apps/cowswap-frontend/src/modules/orders/containers/BridgingSuccessNotification/index.tsx +msgid "View on Bridge Explorer ↗" +msgstr "Просмотр в проводнике мостов ↗️" + +#: apps/cowswap-frontend/src/modules/ordersTable/containers/OrderRow/EstimatedExecutionPrice.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/WarningEstimatedPrice/index.tsx +msgid "Insufficient balance" +msgstr "Недостаточный баланс" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/Settings/index.tsx +msgid "Bottom" +msgstr "Внизу" + +#: apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +msgid "Order Filled" +msgstr "Заказ заполнен" + +#: apps/cowswap-frontend/src/modules/hooksStore/pure/AddCustomHookForm/CustomDappLoader/index.tsx +msgid "Invalid content type: Expected JSON but received {errorContentType}. Make sure the URL points to a valid manifest file." +msgstr "Недопустимый тип содержимого: ожидался JSON, но получил {errorContentType}. Убедитесь, что URL указывает на допустимый файл манифеста." + +#: apps/cowswap-frontend/src/common/hooks/useOnSelectNetwork.tsx +msgid "Failed to switch networks from the CoW Swap Interface. In order to use CoW Swap on {chainInfoLabel}, you must change the network in your wallet." +msgstr "Не удалось переключить сети из интерфейса подкачки CoW. Чтобы использовать CoW Swap на {chainInfoLabel}, вы должны изменить сеть в вашем кошельке." + +#: apps/cowswap-frontend/src/modules/orderProgressBar/pure/steps/FinishedStep.tsx +#~ msgid "out of" +#~ msgstr "out of" + +#: apps/cowswap-frontend/src/modules/limitOrders/pure/InfoBanner/index.tsx +#: apps/cowswap-frontend/src/modules/ordersTable/pure/OrdersTableContainer/NoOrdersContent.tsx +#: apps/cowswap-frontend/src/modules/trade/pure/ZeroApprovalWarning/ZeroApprovalWarning.tsx +#: apps/cowswap-frontend/src/modules/twap/containers/TwapFormWarnings/warnings/FallbackHandlerWarning.tsx +#: apps/cowswap-frontend/src/modules/yield/containers/YieldWidget/elements.tsx +msgid "Learn more" +msgstr "Узнать больше" + +#: apps/cowswap-frontend/src/modules/tradeWidgetAddons/containers/HighFeeWarning/highFeeWarningHelpers.ts +msgid "Swap and bridge costs are at least {formattedFeePercentage}% of the swap amount" +msgstr "Затраты на замену и мост составляют не менее {formattedFeePercentage}% от суммы замены" + diff --git a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx index a4257d7b9e..2c91de1073 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/AccountIcon.tsx @@ -3,6 +3,8 @@ import { useState } from 'react' import { HoverTooltip } from '@cowprotocol/ui' import { useConnectionType, useWalletDetails } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' + import { StatusIcon } from 'modules/wallet/pure/StatusIcon' import { IconWrapper } from './styled' @@ -32,8 +34,8 @@ export const AccountIcon = ({ size = 16, account }: AccountIconProps) => { if (walletDetails && !walletDetails.isSupportedWallet) { return ( - - + + ⚠️ diff --git a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx index f8bc576a40..72d6dd9c0c 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/SurplusCard.tsx @@ -9,6 +9,8 @@ import { UI, } from '@cowprotocol/ui' +import { i18n } from '@lingui/core' +import { Trans, useLingui } from '@lingui/react/macro' import { transparentize } from 'color2k' import styled from 'styled-components/macro' @@ -43,136 +45,139 @@ const START_DATE: Record = { [SupportedChainId.PLASMA]: PLASMA_START_DATE, } -// TODO: Break down this large function into smaller functions -// TODO: Add proper return type annotation -// eslint-disable-next-line max-lines-per-function, @typescript-eslint/explicit-function-return-type -export function SurplusCard() { - const { surplusAmount, isLoading } = useTotalSurplus() - - const showSurplusAmount = surplusAmount && surplusAmount.greaterThan(0) - const surplusUsdAmount = useUsdAmount(showSurplusAmount ? surplusAmount : undefined).value - const native = useNativeCurrency() - const nativeSymbol = native.symbol || 'ETH' - const startDate = START_DATE[native.chainId as SupportedChainId] +const Wrapper = styled.div` + margin: 12px auto 24px; + width: 100%; + display: grid; + align-items: center; + justify-content: center; + grid-template-columns: 1fr; + grid-template-rows: max-content; + gap: 24px; + box-sizing: border-box; + padding: 0; + color: inherit; + + ${Media.upToSmall()} { + display: flex; + flex-flow: column wrap; + padding: 0; + } - const Wrapper = styled.div` - margin: 12px auto 24px; - width: 100%; - display: grid; + ${InfoCard} { + display: flex; + flex-flow: column wrap; align-items: center; justify-content: center; - grid-template-columns: 1fr; - grid-template-rows: max-content; - gap: 24px; - box-sizing: border-box; - padding: 0; + gap: 0; + background: ${({ theme }) => theme.gradient2}; + border-radius: 16px; + padding: 20px 26px 26px; + min-height: 190px; + width: 100%; + max-width: 100%; + margin: 0; color: inherit; + } - ${Media.upToSmall()} { - display: flex; - flex-flow: column wrap; - padding: 0; - } + ${InfoCard} > div { + display: flex; + flex-flow: column wrap; + align-items: center; + justify-content: center; + color: inherit; - ${InfoCard} { - display: flex; - flex-flow: column wrap; - align-items: center; - justify-content: center; - gap: 0; - background: ${({ theme }) => theme.gradient2}; - border-radius: 16px; - padding: 20px 26px 26px; - min-height: 190px; - width: 100%; - max-width: 100%; - margin: 0; - color: inherit; + &:first-child { + margin: 20px auto 0; } - ${InfoCard} > div { - display: flex; - flex-flow: column wrap; - align-items: center; - justify-content: center; - color: inherit; - - &:first-child { - margin: 20px auto 0; - } - - &:last-child { - margin: auto 0 0; - } + &:last-child { + margin: auto 0 0; } + } - ${InfoCard} > div > span { - display: flex; - flex-flow: column wrap; - align-items: center; - justify-content: center; - color: inherit; - } + ${InfoCard} > div > span { + display: flex; + flex-flow: column wrap; + align-items: center; + justify-content: center; + color: inherit; + } - ${InfoCard} > div > span > i, + ${InfoCard} > div > span > i, ${InfoCard} > div > a, ${InfoCard} > div > span > p { - display: flex; - font-size: 13px; - font-style: normal; - font-weight: 500; - line-height: 1.1; - width: 100%; - text-align: center; - justify-content: center; - align-items: center; - color: inherit; - } - - ${InfoCard} > div > span > i { - opacity: 0.6; - transition: opacity var(${UI.ANIMATION_DURATION}) ease-in-out; - - &:hover { - opacity: 1; - } - } + display: flex; + font-size: 13px; + font-style: normal; + font-weight: 500; + line-height: 1.1; + width: 100%; + text-align: center; + justify-content: center; + align-items: center; + color: inherit; + } - ${InfoCard} > div > span > p { - color: inherit; - } + ${InfoCard} > div > span > i { + opacity: 0.6; + transition: opacity var(${UI.ANIMATION_DURATION}) ease-in-out; - ${InfoCard} > div > span > b { - font-size: 28px; - font-weight: bold; - color: var(${UI.COLOR_SUCCESS}); - width: 100%; - text-align: center; - margin: 12px auto 0; - word-break: break-all; + &:hover { + opacity: 1; } + } - ${InfoCard} > div > a { - margin: 20px auto 0; - } + ${InfoCard} > div > span > p { + color: inherit; + } - ${InfoCard} > div > small { - font-size: 15px; - font-weight: 500; - line-height: 1.1; - color: ${({ theme }) => transparentize(theme.text, 0.5)}; - margin: 3px auto 0; + ${InfoCard} > div > span > b { + font-size: 28px; + font-weight: bold; + color: var(${UI.COLOR_SUCCESS}); + width: 100%; + text-align: center; + margin: 12px auto 0; + word-break: break-all; + } + + ${InfoCard} > div > a { + margin: 20px auto 0; + } + + ${InfoCard} > div > small { + font-size: 15px; + font-weight: 500; + line-height: 1.1; + color: ${({ theme }) => transparentize(theme.text, 0.5)}; + margin: 3px auto 0; + } + + ${QuestionTooltipIconWrapper} { + opacity: 0.5; + transition: opacity var(${UI.ANIMATION_DURATION}) ease-in-out; + + &:hover { + opacity: 1; } + } +` +// TODO: Break down this large function into smaller functions +// TODO: Add proper return type annotation +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +export function SurplusCard() { + const { surplusAmount, isLoading } = useTotalSurplus() + const { t } = useLingui() - ${QuestionTooltipIconWrapper} { - opacity: 0.5; - transition: opacity var(${UI.ANIMATION_DURATION}) ease-in-out; - - &:hover { - opacity: 1; - } - } - ` + const showSurplusAmount = surplusAmount && surplusAmount.greaterThan(0) + const surplusUsdAmount = useUsdAmount(showSurplusAmount ? surplusAmount : undefined).value + const native = useNativeCurrency() + const nativeSymbol = native.symbol || 'ETH' + const startDate = new Date(START_DATE[native.chainId as SupportedChainId]).toLocaleDateString(i18n.locale, { + year: 'numeric', + month: 'long', + }) return ( @@ -180,28 +185,32 @@ export function SurplusCard() {
- Your total surplus{' '} + Your total surplus{' '} {isLoading ? ( -

Loading...

+

+ Loading... +

) : showSurplusAmount ? ( + ) : ( -

No surplus for the given time period

+

+ No surplus for the given time period +

)}
{surplusUsdAmount && }
- Learn about surplus on CoW Swap ↗ + Learn about surplus on CoW Swap
diff --git a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx index 1de2583bf0..1b7c082c4d 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/AccountDetails/index.tsx @@ -16,7 +16,9 @@ import { useWalletInfo, } from '@cowprotocol/wallet' -import { Trans } from '@lingui/macro' +import { i18n } from '@lingui/core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import Copy from 'legacy/components/Copy' import { groupActivitiesByDay, useMultipleActivityDescriptors } from 'legacy/hooks/useRecentActivity' @@ -105,7 +107,7 @@ export function AccountDetails({ // In case the wallet is connected via WalletConnect and has wallet name set, add the suffix to be clear // This to avoid confusion for instance when using Metamask mobile // When name is not set, it defaults to WalletConnect already - const walletConnectSuffix = isWalletConnect && walletDetails?.walletName ? ' (via WalletConnect)' : '' + const walletConnectSuffix = isWalletConnect && walletDetails?.walletName ? ` ` + t`(via WalletConnect)` : '' const handleDisconnectClick = (): void => { disconnectWallet() @@ -187,26 +189,36 @@ export function AccountDetails({ {' '}
- Recent Activity {`(${activityTotalCount})`} + Recent Activity {`(${activityTotalCount})`}
- {explorerOrdersLink && View all orders ↗} + {explorerOrdersLink && ( + + View all orders ↗ + + )}
{activitiesGroupedByDate.map(({ date, activities }) => ( {/* TODO: style me! */} - {date.toLocaleString(undefined, DATE_FORMAT_OPTION)} + {date.toLocaleString(i18n.locale, DATE_FORMAT_OPTION)} ))} - {explorerOrdersLink && View all orders ↗} + {explorerOrdersLink && ( + + View all orders ↗ + + )}
) : ( - Your activity will appear here... + + Your activity will appear here... + )} diff --git a/apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx b/apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx index c908e17b0f..aa9e0db3ed 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/CopyHelper/index.tsx @@ -2,7 +2,7 @@ import React, { useCallback } from 'react' import { useCopyClipboard } from '@cowprotocol/common-hooks' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { CheckCircle, Copy } from 'react-feather' import styled from 'styled-components/macro' import { LinkStyledButton } from 'theme' diff --git a/apps/cowswap-frontend/src/modules/account/containers/CowShedInfo/index.tsx b/apps/cowswap-frontend/src/modules/account/containers/CowShedInfo/index.tsx index 879e7148f9..92cde89241 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/CowShedInfo/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/CowShedInfo/index.tsx @@ -5,6 +5,7 @@ import { Command } from '@cowprotocol/types' import { useWalletInfo } from '@cowprotocol/wallet' import { useWalletProvider } from '@cowprotocol/wallet-provider' +import { useLingui } from '@lingui/react/macro' import { Pocket } from 'react-feather' import { Link } from 'react-router' import styled from 'styled-components/macro' @@ -31,6 +32,7 @@ export function CowShedInfo({ className, onClick }: CowShedInfoProps): ReactNode const { chainId } = useWalletInfo() const provider = useWalletProvider() const proxyAddress = useCurrentAccountProxyAddress() + const { i18n } = useLingui() if (!provider || !proxyAddress) return null @@ -39,7 +41,7 @@ export function CowShedInfo({ className, onClick }: CowShedInfoProps): ReactNode return ( - {ACCOUNT_PROXY_LABEL} + {i18n._(ACCOUNT_PROXY_LABEL)} ) } diff --git a/apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx b/apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx index 5a7e200be7..651f37fb4b 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/OrdersPanel/index.tsx @@ -4,6 +4,7 @@ import Close from '@cowprotocol/assets/images/x.svg?react' import { Media, UI } from '@cowprotocol/ui' import { useWalletDetails, useWalletInfo } from '@cowprotocol/wallet' +import { Trans } from '@lingui/react/macro' import { transparentize } from 'color2k' import styled from 'styled-components/macro' @@ -154,7 +155,9 @@ export function OrdersPanel() {
- Account + + Account +
diff --git a/apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx b/apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx index ce7dc7cdac..9d3e46d756 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/Transaction/ActivityDetails.tsx @@ -11,7 +11,10 @@ import { UiOrderType } from '@cowprotocol/types' import { BannerOrientation, ExternalLink, Icon, IconType, TokenAmount, UI } from '@cowprotocol/ui' import { CurrencyAmount, Token } from '@uniswap/sdk-core' -import { BRIDGING_FINAL_STATUSES, useBridgeOrderData } from 'entities/bridgeOrders' +import { i18n } from '@lingui/core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' +import { useBridgeOrderData, BRIDGING_FINAL_STATUSES } from 'entities/bridgeOrders' import { useAddOrderToSurplusQueue } from 'entities/surplusModal' import { ActivityState, getActivityState } from 'legacy/hooks/useActivityDerivedState' @@ -108,43 +111,67 @@ export function GnosisSafeTxDetails(props: { let signaturesMessage: ReactElement - const areIsMessage = pendingSignaturesCount > 1 ? 's are' : ' is' - if (isExecutedActivity) { - signaturesMessage = Executed + signaturesMessage = ( + + Executed + + ) } else if (isCancelled) { - signaturesMessage = Cancelled order + signaturesMessage = ( + + Cancelled order + + ) } else if (isExpired) { - signaturesMessage = Expired order + signaturesMessage = ( + + Expired order + + ) } else if (isFailed) { - signaturesMessage = Invalid order + signaturesMessage = ( + + Invalid order + + ) } else if (alreadySigned) { - signaturesMessage = Enough signatures + signaturesMessage = ( + + Enough signatures + + ) } else if (numConfirmations === 0) { signaturesMessage = ( <> - No signatures yet + + No signatures yet + - {gnosisSafeThreshold} signature{areIsMessage} required + {gnosisSafeThreshold} {gnosisSafeThreshold === 1 ? t`signature is` : t`signatures are`} {t`required`} ) } else if (numConfirmations >= gnosisSafeThreshold) { signaturesMessage = isExecuted ? ( - Enough signatures + + Enough signatures + ) : ( <> {!isReplaced && ( <> - Enough signatures, but not executed + + Enough signatures, but not executed + - Execute Safe transaction + Execute Safe transaction )} @@ -154,13 +181,16 @@ export function GnosisSafeTxDetails(props: { signaturesMessage = ( <> - Signed:{' '} - - {numConfirmations} out of {gnosisSafeThreshold} signers - + + Signed:{' '} + + {numConfirmations} out of {gnosisSafeThreshold} signers + + - {pendingSignaturesCount} more signature{areIsMessage} required + {pendingSignaturesCount} {pendingSignaturesCount === 1 ? t`more signature is` : t`more signatures are`}{' '} + {t`required`} ) @@ -169,7 +199,9 @@ export function GnosisSafeTxDetails(props: { return ( - Safe Nonce: {nonce} + + Safe Nonce: {nonce} + {signaturesMessage} @@ -326,15 +358,19 @@ export function ActivityDetails(props: { timeStyle: 'short', } + const orderKind = kind.toString() + orderSummary = { ...DEFAULT_ORDER_SUMMARY, from: , to: , - validTo: validTo ? new Date((validTo as number) * 1000).toLocaleString(undefined, DateFormatOptions) : undefined, + validTo: validTo + ? new Date((validTo as number) * 1000).toLocaleString(i18n.locale, DateFormatOptions) + : undefined, fulfillmentTime: fulfillmentTime - ? new Date(fulfillmentTime).toLocaleString(undefined, DateFormatOptions) + ? new Date(fulfillmentTime).toLocaleString(i18n.locale, DateFormatOptions) : undefined, - kind: kind.toString(), + kind: orderKind === 'sell' ? t`sell` : orderKind === 'buy' ? t`buy` : orderKind, inputAmount, } } else { @@ -342,7 +378,7 @@ export function ActivityDetails(props: { } const { kind, from, to, fulfillmentTime, validTo } = orderSummary - const activityName = isOrder ? `${kind} order` : 'Transaction' + const activityName = isOrder ? `${kind} ` + t`order` : t`Transaction` let inputToken = activityDerivedState?.order?.inputToken || null let outputToken = activityDerivedState?.order?.outputToken || null @@ -360,7 +396,9 @@ export function ActivityDetails(props: { {(children) => ( - Hooks + + Hooks + {children} )} @@ -369,12 +407,12 @@ export function ActivityDetails(props: { const orderBasicDetails = ( <> - + - + {validTo} @@ -395,7 +433,6 @@ export function ActivityDetails(props: { onDismiss={() => hideCustomRecipientWarning(id)} /> )} - {creationTime && {creationTime}} @@ -465,15 +502,19 @@ export function ActivityDetails(props: { // Regular order layout <> - From{kind === 'buy' && ' at most'} + + From {kind === 'buy' && ' ' && at most} + {from} - To{kind === 'sell' && ' at least'} + + To {kind === 'sell' && ' ' && at least} + {to} - {isOrderFulfilled ? 'Exec. price' : 'Limit price'} + {isOrderFulfilled ? Exec. price : Limit price} @@ -481,22 +522,28 @@ export function ActivityDetails(props: { {fulfillmentTime ? ( <> - Filled on + + Filled on + {fulfillmentTime} ) : ( <> - Valid to + + Valid to + {validTo} )} {order && isCustomRecipient && ( - Recipient: + + Recipient: + {isCustomRecipientWarningBannerVisible && ( - + )} - Surplus + + Surplus + {showFiatValue && ( @@ -541,7 +590,7 @@ export function ActivityDetails(props: { {activityLinkUrl && enhancedTransaction?.replacementType !== 'replaced' && ( - View details ↗ + View details )} diff --git a/apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx b/apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx index 17e3da3d99..94f585909c 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/Transaction/StatusDetails.tsx @@ -9,6 +9,8 @@ import { ExplorerDataType, getExplorerLink } from '@cowprotocol/common-utils' import { getSafeWebUrl } from '@cowprotocol/core' import { Command } from '@cowprotocol/types' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { Info } from 'react-feather' import SVG from 'react-inlinesvg' @@ -22,27 +24,27 @@ import { CancelTxLink, ProgressLink, StatusLabel, StatusLabelBelow, StatusLabelW import { determinePillColour } from './index' -const activityStatusText: Record = { - [ActivityState.LOADING]: 'Loading...', - [ActivityState.PENDING]: 'Pending...', - [ActivityState.OPEN]: 'Open', - [ActivityState.SIGNING]: 'Signing...', - [ActivityState.FILLED]: 'Filled', - [ActivityState.EXECUTED]: 'Executed', - [ActivityState.EXPIRED]: 'Expired', - [ActivityState.FAILED]: 'Failed', - [ActivityState.CANCELLING]: 'Cancelling...', - [ActivityState.CANCELLED]: 'Cancelled', - [ActivityState.CREATING]: 'Creating...', -} - function _getStateLabel(activityDerivedState: ActivityDerivedState): string { + const activityStatusText: Record = { + [ActivityState.LOADING]: t`Loading...`, + [ActivityState.PENDING]: t`Pending...`, + [ActivityState.OPEN]: t`Open`, + [ActivityState.SIGNING]: t`Signing...`, + [ActivityState.FILLED]: t`Filled`, + [ActivityState.EXECUTED]: t`Executed`, + [ActivityState.EXPIRED]: t`Expired`, + [ActivityState.FAILED]: t`Failed`, + [ActivityState.CANCELLING]: t`Cancelling...`, + [ActivityState.CANCELLED]: t`Cancelled`, + [ActivityState.CREATING]: t`Creating...`, + } + // Check isLoading flag first to ensure loading state takes precedence if (activityDerivedState.isLoading) { return activityStatusText[ActivityState.LOADING] } const activityState = getActivityState(activityDerivedState) - return activityStatusText[activityState] || 'Open' + return activityStatusText[activityState] || t`Open` } function _getStatusIcon(activityDerivedState: ActivityDerivedState): ReactNode { @@ -67,34 +69,34 @@ function _getStatusIcon(activityDerivedState: ActivityDerivedState): ReactNode { return } if (isConfirmed && isTransaction) { - return + return } if (isConfirmed) { - return + return } if (isExpired && isTransaction) { - return + return } if (isExpired) { - return + return } if (isFailed) { - return + return } if (isCreating) { // TODO: use another icon for Creating state - return + return } if (isCancelled) { - return + return } if (isPresignaturePending) { - return + return } if (isCancelling) { return null } - return + return } function _getSafeAddress(activityDerivedState: ActivityDerivedState): string | undefined { @@ -145,7 +147,7 @@ function _getStatusLabelProps(activityDerivedState: ActivityDerivedState): { isPresignaturePending, isCreating, isLoading: isLoading || false, - title: isReplaced ? 'Transaction was cancelled or sped up' : '', + title: isReplaced ? t`Transaction was cancelled or sped up` : '', } } @@ -188,7 +190,7 @@ export function StatusDetails(props: StatusDetailsProps): ReactNode | null { {_getStatusIcon(activityDerivedState)} - {isReplaced ? 'Replaced' : _getStateLabel(activityDerivedState)} + {isReplaced ? t`Replaced` : _getStateLabel(activityDerivedState)} {shouldShowStatusLabelBelow && ( @@ -196,12 +198,12 @@ export function StatusDetails(props: StatusDetailsProps): ReactNode | null { {showCancelButton && } {showProgressBar && !isLoading && ( - Show progress + Show progress )} {showCancelTxLink && ( - - View cancellation ↗ + + View cancellation )} diff --git a/apps/cowswap-frontend/src/modules/account/containers/Transaction/index.tsx b/apps/cowswap-frontend/src/modules/account/containers/Transaction/index.tsx index f466791dcd..c45cfe9776 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/Transaction/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/containers/Transaction/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { RowFixed } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { i18n } from '@lingui/core' + import { ActivityState, useActivityDerivedState } from 'legacy/hooks/useActivityDerivedState' import { ActivityDescriptors } from 'legacy/hooks/useRecentActivity' @@ -61,6 +63,7 @@ export default function Activity({ activity }: { activity: ActivityDescriptors } const creationTimeEnhanced = activityDerivedState?.enhancedTransaction?.addedTime const creationTimeOrder = activityDerivedState?.order?.creationTime + const creationTimeFull = creationTimeEnhanced ? new Date(creationTimeEnhanced) : creationTimeOrder @@ -72,7 +75,7 @@ export default function Activity({ activity }: { activity: ActivityDescriptors } } // Hour:Minute - const creationTime = creationTimeFull?.toLocaleString(undefined, timeFormatOptionHM) + const creationTime = creationTimeFull?.toLocaleString(i18n.locale, timeFormatOptionHM) return ( diff --git a/apps/cowswap-frontend/src/modules/account/containers/Transaction/styled.ts b/apps/cowswap-frontend/src/modules/account/containers/Transaction/styled.ts index 512aaad8e5..e0f91f0f43 100644 --- a/apps/cowswap-frontend/src/modules/account/containers/Transaction/styled.ts +++ b/apps/cowswap-frontend/src/modules/account/containers/Transaction/styled.ts @@ -118,12 +118,13 @@ export const SummaryInner = styled.div` ` export const SummaryInnerRow = styled.div<{ isExpired?: boolean; isCancelled?: boolean }>` + color: inherit; display: grid; + column-gap: 16px; + grid-template-columns: 130px 1fr; grid-template-rows: 1fr; - grid-template-columns: 100px 1fr; - width: 100%; margin: 0 0 4px; - color: inherit; + width: 100%; ${Media.upToSmall()} { grid-template-columns: 1fr; @@ -144,8 +145,8 @@ export const SummaryInnerRow = styled.div<{ isExpired?: boolean; isCancelled?: b } > b { - padding: 0; opacity: 0.7; + padding: 0; } > i { diff --git a/apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx b/apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx index a24b66e319..c8910277e6 100644 --- a/apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/pure/ConnectedAccountBlocked/index.tsx @@ -1,7 +1,7 @@ import { useTheme } from '@cowprotocol/common-hooks' import { ExternalLink } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { AlertOctagon } from 'react-feather' import styled from 'styled-components/macro' import { ThemedText } from 'theme' diff --git a/apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx b/apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx index e41f47261c..6b691a146b 100644 --- a/apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx +++ b/apps/cowswap-frontend/src/modules/account/pure/OrderFillabilityWarning/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { BannerOrientation, StatusColorVariant } from '@cowprotocol/ui' import { CurrencyAmount, Token } from '@uniswap/sdk-core' +import { Trans } from '@lingui/react/macro' + import { OrderFillability } from 'modules/ordersTable' import { @@ -33,15 +35,20 @@ export function OrderFillabilityWarning({ }: OrderFillabilityWarningProps): ReactNode { const title = ( - <span>Order cannot be filled due to insufficient allowance</span> + <span> + <Trans>Order cannot be filled due to insufficient allowance</Trans> + </span> ) const isNotEnoughBalance = fillability?.hasEnoughBalance === false const showIsNotEnoughAllowance = !isNotEnoughBalance && fillability?.hasEnoughAllowance === false + const symbol = inputAmount.currency.symbol - const NotEnoughBalanceDescreption = ( - Please, top up {inputAmount.currency.symbol} balance or cancel the order. + const NotEnoughBalanceDescription = ( + + Please, top up {symbol} balance or cancel the order. + ) return ( @@ -51,10 +58,12 @@ export function OrderFillabilityWarning({ padding={'10px'} bannerType={StatusColorVariant.Danger} orientation={BannerOrientation.Horizontal} - customContent={NotEnoughBalanceDescreption} + customContent={NotEnoughBalanceDescription} noWrapContent > - Order cannot be filled due to insufficient balance on the current account. + + <Trans>Order cannot be filled due to insufficient balance on the current account.</Trans> + )} @@ -62,7 +71,9 @@ export function OrderFillabilityWarning({ - Another order has used up the approval amount. Set a new token approval to proceed with your order. + + Another order has used up the approval amount. Set a new token approval to proceed with your order. + {enablePartialApprove && ( diff --git a/apps/cowswap-frontend/src/modules/accountProxy/consts.ts b/apps/cowswap-frontend/src/modules/accountProxy/consts.ts index ab249f0d25..18315ff33d 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/consts.ts +++ b/apps/cowswap-frontend/src/modules/accountProxy/consts.ts @@ -1,5 +1,7 @@ import { COW_SHED_1_0_0_VERSION, COW_SHED_LATEST_VERSION, CoWShedVersion } from '@cowprotocol/sdk-cow-shed' +import { msg } from '@lingui/core/macro' + export const COW_SHED_VERSIONS: CoWShedVersion[] = [COW_SHED_LATEST_VERSION, COW_SHED_1_0_0_VERSION] -export const NEED_HELP_LABEL = 'Need help' +export const NEED_HELP_LABEL = msg`Need help` diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx index f0a69bc0a3..4b06df2ba0 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxiesPage/index.tsx @@ -4,6 +4,9 @@ import { ACCOUNT_PROXY_LABEL } from '@cowprotocol/common-const' import { getChainInfo } from '@cowprotocol/cow-sdk' import { useWalletInfo } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' +import { Trans, useLingui } from '@lingui/react/macro' + import { Title, Wrapper } from './styled' import { useAccountProxies } from '../../hooks/useAccountProxies' @@ -11,16 +14,20 @@ import { AccountItem } from '../../pure/AccountItem' export function AccountProxiesPage(): ReactNode { const { chainId } = useWalletInfo() - + const { i18n } = useLingui() const proxies = useAccountProxies() const chainIfo = getChainInfo(chainId) const chainLabel = chainIfo?.label + const chain = chainLabel ? t`on ${chainLabel}` : '' + const accountProxyLabelString = i18n._(ACCOUNT_PROXY_LABEL) return ( - Select an {ACCOUNT_PROXY_LABEL} to check for available refunds {chainLabel ? `on ${chainLabel}` : ''} + <Trans> + Select an {accountProxyLabelString} to check for available refunds {chain} + </Trans> {proxies?.map(({ account, version }) => { diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx index cf811983a7..920511402f 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyPage/index.tsx @@ -5,6 +5,8 @@ import { isAddress } from '@cowprotocol/common-utils' import { ArrowIcon } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { useParams } from 'react-router' import { Routes } from 'common/constants/routes' @@ -39,13 +41,10 @@ export function AccountProxyPage(): ReactNode { return ( - - Invalid proxy address + + + Invalid proxy address + @@ -66,7 +65,9 @@ export function AccountProxyPage(): ReactNode { showWatermark /> - Recoverable tokens · {tokensToRefund?.length || 0} + + <Trans>Recoverable tokens</Trans> · {tokensToRefund?.length || 0} + {refundValues && refundValues.map(({ token, balance, usdAmount }) => { return ( diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx index 85c26c5237..efd9b322f4 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyRecoverPage/index.tsx @@ -8,6 +8,8 @@ import { ButtonSize, CenteredDots, FiatAmount, Loader, TokenSymbol } from '@cowp import { useWalletInfo } from '@cowprotocol/wallet' import { BigNumber } from '@ethersproject/bignumber' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { useParams } from 'react-router' import { useErrorModal } from 'legacy/hooks/useErrorMessageAndModal' @@ -78,7 +80,9 @@ export function AccountProxyRecoverPage(): ReactNode { - Recoverable balance + + Recoverable balance + {balance ? ( <> @@ -107,12 +111,12 @@ export function AccountProxyRecoverPage(): ReactNode { {txInProgress && } {txSigningStep && !txInProgress && ( <> - {txSigningStep === RecoverSigningStep.SIGN_RECOVER_FUNDS && '1/2 Confirm funds recovering'} - {txSigningStep === RecoverSigningStep.SIGN_TRANSACTION && '2/2 Sign transaction'} + {txSigningStep === RecoverSigningStep.SIGN_RECOVER_FUNDS && t`1/2 Confirm funds recovering`} + {txSigningStep === RecoverSigningStep.SIGN_TRANSACTION && t`2/2 Sign transaction`} )} - {!txSigningStep && !txInProgress && 'Recover funds'} + {!txSigningStep && !txInProgress && t`Recover funds`} ) diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyWidgetPage/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyWidgetPage/index.tsx index b919c59f87..c7c041cdf5 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyWidgetPage/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/AccountProxyWidgetPage/index.tsx @@ -4,6 +4,7 @@ import { useOnClickOutside } from '@cowprotocol/common-hooks' import { isAddress } from '@cowprotocol/common-utils' import { useWalletInfo } from '@cowprotocol/wallet' +import { useLingui } from '@lingui/react/macro' import { Outlet, useLocation, useParams } from 'react-router' import { useToggleWalletModal } from 'legacy/state/application/hooks' @@ -36,10 +37,9 @@ export function AccountProxyWidgetPage({ modalMode = false, onDismiss: modalOnDismiss, }: AccountProxiesPageProps): ReactNode { + const { i18n } = useLingui() const widgetRef = useRef(null) - const Wrapper = modalMode ? ModalWrapper : EmptyWrapper - const { chainId, account } = useWalletInfo() const tradeNavigate = useTradeNavigate() const { inputCurrencyId, outputCurrencyId } = useSwapRawState() @@ -93,9 +93,9 @@ export function AccountProxyWidgetPage({ {!isHelpPage && ( - {`${NEED_HELP_LABEL}?`} + + {i18n._(NEED_HELP_LABEL)}? + )} } diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx index a1746f03ac..7e9cac4987 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/InvalidCoWShedSetup/index.tsx @@ -4,6 +4,7 @@ import { DISCORD_LINK } from '@cowprotocol/common-const' import { ExternalLink, InlineBanner, StatusColorVariant } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { useCurrentAccountProxy } from '../../hooks/useCurrentAccountProxy' @@ -35,9 +36,13 @@ export function InvalidCoWShedSetup(): ReactNode {
-
CoW Shed setup is invalid!
- Please contact CoW Swap support! + CoW Shed setup is invalid! +
+
+ + Please contact CoW Swap support! +
diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx index 6123f84998..d1abd50e1a 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/ProxyRecipient/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { ACCOUNT_PROXY_LABEL } from '@cowprotocol/common-const' import { areAddressesEqual, isProdLike } from '@cowprotocol/common-utils' +import { t } from '@lingui/core/macro' +import { useLingui } from '@lingui/react/macro' import { Pocket } from 'react-feather' import styled from 'styled-components/macro' @@ -36,12 +38,14 @@ export function ProxyRecipient({ }: ProxyRecipientProps): ReactNode { !isProdLike && console.debug('[ProxyRecipient] recipient', { recipient, bridgeReceiverOverride }) const proxyAddress = useCurrentAccountProxyAddress() + const { i18n } = useLingui() + const accountProxyLabelString = i18n._(ACCOUNT_PROXY_LABEL) if (!recipient || !(proxyAddress && !bridgeReceiverOverride)) return null if (!bridgeReceiverOverride && !areAddressesEqual(recipient, proxyAddress)) { throw new Error( - `Provided proxy address does not match ${ACCOUNT_PROXY_LABEL} address!, recipient=${recipient}, proxyAddress=${proxyAddress}`, + t`Provided proxy address does not match ${accountProxyLabelString} address!, recipient=${recipient}, proxyAddress=${proxyAddress}`, ) } diff --git a/apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx index 7e47109edf..3d65a7e11b 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/containers/WidgetPageTitle/index.tsx @@ -3,33 +3,35 @@ import { ReactNode } from 'react' import { useTokensByAddressMap } from '@cowprotocol/tokens' import { useWalletInfo } from '@cowprotocol/wallet' +import { useLingui } from '@lingui/react/macro' import { useLocation, useParams } from 'react-router' import { NEED_HELP_LABEL } from '../../consts' export function WidgetPageTitle(): ReactNode { + const { t, i18n } = useLingui() const { account } = useWalletInfo() const { tokenAddress } = useParams() const location = useLocation() const tokensByAddress = useTokensByAddressMap() const token = tokenAddress ? tokensByAddress[tokenAddress.toLowerCase()] : null - const isWalletConnected = !!account const isHelpPage = location.pathname.endsWith('/help') const isRecoverPage = !!tokenAddress // Check for help page first, regardless of wallet connection if (isHelpPage) { - return NEED_HELP_LABEL + return i18n._(NEED_HELP_LABEL) } if (!isWalletConnected) { - return 'Proxy Accounts' + return t`Proxy Accounts` } if (isRecoverPage) { - return `Recover ${token?.symbol ?? 'funds'}` + const target = token?.symbol ?? t`funds` + return t`Recover ${target}` } - return 'Recover funds' + return t`Recover funds` } diff --git a/apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts b/apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts index 5acf3b1a5c..f7c9deca62 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts +++ b/apps/cowswap-frontend/src/modules/accountProxy/hooks/useRecoverFundsCallback.ts @@ -2,6 +2,9 @@ import { useCallback } from 'react' import { ACCOUNT_PROXY_LABEL } from '@cowprotocol/common-const' +import { t } from '@lingui/core/macro' +import { useLingui } from '@lingui/react/macro' + import { useTransactionAdder } from 'legacy/state/enhancedTransactions/hooks' import { RecoverFundsContext } from './useRecoverFundsFromProxy' @@ -11,6 +14,8 @@ export function useRecoverFundsCallback( handleSetError: (error: string | undefined) => void, ): () => Promise { const addTransaction = useTransactionAdder() + const { i18n } = useLingui() + const accountProxyLabelString = i18n._(ACCOUNT_PROXY_LABEL) const { callback: recoverFundsCallback } = recoverFundsContext @@ -19,7 +24,7 @@ export function useRecoverFundsCallback( const txHash = await recoverFundsCallback() if (txHash) { - addTransaction({ hash: txHash, summary: `Recover funds from ${ACCOUNT_PROXY_LABEL}` }) + addTransaction({ hash: txHash, summary: t`Recover funds from ${accountProxyLabelString}` }) } return txHash @@ -28,5 +33,5 @@ export function useRecoverFundsCallback( handleSetError(e.message || e.toString()) } return - }, [recoverFundsCallback, addTransaction, handleSetError]) + }, [recoverFundsCallback, addTransaction, accountProxyLabelString, handleSetError]) } diff --git a/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx b/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx index 19058fa672..63a5446946 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountCard/DefaultAccountContent.tsx @@ -12,6 +12,8 @@ import { } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { MoreHorizontal } from 'react-feather' import { safeShortenAddress } from 'utils/address' @@ -39,7 +41,9 @@ export function DefaultAccountContent({ return ( <> - Recoverable value + + Recoverable value + {loading ? : } @@ -50,7 +54,7 @@ export function DefaultAccountContent({ content={ <> - + } > @@ -60,7 +64,7 @@ export function DefaultAccountContent({ diff --git a/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx index 7e31377029..275b76420c 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/pure/AccountItem/index.tsx @@ -4,6 +4,8 @@ import { shortenAddress } from '@cowprotocol/common-utils' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { ArrowIcon } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' + import { Routes } from 'common/constants/routes' import { AccountIcon } from './AccountIcon' @@ -39,7 +41,9 @@ export function AccountItem({ chainId, account, version, iconSize = 28 }: Accoun

{shortenAddress(account)}

-

Version: {version}

+

+ Version: {version} +

diff --git a/apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx index e770dba52d..1077373819 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/pure/FAQContent/index.tsx @@ -1,10 +1,12 @@ -import { useState, ReactNode } from 'react' +import { useState, ReactNode, FC } from 'react' import IMG_ICON_MINUS from '@cowprotocol/assets/images/icon-minus.svg' import IMG_ICON_PLUS from '@cowprotocol/assets/images/icon-plus.svg' import { ACCOUNT_PROXY_LABEL } from '@cowprotocol/common-const' import { ExternalLink } from '@cowprotocol/ui' +import { msg } from '@lingui/core/macro' +import { Trans, useLingui } from '@lingui/react/macro' import SVG from 'react-inlinesvg' import { Link } from 'react-router' @@ -12,66 +14,81 @@ import { FAQItem, FAQWrapper } from './styled' import { COW_SHED_VERSIONS } from '../../consts' -const FAQ_DATA = [ - { - question: `What is ${ACCOUNT_PROXY_LABEL}?`, - answer: ( - <> - - {ACCOUNT_PROXY_LABEL} (also known as CoW Shed) - {' '} - is a helper contract that improves the user experience within CoW Swap for features like{' '} - CoW Hooks - . -
-
+const Answer1: FC = () => { + const { i18n } = useLingui() + const accountProxyLabelString = i18n._(ACCOUNT_PROXY_LABEL) + + return ( + <> + + {accountProxyLabelString} (also known as CoW Shed) + {' '} + is a helper contract that improves the user experience within CoW Swap for features like{' '} + + CoW Hooks + + . +
+
+ This contract is deployed per account, with that account becoming the single owner. CoW Shed acts as an intermediary account that handles trading on your behalf. -
-
- Since {ACCOUNT_PROXY_LABEL} is not an upgradeable smart-contract, it can be versioned and there are{' '} - {COW_SHED_VERSIONS.length} versions of {ACCOUNT_PROXY_LABEL}: -
    - {COW_SHED_VERSIONS.map((v) => ( -
  • - - {v} - -
  • - ))} -
- - ), - }, - { - question: `How do I recover my funds from ${ACCOUNT_PROXY_LABEL}?`, - answer(recoverRouteLink: string) { - return ( - <> - Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge - cases. This tool helps you recover your funds. -
    -
  1. - Select an {ACCOUNT_PROXY_LABEL} and then select a token you want to - recover from CoW Shed. -
  2. -
  3. Recover!
  4. -
- - ) - }, - }, -] +
+
+
+ + Since {accountProxyLabelString} is not an upgradeable smart-contract, it can be versioned and there are + {' '} + {COW_SHED_VERSIONS.length} versions of {accountProxyLabelString}: +
    + {COW_SHED_VERSIONS.map((v) => ( +
  • + + {v} + +
  • + ))} +
+ + ) +} + +const Answer2: FC<{ recoverRouteLink: string }> = ({ recoverRouteLink }) => { + const { i18n } = useLingui() + const accountProxyLabelString = i18n._(ACCOUNT_PROXY_LABEL) + + return ( + <> + + Since this contract temporarily holds funds, there's a possibility that funds could get stuck in certain edge + cases. + + This tool helps you recover your funds. +
    +
  1. + + Select an {accountProxyLabelString} and then select a token you want to + recover from CoW Shed. + +
  2. +
  3. + Recover! +
  4. +
+ + ) +} interface FAQContentProps { recoverRouteLink: string } export function FAQContent({ recoverRouteLink }: FAQContentProps): ReactNode { + const { i18n } = useLingui() const [openItems, setOpenItems] = useState>({ 0: true }) const handleToggle = (index: number) => (e: React.MouseEvent) => { @@ -79,19 +96,29 @@ export function FAQContent({ recoverRouteLink }: FAQContentProps): ReactNode { setOpenItems((prev) => ({ ...prev, [index]: !prev[index] })) } + const accountProxyLabel = i18n._(ACCOUNT_PROXY_LABEL) + const FAQ_DATA = [ + { + question: msg`What is ${accountProxyLabel}?`, + answer: , + }, + { + question: msg`How do I recover my funds from ${accountProxyLabel}?`, + answer: , + }, + ] + return ( {FAQ_DATA.map((faq, index) => ( - {faq.question} + {i18n._(faq.question)} - {openItems[index] && ( -
{typeof faq.answer === 'function' ? faq.answer(recoverRouteLink) : faq.answer}
- )} + {openItems[index] &&
{faq.answer}
}
))}
diff --git a/apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx b/apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx index c4670bbacd..67a725f31a 100644 --- a/apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx +++ b/apps/cowswap-frontend/src/modules/accountProxy/pure/WalletNotConnected/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import ICON_WALLET from '@cowprotocol/assets/cow-swap/wallet-plus.svg' import { ButtonPrimary, ButtonSize } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import SVG from 'react-inlinesvg' import { Wrapper, Container, WalletIcon } from './styled' @@ -18,15 +20,16 @@ export function WalletNotConnected({ onConnect }: WalletNotConnectedProps): Reac return ( - + - -

Connect wallet to recover funds

+

+ Connect wallet to recover funds +

Connect wallet diff --git a/apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx b/apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx index e71f149a93..6102556229 100644 --- a/apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx +++ b/apps/cowswap-frontend/src/modules/advancedOrders/containers/AdvancedOrdersWidget/index.tsx @@ -3,6 +3,10 @@ import { ReactElement, ReactNode } from 'react' import { isSellOrder } from '@cowprotocol/common-utils' +import { MessageDescriptor } from '@lingui/core' +import { msg } from '@lingui/core/macro' +import { useLingui } from '@lingui/react/macro' + import { Field } from 'legacy/state/types' import { useAdvancedOrdersActions } from 'modules/advancedOrders/hooks/useAdvancedOrdersActions' @@ -15,7 +19,7 @@ import { useGetReceiveAmountInfo, TradeWidgetParams, } from 'modules/trade' -import { BulletListItem, UnlockWidgetScreen } from 'modules/trade/pure/UnlockWidgetScreen' +import { UnlockWidgetScreen } from 'modules/trade/pure/UnlockWidgetScreen' import { useTradeQuote } from 'modules/tradeQuote' import { TWAP_LEARN_MORE_LINK } from 'modules/twap/const' @@ -24,18 +28,24 @@ import { CurrencyInfo } from 'common/pure/CurrencyInputPanel/types' import { useUpdateAdvancedOrdersRawState } from '../../hooks/useAdvancedOrdersRawState' import { AdvancedOrdersSettings } from '../AdvancedOrdersSettings' -const TWAP_BULLET_LIST_CONTENT: BulletListItem[] = [ - { content: 'Get the Time-Weighted Average Price by splitting your large order into parts' }, - { content: 'Customize your order size, expiration, and number of parts' }, - { content: 'Receive surplus of your order' }, - { content: 'Reduce your slippage by breaking big orders into smaller ones' }, +const TWAP_BULLETIN_LIST_CONTENT: MessageDescriptor[] = [ + msg`Get the Time-Weighted Average Price by splitting your large order into parts`, + msg`Customize your order size, expiration, and number of parts`, + msg`Receive surplus of your order`, + msg`Reduce your slippage by breaking big orders into smaller ones`, ] -const UNLOCK_SCREEN = { - title: 'Unlock the Power of TWAP Orders', - subtitle: 'Begin with TWAP Today!', - orderType: 'TWAP', - buttonText: 'Unlock TWAP orders', +const UNLOCK_SCREEN: { + buttonLink: string + buttonText: MessageDescriptor + orderType: MessageDescriptor + subtitle: MessageDescriptor + title: MessageDescriptor +} = { + title: msg`Unlock the Power of TWAP Orders`, + subtitle: msg`Begin with TWAP Today!`, + orderType: msg`TWAP`, + buttonText: msg`Unlock TWAP orders`, // TODO: add actual link before deploy to PROD buttonLink: TWAP_LEARN_MORE_LINK, } @@ -62,6 +72,8 @@ export function AdvancedOrdersWidget({ confirmContent, mapCurrencyInfo, }: AdvancedOrdersWidgetProps) { + const { i18n } = useLingui() + const { title, orderType, buttonText, buttonLink, subtitle } = UNLOCK_SCREEN const { disablePriceImpact } = params const { @@ -96,6 +108,7 @@ export function AdvancedOrdersWidget({ balance: inputCurrencyBalance, fiatAmount: inputCurrencyFiatAmount, } + const outputCurrencyInfo: CurrencyInfo = { field: Field.OUTPUT, currency: outputCurrency, @@ -115,12 +128,14 @@ export function AdvancedOrdersWidget({ lockScreen: isUnlocked ? undefined : ( ({ + content: i18n._(item), + }))} + buttonLink={buttonLink} + title={i18n._(title)} + subtitle={i18n._(subtitle)} + orderType={i18n._(orderType)} + buttonText={i18n._(buttonText)} handleUnlock={() => updateAdvancedOrdersState({ isUnlocked: true })} /> ), diff --git a/apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx b/apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx index d8193b769c..d4badfdc7a 100644 --- a/apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx +++ b/apps/cowswap-frontend/src/modules/advancedOrders/pure/Settings/index.tsx @@ -1,10 +1,13 @@ import { useAtomValue, useSetAtom } from 'jotai' +import { t } from '@lingui/core/macro' +import { Trans, useLingui } from '@lingui/react/macro' + import { limitOrdersSettingsAtom, updateLimitOrdersSettingsAtom, } from 'modules/limitOrders/state/limitOrdersSettingsAtom' -import { ORDERS_TABLE_SETTINGS } from 'modules/trade/const/common' +import { getOrdersTableSettings } from 'modules/trade/const/common' import { SettingsBox, SettingsContainer, SettingsTitle } from 'modules/trade/pure/Settings' import { AdvancedOrdersSettingsState } from '../../state/advancedOrdersSettingsAtom' @@ -21,21 +24,23 @@ export function Settings({ state, onStateChanged }: SettingsProps) { // TODO: we should use limit orders settings in Advanced Orders! const limitOrdersSettings = useAtomValue(limitOrdersSettingsAtom) const updateLimitOrdersSettings = useSetAtom(updateLimitOrdersSettingsAtom) + const { LEFT_ALIGNED } = getOrdersTableSettings() + const { i18n } = useLingui() return ( - Advanced Order Settings - + + Advanced Order Settings + onStateChanged({ showRecipient: !showRecipient })} /> - updateLimitOrdersSettings({ ordersTableOnLeft: !limitOrdersSettings.ordersTableOnLeft })} /> diff --git a/apps/cowswap-frontend/src/modules/appData/updater/AppDataInfoUpdater.ts b/apps/cowswap-frontend/src/modules/appData/updater/AppDataInfoUpdater.ts index 8ae058fcdb..70b890061d 100644 --- a/apps/cowswap-frontend/src/modules/appData/updater/AppDataInfoUpdater.ts +++ b/apps/cowswap-frontend/src/modules/appData/updater/AppDataInfoUpdater.ts @@ -28,7 +28,7 @@ export type UseAppDataParams = { * The hook can be called only from an updater */ // TODO: Break down this large function into smaller functions -// eslint-disable-next-line max-lines-per-function + export function AppDataInfoUpdater({ appCodeWithWidgetMetadata, chainId, diff --git a/apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx b/apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx index 792df8ada0..552cada2b1 100644 --- a/apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx +++ b/apps/cowswap-frontend/src/modules/application/containers/App/CowSpeechBubble.tsx @@ -2,6 +2,8 @@ import { useEffect, useState, type ReactNode } from 'react' import { useReducedMotionPreference } from '@cowprotocol/common-hooks' +import { useLingui, Trans } from '@lingui/react/macro' + import { CowSwapAnalyticsCategory, toCowSwapGtmEvent } from 'common/analytics/types' import { Arrow, Bubble, BubbleContent, CloseButton, Cursor, JobsLink, TypingLine } from './CowSpeechBubble.styled' @@ -18,24 +20,26 @@ const BUBBLE_DELAY_MS = 3000 export function CowSpeechBubble({ show, onClose }: CowSpeechBubbleProps): ReactNode { const prefersReducedMotion = useReducedMotionPreference() const hasDelayElapsed = useBubbleDelay(show) + const { t, i18n } = useLingui() + const typingMessage = i18n._(TYPING_MESSAGE) const charIndex = useTypingProgress({ show, hasDelayElapsed, prefersReducedMotion, - message: TYPING_MESSAGE, + message: typingMessage, }) if (!show || !hasDelayElapsed) { return null } - const isTypingComplete = charIndex >= TYPING_MESSAGE.length - const displayedText = TYPING_MESSAGE.slice(0, charIndex) + const isTypingComplete = charIndex >= typingMessage.length + const displayedText = typingMessage.slice(0, charIndex) const showCursor = hasDelayElapsed && show && !isTypingComplete return ( - + × @@ -55,7 +59,7 @@ export function CowSpeechBubble({ show, onClose }: CowSpeechBubbleProps): ReactN label: CAREERS_URL, })} > - View jobs + View jobs diff --git a/apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx b/apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx index 9ca89c6630..e6b3572190 100644 --- a/apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx +++ b/apps/cowswap-frontend/src/modules/application/containers/App/menuConsts.tsx @@ -2,6 +2,9 @@ import { ACCOUNT_PROXY_LABEL } from '@cowprotocol/common-const' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { MenuItem, ProductVariant } from '@cowprotocol/ui' +import { i18n } from '@lingui/core' +import { msg } from '@lingui/core/macro' + import AppziButton from 'legacy/components/AppziButton' import { Version } from 'legacy/components/Version' @@ -10,73 +13,138 @@ import { FortuneWidget } from 'modules/fortune/containers/FortuneWidget' import { Routes } from 'common/constants/routes' export const PRODUCT_VARIANT = ProductVariant.CowSwap -export const NAV_ITEMS = (chainId: SupportedChainId): MenuItem[] => { - return [ + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +const ACCOUNT_ITEM = (chainId: SupportedChainId) => ({ + label: msg`Account`, + children: [ + { + href: '/account', + label: msg`Account`, + }, + { + href: '/account/tokens', + label: msg`Tokens`, + }, + { + href: `/${chainId}/account-proxy`, + label: ACCOUNT_PROXY_LABEL, + }, + ], +}) + +const LEARN_ITEM = { + label: msg`Learn`, + children: [ + { + href: 'https://cow.fi/cow-swap', + label: msg`About CoW Swap`, + external: true, + }, + { + href: 'https://cow.fi/learn', + label: msg`FAQs`, + external: true, + }, + { + href: 'https://docs.cow.fi/', + label: msg`Docs`, + external: true, + }, + ], +} + +const LEARN_ITEM_SUBMENU = { + label: msg`Legal`, + children: [ { - label: 'Account', - children: [ - { href: '/account', label: 'Account' }, - { - href: '/account/tokens', - label: 'Tokens', - }, - { - href: `/${chainId}/account-proxy`, - label: ACCOUNT_PROXY_LABEL, - }, - ], + href: 'https://cow.fi/legal/cowswap-privacy-policy', + label: msg`Privacy Policy`, + external: true, }, { - label: 'Learn', - children: [ - { - href: 'https://cow.fi/cow-swap', - label: 'About CoW Swap', - external: true, - }, - { href: 'https://cow.fi/learn', label: 'FAQs', external: true }, - { href: 'https://docs.cow.fi/', label: 'Docs', external: true }, - { - label: 'Legal', - children: [ - { href: 'https://cow.fi/legal/cowswap-privacy-policy', label: 'Privacy Policy', external: true }, - { href: 'https://cow.fi/legal/cowswap-cookie-policy', label: 'Cookie Policy', external: true }, - { href: 'https://cow.fi/legal/cowswap-terms', label: 'Terms and Conditions', external: true }, - ], - }, - ], + href: 'https://cow.fi/legal/cowswap-cookie-policy', + label: msg`Cookie Policy`, + external: true, }, { - label: 'More', - children: [ - { - href: 'https://cow.fi/cow-protocol', - label: 'CoW Protocol', - external: true, - }, - { - href: 'https://cow.fi/cow-amm', - label: 'CoW AMM', - external: true, - }, - { - href: 'https://cow.fi/careers', - label: 'Careers', - external: true, - }, - { - href: Routes.PLAY_COWRUNNER, - label: 'CoW Runner', - // icon: IMG_ICON_COW_RUNNER, - }, - { - href: Routes.PLAY_MEVSLICER, - label: 'MEV Slicer', - // icon: IMG_ICON_COW_SLICER, - }, - ], + href: 'https://cow.fi/legal/cowswap-terms', + label: msg`Terms and Conditions`, + external: true, }, - ] + ], +} + +const MORE_ITEM = { + label: msg`More`, + children: [ + { + href: 'https://cow.fi/cow-protocol', + label: msg`CoW Protocol`, + external: true, + }, + { + href: 'https://cow.fi/cow-amm', + label: msg`CoW AMM`, + external: true, + }, + { + href: 'https://cow.fi/careers', + label: msg`Careers`, + external: true, + }, + { + href: Routes.PLAY_COWRUNNER, + label: msg`CoW Runner`, + // icon: IMG_ICON_COW_RUNNER, + }, + { + href: Routes.PLAY_MEVSLICER, + label: msg`MEV Slicer`, + // icon: IMG_ICON_COW_SLICER, + }, + ], +} + +export const NAV_ITEMS = (chainId: SupportedChainId): MenuItem[] => { + const _ACCOUNT_ITEM = ACCOUNT_ITEM(chainId) + const accountItem: MenuItem = { + label: i18n._(_ACCOUNT_ITEM.label), + children: _ACCOUNT_ITEM.children.map(({ href, label }) => ({ + href, + label: i18n._(label), + })), + } + + const learnItem: MenuItem = { + label: i18n._(LEARN_ITEM.label), + children: [ + ...LEARN_ITEM.children.map(({ href, label, external }) => ({ + href, + label: i18n._(label), + external, + })), + { + label: i18n._(LEARN_ITEM_SUBMENU.label), + children: LEARN_ITEM_SUBMENU.children.map(({ href, label, external }) => ({ + href, + label: i18n._(label), + external, + })), + }, + ], + } + + const moreItem: MenuItem = { + label: i18n._(MORE_ITEM.label), + children: MORE_ITEM.children.map(({ href, label, external }) => ({ + href, + label: i18n._(label), + external, + })), + } + + return [accountItem, learnItem, moreItem] } export const ADDITIONAL_FOOTER_CONTENT = ( diff --git a/apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts b/apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts index e2cf98c04f..280c14b353 100644 --- a/apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts +++ b/apps/cowswap-frontend/src/modules/application/containers/App/utils/cowSpeechBubbleTyping.ts @@ -1,6 +1,8 @@ import type { Dispatch, SetStateAction } from 'react' -export const TYPING_MESSAGE = "Mooo, we're hiring!" +import { msg } from '@lingui/core/macro' + +export const TYPING_MESSAGE = msg`Mooo, we're hiring!` const TYPING_INTERVAL_MS = 140 interface StartTypingParams { @@ -8,10 +10,7 @@ interface StartTypingParams { messageLength: number } -export function startTypingAnimation({ - setCharIndex, - messageLength, -}: StartTypingParams): () => void { +export function startTypingAnimation({ setCharIndex, messageLength }: StartTypingParams): () => void { let currentIndex = 0 const intervalId = setInterval(() => { diff --git a/apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx b/apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx index 0a241434d6..dac5a69426 100644 --- a/apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx +++ b/apps/cowswap-frontend/src/modules/application/containers/AppMenu/index.tsx @@ -1,14 +1,16 @@ import { PropsWithChildren, ReactNode, useMemo } from 'react' +import { SUPPORTED_LOCALES } from '@cowprotocol/common-const' import { useMediaQuery } from '@cowprotocol/common-hooks' import { isInjectedWidget } from '@cowprotocol/common-utils' import { Color, Media, MenuBar } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' +import { useLingui } from '@lingui/react/macro' import SVG from 'react-inlinesvg' import { NavLink } from 'react-router' -import { useDarkModeManager } from 'legacy/state/user/hooks' +import { useDarkModeManager, useUserLocaleManager } from 'legacy/state/user/hooks' import { parameterizeTradeRoute, useGetTradeUrlParams } from 'modules/trade' @@ -37,27 +39,34 @@ export function AppMenu({ children }: AppMenuProps): ReactNode { const isInjectedWidgetMode = isInjectedWidget() const menuItems = useMenuItems() const [darkMode, toggleDarkMode] = useDarkModeManager() - + const { setLocale } = useUserLocaleManager() const isMobile = useMediaQuery(Media.upToMedium(false)) - const customTheme = useCustomTheme() + const getTradeUrlParams = useGetTradeUrlParams() + const { t } = useLingui() const settingsNavItems = useMemo( () => [ { - label: darkMode ? 'Light mode' : 'Dark mode', + label: darkMode ? t`Light mode` : t`Dark mode`, onClick: toggleDarkMode, }, ], - [darkMode, toggleDarkMode], + [darkMode, toggleDarkMode, t], ) - const getTradeUrlParams = useGetTradeUrlParams() + const languageNavItems = { + label: t`Languages`, + children: SUPPORTED_LOCALES.map((item) => ({ + label: item, + onClick: () => setLocale(item), + })), + } const navItems = useMemo(() => { return [ { - label: 'Trade', + label: t`Trade`, children: menuItems.map((item) => { const href = parameterizeTradeRoute(getTradeUrlParams(item), item.route, true) @@ -65,37 +74,42 @@ export function AppMenu({ children }: AppMenuProps): ReactNode { href, label: item.label, description: item.description, - badge: item.badgeImage ? : item.badge, + badge: item.badgeImage ? ( + + ) : item.badge ? ( + item.badge + ) : undefined, badgeType: item.badgeType, } }), }, ...NAV_ITEMS(chainId), ] - }, [menuItems, getTradeUrlParams, chainId]) + }, [t, menuItems, chainId, getTradeUrlParams]) if (isInjectedWidgetMode) return null // TODO: Move hard-coded colors to theme return ( ) } diff --git a/apps/cowswap-frontend/src/modules/application/containers/PageTitle/index.tsx b/apps/cowswap-frontend/src/modules/application/containers/PageTitle/index.tsx index 9b639566c8..7f450b60dd 100644 --- a/apps/cowswap-frontend/src/modules/application/containers/PageTitle/index.tsx +++ b/apps/cowswap-frontend/src/modules/application/containers/PageTitle/index.tsx @@ -1,21 +1,24 @@ +import { ReactNode, useEffect } from 'react' + import { APP_TITLE } from '@cowprotocol/common-const' +import { useLingui } from '@lingui/react/macro' import { Helmet } from 'react-helmet-async' type PageTitleProps = { title?: string } -// TODO: Add proper return type annotation -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export function PageTitle({ title }: PageTitleProps) { +export function PageTitle({ title }: PageTitleProps): ReactNode { + const { i18n } = useLingui() + + useEffect(() => { + document.title = `${title ? `${title} - ` : ''}${i18n._(APP_TITLE)}` + }, [i18n, title]) + return ( - + - - {title ? `${title} - ` : ''} - {APP_TITLE} - ) } diff --git a/apps/cowswap-frontend/src/modules/bridge/constants.ts b/apps/cowswap-frontend/src/modules/bridge/constants.ts index 4a52816c27..b46db9fb11 100644 --- a/apps/cowswap-frontend/src/modules/bridge/constants.ts +++ b/apps/cowswap-frontend/src/modules/bridge/constants.ts @@ -1,4 +1,5 @@ -export const COW_PROTOCOL_NAME = 'CoW Protocol' +import { MessageDescriptor } from '@lingui/core' +import { msg } from '@lingui/core/macro' +export const COW_PROTOCOL_NAME = `CoW Protocol` -export const BRIDGE_DISCLAIMER_TOOLTIP_CONTENT = - 'Bridging feature is exclusively operated by the indicated third party. Please review their terms.' +export const BRIDGE_DISCLAIMER_TOOLTIP_CONTENT: MessageDescriptor = msg`Bridging feature is exclusively operated by the indicated third party. Please review their terms.` diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx index 3714f9e02f..1af391aad0 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeAccordionSummary.tsx @@ -9,6 +9,7 @@ import { displayTime } from '@cowprotocol/common-utils' import { BridgeProviderInfo } from '@cowprotocol/sdk-bridging' import { UI } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' import styled from 'styled-components/macro' import { ProtocolIcons } from './ProtocolIcons' @@ -54,7 +55,7 @@ export function BridgeAccordionSummary({ {children} {bridgeEstimatedTime !== undefined && ( / {displayTime(bridgeEstimatedTime * 1000, true)} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx index 847d9ae595..4702ae74d8 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeActivitySummary/BridgeStepRow.tsx @@ -1,5 +1,7 @@ import { ReactNode } from 'react' +import { Trans, useLingui } from '@lingui/react/macro' + import { BridgeSummaryRow, StepContent } from './styled' import { SwapAndBridgeContext, SwapAndBridgeStatus } from '../../types' @@ -22,12 +24,14 @@ export function BridgeStepRow({ context }: BridgeStepRowProps): ReactNode { statusResult, explorerUrl, } = context - + const { i18n } = useLingui() const bridgeStatus = bridgingStatus === SwapAndBridgeStatus.DEFAULT ? SwapAndBridgeStatus.PENDING : bridgingStatus return ( - Bridge + + Bridge + - From + + From + - - {` on ${capitalizeFirstLetter(sourceChainName)}`} + {' '} + on {capitalizeFirstLetter(sourceChainName)} - {isFinished ? 'To' : 'To at least'} + {isFinished ? To : To at least} {targetAmount ? ( <> - - {` on ${capitalizeFirstLetter(targetChainName)}`} + on{' '} + {capitalizeFirstLetter(targetChainName)} ) : ( @@ -64,10 +69,12 @@ export function BridgeSummaryHeader({ {isCustomRecipient && targetRecipient && targetAmount && ( - Recipient: + + Recipient: + {isCustomRecipientWarning && ( - + )} - Swap + + Swap + ) : ( - Bridge + + Bridge + diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeRouteTitle/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeRouteTitle/index.tsx index 36f21e832e..7e4795d3ec 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeRouteTitle/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeRouteTitle/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { BridgeProviderInfo } from '@cowprotocol/sdk-bridging' import { InfoTooltip } from '@cowprotocol/ui' +import { useLingui } from '@lingui/react/macro' + import { BRIDGE_DISCLAIMER_TOOLTIP_CONTENT, COW_PROTOCOL_NAME } from '../../constants' import { StopNumberCircle } from '../../styles' import { SwapAndBridgeStatus } from '../../types' @@ -31,6 +33,8 @@ export function BridgeRouteTitle({ circleSize, stopNumber, }: BridgeRouteTitleProps): ReactNode { + const { i18n } = useLingui() + return ( <> @@ -46,7 +50,7 @@ export function BridgeRouteTitle({ /> {protocolName} {!protocolName.includes(COW_PROTOCOL_NAME) && ( - + )} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx index 4521f3afab..7591eddfbe 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/BridgeTransactionLink/index.tsx @@ -3,11 +3,9 @@ import { ReactNode } from 'react' import { useMediaQuery } from '@cowprotocol/common-hooks' import { Media } from '@cowprotocol/ui' -import { TransactionLinkDisplay } from '../TransactionLink/TransactionLinkDisplay' +import { useLingui } from '@lingui/react/macro' -function getBridgeTransactionLinkText(isMobile: boolean): string { - return isMobile ? 'Bridge explorer ↗' : 'View on bridge explorer ↗' -} +import { TransactionLinkDisplay } from '../TransactionLink/TransactionLinkDisplay' interface BridgeTransactionLinkProps { link: string @@ -16,7 +14,11 @@ interface BridgeTransactionLinkProps { export function BridgeTransactionLink({ link, label }: BridgeTransactionLinkProps): ReactNode { const isMobile = useMediaQuery(Media.upToSmall(false)) - const linkText = getBridgeTransactionLinkText(isMobile) + const { t } = useLingui() - return -} \ No newline at end of file + const getBridgeTransactionLinkText = (isMobile: boolean): string => { + return (isMobile ? t`Bridge explorer` : t`View on bridge explorer`) + ` ↗` + } + + return +} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx index c94e613fdf..77f5ccacbe 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/DepositTxLink/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { ExplorerDataType, getExplorerLink } from '@cowprotocol/common-utils' import { SupportedChainId } from '@cowprotocol/cow-sdk' +import { t } from '@lingui/core/macro' + import { TransactionLinkItem } from '../TransactionLink' interface DepositTxLinkProps { @@ -15,5 +17,5 @@ export function DepositTxLink({ depositTxHash, sourceChainId }: DepositTxLinkPro if (!depositLink) return null - return + return } diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/ProgressDetails/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/ProgressDetails/index.tsx index 08503cd50f..cc59e7a6ef 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/ProgressDetails/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/ProgressDetails/index.tsx @@ -1,5 +1,7 @@ import { ReactNode } from 'react' +import { useLingui } from '@lingui/react/macro' + import { COW_PROTOCOL_NAME } from '../../constants' import { DividerHorizontal } from '../../styles' import { SwapAndBridgeStatus, SwapAndBridgeContext } from '../../types' @@ -25,6 +27,7 @@ interface BridgeStepProps { } function SwapStep({ context }: SwapStepProps): ReactNode { + const { i18n } = useLingui() const { bridgeProvider, overview, swapResultContext } = context const { sourceAmounts, sourceChainName } = overview const swapStatus = SwapAndBridgeStatus.DONE @@ -37,7 +40,7 @@ function SwapStep({ context }: SwapStepProps): ReactNode { statusIcon={SwapStatusIcons[swapStatus]} protocolIconShowOnly="first" protocolIconSize={21} - titlePrefix={SwapStatusTitlePrefixes[swapStatus]} + titlePrefix={i18n._(SwapStatusTitlePrefixes[swapStatus])} protocolName={COW_PROTOCOL_NAME} bridgeProvider={bridgeProvider} chainName={sourceChainName} @@ -52,6 +55,7 @@ function SwapStep({ context }: SwapStepProps): ReactNode { function BridgeStep({ context, bridgeStatus }: BridgeStepProps): ReactNode { const { bridgeProvider, overview, quoteBridgeContext, bridgingProgressContext, statusResult, explorerUrl } = context const { targetAmounts, targetChainName } = overview + const { i18n } = useLingui() return ( - {isRecipientOverridden ? 'Modified recipient address to' : 'Swap bridged via your ' + ACCOUNT_PROXY_LABEL} + {isRecipientOverridden + ? t`Modified recipient address to` + : t`Swap bridged via your` + ` ` + accountProxyLabelString} :
} expandedContent={ isRecipientOverridden ? (
- The bridge provider modified the recipient address to . - This ensure smooooth bridging. + + The bridge provider modified the recipient address to{' '} + . This ensure smooooth bridging. +

- Only proceed if you trust this provider. + Only proceed if you trust this provider.
) : (
- CoW Swap uses a dedicated {ACCOUNT_PROXY_LABEL}, controlled only by you, to ensure smooooth bridging. - Confirm the recipient address above is + + CoW Swap uses a dedicated {accountProxyLabelString}, controlled only by you, to ensure smooooth bridging. + Confirm the recipient address above is +

- View your private {ACCOUNT_PROXY_LABEL} +{' '} + View your private {accountProxyLabelString} +{' '}
diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/QuoteDetails/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/QuoteDetails/index.tsx index 5d66000f2f..5bc33c0f74 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/QuoteDetails/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/QuoteDetails/index.tsx @@ -2,6 +2,8 @@ import { ReactNode } from 'react' import { BridgeProviderInfo } from '@cowprotocol/sdk-bridging' +import { useLingui } from '@lingui/react/macro' + import { COW_PROTOCOL_NAME } from '../../constants' import { DividerHorizontal } from '../../styles' import { QuoteBridgeContext, QuoteSwapContext, SwapAndBridgeStatus } from '../../types' @@ -15,11 +17,9 @@ interface QuoteDetailsProps { isCollapsible?: boolean stepsCollapsible?: boolean hideRecommendedSlippage?: boolean - bridgeProvider: BridgeProviderInfo swapContext: QuoteSwapContext bridgeContext: QuoteBridgeContext - collapsedDefault?: ReactNode } @@ -43,6 +43,7 @@ function SwapStep({ swapContext, hideRecommendedSlippage, }: SwapStepProps): ReactNode { + const { i18n } = useLingui() const status = SwapAndBridgeStatus.DEFAULT return ( @@ -54,7 +55,7 @@ function SwapStep({ statusIcon={null} protocolIconShowOnly="first" protocolIconSize={21} - titlePrefix={SwapStatusTitlePrefixes[status]} + titlePrefix={i18n._(SwapStatusTitlePrefixes[status])} protocolName={COW_PROTOCOL_NAME} bridgeProvider={bridgeProvider} chainName={swapContext.chainName} @@ -67,6 +68,7 @@ function SwapStep({ } function BridgeStep({ stepsCollapsible, bridgeProvider, bridgeContext }: BridgeStepProps): ReactNode { + const { i18n } = useLingui() const status = SwapAndBridgeStatus.DEFAULT return ( @@ -77,7 +79,7 @@ function BridgeStep({ stepsCollapsible, bridgeProvider, bridgeContext }: BridgeS stopNumber={2} statusIcon={null} protocolIconShowOnly="second" - titlePrefix={BridgeStatusTitlePrefixes[status]} + titlePrefix={i18n._(BridgeStatusTitlePrefixes[status])} protocolName={bridgeProvider.name} bridgeProvider={bridgeProvider} chainName={bridgeContext.chainName} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx index 0d9974fbbd..952d4b7c2c 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/RecipientDetailsItem/index.tsx @@ -3,6 +3,9 @@ import { ReactNode } from 'react' import { areAddressesEqual, isAddress } from '@cowprotocol/common-utils' import { InfoTooltip, NetworkLogo } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' + import { ConfirmDetailsItem } from 'modules/trade' import { BRIDGE_QUOTE_ACCOUNT } from 'modules/tradeQuote' @@ -23,8 +26,8 @@ export function RecipientDetailsItem({ recipient, chainId }: RecipientDetailsIte withTimelineDot label={ <> - Recipient{' '} - + Recipient{' '} + } > diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx index 891eb004a6..298d66ec7f 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/RouteOverviewTitle/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { BridgeProviderInfo } from '@cowprotocol/sdk-bridging' import { InfoTooltip } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' + import { ToggleArrow } from 'common/pure/ToggleArrow' import { ClickableRouteHeader, CollapsibleStopsInfo, RouteHeader, RouteTitle, StopsInfo } from './styled' @@ -24,30 +26,31 @@ export function RouteOverviewTitle({ onClick, }: RouteOverviewTitleProps): ReactNode { const HeaderComponent = isCollapsible ? ClickableRouteHeader : RouteHeader + const providerInfoName = providerInfo.name return ( - Route{' '} + Route{' '} + Your trade will be executed in 2 stops. First, you swap on {COW_PROTOCOL_NAME} (Stop 1), then you - bridge via {providerInfo.name} (Stop 2). - + bridge via {providerInfoName} (Stop 2). + } size={14} /> {isCollapsible ? ( - 2 stops + 2 stops ) : ( - 2 stops + 2 stops )} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx index f20af7c7be..2d1021b032 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/RouteTitle/index.tsx @@ -2,6 +2,8 @@ import { ReactNode } from 'react' import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' +import { Trans } from '@lingui/react/macro' + import { ConfirmDetailsItem } from 'modules/trade' import { ArrowIcon, TokenFlowContainer } from '../../styles' @@ -20,8 +22,8 @@ export function RouteTitle({ chainName, sellAmount, buyAmount, buyAmountUsd }: R - - {` on ${chainName}`} + on{' '} + {chainName} ) diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx index a8a861c1bc..aa555baf6e 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/StopStatus/index.tsx @@ -5,6 +5,8 @@ import RefundIcon from '@cowprotocol/assets/cow-swap/icon-refund.svg' import SpinnerIcon from '@cowprotocol/assets/cow-swap/spinner.svg' import CLOSE_ICON_X from '@cowprotocol/assets/cow-swap/x.svg' +import { MessageDescriptor } from '@lingui/core' +import { msg } from '@lingui/core/macro' import SVG from 'react-inlinesvg' import styled from 'styled-components/macro' @@ -50,22 +52,22 @@ export const SwapStatusIcons: Record = { export const BridgeStatusIcons = CommonStatusIcons // Title text used for different swap states -export const SwapStatusTitlePrefixes: Record = { - [SwapAndBridgeStatus.DONE]: 'Swapped on', - [SwapAndBridgeStatus.PENDING]: 'Swapping on', - [SwapAndBridgeStatus.FAILED]: 'Swap failed', - [SwapAndBridgeStatus.REFUND_COMPLETE]: 'Swap refunded', - [SwapAndBridgeStatus.DEFAULT]: 'Swap on', +export const SwapStatusTitlePrefixes: Record = { + [SwapAndBridgeStatus.DONE]: msg`Swapped on`, + [SwapAndBridgeStatus.PENDING]: msg`Swapping on`, + [SwapAndBridgeStatus.FAILED]: msg`Swap failed`, + [SwapAndBridgeStatus.REFUND_COMPLETE]: msg`Swap refunded`, + [SwapAndBridgeStatus.DEFAULT]: msg`Swap on`, } // Reusable text for different states -export const bridgeFailedTitle = 'Bridge failed on' +export const bridgeFailedTitle: MessageDescriptor = msg`Bridge failed on` // Title text used for different bridge states -export const BridgeStatusTitlePrefixes: Record = { - [SwapAndBridgeStatus.DONE]: 'Bridged via', - [SwapAndBridgeStatus.PENDING]: 'Bridging via', +export const BridgeStatusTitlePrefixes: Record = { + [SwapAndBridgeStatus.DONE]: msg`Bridged via`, + [SwapAndBridgeStatus.PENDING]: msg`Bridging via`, [SwapAndBridgeStatus.FAILED]: bridgeFailedTitle, [SwapAndBridgeStatus.REFUND_COMPLETE]: bridgeFailedTitle, - [SwapAndBridgeStatus.DEFAULT]: 'Bridge via', + [SwapAndBridgeStatus.DEFAULT]: msg`Bridge via`, } diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx index 0a6e39c9da..cfaf37ab1f 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/FailedBridgingContent/index.tsx @@ -3,28 +3,36 @@ import { ReactNode } from 'react' import RefundIcon from '@cowprotocol/assets/cow-swap/icon-refund.svg' import { RECEIVED_LABEL } from '@cowprotocol/common-const' +import { Trans, useLingui } from '@lingui/react/macro' + import { ConfirmDetailsItem, ReceiveAmountTitle } from 'modules/trade' import { AnimatedEllipsis, DangerText, InfoTextBold, InfoTextSpan } from '../../../../styles' import { StyledAnimatedTimelineRefundIcon } from '../../styled' export function FailedBridgingContent(): ReactNode { + const { i18n } = useLingui() + return ( <> - - Bridging failed + + + Bridging failed + }> - Refunding + + Refunding + } > - Refund started + Refund started diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx index 05c47f9e0c..06b49ce07c 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PendingBridgingContent/index.tsx @@ -4,6 +4,9 @@ import { RECEIVED_LABEL } from '@cowprotocol/common-const' import { SupportedChainId } from '@cowprotocol/cow-sdk' import { BridgeStatusResult } from '@cowprotocol/sdk-bridging' +import { t } from '@lingui/core/macro' +import { Trans, useLingui } from '@lingui/react/macro' + import { ConfirmDetailsItem, ReceiveAmountTitle } from 'modules/trade' import { AnimatedEllipsis, StatusAwareText } from '../../../../styles' @@ -23,26 +26,26 @@ export function PendingBridgingContent({ explorerUrl, }: PendingBridgingContentProps): ReactNode { const { depositTxHash } = statusResult || {} + const { i18n } = useLingui() return ( <> - {RECEIVED_LABEL} + {i18n._(RECEIVED_LABEL)} } > - in progress + in progress - {explorerUrl ? ( - + ) : ( )} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx index 46d8ad1092..d6a2f7c11e 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/PreparingBridgingContent/index.tsx @@ -1,5 +1,6 @@ import { ReactNode } from 'react' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { ConfirmDetailsItem } from 'modules/trade' @@ -26,7 +27,9 @@ export function PreparingBridgingContent({ withTimelineDot label={ - Loading bridge data + + Loading bridge data + } > diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx index 20b5e917b2..c3845144fe 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/ReceivedBridgingContent/index.tsx @@ -6,6 +6,8 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { BridgeStatusResult } from '@cowprotocol/sdk-bridging' import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { useLingui } from '@lingui/react/macro' import { useBridgeSupportedNetwork } from 'entities/bridgeProvider' import { ConfirmDetailsItem, ReceiveAmountTitle } from 'modules/trade' @@ -35,7 +37,7 @@ export function ReceivedBridgingContent({ }: ReceivedBridgingContentProps): ReactNode { const { depositTxHash, fillTxHash } = statusResult || {} const destinationBridgeNetwork = useBridgeSupportedNetwork(destinationChainId) - + const { i18n } = useLingui() const blockExplorerUrl = destinationBridgeNetwork?.blockExplorer?.url || getChainInfo(destinationChainId)?.explorer const fillTxLink = @@ -48,7 +50,7 @@ export function ReceivedBridgingContent({ - {RECEIVED_LABEL} + {i18n._(RECEIVED_LABEL)} } > @@ -58,12 +60,12 @@ export function ReceivedBridgingContent({ {explorerUrl ? ( - + ) : ( <> {fillTxLink && ( - + )} )} diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx index f9e2f3a6c7..00198199c1 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/BridgingProgressContent/RefundedBridgingContent/index.tsx @@ -7,6 +7,8 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { NetworkLogo } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans, useLingui } from '@lingui/react/macro' + import { ConfirmDetailsItem, ReceiveAmountTitle } from 'modules/trade' import { DangerText, SuccessTextBold, TimelineIconCircleWrapper } from '../../../../styles' @@ -20,11 +22,14 @@ interface RefundedContentProps { export function RefundedBridgingContent({ account, bridgeSendCurrencyAmount }: RefundedContentProps): ReactNode { const sourceChainId = bridgeSendCurrencyAmount.currency.chainId as SupportedChainId + const { i18n } = useLingui() return ( <> - - Bridging failed + + + Bridging failed + } > - Refunded to + + Refunded to + diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx index e5d892a620..42df43906b 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteBridgeContent/index.tsx @@ -3,6 +3,9 @@ import { ReactNode } from 'react' import { displayTime } from '@cowprotocol/common-utils' import { InfoTooltip } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' + import { ConfirmDetailsItem, ReceiveAmountTitle } from 'modules/trade' import { useUsdAmount } from 'modules/usdAmount' @@ -11,14 +14,6 @@ import { QuoteBridgeContext } from '../../../types' import { RecipientDetailsItem } from '../../RecipientDetailsItem' import { TokenAmountDisplay } from '../../TokenAmountDisplay' -const MIN_RECEIVE_TITLE = 'Min. to receive' - -const estBridgeTimeTooltip = ( - <> - Est. bridge time - -) - export interface QuoteBridgeContentProps { isQuoteDisplay?: boolean isFinished?: boolean @@ -26,6 +21,18 @@ export interface QuoteBridgeContentProps { children?: ReactNode } +const EstBridgeTimeTooltip: React.FC = () => ( + + Est. bridge time + +) + +const BridgeCosts: React.FC = () => ( + + Bridge costs + +) + export function QuoteBridgeContent({ isQuoteDisplay = false, isFinished = false, @@ -42,7 +49,6 @@ export function QuoteBridgeContent({ children, }: QuoteBridgeContentProps): ReactNode { const bridgeFeeUsd = useUsdAmount(bridgeFee).value - const minReceiveAmountEl = ( ) + const MIN_RECEIVE_TITLE = t`Min. to receive` return ( <> {isQuoteDisplay && ( )} {bridgeFee && ( - - Bridge costs - - } - > + }> {bridgeFee.equalTo(0) ? ( - FREE + + FREE + ) : ( )} )} - {estimatedTime && ( - + }> ~ {displayTime(estimatedTime * 1000, true)} )} - - {(!isFinished || !isQuoteDisplay) && ( {minReceiveAmountEl} : minReceiveAmountEl} )} - {children} ) diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx index 9a6001182d..2b0a7a5ef5 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/QuoteSwapContent/index.tsx @@ -4,6 +4,9 @@ import { isTruthy } from '@cowprotocol/common-utils' import { InfoTooltip, PercentDisplay } from '@cowprotocol/ui' import { Percent } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' + import { ProxyRecipient } from 'modules/accountProxy' import { ReceiveAmountTitle, TradeFeesAndCosts, ConfirmDetailsItem } from 'modules/trade' import { BRIDGE_QUOTE_ACCOUNT } from 'modules/tradeQuote' @@ -33,11 +36,11 @@ function createExpectedReceiveContent( withTimelineDot: true, label: ( <> - Expected to receive{' '} + {t`Expected to receive`}{' '} - The estimated amount you'll receive after estimated network costs and the max slippage setting ( + {t`The estimated amount you'll receive after estimated network costs and the max slippage setting`} ( ). @@ -55,7 +58,7 @@ function createSlippageContent( hideRecommendedSlippage: boolean, isSlippageModified: boolean, ): ContentItem { - const slippageLabel = <>Max. swap slippage + const slippageLabel = <>{t`Max. swap slippage`} const slippagePercentDisplay = ( - Recipient + {t`Recipient`} ), content: , @@ -95,7 +98,9 @@ function createMinReceiveContent( return { label: ( - Min. to receive + + Min. to receive + ), content: ( diff --git a/apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx b/apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx index 1a38734054..424ca0a088 100644 --- a/apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx +++ b/apps/cowswap-frontend/src/modules/bridge/pure/contents/SwapResultContent/contents.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import PlusIcon from '@cowprotocol/assets/cow-swap/plus.svg' import type { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { AMM_LOGOS } from 'legacy/components/AMMsLogo' @@ -32,7 +34,9 @@ export function ReceivedContent({ - Received + + Received + } > @@ -45,7 +49,14 @@ export function ReceivedContent({ export function ExecPriceContent({ rateInfoParams }: { rateInfoParams: RateInfoParams }): ReactNode { return ( - Exec. price
}> + + Exec. price + + } + > @@ -54,13 +65,14 @@ export function ExecPriceContent({ rateInfoParams }: { rateInfoParams: RateInfoP } export function SolverContent({ winningSolver }: { winningSolver: SolverCompetition }): ReactNode { + const solver = winningSolver.solver return ( - + {winningSolver.displayName || winningSolver.solver} {`${winningSolver.solver} @@ -86,7 +98,9 @@ export function SurplusConfig({ } > - Surplus received + + Surplus received + } > diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx index de4ee04dd4..2591ea9bb5 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/containers/ActiveOrdersWithAffectedPermit/ActiveOrdersWithAffectedPermit.tsx @@ -4,6 +4,8 @@ import { TokenSymbol } from '@cowprotocol/ui' import { useWalletInfo } from '@cowprotocol/wallet' import { Currency } from '@uniswap/sdk-core' +import { Trans, useLingui } from '@lingui/react/macro' + import { useOnlyPendingOrders } from 'legacy/state/orders/hooks' import { AffectedPermitOrdersTable } from 'modules/ordersTable' @@ -21,6 +23,7 @@ type ActiveOrdersWithAffectedPermitProps = { } export function ActiveOrdersWithAffectedPermit({ currency, orderId }: ActiveOrdersWithAffectedPermitProps): ReactNode { + const { t } = useLingui() const { chainId, account } = useWalletInfo() const pendingOrders = useOnlyPendingOrders(chainId, account) const isPartialApproveSelectedByUser = useIsPartialApproveSelectedByUser() @@ -31,24 +34,29 @@ export function ActiveOrdersWithAffectedPermit({ currency, orderId }: ActiveOrde if (!ordersWithPermit.length || !isPartialApproveSelectedByUser) return null + const ordersWithPermitLength = ordersWithPermit.length const isPlural = ordersWithPermit.length > 1 - const orderWord = isPlural ? 'orders' : 'order' + const orderWord = isPlural ? t`orders` : t`order` const titleContent = ( - <> - Partial approval may block {ordersWithPermit.length} other {orderWord}. - + + Partial approval may block {ordersWithPermitLength} other {orderWord} + ) + const areIs = isPlural ? t`are` : t`is` + return ( - There {isPlural ? 'are' : 'is'} {ordersWithPermit.length} existing{' '} - {orderWord} using a token approval. Partial approval + + There {areIs} {ordersWithPermitLength} existing{' '} + {orderWord} using a token approval. Partial approval may affect the execution of other orders. Adjust the amount or choose full approval to proceed. + ) diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx index 693e1f3e2b..73d97d409b 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/containers/ApprovalAmountInput/ApprovalAmountInput.tsx @@ -4,6 +4,8 @@ import { TokenWithLogo } from '@cowprotocol/common-const' import { tryParseCurrencyAmount } from '@cowprotocol/common-utils' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans, useLingui } from '@lingui/react/macro' + import { Field } from 'legacy/state/types' import { useUsdAmount } from 'modules/usdAmount' @@ -70,12 +72,14 @@ export function ApprovalAmountInput({ [updateCustomApproveAmountInput, tokenWithLogo, amountToSwap], ) - const resetLabel = customAmountValueState.isInvalid ? 'Set to trade' : 'Reset' + const { t } = useLingui() + + const resetLabel = customAmountValueState.isInvalid ? t`Set to trade` : t`Reset` return ( - Approval amount {resetLabel} + Approval amount {resetLabel} -
Edit partial approval
+
+ Edit partial approval +
- Set approval amount + + Set approval amount + - {isInvalid ? 'Amount must be at least trade amount' : 'Confirm'} + {isInvalid ? t`Amount must be at least trade amount` : t`Confirm`} diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx index 8555a06fc2..0fe94eace3 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/containers/SwapAmountPreview/SwapAmountPreview.tsx @@ -6,6 +6,7 @@ import { SupportedChainId } from '@cowprotocol/cow-sdk' import { TokenLogo } from '@cowprotocol/tokens' import { TokenAmount } from '@cowprotocol/ui' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { useDerivedTradeState } from 'modules/trade' @@ -40,10 +41,12 @@ export function SwapAmountPreview(): ReactNode { return ( - on {srcNetworkName} + on{' '} + {srcNetworkName} {' → '} - on {dstNetworkName} + on{' '} + {dstNetworkName} ) } diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx index b01d8d8f1a..c31b9135e0 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveButton/TradeApproveButton.tsx @@ -5,6 +5,8 @@ import { usePreventDoubleExecution } from '@cowprotocol/common-hooks' import { ButtonSize, HoverTooltip } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { useLingui } from '@lingui/react/macro' + import { useHasCachedPermit } from 'modules/permit' import { useIsCurrentTradeBridging } from 'modules/trade' @@ -31,6 +33,7 @@ export interface TradeApproveButtonProps { } export function TradeApproveButton(props: TradeApproveButtonProps): ReactNode { + const { t } = useLingui() const { amountToApprove, children, @@ -66,7 +69,8 @@ export function TradeApproveButton(props: TradeApproveButtonProps): ReactNode { const noCachedPermit = !cachedPermitLoading && !cachedPermit const label = - props.label || (noCachedPermit ? (isCurrentTradeBridging ? 'Approve, Swap & Bridge' : 'Approve and Swap') : 'Swap') + props.label || + (noCachedPermit ? (isCurrentTradeBridging ? t`Approve, Swap & Bridge` : t`Approve and Swap`) : t`Swap`) return ( void { const updateApproveProgressModalState = useUpdateApproveProgressModalState() const approvalAnalytics = useApprovalAnalytics() + const { t } = useLingui() return useCallback( (error: unknown) => { console.error('Error setting the allowance for token', error) if (isRejectRequestProviderError(error)) { - updateApproveProgressModalState({ error: 'User rejected approval transaction' }) + updateApproveProgressModalState({ error: t`User rejected approval transaction` }) } else { const errorCode = error && typeof error === 'object' && 'code' in error && typeof error.code === 'number' ? error.code : null @@ -23,6 +26,6 @@ export function useHandleApprovalError(symbol: string | undefined): (error: unkn updateApproveProgressModalState({ error: errorToString(error) }) } }, - [updateApproveProgressModalState, approvalAnalytics, symbol], + [updateApproveProgressModalState, t, approvalAnalytics, symbol], ) } diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.test.ts b/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.test.ts index 0eb6fba7f7..4b90f1d182 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.test.ts +++ b/apps/cowswap-frontend/src/modules/erc20Approve/containers/TradeApproveModal/useTradeApproveCallback.test.ts @@ -13,6 +13,7 @@ import { CowSwapAnalyticsCategory } from 'common/analytics/types' import { processApprovalTransaction } from './approveUtils' import { useTradeApproveCallback } from './useTradeApproveCallback' +import { LinguiWrapper } from '../../../../../LinguiJestProvider' import { useApproveCallback } from '../../hooks' import { useResetApproveProgressModalState, useUpdateApproveProgressModalState } from '../../state' @@ -149,7 +150,7 @@ describe('useTradeApproveCallback', () => { }) mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) @@ -180,7 +181,7 @@ describe('useTradeApproveCallback', () => { }) mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) // Request 1 token @@ -203,7 +204,7 @@ describe('useTradeApproveCallback', () => { mockProcessApprovalTransaction.mockReturnValue(null) // No approval data found mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) @@ -226,7 +227,7 @@ describe('useTradeApproveCallback', () => { mockProcessApprovalTransaction.mockReturnValue(null) mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) @@ -261,7 +262,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -283,7 +284,7 @@ describe('useTradeApproveCallback', () => { mockProcessApprovalTransaction.mockReturnValue(null) mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) @@ -303,7 +304,7 @@ describe('useTradeApproveCallback', () => { }) mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) const receipt = await result.current(mockAmount, { useModals: true, waitForTxConfirmation: true }) @@ -327,7 +328,7 @@ describe('useTradeApproveCallback', () => { const rejectError = { code: 4001, message: 'User rejected the request' } mockApproveCallback.mockRejectedValue(rejectError) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) const receipt = await result.current(mockAmount) @@ -349,7 +350,7 @@ describe('useTradeApproveCallback', () => { const genericError = { code: 500, message: 'Network error' } mockApproveCallback.mockRejectedValue(genericError) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) const receipt = await result.current(mockAmount) @@ -371,7 +372,7 @@ describe('useTradeApproveCallback', () => { const errorWithoutCode = new Error('Generic error') mockApproveCallback.mockRejectedValue(errorWithoutCode) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) const receipt = await result.current(mockAmount) @@ -393,7 +394,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -415,7 +416,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -438,7 +439,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -456,7 +457,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: false }) @@ -471,7 +472,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount, { useModals: false }) @@ -492,7 +493,7 @@ describe('useTradeApproveCallback', () => { mockApproveCallback.mockResolvedValue(mockTxResponse) mockProcessApprovalTransaction.mockReturnValue(null) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -509,7 +510,7 @@ describe('useTradeApproveCallback', () => { it('should reset state even on error', async () => { mockApproveCallback.mockRejectedValue(new Error('Test error')) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -531,7 +532,7 @@ describe('useTradeApproveCallback', () => { throw new Error('Approval transaction failed') }) - const { result } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) await result.current(mockAmount) @@ -548,7 +549,7 @@ describe('useTradeApproveCallback', () => { describe('memoization and re-renders', () => { it('should return stable callback reference', () => { - const { result, rerender } = renderHook(() => useTradeApproveCallback(mockToken)) + const { result, rerender } = renderHook(() => useTradeApproveCallback(mockToken), { wrapper: LinguiWrapper }) const firstCallback = result.current @@ -560,6 +561,7 @@ describe('useTradeApproveCallback', () => { it('should update callback when dependencies change', () => { const { result, rerender } = renderHook(({ currency }) => useTradeApproveCallback(currency), { initialProps: { currency: mockToken }, + wrapper: LinguiWrapper, }) const firstCallback = result.current diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.test.ts b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.test.ts index f4d0cd4138..ab187ec792 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.test.ts +++ b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.test.ts @@ -7,6 +7,7 @@ import { useApproveAndSwap } from './useApproveAndSwap' import { useApproveCurrency } from './useApproveCurrency' import { useGeneratePermitInAdvanceToTrade } from './useGeneratePermitInAdvanceToTrade' +import { LinguiWrapper } from '../../../../LinguiJestProvider' import { useTokenSupportsPermit } from '../../permit' import { MAX_APPROVE_AMOUNT } from '../constants' import { TradeApproveResult } from '../containers' @@ -83,13 +84,15 @@ describe('useApproveAndSwap', () => { mockUseTokenSupportsPermit.mockReturnValue(true) mockGeneratePermitToTrade.mockResolvedValue(true) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -105,13 +108,15 @@ describe('useApproveAndSwap', () => { mockUseTokenSupportsPermit.mockReturnValue(true) mockGeneratePermitToTrade.mockResolvedValue(false) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -127,13 +132,15 @@ describe('useApproveAndSwap', () => { mockUseTokenSupportsPermit.mockReturnValue(true) mockGeneratePermitToTrade.mockResolvedValue(true) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: undefined, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: undefined, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -153,13 +160,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: true, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: true, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -181,13 +190,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -206,13 +217,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -231,13 +244,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -257,13 +272,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -284,13 +301,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -306,13 +325,15 @@ describe('useApproveAndSwap', () => { it('should not call confirmSwap when transaction is null', async () => { mockHandleApprove.mockResolvedValue(null) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -326,13 +347,15 @@ describe('useApproveAndSwap', () => { it('should not call confirmSwap when transaction is undefined', async () => { mockHandleApprove.mockResolvedValue(undefined) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -351,13 +374,15 @@ describe('useApproveAndSwap', () => { } mockHandleApprove.mockResolvedValue(mockResult) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: undefined, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: undefined, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await result.current() @@ -371,38 +396,44 @@ describe('useApproveAndSwap', () => { describe('useModals parameter', () => { it('should pass useModals=true to useApproveCurrency', () => { - renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) expect(mockUseApproveCurrency).toHaveBeenCalledWith(mockAmountToApprove, true) }) it('should pass useModals=false to useApproveCurrency', () => { - renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: false, - }), + renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: false, + }), + { wrapper: LinguiWrapper }, ) expect(mockUseApproveCurrency).toHaveBeenCalledWith(mockAmountToApprove, false) }) it('should pass useModals=undefined to useApproveCurrency when not specified', () => { - renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - }), + renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + }), + { wrapper: LinguiWrapper }, ) expect(mockUseApproveCurrency).toHaveBeenCalledWith(mockAmountToApprove, undefined) @@ -414,13 +445,15 @@ describe('useApproveAndSwap', () => { const mockError = new Error('Approval failed') mockHandleApprove.mockRejectedValue(mockError) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await expect(result.current()).rejects.toThrow('Approval failed') @@ -434,13 +467,15 @@ describe('useApproveAndSwap', () => { const mockError = new Error('Permit generation failed') mockGeneratePermitToTrade.mockRejectedValue(mockError) - const { result } = renderHook(() => - useApproveAndSwap({ - amountToApprove: mockAmountToApprove, - onApproveConfirm: mockOnApproveConfirm, - ignorePermit: false, - useModals: true, - }), + const { result } = renderHook( + () => + useApproveAndSwap({ + amountToApprove: mockAmountToApprove, + onApproveConfirm: mockOnApproveConfirm, + ignorePermit: false, + useModals: true, + }), + { wrapper: LinguiWrapper }, ) await expect(result.current()).rejects.toThrow('Permit generation failed') diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts index f6f1e6c3dc..8ff99d09b6 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts +++ b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveAndSwap.ts @@ -3,6 +3,8 @@ import { useCallback } from 'react' import { TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { useLingui } from '@lingui/react/macro' + import { useApproveCurrency } from './useApproveCurrency' import { useGeneratePermitInAdvanceToTrade } from './useGeneratePermitInAdvanceToTrade' @@ -27,6 +29,7 @@ export function useApproveAndSwap({ onApproveConfirm, minAmountToSignForSwap, }: ApproveAndSwapProps): () => Promise { + const { t } = useLingui() const isPartialApproveEnabledByUser = useIsPartialApproveSelectedByUser() const handleApprove = useApproveCurrency(amountToApprove, useModals) const updateTradeApproveState = useUpdateApproveProgressModalState() @@ -61,7 +64,9 @@ export function useApproveAndSwap({ if (tx && onApproveConfirm) { if (getIsTradeApproveResult(tx)) { const approvedAmount = tx.approvedAmount - const minAmountToSignForSwapBig = minAmountToSignForSwap ? BigInt(minAmountToSignForSwap.quotient.toString()) : amountToApproveBig + const minAmountToSignForSwapBig = minAmountToSignForSwap + ? BigInt(minAmountToSignForSwap.quotient.toString()) + : amountToApproveBig const isApprovedAmountSufficient = Boolean(approvedAmount && approvedAmount >= minAmountToSignForSwapBig) if (isApprovedAmountSufficient) { @@ -70,19 +75,20 @@ export function useApproveAndSwap({ onApproveConfirm(hash) } else { - updateTradeApproveState({ error: 'Approved amount is not sufficient!' }) + updateTradeApproveState({ error: t`Approved amount is not sufficient!` }) } } else { onApproveConfirm(tx.transactionHash) } } }, [ - onApproveConfirm, - isPartialApproveEnabledByUser, + handlePermit, amountToApprove.quotient, + isPartialApproveEnabledByUser, handleApprove, + onApproveConfirm, updateTradeApproveState, - handlePermit, minAmountToSignForSwap, + t, ]) } diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx index 6b9533667d..e106f696bb 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/useApproveCallback.tsx @@ -6,6 +6,8 @@ import { BigNumber } from '@ethersproject/bignumber' import { TransactionResponse } from '@ethersproject/providers' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { useLingui } from '@lingui/react/macro' + import { useTransactionAdder } from 'legacy/state/enhancedTransactions/hooks' import { GAS_LIMIT_DEFAULT } from 'common/constants/common' @@ -47,12 +49,14 @@ export function useApproveCallback( const token = currency && !getIsNativeToken(currency) ? currency : undefined const { contract: tokenContract, chainId: tokenChainId } = useTokenContract(token?.address) const addTransaction = useTransactionAdder() + const { t } = useLingui() return useCallback( async (amount: CurrencyAmount | bigint) => { const amountToApprove = amount instanceof CurrencyAmount ? BigInt(amount.quotient.toString()) : amount + const tokenSymbol = token?.symbol - const summary = amountToApprove > 0n ? `Approve ${token?.symbol}` : `Revoke ${token?.symbol} approval` + const summary = amountToApprove > 0n ? t`Approve ${tokenSymbol}` : t`Revoke ${tokenSymbol} approval` const amountToApproveStr = '0x' + amountToApprove.toString(16) if (!tokenChainId || !token || !tokenContract || !spender) { @@ -74,6 +78,6 @@ export function useApproveCallback( return response }) }, - [tokenChainId, token, tokenContract, spender, addTransaction], + [token, t, tokenChainId, tokenContract, spender, addTransaction], ) } diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.test.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.test.tsx index 078f32c12f..e44851ab53 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.test.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.test.tsx @@ -6,6 +6,7 @@ import { act, renderHook } from '@testing-library/react' import { usePendingApprovalModal } from './usePendingApprovalModal' +import { LinguiWrapper } from '../../../../LinguiJestProvider' import { MAX_APPROVE_AMOUNT } from '../constants' interface ConfirmationPendingContentProps { @@ -62,7 +63,7 @@ describe('usePendingApprovalModal', () => { }) it('should return Modal and state', () => { - const { result } = renderHook(() => usePendingApprovalModal()) + const { result } = renderHook(() => usePendingApprovalModal(), { wrapper: LinguiWrapper }) expect(result.current).toHaveProperty('Modal') expect(result.current).toHaveProperty('state') @@ -70,41 +71,49 @@ describe('usePendingApprovalModal', () => { }) it('should handle empty params', () => { - const { result } = renderHook(() => usePendingApprovalModal()) + const { result } = renderHook(() => usePendingApprovalModal(), { wrapper: LinguiWrapper }) expect(result.current.Modal).toBeDefined() }) it('should use context when currencySymbol is not provided', () => { - const { result } = renderHook(() => usePendingApprovalModal()) + const { result } = renderHook(() => usePendingApprovalModal(), { wrapper: LinguiWrapper }) expect(result.current.Modal).toBeDefined() // The Modal should use the context value 'TEST_TOKEN' from mockModalState }) it('should use currencySymbol when provided', () => { - const { result } = renderHook(() => usePendingApprovalModal({ currencySymbol: 'DAI' })) + const { result } = renderHook(() => usePendingApprovalModal({ currencySymbol: 'DAI' }), { wrapper: LinguiWrapper }) expect(result.current.Modal).toBeDefined() // The Modal should use the provided currencySymbol 'DAI' }) it('should pass modalMode to ConfirmationPendingContent', () => { - const { result: resultWithModalMode } = renderHook(() => usePendingApprovalModal({ modalMode: true })) + const { result: resultWithModalMode } = renderHook(() => usePendingApprovalModal({ modalMode: true }), { + wrapper: LinguiWrapper, + }) expect(resultWithModalMode.current.Modal).toBeDefined() - const { result: resultWithoutModalMode } = renderHook(() => usePendingApprovalModal({ modalMode: false })) + const { result: resultWithoutModalMode } = renderHook(() => usePendingApprovalModal({ modalMode: false }), { + wrapper: LinguiWrapper, + }) expect(resultWithoutModalMode.current.Modal).toBeDefined() }) it('should pass isPendingInProgress to ConfirmationPendingContent', () => { - const { result: resultWithPending } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true })) + const { result: resultWithPending } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true }), { + wrapper: LinguiWrapper, + }) expect(resultWithPending.current.Modal).toBeDefined() - const { result: resultWithoutPending } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false })) + const { result: resultWithoutPending } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false }), { + wrapper: LinguiWrapper, + }) expect(resultWithoutPending.current.Modal).toBeDefined() }) @@ -112,7 +121,9 @@ describe('usePendingApprovalModal', () => { it('should handle onDismiss callback', () => { const mockOnDismiss = jest.fn() - const { result } = renderHook(() => usePendingApprovalModal({ onDismiss: mockOnDismiss })) + const { result } = renderHook(() => usePendingApprovalModal({ onDismiss: mockOnDismiss }), { + wrapper: LinguiWrapper, + }) // Extract the onDismiss prop from the Modal and call it const onDismissCallback = (result.current.Modal as ReactElement).props.onDismiss @@ -125,20 +136,24 @@ describe('usePendingApprovalModal', () => { }) it('should display token amount when amountToApprove is provided and not max', () => { - const { result } = renderHook(() => usePendingApprovalModal({ amountToApprove: mockPartialAmount })) + const { result } = renderHook(() => usePendingApprovalModal({ amountToApprove: mockPartialAmount }), { + wrapper: LinguiWrapper, + }) expect(result.current.Modal).toBeDefined() // The Modal should display the token amount }) it('should not display token amount when amountToApprove is max', () => { - const { result } = renderHook(() => usePendingApprovalModal({ amountToApprove: mockMaxAmount })) + const { result } = renderHook(() => usePendingApprovalModal({ amountToApprove: mockMaxAmount }), { + wrapper: LinguiWrapper, + }) expect(result.current.Modal).toBeDefined() }) it('should not display token amount when amountToApprove is not provided', () => { - const { result } = renderHook(() => usePendingApprovalModal({ currencySymbol: 'DAI' })) + const { result } = renderHook(() => usePendingApprovalModal({ currencySymbol: 'DAI' }), { wrapper: LinguiWrapper }) expect(result.current.Modal).toBeDefined() }) @@ -147,7 +162,9 @@ describe('usePendingApprovalModal', () => { it('should show pending state when isPartialApproveEnabled is true and isPendingInProgress is true', () => { mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true })) + const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true }), { + wrapper: LinguiWrapper, + }) const confirmationPendingContent = (result.current.Modal as ReactElement).props expect(confirmationPendingContent.isPendingInProgress).toBe(true) @@ -156,7 +173,9 @@ describe('usePendingApprovalModal', () => { it('should not show pending state when isPartialApproveEnabled is false and isPendingInProgress is true', () => { mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: false }) - const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true })) + const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: true }), { + wrapper: LinguiWrapper, + }) const confirmationPendingContent = (result.current.Modal as ReactElement).props expect(confirmationPendingContent.isPendingInProgress).toBe(false) @@ -165,7 +184,9 @@ describe('usePendingApprovalModal', () => { it('should not show pending state when isPartialApproveEnabled is true and isPendingInProgress is false', () => { mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: true }) - const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false })) + const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false }), { + wrapper: LinguiWrapper, + }) const confirmationPendingContent = (result.current.Modal as ReactElement).props expect(confirmationPendingContent.isPendingInProgress).toBe(false) @@ -174,7 +195,9 @@ describe('usePendingApprovalModal', () => { it('should not show pending state when isPartialApproveEnabled is false and isPendingInProgress is false', () => { mockUseFeatureFlags.mockReturnValue({ isPartialApproveEnabled: false }) - const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false })) + const { result } = renderHook(() => usePendingApprovalModal({ isPendingInProgress: false }), { + wrapper: LinguiWrapper, + }) const confirmationPendingContent = (result.current.Modal as ReactElement).props expect(confirmationPendingContent.isPendingInProgress).toBe(false) diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx index 03c3a3badd..9201451657 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/hooks/usePendingApprovalModal.tsx @@ -5,6 +5,8 @@ import { Command } from '@cowprotocol/types' import { TokenAmount, TokenSymbol } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans, useLingui } from '@lingui/react/macro' + import { ModalState, useModalState } from 'common/hooks/useModalState' import { ConfirmationPendingContent } from 'common/pure/ConfirmationPendingContent' @@ -36,20 +38,23 @@ export function usePendingApprovalModal(params?: PendingApprovalModalParams): { onDismiss?.() }, [closeModal, onDismiss]) + const { t } = useLingui() + return useMemo(() => { + const currencySymbolOrContext = currencySymbol || context const Title = amountToApprove && !isMaxAmountToApprove(amountToApprove) ? ( - <> + Approving {' '} {' '} for trading - + ) : ( - <> - Approving {currencySymbol || context} for trading - + + Approving {currencySymbolOrContext} for trading + ) const Modal = ( @@ -57,12 +62,12 @@ export function usePendingApprovalModal(params?: PendingApprovalModalParams): { modalMode={!!modalMode} onDismiss={onDismissCallback} title={Title} - description="Approving token" - operationLabel="token approval" + description={t`Approving token`} + operationLabel={t`token approval`} isPendingInProgress={showPendingState} /> ) return { Modal, state } - }, [amountToApprove, currencySymbol, context, modalMode, onDismissCallback, showPendingState, state]) + }, [amountToApprove, currencySymbol, context, modalMode, onDismissCallback, showPendingState, state, t]) } diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx index c50ee7d5f3..86ceef8d70 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApprovalTooltip/index.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react' import { TokenSymbol } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { useIsPartialApproveSelectedByUser } from '../../state' diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx index 8515109769..e614fea070 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveButton/index.tsx @@ -5,7 +5,7 @@ import { Command } from '@cowprotocol/types' import { ButtonPrimary, TokenSymbol } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import * as styledEl from './styledEl' diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx index 5133d03ce1..dba5d104df 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/AdvancedApprove.tsx @@ -4,7 +4,7 @@ import { tryParseCurrencyAmount } from '@cowprotocol/common-utils' import { HoverTooltip, TokenSymbol } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { ChevronDown, ChevronUp, HelpCircle } from 'react-feather' import * as styledEl from './styledEl' @@ -70,7 +70,7 @@ export function AdvancedApprove({ - Allow spending: + Allow spending: - {!isChangedTextValid && Entered amount is invalid} + {!isChangedTextValid && ( + + Entered amount is invalid + + )} @@ -96,15 +100,21 @@ export function AdvancedApprove({ ) } > - Approve + + Approve + - In case you want to give allowance only for the trade amount, use the advanced mode. You can also change the - amount manually. + + In case you want to give allowance only for the trade amount, use the advanced mode. You can also change + the amount manually. + setIsAdvancedOpen((s) => !s)}> - Advanced + + Advanced + {!isAdvancedOpen ? : } @@ -132,7 +142,7 @@ function filterAmountInput(e: KeyboardEvent, inputChangedText: s export function HelpTooltip({ children }: { children: ReactNode }): ReactNode { return ( - {children}}> + ) diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx index 3cda8071e5..7a46961a71 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/ApproveConfirmation/index.tsx @@ -3,6 +3,8 @@ import { ReactNode } from 'react' import { ButtonPrimary, ButtonSize, TokenSymbol } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans } from '@lingui/react/macro' + import { AdvancedApprove, HelpTooltip } from './AdvancedApprove' import * as styledEl from './styledEl' @@ -28,12 +30,14 @@ export function ApproveConfirmation({ handleApprove(maxApprovalAmount)}> - Default approve + + Default approve + - <> + You must give the CoW Protocol smart contracts permission to use your {tokenSymbol}. If you approve the default amount, you will only have to do this once per token. - + diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx index de64fbf9d8..e558a095dd 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/LegacyApproveButton/index.tsx @@ -5,7 +5,7 @@ import { Command } from '@cowprotocol/types' import { AutoRow, ButtonConfirmed, ButtonSize, HoverTooltip, Loader, TokenSymbol } from '@cowprotocol/ui' import { Currency } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { CheckCircle, HelpCircle } from 'react-feather' import styled, { ThemeContext } from 'styled-components/macro' diff --git a/apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx b/apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx index 6337837ed6..0f56f494fb 100644 --- a/apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx +++ b/apps/cowswap-frontend/src/modules/erc20Approve/pure/Toggle/Toggle.tsx @@ -4,6 +4,7 @@ import EDIT from '@cowprotocol/assets/cow-swap/edit.svg' import { TokenAmount, TokenSymbol } from '@cowprotocol/ui' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Trans, useLingui } from '@lingui/react/macro' import SVG from 'react-inlinesvg' import { Option } from './Option' @@ -20,9 +21,11 @@ export function Toggle({ amountToApprove: CurrencyAmount changeApproveAmount?: () => void }): ReactNode { + const { t } = useLingui() + return ( - - ) diff --git a/apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx b/apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx index 9e4eb87f53..61d53e0efc 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx +++ b/apps/cowswap-frontend/src/modules/ethFlow/containers/EthFlowStepper/index.tsx @@ -2,6 +2,8 @@ import { ReactNode } from 'react' import { formatSymbol, getIsNativeToken } from '@cowprotocol/common-utils' +import { t } from '@lingui/core/macro' + import { useAllTransactions } from 'legacy/state/enhancedTransactions/hooks' import { EnhancedTransactionDetails } from 'legacy/state/enhancedTransactions/reducer' import { Order, OrderStatus } from 'legacy/state/orders/actions' @@ -47,7 +49,7 @@ export function EthFlowStepper(props: EthFlowStepperProps): ReactNode { if (!state) return null - const rejectedReason = creationTxFailed ? 'Transaction failed' : undefined + const rejectedReason = creationTxFailed ? t`Transaction failed` : undefined const refundHash = order.refundHash || order.apiAdditionalInfo?.ethflowData?.refundTxHash || undefined diff --git a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx index 3db692271b..4bf9e112dc 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx +++ b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowBanner/index.tsx @@ -6,7 +6,8 @@ import { Command } from '@cowprotocol/types' import { ButtonPrimary } from '@cowprotocol/ui' import { Currency, Token } from '@uniswap/sdk-core' -import { Trans } from '@lingui/macro' +import { t } from '@lingui/core/macro' +import { Trans } from '@lingui/react/macro' import { ChevronDown, ChevronUp } from 'react-feather' import SVG from 'react-inlinesvg' @@ -32,54 +33,56 @@ export function EthFlowBannerContent(props: EthFlowBannerContentProps): ReactNod switchCurrencyCallback, wrapCallback, } = props + const wrappedSymbol = wrapped?.symbol || '' + const nativeSymbol = native?.symbol || '' + const minEthFlowSlippageToSignificant = MINIMUM_ETH_FLOW_SLIPPAGE.toSignificant(PERCENTAGE_PRECISION) return ( - + - - {hasEnoughWrappedBalance - ? `Switch to the classic ${wrapped.symbol} experience and benefit!` - : `Wrap your ${native.symbol} and use the classic ${wrapped.symbol} experience!`} - + {hasEnoughWrappedBalance + ? t`Switch to the classic ${wrappedSymbol} experience and benefit!` + : t`Wrap your ${nativeSymbol} and use the classic ${wrappedSymbol} experience!`} {showBanner ? : } {showBanner && ( - -

- {!hasEnoughWrappedBalance ? ( - <> - You will be prompted to{' '} - - wrap your {native.symbol} to {wrapped.symbol} - {' '} - before placing your order. - - ) : null}{' '} - This way, you'll take advantage of: -

-
    -
  • Lower overall network costs
  • -
  • - Lower minimal slippage (instead of {MINIMUM_ETH_FLOW_SLIPPAGE.toSignificant(PERCENTAGE_PRECISION)}% - minimum) -
  • -
  • No fees for failed transactions
  • -
+

+ {!hasEnoughWrappedBalance ? ( + + You will be prompted to{' '} + + wrap your {nativeSymbol} to {wrappedSymbol} + {' '} + before placing your order. + + ) : null}{' '} + This way, you'll take advantage of: +

+
    +
  • + Lower overall network costs +
  • +
  • + Lower minimal slippage (instead of {minEthFlowSlippageToSignificant}% minimum) +
  • +
  • + No fees for failed transactions +
  • +
- {hasEnoughWrappedBalance ? ( - - Switch to {wrapped.symbol}{' '} - - ) : ( - - Wrap my {native.symbol} and swap - - )} -
+ {hasEnoughWrappedBalance ? ( + + Switch to {wrappedSymbol} + + ) : ( + + Wrap my {nativeSymbol} and swap + + )}
)}
diff --git a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalBottomContent.tsx b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalBottomContent.tsx index 2bddb28417..e5fc97b594 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalBottomContent.tsx +++ b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalBottomContent.tsx @@ -3,9 +3,6 @@ import { ReactNode, useCallback, useMemo, useState } from 'react' import { useFeatureFlags } from '@cowprotocol/common-hooks' import { currencyAmountToTokenAmount } from '@cowprotocol/common-utils' -import { Trans } from '@lingui/macro' - - import { SimpleAccountDetails } from 'modules/account/containers/SimpleAccountDetails' import { PartialApproveContainer } from 'modules/erc20Approve' import { useSwapPartialApprovalToggleState } from 'modules/swap/hooks/useSwapSettings' @@ -94,13 +91,13 @@ export function EthFlowModalBottomContent(params: BottomContentParams): ReactNod - {buttonText} + {buttonText} ) : ( - {buttonText} + {buttonText} )} diff --git a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx index d47e4a297a..4190de310b 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx +++ b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/EthFlowModalTopContent.tsx @@ -1,6 +1,6 @@ import { Media, UI } from '@cowprotocol/ui' -import { Trans } from '@lingui/macro' +import { Trans } from '@lingui/react/macro' import { darken, transparentize } from 'color2k' import styled from 'styled-components/macro' @@ -51,33 +51,30 @@ export type TopContentParams = { // TODO: Add proper return type annotation // eslint-disable-next-line @typescript-eslint/explicit-function-return-type export function EthFlowModalTopContent({ descriptions, state, balanceChecks, nativeSymbol }: TopContentParams) { + const txsRemaining = balanceChecks?.txsRemaining + const text = !txsRemaining ? ( + + At current gas prices, your remaining {nativeSymbol} balance after confirmation may be{' '} + insufficient for any further on-chain transactions. + + ) : ( + + At current gas prices, your remaining {nativeSymbol} balance after confirmation may be only sufficient for + up to {txsRemaining} wrapping, unwrapping, or approval operation(s). + + ) + return ( <> {!!descriptions?.length && ( {descriptions.map((description, index) => ( - - {description} - + {description} ))} )} {/* Warn user if native balance low for on-chain operations EXCEPT if state is ready to swap */} - {state !== EthFlowState.SwapReady && balanceChecks?.isLowBalance && ( - - - At current gas prices, your remaining {nativeSymbol} balance after confirmation may be{' '} - {!balanceChecks.txsRemaining ? ( - insufficient for any further on-chain transactions. - ) : ( - <> - only sufficient for{' '} - up to {balanceChecks.txsRemaining} wrapping, unwrapping, or approval operation(s). - - )} - - - )} + {state !== EthFlowState.SwapReady && balanceChecks?.isLowBalance && {text}} ) } diff --git a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts index 1e88d8673b..df96cd10ee 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts +++ b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowModalContent/configs.ts @@ -1,3 +1,5 @@ +import { t } from '@lingui/core/macro' + import { EthFlowState } from '../../services/ethFlow/types' export interface EthFlowConfig { @@ -6,9 +8,9 @@ export interface EthFlowConfig { descriptions: string[] } -const commonSingularTxProgressDescription = 'Transaction in progress. See below for live status updates.' -const commonFailedSingularTxGasLimitDescription = - 'Check that you are providing a sufficient gas limit for the transaction in your wallet.' +const commonSingularTxProgressDescription = (): string => t`Transaction in progress. See below for live status updates.` +const commonFailedSingularTxGasLimitDescription = (): string => + t`Check that you are providing a sufficient gas limit for the transaction in your wallet.` export const ethFlowConfigs: { [key in EthFlowState]: (context: { nativeSymbol: string; wrappedSymbol: string }) => EthFlowConfig @@ -17,69 +19,69 @@ export const ethFlowConfigs: { * FAILED operations */ [EthFlowState.WrapFailed]: ({ nativeSymbol }) => ({ - title: `Wrap ${nativeSymbol} failed`, - buttonText: `Wrap ${nativeSymbol}`, + title: t`Wrap ${nativeSymbol} failed`, + buttonText: t`Wrap ${nativeSymbol}`, descriptions: [ - 'Wrap operation failed.', - commonFailedSingularTxGasLimitDescription, - `Click "Wrap ${nativeSymbol}" to try again.`, + t`Wrap operation failed.`, + commonFailedSingularTxGasLimitDescription(), + t`Click "Wrap ${nativeSymbol}" to try again.`, ], }), [EthFlowState.ApproveFailed]: ({ wrappedSymbol }) => ({ - title: `Approve ${wrappedSymbol} failed!`, - buttonText: `Approve ${wrappedSymbol}`, + title: t`Approve ${wrappedSymbol} failed!`, + buttonText: t`Approve ${wrappedSymbol}`, descriptions: [ - 'Approve operation failed.', - commonFailedSingularTxGasLimitDescription, - `Click "Approve ${wrappedSymbol}" to try again.`, + t`Approve operation failed.`, + commonFailedSingularTxGasLimitDescription(), + t`Click "Approve ${wrappedSymbol}" to try again.`, ], }), /** * PENDING operations */ [EthFlowState.WrapPending]: ({ nativeSymbol }) => ({ - title: `Swap with Wrapped ${nativeSymbol}`, + title: t`Swap with Wrapped ${nativeSymbol}`, buttonText: '', - descriptions: [commonSingularTxProgressDescription], + descriptions: [commonSingularTxProgressDescription()], }), [EthFlowState.ApprovePending]: ({ wrappedSymbol }) => ({ - title: `Approve ${wrappedSymbol}`, + title: t`Approve ${wrappedSymbol}`, buttonText: '', - descriptions: [commonSingularTxProgressDescription], + descriptions: [commonSingularTxProgressDescription()], }), [EthFlowState.ApproveInsufficient]: ({ wrappedSymbol }) => ({ - title: 'Approval amount insufficient!', - buttonText: `Approve ${wrappedSymbol}`, + title: t`Approval amount insufficient!`, + buttonText: t`Approve ${wrappedSymbol}`, descriptions: [ - 'Approval amount insufficient for input amount.', - 'Check that you are approving an amount equal to or greater than the input amount.', + t`Approval amount insufficient for input amount.`, + t`Check that you are approving an amount equal to or greater than the input amount.`, ], }), /** * NEEDS operations */ [EthFlowState.WrapNeeded]: ({ nativeSymbol, wrappedSymbol }) => ({ - title: `Swap with Wrapped ${nativeSymbol}`, - buttonText: `Wrap ${nativeSymbol}`, + title: t`Swap with Wrapped ${nativeSymbol}`, + buttonText: t`Wrap ${nativeSymbol}`, descriptions: [ - `To continue, click below to wrap your ${nativeSymbol} to ${wrappedSymbol} via an on-chain ERC20 transaction.`, + t`To continue, click below to wrap your ${nativeSymbol} to ${wrappedSymbol} via an on-chain ERC20 transaction.`, ], }), [EthFlowState.ApproveNeeded]: ({ wrappedSymbol }) => ({ - title: `Approve ${wrappedSymbol}`, - buttonText: `Approve ${wrappedSymbol}`, + title: t`Approve ${wrappedSymbol}`, + buttonText: t`Approve ${wrappedSymbol}`, descriptions: [ - `It is required to do a one-time approval of ${wrappedSymbol} via an on-chain ERC20 Approve transaction.`, + t`It is required to do a one-time approval of ${wrappedSymbol} via an on-chain ERC20 Approve transaction.`, ], }), [EthFlowState.SwapReady]: ({ wrappedSymbol }) => ({ - title: `Continue swap with ${wrappedSymbol}`, - buttonText: 'Swap', - descriptions: [`To continue, click SWAP below to use your existing ${wrappedSymbol} balance and trade.`], + title: t`Continue swap with ${wrappedSymbol}`, + buttonText: t`Swap`, + descriptions: [t`To continue, click SWAP below to use your existing ${wrappedSymbol} balance and trade.`], }), [EthFlowState.Loading]: () => ({ - title: 'Loading operation', + title: t`Loading operation`, buttonText: '', - descriptions: ['Operation in progress!'], + descriptions: [t`Operation in progress!`], }), } diff --git a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx index f21bbd40ab..8c342ba338 100644 --- a/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx +++ b/apps/cowswap-frontend/src/modules/ethFlow/pure/EthFlowStepper/StatusIcon.tsx @@ -2,6 +2,7 @@ import React from 'react' import { UI } from '@cowprotocol/ui' +import { t } from '@lingui/core/macro' import { transparentize } from 'color2k' import SVG from 'react-inlinesvg' import styled from 'styled-components/macro' @@ -166,7 +167,7 @@ export function StatusIcon({ children, state, icon, label, crossOut = false, err return ( <> - +
diff --git a/apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx b/apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx index c861ac7ba2..0fe71d56a3 100644 --- a/apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx +++ b/apps/cowswap-frontend/src/modules/hooksStore/containers/IframeDappContainer/index.tsx @@ -5,6 +5,7 @@ import { EthereumProvider, IframeRpcProviderBridge } from '@cowprotocol/iframe-t import { ProductLogo, ProductVariant, UI } from '@cowprotocol/ui' import { useWalletProvider } from '@cowprotocol/wallet-provider' +import { Trans } from '@lingui/react/macro' import styled from 'styled-components/macro' import { HookDappContext as HookDappContextType, HookDappIframe } from '../../types/hooks' @@ -137,7 +138,9 @@ export function IframeDappContainer({ dapp, context }: IframeDappContainerProps) {isLoading && ( - Loading hook... + + Loading hook... + )}

- With hooks you can add specific actions before and after your swap.{' '} + + With hooks you can add specific actions before and after your swap. + {' '} - Learn more. + Learn more.