From 2136d784508e6416bf3d9150a60bdb60735e8813 Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Wed, 25 Sep 2024 11:06:12 +0200 Subject: [PATCH 01/10] chore: clean up --- src/__mocks__/react-native-localize.ts | 1 - src/components/General/CardFlip/CardFlip.tsx | 1 - 2 files changed, 2 deletions(-) diff --git a/src/__mocks__/react-native-localize.ts b/src/__mocks__/react-native-localize.ts index 0baa533db..2871498df 100644 --- a/src/__mocks__/react-native-localize.ts +++ b/src/__mocks__/react-native-localize.ts @@ -1,4 +1,3 @@ -/* eslint-disable spellcheck/spell-checker */ const getLocales = () => [ // you can choose / add the locales you want { countryCode: 'US', languageTag: 'en-US', languageCode: 'en', isRTL: false }, diff --git a/src/components/General/CardFlip/CardFlip.tsx b/src/components/General/CardFlip/CardFlip.tsx index e3116af6f..8fa70102f 100644 --- a/src/components/General/CardFlip/CardFlip.tsx +++ b/src/components/General/CardFlip/CardFlip.tsx @@ -1,4 +1,3 @@ -/* eslint-disable-next-line spellcheck/spell-checker */ // https://github.com/lhandel/react-native-card-flip import React, { Component } from 'react'; From 82223c1e2a129e39ca9aa0207722b9d5e41eb659 Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Wed, 25 Sep 2024 11:07:40 +0200 Subject: [PATCH 02/10] chore: refactor ApiService for more clear methods --- src/common/constants/api.ts | 74 +++++------- src/common/constants/config.ts | 16 +-- src/common/constants/index.ts | 3 +- src/common/libs/payload/object.ts | 42 +++---- .../Advanced/AdvancedSettingsView.tsx | 15 ++- src/services/ApiService.ts | 53 +++----- src/services/BackendService.ts | 113 ++++++++++-------- src/services/__tests__/ApiService.test.ts | 102 ++++++++-------- 8 files changed, 210 insertions(+), 208 deletions(-) diff --git a/src/common/constants/api.ts b/src/common/constants/api.ts index fbcd8a359..6be8a9d88 100644 --- a/src/common/constants/api.ts +++ b/src/common/constants/api.ts @@ -1,45 +1,37 @@ /* eslint-disable */ /** - * API Config + * Endpoints */ +export const ApiUrl = 'https://xaman.app/api'; -export default { - // The API URL we're connecting to - apiUrl: 'https://xaman.app/api', - - // Map short names to the actual endpoints, so that we can - // use them like so: AppAPI.ENDPOINT_NAME.METHOD() - // NOTE: They should start with a / - - endpoints: new Map([ - ['ping', '/v1/app/ping'], - ['addUser', '/v1/app/add-user'], - ['activateDevice', '/v1/app/activate-device'], - ['addDevice', '/v1/app/add-device'], - ['updateDevice', '/v1/app/update-device'], - ['refreshToken', '/v1/app/refresh-token'], - ['payload', '/v1/app/payload/{uuid}'], - ['pendingPayloads', '/v1/app/pending-payloads'], - ['curatedIOUs', '/v1/app/curated-ious'], - ['addressInfo', '/v1/app/account-info'], - ['lookup', '/v1/app/handle-lookup'], - ['accountAdvisory', '/v1/app/account-advisory'], - ['liquidityBoundaries', '/v1/app/liquidity-boundaries/{issuer}/{currency}'], - ['translation', '/v1/app/translation/{uuid}'], - ['xAppsStore', '/v1/app/xapp/store/v1/{category}'], - ['xAppsShortList', '/v1/app/xapp/shortlist'], - ['xAppLaunch', '/v1/app/xapp/launch/{xAppId}'], - ['xAppInfo', '/v1/app/xapp/info/{xAppId}'], - ['currencies', '/v1/app/currencies/{locale}'], - ['rates', '/v1/app/rates/{currency}'], - ['auditTrail', '/v1/app/audit-trail/{destination}'], - ['addAccount', '/v1/app/add-account'], - ['addTransaction', '/v1/app/add-tx'], - ['thirdPartyApps', '/v1/app/third-party-permissions'], - ['thirdPartyApp', '/v1/app/third-party-permissions/{appId}'], - ['nftDetails', '/v1/app/nft-details'], - ['nftOffered', '/v1/app/nft-offered/{account}'], - ['networkRails', '/v1/app/rails'], - ['verifyPurchase', '/v1/app/verify-purchase'], - ]), -}; +export enum Endpoints { + Ping = '/v1/app/ping', + AddUser = '/v1/app/add-user', + ActivateDevice = '/v1/app/activate-device', + AddDevice = '/v1/app/add-device', + UpdateDevice = '/v1/app/update-device', + RefreshToken = '/v1/app/refresh-token', + Payload = '/v1/app/payload/{uuid}', + PendingPayloads = '/v1/app/pending-payloads', + CuratedIOUs = '/v1/app/curated-ious', + AddressInfo = '/v1/app/account-info', + Lookup = '/v1/app/handle-lookup', + AccountAdvisory = '/v1/app/account-advisory', + LiquidityBoundaries = '/v1/app/liquidity-boundaries/{issuer}/{currency}', + Translation = '/v1/app/translation/{uuid}', + XAppsStore = '/v1/app/xapp/store/v1/{category}', + XAppsShortList = '/v1/app/xapp/shortlist', + XAppLaunch = '/v1/app/xapp/launch/{xAppId}', + XAppInfo = '/v1/app/xapp/info/{xAppId}', + Currencies = '/v1/app/currencies/{locale}', + Rates = '/v1/app/rates/{currency}', + AuditTrail = '/v1/app/audit-trail/{destination}', + AddAccount = '/v1/app/add-account', + AddTransaction = '/v1/app/add-tx', + ThirdPartyApps = '/v1/app/third-party-permissions', + ThirdPartyApp = '/v1/app/third-party-permissions/{appId}', + NftDetails = '/v1/app/nft-details', + NftOffered = '/v1/app/nft-offered/{account}', + NetworkRails = '/v1/app/rails', + VerifyPurchase = '/v1/app/verify-purchase', +} diff --git a/src/common/constants/config.ts b/src/common/constants/config.ts index 9c66b86f3..1e136d21a 100644 --- a/src/common/constants/config.ts +++ b/src/common/constants/config.ts @@ -3,22 +3,22 @@ */ export default { - // App Details and URL's appName: 'Xaman', - supportEmail: 'support@xumm.dev', - termOfUseURL: 'https://xumm.app/app/webviews/tos-privacy/', - creditsURL: 'https://xumm.app/app/webviews/credits/', - changeLogURL: 'https://xumm.app/app/webviews/update/en/?update=', - explorerProxy: 'https://xumm.app/explorer', - hooksExplainerURL: 'https://xumm.app/app/webviews/hooks/', + supportEmail: 'support@xaman.app', + termOfUseURL: 'https://xaman.app/app/webviews/tos-privacy/', + creditsURL: 'https://xaman.app/app/webviews/credits/', + changeLogURL: 'https://xaman.app/app/webviews/update/en/?update=', + explorerProxy: 'https://xaman.app/explorer', + hooksExplainerURL: 'https://xaman.app/app/webviews/hooks/', // persist storage config + // NOTE: this should never be changed storage: { keyName: 'xumm-realm-key', path: 'xumm.realm', }, - // list of static xapp identifiers + // list of static xApp identifiers xappIdentifiers: { support: 'xumm.support', nftInfo: 'xumm.nft-info', diff --git a/src/common/constants/index.ts b/src/common/constants/index.ts index 2ba5ad9a4..07164d830 100644 --- a/src/common/constants/index.ts +++ b/src/common/constants/index.ts @@ -4,10 +4,9 @@ import AppConfig from './config'; import AppScreens from './screens'; -import ApiConfig from './api'; import NetworkConfig from './network'; import Amendments from './amendments'; import ErrorMessages from './errors'; -export { AppConfig, AppScreens, ApiConfig, NetworkConfig, Amendments, ErrorMessages }; +export { AppConfig, AppScreens, NetworkConfig, Amendments, ErrorMessages }; diff --git a/src/common/libs/payload/object.ts b/src/common/libs/payload/object.ts index ff1f7803f..668498ba0 100644 --- a/src/common/libs/payload/object.ts +++ b/src/common/libs/payload/object.ts @@ -30,6 +30,7 @@ import { DigestSerializeWithSHA1 } from './digest'; // errors import { PayloadErrors } from './errors'; +import { Endpoints } from '@common/constants/api'; // create logger const logger = LoggerService.createLogger('Payload'); @@ -172,10 +173,9 @@ export class Payload { */ fetch = (uuid: string): Promise => { return new Promise((resolve, reject) => { - ApiService.payload - .get({ uuid, from: this.getOrigin() }, undefined, { - 'X-Xaman-Digest': DigestSerializeWithSHA1.DIGEST_HASH_ALGO, - }) + ApiService.fetch(Endpoints.Payload, 'GET', { uuid, from: this.getOrigin() }, undefined, { + 'X-Xaman-Digest': DigestSerializeWithSHA1.DIGEST_HASH_ALGO, + }) .then(async (response: PayloadType) => { // get verification status const verified = await this.verify(response.payload); @@ -233,9 +233,11 @@ export class Payload { origintype: this.getOrigin(), }); - ApiService.payload.patch({ uuid: this.getPayloadUUID() }, patch).catch((error: ApiError) => { - logger.error(`Patch ${this.getPayloadUUID()}`, error); - }); + ApiService.fetch(Endpoints.Payload, 'PATCH', { uuid: this.getPayloadUUID() }, patch).catch( + (error: ApiError) => { + logger.error(`Patch ${this.getPayloadUUID()}`, error); + }, + ); return true; } @@ -252,19 +254,19 @@ export class Payload { return; } - ApiService.payload - .patch( - { uuid: this.getPayloadUUID() }, - { - reject: true, - reject_initiator: initiator, - reject_reason: reason, - origintype: this.getOrigin(), - }, - ) - .catch((error: ApiError) => { - logger.error(`Patch reject ${this.getPayloadUUID()}`, error); - }); + ApiService.fetch( + Endpoints.Payload, + 'PATCH', + { uuid: this.getPayloadUUID() }, + { + reject: true, + reject_initiator: initiator, + reject_reason: reason, + origintype: this.getOrigin(), + }, + ).catch((error: ApiError) => { + logger.error(`Patch reject ${this.getPayloadUUID()}`, error); + }); }; /** diff --git a/src/screens/Settings/Advanced/AdvancedSettingsView.tsx b/src/screens/Settings/Advanced/AdvancedSettingsView.tsx index 71aee46ba..12691b820 100644 --- a/src/screens/Settings/Advanced/AdvancedSettingsView.tsx +++ b/src/screens/Settings/Advanced/AdvancedSettingsView.tsx @@ -5,7 +5,6 @@ import React, { Component } from 'react'; import { View, Text, ScrollView, Alert, Platform } from 'react-native'; -import ApiService from '@services/ApiService'; import PushNotificationsService from '@services/PushNotificationsService'; import NetworkService from '@services/NetworkService'; @@ -30,6 +29,7 @@ import { ChangeLogOverlayProps } from '@screens/Overlay/ChangeLog'; // style import { AppStyles } from '@theme'; import styles from './styles'; +import BackendService from '@services/BackendService'; /* types ==================================================================== */ export interface Props {} @@ -97,10 +97,15 @@ class AdvancedSettingsView extends Component { // fetch the push token and send to backend const devicePushToken = await PushNotificationsService.getToken(); - ApiService.updateDevice - .post(null, { - devicePushToken, - }) + if (!devicePushToken) { + Alert.alert( + Localize.t('global.error'), + Localize.t('settings.unableToReRegisteredForPushNotifications'), + ); + return; + } + + BackendService.updateDevice({ devicePushToken }) .then(() => { Alert.alert( Localize.t('global.success'), diff --git a/src/services/ApiService.ts b/src/services/ApiService.ts index d5f29202f..cce98243e 100644 --- a/src/services/ApiService.ts +++ b/src/services/ApiService.ts @@ -14,7 +14,9 @@ import { ProfileRepository } from '@store/repositories'; import { CoreModel } from '@store/models'; import { SHA256 } from '@common/libs/crypto'; -import { AppConfig, ApiConfig, ErrorMessages } from '@common/constants'; +import { AppConfig, ErrorMessages } from '@common/constants'; + +import { Endpoints, ApiUrl } from '@common/constants/api'; import { GetDeviceUniqueId } from '@common/helpers/device'; @@ -60,7 +62,6 @@ class ApiService { private readonly apiUrl: string; private readonly userAgent: string; private readonly timeoutSec: number; - private endpoints: Map; private idempotencyInt: number; private accessToken?: string; private bearerHash?: string; @@ -68,13 +69,10 @@ class ApiService { private isRefreshingToken: boolean; private logger: LoggerInstance; - [index: string]: any; - constructor() { // Config - this.apiUrl = ApiConfig.apiUrl; + this.apiUrl = ApiUrl; this.userAgent = `${AppConfig.appName}`; - this.endpoints = ApiConfig.endpoints; // After 100 seconds, let's call it a day! this.timeoutSec = 100 * 1000; @@ -89,25 +87,6 @@ class ApiService { // Logger this.logger = LoggerService.createLogger('Api'); - - /** - * Build services from endpoints - * - So we can call ApiService.transactions.get() for example - */ - this.endpoints.forEach((endpoint, key) => { - (this)[key] = { - get: (params: any, payload: any, header?: any) => - this.fetcher('GET', endpoint, params, payload, header), - post: (params: any, payload: any, header?: any) => - this.fetcher('POST', endpoint, params, payload, header), - patch: (params: any, payload: any, header?: any) => - this.fetcher('PATCH', endpoint, params, payload, header), - put: (params: any, payload: any, header?: any) => - this.fetcher('PUT', endpoint, params, payload, header), - delete: (params: any, payload: any, header?: any) => - this.fetcher('DELETE', endpoint, params, payload, header), - }; - }); } public initialize(coreSettings: CoreModel) { @@ -118,7 +97,7 @@ class ApiService { // get current profile const profile = ProfileRepository.getProfile(); - // app is setup and there auth token + // app is already setup and there is auth token from profile if (profile) { // if no refresh/bearer token then fetch it as this is a feature that recently added if (!profile.refreshToken) { @@ -202,8 +181,7 @@ class ApiService { } // fetch the new refresh token from backend - return this.refreshToken - .post(null, postData) + return this.fetch(Endpoints.RefreshToken, 'POST', null, postData) .then((res: any) => { const { refresh_token, bearer_hash } = res; @@ -314,11 +292,18 @@ class ApiService { /** * Sends requests to the API */ - fetcher(method: Methods, endpoint: any, params: any, body: object, header: object, retried = 0) { - /* eslint-disable-next-line */ + fetch( + endpoint: Endpoints, + method: Methods, + params?: any, + body?: object | string, + header?: object, + retried = 0, + ): Promise { + // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve, reject) => { // check if this is a refresh token request - const isRefreshTokenRequest = endpoint === this.endpoints.get('refreshToken'); + const isRefreshTokenRequest = endpoint === Endpoints.RefreshToken; // increase retrying request retried += 1; @@ -337,7 +322,7 @@ class ApiService { const apiTimedOut = setTimeout(() => reject(ErrorMessages.timeout), this.timeoutSec); if (!method || !endpoint) { - reject(new ApiError('Missing params (ApiService.fetcher).')); + reject(new ApiError('Missing params method or endpoint (ApiService.fetch).')); return; } @@ -363,7 +348,7 @@ class ApiService { // Add Endpoint Params let urlParams = ''; - let urlEndpoint = endpoint; + let urlEndpoint = String(endpoint); const paramsClone = typeof params === 'object' ? { ...params } : params; if (paramsClone) { @@ -458,7 +443,7 @@ class ApiService { // call the request again setTimeout(() => { - this.fetcher(method, endpoint, params, body, header, retried).then(resolve).catch(reject); + this.fetch(endpoint, method, params, body, header, retried).then(resolve).catch(reject); }, 100); // return diff --git a/src/services/BackendService.ts b/src/services/BackendService.ts index 06f218527..0382442fc 100644 --- a/src/services/BackendService.ts +++ b/src/services/BackendService.ts @@ -42,6 +42,8 @@ import Localize from '@locale'; import { Props as TermOfUseViewProps } from '@screens/Settings/TermOfUse/types'; import { InAppPurchaseReceipt } from '@common/libs/iap'; +import { Endpoints } from '@common/constants/api'; + /* Types ==================================================================== */ export interface RatesType { rate: number; @@ -51,6 +53,10 @@ export interface RatesType { } /* Service ==================================================================== */ +/** + * Service that handles interactions with the backend, including syncing curated IOUs, + * managing user payloads, and device activation and updates. + */ class BackendService { private rates: Map; @@ -174,8 +180,7 @@ class BackendService { * @returns {Promise} A promise that resolves with an array of pending payloads. */ getPendingPayloads = async (): Promise => { - return ApiService.pendingPayloads - .get() + return ApiService.fetch(Endpoints.PendingPayloads, 'GET') .then(async (res: { payloads: PayloadType[] }) => { const { payloads } = res; @@ -197,8 +202,7 @@ class BackendService { */ initUser = async (): Promise => { return new Promise((resolve, reject) => { - ApiService.addUser - .post() + ApiService.fetch(Endpoints.AddUser, 'POST') .then((res: XamanBackend.AddUserResponse) => { if (!res) { throw new Error('Cannot add the device to the Xaman'); @@ -226,16 +230,17 @@ class BackendService { activateDevice = async (user: any, device: any): Promise => { /* eslint-disable-next-line */ return new Promise(async (resolve, reject) => { - ApiService.activateDevice - .post( - null, - { - uniqueDeviceIdentifier: GetDeviceUniqueId(), - devicePlatform: Platform.OS, - devicePushToken: await PushNotificationsService.getToken(), - }, - { Authorization: `${user.uuid}.${device.uuid}` }, - ) + ApiService.fetch( + Endpoints.ActivateDevice, + 'POST', + null, + { + uniqueDeviceIdentifier: GetDeviceUniqueId(), + devicePlatform: Platform.OS, + devicePushToken: await PushNotificationsService.getToken(), + }, + { Authorization: `${user.uuid}.${device.uuid}` }, + ) .then((res: XamanBackend.ActivateDeviceResponse) => { const { accessToken } = res; @@ -250,17 +255,31 @@ class BackendService { }); }; + /** + * Update device information + * + * @param {{ devicePushToken: string }} params - An object containing the device push token. + * @param {string} params.devicePushToken - The push token of the device to be updated. + * @returns {Promise} The response from the server after updating the device information. + * + * @throws Will throw an error if the network request fails. + */ + updateDevice = async ({ devicePushToken }: { devicePushToken: string }): Promise => { + return ApiService.fetch(Endpoints.UpdateDevice, 'POST', null, { + devicePushToken, + }); + }; + /** * Pings the backend and updates the user profile. */ ping = async () => { - return ApiService.ping - .post(null, { - appVersion: GetAppReadableVersion(), - appLanguage: Localize.getCurrentLocale(), - appCurrency: CoreRepository.getAppCurrency(), - devicePushToken: await PushNotificationsService.getToken(), - }) + return ApiService.fetch(Endpoints.Ping, 'POST', null, { + appVersion: GetAppReadableVersion(), + appLanguage: Localize.getCurrentLocale(), + appCurrency: CoreRepository.getAppCurrency(), + devicePushToken: await PushNotificationsService.getToken(), + }) .then((res: XamanBackend.PingResponse) => { const { auth, badge, env, monetization, tosAndPrivacyPolicyVersion } = res; @@ -312,7 +331,7 @@ class BackendService { }; getCuratedIOUs = (version = 0, promoted = false): Promise => { - return ApiService.curatedIOUs.get({ version, promoted }); + return ApiService.fetch(Endpoints.CuratedIOUs, 'GET', { version, promoted }); }; /** @@ -320,7 +339,7 @@ class BackendService { * @returns {Promise} A promise that resolves with a list of authorized third-party app. */ getThirdPartyApps = (): Promise => { - return ApiService.thirdPartyApps.get(); + return ApiService.fetch(Endpoints.ThirdPartyApps, 'GET'); }; /** @@ -329,7 +348,7 @@ class BackendService { * @returns {Promise} A promise that resolves when the permission is revoked. */ revokeThirdPartyPermission = (appId: string): Promise => { - return ApiService.thirdPartyApp.delete({ appId }); + return ApiService.fetch(Endpoints.ThirdPartyApps, 'DELETE', { appId }); }; /** @@ -346,7 +365,7 @@ class BackendService { key: string; }, ): Promise => { - return ApiService.addTransaction.post(null, { + return ApiService.fetch(Endpoints.AddTransaction, 'POST', null, { hash, node: network.node, nodeType: network.key, @@ -361,7 +380,7 @@ class BackendService { * @returns {Promise} A promise that resolves when the account is reported. */ addAccount = (account: string, txblob: string, cid?: string): Promise => { - return ApiService.addAccount.post(null, { + return ApiService.fetch(Endpoints.AddAccount, 'POST', null, { account, txblob, cid, @@ -374,7 +393,7 @@ class BackendService { * @returns {Promise} A promise that resolves with account information. */ getAddressInfo = (address: string): Promise => { - return ApiService.addressInfo.get(address); + return ApiService.fetch(Endpoints.AddressInfo, 'GET', address); }; /** @@ -383,7 +402,7 @@ class BackendService { * @returns {Promise} A promise that resolves with lookup results. */ lookup = (content: string): Promise => { - return ApiService.lookup.get(content); + return ApiService.fetch(Endpoints.Lookup, 'GET', content); }; /** @@ -392,7 +411,7 @@ class BackendService { * @returns {Promise} A promise that resolves with account advisory information. */ getAccountAdvisory = (address: string): Promise => { - return ApiService.accountAdvisory.get(address); + return ApiService.fetch(Endpoints.AccountAdvisory, 'GET', address); }; /** @@ -401,7 +420,7 @@ class BackendService { * @returns {Promise} A promise that resolves with the XApp store listings. */ getXAppStoreListings = (category: string): Promise => { - return ApiService.xAppsStore.get({ category }); + return ApiService.fetch(Endpoints.XAppsStore, 'GET', { category }); }; /** @@ -409,7 +428,7 @@ class BackendService { * @returns {Promise} A promise that resolves with the short list of featured XApps. */ getXAppShortList = (): Promise => { - return ApiService.xAppsShortList.get({ + return ApiService.fetch(Endpoints.XAppsShortList, 'GET', { featured: true, }); }; @@ -424,7 +443,7 @@ class BackendService { xAppId: string, data: XamanBackend.XappLunchDataType, ): Promise => { - return ApiService.xAppLaunch.post({ xAppId }, data); + return ApiService.fetch(Endpoints.XAppLaunch, 'POST', { xAppId }, data); }; /** @@ -433,7 +452,7 @@ class BackendService { * @returns {Promise} A promise that resolves with information about the XApp. */ getXAppInfo = (xAppId: string): Promise => { - return ApiService.xAppInfo.get({ xAppId }); + return ApiService.fetch(Endpoints.XAppInfo, 'GET', { xAppId }); }; /** @@ -441,8 +460,7 @@ class BackendService { * @returns {Promise} A promise that resolves with the list of currencies. */ getCurrenciesList = (): Promise => { - const locale = Localize.getCurrentLocale(); - return ApiService.currencies.get({ locale }); + return ApiService.fetch(Endpoints.Currencies, 'GET', { locale: Localize.getCurrentLocale() }); }; /** @@ -452,7 +470,7 @@ class BackendService { * @returns {Promise} A promise that resolves when the audit trail action is completed. */ auditTrail = (destination: string, reason: { reason: string }): Promise => { - return ApiService.auditTrail.post({ destination }, reason); + return ApiService.fetch(Endpoints.AuditTrail, 'POST', {}, reason); }; /** @@ -461,7 +479,7 @@ class BackendService { * @returns {Promise} A promise that resolves with translation json data. */ getTranslation = (uuid: string): Promise => { - return ApiService.translation.get({ uuid }); + return ApiService.fetch(Endpoints.Translation, 'GET', { uuid }); }; /** @@ -471,7 +489,7 @@ class BackendService { * @returns {Promise} A promise that resolves with details about the XLS20 tokens. */ getNFTDetails = (account: string, tokens: string[]): Promise => { - return ApiService.nftDetails.post(null, { account, tokens }); + return ApiService.fetch(Endpoints.NftDetails, 'POST', null, { account, tokens }); }; /** @@ -479,9 +497,8 @@ class BackendService { * @param {string} account - The account of the user offering XLS20 tokens. * @returns {Promise} A promise that resolves with the list of offered XLS20 tokens. */ - getNFTOffered = (account: string): Array => { - return ApiService.xls20Offered - .get({ account }) + getNFTOffered = (account: string): Promise> => { + return ApiService.fetch(Endpoints.NftOffered, 'GET', { account }) .then(async (res: Array) => { if (isEmpty(res)) { return []; @@ -515,6 +532,7 @@ class BackendService { return compact(flatMap(ledgerOffers, LedgerObjectFactory.fromLedger)); }) .catch((error: string): any => { + console.error(error); this.logger.error('Fetch XLS20 offered Error: ', error); return []; }); @@ -525,7 +543,7 @@ class BackendService { * @returns {Promise} A promise that resolves with network rails data. */ getNetworkRails = (): Promise => { - return ApiService.networkRails.get(); + return ApiService.fetch(Endpoints.NetworkRails, 'GET'); }; /** @@ -536,7 +554,7 @@ class BackendService { * @returns {Promise} - A promise that resolves to an object containing liquidity boundaries. */ getLiquidityBoundaries = (issuer: string, currency: string): Promise => { - return ApiService.liquidityBoundaries.get({ + return ApiService.fetch(Endpoints.LiquidityBoundaries, 'GET', { issuer, currency, }); @@ -568,8 +586,9 @@ class BackendService { } // fetch/update the rate from backend - ApiService.rates - .get({ currency: currencyCode }) + ApiService.fetch(Endpoints.Rates, 'GET', { + currency: currencyCode, + }) .then((response: XamanBackend.CurrencyRateResponse) => { const rate = { rate: get(response, NetworkService.getNativeAsset(), 0), @@ -585,11 +604,11 @@ class BackendService { }; verifyPurchase = (purchases: InAppPurchaseReceipt) => { - return ApiService.verifyPurchase.post(null, purchases); + return ApiService.fetch(Endpoints.VerifyPurchase, 'POST', null, purchases); }; acknowledgePurchase = (purchases: InAppPurchaseReceipt) => { - return ApiService.verifyPurchase.patch(null, purchases); + return ApiService.fetch(Endpoints.VerifyPurchase, 'PATCH', null, purchases); }; } diff --git a/src/services/__tests__/ApiService.test.ts b/src/services/__tests__/ApiService.test.ts index bc21ca023..22029c4da 100644 --- a/src/services/__tests__/ApiService.test.ts +++ b/src/services/__tests__/ApiService.test.ts @@ -2,6 +2,8 @@ import fetch from 'fetch-mock'; +import { Endpoints } from '@common/constants/api'; + import { ApiService } from '../'; import { ApiError } from '../ApiService'; @@ -38,56 +40,54 @@ describe('API', () => { const body = { foo: 'bar' }; - for (const method of ['put', 'post', 'get', 'delete', 'patch']) { - describe(method.toUpperCase(), () => { - it(`should ${method} given data`, async () => { - await ApiService['ping'][method](undefined, POST_BODY); - expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); - }); - - it(`should ${method} given data with arg params`, async () => { - await ApiService['liquidityBoundaries'][method](URL_ARGS, POST_BODY); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ARGS_NORMALIZED}`); - expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); - }); - - it(`should ${method} given data with URL params`, async () => { - await ApiService['ping'][method](URL_PARAMS, POST_BODY); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_PARAM}`); - expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); - }); - - it(`should ${method} given body in string`, async () => { - await ApiService['ping'][method](undefined, 'body'); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT}`); - expect(fetch.lastOptions()!.body).toBe('body'); - }); - - it(`should ${method} with action`, async () => { - await ApiService['ping'][method]({ action: 'update' }); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ACTION}`); - }); - - it(`${method} with invalid json response`, async () => { - await expect(ApiService['ping'][method]({ action: 'invalid_json' })).rejects.toMatchObject( - new ApiError('Response returned is not valid JSON'), - ); - }); - - it(`${method} with id`, async () => { - await ApiService['ping'][method]({ id: 1 }); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ID}`); - - await ApiService['ping'][method](1); - expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ID}`); - }); - - it(`${method} with http error code`, async () => { - // await ApiService['ping'][method]({ action: '400' }).catch((e) => console.warn(e.message)); - await expect(ApiService['ping'][method]({ action: '400' })).rejects.toMatchObject( - new ApiError('Api error {"foo":"bar"}'), - ); - }); + describe('Should be able to make requests', () => { + it(`should call with given data`, async () => { + await ApiService.fetch(Endpoints.Ping, 'POST', undefined, POST_BODY); + expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); + }); + + it(`should call with given data with arg params`, async () => { + await ApiService.fetch(Endpoints.LiquidityBoundaries, 'POST', URL_ARGS, POST_BODY); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ARGS_NORMALIZED}`); + expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); + }); + + it(`should call with given data and URL params`, async () => { + await ApiService.fetch(Endpoints.Ping, 'POST', URL_PARAMS, URL_PARAMS); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_PARAM}`); + expect(fetch.lastOptions()!.body).toBe(JSON.stringify(body)); + }); + + it(`should call with given body in string`, async () => { + await ApiService.fetch(Endpoints.Ping, 'POST', undefined, 'RAW_BODY'); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT}`); + expect(fetch.lastOptions()!.body).toBe('RAW_BODY'); + }); + + it(`should call with action`, async () => { + await ApiService.fetch(Endpoints.Ping, 'GET', { action: 'update' }); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ACTION}`); }); - } + + it(`call with invalid json response`, async () => { + await expect(ApiService.fetch(Endpoints.Ping, 'GET', { action: 'invalid_json' })).rejects.toMatchObject( + new ApiError('Response returned is not valid JSON'), + ); + }); + + it(`call with id`, async () => { + await ApiService.fetch(Endpoints.Ping, 'GET', { id: 1 }); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ID}`); + + await ApiService.fetch(Endpoints.Ping, 'GET', 1); + expect(fetch.lastUrl()).toBe(`${API_ROOT}${ENDPOINT_WITH_ID}`); + }); + + it(`handle with http error code`, async () => { + // await ApiService['ping'][method]({ action: '400' }).catch((e) => console.warn(e.message)); + await expect(ApiService.fetch(Endpoints.Ping, 'GET', { action: '400' })).rejects.toMatchObject( + new ApiError('Api error {"foo":"bar"}'), + ); + }); + }); }); From 814a5c221bc8f54f5642354fedd6f23eb70be64b Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Wed, 25 Sep 2024 14:33:14 +0200 Subject: [PATCH 03/10] feat: add dynamic HOSTNAME for request link generation --- .../java/libs/common/HTTPClientFactory.java | 4 ++-- src/common/constants/config.ts | 5 ---- src/common/constants/{api.ts => endpoints.ts} | 23 ++++++++++++++++++- .../libs/payload/__tests__/object.test.ts | 22 ++++++++---------- src/common/libs/payload/object.ts | 7 ++++-- src/common/utils/__tests__/explorer.test.ts | 7 +++--- src/common/utils/explorer.ts | 19 ++++++++++++--- .../Modules/AccountElement/AccountElement.tsx | 3 ++- .../CurrencyElement/CurrencyElement.tsx | 4 +++- .../EventListItems/Blocks/Avatar.tsx | 4 +++- .../Modules/HooksExplainer/HooksExplainer.tsx | 5 ++-- .../XAppStore/AppsList/AppItem/AppItem.tsx | 4 +++- src/locale/en.json | 6 ++--- src/locale/translations/af.json | 8 +++---- src/locale/translations/ar.json | 8 +++---- src/locale/translations/bg.json | 8 +++---- src/locale/translations/bn-BD.json | 8 +++---- src/locale/translations/ca.json | 8 +++---- src/locale/translations/cs.json | 8 +++---- src/locale/translations/da.json | 8 +++---- src/locale/translations/de.json | 8 +++---- src/locale/translations/el.json | 8 +++---- src/locale/translations/en-AU.json | 8 +++---- src/locale/translations/es-419.json | 8 +++---- src/locale/translations/es.json | 8 +++---- src/locale/translations/et.json | 8 +++---- src/locale/translations/eu.json | 8 +++---- src/locale/translations/fi.json | 8 +++---- src/locale/translations/fil.json | 8 +++---- src/locale/translations/fr.json | 8 +++---- src/locale/translations/gl-ES.json | 8 +++---- src/locale/translations/gu.json | 8 +++---- src/locale/translations/he.json | 8 +++---- src/locale/translations/hi-IN.json | 8 +++---- src/locale/translations/hr.json | 8 +++---- src/locale/translations/ht.json | 8 +++---- src/locale/translations/hu.json | 8 +++---- src/locale/translations/id.json | 8 +++---- src/locale/translations/it.json | 8 +++---- src/locale/translations/ja.json | 8 +++---- src/locale/translations/ka.json | 8 +++---- src/locale/translations/kk.json | 6 ++--- src/locale/translations/kn.json | 8 +++---- src/locale/translations/ko.json | 8 +++---- src/locale/translations/lt.json | 8 +++---- src/locale/translations/lv.json | 8 +++---- src/locale/translations/ml.json | 8 +++---- src/locale/translations/mr.json | 8 +++---- src/locale/translations/nl.json | 8 +++---- src/locale/translations/no-NO.json | 8 +++---- src/locale/translations/pa.json | 8 +++---- src/locale/translations/pl.json | 8 +++---- src/locale/translations/pt-BR.json | 8 +++---- src/locale/translations/pt.json | 8 +++---- src/locale/translations/ro.json | 8 +++---- src/locale/translations/ru.json | 8 +++---- src/locale/translations/sd.json | 8 +++---- src/locale/translations/sk.json | 8 +++---- src/locale/translations/sl.json | 8 +++---- src/locale/translations/sr.json | 8 +++---- src/locale/translations/sv.json | 8 +++---- src/locale/translations/sw.json | 8 +++---- src/locale/translations/ta-IN.json | 8 +++---- src/locale/translations/te-IN.json | 8 +++---- src/locale/translations/tr.json | 8 +++---- src/locale/translations/uk.json | 8 +++---- src/locale/translations/ur.json | 8 +++---- src/locale/translations/uz.json | 8 +++---- src/locale/translations/vi.json | 8 +++---- src/locale/translations/zh-TW.json | 8 +++---- src/locale/translations/zh.json | 8 +++---- .../Steps/MnemonicAlert/MnemonicAlertStep.tsx | 6 ++--- .../Modal/XAppBrowser/XAppBrowserModal.tsx | 3 ++- .../Overlay/ChangeLog/ChangeLogOverlay.tsx | 6 +++-- .../PassphraseAuthenticationOverlay.tsx | 8 +++---- src/screens/Overlay/Vault/VaultOverlay.tsx | 4 ++-- src/screens/Request/RequestView.tsx | 3 ++- .../Settings/AddressBook/AddressBookView.tsx | 4 +++- src/screens/Settings/Credits/CreditsView.tsx | 5 ++-- .../Settings/TermOfUse/TermOfUseView.tsx | 5 ++-- src/screens/Setup/Finish/FinishView.tsx | 6 +++-- src/services/ApiService.ts | 2 +- src/services/AppService.ts | 3 ++- src/services/BackendService.ts | 4 ++-- src/services/__tests__/ApiService.test.ts | 2 +- 85 files changed, 342 insertions(+), 294 deletions(-) rename src/common/constants/{api.ts => endpoints.ts} (64%) diff --git a/android/app/src/main/java/libs/common/HTTPClientFactory.java b/android/app/src/main/java/libs/common/HTTPClientFactory.java index d99216e95..b6c6ec307 100644 --- a/android/app/src/main/java/libs/common/HTTPClientFactory.java +++ b/android/app/src/main/java/libs/common/HTTPClientFactory.java @@ -18,8 +18,8 @@ public class HTTPClientFactory implements OkHttpClientFactory { // TODO: remove "xumm-cdn.imgix.net" after migration period - private static final List trustedHosts = Arrays.asList("xumm-cdn.imgix.net", "cdn.xumm.pro", "xumm.app", "image-proxy.xrpl-labs.com"); - private static final String defaultHost = "xumm.app"; + private static final List trustedHosts = Arrays.asList("xumm-cdn.imgix.net", "cdn.xaman.app", "xaman.app", "image-proxy.xrpl-labs.com"); + private static final String defaultHost = "xaman.app"; private static final class HostSelectionInterceptor implements Interceptor { @Override diff --git a/src/common/constants/config.ts b/src/common/constants/config.ts index 1e136d21a..c78dbe9e1 100644 --- a/src/common/constants/config.ts +++ b/src/common/constants/config.ts @@ -5,11 +5,6 @@ export default { appName: 'Xaman', supportEmail: 'support@xaman.app', - termOfUseURL: 'https://xaman.app/app/webviews/tos-privacy/', - creditsURL: 'https://xaman.app/app/webviews/credits/', - changeLogURL: 'https://xaman.app/app/webviews/update/en/?update=', - explorerProxy: 'https://xaman.app/explorer', - hooksExplainerURL: 'https://xaman.app/app/webviews/hooks/', // persist storage config // NOTE: this should never be changed diff --git a/src/common/constants/api.ts b/src/common/constants/endpoints.ts similarity index 64% rename from src/common/constants/api.ts rename to src/common/constants/endpoints.ts index 6be8a9d88..a02ab64dc 100644 --- a/src/common/constants/api.ts +++ b/src/common/constants/endpoints.ts @@ -2,7 +2,9 @@ /** * Endpoints */ -export const ApiUrl = 'https://xaman.app/api'; + +export const HOSTNAME = 'xaman.app'; +export const ApiUrl = `https://${HOSTNAME}/api`; export enum Endpoints { Ping = '/v1/app/ping', @@ -35,3 +37,22 @@ export enum Endpoints { NetworkRails = '/v1/app/rails', VerifyPurchase = '/v1/app/verify-purchase', } + +export enum WebLinks { + // Webview + TermOfUseURL = `https://${HOSTNAME}/app/webviews/tos-privacy`, + CreditsURL = `https://${HOSTNAME}/app/webviews/credits`, + ChangeLogURL = `https://${HOSTNAME}/app/webviews/update`, + HooksExplainerURL = `https://${HOSTNAME}/app/webviews/hooks`, + + // Providers + ExplorerProxy = `https://${HOSTNAME}/explorer`, + AvatarURL = `https://${HOSTNAME}/avatar`, + + // Blog and Help center + FAQSecurityHardwareURL = `https://${HOSTNAME}/redir/faq/security-hardware`, + FAQAccountSigningPasswordURL = `https://${HOSTNAME}/redir/faq/account-signing-password`, + + // Other + AppleStoreLink = `https://apps.apple.com/us/app/id1492302343`, +} diff --git a/src/common/libs/payload/__tests__/object.test.ts b/src/common/libs/payload/__tests__/object.test.ts index e782889e5..ec2a8147c 100644 --- a/src/common/libs/payload/__tests__/object.test.ts +++ b/src/common/libs/payload/__tests__/object.test.ts @@ -28,13 +28,13 @@ describe('Payload', () => { expect(craftedPayload.getTransaction().JsonForSigning).toEqual(transaction); expect(craftedPayload.getSigners()).toEqual(['rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY']); - const payloadPatchSpy = jest.spyOn(ApiService.payload, 'patch'); + const payloadPatchSpy = jest.spyOn(ApiService, 'fetch'); // @ts-ignore craftedPayload.patch({ signed_blob: '', tx_id: '', multisigned: '' }); expect(payloadPatchSpy).toBeCalledTimes(0); - payloadPatchSpy.mockClear(); + payloadPatchSpy.mockRestore(); - const payloadRejectSpy = jest.spyOn(ApiService.payload, 'patch'); + const payloadRejectSpy = jest.spyOn(ApiService, 'fetch'); craftedPayload.reject('USER'); expect(payloadRejectSpy).toBeCalledTimes(0); payloadRejectSpy.mockClear(); @@ -44,7 +44,7 @@ describe('Payload', () => { const { AccountSet: AccountSetPayload } = PayloadTemplate; const payloadFetchSpy = jest - .spyOn(ApiService.payload, 'get') + .spyOn(ApiService, 'fetch') .mockImplementation(() => Promise.resolve(AccountSetPayload)); const fetchedPayload = await Payload.from(AccountSetPayload.meta.uuid); @@ -63,7 +63,7 @@ describe('Payload', () => { invalidTypesPayload.payload.request_json.TransactionType = 'SomethingElse'; let payloadFetchSpy = jest - .spyOn(ApiService.payload, 'get') + .spyOn(ApiService, 'fetch') .mockImplementation(() => Promise.resolve(Object.assign(invalidTypesPayload))); try { @@ -74,9 +74,7 @@ describe('Payload', () => { payloadFetchSpy.mockClear(); - payloadFetchSpy = jest - .spyOn(ApiService.payload, 'get') - .mockImplementation(() => Promise.resolve(AccountSetPayload)); + payloadFetchSpy = jest.spyOn(ApiService, 'fetch').mockImplementation(() => Promise.resolve(AccountSetPayload)); const invalidSignInPayload = JSON.parse(JSON.stringify(AccountSetPayload)); invalidSignInPayload.payload.tx_type = 'SignIn'; @@ -95,7 +93,7 @@ describe('Payload', () => { const { InvalidPayload } = PayloadTemplate; const payloadFetchSpy = jest - .spyOn(ApiService.payload, 'get') + .spyOn(ApiService, 'fetch') .mockImplementation(() => Promise.resolve(InvalidPayload)); try { @@ -152,7 +150,7 @@ describe('Payload', () => { it('Should throw error if payload is resolved or expired', async () => { const { AccountSet: AccountSetPayload } = PayloadTemplate; - const payloadFetchSpy = jest.spyOn(ApiService.payload, 'get').mockImplementation(() => + const payloadFetchSpy = jest.spyOn(ApiService, 'fetch').mockImplementation(() => Promise.resolve({ ...AccountSetPayload, ...{ @@ -173,7 +171,7 @@ describe('Payload', () => { payloadFetchSpy.mockClear(); - const payloadFetchSpy2 = jest.spyOn(ApiService.payload, 'get').mockImplementation(() => + const payloadFetchSpy2 = jest.spyOn(ApiService, 'fetch').mockImplementation(() => Promise.resolve({ ...AccountSetPayload, ...{ @@ -199,7 +197,7 @@ describe('Payload', () => { const { AccountSet: AccountSetPayload } = PayloadTemplate; const payloadFetchSpy = jest - .spyOn(ApiService.payload, 'get') + .spyOn(ApiService, 'fetch') .mockImplementation(() => Promise.reject(new ApiError('message', 403, 'refrence'))); try { diff --git a/src/common/libs/payload/object.ts b/src/common/libs/payload/object.ts index 668498ba0..af33f181f 100644 --- a/src/common/libs/payload/object.ts +++ b/src/common/libs/payload/object.ts @@ -1,6 +1,9 @@ import { v4 as uuidv4 } from 'uuid'; import { get, isObject, isString, isUndefined } from 'lodash'; +import { AppConfig } from '@common/constants'; +import { Endpoints } from '@common/constants/endpoints'; + import ApiService, { ApiError } from '@services/ApiService'; import LoggerService from '@services/LoggerService'; @@ -30,7 +33,6 @@ import { DigestSerializeWithSHA1 } from './digest'; // errors import { PayloadErrors } from './errors'; -import { Endpoints } from '@common/constants/api'; // create logger const logger = LoggerService.createLogger('Payload'); @@ -390,7 +392,7 @@ export class Payload { */ getApplicationName = (): string => { if (this.isGenerated()) { - return 'Xaman'; + return AppConfig.appName; } return this.application.name; }; @@ -400,6 +402,7 @@ export class Payload { */ getApplicationIcon = (): string => { if (this.isGenerated()) { + // FIXME: change to AppIcon/ic_luncher after removing the `xumm-cdn.imgix.net` return 'https://xumm-cdn.imgix.net/app-logo/91348bab-73d2-489a-bb7b-a8dba83e40ff.png'; } return this.application.icon_url; diff --git a/src/common/utils/__tests__/explorer.test.ts b/src/common/utils/__tests__/explorer.test.ts index 101e2bb58..eae119cac 100644 --- a/src/common/utils/__tests__/explorer.test.ts +++ b/src/common/utils/__tests__/explorer.test.ts @@ -1,14 +1,15 @@ -import { AppConfig } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; + import { GetTransactionLink, GetAccountLink } from '../explorer'; jest.mock('@services/NetworkService'); describe('Utils.Explorer', () => { it('should return right transaction link', () => { - expect(GetTransactionLink('CTID')).toEqual(`${AppConfig.explorerProxy}/0/CTID`); + expect(GetTransactionLink('CTID')).toEqual(`${WebLinks.ExplorerProxy}/0/CTID`); }); it('should return right account link', () => { - expect(GetAccountLink('ACCOUNT')).toEqual(`${AppConfig.explorerProxy}/0/ACCOUNT`); + expect(GetAccountLink('ACCOUNT')).toEqual(`${WebLinks.ExplorerProxy}/0/ACCOUNT`); }); }); diff --git a/src/common/utils/explorer.ts b/src/common/utils/explorer.ts index fb2a54581..4c67780b5 100644 --- a/src/common/utils/explorer.ts +++ b/src/common/utils/explorer.ts @@ -1,12 +1,25 @@ +import { WebLinks } from '@common/constants/endpoints'; + import NetworkService from '@services/NetworkService'; -import { AppConfig } from '@common/constants'; +/** + * Generates a transaction link based on the given transaction ID (ctid). + * + * @param {string} ctid - The transaction ID for which the link is generated. + * @return {string} The formatted transaction link. + */ const GetTransactionLink = (ctid: string): string => { - return `${AppConfig.explorerProxy}/${NetworkService.getNetworkId()}/${ctid}`; + return `${WebLinks.ExplorerProxy}/${NetworkService.getNetworkId()}/${ctid}`; }; +/** + * Generates a URL link for an account on the blockchain explorer. + * + * @param {string} address - The blockchain address for which the link is generated. + * @returns {string} The URL link to the blockchain explorer for the provided address. + */ const GetAccountLink = (address: string): string => { - return `${AppConfig.explorerProxy}/${NetworkService.getNetworkId()}/${address}`; + return `${WebLinks.ExplorerProxy}/${NetworkService.getNetworkId()}/${address}`; }; /* Export ==================================================================== */ diff --git a/src/components/Modules/AccountElement/AccountElement.tsx b/src/components/Modules/AccountElement/AccountElement.tsx index 743991714..ef68cd982 100644 --- a/src/components/Modules/AccountElement/AccountElement.tsx +++ b/src/components/Modules/AccountElement/AccountElement.tsx @@ -7,6 +7,7 @@ import { getAccountName, AccountNameType } from '@common/helpers/resolver'; import { Navigator } from '@common/helpers/navigator'; import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import { TouchableDebounce, Avatar, Badge, Icon, LoadingIndicator } from '@components/General'; @@ -184,7 +185,7 @@ class AccountElement extends Component { badge = 'IconCheckXaman'; } - return ; + return ; }; renderSource = () => { diff --git a/src/components/Modules/CurrencyElement/CurrencyElement.tsx b/src/components/Modules/CurrencyElement/CurrencyElement.tsx index 5e738c91a..5d46a65e1 100644 --- a/src/components/Modules/CurrencyElement/CurrencyElement.tsx +++ b/src/components/Modules/CurrencyElement/CurrencyElement.tsx @@ -5,6 +5,8 @@ import { View, Text, ViewStyle, InteractionManager, TextStyle } from 'react-nati import NetworkService from '@services/NetworkService'; +import { WebLinks } from '@common/constants/endpoints'; + import { getAccountName, AccountNameType } from '@common/helpers/resolver'; import { NormalizeCurrencyCode } from '@common/utils/monetary'; import { Images } from '@common/helpers/images'; @@ -100,7 +102,7 @@ class CurrencyElement extends Component { return ( <> - + {isLoading ? ( diff --git a/src/components/Modules/EventsList/EventListItems/Blocks/Avatar.tsx b/src/components/Modules/EventsList/EventListItems/Blocks/Avatar.tsx index 944cf90fa..bb6d9f6ce 100644 --- a/src/components/Modules/EventsList/EventListItems/Blocks/Avatar.tsx +++ b/src/components/Modules/EventsList/EventListItems/Blocks/Avatar.tsx @@ -1,6 +1,8 @@ import React, { PureComponent } from 'react'; import { View } from 'react-native'; +import { WebLinks } from '@common/constants/endpoints'; + import { InstanceTypes } from '@common/libs/ledger/types/enums'; import StyleService from '@services/StyleService'; @@ -44,7 +46,7 @@ class AvatarBlock extends PureComponent { { // LOG Hex.Encode 1792 // LOG JSON.stringify 896 // LOG codec.encode 646 - if (transaction) { Object.assign(params, { tx_hash: transaction.hash, @@ -73,7 +72,7 @@ class HooksExplainer extends Component { } return { - uri: `${AppConfig.hooksExplainerURL}${Localize.getCurrentLocale()}`, + uri: `${WebLinks.HooksExplainerURL}/${Localize.getCurrentLocale()}`, method: 'POST', body: JSON.stringify(params), headers: { diff --git a/src/components/Modules/XAppStore/AppsList/AppItem/AppItem.tsx b/src/components/Modules/XAppStore/AppsList/AppItem/AppItem.tsx index 95835ab06..f8c0428b7 100644 --- a/src/components/Modules/XAppStore/AppsList/AppItem/AppItem.tsx +++ b/src/components/Modules/XAppStore/AppsList/AppItem/AppItem.tsx @@ -3,6 +3,8 @@ import { View, Text, Animated, Share } from 'react-native'; import { OptionsModalPresentationStyle, OptionsModalTransitionStyle } from 'react-native-navigation'; import { AppScreens } from '@common/constants'; +import { HOSTNAME } from '@common/constants/endpoints'; + import { XAppOrigin } from '@common/libs/payload'; import { Navigator } from '@common/helpers/navigator'; @@ -123,7 +125,7 @@ class AppItem extends Component { Share.share({ title, - message: `https://xumm.app/detect/xapp:${identifier}`, + message: `https://${HOSTNAME}/detect/xapp:${identifier}`, url: undefined, }); }; diff --git a/src/locale/en.json b/src/locale/en.json index b38089ceb..4d06d1fc5 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -383,7 +383,7 @@ "repeatPasscode": "Please repeat your new passcode", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "You will need your passcode to unlock the app", - "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xumm.app for more information.", + "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xaman.app for more information.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Using Xaman with a new device will require you to re-enter your secret keys for any accounts you have previously created.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret account keys safe and offline, so I can re-enter them if I get a new device.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions.In case of doubt, never proceed and check with our support team first.\r\n\r\nOur FAQ and help center can be found at https://support.xumm.app.\n\nSupport is available in-app, using the \"Xaman Support\" xApp. Please do not trust social media support channels.", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xumm.app ", + "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions.In case of doubt, never proceed and check with our support team first.\r\n\r\nOur FAQ and help center can be found at https://support.xaman.app.\n\nSupport is available in-app, using the \"Xaman Support\" xApp. Please do not trust social media support channels.", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xaman.app ", "pleaseReadTheTextAboveCarefully": "Please read the above text carefully" }, "home": { diff --git a/src/locale/translations/af.json b/src/locale/translations/af.json index 45f91bc17..220d3114f 100644 --- a/src/locale/translations/af.json +++ b/src/locale/translations/af.json @@ -383,7 +383,7 @@ "repeatPasscode": "Herhaal u nuwe wagwoordkode", "passcodeDoNotMatch": "Die wagkode stem nie ooreen nie!", "warnNeedPasscode": "U sal u wagkode benodig om die program te ontsluit", - "UnableToStoreThePasscode": "Kan nie die wagkode stoor nie. Dit behoort nie te gebeur nie. 'N Foutverslag is aan die Xaman-ondersteuningspan gestuur. Kontak ons ​​gerus by support@xumm.app vir meer inligting.", + "UnableToStoreThePasscode": "Kan nie die wagkode stoor nie. Dit behoort nie te gebeur nie. 'N Foutverslag is aan die Xaman-ondersteuningspan gestuur. Kontak ons ​​gerus by support@xaman.app vir meer inligting.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "As u Xaman met 'n nuwe foon gebruik, moet u u geheime sleutels weer invoer vir enige rekeninge wat u voorheen geskep het", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ek sal my geheime sleutels veilig en vanlyn hou, sodat ek dit weer kan invoer as ek a nuwe toestel kry.", "questionsAndSupport": "Vrae & ondersteuning", - "questionsAndSupportExplain": "As jy vrae het, kan jy vrae lees en vra vrae aan https://support.xumm.app.\r\n\r\nDit is die ENIGSTE betroubare kanaal vir XUMM ondersteuning.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ek vertrou slegs die antwoorde van die Xaman-ondersteuningspan op https://support.xumm.app", + "questionsAndSupportExplain": "As jy vrae het, kan jy vrae lees en vra vrae aan https://support.xaman.app.\r\n\r\nDit is die ENIGSTE betroubare kanaal vir XUMM ondersteuning.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ek vertrou slegs die antwoorde van die Xaman-ondersteuningspan op https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Lees asseblief die teks hierbo noukeurig" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "af" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ar.json b/src/locale/translations/ar.json index 7d856a0c8..b2507ff31 100644 --- a/src/locale/translations/ar.json +++ b/src/locale/translations/ar.json @@ -383,7 +383,7 @@ "repeatPasscode": "يرجى إعادة رمز المرور الجديد الخاص بك", "passcodeDoNotMatch": "رمز المرور غير متطابق!", "warnNeedPasscode": "ستحتاج إلى رمزك السري لفتح التطبيق", - "UnableToStoreThePasscode": "تعذر تخزين رمز المرور. لا ينبغي أن يحدث هذا. تم إرسال تقرير خطأ إلى فريق دعم Xaman. يرجى الاتصال بنا على support@xumm.app لمزيد من المعلومات.", + "UnableToStoreThePasscode": "تعذر تخزين رمز المرور. لا ينبغي أن يحدث هذا. تم إرسال تقرير خطأ إلى فريق دعم Xaman. يرجى الاتصال بنا على support@xaman.app لمزيد من المعلومات.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "عندما تحصل على هاتف آخر (جديد / بديل) ، لأسباب أمنية ، سيطلب منك Xaman استيراد جميع حساباتك باستخدام أسرار الحساب مرة أخرى.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "سأحافظ على أسراري آمنة ، دون اتصال بالإنترنت ، حتى أتمكن من إعادة إدخالها إذا حصلت على هاتف جديد", "questionsAndSupport": "الأسئلة والدعم", - "questionsAndSupportExplain": "إذا كانت لديك أسئلة ، فيمكنك قراءة الأسئلة الشائعة وطرح الأسئلة على https://support.xumm.app.\r\n\r\nهذه هي القناة الوحيدة الجديرة بالثقة لدعم XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "سأثق فقط في الإجابات من فريق دعم Xaman على https://support.xumm.app", + "questionsAndSupportExplain": "إذا كانت لديك أسئلة ، فيمكنك قراءة الأسئلة الشائعة وطرح الأسئلة على https://support.xaman.app.\r\n\r\nهذه هي القناة الوحيدة الجديرة بالثقة لدعم XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "سأثق فقط في الإجابات من فريق دعم Xaman على https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "يرجى قراءة النص أعلاه بعناية" }, "home": { @@ -1264,4 +1264,4 @@ "weekdaysParseExact": true, "abbr": "ar" } -} \ No newline at end of file +} diff --git a/src/locale/translations/bg.json b/src/locale/translations/bg.json index 8660df75e..c74de5323 100644 --- a/src/locale/translations/bg.json +++ b/src/locale/translations/bg.json @@ -383,7 +383,7 @@ "repeatPasscode": "Моля, повторете новата си парола", "passcodeDoNotMatch": "Паролата не съвпада!", "warnNeedPasscode": "За да отключите приложението, ще ви е необходима вашата парола", - "UnableToStoreThePasscode": "Не може да се съхрани паролата. Това не трябва да се случва. Доклад за грешка е изпратен до екипа за поддръжка на Xaman. Моля, свържете се с нас на support@xumm.app за повече информация.", + "UnableToStoreThePasscode": "Не може да се съхрани паролата. Това не трябва да се случва. Доклад за грешка е изпратен до екипа за поддръжка на Xaman. Моля, свържете се с нас на support@xaman.app за повече информация.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Когато получите друг телефон (нов / подменен), от съображения за сигурност, Xaman ще ви помоли да импортирате отново всичките си акаунти, като използвате тайните на акаунта.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ще пазя тайните си в безопасност, офлайн, за да мога да ги въведа отново, ако получа нов телефон", "questionsAndSupport": "Въпроси и Поддръжка", - "questionsAndSupportExplain": "Ако имате въпроси, можете да прочетете Често задавани въпроси и да задавате въпроси на https://support.xumm.app.\n\nТова е единственият надежден канал за поддръжка на XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ще се доверя само на отговорите от екипа за поддръжка на Xaman на адрес https://support.xumm.app", + "questionsAndSupportExplain": "Ако имате въпроси, можете да прочетете Често задавани въпроси и да задавате въпроси на https://support.xaman.app.\n\nТова е единственият надежден канал за поддръжка на XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ще се доверя само на отговорите от екипа за поддръжка на Xaman на адрес https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Моля, прочетете внимателно текста по-горе" }, "home": { @@ -1273,4 +1273,4 @@ ], "abbr": "bg" } -} \ No newline at end of file +} diff --git a/src/locale/translations/bn-BD.json b/src/locale/translations/bn-BD.json index 9610c1100..e753c5d18 100644 --- a/src/locale/translations/bn-BD.json +++ b/src/locale/translations/bn-BD.json @@ -383,7 +383,7 @@ "repeatPasscode": "দয়া করে আপনার নতুন পাসকোডটি পুনরাবৃত্তি করুন", "passcodeDoNotMatch": "পাসকোড মেলে না!", "warnNeedPasscode": "অ্যাপ্লিকেশনটি আনলক করতে আপনার পাসকোডের প্রয়োজন হবে", - "UnableToStoreThePasscode": "পাসকোড সংরক্ষণ করতে অক্ষম। এটি হওয়া উচিত নয়। Xaman সহায়তা দলে একটি বাগ রিপোর্ট প্রেরণ করা হয়েছিল। আরও তথ্যের জন্য দয়া করে আমাদের সাথে support@xumm.app এ যোগাযোগ করুন।", + "UnableToStoreThePasscode": "পাসকোড সংরক্ষণ করতে অক্ষম। এটি হওয়া উচিত নয়। Xaman সহায়তা দলে একটি বাগ রিপোর্ট প্রেরণ করা হয়েছিল। আরও তথ্যের জন্য দয়া করে আমাদের সাথে support@xaman.app এ যোগাযোগ করুন।", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "সুরক্ষার কারণে আপনি যখন অন্য ফোনটি (নতুন / প্রতিস্থাপন) পাবেন, Xaman আপনাকে আবার অ্যাকাউন্টের গোপনীয়তা ব্যবহার করে আপনার সমস্ত অ্যাকাউন্ট আমদানি করতে বলবে।", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "আমি আমার গোপনীয়তাগুলিকে নিরাপদে, অফলাইনে রাখব, যাতে আমি নতুন ফোন পেলে সেগুলিতে পুনরায় প্রবেশ করতে পারি", "questionsAndSupport": "প্রশ্ন ও সহায়তা", - "questionsAndSupportExplain": "আপনার যদি প্রশ্ন থাকে তবে আপনি FAQ গুলি পড়তে এবং https://support.xumm.app এ প্রশ্ন জিজ্ঞাসা করতে পারেন।\r\n\r\nএই XUMM সমর্থনের জন্য শুধুমাত্র বিশ্বস্ত চ্যানেল।", - "IOnlyTrustAnswersFromXamanSupportTeam": "আমি কেবলমাত্র https://support.xumm.app এ Xaman সমর্থন টিমের উত্তরগুলি বিশ্বাস করব।", + "questionsAndSupportExplain": "আপনার যদি প্রশ্ন থাকে তবে আপনি FAQ গুলি পড়তে এবং https://support.xaman.app এ প্রশ্ন জিজ্ঞাসা করতে পারেন।\r\n\r\nএই XUMM সমর্থনের জন্য শুধুমাত্র বিশ্বস্ত চ্যানেল।", + "IOnlyTrustAnswersFromXamanSupportTeam": "আমি কেবলমাত্র https://support.xaman.app এ Xaman সমর্থন টিমের উত্তরগুলি বিশ্বাস করব।", "pleaseReadTheTextAboveCarefully": "উপরের লেখাটি মনোযোগ সহকারে পড়ুন" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "bn-bd" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ca.json b/src/locale/translations/ca.json index 99dd2a191..3c4928916 100644 --- a/src/locale/translations/ca.json +++ b/src/locale/translations/ca.json @@ -383,7 +383,7 @@ "repeatPasscode": "Si us plau, repeteix la nova contrasenya", "passcodeDoNotMatch": "La contrasenya no coincideix!", "warnNeedPasscode": "Necessitaràs la contrasenya per desbloquejar l'aplicació", - "UnableToStoreThePasscode": "No es pot guardar la contrasenya. Això no hauria de passar. S'ha enviat un informe d'errors a l'equip de suport de Xaman. Poseu-vos en contacte amb nosaltres a support@xumm.app per a més informació.", + "UnableToStoreThePasscode": "No es pot guardar la contrasenya. Això no hauria de passar. S'ha enviat un informe d'errors a l'equip de suport de Xaman. Poseu-vos en contacte amb nosaltres a support@xaman.app per a més informació.", "weakPasscode": "Codi d'accés feble", "weakPasscodeDescription": "El codi seleccionat és fàcil d'endevinar. Et recomanem que en triïs un de més fort.", "useAnyway": "Utilitzar-lo igualment", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Quan et canviïs el telèfon (nou/substitució), per raons de seguretat, Xaman et demanarà que importis tots els comptes fent servir els patró secret de nou.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Mantindré la clau privada del compte segura fora de línia, de manera que la podré tornar a introduir en cas de canviar de telèfon", "questionsAndSupport": "Dubtes i Suport", - "questionsAndSupportExplain": "Si tens preguntes, pots llegir les FAQ i també preguntar a https://support.xumm.app.\r\nAquest és L'ÚNIC canal de confiança on XUMM ofereix suport.", - "IOnlyTrustAnswersFromXamanSupportTeam": "NOMÉS confiaré en les respostes que em doni l'equip de suport de Xaman a https://support.xumm.app", + "questionsAndSupportExplain": "Si tens preguntes, pots llegir les FAQ i també preguntar a https://support.xaman.app.\r\nAquest és L'ÚNIC canal de confiança on XUMM ofereix suport.", + "IOnlyTrustAnswersFromXamanSupportTeam": "NOMÉS confiaré en les respostes que em doni l'equip de suport de Xaman a https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Si us plau, llegeix amb atenció el text que hi ha a sobre" }, "home": { @@ -1291,4 +1291,4 @@ "weekdaysParseExact": true, "abbr": "ca" } -} \ No newline at end of file +} diff --git a/src/locale/translations/cs.json b/src/locale/translations/cs.json index 5d8988806..fdf036ccf 100644 --- a/src/locale/translations/cs.json +++ b/src/locale/translations/cs.json @@ -383,7 +383,7 @@ "repeatPasscode": "Zopakujte prosím své nové přístupové heslo", "passcodeDoNotMatch": "Přístupový kód se neshoduje!", "warnNeedPasscode": "K odemknutí aplikace budete potřebovat přístupové heslo", - "UnableToStoreThePasscode": "Přístupové heslo nelze uložit. Tato situace neměla nastat. Týmu Xaman byla odeslána zpráva o chybě. Prosím, kontaktujte nás na support@xumm.app pro více informací.", + "UnableToStoreThePasscode": "Přístupové heslo nelze uložit. Tato situace neměla nastat. Týmu Xaman byla odeslána zpráva o chybě. Prosím, kontaktujte nás na support@xaman.app pro více informací.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Když budete mít jiný telefon (nový/náhradní), z bezpečnostních důvodů vás Xaman požádá, abyste znovu importovali všechny své účty pomocí tajných klíčů.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Své tajné klíče k účtu uschovám v bezpečí offline mimo internet, abych je mohl/mohla znovu zadat, pokud budu mít nový telefon.", "questionsAndSupport": "Dotazy a podpora", - "questionsAndSupportExplain": "Máte-li dotazy, můžete si přečíst Často kladené otázky a ptát se na https://support.xumm.app.\r\n\r\nJe to jediný důvěryhodný kanál pro XUMM podporu.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Budu důvěřovat pouze odpovědím od týmu podpory Xaman na https://support.xumm.app].", + "questionsAndSupportExplain": "Máte-li dotazy, můžete si přečíst Často kladené otázky a ptát se na https://support.xaman.app.\r\n\r\nJe to jediný důvěryhodný kanál pro XUMM podporu.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Budu důvěřovat pouze odpovědím od týmu podpory Xaman na https://support.xaman.app].", "pleaseReadTheTextAboveCarefully": "Prosíme přečtěte si pozorně text nahoře" }, "home": { @@ -1262,4 +1262,4 @@ ], "abbr": "cs" } -} \ No newline at end of file +} diff --git a/src/locale/translations/da.json b/src/locale/translations/da.json index 26ab455cf..6ced3a1d5 100644 --- a/src/locale/translations/da.json +++ b/src/locale/translations/da.json @@ -383,7 +383,7 @@ "repeatPasscode": "Gentag din nye adgangskode", "passcodeDoNotMatch": "Koden stemmer ikke overens!", "warnNeedPasscode": "Du skal bruge din adgangskode for at låse appen op", - "UnableToStoreThePasscode": "Kan ikke gemme adgangskoden. Dette bør ikke ske. Der er sendt en fejlrapport til Xaman-supportteamet. Kontakt os på support@xumm.app for at få flere oplysninger.", + "UnableToStoreThePasscode": "Kan ikke gemme adgangskoden. Dette bør ikke ske. Der er sendt en fejlrapport til Xaman-supportteamet. Kontakt os på support@xaman.app for at få flere oplysninger.", "weakPasscode": "Svag adgangskode", "weakPasscodeDescription": "Den valgte adgangskode er nem at gætte. Vi anbefaler, at du vælger en stærkere kode.", "useAnyway": "Brug alligevel", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Når du får en ny telefon (ny / udskiftning), vil Xaman af sikkerhedshensyn bede dig om at importere alle dine konti ved hjælp af konto-hemmelighederne igen.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Jeg vil holde mine kontohemmeligheder sikre, offline, så jeg kan genindtaste dem, hvis jeg får en ny telefon", "questionsAndSupport": "Spørgsmål og hjælp", - "questionsAndSupportExplain": "Hvis du har spørgsmål, kan du læse ofte stillede spørgsmål og stille spørgsmål på https://support.xumm.app.\r\n\r\nDet er DEN ENESTE troværdige kilde til at få hjælp fra XUMM!", - "IOnlyTrustAnswersFromXamanSupportTeam": "Jeg vil KUN have tillid til svar, der kommer fra Xaman-supportteamet på https://support.xumm.app", + "questionsAndSupportExplain": "Hvis du har spørgsmål, kan du læse ofte stillede spørgsmål og stille spørgsmål på https://support.xaman.app.\r\n\r\nDet er DEN ENESTE troværdige kilde til at få hjælp fra XUMM!", + "IOnlyTrustAnswersFromXamanSupportTeam": "Jeg vil KUN have tillid til svar, der kommer fra Xaman-supportteamet på https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Læs venligst den ovenstående tekst nøje igennem" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "da" } -} \ No newline at end of file +} diff --git a/src/locale/translations/de.json b/src/locale/translations/de.json index 41d7da1f1..ce608b6ae 100644 --- a/src/locale/translations/de.json +++ b/src/locale/translations/de.json @@ -383,7 +383,7 @@ "repeatPasscode": "Bitte wiederholen Sie Ihren neuen Geheimzahl", "passcodeDoNotMatch": "Die Geheimzahl stimmt nicht überein!", "warnNeedPasscode": "Zum entsperren der App benötigen Sie ihre Geheimzahl", - "UnableToStoreThePasscode": "Die Geheimzahl kann nicht gespeichert werden. Das sollte nicht passieren. Ein Fehlerbericht wurde an das Xaman-Support-Team gesendet. Bitte kontaktieren Sie uns unter support@xumm.app für weitere Informationen.", + "UnableToStoreThePasscode": "Die Geheimzahl kann nicht gespeichert werden. Das sollte nicht passieren. Ein Fehlerbericht wurde an das Xaman-Support-Team gesendet. Bitte kontaktieren Sie uns unter support@xaman.app für weitere Informationen.", "weakPasscode": "Schwacher Kenncode", "weakPasscodeDescription": "Der ausgewählte Kenncode ist leicht zu erraten. Wir empfehlen Ihnen, eine stärkere zu wählen.", "useAnyway": "Trotzdem verwenden", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Falls Sie ihr Handy wechseln (zB Neu- oder Ersatzgerät), dann können Ihre bestehenden Account-Daten darauf wiederhergestellt werden. Aus Sicherheitsgründen wird Xaman Sie während des Einrichtungsvorganges dazu auffordern, ihre Account-Keys erneut einzugeben.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ich werde meine geheimen Schlüssel offline aufbewahren, damit ich sie erneut eingeben kann, wenn ich ein neues Telefon bekomme", "questionsAndSupport": "Fragen & Support", - "questionsAndSupportExplain": "Wenn Sie Fragen haben, können Sie die FAQ's lesen oder neue Fragen unter https://support.xumm.app stellen.\r\n\r\nDies ist der EINZIGE VERTRAUENSWÜRDIGE KANAL für Support von XUMM", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ich vertraue AUSSCHLIEßLICH den Antworten von dem Xaman-Support-Team auf https://support.xumm.app", + "questionsAndSupportExplain": "Wenn Sie Fragen haben, können Sie die FAQ's lesen oder neue Fragen unter https://support.xaman.app stellen.\r\n\r\nDies ist der EINZIGE VERTRAUENSWÜRDIGE KANAL für Support von XUMM", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ich vertraue AUSSCHLIEßLICH den Antworten von dem Xaman-Support-Team auf https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Bitte lesen Sie sich den obigen Text sorgfältig durch" }, "home": { @@ -1268,4 +1268,4 @@ "weekdaysParseExact": true, "abbr": "de" } -} \ No newline at end of file +} diff --git a/src/locale/translations/el.json b/src/locale/translations/el.json index 3994e74c6..7e011de8d 100644 --- a/src/locale/translations/el.json +++ b/src/locale/translations/el.json @@ -383,7 +383,7 @@ "repeatPasscode": "Παρακαλώ επαναλάβετε τον νέο κωδικό σας", "passcodeDoNotMatch": "Ο κωδικός πρόσβασης δεν ταιριάζει!", "warnNeedPasscode": "Θα χρειαστείτε κωδικό πρόσβασης για να ξεκλειδώσετε την εφαρμογή", - "UnableToStoreThePasscode": "Δεν είναι δυνατή η αποθήκευση του κωδικού πρόσβασης. Αυτό δεν πρέπει να συμβεί. Εστάλη αναφορά σφάλματος στην ομάδα υποστήριξης Xaman. Για περισσότερες πληροφορίες, επικοινωνήστε μαζί μας στο support@xumm.app", + "UnableToStoreThePasscode": "Δεν είναι δυνατή η αποθήκευση του κωδικού πρόσβασης. Αυτό δεν πρέπει να συμβεί. Εστάλη αναφορά σφάλματος στην ομάδα υποστήριξης Xaman. Για περισσότερες πληροφορίες, επικοινωνήστε μαζί μας στο support@xaman.app", "weakPasscode": "Αδύναμο κωδικός πρόσβασης", "weakPasscodeDescription": "Ο επιλεγμένος κωδικός εισόδου είναι εύκολος. Σας συνιστούμε να επιλέξετε ένα ισχυρότερο.", "useAnyway": "Χρήση, Τέλος", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Όταν παίρνετε ένα άλλο τηλέφωνο (νέα/αντικατάσταση), για λόγους ασφαλείας, το Xaman θα σας ζητήσει να εισάγετε όλους τους λογαριασμούς σας χρησιμοποιώντας τους μυστικούς κωδικούς του λογαριασμού και πάλι.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Θα κρατήσω τους κωδικούς μου ασφαλή, εκτός σύνδεσης, ώστε να μπορώ να τα επανεισάγω αν πάρω νέο τηλέφωνο", "questionsAndSupport": "Ερωτήσεις & υποστήριξη", - "questionsAndSupportExplain": "Αν έχετε απορίες, μπορείτε να διαβάσετε τις ερωτήσεις και να κάνετε ερωτήσεις στη διεύθυνση https://support.xumm.app.\n\nΑυτό είναι το ΜΟΝΟ αξιόπιστο κανάλι για υποστήριξη XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Θα εμπιστεύομαι μόνο απαντήσεις από την ομάδα υποστήριξης Xaman στη διεύθυνση https://support.xumm.app", + "questionsAndSupportExplain": "Αν έχετε απορίες, μπορείτε να διαβάσετε τις ερωτήσεις και να κάνετε ερωτήσεις στη διεύθυνση https://support.xaman.app.\n\nΑυτό είναι το ΜΟΝΟ αξιόπιστο κανάλι για υποστήριξη XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Θα εμπιστεύομαι μόνο απαντήσεις από την ομάδα υποστήριξης Xaman στη διεύθυνση https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Παρακαλώ διαβάστε το παραπάνω κείμενο προσεκτικά" }, "home": { @@ -1288,4 +1288,4 @@ }, "abbr": "el" } -} \ No newline at end of file +} diff --git a/src/locale/translations/en-AU.json b/src/locale/translations/en-AU.json index aecd44abe..4c723151b 100644 --- a/src/locale/translations/en-AU.json +++ b/src/locale/translations/en-AU.json @@ -383,7 +383,7 @@ "repeatPasscode": "Please repeat your new passcode", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "You will need your passcode to unlock the app", - "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xumm.app for more information.", + "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xaman.app for more information.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use Anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "To ensure security, Xaman will ask you to import all your accounts again using your secret key when you get a new or replacement phone.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret numeric account keys safely offline so I can re-enter them if I get a new phone.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please read our FAQ. Have more questions? Contact us at https://support.xumm.app.\r\n\r\nThis is our official, trusted channel for XUMM support. Beware, other channels may be fraudulent!", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will ONLY trust answers from the Official Xaman Support Team at https://support.xumm.app", + "questionsAndSupportExplain": "Please read our FAQ. Have more questions? Contact us at https://support.xaman.app.\r\n\r\nThis is our official, trusted channel for XUMM support. Beware, other channels may be fraudulent!", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will ONLY trust answers from the Official Xaman Support Team at https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Please read the text above carefully" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "en-au" } -} \ No newline at end of file +} diff --git a/src/locale/translations/es-419.json b/src/locale/translations/es-419.json index a693432df..2a3f62349 100644 --- a/src/locale/translations/es-419.json +++ b/src/locale/translations/es-419.json @@ -383,7 +383,7 @@ "repeatPasscode": "Por favor, repita su nueva contraseña.", "passcodeDoNotMatch": "¡La clave de acceso no coincide!", "warnNeedPasscode": "Necesitará su código de acceso (PIN) para desbloquear la aplicación", - "UnableToStoreThePasscode": "No se puede almacenar el código de acceso. Esto no debería suceder. Se envió un informe de error al equipo de soporte de Xaman. Por favor, ponte en contacto con nosotros. Escríbenos a support@xumm.app para más información.", + "UnableToStoreThePasscode": "No se puede almacenar el código de acceso. Esto no debería suceder. Se envió un informe de error al equipo de soporte de Xaman. Por favor, ponte en contacto con nosotros. Escríbenos a support@xaman.app para más información.", "weakPasscode": "Código de acceso débil", "weakPasscodeDescription": "El código de acceso seleccionado es fácil de adivinar. Te recomendamos que elijas uno más fuerte.", "useAnyway": "Utilizar De Todas Maneras", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Cuando obtenga otro teléfono (nuevo/reemplazo), por razones de seguridad, Xaman le pedirá que importe todas sus cuentas utilizando de nuevo los secretos de la cuenta.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Mantendré mis claves secretas seguras y fuera de línea para que pueda ingresarlas nuevamente si obtengo un teléfono nuevo.", "questionsAndSupport": "Preguntas y Soporte", - "questionsAndSupportExplain": "Por favor, lea el FAQ. Si tienes más preguntas, contáctenos en https://support.xumm.app.\r\n\r\n¡Este es el ÚNICO canal oficial y fiable para el soporte de XUMM, otros pueden ser FRAUDE!", - "IOnlyTrustAnswersFromXamanSupportTeam": "Sólo confío en las respuestas del equipo de soporte de Xaman en https://support.xumm.app]", + "questionsAndSupportExplain": "Por favor, lea el FAQ. Si tienes más preguntas, contáctenos en https://support.xaman.app.\r\n\r\n¡Este es el ÚNICO canal oficial y fiable para el soporte de XUMM, otros pueden ser FRAUDE!", + "IOnlyTrustAnswersFromXamanSupportTeam": "Sólo confío en las respuestas del equipo de soporte de Xaman en https://support.xaman.app]", "pleaseReadTheTextAboveCarefully": "Por favor, lea el texto de arriba cuidadosamente" }, "home": { @@ -1257,4 +1257,4 @@ "weekdaysParseExact": true, "abbr": "es" } -} \ No newline at end of file +} diff --git a/src/locale/translations/es.json b/src/locale/translations/es.json index affff3374..5427a0b1b 100644 --- a/src/locale/translations/es.json +++ b/src/locale/translations/es.json @@ -383,7 +383,7 @@ "repeatPasscode": "Por favor, repite tu código de acceso nuevo.", "passcodeDoNotMatch": "¡El código de acceso no coincide!", "warnNeedPasscode": "Necesitarás tu contraseña para desbloquear la app.", - "UnableToStoreThePasscode": "No se puede almacenar el código de acceso. Esto no debería suceder. Se envió un informe de error al equipo de soporte de Xaman. Ponte en contacto con nosotros en support@xumm.app para obtener más información.", + "UnableToStoreThePasscode": "No se puede almacenar el código de acceso. Esto no debería suceder. Se envió un informe de error al equipo de soporte de Xaman. Ponte en contacto con nosotros en support@xaman.app para obtener más información.", "weakPasscode": "Código de acceso débil", "weakPasscodeDescription": "El código de acceso seleccionado es fácil de adivinar. Te recomendamos que elijas uno más fuerte.", "useAnyway": "Utilizar De Todas Maneras", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Por seguridad, cuando cambies de teléfono, Xaman te pedirá que importes todas tus cuentas usando de nuevo las claves secretas. ", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Mantendré mis claves secretas seguras y fuera de línea para que pueda ingresarlas nuevamente si obtengo un teléfono nuevo.", "questionsAndSupport": "Preguntas y Soporte", - "questionsAndSupportExplain": "Por favor, lee el FAQ. Si tienes más preguntas, contáctanos en https://support.xumm.app.\r\n\r\n¡Este es el ÚNICO canal oficial y fiable para el soporte de XUMM, otros pueden ser FRAUDE!", - "IOnlyTrustAnswersFromXamanSupportTeam": "Sólo confiaré en las respuestas del equipo de soporte de Xaman Oficial en https://support.xumm.app", + "questionsAndSupportExplain": "Por favor, lee el FAQ. Si tienes más preguntas, contáctanos en https://support.xaman.app.\r\n\r\n¡Este es el ÚNICO canal oficial y fiable para el soporte de XUMM, otros pueden ser FRAUDE!", + "IOnlyTrustAnswersFromXamanSupportTeam": "Sólo confiaré en las respuestas del equipo de soporte de Xaman Oficial en https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Por favor, lee el texto arriba aténtamente." }, "home": { @@ -1257,4 +1257,4 @@ "weekdaysParseExact": true, "abbr": "es" } -} \ No newline at end of file +} diff --git a/src/locale/translations/et.json b/src/locale/translations/et.json index fe08974bf..33435129c 100644 --- a/src/locale/translations/et.json +++ b/src/locale/translations/et.json @@ -383,7 +383,7 @@ "repeatPasscode": "Palun korda oma uut pääsukoodi", "passcodeDoNotMatch": "Paroolikood ei klapi!", "warnNeedPasscode": "Rakenduse avamiseks vajate oma pääsukoodi", - "UnableToStoreThePasscode": "Pääsukoodi salvestamine nurjus. Seda ei tohiks juhtuda. Xaman-i tugirühmale saadeti vearaport. Lisainfo saamiseks saada e-mail support@xumm.app.", + "UnableToStoreThePasscode": "Pääsukoodi salvestamine nurjus. Seda ei tohiks juhtuda. Xaman-i tugirühmale saadeti vearaport. Lisainfo saamiseks saada e-mail support@xaman.app.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Kui sa saad uue telefoni (uue või asendustelefoni), turvalisuse huvides, Xaman palub teil importida kõik oma kontosid kasutades uuesti konto saladusi.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ma hoian oma saladused seifis, offline, nii et ma saan uuesti sisestada, kui ma saan uue telefoni", "questionsAndSupport": "Küsimused ja tugi", - "questionsAndSupportExplain": "Kui teil on küsimusi, saate lugeda KKK ja küsida küsimusi https://support.xumm.app.\r\n\r\nSee on ainus usaldusväärne XUMM-i klienditoe kanal.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ma usaldan ainult Xaman'i klienditoe vastuseid aadressilt https://support.xumm.app", + "questionsAndSupportExplain": "Kui teil on küsimusi, saate lugeda KKK ja küsida küsimusi https://support.xaman.app.\r\n\r\nSee on ainus usaldusväärne XUMM-i klienditoe kanal.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ma usaldan ainult Xaman'i klienditoe vastuseid aadressilt https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Palun lugege hoolikalt ülevalolevat teksti." }, "home": { @@ -1264,4 +1264,4 @@ ], "abbr": "et" } -} \ No newline at end of file +} diff --git a/src/locale/translations/eu.json b/src/locale/translations/eu.json index 0ed4c080a..3c5f9f961 100644 --- a/src/locale/translations/eu.json +++ b/src/locale/translations/eu.json @@ -383,7 +383,7 @@ "repeatPasscode": "Mesedez errepikatu pasakode berria", "passcodeDoNotMatch": "Pasakodea ez dator bat!", "warnNeedPasscode": "Zure pasakodea beharko duzu aplikazioa desblokeatzeko", - "UnableToStoreThePasscode": "Ezin da pasakodea gorde. Hori ez litzateke gertatu behar. Akatsen berri eman zaio Xaman laguntza taldeari. Informazio gehiagorako jar zaitez gurekin harremanetan support@xumm.app helbidera.", + "UnableToStoreThePasscode": "Ezin da pasakodea gorde. Hori ez litzateke gertatu behar. Akatsen berri eman zaio Xaman laguntza taldeari. Informazio gehiagorako jar zaitez gurekin harremanetan support@xaman.app helbidera.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Beste telefono bat (berria / ordezkoa) lortzen duzunean, segurtasun arrazoiak direla eta, Xamanek kontu guztiak sekretuak erabiliz inportatzeko eskatuko dizu berriro.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Nire sekretuak seguru gordeko ditut, lineaz kanpo, telefono berri bat lortuz gero berriro sartu ahal izateko", "questionsAndSupport": "Galderak eta laguntza", - "questionsAndSupportExplain": "Galderarik baduzu, FAQ-ak irakurri eta galderak egin ditzakezu https://support.xumm.app helbidean.\r\n\r\nHau da XUMM laguntzarako kanal fidagarri BAKARRA.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xumm.app helbidean Xaman laguntza taldearen erantzunak fidatuko ditut", + "questionsAndSupportExplain": "Galderarik baduzu, FAQ-ak irakurri eta galderak egin ditzakezu https://support.xaman.app helbidean.\r\n\r\nHau da XUMM laguntzarako kanal fidagarri BAKARRA.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xaman.app helbidean Xaman laguntza taldearen erantzunak fidatuko ditut", "pleaseReadTheTextAboveCarefully": "Mesedez irakurri arretaz goiko testua" }, "home": { @@ -1281,4 +1281,4 @@ "weekdaysParseExact": true, "abbr": "eu" } -} \ No newline at end of file +} diff --git a/src/locale/translations/fi.json b/src/locale/translations/fi.json index ee3ad5a43..1f39ebda5 100644 --- a/src/locale/translations/fi.json +++ b/src/locale/translations/fi.json @@ -383,7 +383,7 @@ "repeatPasscode": "Toista uusi salasanasi", "passcodeDoNotMatch": "Salasana ei täsmää!", "warnNeedPasscode": "Tarvitset salasanasi sovelluksen lukituksen avaamiseksi", - "UnableToStoreThePasscode": "Salasanaa ei voitu tallentaa. Näin ei pitäisi tapahtua. Xaman-tukiryhmälle on lähetetty vianmääritysraportti. Ole hyvä ja ota yhteyttä osoitteeseen support@xumm.app saadaksesi lisätietoja.", + "UnableToStoreThePasscode": "Salasanaa ei voitu tallentaa. Näin ei pitäisi tapahtua. Xaman-tukiryhmälle on lähetetty vianmääritysraportti. Ole hyvä ja ota yhteyttä osoitteeseen support@xaman.app saadaksesi lisätietoja.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Kun saat toisen puhelimen (uusi/korvaava), turvallisuussyistä Xaman pyytää sinua tuomaan kaikki tilit uudelleen tilin salaisia numeroita käyttäen.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Pidän salaisuuteni turvassa, poissa verkosta, jotta voin syöttää ne uudelleen jos saan uuden puhelimen", "questionsAndSupport": "Kysymyksiä ja tukea", - "questionsAndSupportExplain": "Jos sinulla on kysyttävää, voit lukea FAQ :n ja kysyä kysymyksiä osoitteessa https://support.xumm.app\r\n\r\nTämä on XUMM-tuen AINOA luotettava kanava.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Luotan Xaman-tukitiimin vastauksiin vain osoitteessa https://support.xumm.app", + "questionsAndSupportExplain": "Jos sinulla on kysyttävää, voit lukea FAQ :n ja kysyä kysymyksiä osoitteessa https://support.xaman.app\r\n\r\nTämä on XUMM-tuen AINOA luotettava kanava.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Luotan Xaman-tukitiimin vastauksiin vain osoitteessa https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Lue ylläoleva teksti huolellisesti" }, "home": { @@ -1267,4 +1267,4 @@ ], "abbr": "fi" } -} \ No newline at end of file +} diff --git a/src/locale/translations/fil.json b/src/locale/translations/fil.json index f459c1eb1..b1a9777eb 100644 --- a/src/locale/translations/fil.json +++ b/src/locale/translations/fil.json @@ -383,7 +383,7 @@ "repeatPasscode": "Mangyaring ulitin ang iyong bagong passcode", "passcodeDoNotMatch": "Ang passcode ay hindi tumutugma!", "warnNeedPasscode": "Kakailanganin mo ang iyong passcode upang ma-unlock ang app", - "UnableToStoreThePasscode": "Hindi maiimbak ang passcode. Hindi ito dapat mangyari. Isang ulat ng bug ang ipinadala sa koponan ng suporta ng Xaman. Mangyaring makipag-ugnay sa amin sa support@xumm.app para sa karagdagang impormasyon.", + "UnableToStoreThePasscode": "Hindi maiimbak ang passcode. Hindi ito dapat mangyari. Isang ulat ng bug ang ipinadala sa koponan ng suporta ng Xaman. Mangyaring makipag-ugnay sa amin sa support@xaman.app para sa karagdagang impormasyon.", "weakPasscode": "Mahinang passcode", "weakPasscodeDescription": "Ang napiling passcode ay madaling hulaan. Inererekomenda namin sa iyo na pumili ng mas malakas.", "useAnyway": "Gamitin pa rin", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Sa kadalihanang panseguridad, hihilingin sa iyo muli ng Xaman na i-import ang lahat ng iyong account gamit ang mga sekretong account sa panahong magpalit ka ng cellphone.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Itatago ko ang aking mga lihim na ligtas, offline, upang maipasok ko muli ang mga ito kung nakakakuha ako ng isang bagong telepono", "questionsAndSupport": "Mga Katanungan at Suporta", - "questionsAndSupportExplain": "Kung mayroon kang mga katanungan, maaari mong basahin ang mga FAQ at magtanong ng mga katanungan sa https://support.xumm.app.\r\n\r\nIto lamang ang mapagkakatiwalaang channel para sa suporta ng XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Magtiwala lang ako sa mga sagot mula sa koponan ng suporta ng Xaman sa https://support.xumm.app", + "questionsAndSupportExplain": "Kung mayroon kang mga katanungan, maaari mong basahin ang mga FAQ at magtanong ng mga katanungan sa https://support.xaman.app.\r\n\r\nIto lamang ang mapagkakatiwalaang channel para sa suporta ng XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Magtiwala lang ako sa mga sagot mula sa koponan ng suporta ng Xaman sa https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Mangyaring basahin nang maingat ang teksto sa itaas" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "fil" } -} \ No newline at end of file +} diff --git a/src/locale/translations/fr.json b/src/locale/translations/fr.json index 2759254e0..e719f9ea4 100644 --- a/src/locale/translations/fr.json +++ b/src/locale/translations/fr.json @@ -383,7 +383,7 @@ "repeatPasscode": "Veuillez répéter le mot de passe saisi précédemment", "passcodeDoNotMatch": "Le mot de passe ne correspond pas !", "warnNeedPasscode": "Vous aurez besoin de votre code d'accès pour déverrouiller l'application", - "UnableToStoreThePasscode": "Impossible de stocker le mot de passe. Cela ne devrait pas s’arriver. Un rapport d’erreur a été envoyé à l'équipe de support Xaman. Veuillez communiquer avec nous à support@xumm.app pour de plus amples renseignements.", + "UnableToStoreThePasscode": "Impossible de stocker le mot de passe. Cela ne devrait pas s’arriver. Un rapport d’erreur a été envoyé à l'équipe de support Xaman. Veuillez communiquer avec nous à support@xaman.app pour de plus amples renseignements.", "weakPasscode": "Code de passe faible", "weakPasscodeDescription": "Le mot de passe sélectionné est facile à deviner. Nous vous recommandons de choisir un plus fort.", "useAnyway": "Utiliser Anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Si vous changez de téléphone, pour des raisons de sécurité, Xaman vous demandera vos clefs secrètes afin de réinitialiser l'accès à vos comptes. ", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Je m'engage à conserver mes clefs secrètes en sécurité, hors ligne, afin de réinitialiser l'accès à mes comptes au cas où je change de téléphone.", "questionsAndSupport": "Questions et assistance", - "questionsAndSupportExplain": "Si vous avez des questions, veuillez vous référer à la FAQ officielle et poser vos questions sur https://support.xumm.app.\r\n\r\nCe sont LES SEULS moyens de communication employés par l'équipe XUMM pour fournir du support aux utilisateurs.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Je ne ferai confiance qu'aux réponses de l'équipe d'assistance Xaman à l'adresse https://support.xumm.app", + "questionsAndSupportExplain": "Si vous avez des questions, veuillez vous référer à la FAQ officielle et poser vos questions sur https://support.xaman.app.\r\n\r\nCe sont LES SEULS moyens de communication employés par l'équipe XUMM pour fournir du support aux utilisateurs.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Je ne ferai confiance qu'aux réponses de l'équipe d'assistance Xaman à l'adresse https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Veuillez lire attentivement le texte ci-dessus" }, "home": { @@ -1275,4 +1275,4 @@ "weekdaysParseExact": true, "abbr": "fr" } -} \ No newline at end of file +} diff --git a/src/locale/translations/gl-ES.json b/src/locale/translations/gl-ES.json index 88cbdc6a2..2c3e140ff 100644 --- a/src/locale/translations/gl-ES.json +++ b/src/locale/translations/gl-ES.json @@ -383,7 +383,7 @@ "repeatPasscode": "Por favor, repita o seu novo PIN.", "passcodeDoNotMatch": "¡O código PIN non coincide!", "warnNeedPasscode": "Precisará do seu código PIN para desbloquea-la app", - "UnableToStoreThePasscode": "Incapaz de almacena-lo PIN. Isto non debería suceder. Un informe de erro foi enviado ó equipo de soporte técnico de Xaman. Por favor contáctenos en support@xumm.app para máis información.", + "UnableToStoreThePasscode": "Incapaz de almacena-lo PIN. Isto non debería suceder. Un informe de erro foi enviado ó equipo de soporte técnico de Xaman. Por favor contáctenos en support@xaman.app para máis información.", "weakPasscode": "Chave de acceso débil", "weakPasscodeDescription": "A chave de acceso seleccionado é doado de adiviñar. Recomendámoslle que escolla un máis forte.", "useAnyway": "Usar de todos os xeitos", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Cando vostede teña outro teléfono (novo/resposto), por seguridade, Xaman preguntaralle para importar todas as súas contas usando a clave secreta da conta.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Gardarei as miñas claves secretas seguras, sen conexión, para que poida volver a ingresalos se recibo un novo teléfono", "questionsAndSupport": "Preguntas e Soporte", - "questionsAndSupportExplain": "Se tes alguna dúbida, podes ler as preguntas frecuentes e facer preguntas en https://support.xumm.app.\r\nEsta é A ÚNICA canle confiable de soporte de XUMM", - "IOnlyTrustAnswersFromXamanSupportTeam": "Só confiarei nas respostas do equipo de soporte de Xaman en https://support.xumm.app", + "questionsAndSupportExplain": "Se tes alguna dúbida, podes ler as preguntas frecuentes e facer preguntas en https://support.xaman.app.\r\nEsta é A ÚNICA canle confiable de soporte de XUMM", + "IOnlyTrustAnswersFromXamanSupportTeam": "Só confiarei nas respostas do equipo de soporte de Xaman en https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Por favor, lea atentamente o texto anterior." }, "home": { @@ -1271,4 +1271,4 @@ "weekdaysParseExact": true, "abbr": "gl" } -} \ No newline at end of file +} diff --git a/src/locale/translations/gu.json b/src/locale/translations/gu.json index 23d8fca37..c625aaab5 100644 --- a/src/locale/translations/gu.json +++ b/src/locale/translations/gu.json @@ -383,7 +383,7 @@ "repeatPasscode": "કૃપા કરીને તમારા નવા પાસકોડનું પુનરાવર્તન કરો", "passcodeDoNotMatch": "પાસકોડ મેળ ખાતો નથી!", "warnNeedPasscode": "એપ્લિકેશનને અનલlockક કરવા માટે તમારે તમારા પાસકોડની જરૂર પડશે", - "UnableToStoreThePasscode": "પાસકોડ સ્ટોર કરવામાં અસમર્થ. આવું ન થવું જોઈએ. Xaman સપોર્ટ ટીમને બગ રિપોર્ટ મોકલ્યો હતો. વધુ માહિતી માટે કૃપા કરીને અમારો સંપર્ક કરો સપોર્ટ@xumm.app પર.", + "UnableToStoreThePasscode": "પાસકોડ સ્ટોર કરવામાં અસમર્થ. આવું ન થવું જોઈએ. Xaman સપોર્ટ ટીમને બગ રિપોર્ટ મોકલ્યો હતો. વધુ માહિતી માટે કૃપા કરીને અમારો સંપર્ક કરો સપોર્ટ@xaman.app પર.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "જ્યારે તમને સલામતીના કારણોસર બીજો ફોન (નવો / રિપ્લેસમેન્ટ) મળે છે, ત્યારે Xaman તમને ફરીથી એકાઉન્ટ સિક્રેટ્સનો ઉપયોગ કરીને તમારા બધા એકાઉન્ટ્સ આયાત કરવાનું કહેશે.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "હું મારા રહસ્યોને સુરક્ષિત, ઓફલાઇન, જેથી જો મને કોઈ નવો ફોન મળે તો હું ફરીથી દાખલ કરી શકું", "questionsAndSupport": "પ્રશ્નો & આધાર", - "questionsAndSupportExplain": "તમે પ્રશ્નો હોય, તો તમે વારંવાર પૂછાતા પ્રશ્નો વાંચવાની અને https://support.xumm.app પર પ્રશ્નો પૂછી શકો છો.\r\n\r\nXUMM સપોર્ટ માટે આ એકમાત્ર વિશ્વસનીય ચેનલ છે.", - "IOnlyTrustAnswersFromXamanSupportTeam": "હું ફક્ત https://support.xumm.app પર Xaman સપોર્ટ ટીમના જવાબો પર વિશ્વાસ કરીશ.", + "questionsAndSupportExplain": "તમે પ્રશ્નો હોય, તો તમે વારંવાર પૂછાતા પ્રશ્નો વાંચવાની અને https://support.xaman.app પર પ્રશ્નો પૂછી શકો છો.\r\n\r\nXUMM સપોર્ટ માટે આ એકમાત્ર વિશ્વસનીય ચેનલ છે.", + "IOnlyTrustAnswersFromXamanSupportTeam": "હું ફક્ત https://support.xaman.app પર Xaman સપોર્ટ ટીમના જવાબો પર વિશ્વાસ કરીશ.", "pleaseReadTheTextAboveCarefully": "કૃપા કરીને ઉપરોક્ત ટેક્સ્ટને કાળજીપૂર્વક વાંચો" }, "home": { @@ -1276,4 +1276,4 @@ "monthsParseExact": true, "abbr": "gu" } -} \ No newline at end of file +} diff --git a/src/locale/translations/he.json b/src/locale/translations/he.json index 6e34b7c4c..df73b140a 100644 --- a/src/locale/translations/he.json +++ b/src/locale/translations/he.json @@ -383,7 +383,7 @@ "repeatPasscode": "נא לחזור על קוד הכניסה החדש", "passcodeDoNotMatch": "קוד הגישה לא תואם!", "warnNeedPasscode": "אתה צריך את הסיסמה שלך כדי לפתוח את האפליקציה", - "UnableToStoreThePasscode": "לא ניתן לאחסן את קוד הכניסה. זה לא אמור לקרות. דוח באגים נשלח לצוות התמיכה של Xaman. אנא צור איתנו קשר עם support@xumm.app לקבלת מידע נוסף.", + "UnableToStoreThePasscode": "לא ניתן לאחסן את קוד הכניסה. זה לא אמור לקרות. דוח באגים נשלח לצוות התמיכה של Xaman. אנא צור איתנו קשר עם support@xaman.app לקבלת מידע נוסף.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "כאשר תקבל טלפון אחר (חדש / החלפה), מטעמי אבטחה, Xaman יבקש ממך לייבא שוב את כל חשבונותיך באמצעות סודות החשבון.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "אני אשמור על סודותיי בטוחים, במצב לא מקוון, כדי שאוכל להזין אותם מחדש אם אקבל טלפון חדש", "questionsAndSupport": "שאלות ותמיכה", - "questionsAndSupportExplain": "אם יש לך שאלות, אתה יכול לקרוא שאלות נפוצות ולשאול שאלות בכתובת https://support.xumm.app.\r\n\r\nזהו הערוץ המהימן היחיד לתמיכה ב- XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "אני אמון על תשובות מצוות התמיכה של Xaman רק בכתובת https://support.xumm.app", + "questionsAndSupportExplain": "אם יש לך שאלות, אתה יכול לקרוא שאלות נפוצות ולשאול שאלות בכתובת https://support.xaman.app.\r\n\r\nזהו הערוץ המהימן היחיד לתמיכה ב- XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "אני אמון על תשובות מצוות התמיכה של Xaman רק בכתובת https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "אנא קרא בעיון את הטקסט לעיל" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "he" } -} \ No newline at end of file +} diff --git a/src/locale/translations/hi-IN.json b/src/locale/translations/hi-IN.json index 7dfaa6c35..4c89fe442 100644 --- a/src/locale/translations/hi-IN.json +++ b/src/locale/translations/hi-IN.json @@ -383,7 +383,7 @@ "repeatPasscode": "कृपया अपना नया पासकोड दोहराएं", "passcodeDoNotMatch": "पासकोड मेल नहीं खाता है!", "warnNeedPasscode": "ऐप को अनलॉक करने के लिए आपको अपने पासकोड की आवश्यकता होगी", - "UnableToStoreThePasscode": "पासकोड संग्रहीत करने में असमर्थ। ऐसा न हो कि। Xaman समर्थन टीम को एक बग रिपोर्ट भेजी गई थी। अधिक जानकारी के लिए support@xumm.app पर संपर्क करें।", + "UnableToStoreThePasscode": "पासकोड संग्रहीत करने में असमर्थ। ऐसा न हो कि। Xaman समर्थन टीम को एक बग रिपोर्ट भेजी गई थी। अधिक जानकारी के लिए support@xaman.app पर संपर्क करें।", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "जब आप सुरक्षा कारणों से एक और फोन (नया / प्रतिस्थापन) प्राप्त करते हैं, तो Xaman आपसे खाता रहस्यों का उपयोग करके अपने सभी खातों को फिर से आयात करने के लिए कहेगा।", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "मैं अपनी गुप्त खाता कुंजियों को सुरक्षित रूप से ऑफ़लाइन रखूंगा ताकि नया फ़ोन मिलने पर मैं उन्हें पुनः दर्ज कर सकूँ।", "questionsAndSupport": "प्रश्न और समर्थन", - "questionsAndSupportExplain": "यदि आपके कोई प्रश्न हैं, तो आप अक्सर पूछे जाने वाले प्रश्न पढ़ सकते हैं और https://support.xumm.app पर प्रश्न पूछ सकते हैं।\r\n\r\nयह XUMM समर्थन के लिए केवल भरोसेमंद चैनल है।", - "IOnlyTrustAnswersFromXamanSupportTeam": "मैं https://support.xumm.app पर केवल Xaman सपोर्ट टीम के उत्तरों पर भरोसा करूंगा", + "questionsAndSupportExplain": "यदि आपके कोई प्रश्न हैं, तो आप अक्सर पूछे जाने वाले प्रश्न पढ़ सकते हैं और https://support.xaman.app पर प्रश्न पूछ सकते हैं।\r\n\r\nयह XUMM समर्थन के लिए केवल भरोसेमंद चैनल है।", + "IOnlyTrustAnswersFromXamanSupportTeam": "मैं https://support.xaman.app पर केवल Xaman सपोर्ट टीम के उत्तरों पर भरोसा करूंगा", "pleaseReadTheTextAboveCarefully": "कृपया ऊपर दिए गए पाठ को ध्यान से पढ़ें" }, "home": { @@ -1291,4 +1291,4 @@ ], "abbr": "hi" } -} \ No newline at end of file +} diff --git a/src/locale/translations/hr.json b/src/locale/translations/hr.json index b0bc4a6b0..31f6ce6d0 100644 --- a/src/locale/translations/hr.json +++ b/src/locale/translations/hr.json @@ -383,7 +383,7 @@ "repeatPasscode": "Molimo ponovno unesite vašu lozinku", "passcodeDoNotMatch": "Lozinka se ne podudara!", "warnNeedPasscode": "Za otključavanje aplikacije trebat će vam lozinka", - "UnableToStoreThePasscode": "Ne može se spremiti pristupni kod. Ovo se ne bi trebalo dogoditi. Izvještaj o kvaru je poslan u Xaman tim za podršku. Molimo kontaktirajte nas na @xumm.app za više informacija.", + "UnableToStoreThePasscode": "Ne može se spremiti pristupni kod. Ovo se ne bi trebalo dogoditi. Izvještaj o kvaru je poslan u Xaman tim za podršku. Molimo kontaktirajte nas na @xaman.app za više informacija.", "weakPasscode": "Slaba lozinka", "weakPasscodeDescription": "Odabranu lozinku je lako pogoditi. Preporučujemo da odaberete jači.", "useAnyway": "Koristite svejedno", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Kad nabavite drugi telefon (novi / zamjenski), iz sigurnosnih razloga Xaman će od vas zatražiti da ponovo uvezete sve svoje račune koristeći tajne računa.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Čuvat ću svoje tajne ključeve (lozinke) sigurnima (izvan mreže), kako bi ih mogao unijeti kada mijenjam mobitel", "questionsAndSupport": "Pitanja i podrška", - "questionsAndSupportExplain": "Ako imate pitanja, možete pročitati često postavljana pitanja i postavljati pitanja na https://support.xumm.app.\r\n\r\nOvo je JEDINI pouzdani kanal za XUMM podršku.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Vjerovat ću samo odgovorima tima za podršku Xaman-a na https://support.xumm.app]", + "questionsAndSupportExplain": "Ako imate pitanja, možete pročitati često postavljana pitanja i postavljati pitanja na https://support.xaman.app.\r\n\r\nOvo je JEDINI pouzdani kanal za XUMM podršku.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Vjerovat ću samo odgovorima tima za podršku Xaman-a na https://support.xaman.app]", "pleaseReadTheTextAboveCarefully": "Molimo pažljivo pročitajte gornji tekst" }, "home": { @@ -1283,4 +1283,4 @@ "weekdaysParseExact": true, "abbr": "hr" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ht.json b/src/locale/translations/ht.json index 60e23cb53..fae369f5b 100644 --- a/src/locale/translations/ht.json +++ b/src/locale/translations/ht.json @@ -383,7 +383,7 @@ "repeatPasscode": "Tanpri repete nouvo paskod ou an", "passcodeDoNotMatch": "Paskod la pa matche ak!", "warnNeedPasscode": "Ou pral bezwen paskod ou a déblotché app a", - "UnableToStoreThePasscode": "Kapab nan magazen paskod la. Sa pa ta dwe rive. Yo te voye yon rapò ensèk nan ekip sipò Xaman. Tanpri kontakte nou nan support@xumm.app pou plis enfòmasyon.", + "UnableToStoreThePasscode": "Kapab nan magazen paskod la. Sa pa ta dwe rive. Yo te voye yon rapò ensèk nan ekip sipò Xaman. Tanpri kontakte nou nan support@xaman.app pou plis enfòmasyon.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Lè ou jwenn yon lòt telefòn (nouvo / ranplasman), pou rezon sekirite, Xaman ap mande ou enpòte tout kont ou lè l sèvi avèk sekrè yo kont ankò.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Mwen pral kenbe sekrè mwen an san danje, offline, se konsa mwen ka re-antre nan yo si mwen jwenn yon nouvo telefòn", "questionsAndSupport": "Kesyon & Sipò", - "questionsAndSupportExplain": "Si ou gen kesyon, ou ka li FAQ yo epi poze kesyon nan https://support.xumm.app.\r\n\r\nSa a se sèl chanèl konfyans pou sipò XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Mwen pral sèlman fè konfyans repons nan ekip sipò Xaman nan https://support.xumm.app", + "questionsAndSupportExplain": "Si ou gen kesyon, ou ka li FAQ yo epi poze kesyon nan https://support.xaman.app.\r\n\r\nSa a se sèl chanèl konfyans pou sipò XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Mwen pral sèlman fè konfyans repons nan ekip sipò Xaman nan https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Tanpri li tèks ki anwo a ak anpil atansyon" }, "home": { @@ -1292,4 +1292,4 @@ ], "abbr": "en" } -} \ No newline at end of file +} diff --git a/src/locale/translations/hu.json b/src/locale/translations/hu.json index 576b244bc..d948f150c 100644 --- a/src/locale/translations/hu.json +++ b/src/locale/translations/hu.json @@ -383,7 +383,7 @@ "repeatPasscode": "Please repeat your new passcode", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "You will need your passcode to unlock the app", - "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xumm.app for more information.", + "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xaman.app for more information.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Using Xaman with a new device will require you to re-enter your secret keys for any accounts you have previously created.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret account keys safe and offline, so I can re-enter them if I get a new device.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xumm.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xumm.app ", + "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xaman.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xaman.app ", "pleaseReadTheTextAboveCarefully": "Please read the above text carefully" }, "home": { @@ -1262,4 +1262,4 @@ "monthsParseExact": true, "abbr": "hu" } -} \ No newline at end of file +} diff --git a/src/locale/translations/id.json b/src/locale/translations/id.json index b52f12513..ebc1cf4b1 100644 --- a/src/locale/translations/id.json +++ b/src/locale/translations/id.json @@ -383,7 +383,7 @@ "repeatPasscode": "Harap ulangi kode sandi baru Anda", "passcodeDoNotMatch": "Kata sandi tidak cocok!", "warnNeedPasscode": "Anda akan memerlukan kode sandi Anda untuk membuka kunci aplikasi", - "UnableToStoreThePasscode": "Tidak dapat menyimpan kode sandi. Ini seharusnya tidak boleh terjadi. Sebuah laporan bug dikirim ke tim dukungan Xaman. Silahkan hubungi kami di support@xumm.app untuk informasi lebih lanjut.", + "UnableToStoreThePasscode": "Tidak dapat menyimpan kode sandi. Ini seharusnya tidak boleh terjadi. Sebuah laporan bug dikirim ke tim dukungan Xaman. Silahkan hubungi kami di support@xaman.app untuk informasi lebih lanjut.", "weakPasscode": "Kode sandi lemah", "weakPasscodeDescription": "Kode sandi yang dipilih mudah untuk menebak. Kami merekomendasikanmu untuk memilih yang lebih kuat.", "useAnyway": "Gunakan Saja", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Ketika Anda mendapatkan perangkat lain (baru/pengganti), untuk alasan keamanan, Xaman akan meminta Anda untuk mengimpor semua akun Anda menggunakan rahasia akun lagi.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Saya akan menyimpan rahasia saya dengan aman, offline, sehingga saya dapat memasukkannya kembali jika saya mendapatkan telepon baru", "questionsAndSupport": "Pertanyaan & Dukungan", - "questionsAndSupportExplain": "Jika Anda memiliki pertanyaan, Anda dapat membaca FAQ dan mengajukan pertanyaan di https://support.xumm.app.\r\n\r\nIni adalah SATU-SATUNYA saluran tepercaya untuk dukungan XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Saya hanya akan mempercayai jawaban dari tim dukungan Xaman di https://support.xumm.app", + "questionsAndSupportExplain": "Jika Anda memiliki pertanyaan, Anda dapat membaca FAQ dan mengajukan pertanyaan di https://support.xaman.app.\r\n\r\nIni adalah SATU-SATUNYA saluran tepercaya untuk dukungan XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Saya hanya akan mempercayai jawaban dari tim dukungan Xaman di https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Harap baca teks di atas dengan cermat" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "id" } -} \ No newline at end of file +} diff --git a/src/locale/translations/it.json b/src/locale/translations/it.json index 5e1d42399..6e19227b8 100644 --- a/src/locale/translations/it.json +++ b/src/locale/translations/it.json @@ -383,7 +383,7 @@ "repeatPasscode": "Si prega di ripetere il tuo nuovo codice di sblocco", "passcodeDoNotMatch": "Il codice di sblocco non combacia!", "warnNeedPasscode": "Avrai bisogno del tuo codice di sblocco per sbloccare l'app", - "UnableToStoreThePasscode": "Impossibile memorizzare il codice di sblocco. Questo non dovrebbe accadere. Una segnalazione di bug è stata inviata al team di supporto Xaman. Contattarlo all'indirizzo support@xumm.app per ulteriori informazioni.", + "UnableToStoreThePasscode": "Impossibile memorizzare il codice di sblocco. Questo non dovrebbe accadere. Una segnalazione di bug è stata inviata al team di supporto Xaman. Contattarlo all'indirizzo support@xaman.app per ulteriori informazioni.", "weakPasscode": "Codice di accesso debole", "weakPasscodeDescription": "Il codice di accesso selezionato è facile da indovinare. Ti consigliamo di sceglierne uno più difficile.", "useAnyway": "Utilizza comunque", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Quando cambi telefono, per motivi di sicurezza, Xaman ti chiederà di importare tutti i tuoi account usando le loro chiavi segrete.\r\n", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Custodirò in un luogo sicuro la mia chiave segreta - offline - in modo che potrò riutilizzarla nel caso in cui cambi telefono", "questionsAndSupport": "Domande e assistenza", - "questionsAndSupportExplain": "Se hai domande, puoi leggere le FAQ e porre domande su https://support.xumm.app.\r\n\r\nQuesto è L'UNICO canale affidabile per il supporto XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Mi fiderò SOLAMENTE delle risposte ricevute dal Team di Supporto Xaman dell'indirizzo https://support.xumm.app", + "questionsAndSupportExplain": "Se hai domande, puoi leggere le FAQ e porre domande su https://support.xaman.app.\r\n\r\nQuesto è L'UNICO canale affidabile per il supporto XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Mi fiderò SOLAMENTE delle risposte ricevute dal Team di Supporto Xaman dell'indirizzo https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Si prega di leggere attentamente il testo scritto sopra" }, "home": { @@ -1270,4 +1270,4 @@ ], "abbr": "it" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ja.json b/src/locale/translations/ja.json index 9f15c79d3..a7b6a7a8c 100644 --- a/src/locale/translations/ja.json +++ b/src/locale/translations/ja.json @@ -383,7 +383,7 @@ "repeatPasscode": "新しいパスコードをもう一度入力してください", "passcodeDoNotMatch": "パスコードが一致しません!", "warnNeedPasscode": "アプリのロックを解除するにはパスコードが必要です。", - "UnableToStoreThePasscode": "パスコードが保存できません。想定外のエラーのため、バグレポートがXamanサポートチームに送信されました。詳細については、 support@xumm.app までお問い合わせ下さい。", + "UnableToStoreThePasscode": "パスコードが保存できません。想定外のエラーのため、バグレポートがXamanサポートチームに送信されました。詳細については、 support@xaman.app までお問い合わせ下さい。", "weakPasscode": "脆弱なパスコード", "weakPasscodeDescription": "選択されたパスコードは簡単に推測できます。より強力なものを選択することをお勧めします。", "useAnyway": "とにかく使ってみる", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "新しいデバイスでXamanを使用する際には、以前に作成したアカウントのシークレットキーを再度入力する必要があります。", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "アカウントのシークレットキーはオフラインで安全に保管し、新しいデバイスを手に入れたときに再入力できるようにしておきます。", "questionsAndSupport": "お問い合わせ・サポート", - "questionsAndSupportExplain": "ご不明な点がございましたら、お気軽にお問い合わせください。疑問がある場合は、決して操作を続行せず、まずサポートチームに確認してください。\r\n\r\nよくある質問とヘルプセンターは、https://support.xumm.app から確認できます。\n\nアプリ内から、\"Xaman Support\" xAppを使用してサポートを受けることもできます。SNSのサポートは利用しないでください。", - "IOnlyTrustAnswersFromXamanSupportTeam": "https://support.xumm.app のXamanサポートチームからの回答を信用します。", + "questionsAndSupportExplain": "ご不明な点がございましたら、お気軽にお問い合わせください。疑問がある場合は、決して操作を続行せず、まずサポートチームに確認してください。\r\n\r\nよくある質問とヘルプセンターは、https://support.xaman.app から確認できます。\n\nアプリ内から、\"Xaman Support\" xAppを使用してサポートを受けることもできます。SNSのサポートは利用しないでください。", + "IOnlyTrustAnswersFromXamanSupportTeam": "https://support.xaman.app のXamanサポートチームからの回答を信用します。", "pleaseReadTheTextAboveCarefully": "上記の文章をよくお読みください" }, "home": { @@ -1333,4 +1333,4 @@ ], "abbr": "ja" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ka.json b/src/locale/translations/ka.json index 9d1034fc7..4f1ddb7ed 100644 --- a/src/locale/translations/ka.json +++ b/src/locale/translations/ka.json @@ -383,7 +383,7 @@ "repeatPasscode": "გთხოვთ გაიმეოროთ თქვენი ახალი პასკოდი", "passcodeDoNotMatch": "პასკოდები არ ემთხვევა!", "warnNeedPasscode": "თქვენ დაგჭირდებათ საიდუმლო კოდი აპის განბლოკვისთვის", - "UnableToStoreThePasscode": "შეუძლებელია პასკოდის შენახვა. ეს არ უნდა მომხდარიყო. ხარვეზის რეპორტი გაგზავნილია Xaman-ის ტექნიკური დახმარების ჯგუფთან. გთხოვთ მოგვწეროთ დამატებითი ინფორმაციისთვის support@xumm.app.", + "UnableToStoreThePasscode": "შეუძლებელია პასკოდის შენახვა. ეს არ უნდა მომხდარიყო. ხარვეზის რეპორტი გაგზავნილია Xaman-ის ტექნიკური დახმარების ჯგუფთან. გთხოვთ მოგვწეროთ დამატებითი ინფორმაციისთვის support@xaman.app.", "weakPasscode": "სუსტი პაროლი", "weakPasscodeDescription": "არჩეული პაროლის გამოცნობა ადვილია. ჩვენ გირჩევთ აირჩიოთ უფრო ძლიერი.", "useAnyway": "მაინც გამოყენება", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "ახალი მოწყობილობის გამოყენების შემთხვევაში, საჭირო იქნება ანგარიშების ხელახლა დამატება აპლიკაციაში თქვენი სეკრეტების მეშვეობით.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "მე შევინახავ ჩემი ანგარიშის სეკრეტს უსაფრთხო ადგილას-ოფლაინ. მე გამოვიყენებ მას, მხოლოდ იმ შემთხვევაში თუ მექნება ახალი მოწყობილობა. ", "questionsAndSupport": "კითხვები და დახმარება", - "questionsAndSupportExplain": "თუ გაქვთ შეკითხვები შეგიძლიათ გაეცნოთ \"ხშირად დასმულ კითხვებს\", ასევე მიმართოთ: https://support.xumm.app \r\n\r\nეს არის ერთადერთი სანდო წყარო XUMM აპლიკაციაში დახმარების მისაღებად. ", - "IOnlyTrustAnswersFromXamanSupportTeam": "მე მხოლოდ ვენდობი Xaman აპლიკაციის დახმარების ჯგუფის მიერ გაცემულ პასუხებს შემდეგი მისამართიდან: https://support.xumm.app", + "questionsAndSupportExplain": "თუ გაქვთ შეკითხვები შეგიძლიათ გაეცნოთ \"ხშირად დასმულ კითხვებს\", ასევე მიმართოთ: https://support.xaman.app \r\n\r\nეს არის ერთადერთი სანდო წყარო XUMM აპლიკაციაში დახმარების მისაღებად. ", + "IOnlyTrustAnswersFromXamanSupportTeam": "მე მხოლოდ ვენდობი Xaman აპლიკაციის დახმარების ჯგუფის მიერ გაცემულ პასუხებს შემდეგი მისამართიდან: https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "გთხოვთ ყურადღებით გაეცნოთ ზემოთ მოცემულ ტექსტს" }, "home": { @@ -1284,4 +1284,4 @@ ], "abbr": "ka" } -} \ No newline at end of file +} diff --git a/src/locale/translations/kk.json b/src/locale/translations/kk.json index 9783c21cf..83888e510 100644 --- a/src/locale/translations/kk.json +++ b/src/locale/translations/kk.json @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Басқа телефонды (жаңа / ауыстырылған) алған кезде, қауіпсіздік мақсатында XUM сізден есептік жазба құпияларын қолдана отырып, барлық есептік жазбаларыңызды қайтадан импорттауды сұрайды.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Мен өзімнің құпиямды қауіпсіз, офлайн режимде сақтаймын, егер мен жаңа телефон алсам, оларға қайта кіре аламын", "questionsAndSupport": "Сұрақтар мен қолдау", - "questionsAndSupportExplain": "Егер сізде сұрақтар туындаса, сіз FAQ оқып, оларды мына мекен-жай бойынша сұрай аласыз https://support.xumm.app.\r\n\r\nБұл XUMM қолдау үшін жалғыз сенімді арна.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Мен тек Xaman қолдау тобының жауабына сенемін https://support.xumm.app ]", + "questionsAndSupportExplain": "Егер сізде сұрақтар туындаса, сіз FAQ оқып, оларды мына мекен-жай бойынша сұрай аласыз https://support.xaman.app.\r\n\r\nБұл XUMM қолдау үшін жалғыз сенімді арна.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Мен тек Xaman қолдау тобының жауабына сенемін https://support.xaman.app ]", "pleaseReadTheTextAboveCarefully": "Жоғарыдағы мәтінді мұқият оқып шығыңыз" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "kk" } -} \ No newline at end of file +} diff --git a/src/locale/translations/kn.json b/src/locale/translations/kn.json index 55f54ecaa..1b40cf0d1 100644 --- a/src/locale/translations/kn.json +++ b/src/locale/translations/kn.json @@ -383,7 +383,7 @@ "repeatPasscode": "ದಯವಿಟ್ಟು ನಿಮ್ಮ ಹೊಸ ಪಾಸ್‌ಕೋಡ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸಿ", "passcodeDoNotMatch": "ಪಾಸ್ಕೋಡ್ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ!", "warnNeedPasscode": "ಅಪ್ಲಿಕೇಶನ್ ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್ಕೋಡ್ ಅಗತ್ಯವಿದೆ", - "UnableToStoreThePasscode": "ಪಾಸ್ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದು ಸಂಭವಿಸಬಾರದು. ದೋಷ ವರದಿಯನ್ನು Xaman ಬೆಂಬಲ ತಂಡಕ್ಕೆ ಕಳುಹಿಸಲಾಗಿದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು support@xumm.app ನಲ್ಲಿ ನಮ್ಮನ್ನು ಸಂಪರ್ಕಿಸಿ.", + "UnableToStoreThePasscode": "ಪಾಸ್ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದು ಸಂಭವಿಸಬಾರದು. ದೋಷ ವರದಿಯನ್ನು Xaman ಬೆಂಬಲ ತಂಡಕ್ಕೆ ಕಳುಹಿಸಲಾಗಿದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು support@xaman.app ನಲ್ಲಿ ನಮ್ಮನ್ನು ಸಂಪರ್ಕಿಸಿ.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "ನೀವು ಇನ್ನೊಂದು ಫೋನ್ ಪಡೆದಾಗ (ಹೊಸ / ಬದಲಿ), ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ, ಖಾತೆ ರಹಸ್ಯಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಎಲ್ಲಾ ಖಾತೆಗಳನ್ನು ಮತ್ತೆ ಆಮದು ಮಾಡಲು Xaman ಕೇಳುತ್ತದೆ.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "ನನ್ನ ರಹಸ್ಯಗಳನ್ನು ನಾನು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿರಿಸುತ್ತೇನೆ, ಹಾಗಾಗಿ ನಾನು ಹೊಸ ಫೋನ್ ಪಡೆದರೆ ಅವುಗಳನ್ನು ಮರು ನಮೂದಿಸಬಹುದು", "questionsAndSupport": "ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಬೆಂಬಲ", - "questionsAndSupportExplain": "ನೀವು ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವು FAQ ಗಳನ್ನು ಓದಬಹುದು ಮತ್ತು https://support.xumm.app ನಲ್ಲಿ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಬಹುದು.\r\n\r\nXUMM ಬೆಂಬಲಕ್ಕಾಗಿ ಇದು ಕೇವಲ ವಿಶ್ವಾಸಾರ್ಹ ಚಾನಲ್ ಆಗಿದೆ.", - "IOnlyTrustAnswersFromXamanSupportTeam": "ನಾನು https://support.xumm.app ನಲ್ಲಿ Xaman ಬೆಂಬಲ ತಂಡದಿಂದ ಉತ್ತರಗಳನ್ನು ಮಾತ್ರ ನಂಬುತ್ತೇನೆ.", + "questionsAndSupportExplain": "ನೀವು ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವು FAQ ಗಳನ್ನು ಓದಬಹುದು ಮತ್ತು https://support.xaman.app ನಲ್ಲಿ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಬಹುದು.\r\n\r\nXUMM ಬೆಂಬಲಕ್ಕಾಗಿ ಇದು ಕೇವಲ ವಿಶ್ವಾಸಾರ್ಹ ಚಾನಲ್ ಆಗಿದೆ.", + "IOnlyTrustAnswersFromXamanSupportTeam": "ನಾನು https://support.xaman.app ನಲ್ಲಿ Xaman ಬೆಂಬಲ ತಂಡದಿಂದ ಉತ್ತರಗಳನ್ನು ಮಾತ್ರ ನಂಬುತ್ತೇನೆ.", "pleaseReadTheTextAboveCarefully": "ದಯವಿಟ್ಟು ಮೇಲಿನ ಪಠ್ಯವನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಓದಿ" }, "home": { @@ -1275,4 +1275,4 @@ "monthsParseExact": true, "abbr": "kn" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ko.json b/src/locale/translations/ko.json index 895da6fe3..108ab8e40 100644 --- a/src/locale/translations/ko.json +++ b/src/locale/translations/ko.json @@ -383,7 +383,7 @@ "repeatPasscode": "새 비밀번호를 다시 입력하십시오", "passcodeDoNotMatch": "비밀번호가 일치하지 않습니다!", "warnNeedPasscode": "앱 잠금을 해제하려면 암호가 필요합니다.", - "UnableToStoreThePasscode": "패스코드를 저장할 수 없습니다. Xaman 지원 팀에게 오류 보고서가 제출되었습니다. 자세한 내용은 support@xumm.app 으로 문의하십시오.", + "UnableToStoreThePasscode": "패스코드를 저장할 수 없습니다. Xaman 지원 팀에게 오류 보고서가 제출되었습니다. 자세한 내용은 support@xaman.app 으로 문의하십시오.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "핸드폰을 교체 했을 시, 보안상의 이유로 Xaman은 다시 한 번 계좌의 비밀키를 사용하여 모든 계좌를 가져오도록 요청할 것입니다.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "나는 내 비밀 키를 안전하게, 오프라인에 보관하겠습니다. 그래서 새로운 전화기를 사용하게 되면 다시 그 비밀 키를 입력할 수 있습니다", "questionsAndSupport": "질문 및 지원", - "questionsAndSupportExplain": "질문이 있으면 https://support.xumm.app 에서 FAQ를 읽고 질문을 할 수 있습니다.\r\n\r\n이 곳이 유일하게 신뢰할 수 있는 XUMM 지원 채널입니다.", - "IOnlyTrustAnswersFromXamanSupportTeam": "나는 https://support.xumm.app 에서 Xaman 지원 팀의 답변만 믿겠습니다", + "questionsAndSupportExplain": "질문이 있으면 https://support.xaman.app 에서 FAQ를 읽고 질문을 할 수 있습니다.\r\n\r\n이 곳이 유일하게 신뢰할 수 있는 XUMM 지원 채널입니다.", + "IOnlyTrustAnswersFromXamanSupportTeam": "나는 https://support.xaman.app 에서 Xaman 지원 팀의 답변만 믿겠습니다", "pleaseReadTheTextAboveCarefully": "위의 글을 주의 깊게 읽으십시오" }, "home": { @@ -1278,4 +1278,4 @@ ], "abbr": "ko" } -} \ No newline at end of file +} diff --git a/src/locale/translations/lt.json b/src/locale/translations/lt.json index 1a30e63ca..300504a75 100644 --- a/src/locale/translations/lt.json +++ b/src/locale/translations/lt.json @@ -383,7 +383,7 @@ "repeatPasscode": "Prašome pakartoti savo naują kodą", "passcodeDoNotMatch": "Slaptažodis nesutampa!", "warnNeedPasscode": "Jums reikės savo slaptažodį atrakinti programą", - "UnableToStoreThePasscode": "Nepavyko išsaugoti kodo. Tai neturėtų atsitikti. Re ataskaita buvo nusiųsta į Xaman palaikymo komanda. Prašome susisiekti su mumis support@xumm.app daugiau informacijos.", + "UnableToStoreThePasscode": "Nepavyko išsaugoti kodo. Tai neturėtų atsitikti. Re ataskaita buvo nusiųsta į Xaman palaikymo komanda. Prašome susisiekti su mumis support@xaman.app daugiau informacijos.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Kai gausite kitą telefoną (naują / pakeistą), saugumo sumetimais Xaman vėl paprašys visų paskyrų importuoti naudodamas paskyros paslaptis.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Aš nuolat mano paslaptis saugi, offline, todėl galiu iš naujo įvesti juos, jei gausiu naują telefoną", "questionsAndSupport": "Klausimai ir palaikymas", - "questionsAndSupportExplain": "Jei turite klausimų, galite skaityti DUK ir užduoti klausimus https://support.xumm.app.\r\n\r\nTai yra vienintelis patikimas XUMM klientų aptarnavimo kanalas.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Pasitikėsiu tik Xaman palaikymo komandos atsakymais adresu https://support.xumm.app", + "questionsAndSupportExplain": "Jei turite klausimų, galite skaityti DUK ir užduoti klausimus https://support.xaman.app.\r\n\r\nTai yra vienintelis patikimas XUMM klientų aptarnavimo kanalas.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Pasitikėsiu tik Xaman palaikymo komandos atsakymais adresu https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Atidžiai perskaitykite aukščiau pateiktą tekstą" }, "home": { @@ -1296,4 +1296,4 @@ "weekdaysParseExact": true, "abbr": "lt" } -} \ No newline at end of file +} diff --git a/src/locale/translations/lv.json b/src/locale/translations/lv.json index 89c3fa7d3..b38dcb320 100644 --- a/src/locale/translations/lv.json +++ b/src/locale/translations/lv.json @@ -383,7 +383,7 @@ "repeatPasscode": "Lūdzu, atkārtojiet savu jauno piekļuves kodu", "passcodeDoNotMatch": "Pieejas kods nesakrīt!", "warnNeedPasscode": "Jums būs nepieciešams jūsu piekļuves kodu, lai atbloķētu lietotni", - "UnableToStoreThePasscode": "Neizdevās saglabāt piekļuves kodu. Tas nedrīkst notikt. Xaman atbalsta komandai tika nosūtīts kļūdas ziņojums. Lūdzu, sazinieties ar mums support@xumm.app, lai iegūtu vairāk informācijas.", + "UnableToStoreThePasscode": "Neizdevās saglabāt piekļuves kodu. Tas nedrīkst notikt. Xaman atbalsta komandai tika nosūtīts kļūdas ziņojums. Lūdzu, sazinieties ar mums support@xaman.app, lai iegūtu vairāk informācijas.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Kad iegūsiet citu telefonu (jaunu/samainītu), tad drošības apsvērumu dēļ, Xaman lūgs jums vēlreiz migrēt visus savus kontus, izmantojot kontu pieejas datus.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ja dabūšu jaunu tālruni, tad turēšu savus pieejas datus bezsaistē, lai varētu tos ievadīt atkārtoti", "questionsAndSupport": "Jautājumi un atbalsts", - "questionsAndSupportExplain": "Ja jums ir jautājumi, jūs varat izlasīt sadaļu BUJ, kā arī uzdot jautājumus https://support.xumm.app.\r\n\r\nTas ir VIENĪGAIS uzticamais kanāls XUMM atbalstam.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Es uzticos atbildēm tikai no Xaman atbalsta komandas lapas https://support.xumm.app", + "questionsAndSupportExplain": "Ja jums ir jautājumi, jūs varat izlasīt sadaļu BUJ, kā arī uzdot jautājumus https://support.xaman.app.\r\n\r\nTas ir VIENĪGAIS uzticamais kanāls XUMM atbalstam.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Es uzticos atbildēm tikai no Xaman atbalsta komandas lapas https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Lūdzu zemāk izlasiet tekstu rūpīgi " }, "home": { @@ -1264,4 +1264,4 @@ "weekdaysParseExact": true, "abbr": "lv" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ml.json b/src/locale/translations/ml.json index 7e57fd090..c9f9831b9 100644 --- a/src/locale/translations/ml.json +++ b/src/locale/translations/ml.json @@ -383,7 +383,7 @@ "repeatPasscode": "നിങ്ങളുടെ പുതിയ പാസ്‌കോഡ് ആവർത്തിക്കുക", "passcodeDoNotMatch": "പാസ്‌കോഡ് പൊരുത്തപ്പെടുന്നില്ല!", "warnNeedPasscode": "അപ്ലിക്കേഷൻ അൺലോക്കുചെയ്യുന്നതിന് നിങ്ങളുടെ പാസ്‌കോഡ് ആവശ്യമാണ്", - "UnableToStoreThePasscode": "പാസ്‌കോഡ് സംഭരിക്കാനായില്ല. ഇത് സംഭവിക്കാൻ പാടില്ല. Xaman പിന്തുണാ ടീമിന് ഒരു ബഗ് റിപ്പോർട്ട് അയച്ചു. കൂടുതൽ വിവരങ്ങൾക്ക് support@xumm.app ൽ ഞങ്ങളെ ബന്ധപ്പെടുക.", + "UnableToStoreThePasscode": "പാസ്‌കോഡ് സംഭരിക്കാനായില്ല. ഇത് സംഭവിക്കാൻ പാടില്ല. Xaman പിന്തുണാ ടീമിന് ഒരു ബഗ് റിപ്പോർട്ട് അയച്ചു. കൂടുതൽ വിവരങ്ങൾക്ക് support@xaman.app ൽ ഞങ്ങളെ ബന്ധപ്പെടുക.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "സുരക്ഷാ കാരണങ്ങളാൽ നിങ്ങൾക്ക് മറ്റൊരു ഫോൺ (പുതിയ / മാറ്റിസ്ഥാപിക്കൽ) ലഭിക്കുമ്പോൾ, അക്കൗണ്ട് രഹസ്യങ്ങൾ ഉപയോഗിച്ച് നിങ്ങളുടെ എല്ലാ അക്കൗണ്ടുകളും വീണ്ടും ഇറക്കുമതി ചെയ്യാൻ Xaman നിങ്ങളോട് ആവശ്യപ്പെടും.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "ഞാൻ എന്റെ രഹസ്യങ്ങൾ ഓഫ്‌ലൈനിൽ സുരക്ഷിതമായി സൂക്ഷിക്കും, അതിനാൽ എനിക്ക് ഒരു പുതിയ ഫോൺ ലഭിക്കുകയാണെങ്കിൽ അവ വീണ്ടും നൽകാം", "questionsAndSupport": "ചോദ്യങ്ങൾ & പിന്തുണ", - "questionsAndSupportExplain": "നിങ്ങൾക്ക് ചോദ്യങ്ങളുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് പതിവുചോദ്യങ്ങൾ വായിക്കാനും https://support.xumm.app- ൽ ചോദ്യങ്ങൾ ചോദിക്കാനും കഴിയും.\r\n\r\nXUMM പിന്തുണയ്‌ക്കുള്ള ഏക വിശ്വസനീയമായ ചാനലാണിത്.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xumm.app- ലെ Xaman പിന്തുണാ ടീമിൽ നിന്നുള്ള ഉത്തരങ്ങളെ മാത്രം ഞാൻ വിശ്വസിക്കും.", + "questionsAndSupportExplain": "നിങ്ങൾക്ക് ചോദ്യങ്ങളുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് പതിവുചോദ്യങ്ങൾ വായിക്കാനും https://support.xaman.app- ൽ ചോദ്യങ്ങൾ ചോദിക്കാനും കഴിയും.\r\n\r\nXUMM പിന്തുണയ്‌ക്കുള്ള ഏക വിശ്വസനീയമായ ചാനലാണിത്.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xaman.app- ലെ Xaman പിന്തുണാ ടീമിൽ നിന്നുള്ള ഉത്തരങ്ങളെ മാത്രം ഞാൻ വിശ്വസിക്കും.", "pleaseReadTheTextAboveCarefully": "മുകളിലുള്ള വാചകം ശ്രദ്ധാപൂർവ്വം വായിക്കുക" }, "home": { @@ -1276,4 +1276,4 @@ "monthsParseExact": true, "abbr": "ml" } -} \ No newline at end of file +} diff --git a/src/locale/translations/mr.json b/src/locale/translations/mr.json index e2ee0b47a..bb7e12816 100644 --- a/src/locale/translations/mr.json +++ b/src/locale/translations/mr.json @@ -383,7 +383,7 @@ "repeatPasscode": "कृपया आपला नवीन पासकोड पुन्हा करा", "passcodeDoNotMatch": "पासकोड जुळत नाही!", "warnNeedPasscode": "अ‍ॅप अनलॉक करण्यासाठी आपल्यास आपल्या पासकोडची आवश्यकता असेल", - "UnableToStoreThePasscode": "पासकोड संचयित करण्यात अक्षम. हे घडू नये. एक्सयूएमएम समर्थन कार्यसंघाकडे बग अहवाल पाठविला गेला. अधिक माहितीसाठी कृपया आमच्याशी समर्थन@xumm.app येथे संपर्क साधा.", + "UnableToStoreThePasscode": "पासकोड संचयित करण्यात अक्षम. हे घडू नये. एक्सयूएमएम समर्थन कार्यसंघाकडे बग अहवाल पाठविला गेला. अधिक माहितीसाठी कृपया आमच्याशी समर्थन@xaman.app येथे संपर्क साधा.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "जेव्हा आपल्याला सुरक्षिततेच्या कारणास्तव दुसरा फोन (नवीन / बदलण्याची शक्यता) मिळेल, तेव्हा एक्सयूएमएम आपल्याला खाते रहस्ये वापरून आपली सर्व खाती आयात करण्यास सांगेल.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "मी माझी रहस्ये सुरक्षित, ऑफलाइन ठेवेल, म्हणून जर माझा नवीन फोन आला तर मी त्यामध्ये पुन्हा प्रवेश करू शकेन", "questionsAndSupport": "प्रश्न & समर्थन", - "questionsAndSupportExplain": "आपल्याकडे प्रश्न असल्यास आपण सामान्य प्रश्न वाचू शकता आणि https://support.xumm.app वर प्रश्न विचारू शकता.\r\n\r\nहे XUMM समर्थनासाठी केवळ विश्वासार्ह चॅनेल आहे.", - "IOnlyTrustAnswersFromXamanSupportTeam": "मी केवळ https://support.xumm.app वर Xaman समर्थन कार्यसंघाकडून उत्तरे विश्वास ठेवेल.", + "questionsAndSupportExplain": "आपल्याकडे प्रश्न असल्यास आपण सामान्य प्रश्न वाचू शकता आणि https://support.xaman.app वर प्रश्न विचारू शकता.\r\n\r\nहे XUMM समर्थनासाठी केवळ विश्वासार्ह चॅनेल आहे.", + "IOnlyTrustAnswersFromXamanSupportTeam": "मी केवळ https://support.xaman.app वर Xaman समर्थन कार्यसंघाकडून उत्तरे विश्वास ठेवेल.", "pleaseReadTheTextAboveCarefully": "कृपया वरील मजकूर काळजीपूर्वक वाचा" }, "home": { @@ -1264,4 +1264,4 @@ "monthsParseExact": true, "abbr": "mr" } -} \ No newline at end of file +} diff --git a/src/locale/translations/nl.json b/src/locale/translations/nl.json index 3401f03fd..8ff76ab2b 100644 --- a/src/locale/translations/nl.json +++ b/src/locale/translations/nl.json @@ -383,7 +383,7 @@ "repeatPasscode": "Herhaal je pincode", "passcodeDoNotMatch": "De toegangscode komt niet overeen!", "warnNeedPasscode": "Je hebt je toegangscode nodig om de app te ontgrendelen", - "UnableToStoreThePasscode": "Kan de toegangscode niet opslaan. Dit hoort niet te gebeuren. Er is een foutrapport verzonden naar het Xaman-team. Neem contact met ons op support@xumm.app voor meer informatie.", + "UnableToStoreThePasscode": "Kan de toegangscode niet opslaan. Dit hoort niet te gebeuren. Er is een foutrapport verzonden naar het Xaman-team. Neem contact met ons op support@xaman.app voor meer informatie.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Wanneer u van telefoon wisselt (bijv. vervangen / vernieuwen) zal Xaman om veiligheidsredenen vragen om al uw accounts en geheime sleutels opnieuw te importeren. U heeft hiervoor de geheime sleutels voor nodig.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Ik zal mijn geheime sleutels veilig en offline bewaren en bewaken, zodat ik ze opnieuw kan invoeren als ik een nieuwe telefoon heb", "questionsAndSupport": "Vragen & ondersteuning", - "questionsAndSupportExplain": "Als u vragen hebt, kunt u de FAQ's lezen en vragen stellen op https://support.xumm.app.\r\n\r\nDit is HET ENIGE betrouwbare kanaal voor XUMM ondersteuning.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ik vertrouw alleen antwoorden van het Xaman support team op https://support.xumm.app", + "questionsAndSupportExplain": "Als u vragen hebt, kunt u de FAQ's lezen en vragen stellen op https://support.xaman.app.\r\n\r\nDit is HET ENIGE betrouwbare kanaal voor XUMM ondersteuning.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ik vertrouw alleen antwoorden van het Xaman support team op https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Lees de tekst zorgvuldig door" }, "home": { @@ -1261,4 +1261,4 @@ "weekdaysParseExact": true, "abbr": "nl" } -} \ No newline at end of file +} diff --git a/src/locale/translations/no-NO.json b/src/locale/translations/no-NO.json index d5bed45a7..507c9c67d 100644 --- a/src/locale/translations/no-NO.json +++ b/src/locale/translations/no-NO.json @@ -383,7 +383,7 @@ "repeatPasscode": "Vennligst gjenta din nye kode", "passcodeDoNotMatch": "Passordet samsvarer ikke!", "warnNeedPasscode": "Du vil trenge koden din for å låse opp programmet", - "UnableToStoreThePasscode": "Klarte ikke å lagre koden. Dette skal ikke skje. En bug-rapport ble sendt til Xaman support. Vennligst kontakt oss via support@xumm.app for mere informasjon.", + "UnableToStoreThePasscode": "Klarte ikke å lagre koden. Dette skal ikke skje. En bug-rapport ble sendt til Xaman support. Vennligst kontakt oss via support@xaman.app for mere informasjon.", "weakPasscode": "Svak passkode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Bruk uansett", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Når du anskaffer deg en annen telefon (ny / bytte) vil Xaman (pga. sikkerhetsmessige årsaker) be deg om å importere kontoer via dine hemmelige nøkler på nytt.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Jeg vil holde mine koder/nøkler sikre (og utenfor nettet) slik at jeg kan legge dette inn igjen hvis jeg anskaffer meg en ny telefon", "questionsAndSupport": "Spørsmål & Brukerstøtte", - "questionsAndSupportExplain": "Lurer du på noe så kan du lese FAQ og eventuelt sende inn spørsmål på https://support.xumm.app.\r\n\r\nDette er det ENESTE stedet man kan stole på for XUMM brukerhjelp.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Jeg vil BARE stole på svar fra Xaman Support Team på https://support.xumm.app", + "questionsAndSupportExplain": "Lurer du på noe så kan du lese FAQ og eventuelt sende inn spørsmål på https://support.xaman.app.\r\n\r\nDette er det ENESTE stedet man kan stole på for XUMM brukerhjelp.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Jeg vil BARE stole på svar fra Xaman Support Team på https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Vennligst les teksten over nøye" }, "home": { @@ -1277,4 +1277,4 @@ "weekdaysParseExact": true, "abbr": "nn" } -} \ No newline at end of file +} diff --git a/src/locale/translations/pa.json b/src/locale/translations/pa.json index bd0c18c3d..d345fee39 100644 --- a/src/locale/translations/pa.json +++ b/src/locale/translations/pa.json @@ -383,7 +383,7 @@ "repeatPasscode": "ਕ੍ਰਿਕਸ ਆਪਣੇ ਨਾਮ ਪਾਸਕੋਡ ਦੁਹਰਾਓ", "passcodeDoNotMatch": "ਪਾਸਕੋਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ!", "warnNeedPasscode": "ਐਪ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਆਪਣੇ ਪਾਸਕੋਡ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ", - "UnableToStoreThePasscode": "ਪਾਸਕੋਡ ਨੂੰ ਸਟੋਰ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ. ਅਜਿਹਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ. ਐਕਸਯੂਐਮਐਮ ਸਹਾਇਤਾ ਟੀਮ ਨੂੰ ਇੱਕ ਬੱਗ ਰਿਪੋਰਟ ਭੇਜੀ ਗਈ ਸੀ. ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਕਿਰਪਾ ਕਰਕੇ ਸਾਡੇ ਨਾਲ support@xumm.app 'ਤੇ ਸੰਪਰਕ ਕਰੋ.", + "UnableToStoreThePasscode": "ਪਾਸਕੋਡ ਨੂੰ ਸਟੋਰ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ. ਅਜਿਹਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ. ਐਕਸਯੂਐਮਐਮ ਸਹਾਇਤਾ ਟੀਮ ਨੂੰ ਇੱਕ ਬੱਗ ਰਿਪੋਰਟ ਭੇਜੀ ਗਈ ਸੀ. ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਕਿਰਪਾ ਕਰਕੇ ਸਾਡੇ ਨਾਲ support@xaman.app 'ਤੇ ਸੰਪਰਕ ਕਰੋ.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "ਜਦੋਂ ਤੁਸੀਂ ਇਕ ਹੋਰ ਫੋਨ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ (ਨਵਾਂ / ਬਦਲਣਾ), ਸੁਰੱਖਿਆ ਕਾਰਨਾਂ ਕਰਕੇ, Xaman ਤੁਹਾਨੂੰ ਖਾਤੇ ਦੇ ਭੇਦ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਸਾਰੇ ਖਾਤਿਆਂ ਨੂੰ ਮੁੜ ਆਯਾਤ ਕਰਨ ਲਈ ਕਹੇਗਾ.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "ਮੈਂ ਆਪਣੇ ਭੇਦ ਸੁਰੱਖਿਅਤ ਰੱਖਾਂਗਾ, ਔਫਲਾਈਨ ,ਇਸ ਲਈ ਜੇ ਮੈਂ ਇੱਕ ਨਵਾਂ ਫੋਨ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹਾਂ ਤਾਂ ਮੈਂ ਉਨ੍ਹਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਦਾਖਲ ਹੋ ਸਕਦਾ ਹਾਂ", "questionsAndSupport": "ਸਵਾਲ & ਸਹਿਯੋਗ", - "questionsAndSupportExplain": "ਜੇ ਤੁਹਾਡੇ ਕੋਈ ਪ੍ਰਸ਼ਨ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ ਪੜ੍ਹ ਸਕਦੇ ਹੋ ਅਤੇ https://support.xumm.app 'ਤੇ ਪ੍ਰਸ਼ਨ ਪੁੱਛ ਸਕਦੇ ਹੋ.\r\n\r\nਇਹ XUMM ਸਹਾਇਤਾ ਲਈ ਸਿਰਫ ਭਰੋਸੇਯੋਗ ਚੈਨਲ ਹੈ.", - "IOnlyTrustAnswersFromXamanSupportTeam": "ਮੈਂ ਸਿਰਫ https://support.xumm.app ਤੇ Xaman ਸਪੋਰਟ ਟੀਮ ਦੁਆਰਾ ਜਵਾਬਾਂ ਤੇ ਭਰੋਸਾ ਕਰਾਂਗਾ.", + "questionsAndSupportExplain": "ਜੇ ਤੁਹਾਡੇ ਕੋਈ ਪ੍ਰਸ਼ਨ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ ਪੜ੍ਹ ਸਕਦੇ ਹੋ ਅਤੇ https://support.xaman.app 'ਤੇ ਪ੍ਰਸ਼ਨ ਪੁੱਛ ਸਕਦੇ ਹੋ.\r\n\r\nਇਹ XUMM ਸਹਾਇਤਾ ਲਈ ਸਿਰਫ ਭਰੋਸੇਯੋਗ ਚੈਨਲ ਹੈ.", + "IOnlyTrustAnswersFromXamanSupportTeam": "ਮੈਂ ਸਿਰਫ https://support.xaman.app ਤੇ Xaman ਸਪੋਰਟ ਟੀਮ ਦੁਆਰਾ ਜਵਾਬਾਂ ਤੇ ਭਰੋਸਾ ਕਰਾਂਗਾ.", "pleaseReadTheTextAboveCarefully": "ਕਿਰਪਾ ਕਰਕੇ ਉੱਪਰ ਦਿੱਤੇ ਪਾਠ ਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ" }, "home": { @@ -1292,4 +1292,4 @@ ], "abbr": "en" } -} \ No newline at end of file +} diff --git a/src/locale/translations/pl.json b/src/locale/translations/pl.json index 6537a8d33..a8cf1b990 100644 --- a/src/locale/translations/pl.json +++ b/src/locale/translations/pl.json @@ -383,7 +383,7 @@ "repeatPasscode": "Proszę powtórz swój nowy kod PIN", "passcodeDoNotMatch": "Nieprawidłowy kod dostępu.", "warnNeedPasscode": "Aby odblokować aplikacje, będziesz potrzebował swojego kodu dostępu", - "UnableToStoreThePasscode": "Nie można zapisać kodu PIN. To nie powinno się zdarzyć. Raport o błędzie został wysłany do zespołu wsparcia Xaman. Aby uzyskać więcej informacji, skontaktuj się z nami pod adresem (support@xumm.app).", + "UnableToStoreThePasscode": "Nie można zapisać kodu PIN. To nie powinno się zdarzyć. Raport o błędzie został wysłany do zespołu wsparcia Xaman. Aby uzyskać więcej informacji, skontaktuj się z nami pod adresem (support@xaman.app).", "weakPasscode": "Słaby kod dostępu", "weakPasscodeDescription": "Wybrany kod dostępu jest łatwy do odgadnięcia. Polecamy wybrać mocniejszy.", "useAnyway": "Użyj mimo to", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Gdy zmienisz telefon, ze względów bezpieczeństwa Xaman poprosi Cię o ponowne zaimportowanie wszystkich kont przy użyciu haseł/klucza/kodu, którymi jest ono zabezpieczone.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Będę przechowywać moje hasła/klucze/kody, w trybie offline, aby móc zalogować się do XUMM na nowym urządzeniu. ", "questionsAndSupport": "Pytania i Wsparcie", - "questionsAndSupportExplain": "Jeśli masz pytania, możesz przeczytać FAQ i zadawać pytania na stronie https://support.xumm.app.\n\nJest to JEDYNY wiarygodny kanał dla obsługi XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Zaufam tylko odpowiedziom zespołu wsparcia Xaman na stronie https://support.xumm.app", + "questionsAndSupportExplain": "Jeśli masz pytania, możesz przeczytać FAQ i zadawać pytania na stronie https://support.xaman.app.\n\nJest to JEDYNY wiarygodny kanał dla obsługi XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Zaufam tylko odpowiedziom zespołu wsparcia Xaman na stronie https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Przeczytaj uważnie powyższy tekst" }, "home": { @@ -1251,4 +1251,4 @@ ], "abbr": "pl" } -} \ No newline at end of file +} diff --git a/src/locale/translations/pt-BR.json b/src/locale/translations/pt-BR.json index 214eccc46..96c5ceff8 100644 --- a/src/locale/translations/pt-BR.json +++ b/src/locale/translations/pt-BR.json @@ -383,7 +383,7 @@ "repeatPasscode": "Por favor, repita o seu novo código PIN", "passcodeDoNotMatch": "O código de acesso não coincide!", "warnNeedPasscode": "Você vai precisar do seu código PIN para desbloquear o aplicativo", - "UnableToStoreThePasscode": "Não foi possível guardar o código PIN. Isto não deveria ter acontecido. Foi enviado um relatório de erro para a equipa de suporte Xaman. Por favor, contacte-nos através de support@xumm.app para mais informações.", + "UnableToStoreThePasscode": "Não foi possível guardar o código PIN. Isto não deveria ter acontecido. Foi enviado um relatório de erro para a equipa de suporte Xaman. Por favor, contacte-nos através de support@xaman.app para mais informações.", "weakPasscode": "Senha de acesso fraco", "weakPasscodeDescription": "A senha de acesso selecionado é fácil de adivinhar. Recomendamos que escolha uma mais forte.", "useAnyway": "Usar mesmo assim", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Ao trocar de telefone (novo / substituto), por razões de segurança, o Xaman irá solicitar a importação de todas as suas contas usando as chaves secretas da conta novamente.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Eu vou manter meus códigos secretos seguros e \"offline\", para que os possa digitar novamente caso eu mude de telemóvel.", "questionsAndSupport": "Perguntas & Suporte", - "questionsAndSupportExplain": "Se tiver dúvidas, pode ler as perguntas do FAQ e fazer perguntas em https://support.xumm.app.\r\n\r\nEste é o ÚNICO canal de confiança para suporte ao XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Eu vou confiar APENAS em respostas da equipe de apoio do Xaman em https://support.xumm.app.", + "questionsAndSupportExplain": "Se tiver dúvidas, pode ler as perguntas do FAQ e fazer perguntas em https://support.xaman.app.\r\n\r\nEste é o ÚNICO canal de confiança para suporte ao XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Eu vou confiar APENAS em respostas da equipe de apoio do Xaman em https://support.xaman.app.", "pleaseReadTheTextAboveCarefully": "Leia cuidadosamente o texto acima" }, "home": { @@ -1275,4 +1275,4 @@ "weekdaysParseExact": true, "abbr": "pt-br" } -} \ No newline at end of file +} diff --git a/src/locale/translations/pt.json b/src/locale/translations/pt.json index 84992dbb7..64af5cdb1 100644 --- a/src/locale/translations/pt.json +++ b/src/locale/translations/pt.json @@ -383,7 +383,7 @@ "repeatPasscode": "Por favor, repita o seu novo código de acesso.", "passcodeDoNotMatch": "O código de acesso não coincide!", "warnNeedPasscode": "Irá necessitar do seu código de acesso para desbloquear a aplicação.", - "UnableToStoreThePasscode": "Impossível guardar o código de acesso. Isto não deveria ter acontecido. Foi enviado um relatório de erro à equipa de apoio Xaman. Por favor, contacte-nos através de support@xumm.app para obter mais informações.", + "UnableToStoreThePasscode": "Impossível guardar o código de acesso. Isto não deveria ter acontecido. Foi enviado um relatório de erro à equipa de apoio Xaman. Por favor, contacte-nos através de support@xaman.app para obter mais informações.", "weakPasscode": "Código de acesso fraco", "weakPasscodeDescription": "O código de acesso seleccionado é fácil de adivinhar. Recomendamos que escolha um mais forte.", "useAnyway": "Usar mesmo assim", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Ao substituir o seu telefone (novo / substituto), por motivos de segurança, o Xaman irá pedir para importar todas as suas contas usando novamente os códigos da conta.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Irei manter os meus códigos secretos seguros offline para que os possa inserir novamente, caso troque de telemóvel.", "questionsAndSupport": "Perguntas & Suporte", - "questionsAndSupportExplain": "Se tiver dúvidas, pode ler as questões mais frequentes existentes nas FAQ e fazer as suas perguntas em https://support.xumm.app.\r\n\r\nEste é o ÚNICO canal de confiança de suporte ao XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Eu vou confiar APENAS em respostas da equipa de suporte do Xaman em https://support.xumm.app.", + "questionsAndSupportExplain": "Se tiver dúvidas, pode ler as questões mais frequentes existentes nas FAQ e fazer as suas perguntas em https://support.xaman.app.\r\n\r\nEste é o ÚNICO canal de confiança de suporte ao XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Eu vou confiar APENAS em respostas da equipa de suporte do Xaman em https://support.xaman.app.", "pleaseReadTheTextAboveCarefully": "Por favor leia cuidadosamente o texto acima" }, "home": { @@ -1275,4 +1275,4 @@ "weekdaysParseExact": true, "abbr": "pt" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ro.json b/src/locale/translations/ro.json index 092a32303..c21c3c2bf 100644 --- a/src/locale/translations/ro.json +++ b/src/locale/translations/ro.json @@ -383,7 +383,7 @@ "repeatPasscode": "Vă rugăm repetaţi noul dumneavoastră cod de acces", "passcodeDoNotMatch": "Codul de acces nu este valid!", "warnNeedPasscode": "Veţi avea nevoie de codul dumneavoastră de acces pentru a debloca aplicaţia.", - "UnableToStoreThePasscode": "Codul de acces nu poate fi stocat. Acest lucru nu ar trebui să se întâmple. A fost trimis un raport de eroare către echipa de suport Xaman. Vă rugăm să ne contactați la support@xumm.app pentru mai multe informații.", + "UnableToStoreThePasscode": "Codul de acces nu poate fi stocat. Acest lucru nu ar trebui să se întâmple. A fost trimis un raport de eroare către echipa de suport Xaman. Vă rugăm să ne contactați la support@xaman.app pentru mai multe informații.", "weakPasscode": "Cod de acces slab", "weakPasscodeDescription": "Parola selectată este ușor de ghicit. Vă recomandăm să alegeți o parolă mai puternică.", "useAnyway": "Folosește oricum", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Când obţineţi un alt telefon, din motive de securitate, Xaman vă va cere să importaţi toate conturile dumneavoastră folosind din nou cheile secrete ale contului.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Îmi voi păstra cheile secrete în siguranță, offline pentru a le putea utiliza la accesarea contului când îmi voi înlocui actualul dispozitiv.", "questionsAndSupport": "Întrebări & Suport", - "questionsAndSupportExplain": "Dacă aveţi întrebări, puteţi găsi răspunsuri şi pune întrebări la adresa https://support.xumm.app.\r\n\r\nAcesta este singurul canal de încredere pentru asistență clienţi XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Voi avea încredere doar în răspunsurile care vin din partea echipei de support Xaman, de la https://support.xumm.app.", + "questionsAndSupportExplain": "Dacă aveţi întrebări, puteţi găsi răspunsuri şi pune întrebări la adresa https://support.xaman.app.\r\n\r\nAcesta este singurul canal de încredere pentru asistență clienţi XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Voi avea încredere doar în răspunsurile care vin din partea echipei de support Xaman, de la https://support.xaman.app.", "pleaseReadTheTextAboveCarefully": "Vă rugăm să citiţi textul de mai sus cu atenție." }, "home": { @@ -1269,4 +1269,4 @@ "monthsParseExact": true, "abbr": "ro" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ru.json b/src/locale/translations/ru.json index 93c58cc8d..d8510accc 100644 --- a/src/locale/translations/ru.json +++ b/src/locale/translations/ru.json @@ -383,7 +383,7 @@ "repeatPasscode": "Пожалуйста, повторите Ваш новый ПИН-код", "passcodeDoNotMatch": "ПИН-код не совпадает!", "warnNeedPasscode": "Чтобы разблокировать приложение, Вам понадобится ПИН-код", - "UnableToStoreThePasscode": "Невозможно сохранить ПИН-код. Этого не должно было случиться. Отчет об ошибке был отправлен в службу поддержки Xaman. Пожалуйста, свяжитесь с нами по адресу support@xumm.app для получения дополнительной информации.", + "UnableToStoreThePasscode": "Невозможно сохранить ПИН-код. Этого не должно было случиться. Отчет об ошибке был отправлен в службу поддержки Xaman. Пожалуйста, свяжитесь с нами по адресу support@xaman.app для получения дополнительной информации.", "weakPasscode": "Слабый секретный код", "weakPasscodeDescription": "Выбранный секретный код легко угадывается. Мы рекомендуем вам выбрать более прочный.", "useAnyway": "Использовать все равно", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Когда Вы получите другой телефон (новый/отремонтированный), из соображений безопасности, Xaman попросит Вас снова импортировать все Ваши аккаунты, используя секретные ключи.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Я буду хранить мои ключи/пароли в безопасности, офлайн, чтобы использовать их снова, если я поменяю телефон", "questionsAndSupport": "Вопросы и поддержка", - "questionsAndSupportExplain": "Если у Вас есть вопросы, Вы можете прочитать FAQ и задать вопрос по адресу https://support.xumm.app.\r\n\r\nЭто единственный надежный канал поддержки XUMM. ", - "IOnlyTrustAnswersFromXamanSupportTeam": "Я буду доверять только ответам от команды поддержки Xaman по адресу https://support.xumm.app", + "questionsAndSupportExplain": "Если у Вас есть вопросы, Вы можете прочитать FAQ и задать вопрос по адресу https://support.xaman.app.\r\n\r\nЭто единственный надежный канал поддержки XUMM. ", + "IOnlyTrustAnswersFromXamanSupportTeam": "Я буду доверять только ответам от команды поддержки Xaman по адресу https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Пожалуйста, внимательно прочитайте текст выше " }, "home": { @@ -1308,4 +1308,4 @@ ], "abbr": "ru" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sd.json b/src/locale/translations/sd.json index da731372e..73144c7a8 100644 --- a/src/locale/translations/sd.json +++ b/src/locale/translations/sd.json @@ -383,7 +383,7 @@ "repeatPasscode": "مهرباني ڪري پنهنجو نئون پاسورڊ ورجائي ورجايو", "passcodeDoNotMatch": "پاسورڊ ڪوڊ نٿو ملي", "warnNeedPasscode": "توهان ايپ کي ان لاڪ ڪرڻ لاء پنهنجي پاس ڪوڊ جي ضرورت پوندي", - "UnableToStoreThePasscode": "پاسورڊ محفوظ ڪرڻ لاءِ ناڪام اهو نه ٿيڻ گهرجي ها. بگ رپورٽ Xaman جي سپورٽ ٽيم ڏانهن موڪلي وئي. وڌيڪ معلومات لاءِ مهرباني ڪري اسان سان رابطو ڪريو support@xumm.app", + "UnableToStoreThePasscode": "پاسورڊ محفوظ ڪرڻ لاءِ ناڪام اهو نه ٿيڻ گهرجي ها. بگ رپورٽ Xaman جي سپورٽ ٽيم ڏانهن موڪلي وئي. وڌيڪ معلومات لاءِ مهرباني ڪري اسان سان رابطو ڪريو support@xaman.app", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "جڏهن توهان هڪ ٻيو فون وٺو (نئين / متبادل) ، حفاظتي سببن ڪري ، Xaman توهان کان ٻيهر اڪائونٽ راز استعمال ڪندي توهان جي سڀني اڪائونٽس درآمد ڪرڻ لاءِ چوندو.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "مان پنهنجي ڳجهي کاتي جون ڪنجيون محفوظ ۽ آف لائن رکندس ، انهي ڪري جيڪڏهن آئون نئين ڊوائيس حاصل ڪري سگهين ته انهن کي ٻيهر داخل ڪري سگهان ٿو.", "questionsAndSupport": "سوالن ۽ حمايت", - "questionsAndSupportExplain": "جيڪڏهن توهان وٽ سوال آهي ، توهان FAQ پڙهائي سگهو ٿا ۽ https://support.xumm.app تي سوال پڇو.\r\n\r\nاھو ھڪڙو واحد قابل اعتبار چينل آھي XUMM سپورٽ لاء.", - "IOnlyTrustAnswersFromXamanSupportTeam": "مان صرف Xaman جي سپورٽ ٽيم کان جواب تي اعتماد ڪندس https://support.xumm.app تي", + "questionsAndSupportExplain": "جيڪڏهن توهان وٽ سوال آهي ، توهان FAQ پڙهائي سگهو ٿا ۽ https://support.xaman.app تي سوال پڇو.\r\n\r\nاھو ھڪڙو واحد قابل اعتبار چينل آھي XUMM سپورٽ لاء.", + "IOnlyTrustAnswersFromXamanSupportTeam": "مان صرف Xaman جي سپورٽ ٽيم کان جواب تي اعتماد ڪندس https://support.xaman.app تي", "pleaseReadTheTextAboveCarefully": "مهرباني ڪري مٿي ڏنل متن کي غور سان پڙهو" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "sd" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sk.json b/src/locale/translations/sk.json index 210ca435b..37d5122a5 100644 --- a/src/locale/translations/sk.json +++ b/src/locale/translations/sk.json @@ -383,7 +383,7 @@ "repeatPasscode": "Prosím Opakujte vaše nové heslo", "passcodeDoNotMatch": "Prístupový kód sa nezhoduje!", "warnNeedPasscode": "Na odomknutie aplikácie budete potrebovať prístupový kód", - "UnableToStoreThePasscode": "Prístupový kód sa nepodarilo uložiť. Toto by sa nemalo stať. Tímu podpory Xaman bolo odoslané hlásenie o chybe. Ak chcete získať viac informácií, kontaktujte nás na adrese support@xumm.app.", + "UnableToStoreThePasscode": "Prístupový kód sa nepodarilo uložiť. Toto by sa nemalo stať. Tímu podpory Xaman bolo odoslané hlásenie o chybe. Ak chcete získať viac informácií, kontaktujte nás na adrese support@xaman.app.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Keď dostanete iný telefón (nový / náhradný), z bezpečnostných dôvodov vás Xaman vyzve, aby ste všetky svoje účty importovali pomocou tajomstiev účtov znova.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Budem svoje tajomstvá uchovávať v bezpečí, offline, aby som ich mohol zadať znova ak získam nový telefón", "questionsAndSupport": "Dotazy & podpora", - "questionsAndSupportExplain": "Ak máte otázky, môžete si prečítať Časté otázky a opýtať sa na https://support.xumm.app.\r\n\r\nToto je IBA dôveryhodný kanál pre podporu XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Budem len dôverovať odpovede z podporného tímu Xaman na https://support.xumm.app", + "questionsAndSupportExplain": "Ak máte otázky, môžete si prečítať Časté otázky a opýtať sa na https://support.xaman.app.\r\n\r\nToto je IBA dôveryhodný kanál pre podporu XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Budem len dôverovať odpovede z podporného tímu Xaman na https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Prosím pozorne si prečítajte text vyššie" }, "home": { @@ -1261,4 +1261,4 @@ ], "abbr": "sk" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sl.json b/src/locale/translations/sl.json index b224223b3..5af218614 100644 --- a/src/locale/translations/sl.json +++ b/src/locale/translations/sl.json @@ -383,7 +383,7 @@ "repeatPasscode": "Prosimo, ponovite svoje novo geslo", "passcodeDoNotMatch": "Geslo se ne ujema!", "warnNeedPasscode": "Za odklepanje aplikacije boste potrebovali geslo", - "UnableToStoreThePasscode": "Gesla ni mogoče shraniti. To se ne bi smelo zgoditi. Poročilo o napaki je bilo poslano ekipi za podporo Xaman. Za več informacij se obrnite na support@xumm.app.", + "UnableToStoreThePasscode": "Gesla ni mogoče shraniti. To se ne bi smelo zgoditi. Poročilo o napaki je bilo poslano ekipi za podporo Xaman. Za več informacij se obrnite na support@xaman.app.", "weakPasscode": "Šibka geslo", "weakPasscodeDescription": "Izbrano geslo je enostavno uganiti. Priporočamo, da izberete močnejšega.", "useAnyway": "Vseeno uporabi", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Ko boste dobili drug telefon (nov/nadomestni), bo zaradi varnostnih razlogov Xaman od vas zahteval, da znova uvozite vse svoje račune s pomočjo skrivnih ključev računa.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Svoje skrivne ključe bom hranil na varnem mestu, brez povezave s spletom, da jih bom lahko ponovno vnesel, če bom menjal telefon", "questionsAndSupport": "Vprašanja & podpora", - "questionsAndSupportExplain": "Če imate vprašanja, lahko preberete pogosto zastavljena vprašanja in odgovore (FAQ's) na https://support.xumm.app. To je edini zanesljivi kanal podpore XUMM-a.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Zaupal bom le odgovorom iz podporne skupine Xaman na https://support.xumm.app]", + "questionsAndSupportExplain": "Če imate vprašanja, lahko preberete pogosto zastavljena vprašanja in odgovore (FAQ's) na https://support.xaman.app. To je edini zanesljivi kanal podpore XUMM-a.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Zaupal bom le odgovorom iz podporne skupine Xaman na https://support.xaman.app]", "pleaseReadTheTextAboveCarefully": "Prosimo, natančno preberite zgornje besedilo" }, "home": { @@ -1263,4 +1263,4 @@ "weekdaysParseExact": true, "abbr": "sl" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sr.json b/src/locale/translations/sr.json index 445dd1631..0cc307f28 100644 --- a/src/locale/translations/sr.json +++ b/src/locale/translations/sr.json @@ -383,7 +383,7 @@ "repeatPasscode": "Поновите нову лозинку", "passcodeDoNotMatch": "Лозинка се не подудара!", "warnNeedPasscode": "За откључавање апликације биће вам потребна шифра", - "UnableToStoreThePasscode": "Није могуће сачувати шифру. Ово се не би требало догодити. Извештај о грешци је послат тиму за подршку Xaman. Молимо вас да нас контактирате на support@xumm.app за више информација.", + "UnableToStoreThePasscode": "Није могуће сачувати шифру. Ово се не би требало догодити. Извештај о грешци је послат тиму за подршку Xaman. Молимо вас да нас контактирате на support@xaman.app за више информација.", "weakPasscode": "Слаба лозинка", "weakPasscodeDescription": "Одабрани приступни код је лако погодити. Препоручујемо вам да изаберете јачи.", "useAnyway": "У сваком случају", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Када добијете други телефон (нова/замена) из безбедносних разлога, Xaman ће вас питати да увезете све ваше рачуне користећи тајне налога поново.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Чуваћу своје податке сигурниум, офлајн, да могу да уђем у њих ако добијем нови телефон", "questionsAndSupport": "Питања и подршка", - "questionsAndSupportExplain": "Ако имате питања, можете да прочитати FAQ (често постављана питања) и постављати питања на https://support.xumm.app.\r\n\r\nОво је једина веб страница за XUMM подршку.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Ја ћу само веровати одговорима из XУММ тима подршке на https://support.xumm.app", + "questionsAndSupportExplain": "Ако имате питања, можете да прочитати FAQ (често постављана питања) и постављати питања на https://support.xaman.app.\r\n\r\nОво је једина веб страница за XUMM подршку.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Ја ћу само веровати одговорима из XУММ тима подршке на https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Пажљиво прочитај текст изнад" }, "home": { @@ -1267,4 +1267,4 @@ "weekdaysParseExact": true, "abbr": "sr" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sv.json b/src/locale/translations/sv.json index b02ea5ebf..76086d561 100644 --- a/src/locale/translations/sv.json +++ b/src/locale/translations/sv.json @@ -383,7 +383,7 @@ "repeatPasscode": "Vänligen upprepa din pinkod", "passcodeDoNotMatch": "Passerkoden stämmer inte!", "warnNeedPasscode": "Du kommer att behöva din pinkod för att låsa upp appen", - "UnableToStoreThePasscode": "Det gick inte att lagra pinkoden. Detta borde inte ske. En felrapport skickades till Xaman-supportgruppen. Kontakta oss på support@xumm.app för mer information.", + "UnableToStoreThePasscode": "Det gick inte att lagra pinkoden. Detta borde inte ske. En felrapport skickades till Xaman-supportgruppen. Kontakta oss på support@xaman.app för mer information.", "weakPasscode": "Svag passerkod", "weakPasscodeDescription": "Den valda passerkoden är lätt att gissa. Vi rekommenderar att du väljer en starkare.", "useAnyway": "Använd ändå", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "När du får en annan telefon (ny / ersättning), av säkerhetsskäl, kommer Xaman att be dig att importera alla konton med hjälp av kontohemligheter igen.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Jag ska hålla mina hemligheter säkra, offline, så jag kan komma in i dem igen om jag får en ny telefon", "questionsAndSupport": "Frågor och stöd", - "questionsAndSupportExplain": "Om du har frågor kan du läsa frågor på FAQ och ställa frågor på https://support.xumm.app.\n\nDet här är den enda pålitliga kanalen för XUMM-funktioner.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Jag kommer bara att lita på svar från Xaman :s stödgrupp på https://support.xumm.app", + "questionsAndSupportExplain": "Om du har frågor kan du läsa frågor på FAQ och ställa frågor på https://support.xaman.app.\n\nDet här är den enda pålitliga kanalen för XUMM-funktioner.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Jag kommer bara att lita på svar från Xaman :s stödgrupp på https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Läs texten ovan noggrant" }, "home": { @@ -1276,4 +1276,4 @@ ], "abbr": "sv" } -} \ No newline at end of file +} diff --git a/src/locale/translations/sw.json b/src/locale/translations/sw.json index 3fd2d0b8d..045017878 100644 --- a/src/locale/translations/sw.json +++ b/src/locale/translations/sw.json @@ -383,7 +383,7 @@ "repeatPasscode": "Please repeat your new passcode", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "You will need your passcode to unlock the app", - "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xumm.app for more information.", + "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xaman.app for more information.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Using Xaman with a new device will require you to re-enter your secret keys for any accounts you have previously created.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret account keys safe and offline, so I can re-enter them if I get a new device.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xumm.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xumm.app ", + "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xaman.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xaman.app ", "pleaseReadTheTextAboveCarefully": "Please read the above text carefully" }, "home": { @@ -1276,4 +1276,4 @@ "weekdaysParseExact": true, "abbr": "sw" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ta-IN.json b/src/locale/translations/ta-IN.json index 854bb54e9..3de3b865a 100644 --- a/src/locale/translations/ta-IN.json +++ b/src/locale/translations/ta-IN.json @@ -383,7 +383,7 @@ "repeatPasscode": "உங்கள் புதிய கடவுக்குறியீட்டை மீண்டும் செய்யவும்", "passcodeDoNotMatch": "கடவுக்குறியீடு பொருந்தவில்லை!", "warnNeedPasscode": "பயன்பாட்டைத் திறக்க உங்கள் கடவுக்குறியீடு தேவைப்படும்", - "UnableToStoreThePasscode": "கடவுக்குறியீட்டை சேமிக்க முடியவில்லை. இது நடக்கக்கூடாது. ஒரு பிழை அறிக்கை Xaman ஆதரவு குழுவுக்கு அனுப்பப்பட்டது. மேலும் தகவலுக்கு support@xumm.app இல் எங்களை தொடர்பு கொள்ளவும்.", + "UnableToStoreThePasscode": "கடவுக்குறியீட்டை சேமிக்க முடியவில்லை. இது நடக்கக்கூடாது. ஒரு பிழை அறிக்கை Xaman ஆதரவு குழுவுக்கு அனுப்பப்பட்டது. மேலும் தகவலுக்கு support@xaman.app இல் எங்களை தொடர்பு கொள்ளவும்.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "பாதுகாப்பு காரணங்களுக்காக, நீங்கள் மற்றொரு தொலைபேசியைப் பெறும்போது (புதிய / மாற்று), கணக்கு ரகசியங்களைப் பயன்படுத்தி உங்கள் எல்லா கணக்குகளையும் மீண்டும் இறக்குமதி செய்ய Xaman கேட்கும்.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "எனது ரகசியங்களை ஆஃப்லைனில் பாதுகாப்பாக வைத்திருப்பேன், எனவே புதிய தொலைபேசி கிடைத்தால் அவற்றை மீண்டும் உள்ளிடலாம்", "questionsAndSupport": "கேள்விகள் & ஆதரவு", - "questionsAndSupportExplain": "உங்களிடம் கேள்விகள் இருந்தால், நீங்கள் அடிக்கடி கேட்கப்படும் கேள்விகளைப் படித்து https://support.xumm.app இல் கேள்விகளைக் கேட்கலாம்.\r\nஇது XUMM ஆதரவுக்கான ஒரே நம்பகமான சேனல்.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xumm.app இல் Xaman ஆதரவு குழுவினரின் பதில்களை மட்டுமே நம்புகிறேன்.", + "questionsAndSupportExplain": "உங்களிடம் கேள்விகள் இருந்தால், நீங்கள் அடிக்கடி கேட்கப்படும் கேள்விகளைப் படித்து https://support.xaman.app இல் கேள்விகளைக் கேட்கலாம்.\r\nஇது XUMM ஆதரவுக்கான ஒரே நம்பகமான சேனல்.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Https://support.xaman.app இல் Xaman ஆதரவு குழுவினரின் பதில்களை மட்டுமே நம்புகிறேன்.", "pleaseReadTheTextAboveCarefully": "மேலே உள்ள உரையை கவனமாக படிக்கவும்" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "ta" } -} \ No newline at end of file +} diff --git a/src/locale/translations/te-IN.json b/src/locale/translations/te-IN.json index bc648c99b..6225a9538 100644 --- a/src/locale/translations/te-IN.json +++ b/src/locale/translations/te-IN.json @@ -383,7 +383,7 @@ "repeatPasscode": "దయచేసి మీ క్రొత్త పాస్‌కోడ్‌ ను పునరావృతం చేయండి\r\n", "passcodeDoNotMatch": "పాస్కోడ్ సరిపోలడం లేదు!", "warnNeedPasscode": "యాప్ ను ‌లాక్ చేయడానికి మీకు మీ పాస్‌కోడ్ అవసరం\r\n", - "UnableToStoreThePasscode": "పాస్‌కోడ్‌ను నిల్వ చేయడం సాధ్యం కాలేదు. ఇది జరగకూడదు. Xaman మద్దతు బృందానికి బగ్ నివేదిక పంపబడింది. మరింత సమాచారం కోసం support@xumm.app వద్ద మమ్మల్ని సంప్రదించండి.\r\n", + "UnableToStoreThePasscode": "పాస్‌కోడ్‌ను నిల్వ చేయడం సాధ్యం కాలేదు. ఇది జరగకూడదు. Xaman మద్దతు బృందానికి బగ్ నివేదిక పంపబడింది. మరింత సమాచారం కోసం support@xaman.app వద్ద మమ్మల్ని సంప్రదించండి.\r\n", "weakPasscode": "బలహీనమైన పాస్‌కోడ్\r\n", "weakPasscodeDescription": "ఎంచుకున్న పాస్‌కోడ్ ఊహించడం సులభం. బలమైనదాన్ని ఎంచుకోవాలని మేము మీకు సిఫార్సు చేస్తున్నాము.", "useAnyway": "ఏమైనప్పటికీ వుపయోగించుము", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "మీకు మరొక ఫోన్ వచ్చినప్పుడు (క్రొత్త / పున ment స్థాపన), భద్రతా కారణాల దృష్ట్యా, ఖాతా రహస్యాలను ఉపయోగించి మీ అన్ని ఖాతాలను మళ్లీ దిగుమతి చేయమని Xaman అడుగుతుంది.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "నేను నా రహస్య ఖాతా కీలను సురక్షితంగా ఆఫ్‌లైన్‌లో ఉంచుతాను, అందువల్ల నాకు క్రొత్త ఫోన్ వస్తే వాటిని తిరిగి నమోదు చేయవచ్చు.", "questionsAndSupport": "ప్రశ్నలు & మద్దతు", - "questionsAndSupportExplain": "మీకు ప్రశ్నలు ఉంటే, మీరు తరచుగా అడిగే ప్రశ్నలను చదవవచ్చు మరియు https://support.xumm.app వద్ద ప్రశ్నలు అడగవచ్చు.\r\n\r\nఇది XUMM మద్దతు కోసం మాత్రమే నమ్మదగిన ఛానెల్.", - "IOnlyTrustAnswersFromXamanSupportTeam": "నేను https://support.xumm.app వద్ద Xaman మద్దతు బృందం నుండి సమాధానాలను మాత్రమే విశ్వసిస్తాను", + "questionsAndSupportExplain": "మీకు ప్రశ్నలు ఉంటే, మీరు తరచుగా అడిగే ప్రశ్నలను చదవవచ్చు మరియు https://support.xaman.app వద్ద ప్రశ్నలు అడగవచ్చు.\r\n\r\nఇది XUMM మద్దతు కోసం మాత్రమే నమ్మదగిన ఛానెల్.", + "IOnlyTrustAnswersFromXamanSupportTeam": "నేను https://support.xaman.app వద్ద Xaman మద్దతు బృందం నుండి సమాధానాలను మాత్రమే విశ్వసిస్తాను", "pleaseReadTheTextAboveCarefully": "దయచేసి పై వచనాన్ని జాగ్రత్తగా చదవండి" }, "home": { @@ -1276,4 +1276,4 @@ "monthsParseExact": true, "abbr": "te" } -} \ No newline at end of file +} diff --git a/src/locale/translations/tr.json b/src/locale/translations/tr.json index 732bf59b8..bd26eada2 100644 --- a/src/locale/translations/tr.json +++ b/src/locale/translations/tr.json @@ -383,7 +383,7 @@ "repeatPasscode": "Lütfen yeni parolanızı tekrar girin", "passcodeDoNotMatch": "Şifre eşleşmiyor!", "warnNeedPasscode": "Uygulamanın kilidini açmak için şifrenize gereksinim duyacaksınız", - "UnableToStoreThePasscode": "Şifre saklanamıyor. Bu olmamalıydı. Xaman destek ekibine bir hata raporu gönderildi. Daha fazla bilgi için lütfen support@xumm.app adresinden bizimle iletişim kurun.", + "UnableToStoreThePasscode": "Şifre saklanamıyor. Bu olmamalıydı. Xaman destek ekibine bir hata raporu gönderildi. Daha fazla bilgi için lütfen support@xaman.app adresinden bizimle iletişim kurun.", "weakPasscode": "Zayıf şifre", "weakPasscodeDescription": "Seçilen şifre tahmin etmek için kolay. Daha güçlü bir tane seçmeni öneriyoruz.", "useAnyway": "Yine de kullan", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Güvenlik nedeniyle başka bir telefon (yeni/değiştirme) aldığınızda, Xaman, hesap sırlarını yeniden kullanarak tüm hesaplarınızı içe aktarmanızı isteyecektir.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Gizli anahtarımı güvenli bir şekilde, çevrimdışı tutacağım, böylece yeni bir telefon aldığımda tekrar giriş yapabilirim", "questionsAndSupport": "Sorular ve Destek", - "questionsAndSupportExplain": "Sorularınız varsa, SSS'leri okuyabilir ve https://support.xumm.app adresinden soru sorabilirsiniz.\r\n\r\nXUMM desteği için tek güvenilir kanal budur.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Sadece https://support.xumm.app adresindeki Xaman Destek ekibine güveneceğim.", + "questionsAndSupportExplain": "Sorularınız varsa, SSS'leri okuyabilir ve https://support.xaman.app adresinden soru sorabilirsiniz.\r\n\r\nXUMM desteği için tek güvenilir kanal budur.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Sadece https://support.xaman.app adresindeki Xaman Destek ekibine güveneceğim.", "pleaseReadTheTextAboveCarefully": "Lütfen yukarıdaki metni dikkatle okuyun" }, "home": { @@ -1274,4 +1274,4 @@ ], "abbr": "tr" } -} \ No newline at end of file +} diff --git a/src/locale/translations/uk.json b/src/locale/translations/uk.json index 782cbdba0..20561be83 100644 --- a/src/locale/translations/uk.json +++ b/src/locale/translations/uk.json @@ -383,7 +383,7 @@ "repeatPasscode": "Будь ласка, повторіть Ваш новий ПІН-код", "passcodeDoNotMatch": "ПІН-код не збігається!", "warnNeedPasscode": "Для розблокування програми Вам знадобиться Ваш ПІН-код", - "UnableToStoreThePasscode": "Неможливо зберегти ПІН-код. Цього не повинно було статися. Звіт про помилку було надіслано до команди підтримки Xaman. Будь ласка, зв ' яжіться з нами за адресою support@xumm.app для додаткової інформації.", + "UnableToStoreThePasscode": "Неможливо зберегти ПІН-код. Цього не повинно було статися. Звіт про помилку було надіслано до команди підтримки Xaman. Будь ласка, зв ' яжіться з нами за адресою support@xaman.app для додаткової інформації.", "weakPasscode": "Слабкий код доступу", "weakPasscodeDescription": "Вибраний ПІН-код легко вгадати. Рекомендуємо вибрати більш міцний.", "useAnyway": "Використовувати", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Коли Ви отримаєте інший телефон (новий/відремонтованний), з міркувань безпеки, Xaman запитає Вас знову імпортувати всі Ваші акаунти, використовуючи секретнi ключi.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Я буду тримати свої секрети/ключі в безпеці, оффлайн, щоб я міг вводити їх знову, якщо отримаю новий телефон", "questionsAndSupport": "Запитання та підтримка", - "questionsAndSupportExplain": "Якщо у Вас є запитання, Ви можете прочитати FAQ та задати питання за адресою https://support.xumm.app.\r\n\r\nЦе ЄДИНИ надійний канал підтримки XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Я буду довіряти лише відповідям від команди підтримки Xaman на https://support.xumm.app", + "questionsAndSupportExplain": "Якщо у Вас є запитання, Ви можете прочитати FAQ та задати питання за адресою https://support.xaman.app.\r\n\r\nЦе ЄДИНИ надійний канал підтримки XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Я буду довіряти лише відповідям від команди підтримки Xaman на https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Будь ласка, уважно прочитайте наведений вище текст" }, "home": { @@ -1269,4 +1269,4 @@ ], "abbr": "uk" } -} \ No newline at end of file +} diff --git a/src/locale/translations/ur.json b/src/locale/translations/ur.json index 743b7350d..6c2d4e4c9 100644 --- a/src/locale/translations/ur.json +++ b/src/locale/translations/ur.json @@ -383,7 +383,7 @@ "repeatPasscode": "براہ کرم اپنا نیا پاس کوڈ دہرائیں", "passcodeDoNotMatch": "پاس کوڈ مماثل نہیں ہے!", "warnNeedPasscode": "ایپ کو غیر مقفل کرنے کیلئے آپ کو اپنے پاس کوڈ کی ضرورت ہوگی", - "UnableToStoreThePasscode": "پاس کوڈ اسٹور کرنے سے قاصر۔ ایسا نہیں ہونا چاہئے۔ Xaman سپورٹ ٹیم کو ایک بگ رپورٹ بھیجی گئی تھی۔ مزید معلومات کے لئے ہم سے رابطہ کریں support@xumm.app پر۔", + "UnableToStoreThePasscode": "پاس کوڈ اسٹور کرنے سے قاصر۔ ایسا نہیں ہونا چاہئے۔ Xaman سپورٹ ٹیم کو ایک بگ رپورٹ بھیجی گئی تھی۔ مزید معلومات کے لئے ہم سے رابطہ کریں support@xaman.app پر۔", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "جب آپ کو دوسرا فون (نیا / متبادل) ملتا ہے تو ، حفاظتی وجوہات کی بناء پر ، Xaman آپ کو اپنے اکاؤنٹ کے راز کو دوبارہ استعمال کرتے ہوئے درآمد کرنے کو کہے گا۔", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "میں اپنے رازوں کو محفوظ ، آف لائن رکھوں گا ، لہذا اگر مجھے نیا فون آتا ہے تو میں ان میں دوبارہ داخل ہوسکتا ہوں", "questionsAndSupport": "سوالات اور سپورٹ", - "questionsAndSupportExplain": "اگر آپ کے سوالات ہیں تو ، آپ عمومی سوالنامہ پڑھ سکتے ہیں اور https://support.xumm.app پر سوالات پوچھ سکتے ہیں۔\r\n\r\nیہ XUMM سپورٹ کے لئے صرف قابل اعتماد چینل ہے۔", - "IOnlyTrustAnswersFromXamanSupportTeam": "میں صرف Xaman سپورٹ ٹیم کے https://support.xumm.app] پر جوابات پر اعتماد کروں گا۔", + "questionsAndSupportExplain": "اگر آپ کے سوالات ہیں تو ، آپ عمومی سوالنامہ پڑھ سکتے ہیں اور https://support.xaman.app پر سوالات پوچھ سکتے ہیں۔\r\n\r\nیہ XUMM سپورٹ کے لئے صرف قابل اعتماد چینل ہے۔", + "IOnlyTrustAnswersFromXamanSupportTeam": "میں صرف Xaman سپورٹ ٹیم کے https://support.xaman.app] پر جوابات پر اعتماد کروں گا۔", "pleaseReadTheTextAboveCarefully": "برائے کرم اوپر والا متن غور سے پڑھیں" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "ur" } -} \ No newline at end of file +} diff --git a/src/locale/translations/uz.json b/src/locale/translations/uz.json index 76f931d56..2d2953e3c 100644 --- a/src/locale/translations/uz.json +++ b/src/locale/translations/uz.json @@ -383,7 +383,7 @@ "repeatPasscode": "Iltimos, yangi parolingizni takrorlang", "passcodeDoNotMatch": "Parol tugri kelmadi!", "warnNeedPasscode": "Ilovani qulfdan chiqarish uchun sizga parol kerak bo'ladi", - "UnableToStoreThePasscode": "Parol saqlanmadi. Bunday bo'lmasligi kerak. Xato hisoboti Xaman-ni qo'llab-quvvatlash guruhiga yuborildi. Qo'shimcha ma'lumot uchun biz bilan support@xumm.app elektron manzili orqali bog'laning.", + "UnableToStoreThePasscode": "Parol saqlanmadi. Bunday bo'lmasligi kerak. Xato hisoboti Xaman-ni qo'llab-quvvatlash guruhiga yuborildi. Qo'shimcha ma'lumot uchun biz bilan support@xaman.app elektron manzili orqali bog'laning.", "weakPasscode": "Kuchsiz passcode", "weakPasscodeDescription": "Tanlangan parolni taxmin qilish oson. Biz sizga kuchliroq tanlash tavsiya.", "useAnyway": "Baribir Foydalaning", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Xavfsizligi sababli boshqa telefonni (yangi / almashtirish) olganingizda, Xaman yana barcha hisoblaringizni hisob sirlaridan foydalangan holda import qilishni so'raydi.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Men sirlarimni xavfsiz, oflaynda saqlayman, shuning uchun yangi telefon olsam, ularni qayta kiritishim mumkin", "questionsAndSupport": "Savollar va qo'llab-quvvatlash", - "questionsAndSupportExplain": "Agar sizda savollar bo'lsa, siz tez-tez so'raladigan savollarni o'qishingiz va https://support.xumm.app sahifasida savollar berishingiz mumkin.\r\n\r\nBu XUMM-ni qo'llab-quvvatlash uchun faqatgina ishonchli kanal.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Men faqat https://support.xumm.app saytidagi Xaman qo'llab-quvvatlash guruhining javoblariga ishonaman", + "questionsAndSupportExplain": "Agar sizda savollar bo'lsa, siz tez-tez so'raladigan savollarni o'qishingiz va https://support.xaman.app sahifasida savollar berishingiz mumkin.\r\n\r\nBu XUMM-ni qo'llab-quvvatlash uchun faqatgina ishonchli kanal.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Men faqat https://support.xaman.app saytidagi Xaman qo'llab-quvvatlash guruhining javoblariga ishonaman", "pleaseReadTheTextAboveCarefully": "Iltimos, yuqoridagi matnni diqqat bilan o'qing" }, "home": { @@ -1275,4 +1275,4 @@ ], "abbr": "uz" } -} \ No newline at end of file +} diff --git a/src/locale/translations/vi.json b/src/locale/translations/vi.json index a045bae0c..51d3811dd 100644 --- a/src/locale/translations/vi.json +++ b/src/locale/translations/vi.json @@ -383,7 +383,7 @@ "repeatPasscode": "Vui lòng lặp lại mật mã mới của bạn", "passcodeDoNotMatch": "Mật mã không khớp!", "warnNeedPasscode": "Bạn sẽ cần mật mã của mình để mở khóa ứng dụng", - "UnableToStoreThePasscode": "Không thể lưu trữ mật mã. Điều này không nên xảy ra. Một báo cáo lỗi đã được gửi đến nhóm hỗ trợ Xaman. Vui lòng liên hệ với chúng tôi tại support@xumm.app để biết thêm thông tin.", + "UnableToStoreThePasscode": "Không thể lưu trữ mật mã. Điều này không nên xảy ra. Một báo cáo lỗi đã được gửi đến nhóm hỗ trợ Xaman. Vui lòng liên hệ với chúng tôi tại support@xaman.app để biết thêm thông tin.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Khi bạn nhận được điện thoại khác (mới / thay thế), vì lý do bảo mật, Xaman sẽ yêu cầu bạn nhập lại tất cả tài khoản của mình bằng cách sử dụng bí mật tài khoản.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "Tôi sẽ giữ bí mật của mình an toàn khi ngoại tuyến, vì vậy tôi có thể nhập lại nếu nhận được điện thoại mới", "questionsAndSupport": "Câu hỏi & Hỗ trợ", - "questionsAndSupportExplain": "Nếu bạn có thắc mắc, bạn có thể đọc Câu hỏi thường gặp và đặt câu hỏi tại https://support.xumm.app.\r\n\r\nĐây là kênh đáng tin cậy DUY NHẤT để hỗ trợ XUMM.", - "IOnlyTrustAnswersFromXamanSupportTeam": "Tôi sẽ chỉ tin tưởng câu trả lời từ Xaman hỗ trợ nhóm tại https://support.xumm.app", + "questionsAndSupportExplain": "Nếu bạn có thắc mắc, bạn có thể đọc Câu hỏi thường gặp và đặt câu hỏi tại https://support.xaman.app.\r\n\r\nĐây là kênh đáng tin cậy DUY NHẤT để hỗ trợ XUMM.", + "IOnlyTrustAnswersFromXamanSupportTeam": "Tôi sẽ chỉ tin tưởng câu trả lời từ Xaman hỗ trợ nhóm tại https://support.xaman.app", "pleaseReadTheTextAboveCarefully": "Vui lòng đọc kỹ văn bản trên" }, "home": { @@ -1280,4 +1280,4 @@ "weekdaysParseExact": true, "abbr": "vi" } -} \ No newline at end of file +} diff --git a/src/locale/translations/zh-TW.json b/src/locale/translations/zh-TW.json index f833ce5ec..c1d3012e3 100644 --- a/src/locale/translations/zh-TW.json +++ b/src/locale/translations/zh-TW.json @@ -383,7 +383,7 @@ "repeatPasscode": "Please repeat your new passcode", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "You will need your passcode to unlock the app", - "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xumm.app for more information.", + "UnableToStoreThePasscode": "Unable to store the passcode. This should not happen. A bug report was sent to the Xaman support team. Please contact us at support@xaman.app for more information.", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Using Xaman with a new device will require you to re-enter your secret keys for any accounts you have previously created.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret account keys safe and offline, so I can re-enter them if I get a new device.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xumm.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xumm.app ", + "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xaman.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xaman.app ", "pleaseReadTheTextAboveCarefully": "Please read the above text carefully" }, "home": { @@ -1278,4 +1278,4 @@ ], "abbr": "zh-tw" } -} \ No newline at end of file +} diff --git a/src/locale/translations/zh.json b/src/locale/translations/zh.json index a939f35df..a494cf602 100644 --- a/src/locale/translations/zh.json +++ b/src/locale/translations/zh.json @@ -383,7 +383,7 @@ "repeatPasscode": "请重复您的新密码", "passcodeDoNotMatch": "The passcodes do not match!", "warnNeedPasscode": "您将需要密码来解锁应用程序", - "UnableToStoreThePasscode": "无法存储密码。这不应该发生。一个错误报告已发送给Xaman支持团队。请通过support@xumm.app与我们联系以获取更多信息。", + "UnableToStoreThePasscode": "无法存储密码。这不应该发生。一个错误报告已发送给Xaman支持团队。请通过support@xaman.app与我们联系以获取更多信息。", "weakPasscode": "Weak passcode", "weakPasscodeDescription": "The selected passcode is easy to guess. We recommend you to choose a stronger one.", "useAnyway": "Use anyway", @@ -416,8 +416,8 @@ "whenYouChangeYourPhoneExplain": "Using Xaman with a new device will require you to re-enter your secret keys for any accounts you have previously created.", "IWillKeepMySecretsSafeSoICanReEnterThemIfIGetANewPhone": "I will keep my secret account keys safe and offline, so I can re-enter them if I get a new device.", "questionsAndSupport": "Questions & Support", - "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xumm.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", - "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xumm.app ", + "questionsAndSupportExplain": "Please don’t hesitate to contact us if you have any further questions. Our FAQ and support channel can be found here: https://support.xaman.app.\r\n\r\nPlease note: This is THE ONLY trustworthy channel for XUMM support.", + "IOnlyTrustAnswersFromXamanSupportTeam": "I will only trust answers from the Xaman support team at https://support.xaman.app ", "pleaseReadTheTextAboveCarefully": "Please read the above text carefully" }, "home": { @@ -1276,4 +1276,4 @@ ], "abbr": "zh-cn" } -} \ No newline at end of file +} diff --git a/src/screens/Account/Add/Import/Steps/MnemonicAlert/MnemonicAlertStep.tsx b/src/screens/Account/Add/Import/Steps/MnemonicAlert/MnemonicAlertStep.tsx index b050ea782..047e2b0c2 100644 --- a/src/screens/Account/Add/Import/Steps/MnemonicAlert/MnemonicAlertStep.tsx +++ b/src/screens/Account/Add/Import/Steps/MnemonicAlert/MnemonicAlertStep.tsx @@ -5,6 +5,8 @@ import React, { Component } from 'react'; import { SafeAreaView, View, Text, Image, Linking, Alert } from 'react-native'; +import { WebLinks } from '@common/constants/endpoints'; + import StyleService from '@services/StyleService'; // components @@ -28,9 +30,7 @@ class MnemonicAlertStep extends Component { declare context: React.ContextType; openFAQ = () => { - const url = 'https://xumm.app/redir/faq/security-hardware/en'; - - Linking.openURL(url).catch(() => { + Linking.openURL(`${WebLinks.FAQSecurityHardwareURL}/${Localize.getCurrentLocale()}`).catch(() => { Alert.alert(Localize.t('global.error'), Localize.t('global.cannotOpenLink')); }); }; diff --git a/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx b/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx index cf26fd747..c28aee2e0 100644 --- a/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx +++ b/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx @@ -22,6 +22,7 @@ import { utils as AccountLibUtils } from 'xrpl-accountlib'; import { OptionsModalPresentationStyle } from 'react-native-navigation'; import { AppConfig, AppScreens } from '@common/constants'; +import { HOSTNAME } from '@common/constants/endpoints'; import { Images } from '@common/helpers/images'; import { Navigator } from '@common/helpers/navigator'; @@ -717,7 +718,7 @@ class XAppBrowserModal extends Component { } return { - uri: `https://xumm.app/detect/xapp:${app.identifier}?xAppToken=${ott}&xAppStyle=${toUpper( + uri: `https://${HOSTNAME}/detect/xapp:${app.identifier}?xAppToken=${ott}&xAppStyle=${toUpper( coreSettings.theme, )}`, headers: { diff --git a/src/screens/Overlay/ChangeLog/ChangeLogOverlay.tsx b/src/screens/Overlay/ChangeLog/ChangeLogOverlay.tsx index f8d65590d..b91336d1d 100644 --- a/src/screens/Overlay/ChangeLog/ChangeLogOverlay.tsx +++ b/src/screens/Overlay/ChangeLog/ChangeLogOverlay.tsx @@ -7,7 +7,9 @@ import { View, Text, Animated } from 'react-native'; import { CoreRepository } from '@store/repositories'; import { Navigator } from '@common/helpers/navigator'; -import { AppScreens, AppConfig } from '@common/constants'; + +import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import { WebViewBrowser, Button } from '@components/General'; @@ -74,7 +76,7 @@ class ChangeLogOverlay extends Component { getURI = () => { const { version } = this.props; - return `${AppConfig.changeLogURL}${version}`; + return `${WebLinks.ChangeLogURL}/${Localize.getCurrentLocale()}/?update=${version}`; }; render() { diff --git a/src/screens/Overlay/PassphraseAuthentication/PassphraseAuthenticationOverlay.tsx b/src/screens/Overlay/PassphraseAuthentication/PassphraseAuthenticationOverlay.tsx index 58a3193cf..d98ec91a6 100644 --- a/src/screens/Overlay/PassphraseAuthentication/PassphraseAuthenticationOverlay.tsx +++ b/src/screens/Overlay/PassphraseAuthentication/PassphraseAuthenticationOverlay.tsx @@ -18,6 +18,9 @@ import { Alert, } from 'react-native'; +import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; + import { CoreRepository } from '@store/repositories'; import { AccountModel, CoreModel } from '@store/models'; @@ -25,8 +28,6 @@ import Keyboard from '@common/helpers/keyboard'; import { Navigator } from '@common/helpers/navigator'; import { Prompt, VibrateHapticFeedback } from '@common/helpers/interface'; -import { AppScreens } from '@common/constants'; - import Vault from '@common/libs/vault'; // components @@ -196,8 +197,7 @@ class PassphraseAuthenticationOverlay extends Component { }; openTroubleshootLink = () => { - const url = `https://xumm.app/redir/faq/account-signing-password/${Localize.getCurrentLocale()}`; - Linking.openURL(url).catch(() => { + Linking.openURL(WebLinks.FAQAccountSigningPasswordURL).catch(() => { Alert.alert(Localize.t('global.error'), Localize.t('global.cannotOpenLink')); }); }; diff --git a/src/screens/Overlay/Vault/VaultOverlay.tsx b/src/screens/Overlay/Vault/VaultOverlay.tsx index f3e371ae3..1e3088619 100644 --- a/src/screens/Overlay/Vault/VaultOverlay.tsx +++ b/src/screens/Overlay/Vault/VaultOverlay.tsx @@ -28,6 +28,7 @@ import { Navigator } from '@common/helpers/navigator'; import { Prompt, VibrateHapticFeedback } from '@common/helpers/interface'; import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import Localize from '@locale'; @@ -232,8 +233,7 @@ class VaultOverlay extends Component { }; openTroubleshootLink = () => { - const url = `https://xumm.app/redir/faq/account-signing-password/${Localize.getCurrentLocale()}`; - Linking.openURL(url).catch(() => { + Linking.openURL(`${WebLinks.FAQAccountSigningPasswordURL}/${Localize.getCurrentLocale()}`).catch(() => { Alert.alert(Localize.t('global.error'), Localize.t('global.cannotOpenLink')); }); }; diff --git a/src/screens/Request/RequestView.tsx b/src/screens/Request/RequestView.tsx index 233357f72..d66e8b81b 100644 --- a/src/screens/Request/RequestView.tsx +++ b/src/screens/Request/RequestView.tsx @@ -15,6 +15,7 @@ import { Toast } from '@common/helpers/interface'; import { Navigator } from '@common/helpers/navigator'; import { AppScreens } from '@common/constants'; +import { HOSTNAME } from '@common/constants/endpoints'; import { AccountRepository, CoreRepository } from '@store/repositories'; import { AccountModel, CoreModel } from '@store/models'; @@ -174,7 +175,7 @@ class RequestView extends Component { getLink = () => { const { source, amount, withAmount } = this.state; - let content = `https://xumm.app/detect/request:${source.address}`; + let content = `https://${HOSTNAME}/detect/request:${source.address}`; if (amount && withAmount) { content += `?amount=${amount}`; diff --git a/src/screens/Settings/AddressBook/AddressBookView.tsx b/src/screens/Settings/AddressBook/AddressBookView.tsx index e539e2d7f..8bb735790 100644 --- a/src/screens/Settings/AddressBook/AddressBookView.tsx +++ b/src/screens/Settings/AddressBook/AddressBookView.tsx @@ -14,7 +14,9 @@ import { EventSubscription, Navigation } from 'react-native-navigation'; import StyleService from '@services/StyleService'; import { Navigator } from '@common/helpers/navigator'; + import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import { ContactRepository } from '@store/repositories'; import { ContactModel } from '@store/models'; @@ -159,7 +161,7 @@ class AddressBookView extends Component { activeOpacity={0.8} > - + {item.name} {item.address} diff --git a/src/screens/Settings/Credits/CreditsView.tsx b/src/screens/Settings/Credits/CreditsView.tsx index 7f7ca1fcd..6af1a2ff6 100644 --- a/src/screens/Settings/Credits/CreditsView.tsx +++ b/src/screens/Settings/Credits/CreditsView.tsx @@ -7,7 +7,8 @@ import { View } from 'react-native'; import { Navigator } from '@common/helpers/navigator'; import { HasBottomNotch } from '@common/helpers/device'; -import { AppScreens, AppConfig } from '@common/constants'; +import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import { CoreRepository } from '@store/repositories'; import { CoreModel } from '@store/models'; @@ -55,7 +56,7 @@ class CreditsView extends Component { }; getURI = () => { - return `${AppConfig.creditsURL}${Localize.getCurrentLocale()}`; + return `${WebLinks.CreditsURL}/${Localize.getCurrentLocale()}`; }; render() { diff --git a/src/screens/Settings/TermOfUse/TermOfUseView.tsx b/src/screens/Settings/TermOfUse/TermOfUseView.tsx index 93e634073..5c6ac4ca9 100644 --- a/src/screens/Settings/TermOfUse/TermOfUseView.tsx +++ b/src/screens/Settings/TermOfUse/TermOfUseView.tsx @@ -8,7 +8,7 @@ import { View, Text, BackHandler, NativeEventSubscription } from 'react-native'; import { HasBottomNotch } from '@common/helpers/device'; import { Navigator } from '@common/helpers/navigator'; -import { AppScreens, AppConfig } from '@common/constants'; +import { AppScreens } from '@common/constants'; import { ProfileRepository, CoreRepository } from '@store/repositories'; @@ -22,6 +22,7 @@ import styles from './styles'; /* types ==================================================================== */ import { Props, State } from './types'; +import { WebLinks } from '@common/constants/endpoints'; /* Component ==================================================================== */ class TermOfUseView extends Component { @@ -106,7 +107,7 @@ class TermOfUseView extends Component { }; getURI = () => { - return `${AppConfig.termOfUseURL}${Localize.getCurrentLocale()}`; + return `${WebLinks.TermOfUseURL}/${Localize.getCurrentLocale()}`; }; onTOSLoaded = () => { diff --git a/src/screens/Setup/Finish/FinishView.tsx b/src/screens/Setup/Finish/FinishView.tsx index e37571ea7..c76d52e9a 100644 --- a/src/screens/Setup/Finish/FinishView.tsx +++ b/src/screens/Setup/Finish/FinishView.tsx @@ -9,7 +9,9 @@ import { View, SafeAreaView, Image, Alert } from 'react-native'; import { CoreRepository, ProfileRepository } from '@store/repositories'; import { Navigator } from '@common/helpers/navigator'; -import { AppScreens, AppConfig } from '@common/constants'; + +import { AppScreens } from '@common/constants'; +import { WebLinks } from '@common/constants/endpoints'; import { BackendService, AuthenticationService, StyleService } from '@services'; @@ -121,7 +123,7 @@ class FinishView extends Component { }; getURI = () => { - return AppConfig.termOfUseURL; + return `${WebLinks.TermOfUseURL}/${Localize.getCurrentLocale()}`; }; render() { diff --git a/src/services/ApiService.ts b/src/services/ApiService.ts index cce98243e..c1a5ea0a1 100644 --- a/src/services/ApiService.ts +++ b/src/services/ApiService.ts @@ -16,7 +16,7 @@ import { CoreModel } from '@store/models'; import { SHA256 } from '@common/libs/crypto'; import { AppConfig, ErrorMessages } from '@common/constants'; -import { Endpoints, ApiUrl } from '@common/constants/api'; +import { Endpoints, ApiUrl } from '@common/constants/endpoints'; import { GetDeviceUniqueId } from '@common/helpers/device'; diff --git a/src/services/AppService.ts b/src/services/AppService.ts index 3718a4f72..c237e7ccc 100644 --- a/src/services/AppService.ts +++ b/src/services/AppService.ts @@ -15,6 +15,7 @@ import Preferences from '@common/libs/preferences'; import { VersionDiff } from '@common/utils/version'; import LoggerService, { LoggerInstance } from '@services/LoggerService'; +import { WebLinks } from '@common/constants/endpoints'; /* Constants ==================================================================== */ const { AppUtilsModule, AppUpdateModule } = NativeModules; @@ -128,7 +129,7 @@ class AppService extends EventEmitter { }, { text: Localize.t('global.update'), - onPress: () => Linking.openURL('https://apps.apple.com/us/app/id1492302343'), + onPress: () => Linking.openURL(WebLinks.AppleStoreLink), }, ], { cancelable: true }, diff --git a/src/services/BackendService.ts b/src/services/BackendService.ts index 0382442fc..db776d440 100644 --- a/src/services/BackendService.ts +++ b/src/services/BackendService.ts @@ -42,7 +42,7 @@ import Localize from '@locale'; import { Props as TermOfUseViewProps } from '@screens/Settings/TermOfUse/types'; import { InAppPurchaseReceipt } from '@common/libs/iap'; -import { Endpoints } from '@common/constants/api'; +import { Endpoints } from '@common/constants/endpoints'; /* Types ==================================================================== */ export interface RatesType { @@ -348,7 +348,7 @@ class BackendService { * @returns {Promise} A promise that resolves when the permission is revoked. */ revokeThirdPartyPermission = (appId: string): Promise => { - return ApiService.fetch(Endpoints.ThirdPartyApps, 'DELETE', { appId }); + return ApiService.fetch(Endpoints.ThirdPartyApp, 'DELETE', { appId }); }; /** diff --git a/src/services/__tests__/ApiService.test.ts b/src/services/__tests__/ApiService.test.ts index 22029c4da..2fe74f236 100644 --- a/src/services/__tests__/ApiService.test.ts +++ b/src/services/__tests__/ApiService.test.ts @@ -2,7 +2,7 @@ import fetch from 'fetch-mock'; -import { Endpoints } from '@common/constants/api'; +import { Endpoints } from '@common/constants/endpoints'; import { ApiService } from '../'; import { ApiError } from '../ApiService'; From 6ef91d526a4e31244e525c1620832eea716bc27b Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 10:52:02 +0200 Subject: [PATCH 04/10] fix(android): disable proguard for tangem sdk --- android/app/proguard-rules.pro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 0c8a61805..64e78e710 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -69,6 +69,10 @@ #------------- realm ------------------ -keep class io.realm.react.** +#------------- tangem ------------------ +-keep class com.tangem.** + + #------------- Hermes ------------------ -keep class com.facebook.hermes.unicode.** { *; } -keep class com.facebook.jni.** { *; } From 01cfd6b7a311ff73e8bee8eae3b021b8bec27022 Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 11:02:09 +0200 Subject: [PATCH 05/10] fix: crash on events list filter --- .../Modules/EventsFilterChip/styles.ts | 3 - src/screens/Events/EventsView.tsx | 63 ++++++++----------- 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/src/components/Modules/EventsFilterChip/styles.ts b/src/components/Modules/EventsFilterChip/styles.ts index 787c4791c..b7b5786f1 100644 --- a/src/components/Modules/EventsFilterChip/styles.ts +++ b/src/components/Modules/EventsFilterChip/styles.ts @@ -4,9 +4,6 @@ import { AppSizes, AppColors, AppFonts } from '@theme'; /* Styles ==================================================================== */ export default StyleSheet.create({ rowContainer: { - paddingTop: AppSizes.paddingSml, - left: 0, - right: 0, flexDirection: 'row', flexWrap: 'wrap', }, diff --git a/src/screens/Events/EventsView.tsx b/src/screens/Events/EventsView.tsx index f22c2976a..b4ebe3c05 100644 --- a/src/screens/Events/EventsView.tsx +++ b/src/screens/Events/EventsView.tsx @@ -586,12 +586,12 @@ class EventsView extends Component { return; } - let newTransactions; + let newDataSource: Array; if (activeSection === EventSections.ALL) { - newTransactions = transactions; + newDataSource = transactions; } else { - newTransactions = plannedTransactions; + newDataSource = plannedTransactions; } if (filters.TransactionType) { @@ -679,45 +679,34 @@ class EventsView extends Component { break; } - newTransactions = newTransactions.filter((element) => includeTypes.includes(element?.Type)); + newDataSource = newDataSource.filter((element) => includeTypes.includes(element?.Type)); } - if (filters.Amount && filters.AmountIndicator) { - newTransactions = filter(newTransactions, (element) => { - if (filters.AmountIndicator === 'Bigger') { - return ( - ('Amount' in element && parseFloat(element?.Amount!.value) >= parseFloat(filters.Amount!)) || - ('DeliverMin' in element && - parseFloat(element?.DeliverMin!.value) >= parseFloat(filters.Amount!)) || - ('SendMax' in element && parseFloat(element?.SendMax!.value) >= parseFloat(filters.Amount!)) || - ('TakerGets' in element && - parseFloat(element?.TakerGets!.value) >= parseFloat(filters.Amount!)) || - ('TakerPays' in element && parseFloat(element?.TakerPays!.value) >= parseFloat(filters.Amount!)) - ); - } - return ( - ('Amount' in element && parseFloat(element.Amount!.value) <= parseFloat(filters.Amount!)) || - ('DeliverMin' in element && parseFloat(element.DeliverMin!.value) <= parseFloat(filters.Amount!)) || - ('SendMax' in element && parseFloat(element.SendMax!.value) <= parseFloat(filters.Amount!)) || - ('TakerGets' in element && parseFloat(element.TakerGets!.value) <= parseFloat(filters.Amount!)) || - ('TakerPays' in element && parseFloat(element.TakerPays!.value) <= parseFloat(filters.Amount!)) - ); - }); + if (filters.Currency) { + // @ts-ignore + newDataSource = newDataSource.filter(({ Amount, DeliverMin, SendMax, TakerGets, TakerPays }) => + [Amount, DeliverMin, SendMax, TakerGets, TakerPays].some( + (field) => field?.currency === filters.Currency, + ), + ); } - if (filters.Currency) { - newTransactions = newTransactions.filter( - (element) => - ('Amount' in element && element.Amount!.currency === filters.Currency) || - ('DeliverMin' in element && element.DeliverMin!.currency === filters.Currency) || - ('SendMax' in element && element.SendMax!.currency === filters.Currency) || - ('TakerGets' in element && element.TakerGets!.currency === filters.Currency) || - ('TakerPays' in element && element.TakerPays!.currency === filters.Currency), + if (filters.Amount && filters.AmountIndicator) { + const compareAmount = (value1: string, value2: string) => + filters.AmountIndicator === 'Bigger' + ? parseFloat(value1) >= parseFloat(value2) + : parseFloat(value1) <= parseFloat(value2); + + // @ts-ignore + newDataSource = filter(newDataSource, ({ Amount, DeliverMin, SendMax, TakerGets, TakerPays }) => + [Amount, DeliverMin, SendMax, TakerGets, TakerPays].some( + (field) => field && compareAmount(field.value, filters.Amount!), + ), ); } if (filters.ExpenseType) { - newTransactions = newTransactions.filter((element) => { + newDataSource = newDataSource.filter((element) => { if ('Destination' in element) { if (filters.ExpenseType === 'Income') { return element?.Destination === account.address; @@ -729,7 +718,7 @@ class EventsView extends Component { } if (activeSection === EventSections.ALL) { - if (isEmpty(newTransactions) && canLoadMore) { + if (isEmpty(newDataSource) && canLoadMore) { this.setState( { filters, @@ -738,13 +727,13 @@ class EventsView extends Component { ); } else { this.setState({ - dataSource: this.buildDataSource(newTransactions, [], plannedTransactions), + dataSource: this.buildDataSource(newDataSource, [], plannedTransactions), filters, }); } } else { this.setState({ - dataSource: this.buildDataSource(transactions, [], newTransactions), + dataSource: this.buildDataSource(transactions, [], newDataSource), filters, }); } From 87cc98a54d82f6e90b87f1b781773bef6a228c25 Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 11:12:42 +0200 Subject: [PATCH 06/10] fix(android): XAppOverlayInfo buttons alignment --- src/screens/Overlay/XAppInfo/styles.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/screens/Overlay/XAppInfo/styles.tsx b/src/screens/Overlay/XAppInfo/styles.tsx index 10b4c7682..15a89773d 100644 --- a/src/screens/Overlay/XAppInfo/styles.tsx +++ b/src/screens/Overlay/XAppInfo/styles.tsx @@ -1,6 +1,7 @@ import StyleService from '@services/StyleService'; import { AppSizes, AppFonts } from '@theme'; + /* Styles ==================================================================== */ const styles = StyleService.create({ cancelButton: { @@ -48,7 +49,7 @@ const styles = StyleService.create({ footer: { alignItems: 'center', justifyContent: 'center', - marginBottom: AppSizes.paddingSml + AppSizes.safeAreaBottomInset, + marginBottom: AppSizes.paddingSml + AppSizes.bottomInset, }, }); From d66c1a731422dff77aba548e028030cb0e9a46fa Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 11:19:28 +0200 Subject: [PATCH 07/10] chore: hostnames backward compatible --- .../java/libs/common/HTTPClientFactory.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/android/app/src/main/java/libs/common/HTTPClientFactory.java b/android/app/src/main/java/libs/common/HTTPClientFactory.java index b6c6ec307..cbe669efd 100644 --- a/android/app/src/main/java/libs/common/HTTPClientFactory.java +++ b/android/app/src/main/java/libs/common/HTTPClientFactory.java @@ -17,10 +17,24 @@ public class HTTPClientFactory implements OkHttpClientFactory { - // TODO: remove "xumm-cdn.imgix.net" after migration period - private static final List trustedHosts = Arrays.asList("xumm-cdn.imgix.net", "cdn.xaman.app", "xaman.app", "image-proxy.xrpl-labs.com"); + // TODO: remove "xumm-cdn.imgix.net", "cdn.xumm.pro". "xumm.app" after migration period + private static final List trustedHosts = Arrays.asList("xumm-cdn.imgix.net", "cdn.xumm.pro", "xumm.app", "cdn.xaman.app", "xaman.app", "image-proxy.xrpl-labs.com"); private static final String defaultHost = "xaman.app"; + @Override + public OkHttpClient createNewNetworkModuleClient() { + + HostSelectionInterceptor interceptor = new HostSelectionInterceptor(); + + OkHttpClient.Builder client = new OkHttpClient.Builder() + .connectTimeout(0, TimeUnit.MILLISECONDS) + .readTimeout(0, TimeUnit.MILLISECONDS) + .writeTimeout(0, TimeUnit.MILLISECONDS) + .cookieJar(new ReactCookieJarContainer()) + .addInterceptor(interceptor); + return client.build(); + } + private static final class HostSelectionInterceptor implements Interceptor { @Override public okhttp3.Response intercept(Chain chain) throws IOException { @@ -37,18 +51,4 @@ public okhttp3.Response intercept(Chain chain) throws IOException { return chain.proceed(request); } } - - @Override - public OkHttpClient createNewNetworkModuleClient() { - - HostSelectionInterceptor interceptor = new HostSelectionInterceptor(); - - OkHttpClient.Builder client = new OkHttpClient.Builder() - .connectTimeout(0, TimeUnit.MILLISECONDS) - .readTimeout(0, TimeUnit.MILLISECONDS) - .writeTimeout(0, TimeUnit.MILLISECONDS) - .cookieJar(new ReactCookieJarContainer()) - .addInterceptor(interceptor); - return client.build(); - } } From 461537cef4d349fddcb76f42a4452d711cd10633 Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 11:39:27 +0200 Subject: [PATCH 08/10] feat: add share button on XAppInfoOverlay --- .../Modal/XAppBrowser/XAppBrowserModal.tsx | 16 +++++++++++++++- src/screens/Overlay/XAppInfo/XAppInfoOverlay.tsx | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx b/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx index c28aee2e0..caa8a5927 100644 --- a/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx +++ b/src/screens/Modal/XAppBrowser/XAppBrowserModal.tsx @@ -12,6 +12,7 @@ import { InteractionManager, Linking, NativeEventSubscription, + Share, Share as RNShare, Text, View, @@ -805,6 +806,18 @@ class XAppBrowserModal extends Component { }); }; + shareXApp = () => { + const { app } = this.state; + + const { identifier, title } = app!; + + Share.share({ + title, + message: `https://${HOSTNAME}/detect/xapp:${identifier}`, + url: undefined, + }); + }; + lunchMonetization = () => { const profile = ProfileRepository.getProfile(); @@ -829,8 +842,9 @@ class XAppBrowserModal extends Component { identifier, title: title!, icon: icon!, - displayButtonTypes: [DisplayButtonTypes.DONATION], + displayButtonTypes: [DisplayButtonTypes.DONATION, DisplayButtonTypes.SHARE], onDonationPress: this.openDonation, + onSharePress: this.shareXApp, }); }; diff --git a/src/screens/Overlay/XAppInfo/XAppInfoOverlay.tsx b/src/screens/Overlay/XAppInfo/XAppInfoOverlay.tsx index 0db7e080e..1742a0841 100644 --- a/src/screens/Overlay/XAppInfo/XAppInfoOverlay.tsx +++ b/src/screens/Overlay/XAppInfo/XAppInfoOverlay.tsx @@ -158,7 +158,7 @@ class XAppInfoOverlay extends Component { const { displayButtonTypes } = this.props; if ( - !displayButtonTypes?.includes(DisplayButtonTypes.OPEN) || + !displayButtonTypes?.includes(DisplayButtonTypes.OPEN) && !displayButtonTypes?.includes(DisplayButtonTypes.SHARE) ) { return null; @@ -179,6 +179,7 @@ class XAppInfoOverlay extends Component { style={AppStyles.flex1} rounded light + icon="IconShare" label={Localize.t('global.share')} onPress={this.onSharePress} /> From 7345686b6cab503e07a95d2032957b0c63c649dd Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Thu, 26 Sep 2024 12:09:28 +0200 Subject: [PATCH 09/10] chore: v3.0.1 --- android/app/build.gradle | 4 ++-- ios/Xaman.xcodeproj/project.pbxproj | 12 ++++++------ package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 66b1f121c..77911e71c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -6,8 +6,8 @@ apply plugin: "com.google.firebase.crashlytics" import com.android.build.OutputFile -def canonicalVersionName = "3.0.0" -def canonicalVersionCode = 18 +def canonicalVersionName = "3.0.1" +def canonicalVersionCode = 19 // NOTE: DO NOT change postFixSize value, this is for handling legacy method for handling the versioning in android def postFixSize = 30_000 diff --git a/ios/Xaman.xcodeproj/project.pbxproj b/ios/Xaman.xcodeproj/project.pbxproj index 24fb61d41..5852cea25 100644 --- a/ios/Xaman.xcodeproj/project.pbxproj +++ b/ios/Xaman.xcodeproj/project.pbxproj @@ -1098,7 +1098,7 @@ "${PODS_ROOT}/Firebase/CoreOnly/Sources", "\"$(PODS_ROOT)/boost\"", "\"$(PODS_ROOT)/Headers/Private/React-Core\"", - "$CONFIGURATION_TEMP_DIR/Xaman.build/DerivedSources", + $CONFIGURATION_TEMP_DIR/Xaman.build/DerivedSources, ); INFOPLIST_FILE = XamanTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; @@ -1182,7 +1182,7 @@ "${PODS_ROOT}/Firebase/CoreOnly/Sources", "\"$(PODS_ROOT)/boost\"", "\"$(PODS_ROOT)/Headers/Private/React-Core\"", - "$CONFIGURATION_TEMP_DIR/Xaman.build/DerivedSources", + $CONFIGURATION_TEMP_DIR/Xaman.build/DerivedSources, ); INFOPLIST_FILE = XamanTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; @@ -1210,7 +1210,7 @@ CODE_SIGN_ENTITLEMENTS = Xaman/Xaman.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 14; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = LK5BBJNJZ6; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -1221,7 +1221,7 @@ INFOPLIST_FILE = Xaman/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 3.0.0; + MARKETING_VERSION = 3.0.1; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1246,13 +1246,13 @@ CODE_SIGN_ENTITLEMENTS = Xaman/Xaman.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 14; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = LK5BBJNJZ6; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Xaman/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 3.0.0; + MARKETING_VERSION = 3.0.1; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", diff --git a/package.json b/package.json index 39976ed37..7307a1313 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xaman", - "version": "3.0.0", + "version": "3.0.1", "license": "SEE LICENSE IN ", "scripts": { "start": "node node_modules/react-native/cli.js start", From b3c0bbdc47275cc1e7196c74df7ca9c10d0ad64b Mon Sep 17 00:00:00 2001 From: N3TC4T Date: Fri, 27 Sep 2024 12:15:49 +0200 Subject: [PATCH 10/10] chore(ios): build number --- ios/Xaman/Info.plist | 2 +- ios/XamanTests/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/Xaman/Info.plist b/ios/Xaman/Info.plist index c3f14dfb6..9929502a7 100644 --- a/ios/Xaman/Info.plist +++ b/ios/Xaman/Info.plist @@ -54,7 +54,7 @@ CFBundleVersion - 14 + 1 LSApplicationQueriesSchemes https diff --git a/ios/XamanTests/Info.plist b/ios/XamanTests/Info.plist index ed90b3ec0..ba72822e8 100644 --- a/ios/XamanTests/Info.plist +++ b/ios/XamanTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 14 + 1