From eed803e04f98665c34a2c864afe4b433beb62a8e Mon Sep 17 00:00:00 2001 From: lubega-deriv <142860499+lubega-deriv@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:51:15 +0800 Subject: [PATCH 1/7] [WALL] Lubega / WALL-4120 / APIProvider memory leak console error (#17140) * fix: remote config url console error missing * fix: api provider console error * fix: remove env variable * fix: usehover and addmorecarousel console errors * fix: remove use hover * fix: applied comments * fix: auth provider memory leak error * fix: remove auth provider changes * fix: use hover unmounted error * fix: revert use hover changes * fix: more sources of memory leak * fix: revert sync local storage hook unmount fix --- packages/api-v2/src/APIProvider.tsx | 6 +++++- packages/api/src/hooks/useRemoteConfig.ts | 18 ++++++++++++++---- packages/appstore/webpack.config.js | 1 + .../hooks/src/useGrowthbookGetFeatureValue.ts | 10 +++++++--- .../WalletsAddMoreCarousel.tsx | 16 +++++++++++----- 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/packages/api-v2/src/APIProvider.tsx b/packages/api-v2/src/APIProvider.tsx index c4333c5f85fa..3ecb76ef7b4a 100644 --- a/packages/api-v2/src/APIProvider.tsx +++ b/packages/api-v2/src/APIProvider.tsx @@ -198,7 +198,11 @@ const APIProvider = ({ children }: PropsWithChildren) => { if (reconnect) { connectionRef.current = initializeConnection( () => { - reconnectTimerId = setTimeout(() => setReconnect(true), 500); + reconnectTimerId = setTimeout(() => { + if (isMounted.current) { + setReconnect(true); + } + }, 500); }, () => { if (!connectionRef.current) { diff --git a/packages/api/src/hooks/useRemoteConfig.ts b/packages/api/src/hooks/useRemoteConfig.ts index 62f14a2af520..03fe79e85ce4 100644 --- a/packages/api/src/hooks/useRemoteConfig.ts +++ b/packages/api/src/hooks/useRemoteConfig.ts @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { ObjectUtils } from '@deriv-com/utils'; import initData from '../remote_config.json'; @@ -17,14 +17,23 @@ const remoteConfigQuery = async function () { function useRemoteConfig(enabled = false) { const [data, setData] = useState(initData); + const isMounted = useRef(false); useEffect(() => { - enabled && + isMounted.current = true; + + return () => { + isMounted.current = false; + }; + }, []); + + useEffect(() => { + if (enabled) { remoteConfigQuery() .then(async res => { const resHash = await ObjectUtils.hashObject(res); const dataHash = await ObjectUtils.hashObject(data); - if (resHash !== dataHash) { + if (resHash !== dataHash && isMounted.current) { setData(res); } }) @@ -32,7 +41,8 @@ function useRemoteConfig(enabled = false) { // eslint-disable-next-line no-console console.log('Remote Config error: ', error); }); - }, [enabled]); + } + }, [enabled, data]); return { data }; } diff --git a/packages/appstore/webpack.config.js b/packages/appstore/webpack.config.js index aeb44ebe458a..a8ebd67a36d1 100644 --- a/packages/appstore/webpack.config.js +++ b/packages/appstore/webpack.config.js @@ -45,6 +45,7 @@ const default_plugins = [ new Dotenv(), new DefinePlugin({ 'process.env.TRUSTPILOT_API_KEY': JSON.stringify(process.env.TRUSTPILOT_API_KEY), + 'process.env.REMOTE_CONFIG_URL': JSON.stringify(process.env.REMOTE_CONFIG_URL), }), new IgnorePlugin({ resourceRegExp: /^\.\/locale$/, contextRegExp: /moment$/ }), new CircularDependencyPlugin({ exclude: /node_modules/, failOnError: true }), diff --git a/packages/hooks/src/useGrowthbookGetFeatureValue.ts b/packages/hooks/src/useGrowthbookGetFeatureValue.ts index f2959f633104..47eedf461bb1 100644 --- a/packages/hooks/src/useGrowthbookGetFeatureValue.ts +++ b/packages/hooks/src/useGrowthbookGetFeatureValue.ts @@ -1,6 +1,7 @@ import { useState, useEffect } from 'react'; import { Analytics } from '@deriv-com/analytics'; import { getFeatureFlag } from '@deriv/utils'; +import { useIsMounted } from 'usehooks-ts'; interface UseGrowthbookGetFeatureValueArgs { featureFlag: string; @@ -14,6 +15,7 @@ const useGrowthbookGetFeatureValue = ({ const resolvedDefaultValue: T = defaultValue !== undefined ? defaultValue : (false as T); const [featureFlagValue, setFeatureFlagValue] = useState(false); const [isGBLoaded, setIsGBLoaded] = useState(false); + const isMounted = useIsMounted(); // Required for debugging Growthbook, this will be removed after this is added in the Analytics directly. if (typeof window !== 'undefined') { @@ -23,12 +25,14 @@ const useGrowthbookGetFeatureValue = ({ useEffect(() => { const fetchFeatureFlag = async () => { const is_enabled = await getFeatureFlag(featureFlag, resolvedDefaultValue); - setFeatureFlagValue(is_enabled); - setIsGBLoaded(true); + if (isMounted()) { + setFeatureFlagValue(is_enabled); + setIsGBLoaded(true); + } }; fetchFeatureFlag(); - }, []); + }, [featureFlag, resolvedDefaultValue, isMounted]); return [featureFlagValue, isGBLoaded]; }; diff --git a/packages/wallets/src/components/WalletsAddMoreCarousel/WalletsAddMoreCarousel.tsx b/packages/wallets/src/components/WalletsAddMoreCarousel/WalletsAddMoreCarousel.tsx index 77e6e375ca4b..68a29240dac0 100644 --- a/packages/wallets/src/components/WalletsAddMoreCarousel/WalletsAddMoreCarousel.tsx +++ b/packages/wallets/src/components/WalletsAddMoreCarousel/WalletsAddMoreCarousel.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useEffect, useRef, useState } from 'react'; import useEmblaCarousel, { EmblaCarouselType } from 'embla-carousel-react'; -import { useHover } from 'usehooks-ts'; +import { useHover, useIsMounted } from 'usehooks-ts'; import { useAllWalletAccounts, useAuthorize } from '@deriv/api-v2'; import { LabelPairedChevronLeftLgFillIcon, LabelPairedChevronRightLgFillIcon } from '@deriv/quill-icons'; import { Localize } from '@deriv-com/translations'; @@ -26,16 +26,22 @@ const WalletsAddMoreCarousel: React.FC = () => { }); const hoverRef = useRef(null); const isHover = useHover(hoverRef); + const isMounted = useIsMounted(); const [prevBtnEnabled, setPrevBtnEnabled] = useState(false); const [nextBtnEnabled, setNextBtnEnabled] = useState(false); const scrollPrev = useCallback(() => walletsAddMoreEmblaAPI?.scrollPrev(), [walletsAddMoreEmblaAPI]); const scrollNext = useCallback(() => walletsAddMoreEmblaAPI?.scrollNext(), [walletsAddMoreEmblaAPI]); - const onSelect = useCallback((emblaApi: EmblaCarouselType) => { - setPrevBtnEnabled(emblaApi.canScrollPrev()); - setNextBtnEnabled(emblaApi.canScrollNext()); - }, []); + const onSelect = useCallback( + (emblaApi: EmblaCarouselType) => { + if (isMounted()) { + setPrevBtnEnabled(emblaApi.canScrollPrev()); + setNextBtnEnabled(emblaApi.canScrollNext()); + } + }, + [isMounted] + ); useEffect(() => { if (!walletsAddMoreEmblaAPI) return; From 4d35592c70c9e06785d3e806f4b82e0a25d4185c Mon Sep 17 00:00:00 2001 From: lubega-deriv <142860499+lubega-deriv@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:52:54 +0800 Subject: [PATCH 2/7] chore: reset investor password screen ui update (#17499) --- .../MT5ChangeInvestorPasswordInputsScreen.tsx | 135 +------------- .../MT5ChangeInvestorPasswordSavedScreen.tsx | 29 --- .../MT5ChangeInvestorPasswordScreens.scss | 22 +-- .../MT5ChangeInvestorPasswordScreens.tsx | 40 ++-- ...hangeInvestorPasswordInputsScreen.spec.tsx | 173 +++--------------- ...ChangeInvestorPasswordSavedScreen.spec.tsx | 24 --- .../MT5ChangeInvestorPasswordScreens.spec.tsx | 65 +++---- 7 files changed, 76 insertions(+), 412 deletions(-) delete mode 100644 packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordSavedScreen.tsx delete mode 100644 packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordSavedScreen.spec.tsx diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordInputsScreen.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordInputsScreen.tsx index aa2010219af4..c8ef44d1bfd6 100644 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordInputsScreen.tsx +++ b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordInputsScreen.tsx @@ -1,143 +1,28 @@ -import React, { useState } from 'react'; -import { Field, FieldProps, Form, Formik } from 'formik'; -import { useTradingPlatformInvestorPasswordChange } from '@deriv/api-v2'; -import { Localize, useTranslations } from '@deriv-com/translations'; +import React from 'react'; +import { Localize } from '@deriv-com/translations'; import { ActionScreen, Button, Text, useDevice } from '@deriv-com/ui'; -import { WalletPasswordFieldLazy, WalletTextField } from '../../../../../components/Base'; -import PasswordViewerIcon from '../../../../../components/Base/WalletPasswordField/PasswordViewerIcon'; -import { useModal } from '../../../../../components/ModalProvider'; -import { validPasswordMT5 } from '../../../../../utils/password-validation'; -import { PlatformDetails } from '../../../constants'; - -type TFormInitialValues = { - currentPassword: string; - newPassword: string; -}; type TProps = { sendEmail?: VoidFunction; - setNextScreen?: VoidFunction; }; -const MT5ChangeInvestorPasswordInputsScreen: React.FC = ({ sendEmail, setNextScreen }) => { - const { getModalState } = useModal(); - const { localize } = useTranslations(); - - const mt5AccountId = getModalState('accountId') ?? ''; - const [isCurrentPasswordVisible, setIsCurrentPasswordVisible] = useState(false); - const [hasCurrentPasswordFieldTouched, setHasCurrentPasswordFieldTouched] = useState(false); +const MT5ChangeInvestorPasswordInputsScreen: React.FC = ({ sendEmail }) => { const { isDesktop } = useDevice(); - const buttonTextSize = isDesktop ? 'sm' : 'md'; - - const { - error: changeInvestorPasswordError, - mutateAsync: changeInvestorPassword, - status: changeInvestorPasswordStatus, - } = useTradingPlatformInvestorPasswordChange(); - - const initialValues: TFormInitialValues = { currentPassword: '', newPassword: '' }; - - const validateCurrentPassword = (value: string) => { - if (!value) return localize('The field is required'); - return undefined; - }; - - const onFormSubmitHandler = async (values: TFormInitialValues) => { - await changeInvestorPassword({ - account_id: mt5AccountId, - new_password: values.newPassword, - old_password: values.currentPassword, - platform: PlatformDetails.mt5.platform, - }); - setNextScreen?.(); - }; + const textSize = isDesktop ? 'sm' : 'md'; return ( - {({ handleChange, values }) => ( -
-
- - {({ field, form }: FieldProps) => { - return ( - { - setHasCurrentPasswordFieldTouched(true); - field.onBlur(e); - }} - onChange={field.onChange} - renderRightIcon={() => ( - - )} - type={isCurrentPasswordVisible ? 'text' : 'password'} - value={values.currentPassword} - /> - ); - }} - - -
-
- - -
-
- )} - + } description={ - <> - +
+ - - - - {changeInvestorPasswordError && ( - - {changeInvestorPasswordError?.error?.message} - - )} - +
} descriptionSize='sm' /> diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordSavedScreen.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordSavedScreen.tsx deleted file mode 100644 index 9fcf27476f45..000000000000 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordSavedScreen.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { DerivLightIcMt5PasswordUpdatedIcon } from '@deriv/quill-icons'; -import { Localize, useTranslations } from '@deriv-com/translations'; -import { ActionScreen, Button, useDevice } from '@deriv-com/ui'; - -type TProps = { - setNextScreen?: VoidFunction; -}; - -const MT5ChangeInvestorPasswordSavedScreen: React.FC = ({ setNextScreen }) => { - const { localize } = useTranslations(); - const { isDesktop } = useDevice(); - - return ( - - - - } - description={localize('Your investor password has been changed.')} - descriptionSize='sm' - icon={} - title={} - /> - ); -}; - -export default MT5ChangeInvestorPasswordSavedScreen; diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.scss b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.scss index 157e4b5bde11..7b89ad492803 100644 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.scss +++ b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.scss @@ -9,25 +9,7 @@ } } - &__form { - display: flex; - flex-direction: column; - align-items: center; - gap: 2.4rem; - - &-fields { - display: flex; - flex-direction: column; - align-items: center; - gap: 1.6rem; - width: 32.8rem; - } - - &-buttons { - display: flex; - flex-direction: column; - align-items: center; - gap: 1.6rem; - } + &__description { + margin-bottom: 5.6rem; } } diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.tsx index 824c9b1ce155..f27db2260c2a 100644 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.tsx +++ b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/MT5ChangeInvestorPasswordScreens.tsx @@ -1,21 +1,16 @@ -import React, { FC, useState } from 'react'; +import React, { FC } from 'react'; import { useActiveWalletAccount, useSettings, useVerifyEmail } from '@deriv/api-v2'; import { useModal } from '../../../../../components/ModalProvider'; import { platformPasswordResetRedirectLink } from '../../../../../utils/cfd'; import MT5ChangeInvestorPasswordInputsScreen from './MT5ChangeInvestorPasswordInputsScreen'; -import MT5ChangeInvestorPasswordSavedScreen from './MT5ChangeInvestorPasswordSavedScreen'; import './MT5ChangeInvestorPasswordScreens.scss'; -type TChangeInvestorPasswordScreenIndex = 'introScreen' | 'savedScreen'; - type TProps = { setShowEmailSentScreen?: (value: boolean) => void; }; const MT5ChangeInvestorPasswordScreens: FC = ({ setShowEmailSentScreen }) => { - const [activeScreen, setActiveScreen] = useState('introScreen'); - const handleClick = (nextScreen: TChangeInvestorPasswordScreenIndex) => setActiveScreen(nextScreen); - const { getModalState, hide } = useModal(); + const { getModalState } = useModal(); const { data } = useSettings(); const { mutate } = useVerifyEmail(); const { data: activeWallet } = useActiveWalletAccount(); @@ -35,27 +30,16 @@ const MT5ChangeInvestorPasswordScreens: FC = ({ setShowEmailSentScreen } } }; - switch (activeScreen) { - case 'savedScreen': - return ( -
- -
- ); - case 'introScreen': - default: - return ( -
- { - handleSendEmail(); - setShowEmailSentScreen?.(true); - }} - setNextScreen={() => handleClick('savedScreen')} - /> -
- ); - } + return ( +
+ { + handleSendEmail(); + setShowEmailSentScreen?.(true); + }} + /> +
+ ); }; export default MT5ChangeInvestorPasswordScreens; diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordInputsScreen.spec.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordInputsScreen.spec.tsx index 94e20abb644f..d9fc6b7798e1 100644 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordInputsScreen.spec.tsx +++ b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordInputsScreen.spec.tsx @@ -1,169 +1,46 @@ -import React, { PropsWithChildren } from 'react'; -import { useTradingPlatformInvestorPasswordChange } from '@deriv/api-v2'; -import { Button, useDevice } from '@deriv-com/ui'; -import { render, screen, waitFor } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { useModal } from '../../../../../../components/ModalProvider'; -import { validPasswordMT5 } from '../../../../../../utils/password-validation'; +import React from 'react'; +import { useDevice } from '@deriv-com/ui'; +import { render, screen } from '@testing-library/react'; import MT5ChangeInvestorPasswordInputsScreen from '../MT5ChangeInvestorPasswordInputsScreen'; -jest.mock('@deriv/api-v2', () => ({ - useTradingPlatformInvestorPasswordChange: jest.fn(), -})); - -jest.mock('../../../../../../components', () => ({ - ...jest.requireActual('../../../../../../components'), - WalletsActionScreen: jest.fn(({ description, renderButtons }) => ( -
- {description} - {renderButtons()} -
- )), -})); - jest.mock('@deriv-com/ui', () => ({ ...jest.requireActual('@deriv-com/ui'), - Button: jest.fn( - ({ - children, - disabled, - isLoading, - onClick, - type, - }: PropsWithChildren<{ - disabled: boolean; - isLoading: boolean; - onClick: () => void; - textSize: string; - type?: 'button' | 'reset' | 'submit'; - }>) => { - return ( - - ); - } + Button: ({ children, textSize }: { children: React.ReactNode; textSize: string }) => ( + + ), + Text: ({ children, size }: { children: React.ReactNode; size: string }) => ( + {children} ), useDevice: jest.fn(() => ({ isDesktop: true })), })); -jest.mock('../../../../../../components/ModalProvider', () => ({ - ...jest.requireActual('../../../../../../components/ModalProvider'), - useModal: jest.fn(), -})); - -jest.mock('../../../../../../components/Base/WalletPasswordField/PasswordViewerIcon', () => - jest.fn(({ setViewPassword, viewPassword }) => ( - - )) -); - -jest.mock('../../../../../../utils/password-validation', () => ({ - ...jest.requireActual('../../../../../../utils/password-validation'), - validPasswordMT5: jest.fn(), -})); - describe('MT5ChangeInvestorPasswordInputsScreen', () => { beforeEach(() => { - (useTradingPlatformInvestorPasswordChange as jest.Mock).mockReturnValue({ - mutateAsync: jest.fn(), - status: 'idle', - }); - (useModal as jest.Mock).mockReturnValue({ - getModalState: jest.fn().mockReturnValue('test-account-id'), - }); (useDevice as jest.Mock).mockReturnValue({ isDesktop: true }); - (validPasswordMT5 as jest.Mock).mockReturnValue(true); - }); - - it('renders the component correctly', () => { - render(); - - expect(screen.getByText(/Use this password to grant viewing access to another user/)).toBeInTheDocument(); - expect(screen.getByText(/Change investor password/)).toBeInTheDocument(); - expect(screen.getByText(/Create or reset investor password/)).toBeInTheDocument(); - }); - - it('validates current password field', async () => { - render(); - - await userEvent.click(screen.getByText('Current investor password')); - await userEvent.tab(); - await userEvent.click(screen.getByText(/Change investor password/)); - - await waitFor(() => { - expect(screen.getByText('The field is required')).toBeInTheDocument(); - }); }); - it('submits the form with valid data', async () => { - const newPassword = 'newPassword123'; - const oldPassword = 'oldPassword123'; - const mockChangePassword = jest.fn().mockResolvedValue({}); - (useTradingPlatformInvestorPasswordChange as jest.Mock).mockReturnValue({ - mutateAsync: mockChangePassword, - }); - - render(); - - await userEvent.type(screen.getByLabelText(/Current investor password/), oldPassword); - const newInvestorPasswordInput = await screen.findByText('New investor password'); - await userEvent.type(newInvestorPasswordInput, newPassword); - - await userEvent.click(screen.getByText(/Change investor password/)); - - await waitFor(() => { - expect(mockChangePassword).toHaveBeenCalledWith({ - account_id: 'test-account-id', - new_password: newPassword, - old_password: oldPassword, - platform: 'mt5', - }); - }); - }); - - it('displays error message if change password fails', () => { - (useTradingPlatformInvestorPasswordChange as jest.Mock).mockReturnValue({ - error: { error: { message: 'Error changing password' } }, - mutateAsync: jest.fn(), - }); - + it('renders the component correctly in desktop', () => { render(); - expect(screen.getByText('Error changing password')).toBeInTheDocument(); + const buttonText = screen.getByText(/Use this password to grant viewing access to another user/); + const descriptionText = screen.getByText('Create or reset investor password'); + expect(buttonText).toBeInTheDocument(); + expect(descriptionText).toBeInTheDocument(); + expect(buttonText).toHaveClass('text__size--sm'); + expect(descriptionText).toHaveClass('text__size--sm'); }); - it('shows the loader when the change investor password mutation is loading', async () => { - (useTradingPlatformInvestorPasswordChange as jest.Mock).mockReturnValue({ - status: 'loading', - }); - - render(); - - await expect( - screen.getByRole('button', { - name: 'Loading...', - }) - ).toBeInTheDocument(); - }); - - it('displays the password when the viewer icon is clicked', async () => { - render(); - - const currentPasswordInput = screen.getByPlaceholderText('Current investor password'); - expect(currentPasswordInput).toHaveAttribute('type', 'password'); - - await userEvent.click(screen.getAllByRole('button', { name: 'PasswordViewerIcon' })[0]); - - expect(currentPasswordInput).toHaveAttribute('type', 'text'); - }); - - it('renders button with correct text size for mobile', () => { - (useDevice as jest.Mock).mockReturnValue({ isMobile: true }); - + it('renders the component correctly in mobile', () => { + (useDevice as jest.Mock).mockReturnValue({ isDesktop: false }); render(); - expect(Button).toHaveBeenCalledWith(expect.objectContaining({ textSize: 'md' }), {}); + const buttonText = screen.getByText(/Use this password to grant viewing access to another user/); + const descriptionText = screen.getByText('Create or reset investor password'); + expect(buttonText).toBeInTheDocument(); + expect(descriptionText).toBeInTheDocument(); + expect(buttonText).toHaveClass('text__size--md'); + expect(descriptionText).toHaveClass('text__size--md'); }); }); diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordSavedScreen.spec.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordSavedScreen.spec.tsx deleted file mode 100644 index ff3fa2dfe3cf..000000000000 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordSavedScreen.spec.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import MT5ChangeInvestorPasswordSavedScreen from '../MT5ChangeInvestorPasswordSavedScreen'; - -describe('MT5ChangeInvestorPasswordSavedScreen', () => { - it('renders without crashing', () => { - render(); - - expect(screen.getByText('Your investor password has been changed.')).toBeInTheDocument(); - expect(screen.getByText('Password saved')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: /OK/i })).toBeInTheDocument(); - }); - - it('calls setNextScreen when OK button is clicked', async () => { - const setNextScreenMock = jest.fn(); - - render(); - - await userEvent.click(screen.getByRole('button', { name: /OK/i })); - - expect(setNextScreenMock).toHaveBeenCalled(); - }); -}); diff --git a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordScreens.spec.tsx b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordScreens.spec.tsx index 58474f52f75c..2348eb3ff468 100644 --- a/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordScreens.spec.tsx +++ b/packages/wallets/src/features/cfd/screens/ChangePassword/InvestorPassword/__tests__/MT5ChangeInvestorPasswordScreens.spec.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { useActiveWalletAccount, useSettings, useVerifyEmail } from '@deriv/api-v2'; -import { render, screen, waitFor } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { useModal } from '../../../../../../components/ModalProvider'; import MT5ChangeInvestorPasswordScreens from '../MT5ChangeInvestorPasswordScreens'; @@ -18,71 +18,60 @@ jest.mock('../../../../../../components/ModalProvider', () => ({ })); jest.mock('../MT5ChangeInvestorPasswordInputsScreen', () => - jest.fn(({ sendEmail, setNextScreen }) => ( + jest.fn(({ sendEmail }) => (
- -
- )) -); - -jest.mock('../MT5ChangeInvestorPasswordSavedScreen', () => - jest.fn(({ setNextScreen }) => ( -
-
)) ); describe('MT5ChangeInvestorPasswordScreens', () => { + const mockMutate = jest.fn(); + const mockSetShowEmailSentScreen = jest.fn(); + beforeEach(() => { (useModal as jest.Mock).mockReturnValue({ getModalState: jest.fn().mockReturnValue('account-id'), hide: jest.fn(), }); (useSettings as jest.Mock).mockReturnValue({ data: { email: 'user@example.com' } }); - (useVerifyEmail as jest.Mock).mockReturnValue({ mutate: jest.fn() }); + (useVerifyEmail as jest.Mock).mockReturnValue({ mutate: mockMutate }); (useActiveWalletAccount as jest.Mock).mockReturnValue({ data: { is_virtual: false } }); }); - it('renders intro screen by default', () => { + afterEach(() => { + localStorage.clear(); + jest.clearAllMocks(); + }); + + it('renders default content', () => { + (useModal as jest.Mock).mockReturnValue({ + getModalState: jest.fn().mockReturnValue(null), + hide: jest.fn(), + }); render(); expect(screen.getByRole('button', { name: 'Send Email' })).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Next Screen' })).toBeInTheDocument(); }); it('handles send email button click', async () => { - const setShowEmailSentScreen = jest.fn(); - const { mutate } = useVerifyEmail(); - - render(); + render(); await userEvent.click(screen.getByRole('button', { name: 'Send Email' })); - await waitFor(() => { - expect(mutate).toHaveBeenCalled(); - expect(setShowEmailSentScreen).toHaveBeenCalledWith(true); - expect(localStorage.getItem('trading_platform_investor_password_reset_account_id')).toBe('account-id'); - }); - }); - - it('switches to saved screen on next screen button click', async () => { - render(); - - await userEvent.click(screen.getByRole('button', { name: 'Next Screen' })); - - expect(screen.getByRole('button', { name: 'Close' })).toBeInTheDocument(); + expect(mockMutate).toHaveBeenCalled(); + expect(mockSetShowEmailSentScreen).toHaveBeenCalledWith(true); + expect(localStorage.getItem('trading_platform_investor_password_reset_account_id')).toBe('account-id'); }); - it('calls hide modal on close button click in saved screen', async () => { - const { hide } = useModal(); + it('does not call mutate or set localStorage when email is not available', async () => { + (useSettings as jest.Mock).mockReturnValue({ data: { email: undefined } }); + render(); - render(); - - await userEvent.click(screen.getByRole('button', { name: 'Next Screen' })); - await userEvent.click(screen.getByRole('button', { name: 'Close' })); + await userEvent.click(screen.getByRole('button', { name: 'Send Email' })); - expect(hide).toHaveBeenCalled(); + expect(mockMutate).not.toHaveBeenCalled(); + expect(mockSetShowEmailSentScreen).toHaveBeenCalledWith(true); + expect(localStorage.getItem('trading_platform_investor_password_reset_account_id')).toBeNull(); }); }); From 8b01bdc1726eadca705ff9367217302a10d81c5d Mon Sep 17 00:00:00 2001 From: Sui Sin <103026762+suisin-deriv@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:40:41 +0800 Subject: [PATCH 3/7] =?UTF-8?q?[UPM1730]=20Suisin/fix:=20logout=20not=20re?= =?UTF-8?q?directed=20to=20app.deriv.com=20and=20it=20is=20showing=20pnv?= =?UTF-8?q?=20can=E2=80=A6=20(#17483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: logout not redirected to app.deriv.com and it is showing pnv cancel modal * chore: update code based on comment * fix: logout at menu is not working properly --- .../Account/page-overlay-wrapper.tsx | 8 ++- .../AccountSwitcher/account-switcher.jsx | 4 ++ packages/core/src/Stores/ui-store.js | 2 +- ...oneNumberVerificationSessionTimer.spec.tsx | 58 ++++++++++--------- .../usePhoneNumberVerificationSessionTimer.ts | 18 +++--- 5 files changed, 54 insertions(+), 36 deletions(-) diff --git a/packages/account/src/Containers/Account/page-overlay-wrapper.tsx b/packages/account/src/Containers/Account/page-overlay-wrapper.tsx index 9e71d4e0260a..0f6d2e9e06fe 100644 --- a/packages/account/src/Containers/Account/page-overlay-wrapper.tsx +++ b/packages/account/src/Containers/Account/page-overlay-wrapper.tsx @@ -23,9 +23,10 @@ type PageOverlayWrapperProps = { */ const PageOverlayWrapper = observer(({ routes, subroutes }: PageOverlayWrapperProps) => { const history = useHistory(); - const { client, common } = useStore(); + const { client, common, ui } = useStore(); const { logout } = client; const { is_from_derivgo } = common; + const { setIsForcedToExitPnv } = ui; const { isDesktop } = useDevice(); const passkeysMenuCloseActionEventTrack = React.useCallback(() => { @@ -54,6 +55,11 @@ const PageOverlayWrapper = observer(({ routes, subroutes }: PageOverlayWrapperPr const selected_route = getSelectedRoute({ routes: subroutes, pathname: location.pathname }); const onClickLogout = async () => { + if (window.location.pathname.startsWith(shared_routes.phone_verification)) { + setIsForcedToExitPnv(true); + // Add a small delay to ensure state is updated before navigation because adding await doesn't work here + await new Promise(resolve => setTimeout(resolve, 0)); + } history.push(shared_routes.traders_hub); await logout(); }; diff --git a/packages/core/src/App/Containers/AccountSwitcher/account-switcher.jsx b/packages/core/src/App/Containers/AccountSwitcher/account-switcher.jsx index 2373190d050e..cf9f86ab6df2 100644 --- a/packages/core/src/App/Containers/AccountSwitcher/account-switcher.jsx +++ b/packages/core/src/App/Containers/AccountSwitcher/account-switcher.jsx @@ -63,6 +63,7 @@ const AccountSwitcher = observer(({ history, is_mobile, is_visible }) => { toggleSetCurrencyModal, should_show_real_accounts_list, setShouldShowCooldownModal, + setIsForcedToExitPnv, } = ui; const [active_tab_index, setActiveTabIndex] = React.useState(!is_virtual || should_show_real_accounts_list ? 0 : 1); const [is_deriv_demo_visible, setDerivDemoVisible] = React.useState(true); @@ -99,6 +100,9 @@ const AccountSwitcher = observer(({ history, is_mobile, is_visible }) => { await logoutClient(); history.push(routes.traders_hub); } else { + if (window.location.pathname.startsWith(routes.phone_verification)) { + await setIsForcedToExitPnv(true); + } history.push(routes.traders_hub); await logoutClient(); } diff --git a/packages/core/src/Stores/ui-store.js b/packages/core/src/Stores/ui-store.js index fafb35933336..f55db96fdaed 100644 --- a/packages/core/src/Stores/ui-store.js +++ b/packages/core/src/Stores/ui-store.js @@ -480,7 +480,7 @@ export default class UIStore extends BaseStore { this.should_show_phone_number_otp = should_show_phone_number_otp; } - setIsForcedToExitPnv(is_forced_to_exit_pnv) { + async setIsForcedToExitPnv(is_forced_to_exit_pnv) { this.is_forced_to_exit_pnv = is_forced_to_exit_pnv; } diff --git a/packages/hooks/src/__tests__/usePhoneNumberVerificationSessionTimer.spec.tsx b/packages/hooks/src/__tests__/usePhoneNumberVerificationSessionTimer.spec.tsx index 73feadedc881..9d9e75ce92f7 100644 --- a/packages/hooks/src/__tests__/usePhoneNumberVerificationSessionTimer.spec.tsx +++ b/packages/hooks/src/__tests__/usePhoneNumberVerificationSessionTimer.spec.tsx @@ -1,9 +1,7 @@ -import React from 'react'; - -import { mockStore, StoreProvider } from '@deriv/stores'; import { renderHook } from '@testing-library/react-hooks'; import usePhoneNumberVerificationSessionTimer from '../usePhoneNumberVerificationSessionTimer'; +import useSettings from '../useSettings'; jest.mock('@deriv/shared', () => ({ ...jest.requireActual('@deriv/shared'), @@ -12,23 +10,17 @@ jest.mock('@deriv/shared', () => ({ }, })); -const mock_store = mockStore({ - client: { - account_settings: { - phone_number_verification: { - session_timestamp: undefined, - }, - }, - }, -}); +jest.mock('../useSettings'); describe('usePhoneNumberVerificationSetTimer', () => { - const wrapper = ({ children }: { children: JSX.Element }) => ( - {children} - ); beforeEach(() => { jest.clearAllMocks(); jest.useFakeTimers({ legacyFakeTimers: true }); + (useSettings as jest.Mock).mockReturnValue({ + data: { + phone_number_verification: { session_timestamp: undefined }, + }, + }); }); afterEach(() => { @@ -36,10 +28,13 @@ describe('usePhoneNumberVerificationSetTimer', () => { }); it('should set should_show_session_timeout_modal to true if session_timestap is same with WS response time', async () => { - if (mock_store.client.account_settings.phone_number_verification) - mock_store.client.account_settings.phone_number_verification.session_timestamp = 1620000000; + (useSettings as jest.Mock).mockReturnValue({ + data: { + phone_number_verification: { session_timestamp: 1620000000 }, + }, + }); - const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer(), { wrapper }); + const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer()); expect(result.current.should_show_session_timeout_modal).toBe(false); @@ -49,10 +44,13 @@ describe('usePhoneNumberVerificationSetTimer', () => { }); it('should set should_show_session_timeout_modal to false if session_timestap more than WS response time', async () => { - if (mock_store.client.account_settings.phone_number_verification) - mock_store.client.account_settings.phone_number_verification.session_timestamp = 1620000003; + (useSettings as jest.Mock).mockReturnValue({ + data: { + phone_number_verification: { session_timestamp: 1620000003 }, + }, + }); - const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer(), { wrapper }); + const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer()); expect(result.current.should_show_session_timeout_modal).toBe(false); @@ -62,10 +60,13 @@ describe('usePhoneNumberVerificationSetTimer', () => { }); it('should set formatted_time value to be 00:00 if the session_timestamp has no difference', async () => { - if (mock_store.client.account_settings.phone_number_verification) - mock_store.client.account_settings.phone_number_verification.session_timestamp = 1620000000; + (useSettings as jest.Mock).mockReturnValue({ + data: { + phone_number_verification: { session_timestamp: 1620000000 }, + }, + }); - const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer(), { wrapper }); + const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer()); await waitForNextUpdate(); @@ -73,10 +74,13 @@ describe('usePhoneNumberVerificationSetTimer', () => { }); it('should set formatted_time value if the session_timestamp has any value', async () => { - if (mock_store.client.account_settings.phone_number_verification) - mock_store.client.account_settings.phone_number_verification.session_timestamp = 1620000003; + (useSettings as jest.Mock).mockReturnValue({ + data: { + phone_number_verification: { session_timestamp: 1620000003 }, + }, + }); - const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer(), { wrapper }); + const { result, waitForNextUpdate } = renderHook(() => usePhoneNumberVerificationSessionTimer()); await waitForNextUpdate(); diff --git a/packages/hooks/src/usePhoneNumberVerificationSessionTimer.ts b/packages/hooks/src/usePhoneNumberVerificationSessionTimer.ts index c25685b13ece..7c402348796f 100644 --- a/packages/hooks/src/usePhoneNumberVerificationSessionTimer.ts +++ b/packages/hooks/src/usePhoneNumberVerificationSessionTimer.ts @@ -1,15 +1,13 @@ import { useCallback, useEffect, useState } from 'react'; import { useIsMounted, WS } from '@deriv/shared'; -import { useStore } from '@deriv/stores'; import dayjs from 'dayjs'; +import useSettings from './useSettings'; const usePhoneNumberVerificationSessionTimer = () => { const [session_timer, setSessionTimer] = useState(); const [formatted_time, setFormattedTime] = useState('00:00'); const [should_show_session_timeout_modal, setShouldShowSessionTimeoutModal] = useState(false); - const { client } = useStore(); - const { account_settings } = client; - const { phone_number_verification } = account_settings; + const { data: account_settings } = useSettings(); const isMounted = useIsMounted(); const formatTime = useCallback((totalSeconds: number) => { @@ -29,9 +27,13 @@ const usePhoneNumberVerificationSessionTimer = () => { WS.send({ time: 1 }).then((response: { error?: Error; time: number }) => { if (response.error) return; - if (response.time && phone_number_verification?.session_timestamp) { + //@ts-expect-error will remove this once GetSettings is updated + if (response.time && account_settings?.phone_number_verification?.session_timestamp) { // request_in_miliseconds is to convert session_timestamp from get_settings * it with 1000 to make it into miliseconds and convert the time using dayjs package - const request_in_milliseconds = dayjs(phone_number_verification?.session_timestamp * 1000); + const request_in_milliseconds = dayjs( + //@ts-expect-error will remove this once GetSettings is updated + account_settings?.phone_number_verification?.session_timestamp * 1000 + ); // next_request is to compare request_in_miliseconds with server's response time const next_request = Math.round(request_in_milliseconds.diff(response.time * 1000) / 1000); @@ -42,7 +44,8 @@ const usePhoneNumberVerificationSessionTimer = () => { } } }); - }, [phone_number_verification?.session_timestamp]); + //@ts-expect-error will remove this once GetSettings is updated + }, [account_settings?.phone_number_verification?.session_timestamp]); useEffect(() => { let countdown: ReturnType; @@ -63,6 +66,7 @@ const usePhoneNumberVerificationSessionTimer = () => { return { formatted_time, should_show_session_timeout_modal, + setSessionTimer, setShouldShowSessionTimeoutModal, }; }; From f4435d98632db3aede1c33a08cf7a573f6214247 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 12:52:04 +0400 Subject: [PATCH 4/7] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20trans?= =?UTF-8?q?lations=20with=20crowdin=20(#17599)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- .../translations/src/translations/ar.json | 16 +++---- .../translations/src/translations/bn.json | 16 +++---- .../translations/src/translations/de.json | 16 +++---- .../translations/src/translations/es.json | 16 +++---- .../translations/src/translations/fr.json | 16 +++---- .../translations/src/translations/it.json | 16 +++---- .../translations/src/translations/km.json | 44 +++++++++---------- .../translations/src/translations/ko.json | 16 +++---- .../translations/src/translations/mn.json | 30 ++++++------- .../translations/src/translations/pl.json | 16 +++---- .../translations/src/translations/pt.json | 16 +++---- .../translations/src/translations/ru.json | 16 +++---- .../translations/src/translations/si.json | 16 +++---- .../translations/src/translations/sw.json | 16 +++---- .../translations/src/translations/th.json | 16 +++---- .../translations/src/translations/tr.json | 16 +++---- .../translations/src/translations/uz.json | 16 +++---- .../translations/src/translations/vi.json | 16 +++---- .../translations/src/translations/zh_cn.json | 16 +++---- .../translations/src/translations/zh_tw.json | 16 +++---- 20 files changed, 181 insertions(+), 181 deletions(-) diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index 8a9b19b5cbe4..45903f890e49 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -56,7 +56,7 @@ "63534532": "أدخل الرمز أدناه للتحقق من هويتك.", "63869411": "تُستخدم هذه الوحدة لاختبار الرقم المحدد وفقًا للاختيار.", "64402604": "تحقق من معلومات التحويل", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>دعم أنواع متعددة من التداول مع فلتر للعثور على استراتيجيات حسب التفضيل.", "65185694": "Fiat onramp", "65982042": "الإجمالي", "66519591": "كلمة مرور المستثمر", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "تداول عقود الفروقات، احصل على حساب Deriv Apps أولاً.", "975950139": "بلد الإقامة", - "975959578": "Updates: Quick strategy modal", + "975959578": "التحديثات: نموذج الاستراتيجية السريعة", "977929335": "اذهب إلى إعدادات حسابي", "979713491": "حساب Zero Spread BVI", "980050614": "قم بالتحديث الآن", @@ -1132,7 +1132,7 @@ "1090041864": "الكتلة {{block_type}} إلزامية ولا يمكن حذفها/تعطيلها.", "1090802140": "معلومات إضافية", "1091617520": "نوع المستند", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "تم التحديث: نموذج الاستراتيجية السريعة", "1095295626": "<0>• سيحدد المحكم للخدمات المالية ما إذا كان يمكن قبول الشكوى وبما يتوافق مع القانون.", "1096078516": "سنراجع مستنداتك ونخطرك بحالتها في غضون 3 أيام.", "1096175323": "ستحتاج إلى حساب ديريف ", @@ -1802,7 +1802,7 @@ "1740371444": "لم يتم تحديد السوق الأساسي", "1741006997": "البارحة", "1742256256": "يرجى تحميل أحد المستندات التالية:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>تصميم مُجدد لتحسين الوظائف.", "1743448290": "وكلاء الدفع", "1743679873": "<1>إذا اخترت <0>«Call»، فستحصل على <1>عائد إذا كان <1>السعر النهائي أعلى من سعر التنفيذ عند <1>انتهاء الصلاحية. وإلا فلن تتلقى أي تعويض.", "1743902050": "يرجى إكمال تقييمك المالي.", @@ -3343,10 +3343,10 @@ "-1646497683": "الحلقات", "-251326965": "متنوع", "-1136893592": "إعلانات", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "استكشف الآن", + "-595149759": "لقد قمنا بتحسين نموذج الاستراتيجية السريعة (QS) من أجل تجربة تداول أفضل.", + "-1270636118": "<0/>ما هو الجديد:<0>", + "-1173567255": "<0/>تكامل خيارات المجمعات<0> لتطبيق الاستراتيجيات مباشرة ضمن نموذج QS.", "-195234787": "<0>ملاحظة: قد يستغرق تحميل الاستراتيجيات المعقدة بعض الوقت. حفظها من Deriv Bot يضمن الوصول الأسرع لاحقًا. إذا كانت لديك أسئلة، اتصل بنا عبر <1/>.", "-206059150": "تحديث Google Blockly v10", "-523557619": "أمان أفضل.", diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index 9e117c243b54..7d3c57c2f942 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -56,7 +56,7 @@ "63534532": "আপনার নিজেকে যাচাই করণে নিচের কোডটি লিখুন।", "63869411": "এই ব্লক নির্বাচন অনুযায়ী একটি প্রদত্ত সংখ্যা পরীক্ষা করে", "64402604": "ট্রান্সফার তথ্য পরীক্ষা করুন", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>একাধিক ট্রেড ধরনের জন্য পছন্দ অনুযায়ী কৌশল খুঁজতে একটি ফিল্টারের মাধ্যমে সহায়তা।", "65185694": "ঢালুর উপর ফিয়াট", "65982042": "মোট", "66519591": "বিনিয়োগকারী পাসওয়ার্ড", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "CFD ট্রেড করতে, প্রথমে একটি Deriv Apps অ্যাকাউন্ট পান।", "975950139": "বসবাসের দেশ", - "975959578": "Updates: Quick strategy modal", + "975959578": "আপডেট: দ্রুত কৌশল মডাল", "977929335": "আমার অ্যাকাউন্ট সেটিংসে যান", "979713491": "জিরো স্প্রেড BVI", "980050614": "এখন হালনাগাদ করুন", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} ব্লক বাধ্যতামূলক এবং মোছ/নিষ্ক্রিয় করা যাবে না।", "1090802140": "অতিরিক্ত তথ্য", "1091617520": "নথির প্রকার", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "আপডেটেড: দ্রুত কৌশল মডাল", "1095295626": "<0>• ফাইন্যান্সিয়াল সার্ভিসেসের জন্য আরবিটার নির্ধারণ করবে যে অভিযোগটি গ্রহণ করা যাবে কি না এবং আইন অনুযায়ী হবে কিনা।", "1096078516": "আমরা আপনার দস্তাবেজগুলি পর্যালোচনা করব এবং 3 দিনের মধ্যে এটির স্থিতি সম্পর্কে আপনাকে অবহিত করব।", "1096175323": "আপনার একটি Deriv অ্যাকাউন্ট প্রয়োজন হবে", @@ -1802,7 +1802,7 @@ "1740371444": "অন্তর্নিহিত মার্কেট নির্বাচন করা হয়নি", "1741006997": "গতকাল", "1742256256": "অনুগ্রহ করে নিম্নোক্ত নথিগুলির মধ্যে একটি আপলোড করুন:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>একটি সংস্কারিত ডিজাইন উন্নত কার্যকারিতার জন্য।", "1743448290": "পেমেন্ট এজেন্ট", "1743679873": "<1>আপনি যদি <0>“Call” নির্বাচন করেন, তাহলে <1>চূড়ান্ত মূল্য মেয়াদ শেষ হওয়ার সময়ে <1>স্ট্রাইক মূল্যের <1>উপরে থাকলে আপনি অর্থ প্রদান করবেন অন্যথায়, আপনি একটি অর্থ প্রদান পাবেন না।", "1743902050": "আপনার আর্থিক মূল্যায়ন সম্পূর্ণ করুন", @@ -3343,10 +3343,10 @@ "-1646497683": "লুপ", "-251326965": "বিবিধ", "-1136893592": "ঘোষণা", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "এখন এক্সপ্লোর করুন", + "-595149759": "আমরা আরও ভাল ট্রেডিং অভিজ্ঞতার জন্য কুইক স্ট্র্যাটেজি (কিউএস) মোডালটি উন্নত করেছি।", + "-1270636118": "<0>নতুন কি আছে:", + "-1173567255": "<0>Accumulator বিকল্পের সমন্বয় QS মডালে সরাসরি কৌশল প্রয়োগের জন্য।", "-195234787": "<0>নোট: জটিল কৌশলগুলি আপলোড করতে কিছু সময় লাগতে পারে। Deriv Bot থেকে তাদের সংরক্ষণ করে পরবর্তী সময়ে দ্রুত অ্যাক্সেস নিশ্চিত হয়। যদি আপনার প্রশ্ন থাকে, আমাদের সাথে <1/> মাধ্যমে যোগাযোগ করুন।", "-206059150": "Google Blockly v10 আপডেট", "-523557619": "উন্নততর নিরাপত্তা।", diff --git a/packages/translations/src/translations/de.json b/packages/translations/src/translations/de.json index e83aba078c31..63eb8c104c3a 100644 --- a/packages/translations/src/translations/de.json +++ b/packages/translations/src/translations/de.json @@ -56,7 +56,7 @@ "63534532": "Geben Sie den Code unten ein, um zu bestätigen, dass Sie es sind.", "63869411": "Dieser Block testet eine bestimmte Zahl entsprechend der Auswahl", "64402604": "Überprüfen Sie die Übertragungsinformationen", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Unterstützung für mehrere Handelsarten mit einem Filter, um Strategien nach Vorlieben zu finden.", "65185694": "Fiat an der Rampe", "65982042": "Insgesamt", "66519591": "Passwort für Anleger", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Um CFDs zu handeln, müssen Sie zunächst ein Derivat Apps-Konto einrichten.", "975950139": "Land des Wohnsitzes", - "975959578": "Updates: Quick strategy modal", + "975959578": "Aktualisiert: Schnellstrategie-Modal", "977929335": "Gehe zu meinen Kontoeinstellungen", "979713491": "Zero Spread BVI", "980050614": "Jetzt aktualisieren", @@ -1132,7 +1132,7 @@ "1090041864": "Der {{block_type}} Block ist obligatorisch und kann nicht gelöscht/deaktiviert werden.", "1090802140": "Zusätzliche Informationen", "1091617520": "Dokumenttyp", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Aktualisiert: Schnellstrategie-Modal", "1095295626": "<0>• Der Schiedsrichter für Finanzdienstleistungen entscheidet, ob der Beschwerde stattgegeben werden kann und ob sie gesetzeskonform ist.", "1096078516": "Wir werden Ihre Dokumente überprüfen und Sie innerhalb von 3 Tagen über den Status informieren.", "1096175323": "Sie benötigen ein Deriv-Konto", @@ -1802,7 +1802,7 @@ "1740371444": "Der zugrundeliegende Markt ist nicht ausgewählt", "1741006997": "Gestern", "1742256256": "Bitte laden Sie eines der folgenden Dokumente hoch:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Ein überarbeitetes Design für verbesserte Funktionalität.", "1743448290": "Zahlungsagenten", "1743679873": "Wenn Sie <0>\"Call\" wählen, erhalten Sie eine <1>Auszahlung, wenn der <1>Endpreis bei <1>Ablauf über dem <1>Ausübungspreis liegt. Andernfalls erhalten Sie keine Auszahlung.", "1743902050": "Vervollständigen Sie Ihre finanzielle Bewertung", @@ -3343,10 +3343,10 @@ "-1646497683": "Schleifen", "-251326965": "Diverses", "-1136893592": "Ankündigungen", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Jetzt erkunden", + "-595149759": "Wir haben das Quick Strategy (QS) Modal für ein besseres Handelserlebnis verbessert.", + "-1270636118": "<0>Was gibt es Neues:", + "-1173567255": "<0>Integration von Accumulators Options für die direkte Anwendung von Strategien im QS Modal.", "-195234787": "<0>Hinweis: Das Hochladen komplexer Strategien kann einige Zeit in Anspruch nehmen. Sie aus dem Deriv Bot zu speichern, sorgt für einen schnelleren Zugriff später. Bei Fragen kontaktieren Sie uns über <1/>.", "-206059150": "Google Blockly v10-Update", "-523557619": "Bessere Sicherheit.", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 505fdb8e5d3b..a279b5bb3766 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -56,7 +56,7 @@ "63534532": "Introduzca el código de abajo para verificar que es usted.", "63869411": "Este bloque pone a prueba un número dado de acuerdo con la selección", "64402604": "Comprobar la información de transferencia", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Soporte para múltiples tipos de operaciones con un filtro para encontrar estrategias por preferencia.", "65185694": "Fiat onramp", "65982042": "Total", "66519591": "Contraseña de inversionista", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Para operar CFD, primero obtenga una cuenta de Deriv Apps.", "975950139": "País de residencia", - "975959578": "Updates: Quick strategy modal", + "975959578": "Actualizaciones: Modal de estrategia rápida", "977929335": "Ir a la configuración de mi cuenta", "979713491": "Zero Spread BVI", "980050614": "Actualizar ahora", @@ -1132,7 +1132,7 @@ "1090041864": "El bloque {{block_type}} es obligatorio y no se puede eliminar/deshabilitar.", "1090802140": "Información adicional", "1091617520": "Tipo de documento", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Actualizado: Modal de Estrategia Rápida", "1095295626": "<0>• El Árbitro de Servicios Financieros determinará si la queja puede aceptarse y si se ajusta a la ley.", "1096078516": "Revisaremos sus documentos y le avisaremos de su estado en un plazo de 3 días.", "1096175323": "Necesitará una cuenta Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "No ha seleccionado el mercado subyacente", "1741006997": "Ayer", "1742256256": "Suba uno de los siguientes documentos:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Un diseño renovado para una mejor funcionalidad.", "1743448290": "Agentes de pago", "1743679873": "Si selecciona <0>\"Call\", recibirá un <1>pago si el <1>precio final está por encima del <1>precio de ejercicio al <1>vencimiento. De lo contrario, no recibirá ningún pago.", "1743902050": "Complete su evaluación financiera", @@ -3343,10 +3343,10 @@ "-1646497683": "Bucles", "-251326965": "Misceláneo", "-1136893592": "Anuncios", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Explora ahora", + "-595149759": "Hemos mejorado el modal de estrategia rápida (QS) para una mejor experiencia de trading.", + "-1270636118": "<0>¿Qué hay de nuevo?:", + "-1173567255": "<0>Integración de Opciones de Acumuladores para la aplicación directa de estrategias dentro del modal QS.", "-195234787": "<0>Nota: Subir estrategias complejas puede tomar tiempo. Guardarlas desde Deriv Bot asegura un acceso más rápido después. Si tiene preguntas, contáctenos a través de <1/>.", "-206059150": "Actualización de Google Blockly v10", "-523557619": "Mejor seguridad.", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 39eadb075cd2..33c87b0a8f14 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -56,7 +56,7 @@ "63534532": "Entrez le code ci-dessous pour vérifier que c'est bien vous.", "63869411": "Ce bloc teste un nombre donné en fonction de la sélection", "64402604": "Vérifier les informations de transferts", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Support pour plusieurs types de transactions avec un filtre pour trouver des stratégies par préférence.", "65185694": "Fiat onramp", "65982042": "Total ", "66519591": "Mot de passe investisseur", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Pour négocier des CFD, obtenez d’abord un compte Deriv Apps.", "975950139": "Pays de résidence", - "975959578": "Updates: Quick strategy modal", + "975959578": "Mises à jour : Modal de stratégie rapide", "977929335": "Allez aux paramètres de mon compte", "979713491": "Zero Spread BVI", "980050614": "Mettre à jour maintenant", @@ -1132,7 +1132,7 @@ "1090041864": "Le blocage {{block_type}} est obligatoire et ne peut être supprimé/désactivé.", "1090802140": "Informations complémentaires", "1091617520": "Type de document", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Mis à jour : Modal de stratégie rapide", "1095295626": "<0>• L'arbitre des services financiers déterminera si la plainte peut être acceptée et si elle est conforme à la loi.", "1096078516": "Nous examinerons vos documents et reviendrons vers vous dans un délai de trois (3) jours.", "1096175323": "Vous aurez besoin d'un compte Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Le marché sous-jacent n'est pas sélectionné", "1741006997": "Hier", "1742256256": "Veuillez télécharger l'un des documents suivants :", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Un design repensé pour une meilleure fonctionnalité.", "1743448290": "Agents de paiement", "1743679873": "Si vous sélectionnez <0>\"Call\", vous recevrez un <1>paiement si le <1>prix final est supérieur au <1>prix d'exercice à l'<1>expiration. Dans le cas contraire, vous ne recevrez aucun paiement.", "1743902050": "Complétez votre évaluation financière", @@ -3343,10 +3343,10 @@ "-1646497683": "Boucles", "-251326965": "Divers", "-1136893592": "Annonces", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Explorez maintenant", + "-595149759": "Nous avons amélioré le modal de stratégie rapide (QS) pour une meilleure expérience de trading.", + "-1270636118": "<0>Quoi de neuf :", + "-1173567255": "<0>Intégration des options Accumulators pour une application directe des stratégies dans le modal QS.", "-195234787": "<0>Remarque : Le téléchargement de stratégies complexes peut prendre un certain temps. Les sauvegarder depuis Deriv Bot garantit un accès plus rapide par la suite. Si vous avez des questions, contactez-nous via <1/>.", "-206059150": "Mise à jour de Google Blockly v10", "-523557619": "Meilleure sécurité.", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index a156da1ec6c3..74619f628960 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -56,7 +56,7 @@ "63534532": "Inserisci il codice qui sotto per verificare che sei tu.", "63869411": "Questo blocco testa un determinato numero a seconda della selezione", "64402604": "Verifica le informazioni sul trasferimento", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Supporto per più tipi di operazioni con un filtro per trovare strategie in base alle preferenze.", "65185694": "Fiat onramp", "65982042": "Totale", "66519591": "Password dell'investitore", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Per fare trading con i CFD, crea prima un conto Deriv Apps.", "975950139": "Paese di residenza", - "975959578": "Updates: Quick strategy modal", + "975959578": "Novità: Modale strategia veloce", "977929335": "Vai sulle impostazioni del conto", "979713491": "Zero Spread BVI", "980050614": "Aggiorna", @@ -1132,7 +1132,7 @@ "1090041864": "Il {{block_type}} blocco è obbligatorio e non può essere eliminato/disabilitato.", "1090802140": "Informazioni aggiuntive", "1091617520": "Tipo di documento", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Aggiornato: Modale strategia veloce", "1095295626": "<0>• L'arbitro per i servizi finanziari stabilirà se il reclamo può essere accettato e se è conforme alla legge.", "1096078516": "Verificheremo i documenti e ti aggiorneremo sullo stato della procedura entro 3 giorni.", "1096175323": "Occorre un conto Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Il mercato sottostante non è stato selezionato", "1741006997": "Ieri", "1742256256": "Carica uno dei seguenti documenti:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Un design rinnovato per una funzionalità migliorata.", "1743448290": "Agenti di pagamento", "1743679873": "Se selezioni <0>\"Call\", otterrai un <1>payout se il <1>prezzo finale è superiore al <1>prezzo d'esercizio alla <1>scadenza. Altrimenti, non otterai alcun pagamento.", "1743902050": "Completa la valutazione finanziaria", @@ -3343,10 +3343,10 @@ "-1646497683": "Ripetizioni", "-251326965": "Varie", "-1136893592": "Annunci", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Esplora ora", + "-595149759": "Abbiamo migliorato il modale strategia veloce (QS) per una migliore esperienza di trading.", + "-1270636118": "<0>Cosa c'è di nuovo:", + "-1173567255": "<0>Integrazione delle opzioni Accumulators per l'applicazione diretta delle strategie all'interno del modale QS.", "-195234787": "<0>Nota: L'upload di strategie complesse potrebbe richiedere tempo. Salvarle da Deriv Bot garantisce accesso più veloce in seguito. Se hai domande, contattaci tramite <1/>.", "-206059150": "Aggiornamento Google Blockly v10", "-523557619": "Migliore sicurezza.", diff --git a/packages/translations/src/translations/km.json b/packages/translations/src/translations/km.json index 6f773d4564f4..1b758dca4ccf 100644 --- a/packages/translations/src/translations/km.json +++ b/packages/translations/src/translations/km.json @@ -56,7 +56,7 @@ "63534532": "បញ្ចូលលេខកូដខាងក្រោមដើម្បីផ្ទៀងផ្ទាត់ថាជាអ្នក។", "63869411": "ប្លុកនេះប្រើតេស្តសាកល្បងលេខដែលបានផ្តល់ឱ្យតាមអ្វីដែលបានជ្រើសរើសទុក", "64402604": "ពិនិត្យព័ត៌មានការផ្ទេរប្រាក់", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>គាំទ្រដើម្បីប្រភេទជួញដូរមានច្រើន ជាមួយមុខងារតម្រង់ដើម្បីស្វែងរកយុទ្ធសាស្ត្រ ដោយយោងទៅតាមចំណូលចិត្ត។", "65185694": "Fiat onramp", "65982042": "សរុប", "66519591": "ពាក្យសម្ងាត់របស់វិនិយោគិន", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "ដើម្បីដោះដូរ CFDs សូមទទួលបានគណនីកម្មវិធី Deriv ជាមុនសិន។", "975950139": "ប្រទេសស្នាក់នៅ", - "975959578": "Updates: Quick strategy modal", + "975959578": "ការអភិវឌ្ឍន៍: ម៉ូដាល់យុទ្ធសាស្ត្រ ក្បាលរហ័ស", "977929335": "ចូលទៅការកំណត់គណនីរបស់ខ្ញុំ", "979713491": "Zero Spread BVI", "980050614": "អាប់ដេតឥឡូវនេះ", @@ -1132,7 +1132,7 @@ "1090041864": "ប្លុក {{block_type}} គឺចាំបាច់ត្រូវប្រើ ហើយមិនអាចលុប/បិទបានទេ។", "1090802140": "ព័​ត៍​មាន​បន្ថែម", "1091617520": "ប្រភេទឯកសារ", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "បានកែប្រែ: ម៉ូដាល់យុទ្ធសាស្ត្រ ក្បាលរហ័ស", "1095295626": "<0>•អាជ្ញាកណ្តាលសម្រាប់សេវាហិរញ្ញវត្ថុឬ Arbiter for Financial Services នឹងកំណត់ថាតើពាក្យបណ្តឹងអាចទទួលយកបាន និងស្របតាមច្បាប់ដែរឬទេ។", "1096078516": "យើងនឹងពិនិត្យមើលឯកសាររបស់អ្នក និងជូនដំណឹងដល់អ្នកអំពីស្ថានភាពរបស់វាក្នុងរយៈពេល 3 ថ្ងៃ។", "1096175323": "អ្នកនឹងត្រូវមានគណនី Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "ទីផ្សារដែលមានកំរឹតមិនត្រូវបានជ្រើសរើស", "1741006997": "ម្សិលមិញ", "1742256256": "សូមបង្ហោះឯកសារមួយក្នុងចំណោមឯកសារខាងដូចក្រោម៖", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>ការរចនាថ្មីកាន់តែងល្អ សម្រាប់មុខងារកែលម្អ។", "1743448290": "ភ្នាក់ងារទូទាត់ប្រាក់", "1743679873": "ប្រសិនបើអ្នកជ្រើសរើស <0>\"Call\" អ្នកនឹងទទួលបាន <1>ការទូទាត់ប្រាក់ ប្រសិនបើ <1>តម្លៃចុងក្រោយ គឺលើសពី <1>តម្លៃកូដកម្ម នៅ <1>ផុតកំណត់។ បើមិនដូច្នេះទេ អ្នកនឹងមិនទទួលបានប្រាក់សំណងទេ។", "1743902050": "បំពេញការវាយតម្លៃហិរញ្ញវត្ថុរបស់អ្នក", @@ -3343,10 +3343,10 @@ "-1646497683": "ដំណើរការបែបរង្វិលជុំ", "-251326965": "ផ្សេងៗ", "-1136893592": "សេចក្តីប្រកាស", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "សូមស្វែងหารឥឡូវនេះ", + "-595149759": "យើងបានធ្វើឱ្យម៉ូដាល់យុទ្ធសាស្ត្រ ក្បាលរហ័ស (QS) យ៉ាងល្អប្រសើរ សម្រាប់បទពិសោធន៍ជួញដូរល្អប្រសើរ។", + "-1270636118": "<0>អ្វីថ្មី:", + "-1173567255": "<0>ការបញ្ចូលជម្រើស Accumulators សម្រាប់អនុវត្តយុទ្ធសាស្ត្រនៅក្នុងម៉ូដាល់ QS។", "-195234787": "<0>ចំណាំ៖ ការបង្ហោះយុទ្ធសាស្ត្រស្មុគស្មាញអាចចំណាយពេលខ្លះ។ ការរក្សាទុកពួកវាពី Deriv Bot នឹងធានាបាននូវការចូលប្រើកាន់តែលឿនជាងមុននៅពេលក្រោយ។ ប្រសិនបើអ្នកមានសំណួរ សូមទាក់ទងមកយើងខ្ញុំតាមរយៈ <1/>។", "-206059150": "ការអាប់ដេត Google Blockly v10", "-523557619": "សុវត្ថិភាពកាន់តែប្រសើរ។", @@ -4223,21 +4223,21 @@ "-523625686": "លេខប្រភាគចៃដន្យ", "-933024508": "បង្គត់លេខដែលបានផ្តល់ឱ្យទៅចំនួនគត់", "-1656927862": "ប្លុកនេះបង្គត់លេខដែលបានផ្តល់ឱ្យយោងទៅតាមជម្រើស: បង្គត់, បង្គត់ឡើង, បង្គត់ចុះក្រោម។", - "-1495304618": "តម្លៃប្តូរ", - "-61210477": "ប្រតិបត្តិការលើចំនួនដែលបានផ្តល់ឲ្យ", - "-181644914": "ប្លុកនេះធ្វើការប្រតិបត្តិការដែលបានជ្រើសរើសទៅលើចំនួនមួយ។", - "-840732999": "ទៅ {{ variable }} បន្ថែមអក្សរ {{ input_text }}", - "-1469497908": "បន្ថែមអត្ថបទទៅប្រហែលជាអថេរ", - "-1851366276": "បន្ថែមអត្ថបទ", - "-1666316828": "បន្ថែមអត្ថបទជាយថេរ។", - "-1902332770": "ប្រៀបធៀប {{ input_text }} ទៅ {{ transform_type }}", - "-1489004405": "ប្រភេទចំណងជើង", - "-904432685": "បម្លែងករណីអត្ថបទតាមលក្ខណៈ។", + "-1495304618": "តម្លៃដាច់ខាត", + "-61210477": "ប្រតិបត្តិការលើលេខដែលបានកំណត់", + "-181644914": "ប្លុកនេះអនុវត្តប្រតិបត្តិការដែលបានជ្រើសរើសតាមចំនួនដែលកំណត់។", + "-840732999": "ទៅ {{ variable }} បន្ថែមអត្ថបទ {{ input_text }}", + "-1469497908": "បន្ថែមអត្ថបទដែលបានផ្តល់ឱ្យទៅអថេរមួយ", + "-1851366276": "អត្ថបទបន្ថែម", + "-1666316828": "បន្ថែមអត្ថបទដែលបានផ្តល់ឱ្យទៅអថេរមួយ។", + "-1902332770": "បំប្លែង {{ input_text }} ទៅជា {{ transform_type }}", + "-1489004405": "រចនាប័ទ្មពុម្ពអក្សរចំណងជើង", + "-904432685": "ផ្លាស់ប្តូរទម្រង់អក្សរឲ្យត្រូវគ្នា", "-882381096": "អក្សរ #", - "-1027605069": "អក្សរ # ពីចុងក្រោយ", - "-2066990284": "អក្សរ​ស្តុក​រ៉ាល់។", - "-337089610": "ក្នុងអត្ថបទ {{ input_text1 }} រកឃើញកូដនៃអត្ថបទ {{ input_text2 }} ក្នុងកញ្ចប់ដើមឬចុង។", - "-1966694141": "ស្វែងរកតាមស្រទាប់អត្ថបទសម្រាប់ការប្រាប់ប្រភេទ។", + "-1027605069": "អក្សរ # ពី​ចុង​", + "-2066990284": "តួអក្សរចៃដន្យ", + "-337089610": "នៅក្នុងអត្ថបទ {{ input_text1 }} ស្វែងរក {{ first_or_last }} ការកើតឡើងនៃអត្ថបទ {{ input_text2 }}", + "-1966694141": "ស្វែងរកតាមរយៈខ្សែអក្សរនៃអត្ថបទសម្រាប់ការកើតឡើងជាក់លាក់នៃតួអក្សរ ឬពាក្យដែលបានផ្តល់ឱ្យ ហើយបង្ហាញទីតាំងរបស់វា។", "-697543841": "រួមបញ្ចូលអត្ថបទ។", "-141160667": "ប្រវែងនៃអត្ថបទ {{ input_text }}", "-1133072029": "ប្រវែងសរសេរ​អត្ថបទ។", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index c53dce65d162..88c181397349 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -56,7 +56,7 @@ "63534532": "아래 코드를 입력하여 본인 인증을 진행하세요.", "63869411": "이 블록은 선택에 따라 주어진 숫자를 검토합니다", "64402604": "송금 정보 확인", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>다양한 거래 유형 지원 및 선호에 따라 전략을 찾기 위한 필터.", "65185694": "피아트 온램프", "65982042": "전체", "66519591": "투자자 비밀번호", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "CFD를 거래하려면 먼저 Deriv Apps 계정을 만드세요.", "975950139": "거주 국가", - "975959578": "Updates: Quick strategy modal", + "975959578": "업데이트: 빠른 전략 모달", "977929335": "나의 계좌 설정으로 가기", "979713491": "Zero Spread BVI", "980050614": "지금 업데이트하기", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} 블록은 필수이며 삭제/비활성화할 수 없습니다.", "1090802140": "추가 정보", "1091617520": "문서 유형", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "업데이트됨: 빠른 전략 모달", "1095295626": "<0>•Arbiter for Financial Services가 해당 법률에 따라 불만 사항으로 수락될 수 있는지 또는 불만 사항인지 여부를 결정합니다.", "1096078516": "문서를 검토하고 3일 이내에 상태를 알려 드리겠습니다.", "1096175323": "귀하께서는 Deriv 계좌가 필요합니다", @@ -1802,7 +1802,7 @@ "1740371444": "기초시장이 선택되지 않았습니다", "1741006997": "어제", "1742256256": "다음 문서 중 하나를 업로드 해주시기 바랍니다:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>개선된 기능을 위한 재설계.", "1743448290": "지불 에이전트", "1743679873": "<0>\"Call\" 을 선택하신 경우 <1>만료시 <1>최종 가격이 <1>행사 가격보다 높으면 <1>지급금을 받습니다. 그렇지 않으면 지급금을 받을 수 없습니다.", "1743902050": "귀하의 금융 평가를 완료해주세요", @@ -3343,10 +3343,10 @@ "-1646497683": "반복", "-251326965": "기타 사항", "-1136893592": "공지", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "지금 탐색하기", + "-595149759": "더 나은 트레이딩 경험을 위해 빠른 전략(QS) 모달을 개선했습니다.", + "-1270636118": "<0>새로운 기능:", + "-1173567255": "<0>Accumulators 옵션 통합을 통한 QS 모달 내에서의 직접 전략 적용.", "-195234787": "<0>참고: 복잡한 전략을 업로드하는 데 시간이 걸릴 수 있습니다. Deriv Bot에서 저장하면 나중에 더 빠르게 접근할 수 있습니다. 질문이 있으시면 <1/>를 통해 문의해 주세요.", "-206059150": "Google Blockly v10 업데이트", "-523557619": "더 나은 보안.", diff --git a/packages/translations/src/translations/mn.json b/packages/translations/src/translations/mn.json index ab365249298a..f2cd30758157 100644 --- a/packages/translations/src/translations/mn.json +++ b/packages/translations/src/translations/mn.json @@ -411,7 +411,7 @@ "415677940": "Хурдан гүйцэтгэл.", "417864079": "Хадгаламж хийсний дараа та валютыг солих боломжгүй болно.", "419485005": "Спот", - "419496000": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагддаг. Энэ блокыг зөвхөн үржүүлэгчийн худалдааны төрлөөр ашиглах боломжтой.", + "419496000": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагданаMultipliers. Энэ блокыг зөвхөн multipliers-ийн арилжааны төрөлд ашиглах боломжтой.", "420072489": "CFD арилжааны давтамж", "422055502": "-аас", "423682863": "Таны алдагдал тогтоосон хэмжээгээр хүрэх эсвэл түүнээс хэтэрсэн тохиолдолд таны худалдаа автоматаар хаагдах болно.", @@ -1151,7 +1151,7 @@ "1109182113": "Тайлбар: Хэлэлцээрийг цуцлах нь зөвхөн Үржүүлэгч дээрх хэлбэлзлийн индексүүдийн хувьд боломжтой.", "1109217274": "Амжилттай!", "1110102997": "Мэдэгдэл", - "1111743543": "Алдагдлыг зогсоох (үржүүлэгч)", + "1111743543": "Алдагдлыг зогсоох (Multipliers-т)", "1112582372": "Интервалын үргэлжлэх хугацаа", "1113119682": "Энэ блок нь танд лааны жагсаалтаас сонгосон лааны утгыг өгдөг.", "1113227831": "Тийм ээ, чи чадна. Гэсэн хэдий ч, таны дансанд нээлттэй албан тушаалын хамгийн их тоо, нээлттэй албан тушаалууд дээр хамгийн их агрегат төлбөр зэрэг хязгаар байдаг. Тиймээс олон албан тушаалыг нээхдээ эдгээр хязгаарыг санаж байгаарай. Та эдгээр хязгаарлалтын талаар дэлгэрэнгүй мэдээллийг Тохиргоо> Дансны хязгаардээрээс олж авах боломжтой.", @@ -1426,7 +1426,7 @@ "1364879837": "Баталгаажуулалт хийгдсэн боловч хувийн мэдээллийг харьцуулах боломжгүй байна.", "1364958515": "Хувьцаа", "1366244749": "Хязгаарууд", - "1367488817": "4. Худалдааны нөхцлийг дахин эхлүүлэх", + "1367488817": "Арилжааны нөхцөлийг дахин эхлүүлэх", "1367990698": "Volatility 10 Индекс", "1370435892": "Хадгаламж хийхээс өмнө энэ хуудсанд хаягийг шалгаж, мөнгө алдахгүй байхыг зөвлөж байна. Заримдаа хаяг шинэчлэгдэж магадгүй.", "1370647009": "Өдөр тутмын дээд хязгаарыг эдэлнэ", @@ -2061,7 +2061,7 @@ "1982790875": "<0/><1>{{account_title}} {{platform}} дансаа шинэчилнэ үү", "1982796981": "Тунхаглал", "1982912252": "Харьцангуй хүч чадлын индекс (RSI) хугацаа бүхий жагсаалтаас", - "1983001416": "Үржүүлэгч, хувьцаа гэх мэт худалдааны сонголтуудаа тодорхойлно уу. Энэ блокыг зөвхөн үржүүлэгчийн худалдааны төрлөөр ашиглах боломжтой. Хэрэв та өөр худалдааны төрлийг сонговол энэ блок Худалдааны сонголтуудын блокоор солигдох болно.", + "1983001416": "Multipler, stake гэх мэт арилжааны сонголтуудаа тодорхойлно уу. Энэ блокыг зөвхөн multipliers арилжааны төрөлд ашиглах боломжтой. Хэрэв та өөр арилжааны төрөл сонговол энэ блок нь Арилжааны сонголтуудын блокоор солигдох болно.", "1983358602": "Үе үе өөрчлөгдөж болзошгүй энэхүү бодлого нь таны {{legal_entity_name}}бүртгэлтэй дансанд хамаарна.", "1983387308": "Урьдчилан харах", "1983480826": "Нэвтрэх", @@ -2820,7 +2820,7 @@ "-362324454": "Түүхий эд", "-1959484303": "Криптовалтууд", "-1071336803": "Платформ", - "-1879666853": "MT5 Deriv", + "-1879666853": "Deriv MT5", "-820028470": "Сонголтууд ба үржүүлэгчид", "-1210359945": "Данс руугаа мөнгө шилжүүлэх", "-1926387364": "Бид таны цахим номыг таны имэйл рүү илгээсэн. Та мөн эндээс татаж авах боломжтой.", @@ -3295,8 +3295,8 @@ "-1137823888": "Та статистикаа хамгийн сүүлд цэвэрлэснээс хойшхи нийт payout.", "-992662695": "Та статистикаа хамгийн сүүлд цэвэрлэснээс хойш bot хэдэн удаа ажиллуулсан тоо. Ажиллах бүрт бүх root блокуудыг гүйцэтгэлийг багтаана.", "-1382491190": "Таны статистикийг хамгийн сүүлд цэвэрлэснээс хойш таны нийт ашиг/алдагдал. Энэ нь таны нийт төлбөр болон таны нийт хувьцааны хоорондох ялгаа юм.", - "-24780060": "Хэрэв та арилжаа хийхэд бэлэн бол ", - "-2147110353": " товч дээр дарна уу . Та өөрийн ботын гүйцэтгэлийг эндээс хянах боломжтой.", + "-24780060": "Хэрэв та арилжаа хийхэд бэлэн бол Run дээр дарна уу ", + "-2147110353": " дээр дарна уу . Та өөрийн ботын гүйцэтгэлийг эндээс хянах боломжтой.", "-411060180": "TradingView график", "-621128676": "Худалдааны төрөл", "-627895223": "Гарах цэг", @@ -4164,23 +4164,23 @@ "-702370957": "Огноог/цаг руу хөрвүүлэх", "-982729677": "Цагийн тамга руу хөрвүүлэх", "-311268215": "Энэ блок нь Unix Epoch (1970 оны 1-р сарын 1) оноос хойш он сар, цагийг илэрхийлсэн текстийн мөрийг секунд болгон хувиргадаг. Цаг хугацаа, цагийн бүсийн офсет нь заавал биш юм. Жишээ нь: 2019-01-01 21:03:45 GMT+0800 нь 1546347825 руу хөрвүүлэгдэх болно.", - "-1374685318": "Таны алдагдал энэ хэмжээнээс их буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагддаг. Энэ блокыг зөвхөн үржүүлэгчийн худалдааны төрлөөр ашиглах боломжтой.", + "-1374685318": "Таны алдагдал энэ хэмжээнээс их буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагдана. Энэ блокыг зөвхөн multipliers-ийн арилжааны төрөлд ашиглах боломжтой.", "-1797602591": "Алдагдлыг зогсоох: {{ currency }} {{ stop_loss }}", "-1214929127": "Алдагдлыг зогсоох нь эерэг тоо байх ёстой.", - "-1626615625": "Ашиг авах (үржүүлэгч)", - "-1871944173": "Аккумляторын худалдааны сонголтууд", + "-1626615625": "Take Profit (Multiplier-т)", + "-1871944173": "Accumulator арилжааны сонголтууд", "-625636913": "Дүн нь эерэг тоо байх ёстой.", "-780745489": "Хэрэв гэрээний төрөл нь “Хоёулаа” бол Худалдан авах нөхцөлд “Нөхцөл блок” -ийг ашиглан Өсөх, Уналтын аль алиныг нь багтаах ёстой", - "-2142851225": "Үржүүлэгч худалдааны сонголтууд", + "-2142851225": "Multiplier арилжааны сонголтууд", "-1466383897": "Үргэлжлэх хугацаа: {{ duration_unit }} {{ duration_value }}", - "-440702280": "Худалдааны сонголтууд", - "-1193894978": "Үргэлжлэх хугацаа, хувьцаа гэх мэт худалдааны сонголтуудаа тодорхойлно уу. Зарим сонголтууд нь зөвхөн худалдааны тодорхой төрлүүдэд хамаарна.", + "-440702280": "Арилжааны сонголтууд", + "-1193894978": "Үргэлжлэх хугацаа, stake гэх мэт арилжааны сонголтуудаа тодорхойлно уу. Зарим сонголтууд нь арилжааны тодорхой төрлүүдэд л хамаарна.", "-46523443": "Хугацааны утгыг зөвшөөрөхгүй. Ботыг ажиллуулахын тулд {{min}} -ээс {{max}}хооронд утгыг оруулна уу.", "-1483427522": "Худалдааны төрөл: {{ trade_type_category }} > {{ trade_type }}", - "-323348124": "1. Худалдааны параметрүүд", + "-323348124": "Арилжааны параметрүүд", "-1671903503": "Эхлэхдээ нэг удаа ажиллуулна уу:", "-783173909": "Арилжааны сонголтууд:", - "-376956832": "Энд та гэрээний параметрүүдийг тодорхойлдог.", + "-376956832": "Энд та гэрээнийхээ параметрүүдийг тодорхойлно.", "-1244007240": "хэрэв {{ condition }} бол", "-1577206704": "өөр бол", "-33796979": "үнэн", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index beee65783b41..8b660759e4a0 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -56,7 +56,7 @@ "63534532": "Wprowadź poniższy kod, aby zweryfikować, że to ty.", "63869411": "Ten blok sprawdza określoną liczbę w zależności od wyboru", "64402604": "Sprawdź dane przelewu", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Wsparcie dla wielu typów transakcji z filtrem do wyszukiwania strategii według preferencji.", "65185694": "On-ramp - waluta fiducjarna", "65982042": "Całkowity", "66519591": "Hasło inwestora", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Aby handlować kontraktami CFD, najpierw załóż konto Deriv Apps.", "975950139": "Kraj zamieszkania", - "975959578": "Updates: Quick strategy modal", + "975959578": "Aktualizacje: Moduł szybkiej strategii", "977929335": "Przejdź do ustawień swojego konta", "979713491": "Zero Spread BVI", "980050614": "Aktualizuj teraz", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} Blok jest obowiązkowy i nie można go usunąć/wyłączyć.", "1090802140": "Dodatkowe informacje", "1091617520": "Rodzaj dokumentu", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Zaktualizowano: Moduł szybkiej strategii", "1095295626": "<0>• Arbiter ds. Usług Finansowych ustali, czy reklamacja może zostać przyjęta i jest zgodna z prawem.", "1096078516": "Sprawdzimy Twoje dokumenty i powiadomimy Cię o ich statusie w ciągu 3 dni.", "1096175323": "Potrzebne Ci będzie konto Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Nie wybrano rynku bazowego", "1741006997": "Wczoraj", "1742256256": "Prześlij jeden z poniższych dokumentów:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Odświeżony design dla lepszej funkcjonalności.", "1743448290": "Pośrednicy płatności", "1743679873": "Jeśli wybiorą Państwo opcję <0>\"Call\", otrzymają Państwo <1>wypłatę, jeśli <1>cena końcowa będzie wyższa od <1>ceny wykonania w momencie <1>wygaśnięcia. W przeciwnym razie nie otrzymają Państwo wypłaty.", "1743902050": "Wypełnij formularz oceny finansowej", @@ -3343,10 +3343,10 @@ "-1646497683": "Pętle", "-251326965": "Różne", "-1136893592": "Zawiadomienia", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Eksploruj teraz", + "-595149759": "Udoskonaliliśmy moduł szybkiej strategii (QS), aby zapewnić lepsze doświadczenia podczas handlowania.", + "-1270636118": "<0>Co nowego:", + "-1173567255": "<0>Integracja Opcji Akumulatorów dla bezpośredniego zastosowania strategii w modułach QS.", "-195234787": "<0>Uwaga: Przesyłanie skomplikowanych strategii może zająć trochę czasu. Zapisanie ich z Deriv Bot zapewnia szybszy dostęp później. Jeśli masz pytania, skontaktuj się z nami przez <1/>.", "-206059150": "Aktualizacja Google Blockly v10", "-523557619": "Lepsze zabezpieczenia.", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index 012ba54620f1..d484fbf0a2be 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -56,7 +56,7 @@ "63534532": "Introduza o código abaixo para validar a sua identidade.", "63869411": "Este bloco testa um determinado número em função da seleção", "64402604": "Verificar informações de transferência", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Apoio a múltiplos tipos de negociação com um filtro para encontrar estratégias por preferência.", "65185694": "Fiat onramp", "65982042": "Total", "66519591": "Palavra-passe do investidor", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Para negociar CFDs, obtenha primeiro uma conta nas aplicações da Deriv.", "975950139": "País de residência", - "975959578": "Updates: Quick strategy modal", + "975959578": "Atualizações: Modal de estratégia rápida", "977929335": "Aceder às definições da minha conta", "979713491": "Zero Spread BVI", "980050614": "Atualizar agora", @@ -1132,7 +1132,7 @@ "1090041864": "O {{block_type}} bloco é obrigatório e não pode ser eliminado/desativado.", "1090802140": "Informações adicionais", "1091617520": "Tipo de documento", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Atualizado: Modal de Estratégia Rápida", "1095295626": "<0>•O Arbiter for Financial Services irá determinar se a reclamação pode ser aceite e se está segundo a lei.", "1096078516": "Iremos analisar os seus documentos e notificá-lo do estado dos mesmos no prazo de 3 dias.", "1096175323": "Vai precisar de uma conta Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "O mercado subjacente não está selecionado", "1741006997": "Ontem", "1742256256": "Carregue um dos seguintes documentos:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Um design renovado para uma melhor funcionalidade.", "1743448290": "Agentes de pagamento", "1743679873": "Se selecionar <0>\"Call\", recebe um <1>pagamento se o <1>preço final for superior ao <1>preço de exercício na <1>data de expiração. Caso contrário, não recebe um pagamento.", "1743902050": "Completar a sua avaliação financeira", @@ -3343,10 +3343,10 @@ "-1646497683": "Loops", "-251326965": "Diversos", "-1136893592": "Anúncios", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Explorar agora", + "-595149759": "Melhorámos o modal da estratégia rápida (QS) para uma melhor experiência de negociação.", + "-1270636118": "<0>Novidades:", + "-1173567255": "<0>Integração de Opções de Accumuladores para aplicação direta da estratégia dentro do modal QS.", "-195234787": "<0>Nota: O carregamento de estratégias complexas pode demorar algum tempo. Guardá-las na Deriv Bot garante um acesso mais rápido posteriormente. Se tiver dúvidas, contacte-nos via <1/>.", "-206059150": "Atualização do Google Blockly v10", "-523557619": "Maior segurança.", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index c70b912f68cb..03fa5ac6ee81 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -56,7 +56,7 @@ "63534532": "Введите код ниже, чтобы подтвердить, что это вы.", "63869411": "Этот блок тестирует заданное число в соответствии с выбранным параметром", "64402604": "Проверьте данные перевода", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Поддержка нескольких типов торгов с фильтром для поиска стратегий по предпочтениям.", "65185694": "Fiat onramp", "65982042": "Итого", "66519591": "Инвесторский пароль", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Чтобы торговать CFD, сначала создайте учетную запись Deriv Apps.", "975950139": "Страна проживания", - "975959578": "Updates: Quick strategy modal", + "975959578": "Обновления: Модальное окно быстрой стратегии", "977929335": "Перейти в настройки счета", "979713491": "Zero Spread BVI", "980050614": "Обновить сейчас", @@ -1132,7 +1132,7 @@ "1090041864": "Блок {{block_type}} обязателен и не может быть удален или отключен.", "1090802140": "Дополнительная информация", "1091617520": "Тип документа", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Обновлено: Модальное окно быстрой стратегии", "1095295626": "<0>•Арбитраж по финансовым услугам определит, может ли жалоба быть принята к рассмотрению и соответствует ли она закону.", "1096078516": "Мы проверим документы и уведомим вас об их статусе в течение 3 дней.", "1096175323": "Вам понадобится счет Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Не выбран актив", "1741006997": "Вчера", "1742256256": "Загрузите один из следующих документов:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Обновленный дизайн для улучшенной функциональности.", "1743448290": "Платёжные агенты", "1743679873": "Опцион <0>\"Call\" закроется с <1>выплатой, если по истечении <1>срока действия опциона <1>конечная цена будет выше <1>цены исполнения. В противном случае опцион закроется без выплаты.", "1743902050": "Пройдите финансовую оценку", @@ -3343,10 +3343,10 @@ "-1646497683": "Циклы", "-251326965": "Разное", "-1136893592": "Оповещения", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Исследуйте сейчас", + "-595149759": "Мы улучшили модальное окно быстрой стратегии (QS) для более удобного торгового опыта.", + "-1270636118": "<0>Что нового:", + "-1173567255": "<0>Интеграция опций аккумулаторов для прямого применения стратегии в модальном окне QS.", "-195234787": "<0>Примечание: Загрузка сложных стратегий может занять некоторое время. Сохранение их из Deriv Bot обеспечивает более быстрый доступ позже. Если у вас есть вопросы, свяжитесь с нами через <1/>.", "-206059150": "Обновление Google Blockly v10", "-523557619": "Лучшая безопасность.", diff --git a/packages/translations/src/translations/si.json b/packages/translations/src/translations/si.json index fbc5ab0d8d2d..6392a0c733bf 100644 --- a/packages/translations/src/translations/si.json +++ b/packages/translations/src/translations/si.json @@ -56,7 +56,7 @@ "63534532": "ඔබට මෙතන ඇති කේතය ඇතුළත් කරමින් ඔබ සිටින ආකාරය සත්‍යාපනය කරන්න.", "63869411": "තේරීම​ අනුව මෙම කොටසෙන් දී ඇති අංකයක් පරීක්ෂා කරයි", "64402604": "හුවමාරු තොරතුරු පරීක්ෂා කරන්න", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>විවිධ වෙළඳ වර්ග සඳහා සහය ප්‍රීමයුව මත යාවත්කාලීන කිරීම් සොයා ගැනීමට.", "65185694": "Fiat onramp", "65982042": "එකතුව", "66519591": "ආයෝජක මුරපදය", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "CFDs ගනුදෙනු කිරීමට, පළමුව Deriv Apps ගිණුමක් ලබා ගන්න.", "975950139": "පදිංචි රට", - "975959578": "Updates: Quick strategy modal", + "975959578": "යාවත්කාලීන කිරීම්: ඉක්මන් යුක්තියේ මොඩලය", "977929335": "මගේ ගිණුම් සැකසීම් වෙත යන්න", "979713491": "Zero Spread BVI", "980050614": "දැන් යාවත්කාලීන කරන්න", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} කොටස අනිවාර්ය වන අතර මකා දැමීමට හෝ/අබල කිරීමට නොහැක.", "1090802140": "අමතර තොරතුරු", "1091617520": "ලේඛනයේ වර්ගය", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "යාවත්කාලීන කරන ලද්දේ: ඉක්මන් යුක්තියේ මොඩලය", "1095295626": "<0>•පැමිණිල්ල පිළිගත හැකිද සහ නීතියට අනුකූලද යන්න මූල්‍ය සේවා සඳහා බේරුම්කරු විසින් තීරණය කරනු ඇත.", "1096078516": "අපි ඔබේ ලේඛන සමාලෝචනය කර දින 3ක් ඇතුළත එහි තත්ත්වය ඔබට දන්වන්නෙමු.", "1096175323": "ඔබට Deriv ගිණුමක් අවශ්‍ය වේ", @@ -1802,7 +1802,7 @@ "1740371444": "පාදක වෙළඳපල තෝරාගෙන නොමැත", "1741006997": "ඊයේ", "1742256256": "කරුණාකර පහත ලේඛනවලින් එකක් උඩුගත කරන්න:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>සකසන ලද කුතුහලයක් වැඩි හැකියාවන් සඳහා.", "1743448290": "ගෙවීම් නියෝජිතයින්", "1743679873": "ඔබ <0>\"Call\" තෝරා ගන්නේ නම්, <1>අවසාන මිල <1>කල් ඉකුත් වන විට <1>වර්ජනයේ මිලට වඩා වැඩි නම් ඔබට <1>ගෙවීමක් ලැබෙනු ඇත. එසේ නොමැතිනම්, ඔබට ගෙවීමක් නොලැබෙනු ඇත.", "1743902050": "ඔබේ මූල්‍ය තක්සේරුව සම්පූර්ණ කරන්න", @@ -3343,10 +3343,10 @@ "-1646497683": "ලූප", "-251326965": "විවිධ", "-1136893592": "නිවේදන", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "දැන් ගවේෂණය කරන්න", + "-595149759": "අපි ඉක්මන් යුක්තිය (QS) මොඩලය වඩා යහපත් වෙළඳ අත්දැකීමකට යාවත්කාලීන කර ඇත.", + "-1270636118": "<0>නව කිසිවක්:", + "-1173567255": "<0>Accumulators විකල්ප එකතු කිරීම QS මොඩලය තුළ උද්‍යෝග යුක්තියේ අයුක්තියක් සඳහා.", "-195234787": "<0>සටහන: දුෂ්කර දැක්මක් උඩුගත කිරීම සඳහා කාලය ගත විය හැක. Deriv Bot වලින් ඒවා සාකච්ඡා කිරීම නන්ත පරිශීලනයකින් පහසුකම ලබා දේ. ඔබට ප්‍රශ්න තිබෙනම්, කරුණාකර <1/> හරහා අපට සම්බන්ධ වන්න.", "-206059150": "Google Blockly v10 යාවත්කාලනය", "-523557619": "හොඳ ආරක්ෂාව.", diff --git a/packages/translations/src/translations/sw.json b/packages/translations/src/translations/sw.json index 9f5fe041425f..59e7bd18898e 100644 --- a/packages/translations/src/translations/sw.json +++ b/packages/translations/src/translations/sw.json @@ -56,7 +56,7 @@ "63534532": "Ingiza msimbo hapa chini ili kuthibitisha kwamba ni wewe.", "63869411": "Kizuizi hiki hupima nambari iliyopewa kulingana na chaguo", "64402604": "Angalia taarifa ya uhamishaji pesa", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Msaada kwa aina nyingi za biashara na kichujio ili kupata mikakati kwa upendeleo.", "65185694": "Fiat Onramp", "65982042": "Jumla", "66519591": "Nenosiri la mwekezaji", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Ili kufanya biashara ya CFDs, pata akaunti ya Deriv Apps kwanza.", "975950139": "Nchi ya Makazi", - "975959578": "Updates: Quick strategy modal", + "975959578": "Imesasishwa: Modal ya Mkakati wa Haraka", "977929335": "Nenda kwenye mipangilio ya akaunti yangu", "979713491": "Zero Spread BVI", "980050614": "Sasisha sasa", @@ -1132,7 +1132,7 @@ "1090041864": "Kizuizi {{block_type}} ni cha lazima na hakiwezi kufutwa/kuzimwa.", "1090802140": "Maelezo ya ziada", "1091617520": "Aina ya hati", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Imesasishwa: Modal ya Mkakati wa Haraka", "1095295626": "<0>• Msuluhishi wa Huduma za Kifedha ataamua kama malalamiko yanaweza kukubaliwa na yanafuata sheria.", "1096078516": "Tutakagua hati zako na kukujulisha hali yake ndani ya siku 3.", "1096175323": "Utahitaji akaunti ya Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Soko la msingi halijachaguliwa", "1741006997": "Jana", "1742256256": "Tafadhali pakia moja ya hati zifuatazo:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Muundo mpya kwa ajili ya kuboresha utendakazi.", "1743448290": "Mawakala wa malipo", "1743679873": "Ukichagua <0>“Call”, utapata <1>malipo ikiwa <1>bei ya mwisho iko juu ya bei shindani <1>wakati wa kumalizika mkataba<1>. Vinginevyo, hautapokea malipo.", "1743902050": "Kamilisha tathmini yako ya kifedha", @@ -3343,10 +3343,10 @@ "-1646497683": "Mzunguko", "-251326965": "Anuwai", "-1136893592": "Matangazo", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Chunguza sasa", + "-595149759": "Tumeboresha moduli ya mkakati wa Quick (QS) ili kupata uzoefu bora wa biashara.", + "-1270636118": "<0>Habari mpya:", + "-1173567255": "<0>Ujumuishaji wa Chaguzi za Accumulators kwa ajili ya matumizi ya moja kwa moja ya mkakati katika muktadha wa QS.", "-195234787": "<0>Kumbuka: Kupakia mikakati tata kunaweza kuchukua muda. Kuihifadhi kwenye Deriv Bot huhakikisha upatikanaji wa haraka baadae. Ikiwa una maswali, wasiliana nasi kupitia <1/>.", "-206059150": "Google Blockly v10 update", "-523557619": "Usalama bora.", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 822e9df578f1..4fcff0450f41 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -56,7 +56,7 @@ "63534532": "กรุณาใส่รหัสด้านล่างเพื่อยืนยันว่าเป็นคุณ", "63869411": "บล็อกนี้ใช้ทดสอบหมายเลขที่ให้มาตามสิ่งที่ได้เลือกไว้", "64402604": "ตรวจสอบข้อมูลการโอนเงิน", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>รองรับหลายประเภทการเทรด พร้อมตัวกรองเพื่อค้นหากลยุทธ์ตามความชอบของคุณ", "65185694": "การแปลงเงินตรารัฐบาลเป็นคริปโต (Fiat onramp)", "65982042": "ผลรวม", "66519591": "รหัสผ่านของผู้ลงทุน", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "หากต้องการเทรด CFD ให้รับบัญชี Deriv Apps ก่อน", "975950139": "ประเทศที่พำนัก", - "975959578": "Updates: Quick strategy modal", + "975959578": "อัพเดท: หน้าต่างกลยุทธ์ด่วน", "977929335": "ไปที่การตั้งค่าบัญชีของฉัน", "979713491": "บัญชี Zero Spread BVI", "980050614": "อัพเดทตอนนี้", @@ -1132,7 +1132,7 @@ "1090041864": "บล็อกชนิด {{block_type}} นั้นเป็นตัวบังคับให้ต้องมีและไม่อาจลบ/ปิดการใช้งานได้", "1090802140": "ข้อมูลเพิ่มเติม", "1091617520": "ประเภทของเอกสาร", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "อัพเดทแล้ว: หน้าต่างกลยุทธ์ด่วน", "1095295626": "<0>•อนุญาโตตุลาการสำหรับบริการทางการเงินหรือ Arbiter for Financial Services จะพิจารณาว่าสามารถยอมรับข้อร้องเรียนได้หรือไม่และเป็นไปตามกฎหมายหรือไม่", "1096078516": "เราจะตรวจสอบเอกสารของคุณและแจ้งให้คุณทราบถึงสถานะของเอกสารภายใน 3 วัน", "1096175323": "คุณจะต้องมีบัญชี Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "ยังไม่ได้เลือกตลาดที่อ้างอิง", "1741006997": "เมื่อวาน", "1742256256": "โปรดอัปโหลดหนึ่งในรายการเอกสารต่อไปนี้:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>ดีไซน์ใหม่ เพื่อการใช้งานที่ดียิ่งขึ้น", "1743448290": "ตัวแทนการชำระเงิน", "1743679873": "หากคุณเลือกสัญญาสิทธิ์แบบ <0>\"Call\" คุณจะได้รับ <1>เงินผลตอบแทน ถ้า <1>ราคาสุดท้าย นั้นสูงกว่า <1>ราคาใช้สิทธิ ณ <1>เวลาหมดอายุ มิฉะนั้นคุณจะไม่ได้รับเงินผลตอบแทน", "1743902050": "โปรดทำการประเมินทางการเงินของคุณให้เสร็จสมบูรณ์", @@ -3343,10 +3343,10 @@ "-1646497683": "การทำงานแบบวนลูป", "-251326965": "เบ็ดเตล็ด", "-1136893592": "ประกาศ", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "สำรวจเดี๋ยวนี้", + "-595149759": "เราได้ปรับปรุงหน้าต่างกลยุทธ์ด่วน (QS: Quick strategy) เพื่อประสบการณ์การเทรดที่ดียิ่งขึ้น", + "-1270636118": "<0>มีอะไรใหม่บ้าง:", + "-1173567255": "<0>การรวมตราสารสิทธิ Accumulator เพื่อการประยุกต์ใช้กลยุทธ์โดยตรงในหน้าต่างกลยุทธ์ด่วนหรือ QS", "-195234787": "<0>หมายเหตุ: การอัพโหลดกลยุทธ์ที่ซับซ้อนอาจใช้เวลาบ้าง การบันทึกจาก Deriv Bot จะช่วยให้เข้าถึงได้เร็วขึ้นในภายหลัง หากคุณมีคำถาม โปรดติดต่อเราผ่านทาง <1/>", "-206059150": "การอัพเดท Google Blockly v10", "-523557619": "ความปลอดภัยที่ดียิ่งขึ้น", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index 8af2e4ded633..e8a1710a6c88 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -56,7 +56,7 @@ "63534532": "Aşağıdaki kodu girerek sizin olduğunuzu doğrulayın.", "63869411": "Bu blok, seçime göre belirli bir numarayı test eder", "64402604": "Transfer bilgilerini kontrol edin", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Birden fazla ticaret türü desteği tercihlerinize göre stratejileri bulmak için filtre ile.", "65185694": "Fiat onramp", "65982042": "Toplam", "66519591": "Yatırımcı şifresi", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "CFD ticareti yapmak için önce bir Deriv Apps hesabı edinin.", "975950139": "İkamet edilen ülke", - "975959578": "Updates: Quick strategy modal", + "975959578": "Güncellemeler: Hızlı strateji modalı", "977929335": "Hesap ayarlarıma git", "979713491": "Zero Spread BVI", "980050614": "Şimdi Güncelle", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} bloğu zorunludur ve silinemez/devre dışı bırakılamaz.", "1090802140": "Ek Bilgi", "1091617520": "Belge türü", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Güncellendi: Hızlı Strateji Modalı", "1095295626": "<0>• Mali Hizmetler Hakemi, şikayetin kabul edilip edilemeyeceğini ve yasaya uygun olup olmadığını belirleyecektir..", "1096078516": "Belgelerinizi inceleyeceğiz ve 3 gün içinde durumunu size bildireceğiz.", "1096175323": "Bir Deriv hesabına ihtiyacınız olacak", @@ -1802,7 +1802,7 @@ "1740371444": "Temel piyasa seçilmedi", "1741006997": "Dün", "1742256256": "Lütfen aşağıdaki belgelerden birini yükleyin:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Geliştirilmiş bir tasarım daha iyi bir işlevsellik için.", "1743448290": "Ödeme acenteleri", "1743679873": "<0>\"Call\" seçeneğini seçerseniz, <1>süre sonunda <1>nihai fiyat <1>strike fiyatının üzerindeyse bir <1>ödeme kazanırsınız. Aksi takdirde ödeme alamazsınız.", "1743902050": "Finansal değerlendirmenizi tamamlayın", @@ -3343,10 +3343,10 @@ "-1646497683": "Döngüler", "-251326965": "Çeşitli", "-1136893592": "Duyurular", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Şimdi keşfedin", + "-595149759": "Hızlı strateji (QS) modalını daha iyi bir ticaret deneyimi için geliştirdik.", + "-1270636118": "<0>Yeni olanlar:", + "-1173567255": "<0>Accumulators Seçenekleri'nin entegrasyonu QS modalında doğrudan strateji uygulaması için.", "-195234787": "<0>Not: Karmaşık stratejilerin yüklenmesi biraz zaman alabilir. Deriv Bot'tan kaydetmek, daha sonra daha hızlı erişim sağlar. Sorularınız varsa, bizimle <1/> üzerinden iletişime geçin.", "-206059150": "Google Blockly v10 güncellemesi", "-523557619": "Daha iyi güvenlik.", diff --git a/packages/translations/src/translations/uz.json b/packages/translations/src/translations/uz.json index 44c25cd714d2..32e3b01b13da 100644 --- a/packages/translations/src/translations/uz.json +++ b/packages/translations/src/translations/uz.json @@ -56,7 +56,7 @@ "63534532": "Siz ekanligingizni tasdiqlash uchun kodni kiriting.", "63869411": "Ushbu blok tanlangan raqamga muvofiq sinovdan o'tadi", "64402604": "Transfer ma`lumotlarini tekshiring", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Bir nechta savdo turlarini qo'llab-quvvatlash strategiyalarni afzallik bo'yicha topish uchun filtr bilan.", "65185694": "Fiat onramp", "65982042": "Jami", "66519591": "Investor paroli", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "CFD bilan savdo qilish uchun, Deriv Apps hisobini yarating.", "975950139": "Fuqaroligi", - "975959578": "Updates: Quick strategy modal", + "975959578": "Yangilanishlar: Tez strategiya modal", "977929335": "Hisob sozlamalariga o'tish", "979713491": "Zero Spread BVI", "980050614": "Hozir yangilash", @@ -1132,7 +1132,7 @@ "1090041864": "{{block_type}} blok majburiy va uni olib tashlash yoki o‘chirib bo‘lmaydi.", "1090802140": "Qo'shimcha ma'lumot", "1091617520": "Hujjat turi", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Yangilandi: Tez strategiya modal", "1095295626": "<0>• Moliyaviy xizmatlar hakami shikoyatning maqbul va qonuniy ekanligini aniqlaydi.", "1096078516": "Hujjatlaringizni koʻrib chiqamiz va 3 kun ichida uning holati haqida sizga xabar beramiz.", "1096175323": "Sizga Deriv hisobi kerak bo'ladi", @@ -1802,7 +1802,7 @@ "1740371444": "Asosiy bozor tanlanmagan", "1741006997": "Kecha", "1742256256": "Quyidagi hujjatlardan birini yuklang:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Yana bir yangilanadigan dizayn yaxshilangan funksionallik uchun.", "1743448290": "To'lov agentlari", "1743679873": "Agar siz <0>\"Call\" variantini tanlasangiz, <1>yakuniy narx <1>muddat oxirida <1>strike narxidan yuqori bo'lsa, siz <1>to'lov olasiz. Aks holda siz to'lovni ololmaysiz.", "1743902050": "Moliyaviy baholashingizni yakunlang", @@ -3343,10 +3343,10 @@ "-1646497683": "Looplar", "-251326965": "Turli xil", "-1136893592": "E'lonlar", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Hozir o'rganing", + "-595149759": "Biz tez strategiya (QS) modalini yaxshiladik, bu esa savdo tajribangizni yaxshilaydi.", + "-1270636118": "<0>Yangi narsalar:", + "-1173567255": "<0>Accumulations Options ni integratsiyalash QS modalida bevosita strategiya qo'llash uchun.", "-195234787": "<0>Diqqat: Murakkab strategiyalarni yuklash biroz vaqt olishi mumkin. Ularni Deriv Bot’dan saqlash kelajakda tezroq kirish imkonini beradi. Agar sizda savollaringiz bo'lsa, biz bilan <1/> orqali bog'laning.", "-206059150": "Google Blockly v10 yangilanishi", "-523557619": "Yaxshilangan xavfsizlik.", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index e0313ffca8db..05212e820903 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -56,7 +56,7 @@ "63534532": "Nhập mã dưới đây để xác minh bạn là người.", "63869411": "Khung này kiểm tra thử một số đã cho theo như lựa chọn", "64402604": "Kiểm tra thông tin chuyển khoản", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>Hỗ trợ cho nhiều loại giao dịch với bộ lọc để tìm các chiến lược theo sở thích.", "65185694": "Fiat onramp", "65982042": "Tổng", "66519591": "Mật khẩu nhà đầu tư", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "Để giao dịch CFD, trước tiên hãy đăng ký tài khoản Deriv Apps.", "975950139": "Quốc gia cư trú", - "975959578": "Updates: Quick strategy modal", + "975959578": "Cập nhật: Hộp thoại chiến lược nhanh", "977929335": "Chuyển tới cài đặt tài khoản của tôi", "979713491": "Zero Spread BVI", "980050614": "Cập nhật ngay", @@ -1132,7 +1132,7 @@ "1090041864": "Khối {{block_type}} này là bắt buộc và không thể xóa/vô hiệu hóa.", "1090802140": "Thông tin bổ sung", "1091617520": "Loại giấy tờ", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "Cập nhật: Hộp thoại Chiến lược Nhanh", "1095295626": "<0>• Arbiter for Financial Services sẽ xác định xem khiếu nại có được chấp nhận và phù hợp với pháp luật hay không.", "1096078516": "Chúng tôi sẽ xem xét giấy tờ của bạn và thông báo tình hình đến bạn trong vòng 3 ngày.", "1096175323": "Bạn sẽ cần một tài khoản Deriv", @@ -1802,7 +1802,7 @@ "1740371444": "Thị trường cơ sở không được chọn", "1741006997": "Ngày hôm qua", "1742256256": "Vui lòng tải lên một trong các loại giấy tờ sau:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>Thiết kế được cải tiến để nâng cao chức năng.", "1743448290": "Đại lý thanh toán", "1743679873": "Nếu bạn chọn <0>\"Call\", hợp đồng quyền chọn của bạn sẽ sinh lời một <1>khoản chi trả nếu <1>giá cuối cùng cao hơn <1>giá thực hiện vào <1>thời điểm hết hạn. Nếu không, hợp đồng quyền chọn của bạn sẽ không sinh lời.", "1743902050": "Hoàn thành đánh giá tài chính của bạn", @@ -3343,10 +3343,10 @@ "-1646497683": "Vòng lặp", "-251326965": "Tiện ích khác", "-1136893592": "Thông báo", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "Khám phá ngay", + "-595149759": "Chúng tôi đã cải tiến hộp thoại chiến lược nhanh (QS) để có trải nghiệm giao dịch tốt hơn.", + "-1270636118": "<0>Những điều mới:", + "-1173567255": "<0>Giải pháp cho tùy chọn Accumulators để áp dụng chiến lược trực tiếp trong hộp thoại QS.", "-195234787": "<0>Chú ý: Tải lên các chiến lược phức tạp có thể mất thời gian. Lưu chúng từ Deriv Bot đảm bảo truy cập nhanh hơn sau này. Nếu bạn có câu hỏi, hãy liên hệ với chúng tôi qua <1/>.", "-206059150": "Cập nhật Google Blockly v10", "-523557619": "Bảo mật tốt hơn.", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index 244429b2b9a1..f78c66945bee 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -56,7 +56,7 @@ "63534532": "输入下面的代码以验证身份。", "63869411": "此程序块根据选定内容对特定数字进行测试", "64402604": "检查转账信息", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>支持多种交易类型,并可以通过偏好筛选器器查找策略。", "65185694": "法定货币入口", "65982042": "总计", "66519591": "投资者密码", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "要交易差价合约,请先获得 Deriv 应用程序账户。", "975950139": "居住国", - "975959578": "Updates: Quick strategy modal", + "975959578": "更新:快速策略模式", "977929335": "前往账户设置", "979713491": "Zero Spread BVI", "980050614": "立即更新", @@ -1132,7 +1132,7 @@ "1090041864": "该 {{block_type}} 程序块是强制性的,不能删除/禁用。", "1090802140": "其他信息", "1091617520": "文件类型", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "更新:快速策略模式", "1095295626": "<0>•金融服务仲裁员将决定投诉是否可以受理以及是否符合法律规定。", "1096078516": "将审核文件并于3天内通知状况。", "1096175323": "需要有 Deriv 账户", @@ -1802,7 +1802,7 @@ "1740371444": "未选择标的市场", "1741006997": "昨日", "1742256256": "请上传以下文件之一:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>全新设计以提升功能。", "1743448290": "支付代理", "1743679873": "如果选择 <0>“Call”,当<1>到期时<1>最终价格高于<1>行权价,将获得<1>赔付。否则,将不会获得赔付。", "1743902050": "完成财务评估", @@ -3343,10 +3343,10 @@ "-1646497683": "循环", "-251326965": "杂项", "-1136893592": "公告", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "立即探索", + "-595149759": "我们改进了快速策略 (QS) 模式,以提供更好的交易体验。", + "-1270636118": "<0>新功能:", + "-1173567255": "<0>整合 Accumulators 期权以在 QS 模式中直接应用策略。", "-195234787": "<0>注意:上传复杂策略可能需要一些时间。在 Deriv Bot 保存可确保以后更快地访问。如果有疑问,请通过<1/>联系我们。", "-206059150": "Google Blockly v10 更新", "-523557619": "更加安全。", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 4f456a5689af..96ad12e050fb 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -56,7 +56,7 @@ "63534532": "請輸入以下代碼以驗證身份。", "63869411": "此區塊根據選定內容對特定數字進行測試", "64402604": "檢查轉帳資訊", - "64685615": "<0>Support for multiple trade types with a filter to find strategies by preference.", + "64685615": "<0>支援多種交易類型,並可透過篩選器搜尋偏好的策略。", "65185694": "法定貨幣入口", "65982042": "總計", "66519591": "投資者密碼", @@ -991,7 +991,7 @@ "974888153": "High-Low", "975608902": "要交易差價合約,請首先獲得 Deriv 應用程式帳戶。", "975950139": "居住國", - "975959578": "Updates: Quick strategy modal", + "975959578": "更新:快速策略模式", "977929335": "前往帳戶設定", "979713491": "Zero Spread BVI", "980050614": "立即更新", @@ -1132,7 +1132,7 @@ "1090041864": "該 {{block_type}} 區塊是強制性的,不能刪除/禁用。", "1090802140": "附加資訊", "1091617520": "文件類型", - "1095089956": "Updated: Quick Strategy Modal", + "1095089956": "已更新:快速策略模式", "1095295626": "<0>•金融服務仲裁人將決定投訴是否可以接受並符合法律規定。", "1096078516": "將審核文件並於3天內通知狀況。", "1096175323": "需要有 Deriv 帳戶", @@ -1802,7 +1802,7 @@ "1740371444": "未選擇標的市場", "1741006997": "昨日", "1742256256": "請上傳以下文件之一:", - "1742282469": "<0>A revamped design for improved functionality.", + "1742282469": "<0>重新設計以改善功能性。", "1743448290": "支付代理", "1743679873": "如果選擇 <0>\"Call\",當<1>到期時<1>最終價格高於<1>行權價,將獲得<1>賠付。否則,將不會獲得賠付。", "1743902050": "完成財務評估", @@ -3343,10 +3343,10 @@ "-1646497683": "迴圈", "-251326965": "雜項", "-1136893592": "公告", - "-94894828": "Explore now", - "-595149759": "We've improved the Quick strategy (QS) modal for a better trading experience.", - "-1270636118": "<0>What’s new:", - "-1173567255": "<0>Integration of Accumulators Options for direct strategy application within the QS modal.", + "-94894828": "立即探索", + "-595149759": "我們已改善快速策略 (QS) 模式,以提供更好的交易體驗。", + "-1270636118": "<0>新功能:", + "-1173567255": "<0>Accumulators 期權的整合,以便在 QS 模式中直接應用策略。", "-195234787": "<0>注意:上傳複雜策略可能需要一些時間。從 Deriv Bot 儲存可以確保稍後更快地存取。如果有任何問題,請透過<1/>聯繫我們。", "-206059150": "Google Blockly v10 更新", "-523557619": "更加安全。", From ac72919ff48fde15aafb93b216086e4fbe06495e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:11:05 +0400 Subject: [PATCH 5/7] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20trans?= =?UTF-8?q?lations=20with=20crowdin=20(#17604)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE --- .../translations/src/translations/bn.json | 22 +++++++------- .../translations/src/translations/es.json | 2 +- .../translations/src/translations/mn.json | 30 +++++++++---------- .../translations/src/translations/pl.json | 2 +- .../translations/src/translations/pt.json | 2 +- .../translations/src/translations/ru.json | 2 +- .../translations/src/translations/uz.json | 2 +- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/translations/src/translations/bn.json b/packages/translations/src/translations/bn.json index 7d3c57c2f942..2ea34ee706b8 100644 --- a/packages/translations/src/translations/bn.json +++ b/packages/translations/src/translations/bn.json @@ -56,7 +56,7 @@ "63534532": "আপনার নিজেকে যাচাই করণে নিচের কোডটি লিখুন।", "63869411": "এই ব্লক নির্বাচন অনুযায়ী একটি প্রদত্ত সংখ্যা পরীক্ষা করে", "64402604": "ট্রান্সফার তথ্য পরীক্ষা করুন", - "64685615": "<0>একাধিক ট্রেড ধরনের জন্য পছন্দ অনুযায়ী কৌশল খুঁজতে একটি ফিল্টারের মাধ্যমে সহায়তা।", + "64685615": "পছন্দ অনুসারে কৌশলগুলি খুঁজতে ফিল্টার সহ <0>একাধিক ট্রেডের প্রকারের জন্য সমর্থন ।", "65185694": "ঢালুর উপর ফিয়াট", "65982042": "মোট", "66519591": "বিনিয়োগকারী পাসওয়ার্ড", @@ -479,7 +479,7 @@ "475492878": "সিন্থেটিক সূচকগুলি চেষ্টা করুন", "476023405": "ইমেইল কি পাওয়া যায়নি?", "477557241": "দূরবর্তী ব্লক লোডে অবশ্যই সংগ্রহ হতে হবে।", - "477744930": "সবগুলো ব্লক মুছে ফেলুন", + "477744930": "সকল ব্লক মুছে ফেলুন", "478280278": "এই ব্লকটি একটি ডায়ালগ বক্স প্রদর্শন করে যা একটি ইনপুট প্রম্পট করার জন্য একটি স্বনির্ধারিত বার্তা ব্যবহার করে। ইনপুট টেক্সট বা একটি সংখ্যা একটি স্ট্রিং হতে পারে এবং একটি পরিবর্তনশীল যাও বরাদ্দ করা যেতে পারে। যখন ডায়ালগ বক্সটি প্রদর্শিত হয়, তখন আপনার কৌশলটি বিরাম দেওয়া হয় এবং আপনি একটি প্রতিক্রিয়া লিখতে এবং “ওকে” ক্লিক করার পরেই পুনরায় চালু হবে।", "479420576": "টারশিয়ারি", "480356486": "*Boom 300 এবং Crash 300 ইনডেক্স", @@ -951,7 +951,7 @@ "933193610": "শুধুমাত্র অক্ষর, সময়কাল, হাইফেন, অ্যাপোস্ট্রোফ এবং স্পেস, দয়া করে।", "936393760": "চুক্তির সময়কালে স্পট মূল্য কখনও স্পর্শ না করলে বা লঙ্ঘন না করলে <1>মেয়াদ শেষ হলে আপনি একটি <2>পেআউট পাবেন। যদি তা হয়, আপনার চুক্তি তাড়াতাড়ি শেষ হয়ে যাবে।", "937237342": "কৌশলের নাম ফাঁকা রাখা যাবে না", - "937289537": "একটি মূল (অপরিবর্তিত) ডকুমেন্ট আপলোড করুন যা স্পষ্টভাবে আপনার নাম এবং ঠিকানা দেখায়, গত {{expiry_in_months}} মাসের মধ্যে জারি করা হয়েছে। আমরা গ্রহণ করি:", + "937289537": "একটি আসল (অপরিবর্তিত) নথি আপলোড করুন যা স্পষ্টভাবে আপনার নাম এবং ঠিকানা দেখায়, যা গত {{expiry_in_months}} মাসের মধ্যে জারি করা হয়েছে৷ আমরা গ্রহণ করি:", "937682366": "আপনার পরিচয় প্রমাণ করার জন্য এই দুটি নথি আপলোড করুন।", "937831119": "শেষ নাম*", "937992258": "টেবিল", @@ -1011,7 +1011,7 @@ "988361781": "আপনি এখনও কোন ট্রেডিং কার্যকলাপ আছে।", "988934465": "অনুরোধ জানানো হলে, চালিয়ে যাওয়ার জন্য আপনাকে অবশ্যই ক্যামেরা অ্যাক্সেস সক্রিয় করতে হবে", "989840364": "আপনি আইনগত অপ্রাপ্তবয়স্ক।", - "991654042": "আপনার প্রাথমিক অংশীদারি পরিবর্তন করে এবং/মুনাফা গ্রহণ করে।", + "991654042": "আপনার প্রাথমিক স্টেক পরিবর্তন করে এবং/অথবা লাভ গ্রহণ করে।", "992294492": "আপনার পোস্টাল কোড অবৈধ", "992677950": "অন্যান্য ডিভাইসে লগ আউট করুন", "995563717": "{{ boolean }}না", @@ -1250,7 +1250,7 @@ "1204202371": "কোন খোলা পজিশন নেই", "1204223111": "এই উদাহরণে, মোমবাতি তালিকা থেকে খোলা দাম “candle_list” নামক একটি চলকের জন্য বরাদ্দ করা হয়।", "1204459171": "আপনার বিদ্যমান <0>{{প্ল্যাটফর্ম}} {{type_1}} <1/>এবং <0>{{type_2}} {{from_account}} অ্যাকাউন্ট(গুলি) অ্যাক্সেসযোগ্য থাকবে৷", - "1205194941": "আপনার প্রাথমিক শেক আপডেট করুন।", + "1205194941": "আপনার প্রাথমিক স্টেক আপডেট করুন।", "1206227936": "কিভাবে আপনার কার্ডটি মাস্ক করে?", "1206821331": "সশস্ত্র বাহিনী", "1208729868": "টিক্স", @@ -1802,7 +1802,7 @@ "1740371444": "অন্তর্নিহিত মার্কেট নির্বাচন করা হয়নি", "1741006997": "গতকাল", "1742256256": "অনুগ্রহ করে নিম্নোক্ত নথিগুলির মধ্যে একটি আপলোড করুন:", - "1742282469": "<0>একটি সংস্কারিত ডিজাইন উন্নত কার্যকারিতার জন্য।", + "1742282469": "উন্নত কার্যকারিতার জন্য <0>একটি পরিবর্তিত নকশা।", "1743448290": "পেমেন্ট এজেন্ট", "1743679873": "<1>আপনি যদি <0>“Call” নির্বাচন করেন, তাহলে <1>চূড়ান্ত মূল্য মেয়াদ শেষ হওয়ার সময়ে <1>স্ট্রাইক মূল্যের <1>উপরে থাকলে আপনি অর্থ প্রদান করবেন অন্যথায়, আপনি একটি অর্থ প্রদান পাবেন না।", "1743902050": "আপনার আর্থিক মূল্যায়ন সম্পূর্ণ করুন", @@ -3106,9 +3106,9 @@ "-138833194": "অন্তর্নিহিত বাজার আপনার বট এই কৌশলটির সাথে ট্রেড করবে।", "-410856998": "আপনার মোট লাভ এই পরিমাণ ছাড়িয়ে গেলে বট ট্রেডিং বন্ধ করবে।", "-2131851017": "বৃদ্ধির হার", - "-1073566768": "আপনার ষ্টেক নির্দিষ্ট বৃদ্ধির হারে প্রতি টিকে বৃদ্ধি পাবে যতক্ষণ না বর্তমান স্পট মূল্য পূর্ববর্তী স্পট মূল্যের পরিসরের মধ্যে থাকে।", + "-1073566768": "আপনার ষ্টেক প্রতি টিক নির্দিষ্ট বৃদ্ধির হারে বৃদ্ধি পাবে যতক্ষণ না বর্তমান স্পট মূল্য আগের স্পট মূল্যের সীমার মধ্যে থাকে।", "-447853970": "ক্ষতি থ্রেশহোল্ড", - "-1850439039": "ইউনিটটি পরবর্তী বাণিজ্যের জন্য হারানো বাণিজ্যের পরে শেয়ারটি গুণ করত।", + "-1850439039": "ইউনিটটি পরবর্তী ট্রেডে হারানোর পর স্টেক গুনন করতো।", "-33106112": "পরবর্তী ট্রেডের জন্য সফল ট্রেডের পর স্টেক গুন করতে ব্যবহৃত আকার।", "-1503301801": "মান অবশ্যই সমান বা তার চেয়ে বেশি হতে হবে {{ min }}", "-1596504046": "সফল ট্রেডের পর পরবর্তী ট্রেডে যোগ করা ইউনিটের সংখ্যা। এক ইউনিট প্রাথমিক ষ্টেকের পরিমাণের সমান।", @@ -3344,9 +3344,9 @@ "-251326965": "বিবিধ", "-1136893592": "ঘোষণা", "-94894828": "এখন এক্সপ্লোর করুন", - "-595149759": "আমরা আরও ভাল ট্রেডিং অভিজ্ঞতার জন্য কুইক স্ট্র্যাটেজি (কিউএস) মোডালটি উন্নত করেছি।", - "-1270636118": "<0>নতুন কি আছে:", - "-1173567255": "<0>Accumulator বিকল্পের সমন্বয় QS মডালে সরাসরি কৌশল প্রয়োগের জন্য।", + "-595149759": "আমরা একটি ভাল ট্রেডিং অভিজ্ঞতার জন্য দ্রুত কৌশল (QS) মডেল উন্নত করেছি।", + "-1270636118": "<0>নতুন কি:", + "-1173567255": "QS মডেলের মধ্যে সরাসরি কৌশল প্রয়োগের জন্য <0>Accumulators বিকল্পগুলির একীকরণ।", "-195234787": "<0>নোট: জটিল কৌশলগুলি আপলোড করতে কিছু সময় লাগতে পারে। Deriv Bot থেকে তাদের সংরক্ষণ করে পরবর্তী সময়ে দ্রুত অ্যাক্সেস নিশ্চিত হয়। যদি আপনার প্রশ্ন থাকে, আমাদের সাথে <1/> মাধ্যমে যোগাযোগ করুন।", "-206059150": "Google Blockly v10 আপডেট", "-523557619": "উন্নততর নিরাপত্তা।", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index a279b5bb3766..bdeb36877bf4 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -3346,7 +3346,7 @@ "-94894828": "Explora ahora", "-595149759": "Hemos mejorado el modal de estrategia rápida (QS) para una mejor experiencia de trading.", "-1270636118": "<0>¿Qué hay de nuevo?:", - "-1173567255": "<0>Integración de Opciones de Acumuladores para la aplicación directa de estrategias dentro del modal QS.", + "-1173567255": "<0>Integración de Opciones de Accumulators para la aplicación directa de estrategias dentro del modal QS.", "-195234787": "<0>Nota: Subir estrategias complejas puede tomar tiempo. Guardarlas desde Deriv Bot asegura un acceso más rápido después. Si tiene preguntas, contáctenos a través de <1/>.", "-206059150": "Actualización de Google Blockly v10", "-523557619": "Mejor seguridad.", diff --git a/packages/translations/src/translations/mn.json b/packages/translations/src/translations/mn.json index f2cd30758157..c9266dfb24d9 100644 --- a/packages/translations/src/translations/mn.json +++ b/packages/translations/src/translations/mn.json @@ -179,7 +179,7 @@ "176319758": "Макс. 30 хоногийн хугацаанд нийт хувьцаа", "176654019": "$100,000 - $250,000", "177099483": "Таны хаягийн баталгаажуулалт хүлээгдэж байгаа бөгөөд бид таны дансанд зарим хязгаарлалт тавьсан. Таны хаягийг баталгаажуулсны дараа хязгаарлалтыг хүчингүй болгоно.", - "177467242": "Аккумлятор, хувьцаа гэх мэт худалдааны сонголтуудаа тодорхойлно уу. Энэ блокыг зөвхөн аккумуляторын худалдааны төрлөөр ашиглах боломжтой. Хэрэв та өөр худалдааны төрлийг сонговол энэ блок Худалдааны сонголтуудын блокоор солигдох болно.", + "177467242": "Accumulator, stake гэх мэт арилжааны сонголтуудаа тодорхойлно уу. Энэ блокыг зөвхөн accumulator арилжааны төрөлд ашиглах боломжтой. Хэрэв та өөр арилжааны төрөл сонговол энэ блок нь Арилжааны сонголтуудын блокоор солигдох болно.", "179083332": "Огноо", "181346014": "Тэмдэглэл ", "181881956": "Гэрээний төрөл: {{ contract_type }}", @@ -229,7 +229,7 @@ "228521812": "Текстийн мөр хоосон эсэхийг шалгана. Boolean утгыг буцаана (үнэн эсвэл хуурамч).", "233500222": "- Өндөр: хамгийн өндөр үнэ", "235244966": "Trader's Hub төв рүү буцах", - "235583807": "SMA бол техникийн шинжилгээнд байнга ашиглагддаг үзүүлэлт юм. Энэ нь тодорхой хугацааны туршид зах зээлийн дундаж үнийг тооцоолдог бөгөөд ихэвчлэн зах зээлийн чиг хандлага чиглэлийг тодорхойлоход ашиглагддаг: дээш эсвэл доош. Жишээлбэл, хэрэв SMA дээшээ хөдөлж байгаа бол зах зээлийн чиг хандлага өссөн гэсэн үг юм. ", + "235583807": "SMA нь техникийн шинжилгээнд хамгийн их хэрэглэгддэг үзүүлэлтүүдийн нэг юм. Энэ нь тодорхой хугацаанд зах зээлийн дундаж үнийг тооцдог бөгөөд зах зээлийн чиглэл: дээш эсвэл доош болохыг тодорхойлоход ихэвчлэн ашигладаг. Жишээлбэл, хэрэв SMA дээшээ хөдөлж байвал зах зээлийн чиглэл дээшлэх гэж байгаа гэсэн үг юм. ", "236642001": "Тэмдэглэл", "238496287": "Хөшүүргийн арилжаа нь өндөр эрсдэлтэй тул алдагдал зогсоох зэрэг эрсдэлийн менежментийн онцлогийг ашиглах нь зүйтэй. Алдагдлыг зогсоох нь танд боломжийг олгодог", "242028165": "Гарах төлбөрөө эрэмбэлэхийн тулд бага хэмжээний төлбөр төлнө, энэ хураамжийг гарах дүнгээс хасах болно.", @@ -411,7 +411,7 @@ "415677940": "Хурдан гүйцэтгэл.", "417864079": "Хадгаламж хийсний дараа та валютыг солих боломжгүй болно.", "419485005": "Спот", - "419496000": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагданаMultipliers. Энэ блокыг зөвхөн multipliers-ийн арилжааны төрөлд ашиглах боломжтой.", + "419496000": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагдана. Энэ блокыг зөвхөн multipliers-ийн арилжааны төрөлд ашиглах боломжтой.", "420072489": "CFD арилжааны давтамж", "422055502": "-аас", "423682863": "Таны алдагдал тогтоосон хэмжээгээр хүрэх эсвэл түүнээс хэтэрсэн тохиолдолд таны худалдаа автоматаар хаагдах болно.", @@ -577,7 +577,7 @@ "582945649": "2 минут", "584028307": "Зөвшөөрөх", "585277790": "Зарим валютууд фиат онрампын дэмжлэг аваагүй байж магадгүй.", - "587577347": "Ашиг авах (аккумулятор)", + "587577347": "Take Profit (Accumulator-т)", "587577425": "Миний бүртгэлийг аюулгүй болгох", "587856857": "API-ийн талаар илүү ихийг мэдэхийг хүсч байна уу?", "588811360": "Бизнесийн өөрчлөлтөөс шалтгаалан таны улсын клиентын дансууд хаагдах болно. Таны хөрөнгийг {{date}} гэх хугацаанаас өмнө гаргана уу.", @@ -590,7 +590,7 @@ "595377017": "Мөнгийг тайлах", "596165833": "Таны төлбөрийг нэг ажлын өдөрт дотооддоо боловсруулна. Үүний дараа дебит/кредит картын хувьд ажлын 1-15 хоног, цахим түрийвчний хувьд ажлын 1-3 хоног зарцуулдаг. Хэрэв эдгээр хугацаанаас гадуур саатал гарвал шууд чатаар бидэнтэй холбоо барина уу.", "596748073": "Таны байрлалуудыг харах", - "597089493": "Энд та гэрээгээ дуусахаас өмнө зарахаар шийдэж болох юм. Энэ блокийн зөвхөн нэг хуулбарыг зөвшөөрнө.", + "597089493": "Энд та гэрээний хүчинтэй хугацаа дуусахаас өмнө худалдах эсэхээ шийдэх боломжтой. Энэ блокийн ганцхан хуулбарыг ашиглахыг зөвшөөрнө.", "597481571": "МЭДЭГДЭЛ", "597707115": "Худалдааны туршлагынхаа талаар бидэнд хэлээрэй.", "599469202": "{{secondPast}}секундын өмнө", @@ -754,7 +754,7 @@ "743623600": "Лавлагаа", "743908778": "Гэрээний төрөл", "744110277": "Боллингер хамтлагуудын массив (BBA)", - "745656178": "Гэрээгээ зах зээлийн үнээр зарахын тулд энэ блокыг ашиглана уу.", + "745656178": "Гэрээгээ зах зээлийн үнээр зарахад энэ блокыг ашиглана.", "745674059": "Сонгосон сонголтын дагуу текстийн өгөгдсөн мөрөнөөс тодорхой тэмдэгт буцаана. ", "746112978": "Таны компьютерийг шинэчлэхэд хэдхэн секунд зарцуулж магадгүй юм", "747054281": "Call сонголтын хувьд, та эцсийн үнэ strike price-аас өндөр байвал төлбөр хүлээн авна.", @@ -1157,7 +1157,7 @@ "1113227831": "Тийм ээ, чи чадна. Гэсэн хэдий ч, таны дансанд нээлттэй албан тушаалын хамгийн их тоо, нээлттэй албан тушаалууд дээр хамгийн их агрегат төлбөр зэрэг хязгаар байдаг. Тиймээс олон албан тушаалыг нээхдээ эдгээр хязгаарыг санаж байгаарай. Та эдгээр хязгаарлалтын талаар дэлгэрэнгүй мэдээллийг Тохиргоо> Дансны хязгаардээрээс олж авах боломжтой.", "1113292761": "8MB-ээс бага", "1114679006": "Та энгийн стратеги ашиглан өөрийн ботыг амжилттай бүтээсэн.", - "1117281935": "Борлуулах нөхцөл (заавал биш)", + "1117281935": "Худалдах нөхцөл (заавал биш)", "1117863275": "Аюулгүй байдал ба хамгаалалт", "1118294625": "Та {{exclusion_end}}хүртэл манай вэбсайт дээр арилжаалахаас өөрийгөө хасахаар сонгосон. Хэрэв та өөрийгөө хасах хугацааныхаа дараа худалдаа, хадгаламж байршуулах боломжгүй бол шууд чатаар дамжуулан бидэнтэй холбоо барина уу.", "1119887091": "Баталгаажуулалт", @@ -1486,7 +1486,7 @@ "1417914636": "Нэвтрэх ID", "1418115525": "Энэ блок нь өгөгдсөн нөхцөл үнэн бол зааврыг давтана.", "1421046084": "Бүртгэлээ тохируулах", - "1421749665": "Энгийн хөдөлгөөнт дундаж (SMA)", + "1421749665": "Хэвийн хөдөлгөөний дундаж (SMA)", "1422060302": "Энэ блок нь жагсаалтын тодорхой зүйлийг өөр өгөгдсөн зүйлээр орлуулдаг. Энэ нь мөн жагсаалтын шинэ зүйлийг тодорхой байрлалд оруулах боломжтой.", "1422129582": "Бүх дэлгэрэнгүй мэдээлэл тодорхой байх ёстой - бүдэг зүйл биш", "1423082412": "Сүүлийн цифр", @@ -1552,7 +1552,7 @@ "1471741480": "Хүнд алдаа", "1473369747": "Зөвхөн синтетик", "1475513172": "Хэмжээ", - "1476301886": "SMA-тэй адилхан энэ блок нь танд өгөгдсөн хугацааны бүх утгуудын жагсаалтыг агуулсан бүх SMA мөрийг өгдөг.", + "1476301886": "SMA-ийн адилаар, энэ блок нь тодорхой хугацаандах бүх утгуудын жагсаалтыг агуулсан SMA мөрийг танд өгнө.", "1478030986": "Худалдаа, зарлагын гүйлгээнд зориулж API жетонуудыг үүсгэх эсвэл устгах", "1480915523": "Алгасах", "1484336612": "Энэ блок нь давталтыг дуусгавар болгох эсвэл үргэлжлүүлэхэд ашиглагддаг бөгөөд давталтын блок дотор хаана ч байрлуулж болно.", @@ -1731,7 +1731,7 @@ "1681765749": "Мартингейл томъёо 2", "1682409128": "Гарчиггүй стратеги", "1682636566": "И-мэйлийг дахин илгээх", - "1683383299": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагддаг. Энэ блокыг зөвхөн аккумуляторын худалдааны төрлөөр ашиглах боломжтой.", + "1683383299": "Таны ашиг энэ хэмжээнээс илүү буюу түүнтэй тэнцэх үед таны гэрээ автоматаар хаагдана. Энэ блокыг зөвхөн accumulator-ийн арилжааны төрөлд ашиглах боломжтой.", "1683963454": "Таны гэрээг {{timestamp}}дээр {{date}} дээр дараагийн боломжтой хөрөнгийн үнээр автоматаар хаах болно.", "1684419981": "гэж юу вэ?", "1686800117": "{{error_msg}}", @@ -1810,7 +1810,7 @@ "1745523557": "- Дөрвөлжин үндэс", "1746051371": "Апп-ыг татаж авах", "1746273643": "Хөдөлгөөнт дундаж нэгдэлтийн зөрүү", - "1747501260": "Борлуулах нөхцөл", + "1747501260": "Худалдах нөхцөл", "1747652849": "Хэрэв та take profit функцийг сонговол гэрээний хугацаанд ашиг олох ашгийн хэмжээ хүрэх эсвэл түүнээс хэтэрсэн үед таны худалдаа хамгийн ойрын боломжтой хөрөнгийн үнээр автоматаар хаах болно. Таны ашиг хаалтын үед зах зээлийн үнээс хамаарч оруулсан хэмжээнээс илүү байж болох юм. Та ашиглалтын ашгийн хэмжээг хугацаа дуусахаас 15 секундын өмнө өөрчилж болно.", "1747674345": "Бутархай тоонуудын аравтын тусгаарлагч болгон `.` ашиглана уу.", "1747682136": "Гэрээг цуцалсан.", @@ -1855,7 +1855,7 @@ "1783740125": "Селфигээ байршуулна уу", "1785298924": "Д'Алемберт томъёо 1", "1786644593": "Дэмжигдсэн форматууд: Зөвхөн JPEG, JPG, PNG, PDF, GIF", - "1787492950": "График таб дээрх үзүүлэлтүүд нь зөвхөн үзүүлэлтийн зорилготой бөгөөд {{platform_name_dbot}} ажлын талбар дээрх үзүүлэлтүүдээс бага зэрэг өөр байж болно.", + "1787492950": "График таб дээрх үзүүлэлтүүд нь зөвхөн үзүүлэнгийн зорилготой бөгөөд {{platform_name_dbot}} ажлын талбар дээрх үзүүлэлтүүдээс бага зэрэг өөр байж болно.", "1788515547": "<0/>Санхүүгийн үйлчилгээ эрхэлсэн Арбитрын албанд гомдол ирүүлэх талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл тэдний удирдамжийг <1>үзнэ үү.", "1788966083": "01-07-1999", "1789273878": "Нэг цэг тутам дахь payout", @@ -1946,7 +1946,7 @@ "1871196637": "Сүүлийн худалдааны үр дүн сонгон шалгаруулалттай таарч байвал үнэн", "1871377550": "Deriv Bot дээр урьдчилан бүтээсэн арилжааны ботуудыг санал болгох уу?", "1871664426": "Тайлбар", - "1874481756": "Хүссэн тодорхой гэрээгээ худалдан авахын тулд энэ блокыг ашиглана уу. Та худалдан авалтын нөхцөлөө тодорхойлохын тулд нөхцөлтэй блокуудтай хамт олон Худалдан авалтын блокуудыг нэмж болно. Энэ блокыг зөвхөн Худалдан авах нөхцлийн блок дотор ашиглах боломжтой.", + "1874481756": "Энэ блокыг та хүссэн тодорхой гэрээгээ худалдан авахад ашиглана. Та хэд хэдэн Худалдан авах блокийг нөхцөлт блоктой хослуулан худалдан авалтын нөхцөлөө тодорхойлж болно. Энэ блокыг зөвхөн Худалдан авах нөхцөлт блок дотор ашиглаж болно.", "1874737957": "Үржүүлэгчийг арилжаалахын тулд эхлээд Deriv Apps данс аваарай.", "1874756442": "БВИ", "1875090343": "Огнооны хүрээг сонгоно уу", @@ -3335,7 +3335,7 @@ "-939764287": "График", "-1566369363": "Томхотгох", "-1291088318": "Худалдан авах нөхцөл", - "-112876186": "Шинжилгээ", + "-112876186": "Анализ хийх", "-1769584466": "Статистик", "-1133736197": "Хэрэглээ", "-1682372359": "Текст", @@ -4079,7 +4079,7 @@ "-1033917049": "Энэ блок нь сонгосон худалдааны төрлийн худалдан авалтын үнийг буцаана.", "-1863737684": "2. Худалдан авах нөхцөл", "-228133740": "Гэрээний төрөл, худалдан авах нөхцөлийг зааж өгнө үү.", - "-1098726473": "Энэ блок заавал байх ёстой. Энэ блокийн зөвхөн нэг хуулбарыг зөвшөөрнө. Та худалдан авалтын нөхцөлөө тодорхойлохын тулд Худалдан авах блокыг (доороос үзнэ үү), мөн нөхцөлт блокуудыг энд байрлуулж болно.", + "-1098726473": "Энэ блок нь зайлшгүй байх шаардлагатай. Энэ блокийн ганцхан хуулбарыг ашиглахыг зөвшөөрнө. Та энд Худалдан авалтын блок (доороос харна уу) болон худалдан авалтын нөхцөлүүдийг тодорхойлоход шаардлагатай нөхцөлт блокуудыг байрлуулж болно.", "-1777988407": "Төлбөр {{ contract_type }}", "-511116341": "Энэ блок нь сонгосон худалдааны төрөлд боломжит төлбөрийг буцаана", "-1943211857": "Боломжит төлбөр", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 8b660759e4a0..37633bf74753 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -3346,7 +3346,7 @@ "-94894828": "Eksploruj teraz", "-595149759": "Udoskonaliliśmy moduł szybkiej strategii (QS), aby zapewnić lepsze doświadczenia podczas handlowania.", "-1270636118": "<0>Co nowego:", - "-1173567255": "<0>Integracja Opcji Akumulatorów dla bezpośredniego zastosowania strategii w modułach QS.", + "-1173567255": "<0>Integracja Opcji Accumulators dla bezpośredniego zastosowania strategii w modułach QS.", "-195234787": "<0>Uwaga: Przesyłanie skomplikowanych strategii może zająć trochę czasu. Zapisanie ich z Deriv Bot zapewnia szybszy dostęp później. Jeśli masz pytania, skontaktuj się z nami przez <1/>.", "-206059150": "Aktualizacja Google Blockly v10", "-523557619": "Lepsze zabezpieczenia.", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index d484fbf0a2be..1d59ab08108a 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -3346,7 +3346,7 @@ "-94894828": "Explorar agora", "-595149759": "Melhorámos o modal da estratégia rápida (QS) para uma melhor experiência de negociação.", "-1270636118": "<0>Novidades:", - "-1173567255": "<0>Integração de Opções de Accumuladores para aplicação direta da estratégia dentro do modal QS.", + "-1173567255": "<0>Integração de Opções de Accumulators para aplicação direta da estratégia dentro do modal QS.", "-195234787": "<0>Nota: O carregamento de estratégias complexas pode demorar algum tempo. Guardá-las na Deriv Bot garante um acesso mais rápido posteriormente. Se tiver dúvidas, contacte-nos via <1/>.", "-206059150": "Atualização do Google Blockly v10", "-523557619": "Maior segurança.", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 03fa5ac6ee81..7639b127f152 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -3346,7 +3346,7 @@ "-94894828": "Исследуйте сейчас", "-595149759": "Мы улучшили модальное окно быстрой стратегии (QS) для более удобного торгового опыта.", "-1270636118": "<0>Что нового:", - "-1173567255": "<0>Интеграция опций аккумулаторов для прямого применения стратегии в модальном окне QS.", + "-1173567255": "<0>Интеграция опций Accumulators для прямого применения стратегии в модальном окне QS.", "-195234787": "<0>Примечание: Загрузка сложных стратегий может занять некоторое время. Сохранение их из Deriv Bot обеспечивает более быстрый доступ позже. Если у вас есть вопросы, свяжитесь с нами через <1/>.", "-206059150": "Обновление Google Blockly v10", "-523557619": "Лучшая безопасность.", diff --git a/packages/translations/src/translations/uz.json b/packages/translations/src/translations/uz.json index 32e3b01b13da..0d35b7667242 100644 --- a/packages/translations/src/translations/uz.json +++ b/packages/translations/src/translations/uz.json @@ -3346,7 +3346,7 @@ "-94894828": "Hozir o'rganing", "-595149759": "Biz tez strategiya (QS) modalini yaxshiladik, bu esa savdo tajribangizni yaxshilaydi.", "-1270636118": "<0>Yangi narsalar:", - "-1173567255": "<0>Accumulations Options ni integratsiyalash QS modalida bevosita strategiya qo'llash uchun.", + "-1173567255": "<0>Accumulators Options ni integratsiyalash QS modalida bevosita strategiya qo'llash uchun.", "-195234787": "<0>Diqqat: Murakkab strategiyalarni yuklash biroz vaqt olishi mumkin. Ularni Deriv Bot’dan saqlash kelajakda tezroq kirish imkonini beradi. Agar sizda savollaringiz bo'lsa, biz bilan <1/> orqali bog'laning.", "-206059150": "Google Blockly v10 yangilanishi", "-523557619": "Yaxshilangan xavfsizlik.", From 1046d22679841ac32cc5af56bd8c6710d5e3c018 Mon Sep 17 00:00:00 2001 From: vinu-deriv <100689171+vinu-deriv@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:13:16 +0400 Subject: [PATCH 6/7] [DTRA]fix dtrader v2 events for open action and guide action (#17507) * fix: fix dtrader v2 events for open action and guide action * fix: simplified the logic for app.tsx open page tracking event * fix: fixed the import for reports --- .../src/AppV2/Components/Guide/guide.tsx | 20 +++++++++++++------ packages/trader/src/AppV2/app.tsx | 6 ++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/trader/src/AppV2/Components/Guide/guide.tsx b/packages/trader/src/AppV2/Components/Guide/guide.tsx index 4a66ab7bd7eb..9a756cf52399 100644 --- a/packages/trader/src/AppV2/Components/Guide/guide.tsx +++ b/packages/trader/src/AppV2/Components/Guide/guide.tsx @@ -1,14 +1,18 @@ import React from 'react'; -import { Button, Text } from '@deriv-com/quill-ui'; + import { LabelPairedPresentationScreenSmRegularIcon } from '@deriv/quill-icons'; -import { Localize } from '@deriv/translations'; import { observer, useStore } from '@deriv/stores'; -import { useTraderStore } from 'Stores/useTraderStores'; +import { Localize } from '@deriv/translations'; +import { Button, Text } from '@deriv-com/quill-ui'; + +import useContractsForCompany from 'AppV2/Hooks/useContractsForCompany'; import { AVAILABLE_CONTRACTS, CONTRACT_LIST } from 'AppV2/Utils/trade-types-utils'; +import { useTraderStore } from 'Stores/useTraderStores'; + +import { sendOpenGuideToAnalytics } from '../../../Analytics'; + import GuideDefinitionModal from './guide-definition-modal'; import GuideDescriptionModal from './guide-description-modal'; -import useContractsForCompany from 'AppV2/Hooks/useContractsForCompany'; -import { sendOpenGuideToAnalytics } from '../../../Analytics'; type TGuide = { has_label?: boolean; @@ -81,7 +85,11 @@ const Guide = observer(({ has_label, show_guide_for_selected_contract }: TGuide) contract_list={ordered_contract_list} is_dark_mode_on={is_dark_mode_on} is_open={is_description_opened} - onChipSelect={onChipSelect} + onChipSelect={(id: string) => { + const selected_trade_type = ordered_contract_list.find(item => item.id === id); + sendOpenGuideToAnalytics(selected_trade_type?.for?.[0] ?? '', 'trade_type_page'); + onChipSelect(id); + }} onClose={onClose} onTermClick={setSelectedTerm} selected_contract_type={selected_contract_type} diff --git a/packages/trader/src/AppV2/app.tsx b/packages/trader/src/AppV2/app.tsx index 35c5eb73c352..87d0c8e23d03 100644 --- a/packages/trader/src/AppV2/app.tsx +++ b/packages/trader/src/AppV2/app.tsx @@ -2,6 +2,7 @@ import React from 'react'; import type { TWebSocket } from 'Types'; import initStore from 'App/init-store'; import type { TCoreStores } from '@deriv/stores/types'; +import { routes } from '@deriv/shared'; import ModulesProvider from 'Stores/Providers/modules-providers'; import TraderProviders from '../trader-providers'; import { ReportsStoreProvider } from '../../../reports/src/Stores/useReportsStores'; @@ -41,10 +42,11 @@ const App = ({ passthrough }: Apptypes) => { }, []); React.useEffect(() => { - if (!window.location.pathname.startsWith('/contract')) { + if (window.location.pathname === routes.trade) { sendDtraderV2OpenToAnalytics(); } - }, []); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [window.location.pathname]); return ( From fc7194140581a5c7a31c641e6f1c8e561bb9c6b0 Mon Sep 17 00:00:00 2001 From: lubega-deriv <142860499+lubega-deriv@users.noreply.github.com> Date: Thu, 21 Nov 2024 14:29:28 +0800 Subject: [PATCH 7/7] fix: transfer market type api value (#17591) --- .../cashier/helpers/__tests__/helpers.spec.ts | 20 +------------------ .../src/features/cashier/helpers/helpers.ts | 8 -------- ...TransactionsCompletedRowAccountDetails.tsx | 9 +++------ ...actionsCompletedRowAccountDetails.spec.tsx | 10 ---------- ...ionsCompletedRowTransferAccountDetails.tsx | 2 +- .../useExtendedTransferAccountProperties.ts | 4 ++-- .../hooks/useSortedTransferAccounts.ts | 5 ++--- 7 files changed, 9 insertions(+), 49 deletions(-) diff --git a/packages/wallets/src/features/cashier/helpers/__tests__/helpers.spec.ts b/packages/wallets/src/features/cashier/helpers/__tests__/helpers.spec.ts index e48c782ce541..88c0789ae3c6 100644 --- a/packages/wallets/src/features/cashier/helpers/__tests__/helpers.spec.ts +++ b/packages/wallets/src/features/cashier/helpers/__tests__/helpers.spec.ts @@ -1,25 +1,7 @@ import { LandingCompanyDetails, MT5MarketTypeDetails, PlatformDetails } from '../../constants'; -import { getAccountName, getLandingCompanyNameOfMT5Account, getMarketType } from '../helpers'; +import { getAccountName, getLandingCompanyNameOfMT5Account } from '../helpers'; describe('Cashier Helpers', () => { - describe('getMarketType', () => { - it('returns correct market type for financial', () => { - expect(getMarketType('financial_svg')).toBe(MT5MarketTypeDetails.financial.name); - }); - - it('returns correct market type for synthetic', () => { - expect(getMarketType('synthetic_svg')).toBe(MT5MarketTypeDetails.synthetic.name); - }); - - it('returns correct market type for all', () => { - expect(getMarketType('all_svg')).toBe(MT5MarketTypeDetails.all.name); - }); - - it('returns undefined for unknown market type', () => { - expect(getMarketType('unknown_svg')).toBeUndefined(); - }); - }); - describe('getLandingCompanyNameOfMT5Account', () => { it('returns correct landing company name for BVI', () => { expect(getLandingCompanyNameOfMT5Account('financial_bvi')).toBe(LandingCompanyDetails.bvi.name); diff --git a/packages/wallets/src/features/cashier/helpers/helpers.ts b/packages/wallets/src/features/cashier/helpers/helpers.ts index aafd1a158872..1939025add3d 100644 --- a/packages/wallets/src/features/cashier/helpers/helpers.ts +++ b/packages/wallets/src/features/cashier/helpers/helpers.ts @@ -12,14 +12,6 @@ type TGetAccountNameProps = { product?: THooks.AvailableMT5Accounts['product'] | 'stp'; }; -//TODO: remove this function when market_type will be added to transfer_between_accounts response in API -export const getMarketType = (mt5Group?: string) => { - if (mt5Group?.includes(MT5MarketTypeDetails.financial.name)) return MT5MarketTypeDetails.financial.name; - if (mt5Group?.includes(MT5MarketTypeDetails.synthetic.name)) return MT5MarketTypeDetails.synthetic.name; - if (mt5Group?.includes(MT5MarketTypeDetails.all.name)) return MT5MarketTypeDetails.all.name; - return undefined; -}; - //TODO: remove this function when landing_company_name will be added to transfer_between_accounts response in API for mt5 accounts export const getLandingCompanyNameOfMT5Account = (mt5Group?: string) => { if (mt5Group?.includes(LandingCompanyDetails.bvi.name)) return LandingCompanyDetails.bvi.name; diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/TransactionsCompletedRowAccountDetails.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/TransactionsCompletedRowAccountDetails.tsx index 31c1d9cdccbe..38bb0691f872 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/TransactionsCompletedRowAccountDetails.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/TransactionsCompletedRowAccountDetails.tsx @@ -3,8 +3,6 @@ import { Localize } from '@deriv-com/translations'; import { Text, useDevice } from '@deriv-com/ui'; import { WalletCurrencyCard, WalletMarketCurrencyIcon } from '../../../../../../../../components'; import { THooks, TPlatforms } from '../../../../../../../../types'; -import { MARKET_TYPE } from '../../../../../../../cfd/constants'; -import { getMarketType } from '../../../../../../helpers'; import './TransactionsCompletedRowAccountDetails.scss'; type TProps = { @@ -15,7 +13,7 @@ type TProps = { displayActionType: string; isDemo: boolean; isInterWallet?: boolean; - mt5Group?: string; + marketType?: string; product?: THooks.AvailableMT5Accounts['product']; transactionID?: number; }; @@ -28,12 +26,11 @@ const TransactionsCompletedRowAccountDetails: React.FC = ({ displayActionType, isDemo, isInterWallet = false, - mt5Group, + marketType, product, transactionID, }) => { const { isDesktop } = useDevice(); - const marketType = getMarketType(mt5Group); return (
@@ -48,7 +45,7 @@ const TransactionsCompletedRowAccountDetails: React.FC = ({ diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/__tests__/TransactionsCompletedRowAccountDetails.spec.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/__tests__/TransactionsCompletedRowAccountDetails.spec.tsx index 7e8480ec3842..86b63f935622 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/__tests__/TransactionsCompletedRowAccountDetails.spec.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowAccountDetails/__tests__/TransactionsCompletedRowAccountDetails.spec.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { getMarketType } from '../../../../../../../helpers'; import TransactionsCompletedRowAccountDetails from '../TransactionsCompletedRowAccountDetails'; jest.mock('../../../../../../../helpers', () => ({ @@ -47,13 +46,4 @@ describe('TransactionsCompletedRowAccountDetails', () => { expect(screen.queryByTestId('dt_wallet_list_card_badge')).not.toBeInTheDocument(); }); - - it('calls getMarketType with correct mt5 group', () => { - const mt5Props = { - ...defaultProps, - }; - render(); - - expect(getMarketType).toHaveBeenCalledWith('mocked mt5 group'); - }); }); diff --git a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowTransferAccountDetails/TransactionsCompletedRowTransferAccountDetails.tsx b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowTransferAccountDetails/TransactionsCompletedRowTransferAccountDetails.tsx index d613bcd73652..13bb23d4b6b6 100644 --- a/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowTransferAccountDetails/TransactionsCompletedRowTransferAccountDetails.tsx +++ b/packages/wallets/src/features/cashier/modules/Transactions/components/TransactionsCompletedRow/components/TransactionsCompletedRowTransferAccountDetails/TransactionsCompletedRowTransferAccountDetails.tsx @@ -49,7 +49,7 @@ const TransactionsCompletedRowTransferAccountDetails: React.FC = ({ displayActionType={displayActionType} isDemo={Boolean(transferAccount.is_virtual)} isInterWallet={transferAccount === wallet} - mt5Group={transferAccount === mt5Account ? mt5Account.group : undefined} + marketType={transferAccount === mt5Account ? mt5Account.market_type : undefined} product={mt5Account?.product} transactionID={transactionID} /> diff --git a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useExtendedTransferAccountProperties.ts b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useExtendedTransferAccountProperties.ts index c4cf666f8c2b..339ade565f45 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useExtendedTransferAccountProperties.ts +++ b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useExtendedTransferAccountProperties.ts @@ -3,7 +3,7 @@ import { useActiveWalletAccount, useCurrencyConfig } from '@deriv/api-v2'; import { displayMoney } from '@deriv/api-v2/src/utils'; import { THooks, TWalletLandingCompanyName } from '../../../../../types'; import { PlatformDetails } from '../../../constants'; -import { getAccountName, getLandingCompanyNameOfMT5Account, getMarketType } from '../../../helpers'; +import { getAccountName, getLandingCompanyNameOfMT5Account } from '../../../helpers'; /** A custom hook that enhances the transfer accounts response by adding additional properties for convenient UI rendering. */ const useExtendedTransferAccountProperties = (accounts?: THooks.TransferAccount[]) => { @@ -21,7 +21,7 @@ const useExtendedTransferAccountProperties = (accounts?: THooks.TransferAccount[ accountType: account.account_type, displayCurrencyCode: currencyConfig?.display_code, landingCompanyName: activeWallet?.landing_company_name as TWalletLandingCompanyName, - mt5MarketType: getMarketType(account.mt5_group), + mt5MarketType: account.market_type, product: account.product, }); const displayBalance = displayMoney(Number(account.balance), currencyConfig?.display_code, { diff --git a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useSortedTransferAccounts.ts b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useSortedTransferAccounts.ts index 0c465f20e762..f54f995c1580 100644 --- a/packages/wallets/src/features/cashier/modules/Transfer/hooks/useSortedTransferAccounts.ts +++ b/packages/wallets/src/features/cashier/modules/Transfer/hooks/useSortedTransferAccounts.ts @@ -1,6 +1,5 @@ import { useMemo } from 'react'; import { MT5MarketTypeDetails, PlatformDetails } from '../../../constants'; -import { getMarketType } from '../../../helpers'; import { TAccount, TAccountsList } from '../types'; const useSortedTransferAccounts = (accounts: TAccountsList) => { @@ -69,8 +68,8 @@ const sortTradingAccounts = (a: TAccount, b: TAccount) => { // For mt5 accounts, compare market types if (typeA === PlatformDetails.mt5.name) { - const marketTypeA = getMarketType(a.mt5_group); - const marketTypeB = getMarketType(b.mt5_group); + const marketTypeA = a.market_type; + const marketTypeB = b.market_type; if ( marketTypeOrder[marketTypeA ?? MT5MarketTypeDetails.all.name] !==