mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 20:39:51 +00:00
Update list of trocador providers to be fetched from the api (#1379)
* fetch providers from Trocadore api
* Update exchange_confirm_page.dart
* Update exchange_view_model.dart
* update trocador providers page
* Revert "Update exchange_view_model.dart"
This reverts commit 5722ed768a
.
* update exchange view model
* pass the TrocadorExchangeProvider as a dependency [skip ci]
* add missing localozation [skip ci]
* minor fix
* address review comments[skip ci]
* update states when the provider is enabled
* add kyc rating
* sort providers by KYC
* minor fix
* Update exchange_view_model.dart
* Update lib/exchange/provider/trocador_exchange_provider.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* backward compatibility for Trocador provider states
* minor fix
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
parent
dcde3fd253
commit
b387c6182a
34 changed files with 327 additions and 54 deletions
10
lib/di.dart
10
lib/di.dart
|
@ -33,6 +33,11 @@ import 'package:cake_wallet/entities/contact_record.dart';
|
|||
import 'package:cake_wallet/entities/exchange_api_mode.dart';
|
||||
import 'package:cake_wallet/entities/hardware_wallet/require_hardware_wallet_connection.dart';
|
||||
import 'package:cake_wallet/entities/parse_address_from_domain.dart';
|
||||
import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart';
|
||||
import 'package:cake_wallet/view_model/link_view_model.dart';
|
||||
import 'package:cake_wallet/tron/tron.dart';
|
||||
import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart';
|
||||
import 'package:cw_core/receive_page_option.dart';
|
||||
import 'package:cake_wallet/entities/wallet_edit_page_arguments.dart';
|
||||
import 'package:cake_wallet/entities/wallet_manager.dart';
|
||||
import 'package:cake_wallet/src/screens/buy/buy_sell_options_page.dart';
|
||||
|
@ -897,7 +902,10 @@ Future<void> setup({
|
|||
return PrivacySettingsViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>().wallet!);
|
||||
});
|
||||
|
||||
getIt.registerFactory(() => TrocadorProvidersViewModel(getIt.get<SettingsStore>()));
|
||||
getIt.registerFactory(() => TrocadorExchangeProvider());
|
||||
|
||||
getIt.registerFactory(() => TrocadorProvidersViewModel(
|
||||
getIt.get<SettingsStore>(), getIt.get<TrocadorExchangeProvider>()));
|
||||
|
||||
getIt.registerFactory(() {
|
||||
return OtherSettingsViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>().wallet!,
|
||||
|
|
|
@ -86,6 +86,7 @@ class PreferencesKey {
|
|||
'${PreferencesKey.moneroWalletPasswordUpdateV1Base}_${name}';
|
||||
|
||||
static const exchangeProvidersSelection = 'exchange-providers-selection';
|
||||
static const trocadorProviderStatesKey = 'trocador_provider_states';
|
||||
static const autoGenerateSubaddressStatusKey = 'auto_generate_subaddress_status';
|
||||
static const moneroSeedType = 'monero_seed_type';
|
||||
static const bitcoinSeedType = 'bitcoin_seed_type';
|
||||
|
|
|
@ -19,7 +19,7 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
super(pairList: supportedPairs(_notSupported));
|
||||
|
||||
bool useTorOnly;
|
||||
final Map<String, bool> providerStates;
|
||||
Map<String, bool> providerStates;
|
||||
|
||||
static const List<String> availableProviders = [
|
||||
'Swapter',
|
||||
|
@ -59,6 +59,8 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
static const createTradePath = '/new_trade';
|
||||
static const tradePath = '/trade';
|
||||
static const coinPath = '/coin';
|
||||
static const providersListPath = '/exchanges';
|
||||
|
||||
|
||||
String _lastUsedRateId;
|
||||
List<dynamic> _provider;
|
||||
|
@ -147,7 +149,14 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
final rateId = responseJSON['trade_id'] as String? ?? '';
|
||||
|
||||
var quotes = responseJSON['quotes']['quotes'] as List;
|
||||
_provider = quotes.map((quote) => quote['provider']).toList();
|
||||
_provider = quotes
|
||||
.where((quote) => providerStates[quote['provider']] != false)
|
||||
.map((quote) => quote['provider'])
|
||||
.toList();
|
||||
|
||||
if (_provider.isEmpty) {
|
||||
throw Exception('No enabled providers found for the selected trade.');
|
||||
}
|
||||
|
||||
if (rateId.isNotEmpty) _lastUsedRateId = rateId;
|
||||
|
||||
|
@ -190,20 +199,11 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
params['id'] = _lastUsedRateId;
|
||||
}
|
||||
|
||||
String firstAvailableProvider = '';
|
||||
|
||||
for (var provider in _provider) {
|
||||
if (providerStates.containsKey(provider) && providerStates[provider] == true) {
|
||||
firstAvailableProvider = provider as String;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (firstAvailableProvider.isEmpty) {
|
||||
if (_provider.isEmpty) {
|
||||
throw Exception('No available provider is enabled');
|
||||
}
|
||||
|
||||
params['provider'] = firstAvailableProvider;
|
||||
params['provider'] = _provider.first as String;
|
||||
|
||||
final uri = await _getUri(createTradePath, params);
|
||||
final response = await get(uri, headers: {'API-Key': apiKey});
|
||||
|
@ -288,6 +288,24 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
});
|
||||
}
|
||||
|
||||
Future<List<TrocadorPartners>> fetchProviders() async {
|
||||
final uri = await _getUri(providersListPath, {'api_key': apiKey});
|
||||
final response = await get(uri);
|
||||
|
||||
if (response.statusCode != 200)
|
||||
throw Exception('Unexpected http status: ${response.statusCode}');
|
||||
|
||||
final responseJSON = json.decode(response.body) as Map<String, dynamic>;
|
||||
|
||||
final providersJsonList = responseJSON['list'] as List<dynamic>;
|
||||
final filteredProvidersList = providersJsonList
|
||||
.map((providerJson) => TrocadorPartners.fromJson(providerJson as Map<String, dynamic>))
|
||||
.where((provider) => provider.rating != 'D')
|
||||
.toList();
|
||||
filteredProvidersList.sort((a, b) => a.rating.compareTo(b.rating));
|
||||
return filteredProvidersList;
|
||||
}
|
||||
|
||||
String _networkFor(CryptoCurrency currency) {
|
||||
switch (currency) {
|
||||
case CryptoCurrency.eth:
|
||||
|
@ -343,3 +361,29 @@ class TrocadorExchangeProvider extends ExchangeProvider {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TrocadorPartners {
|
||||
final String name;
|
||||
final String rating;
|
||||
final double? insurance;
|
||||
final bool? enabledMarkup;
|
||||
final double? eta;
|
||||
|
||||
TrocadorPartners({
|
||||
required this.name,
|
||||
required this.rating,
|
||||
required this.insurance,
|
||||
required this.enabledMarkup,
|
||||
required this.eta,
|
||||
});
|
||||
|
||||
factory TrocadorPartners.fromJson(Map<String, dynamic> json) {
|
||||
return TrocadorPartners(
|
||||
name: json['name'] as String? ?? '',
|
||||
rating: json['rating'] as String? ?? 'N/A',
|
||||
insurance: json['insurance'] as double?,
|
||||
enabledMarkup: json['enabledmarkup'] as bool?,
|
||||
eta: json['eta'] as double?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,22 +97,39 @@ class ExchangeConfirmPage extends BasePage {
|
|||
],
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: Center(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
(trade.provider.image?.isNotEmpty ?? false)
|
||||
? ImageUtil.getImageFromPath(
|
||||
imagePath: trade.provider.image, width: 50)
|
||||
: const SizedBox(),
|
||||
if (!trade.provider.horizontalLogo)
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||
child: Text(trade.provider.title),
|
||||
Expanded(
|
||||
child: Column(
|
||||
children: [
|
||||
if (trade.provider == ExchangeProviderDescription.trocador)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0),
|
||||
child: Text(
|
||||
S.of(context).selected_trocador_provider +':${trade.providerName}',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: Center(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
(trade.provider.image?.isNotEmpty ?? false)
|
||||
? Image.asset(trade.provider.image, height: 50)
|
||||
: const SizedBox(),
|
||||
if (!trade.provider.horizontalLogo)
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||
child: Text(trade.provider.title),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart';
|
||||
import 'package:cake_wallet/view_model/settings/trocador_providers_view_model.dart';
|
||||
|
@ -15,23 +15,92 @@ class TrocadorProvidersPage extends BasePage {
|
|||
|
||||
@override
|
||||
Widget body(BuildContext context) {
|
||||
final availableProviders = TrocadorExchangeProvider.availableProviders;
|
||||
final providerStates = trocadorProvidersViewModel.providerStates;
|
||||
return Container(
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: ListView.builder(
|
||||
itemCount: availableProviders.length,
|
||||
itemBuilder: (_, index) {
|
||||
String provider = availableProviders[index];
|
||||
return Observer(
|
||||
builder: (_) => SettingsSwitcherCell(
|
||||
title: provider,
|
||||
value: providerStates[provider] ?? false,
|
||||
onValueChange: (BuildContext _, bool value) {
|
||||
trocadorProvidersViewModel.toggleProviderState(provider);
|
||||
}));
|
||||
child: Observer(
|
||||
builder: (_) {
|
||||
if (trocadorProvidersViewModel.isLoading) {
|
||||
return Center(child: CircularProgressIndicator());
|
||||
}
|
||||
var providerStates = trocadorProvidersViewModel.providerStates;
|
||||
final providerRatings = trocadorProvidersViewModel.providerRatings;
|
||||
if (providerStates.isEmpty) {
|
||||
return Center(child: Text(S.of(context).no_providers_available));
|
||||
}
|
||||
return ListView.builder(
|
||||
itemCount: providerStates.length,
|
||||
itemBuilder: (_, index) {
|
||||
final providerName = providerStates.keys.elementAt(index);
|
||||
final providerEnabled = providerStates[providerName] ?? true;
|
||||
return SettingsSwitcherCell(
|
||||
title: providerName,
|
||||
value: providerEnabled,
|
||||
leading: Badge(
|
||||
title: 'KYC \nRATING',
|
||||
subTitle: providerRatings[providerName] ?? 'N/A',
|
||||
textColor: Colors.white,
|
||||
backgroundColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
onValueChange: (BuildContext _, value) =>
|
||||
trocadorProvidersViewModel.toggleProviderState(providerName),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class Badge extends StatelessWidget {
|
||||
Badge({required this.textColor, required this.backgroundColor, required this.title, required this.subTitle});
|
||||
|
||||
final String title;
|
||||
final String subTitle;
|
||||
final Color textColor;
|
||||
final Color backgroundColor;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(right: 8),
|
||||
child: FittedBox(
|
||||
fit: BoxFit.fitHeight,
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(24)), color: backgroundColor),
|
||||
alignment: Alignment.center,
|
||||
child: IntrinsicHeight(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: textColor,
|
||||
fontSize: 7,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
VerticalDivider(
|
||||
color: textColor,
|
||||
thickness: 1,
|
||||
),
|
||||
Text(
|
||||
subTitle,
|
||||
style: TextStyle(
|
||||
color: textColor,
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
||||
|
@ -224,12 +225,11 @@ abstract class SettingsStoreBase with Store {
|
|||
if (initialZanoTransactionPriority != null) {
|
||||
priority[WalletType.zano] = initialZanoTransactionPriority;
|
||||
}
|
||||
|
||||
if (initialCakePayCountry != null) {
|
||||
selectedCakePayCountry = initialCakePayCountry;
|
||||
}
|
||||
|
||||
initializeTrocadorProviderStates();
|
||||
|
||||
reaction(
|
||||
(_) => fiatCurrency,
|
||||
(FiatCurrency fiatCurrency) => sharedPreferences.setString(
|
||||
|
@ -1708,16 +1708,47 @@ abstract class SettingsStoreBase with Store {
|
|||
powNodes[walletType] = node;
|
||||
}
|
||||
|
||||
void initializeTrocadorProviderStates() {
|
||||
for (var provider in TrocadorExchangeProvider.availableProviders) {
|
||||
final savedState = _sharedPreferences.getBool(provider) ?? true;
|
||||
trocadorProviderStates[provider] = savedState;
|
||||
@action
|
||||
Future<void> updateAllTrocadorProviderStates(List<String> availableProviders) async {
|
||||
final jsonKey = PreferencesKey.trocadorProviderStatesKey;
|
||||
String? serializedData = await _sharedPreferences.getString(jsonKey);
|
||||
|
||||
if (serializedData == null) {
|
||||
final Map<String, bool> migratedStates = {};
|
||||
for (final provider in TrocadorExchangeProvider.availableProviders) {
|
||||
final oldState = _sharedPreferences.getBool(provider) ?? true;
|
||||
migratedStates[provider] = oldState;
|
||||
}
|
||||
|
||||
trocadorProviderStates
|
||||
..clear()
|
||||
..addAll(migratedStates);
|
||||
|
||||
await saveMapToString(jsonKey, trocadorProviderStates);
|
||||
} else {
|
||||
final decodedMap = json.decode(serializedData) as Map<String, dynamic>;
|
||||
final oldMap = decodedMap.map((k, v) => MapEntry(k, v == true));
|
||||
|
||||
final Map<String, bool> newStates = {
|
||||
for (final provider in availableProviders) provider: oldMap[provider] ?? true
|
||||
};
|
||||
|
||||
trocadorProviderStates
|
||||
..clear()
|
||||
..addAll(newStates);
|
||||
await saveMapToString(jsonKey, trocadorProviderStates);
|
||||
}
|
||||
}
|
||||
|
||||
void saveTrocadorProviderState(String providerName, bool state) {
|
||||
_sharedPreferences.setBool(providerName, state);
|
||||
@action
|
||||
Future<void> setTrocadorProviderState(String providerName, bool state) async {
|
||||
trocadorProviderStates[providerName] = state;
|
||||
await saveMapToString(PreferencesKey.trocadorProviderStatesKey, trocadorProviderStates);
|
||||
}
|
||||
|
||||
Future<void> saveMapToString(String key, Map<String, bool> map) async {
|
||||
String serializedData = json.encode(map);
|
||||
await _sharedPreferences.setString(key, serializedData);
|
||||
}
|
||||
|
||||
static Future<String?> _getDeviceName() async {
|
||||
|
|
|
@ -118,6 +118,16 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
|
|||
_setAvailableProviders();
|
||||
calculateBestRate();
|
||||
|
||||
autorun((_) {
|
||||
if (selectedProviders.any((provider) => provider is TrocadorExchangeProvider)) {
|
||||
final trocadorProvider =
|
||||
selectedProviders.firstWhere((provider) => provider is TrocadorExchangeProvider)
|
||||
as TrocadorExchangeProvider;
|
||||
|
||||
updateAllTrocadorProviderStates(trocadorProvider);
|
||||
}
|
||||
});
|
||||
|
||||
bestRateSync = Timer.periodic(Duration(seconds: 10), (timer) => calculateBestRate());
|
||||
|
||||
isDepositAddressEnabled = !(depositCurrency == wallet.currency);
|
||||
|
@ -183,6 +193,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
|
|||
useTorOnly: _useTorOnly, providerStates: _settingsStore.trocadorProviderStates),
|
||||
];
|
||||
|
||||
|
||||
@observable
|
||||
ExchangeProvider? provider;
|
||||
|
||||
|
@ -810,6 +821,17 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
|
|||
);
|
||||
}
|
||||
|
||||
@action
|
||||
Future<void> updateAllTrocadorProviderStates(TrocadorExchangeProvider trocadorProvider) async {
|
||||
try {
|
||||
var providers = await trocadorProvider.fetchProviders();
|
||||
var providerNames = providers.map((e) => e.name).toList();
|
||||
await _settingsStore.updateAllTrocadorProviderStates(providerNames);
|
||||
} catch (e) {
|
||||
printV('Error updating trocador provider states: $e');
|
||||
}
|
||||
}
|
||||
|
||||
bool get isAvailableInSelected {
|
||||
final providersForPair = providersForCurrentPair();
|
||||
return selectedProviders
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart';
|
||||
import 'package:cake_wallet/store/settings_store.dart';
|
||||
import 'package:mobx/mobx.dart';
|
||||
|
||||
|
@ -6,9 +7,37 @@ part 'trocador_providers_view_model.g.dart';
|
|||
class TrocadorProvidersViewModel = TrocadorProvidersViewModelBase with _$TrocadorProvidersViewModel;
|
||||
|
||||
abstract class TrocadorProvidersViewModelBase with Store {
|
||||
TrocadorProvidersViewModelBase(this._settingsStore);
|
||||
TrocadorProvidersViewModelBase(this._settingsStore, this.trocadorExchangeProvider) {
|
||||
fetchTrocadorPartners();
|
||||
}
|
||||
|
||||
final SettingsStore _settingsStore;
|
||||
final TrocadorExchangeProvider trocadorExchangeProvider;
|
||||
|
||||
@observable
|
||||
ObservableFuture<Map<String, bool>>? fetchProvidersFuture;
|
||||
|
||||
Map<String, String> providerRatings = {};
|
||||
|
||||
@computed
|
||||
bool get isLoading => fetchProvidersFuture?.status == FutureStatus.pending;
|
||||
|
||||
@action
|
||||
Future<void> fetchTrocadorPartners() async {
|
||||
fetchProvidersFuture =
|
||||
ObservableFuture(trocadorExchangeProvider.fetchProviders().then((providers) {
|
||||
var providerNames = providers.map((e) => e.name).toList();
|
||||
|
||||
providerRatings = {
|
||||
for (var provider in providers)
|
||||
provider.name: provider.rating
|
||||
};
|
||||
|
||||
return _settingsStore
|
||||
.updateAllTrocadorProviderStates(providerNames)
|
||||
.then((_) => _settingsStore.trocadorProviderStates);
|
||||
}));
|
||||
}
|
||||
|
||||
@computed
|
||||
Map<String, bool> get providerStates => _settingsStore.trocadorProviderStates;
|
||||
|
@ -16,6 +45,6 @@ abstract class TrocadorProvidersViewModelBase with Store {
|
|||
@action
|
||||
void toggleProviderState(String providerName) {
|
||||
final currentState = providerStates[providerName] ?? false;
|
||||
_settingsStore.saveTrocadorProviderState(providerName, !currentState);
|
||||
_settingsStore.setTrocadorProviderState(providerName, !currentState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "لم يتم العثور على بطاقات",
|
||||
"no_id_needed": "لا حاجة لID!",
|
||||
"no_id_required": "لا ID مطلوب. اشحن وانفق في أي مكان",
|
||||
"no_providers_available": "لا مقدمي الخدمات المتاحة",
|
||||
"no_relay_on_domain": ".ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ .ﺡﺎﺘﻣ ﺮﻴﻏ ﻞﻴﺣﺮﺘﻟﺍ ﻥﺃ ﻭﺃ ﻡﺪﺨﺘﺴﻤﻟﺍ ﻝﺎﺠﻤﻟ ﻞﻴﺣﺮﺗ ﺪ",
|
||||
"no_relays": "ﺕﻼﺣﺮﻤﻟﺍ ﻻ",
|
||||
"no_relays_message": ".ﻪﺑ ﺹﺎﺨﻟﺍ Nostr ﻞﺠﺳ ﻰﻟﺇ ﺕﻼﺣﺮﻤﻟﺍ ﺔﻓﺎﺿﻹ ﻢﻠﺘﺴﻤﻟﺍ ﺩﺎﺷﺭﺇ ﻰﺟﺮﻳ .ﺕﻼﺣﺮﻣ ﻱﺃ ﻰﻠﻋ ﻱﻮﺘﺤﻳ ﻻ",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": ".ﻲﻃﺎﻴﺘﺣﻻﺍ ﺦﺴﻨﻟﺍ ﻒﻠﻣ ﺔﻬﺟﻭ ﺪﻳﺪﺤﺗ ءﺎﺟﺮﻟﺍ",
|
||||
"select_hw_account_below": "الرجاء تحديد حساب الاستعادة أدناه:",
|
||||
"select_sell_provider_notice": ".ﻖﻴﺒﻄﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻚﺑ ﺹﺎﺨﻟﺍ ﻲﺿﺍﺮﺘﻓﻻﺍ ﻊﻴﺒﻟﺍ ﺩﻭﺰﻣ ﻦﻴﻴﻌﺗ ﻖﻳﺮﻃ ﻦﻋ ﺔﺷﺎﺸﻟﺍ ﻩﺬﻫ ﻲﻄﺨﺗ",
|
||||
"selected_trocador_provider": "مزود تروكادور المختار",
|
||||
"select_your_country": "الرجاء تحديد بلدك",
|
||||
"sell": "بيع",
|
||||
"sell_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .Litecoin ﻭ",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Не са намерени карти",
|
||||
"no_id_needed": "Без нужда от документ за самоличност!",
|
||||
"no_id_required": "Без нужда от документ за самоличност. Използвайте навсякъде",
|
||||
"no_providers_available": "Няма налични доставчици",
|
||||
"no_relay_on_domain": "Няма реле за домейна на потребителя или релето не е налично. Моля, изберете реле, което да използвате.",
|
||||
"no_relays": "Без релета",
|
||||
"no_relays_message": "Намерихме запис Nostr NIP-05 за този потребител, но той не съдържа релета. Моля, инструктирайте получателя да добави релета към своя Nostr запис.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Моля, изберете дестинация за архивния файл.",
|
||||
"select_hw_account_below": "Моля, изберете кой акаунт да възстановите по -долу:",
|
||||
"select_sell_provider_notice": "Изберете доставчик на продажба по-горе. Можете да пропуснете този екран, като зададете своя доставчик на продажба по подразбиране в настройките на приложението.",
|
||||
"selected_trocador_provider": "Избран доставчик на трокадор",
|
||||
"select_your_country": "Моля, изберете вашата страна",
|
||||
"sell": "Продаване",
|
||||
"sell_alert_content": "В момента поддържаме само продажбата на Bitcoin, Ethereum и Litecoin. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum или Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Žádné karty nenalezeny",
|
||||
"no_id_needed": "Žádné ID není potřeba!",
|
||||
"no_id_required": "Žádní ID není potřeba. Dobijte si a utrácejte kdekoliv",
|
||||
"no_providers_available": "Žádní poskytovatelé jsou k dispozici",
|
||||
"no_relay_on_domain": "Pro doménu uživatele neexistuje přenos nebo je přenos nedostupný. Vyberte relé, které chcete použít.",
|
||||
"no_relays": "Žádná relé",
|
||||
"no_relays_message": "Pro tohoto uživatele jsme našli záznam Nostr NIP-05, který však neobsahuje žádná relé. Požádejte příjemce, aby přidal přenosy do svého záznamu Nostr.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Vyberte cíl pro záložní soubor.",
|
||||
"select_hw_account_below": "Níže vyberte, který účet chcete obnovit:",
|
||||
"select_sell_provider_notice": "Výše vyberte poskytovatele prodeje. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele prodeje v nastavení aplikace.",
|
||||
"selected_trocador_provider": "Vybraný poskytovatel Trocador",
|
||||
"select_your_country": "Vyberte prosím svou zemi",
|
||||
"sell": "Prodat",
|
||||
"sell_alert_content": "V současné době podporujeme pouze prodej bitcoinů, etherea a litecoinů. Vytvořte nebo přepněte na svou bitcoinovou, ethereum nebo litecoinovou peněženku.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Keine Karten gefunden",
|
||||
"no_id_needed": "Keine ID erforderlich!",
|
||||
"no_id_required": "Keine ID erforderlich. Upgraden und überall ausgeben",
|
||||
"no_providers_available": "Keine Anbieter verfügbar",
|
||||
"no_relay_on_domain": "Es gibt kein Relay für die Domäne des Benutzers oder das Relay ist nicht verfügbar. Bitte wählen Sie ein zu verwendendes Relais aus.",
|
||||
"no_relays": "Keine Relais",
|
||||
"no_relays_message": "Wir haben einen Nostr NIP-05-Eintrag für diesen Benutzer gefunden, der jedoch keine Relays enthält. Bitte weisen Sie den Empfänger an, Relays zu seinem Nostr-Datensatz hinzuzufügen.",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "Bitte wählen Sie das Ziel für die Sicherungsdatei aus.",
|
||||
"select_hw_account_below": "Bitte wählen Sie unten, welches Konto unten wiederhergestellt werden soll:",
|
||||
"select_sell_provider_notice": "Wählen Sie oben einen Verkaufsanbieter aus. Sie können diesen Bildschirm überspringen, indem Sie in den App-Einstellungen Ihren Standard-Verkaufsanbieter festlegen.",
|
||||
"selected_trocador_provider": "Ausgewählter Trocador -Anbieter",
|
||||
"select_your_country": "Bitte wählen Sie Ihr Land aus",
|
||||
"sell": "Verkaufen",
|
||||
"sell_alert_content": "Wir unterstützen derzeit nur den Verkauf von Bitcoin, Ethereum und Litecoin. Bitte erstellen Sie Ihr Bitcoin-, Ethereum- oder Litecoin-Wallet oder wechseln Sie zu diesem.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "No cards found",
|
||||
"no_id_needed": "No ID needed!",
|
||||
"no_id_required": "No ID required. Top up and spend anywhere",
|
||||
"no_providers_available": "No providers available",
|
||||
"no_relay_on_domain": "There isn't a relay for user's domain or the relay is unavailable. Please choose a relay to use.",
|
||||
"no_relays": "No relays",
|
||||
"no_relays_message": "We found a Nostr NIP-05 record for this user, but it does not contain any relays. Please instruct the recipient to add relays to their Nostr record.",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "Please select destination for the backup file.",
|
||||
"select_hw_account_below": "Please select which account to restore below:",
|
||||
"select_sell_provider_notice": "Select a sell provider above. You can skip this screen by setting your default sell provider in app settings.",
|
||||
"selected_trocador_provider": "selected Trocador provider",
|
||||
"select_your_country": "Please select your country",
|
||||
"sell": "Sell",
|
||||
"sell_alert_content": "We currently only support the sale of Bitcoin, Ethereum and Litecoin. Please create or switch to your Bitcoin, Ethereum or Litecoin wallet.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "No se encuentran cartas",
|
||||
"no_id_needed": "¡No se necesita identificación!",
|
||||
"no_id_required": "No se requiere identificación. Recarga y gaste en cualquier lugar",
|
||||
"no_providers_available": "No hay proveedores disponibles",
|
||||
"no_relay_on_domain": "No hay una retransmisión para el dominio del usuario o la retransmisión no está disponible. Elige un relay para usar.",
|
||||
"no_relays": "Sin relays",
|
||||
"no_relays_message": "Encontramos un registro Nostr NIP-05 para este usuario, pero no contiene ningún relay. Indica al destinatario que agregue retransmisiones a su registro Nostr.",
|
||||
|
@ -676,6 +677,7 @@
|
|||
"select_hw_account_below": "Seleccione qué cuenta restaurar a continuación:",
|
||||
"select_sell_provider_notice": "Selecciona un proveedor de venta arriba. Puede omitir esta pantalla configurando su proveedor de venta predeterminado en la configuración de la aplicación.",
|
||||
"select_your_country": "Seleccione su país",
|
||||
"selected_trocador_provider": "Proveedor de Trocador seleccionado",
|
||||
"sell": "Vender",
|
||||
"sell_alert_content": "Actualmente solo admitimos la venta de Bitcoin, Ethereum y Litecoin. Cree o cambie a su billetera Bitcoin, Ethereum o Litecoin.",
|
||||
"sell_monero_com_alert_content": "Aún no se admite la venta de Monero",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Pas de cartes trouvées",
|
||||
"no_id_needed": "Aucune pièce d'identité nécessaire !",
|
||||
"no_id_required": "Aucune pièce d'identité requise. Rechargez et dépensez n'importe où",
|
||||
"no_providers_available": "Aucun fournisseur disponible",
|
||||
"no_relay_on_domain": "Il n'existe pas de relais pour le domaine de l'utilisateur ou le relais n'est pas disponible. Veuillez choisir un relais à utiliser.",
|
||||
"no_relays": "Pas de relais",
|
||||
"no_relays_message": "Nous avons trouvé un enregistrement Nostr NIP-05 pour cet utilisateur, mais il ne contient aucun relais. Veuillez demander au destinataire d'ajouter des relais à son enregistrement Nostr.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Veuillez sélectionner la destination du fichier de sauvegarde.",
|
||||
"select_hw_account_below": "Veuillez sélectionner le compte à restaurer ci-dessous:",
|
||||
"select_sell_provider_notice": "Sélectionnez un fournisseur de vente ci-dessus. Vous pouvez ignorer cet écran en définissant votre fournisseur de vente par défaut dans les paramètres de l'application.",
|
||||
"selected_trocador_provider": "fournisseur de trocador sélectionné",
|
||||
"select_your_country": "Veuillez sélectionner votre pays",
|
||||
"sell": "Vendre",
|
||||
"sell_alert_content": "Nous ne prenons actuellement en charge que la vente de Bitcoin, Ethereum et Litecoin. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum ou Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Babu katunan da aka samo",
|
||||
"no_id_needed": "Babu ID da ake buƙata!",
|
||||
"no_id_required": "Babu ID da ake buƙata. Yi da kuma ciyar a ko'ina",
|
||||
"no_providers_available": "Babu masu samar da wadatar",
|
||||
"no_relay_on_domain": "Babu gudun ba da sanda ga yankin mai amfani ko kuma ba a samu ba. Da fatan za a zaɓi gudun ba da sanda don amfani.",
|
||||
"no_relays": "Babu relays",
|
||||
"no_relays_message": "Mun sami rikodin Nostr NIP-05 don wannan mai amfani, amma ba ya ƙunshe da kowane relays. Da fatan za a umurci mai karɓa ya ƙara relays zuwa rikodin su na Nostr.",
|
||||
|
@ -676,6 +677,7 @@
|
|||
"select_destination": "Da fatan za a zaɓi wurin da za a yi wa madadin fayil ɗin.",
|
||||
"select_hw_account_below": "Da fatan za a zabi wanda asusun zai gyara a ƙasa:",
|
||||
"select_sell_provider_notice": "Zaɓi mai bada siyarwa a sama. Kuna iya tsallake wannan allon ta saita mai bada siyar da ku a cikin saitunan app.",
|
||||
"selected_trocador_provider": "Zabi mai bada TORACAD",
|
||||
"select_your_country": "Da fatan za a zabi ƙasarku",
|
||||
"sell": "sayar",
|
||||
"sell_alert_content": "A halin yanzu muna tallafawa kawai siyar da Bitcoin, Ethereum da Litecoin. Da fatan za a ƙirƙiri ko canza zuwa walat ɗin ku na Bitcoin, Ethereum ko Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "कोई कार्ड नहीं मिला",
|
||||
"no_id_needed": "कोई आईडी नहीं चाहिए!",
|
||||
"no_id_required": "कोई आईडी आवश्यक नहीं है। टॉप अप करें और कहीं भी खर्च करें",
|
||||
"no_providers_available": "कोई प्रदाता उपलब्ध नहीं है",
|
||||
"no_relay_on_domain": "उपयोगकर्ता के डोमेन के लिए कोई रिले नहीं है या रिले अनुपलब्ध है। कृपया उपयोग करने के लिए एक रिले चुनें।",
|
||||
"no_relays": "कोई रिले नहीं",
|
||||
"no_relays_message": "हमें इस उपयोगकर्ता के लिए एक Nostr NIP-05 रिकॉर्ड मिला, लेकिन इसमें कोई रिले नहीं है। कृपया प्राप्तकर्ता को अपने नॉस्ट्र रिकॉर्ड में रिले जोड़ने का निर्देश दें।",
|
||||
|
@ -676,6 +677,7 @@
|
|||
"select_destination": "कृपया बैकअप फ़ाइल के लिए गंतव्य का चयन करें।",
|
||||
"select_hw_account_below": "कृपया नीचे पुनर्स्थापित करने के लिए कौन सा खाता चुनें:",
|
||||
"select_sell_provider_notice": "ऊपर एक विक्रय प्रदाता का चयन करें। आप ऐप सेटिंग में अपना डिफ़ॉल्ट विक्रय प्रदाता सेट करके इस स्क्रीन को छोड़ सकते हैं।",
|
||||
"selected_trocador_provider": "चयनित ट्रोकैडर प्रदाता",
|
||||
"select_your_country": "कृपया अपने देश का चयन करें",
|
||||
"sell": "बेचना",
|
||||
"sell_alert_content": "हम वर्तमान में केवल बिटकॉइन, एथेरियम और लाइटकॉइन की बिक्री का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम या लाइटकॉइन वॉलेट बनाएं या उसमें स्विच करें।",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Nisu pronađene kartice",
|
||||
"no_id_needed": "Nije potreban ID!",
|
||||
"no_id_required": "Nije potreban ID. Nadopunite i potrošite bilo gdje",
|
||||
"no_providers_available": "Nema dostupnih pružatelja usluga",
|
||||
"no_relay_on_domain": "Ne postoji relej za korisničku domenu ili je relej nedostupan. Odaberite relej za korištenje.",
|
||||
"no_relays": "Nema releja",
|
||||
"no_relays_message": "Pronašli smo zapis Nostr NIP-05 za ovog korisnika, ali on ne sadrži nikakve releje. Uputite primatelja da doda releje u svoj Nostr zapis.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Odaberite odredište za datoteku sigurnosne kopije.",
|
||||
"select_hw_account_below": "Molimo odaberite koji će se račun vratiti u nastavku:",
|
||||
"select_sell_provider_notice": "Gore odaberite pružatelja usluga prodaje. Ovaj zaslon možete preskočiti postavljanjem zadanog pružatelja usluga prodaje u postavkama aplikacije.",
|
||||
"selected_trocador_provider": "Odabrani pružatelj usluga trokadora",
|
||||
"select_your_country": "Odaberite svoju zemlju",
|
||||
"sell": "Prodavati",
|
||||
"sell_alert_content": "Trenutno podržavamo samo prodaju Bitcoina, Ethereuma i Litecoina. Izradite ili prijeđite na svoj Bitcoin, Ethereum ili Litecoin novčanik.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Tidak ada kartu yang ditemukan",
|
||||
"no_id_needed": "Tidak perlu ID!",
|
||||
"no_id_required": "Tidak perlu ID. Isi ulang dan belanja di mana saja",
|
||||
"no_providers_available": "Tidak ada penyedia yang tersedia",
|
||||
"no_relay_on_domain": "Tidak ada relai untuk domain pengguna atau relai tidak tersedia. Silakan pilih relai yang akan digunakan.",
|
||||
"no_relays": "Tidak ada relay",
|
||||
"no_relays_message": "Kami menemukan catatan Nostr NIP-05 untuk pengguna ini, tetapi tidak berisi relay apa pun. Harap instruksikan penerima untuk menambahkan relay ke catatan Nostr mereka.",
|
||||
|
@ -677,6 +678,7 @@
|
|||
"select_destination": "Silakan pilih tujuan untuk file cadangan.",
|
||||
"select_hw_account_below": "Pilih akun mana yang akan dikembalikan di bawah ini:",
|
||||
"select_sell_provider_notice": "Pilih penyedia jual di atas. Anda dapat melewati layar ini dengan mengatur penyedia penjualan default Anda di pengaturan aplikasi.",
|
||||
"selected_trocador_provider": "Penyedia Trocador Terpilih",
|
||||
"select_your_country": "Pilih negara Anda",
|
||||
"sell": "Jual",
|
||||
"sell_alert_content": "Saat ini kami hanya mendukung penjualan Bitcoin, Ethereum, dan Litecoin. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, atau Litecoin Anda.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Nessuna carta trovata",
|
||||
"no_id_needed": "Nessun ID necessario!",
|
||||
"no_id_required": "Nessun ID richiesto. Ricarica e spendi ovunque",
|
||||
"no_providers_available": "Nessun fornitore disponibile",
|
||||
"no_relay_on_domain": "Non esiste un inoltro per il dominio dell'utente oppure l'inoltro non è disponibile. Scegli un relay da utilizzare.",
|
||||
"no_relays": "Nessun relay",
|
||||
"no_relays_message": "Abbiamo trovato un record Nostr NIP-05 per questo utente, ma non contiene alcun relay. Indica al destinatario di aggiungere relay al proprio record Nostr.",
|
||||
|
@ -673,6 +674,7 @@
|
|||
"select_backup_file": "Seleziona file di backup",
|
||||
"select_buy_provider_notice": "Seleziona un provider di acquisto sopra. È possibile saltare questa schermata impostando il provider di acquisto predefinito nelle impostazioni dell'app.",
|
||||
"select_destination": "Seleziona la destinazione per il file di backup.",
|
||||
"selected_trocador_provider": "Provider di Trocador selezionato",
|
||||
"select_hw_account_below": "Seleziona quale account ripristinare:",
|
||||
"select_sell_provider_notice": "Seleziona un provider di vendita sopra. Puoi saltare questa schermata impostando il tuo provider di vendita predefinito nelle impostazioni dell'app.",
|
||||
"select_your_country": "Seleziona il tuo paese",
|
||||
|
|
|
@ -460,6 +460,7 @@
|
|||
"no_cards_found": "カードは見つかりません",
|
||||
"no_id_needed": "IDは必要ありません!",
|
||||
"no_id_required": "IDは必要ありません。どこにでも補充して使用できます",
|
||||
"no_providers_available": "プロバイダーは利用できません",
|
||||
"no_relay_on_domain": "ユーザーのドメインのリレーが存在しないか、リレーが使用できません。使用するリレーを選択してください。",
|
||||
"no_relays": "リレーなし",
|
||||
"no_relays_message": "このユーザーの Nostr NIP-05 レコードが見つかりましたが、リレーは含まれていません。受信者に Nostr レコードにリレーを追加するよう指示してください。",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "バックアップファイルの保存先を選択してください。",
|
||||
"select_hw_account_below": "以下に復元するアカウントを選択してください。",
|
||||
"select_sell_provider_notice": "上記の販売プロバイダーを選択してください。アプリ設定でデフォルトの販売プロバイダーを設定することで、この画面をスキップできます。",
|
||||
"selected_trocador_provider": "選択したTrocadorプロバイダー",
|
||||
"select_your_country": "あなたの国を選択してください",
|
||||
"sell": "売る",
|
||||
"sell_alert_content": "現在、ビットコイン、イーサリアム、ライトコインの販売のみをサポートしています。ビットコイン、イーサリアム、またはライトコインのウォレットを作成するか、これらのウォレットに切り替えてください。",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "카드를 찾지 못했습니다",
|
||||
"no_id_needed": "ID가 필요하지 않습니다!",
|
||||
"no_id_required": "신분증이 필요하지 않습니다. 충전하고 어디에서나 사용하세요",
|
||||
"no_providers_available": "제공되는 제공자가 없습니다",
|
||||
"no_relay_on_domain": "사용자 도메인에 릴레이가 없거나 릴레이를 사용할 수 없습니다. 사용할 릴레이를 선택해주세요.",
|
||||
"no_relays": "릴레이 없음",
|
||||
"no_relays_message": "이 사용자에 대한 Nostr NIP-05 레코드를 찾았지만 릴레이가 포함되어 있지 않습니다. 수신자에게 Nostr 기록에 릴레이를 추가하도록 지시하십시오.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "백업 파일의 대상을 선택하십시오.",
|
||||
"select_hw_account_below": "아래를 복원 할 계정을 선택하십시오.",
|
||||
"select_sell_provider_notice": "위에서 판매 공급자를 선택하세요. 앱 설정에서 기본 판매 공급자를 설정하면 이 화면을 건너뛸 수 있습니다.",
|
||||
"selected_trocador_provider": "선정 된 트로 코더 제공 업체",
|
||||
"select_your_country": "국가를 선택하십시오",
|
||||
"sell": "팔다",
|
||||
"sell_alert_content": "현재 Bitcoin, Ethereum 및 Litecoin의 판매만 지원합니다. Bitcoin, Ethereum 또는 Litecoin 지갑을 생성하거나 전환하십시오.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "ကဒ်များမရှိပါ",
|
||||
"no_id_needed": "ID မလိုအပ်ပါ။",
|
||||
"no_id_required": "ID မလိုအပ်ပါ။ ငွေဖြည့်ပြီး ဘယ်နေရာမဆို သုံးစွဲပါ။",
|
||||
"no_providers_available": "မရရှိနိုင်ပါ",
|
||||
"no_relay_on_domain": "အသုံးပြုသူ၏ဒိုမိန်းအတွက် ထပ်ဆင့်လွှင့်ခြင်း မရှိပါ သို့မဟုတ် ထပ်ဆင့်လွှင့်ခြင်း မရနိုင်ပါ။ အသုံးပြုရန် relay ကိုရွေးချယ်ပါ။",
|
||||
"no_relays": "Relay မရှိပါ။",
|
||||
"no_relays_message": "ဤအသုံးပြုသူအတွက် Nostr NIP-05 မှတ်တမ်းကို ကျွန်ုပ်တို့တွေ့ရှိသော်လည်း ၎င်းတွင် မည်သည့် relays မှ မပါဝင်ပါ။ ကျေးဇူးပြု၍ လက်ခံသူကို ၎င်းတို့၏ Nostr မှတ်တမ်းတွင် ထပ်လောင်းထည့်ရန် ညွှန်ကြားပါ။",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "အရန်ဖိုင်အတွက် ဦးတည်ရာကို ရွေးပါ။",
|
||||
"select_hw_account_below": "အောက်ဖော်ပြပါမည်သည့်အကောင့်ကိုရွေးပါ။",
|
||||
"select_sell_provider_notice": "အထက်ဖော်ပြပါ အရောင်းဝန်ဆောင်မှုပေးသူကို ရွေးပါ။ အက်ပ်ဆက်တင်များတွင် သင်၏မူလရောင်းချပေးသူကို သတ်မှတ်ခြင်းဖြင့် ဤစခရင်ကို ကျော်နိုင်သည်။",
|
||||
"selected_trocador_provider": "ရွေးချယ်ထား Tracador ပံ့ပိုးပေး",
|
||||
"select_your_country": "ကျေးဇူးပြု. သင့်နိုင်ငံကိုရွေးချယ်ပါ",
|
||||
"sell": "ရောင်း",
|
||||
"sell_alert_content": "ကျွန်ုပ်တို့သည် လက်ရှိတွင် Bitcoin၊ Ethereum နှင့် Litecoin ရောင်းချခြင်းကိုသာ ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum သို့မဟုတ် Litecoin ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Geen kaarten gevonden",
|
||||
"no_id_needed": "Geen ID nodig!",
|
||||
"no_id_required": "Geen ID vereist. Opwaarderen en overal uitgeven",
|
||||
"no_providers_available": "Geen providers beschikbaar",
|
||||
"no_relay_on_domain": "Er is geen relay voor het domein van de gebruiker of de relay is niet beschikbaar. Kies een relais dat u wilt gebruiken.",
|
||||
"no_relays": "Geen relais",
|
||||
"no_relays_message": "We hebben een Nostr NIP-05-record voor deze gebruiker gevonden, maar deze bevat geen relays. Instrueer de ontvanger om relays toe te voegen aan zijn Nostr-record.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Selecteer de bestemming voor het back-upbestand.",
|
||||
"select_hw_account_below": "Selecteer welk account u hieronder moet herstellen:",
|
||||
"select_sell_provider_notice": "Selecteer hierboven een verkoopaanbieder. U kunt dit scherm overslaan door uw standaardverkoopprovider in te stellen in de app-instellingen.",
|
||||
"selected_trocador_provider": "Geselecteerde Trocador -provider",
|
||||
"select_your_country": "Selecteer uw land",
|
||||
"sell": "Verkopen",
|
||||
"sell_alert_content": "We ondersteunen momenteel alleen de verkoop van Bitcoin, Ethereum en Litecoin. Maak of schakel over naar uw Bitcoin-, Ethereum- of Litecoin-portemonnee.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Nie znaleziono żadnych kart",
|
||||
"no_id_needed": "Nie potrzeba Dowodu!",
|
||||
"no_id_required": "Nie wymagamy Dowodu. Doładuj i wydawaj gdziekolwiek",
|
||||
"no_providers_available": "Brak dostępnych dostawców",
|
||||
"no_relay_on_domain": "Brak przekaźnika dla domeny użytkownika lub przekaźnik jest niedostępny. Wybierz przekaźnik, którego chcesz użyć.",
|
||||
"no_relays": "Żadnych przekaźników",
|
||||
"no_relays_message": "Znaleźliśmy rekord Nostr NIP-05 dla tego użytkownika, ale nie zawiera on żadnych przekaźników. Poinstruuj odbiorcę, aby dodał przekaźniki do swojego rekordu Nostr.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Wybierz miejsce docelowe dla pliku kopii zapasowej.",
|
||||
"select_hw_account_below": "Wybierz, które konto przywrócić poniżej:",
|
||||
"select_sell_provider_notice": "Wybierz dostawcę sprzedaży powyżej. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę sprzedaży w ustawieniach aplikacji.",
|
||||
"selected_trocador_provider": "Wybrany dostawca Trocador",
|
||||
"select_your_country": "Wybierz swój kraj",
|
||||
"sell": "Sprzedać",
|
||||
"sell_alert_content": "Obecnie obsługujemy tylko sprzedaż Bitcoin, Ethereum i Litecoin. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum lub Litecoin.",
|
||||
|
|
|
@ -460,6 +460,7 @@
|
|||
"no_cards_found": "Nenhum cartão encontrado",
|
||||
"no_id_needed": "Nenhum ID necessário!",
|
||||
"no_id_required": "Não é necessário ID. Recarregue e gaste em qualquer lugar",
|
||||
"no_providers_available": "Nenhum fornecedor disponível",
|
||||
"no_relay_on_domain": "Não há uma retransmissão para o domínio do usuário ou a retransmissão está indisponível. Escolha um relé para usar.",
|
||||
"no_relays": "Sem relés",
|
||||
"no_relays_message": "Encontramos um registro Nostr NIP-05 para este usuário, mas ele não contém nenhum relé. Instrua o destinatário a adicionar retransmissões ao seu registro Nostr.",
|
||||
|
@ -676,6 +677,7 @@
|
|||
"select_destination": "Selecione o destino para o arquivo de backup.",
|
||||
"select_hw_account_below": "Selecione qual conta para restaurar abaixo:",
|
||||
"select_sell_provider_notice": "Selecione um fornecedor de venda acima. Você pode pular esta tela definindo seu provedor de venda padrão nas configurações do aplicativo.",
|
||||
"selected_trocador_provider": "Provedor de Trocador selecionado",
|
||||
"select_your_country": "Selecione seu país",
|
||||
"sell": "Vender",
|
||||
"sell_alert_content": "Atualmente, oferecemos suporte apenas à venda de Bitcoin, Ethereum e Litecoin. Crie ou troque para sua carteira Bitcoin, Ethereum ou Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Карт не найдено",
|
||||
"no_id_needed": "Идентификатор не нужен!",
|
||||
"no_id_required": "Идентификатор не требуется. Пополняйте и тратьте где угодно",
|
||||
"no_providers_available": "Нет доступных поставщиков",
|
||||
"no_relay_on_domain": "Для домена пользователя реле не существует или реле недоступно. Пожалуйста, выберите реле для использования.",
|
||||
"no_relays": "Нет реле",
|
||||
"no_relays_message": "Мы нашли запись Nostr NIP-05 для этого пользователя, но она не содержит никаких реле. Попросите получателя добавить реле в свою запись Nostr.",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "Пожалуйста, выберите место для файла резервной копии.",
|
||||
"select_hw_account_below": "Пожалуйста, выберите, какую учетную запись восстановить ниже:",
|
||||
"select_sell_provider_notice": "Выберите поставщика услуг продажи выше. Вы можете пропустить этот экран, установив поставщика услуг продаж по умолчанию в настройках приложения.",
|
||||
"selected_trocador_provider": "Выбранный провайдер Трокадора",
|
||||
"select_your_country": "Пожалуйста, выберите свою страну",
|
||||
"sell": "Продавать",
|
||||
"sell_alert_content": "В настоящее время мы поддерживаем только продажу биткойнов, эфириума и лайткойна. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum или Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "ไม่พบการ์ด",
|
||||
"no_id_needed": "ไม่จำเป็นต้องใช้บัตรประชาชน!",
|
||||
"no_id_required": "ไม่จำเป็นต้องใช้บัตรประจำตัว ฝากเงินและใช้งานได้ทุกที่",
|
||||
"no_providers_available": "ไม่มีผู้ให้บริการ",
|
||||
"no_relay_on_domain": "ไม่มีการส่งต่อสำหรับโดเมนของผู้ใช้ หรือการส่งต่อไม่พร้อมใช้งาน กรุณาเลือกรีเลย์ที่จะใช้",
|
||||
"no_relays": "ไม่มีรีเลย์",
|
||||
"no_relays_message": "เราพบบันทึก Nostr NIP-05 สำหรับผู้ใช้รายนี้ แต่ไม่มีรีเลย์ใดๆ โปรดแนะนำให้ผู้รับเพิ่มรีเลย์ลงในบันทึก Nostr ของตน",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "โปรดเลือกปลายทางสำหรับไฟล์สำรอง",
|
||||
"select_hw_account_below": "กรุณาเลือกบัญชีที่จะกู้คืนด้านล่าง:",
|
||||
"select_sell_provider_notice": "เลือกผู้ให้บริการการขายด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยการตั้งค่าผู้ให้บริการการขายเริ่มต้นในการตั้งค่าแอป",
|
||||
"selected_trocador_provider": "ผู้ให้บริการ Trocador ที่เลือก",
|
||||
"select_your_country": "กรุณาเลือกประเทศของคุณ",
|
||||
"sell": "ขาย",
|
||||
"sell_alert_content": "ขณะนี้เรารองรับการขาย Bitcoin, Ethereum และ Litecoin เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum หรือ Litecoin ของคุณ",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Walang nahanap na mga card",
|
||||
"no_id_needed": "Hindi kailangan ng ID!",
|
||||
"no_id_required": "Hindi kailangan ng ID. I-top up at gumastos kahit saan",
|
||||
"no_providers_available": "Walang magagamit na mga nagbibigay",
|
||||
"no_relay_on_domain": "Walang relay para sa domain ng user o hindi available ang relay. Mangyaring pumili ng relay na gagamitin.",
|
||||
"no_relays": "Walang mga relay",
|
||||
"no_relays_message": "Nakakita kami ng Nostr NIP-05 record para sa user na ito, ngunit hindi ito naglalaman ng anumang mga relay. Mangyaring atasan ang tatanggap na magdagdag ng mga relay sa kanilang Nostr record.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Mangyaring piliin ang patutunguhan para sa backup na file.",
|
||||
"select_hw_account_below": "Mangyaring piliin kung aling account ang ibabalik sa ibaba:",
|
||||
"select_sell_provider_notice": "Pumili ng provider ng nagbebenta sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na sell provider sa mga setting ng app.",
|
||||
"selected_trocador_provider": "Napiling Trocador Provider",
|
||||
"select_your_country": "Mangyaring piliin ang iyong bansa",
|
||||
"sell": "Ibenta",
|
||||
"sell_alert_content": "Kasalukuyan lamang naming sinusuportahan ang pagbebenta ng Bitcoin, Ethereum at Litecoin. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum o Litecoin wallet.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Kart bulunamadı",
|
||||
"no_id_needed": "Kimlik gerekmez!",
|
||||
"no_id_required": "Kimlik gerekmez. Para yükleyin ve istediğiniz yerde harcayın",
|
||||
"no_providers_available": "Sağlayıcı yok",
|
||||
"no_relay_on_domain": "Kullanıcının alanı için bir geçiş yok veya geçiş kullanılamıyor. Lütfen kullanmak için bir röle seçin.",
|
||||
"no_relays": "Röle yok",
|
||||
"no_relays_message": "Bu kullanıcı için bir Nostr NIP-05 kaydı bulduk ancak bu kayıt herhangi bir aktarma içermiyor. Lütfen alıcıya Nostr kayıtlarına aktarma eklemesi talimatını verin.",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "Lütfen yedekleme dosyası için hedef seçin.",
|
||||
"select_hw_account_below": "Lütfen aşağıda hangi hesabı geri yükleyeceğinizi seçin:",
|
||||
"select_sell_provider_notice": "Yukarıdan bir satış sağlayıcısı seçin. Uygulama ayarlarında varsayılan satış sağlayıcınızı ayarlayarak bu ekranı atlayabilirsiniz.",
|
||||
"selected_trocador_provider": "Seçilmiş Trocador Sağlayıcı",
|
||||
"select_your_country": "Lütfen ülkenizi seçin",
|
||||
"sell": "Satış",
|
||||
"sell_alert_content": "Şu anda yalnızca Bitcoin, Ethereum ve Litecoin satışını destekliyoruz. Lütfen Bitcoin, Ethereum veya Litecoin cüzdanınızı oluşturun veya cüzdanınıza geçin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "Карт не знайдено",
|
||||
"no_id_needed": "Ідентифікатор не потрібен!",
|
||||
"no_id_required": "Ідентифікатор не потрібен. Поповнюйте та витрачайте будь-де",
|
||||
"no_providers_available": "Немає постачальників",
|
||||
"no_relay_on_domain": "Немає ретранслятора для домену користувача або ретранслятор недоступний. Будь ласка, виберіть реле для використання.",
|
||||
"no_relays": "Без реле",
|
||||
"no_relays_message": "Ми знайшли запис Nostr NIP-05 для цього користувача, але він не містить жодних реле. Будь ласка, попросіть одержувача додати реле до свого запису Nostr.",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "Виберіть місце призначення для файлу резервної копії.",
|
||||
"select_hw_account_below": "Виберіть, який рахунок відновити нижче:",
|
||||
"select_sell_provider_notice": "Виберіть вище постачальника послуг продажу. Ви можете пропустити цей екран, встановивши постачальника послуг продажу за умовчанням у налаштуваннях програми.",
|
||||
"selected_trocador_provider": "Вибраний постачальник Trocador",
|
||||
"select_your_country": "Будь ласка, виберіть свою країну",
|
||||
"sell": "Продати",
|
||||
"sell_alert_content": "Наразі ми підтримуємо лише продаж Bitcoin, Ethereum і Litecoin. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum або Litecoin.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "کوئی کارڈ نہیں ملا",
|
||||
"no_id_needed": "شناخت کی ضرورت نہیں!",
|
||||
"no_id_required": "کوئی ID درکار نہیں۔ ٹاپ اپ اور کہیں بھی خرچ کریں۔",
|
||||
"no_providers_available": "کوئی فراہم کنندہ دستیاب نہیں ہے",
|
||||
"no_relay_on_domain": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﮯﻠﯾﺭ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮯﮨ ﮟﯿﮩﻧ ﺏﺎﯿﺘﺳﺩ ﮯﻠﯾﺭ ﺎﯾ ﮯﮨ ﮟ",
|
||||
"no_relays": "۔ﮟﯿﮩﻧ ﮯﻠﯾﺭ ﯽﺋﻮﮐ",
|
||||
"no_relays_message": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮯﻠﯾﺭ ﮟﯿﻣ ﮈﺭﺎﮑﯾﺭ ﺮﭩﺳﻮﻧ ﮯﻨﭘﺍ ﮦﻭ ﮧﮐ ﮟﯾﺩ ﺖﯾﺍﺪﮨ ﻮﮐ ﮦﺪﻨﻨﮐ ﻝﻮﺻﻭ ﻡﺮﮐ ﮦﺍﺮﺑ ۔",
|
||||
|
@ -676,6 +677,7 @@
|
|||
"select_destination": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﻝﺰﻨﻣ ﮯﯿﻟ ﮯﮐ ﻞﺋﺎﻓ ﭖﺍ ﮏﯿﺑ ﻡﺮﮐ ﮦﺍﺮﺑ",
|
||||
"select_hw_account_below": "براہ کرم ذیل میں کون سا اکاؤنٹ بحال کرنا ہے منتخب کریں:",
|
||||
"select_sell_provider_notice": "۔ﮟﯿﮨ ﮯﺘﮑﺳ ﮌﻮﮭﭼ ﻮﮐ ﻦﯾﺮﮑﺳﺍ ﺱﺍ ﺮﮐ ﮮﺩ ﺐﯿﺗﺮﺗ ﻮﮐ ﮦﺪﻨﻨﮐ ﻢﮨﺍﺮﻓ ﻞﯿﺳ ﭧﻟﺎﻔﯾﮈ ﮯﻨﭘﺍ ﮟﯿﻣ ﺕﺎﺒ",
|
||||
"selected_trocador_provider": "منتخب کردہ ٹروکاڈور فراہم کنندہ",
|
||||
"select_your_country": "براہ کرم اپنے ملک کو منتخب کریں",
|
||||
"sell": "بیچنا",
|
||||
"sell_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Litecoin ﺎﯾ Bitcoin، Ethereum ﺎﻨﭘﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔",
|
||||
|
|
|
@ -460,6 +460,7 @@
|
|||
"no_cards_found": "Ko si awọn kaadi ti a rii",
|
||||
"no_id_needed": "Ẹ kò nílò àmì ìdánimọ̀!",
|
||||
"no_id_required": "Ẹ kò nílò àmì ìdánimọ̀. Ẹ lè fikún owó àti san níbikíbi",
|
||||
"no_providers_available": "Ko si awọn olupese ti o wa",
|
||||
"no_relay_on_domain": "Ko si iṣipopada fun agbegbe olumulo tabi yiyi ko si. Jọwọ yan yii lati lo.",
|
||||
"no_relays": "Ko si relays",
|
||||
"no_relays_message": "A ri igbasilẹ Nostr NIP-05 fun olumulo yii, ṣugbọn ko ni eyikeyi awọn iṣipopada ninu. Jọwọ sọ fun olugba lati ṣafikun awọn isunmọ si igbasilẹ Nostr wọn.",
|
||||
|
@ -675,6 +676,7 @@
|
|||
"select_destination": "Jọwọ yan ibi ti o nlo fun faili afẹyinti.",
|
||||
"select_hw_account_below": "Jọwọ yan iru iroyin lati mu pada ni isalẹ:",
|
||||
"select_sell_provider_notice": "Yan olupese ti o ta loke. O le foju iboju yii nipa tito olupese iṣẹ tita aiyipada rẹ ni awọn eto app.",
|
||||
"selected_trocador_provider": "olupese trocador ti a yan",
|
||||
"select_your_country": "Jọwọ yan orilẹ-ede rẹ",
|
||||
"sell": "Tà",
|
||||
"sell_alert_content": "Lọwọlọwọ a ṣe atilẹyin tita Bitcoin, Ethereum ati Litecoin nikan. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum tabi apamọwọ Litecoin rẹ.",
|
||||
|
|
|
@ -459,6 +459,7 @@
|
|||
"no_cards_found": "找不到卡",
|
||||
"no_id_needed": "不需要 ID!",
|
||||
"no_id_required": "不需要身份证。充值并在任何地方消费",
|
||||
"no_providers_available": "没有提供商可用",
|
||||
"no_relay_on_domain": "用户域没有中继或中继不可用。请选择要使用的继电器。",
|
||||
"no_relays": "无继电器",
|
||||
"no_relays_message": "我们找到了该用户的 Nostr NIP-05 记录,但它不包含任何中继。请指示收件人将中继添加到他们的 Nostr 记录中。",
|
||||
|
@ -674,6 +675,7 @@
|
|||
"select_destination": "请选择备份文件的目的地。",
|
||||
"select_hw_account_below": "请在下面选择要还原的帐户:",
|
||||
"select_sell_provider_notice": "选择上面的销售提供商。您可以通过在应用程序设置中设置默认销售提供商来跳过此屏幕。",
|
||||
"selected_trocador_provider": "选定的trocador提供商",
|
||||
"select_your_country": "请选择你的国家",
|
||||
"sell": "卖",
|
||||
"sell_alert_content": "我们目前仅支持比特币、以太坊和莱特币的销售。请创建或切换到您的比特币、以太坊或莱特币钱包。",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue