CAKE-356 | added isYatDevMode parameter to the yat_alert.dart; deleted yat_webview_page.dart and yat_view_model.dart; applied localization of Yat to the app

OleksandrSobol committed Sep 16, 2021 at 12:43 UTC cdddc12c81d59f5af794ecb2e1901aecb207ec87
24 files changed +146 -262
lib/di.dart
-12
@@ -45,7 +45,6 @@ import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.da
45 import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart';
46 import 'package:cake_wallet/src/screens/exchange/exchange_page.dart';
47 import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart';
48 -import 'package:cake_wallet/src/screens/yat/yat_webview_page.dart';
48 import 'package:cake_wallet/store/dashboard/orders_store.dart';
49 import 'package:cake_wallet/store/node_list_store.dart';
50 import 'package:cake_wallet/store/secret_store.dart';
@@ -99,7 +98,6 @@ import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart';
98 import 'package:cake_wallet/view_model/wallet_restore_view_model.dart';
99 import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
100 import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
102 -import 'package:cake_wallet/view_model/yat_view_model.dart';
101 import 'package:flutter/widgets.dart';
102 import 'package:get_it/get_it.dart';
103 import 'package:hive/hive.dart';
@@ -636,15 +634,5 @@ Future setup(
634 param2: unspentCoinsListViewModel));
635 });
636
639 - getIt.registerFactory(() => YatViewModel(
640 - yatStore: getIt.get<YatStore>()
641 - ));
642 -
643 - getIt.registerFactoryParam<YatWebViewPage, YatMode, void>((YatMode mode, _) =>
644 - YatWebViewPage(
645 - mode: mode,
646 - yatViewModel: getIt.get<YatViewModel>(),
647 - ));
648 -
637 _isSetupFinished = true;
638 }
lib/main.dart
-54
@@ -1,5 +1,4 @@
1 import 'dart:async';
2 -
2 import 'package:cake_wallet/bitcoin/unspent_coins_info.dart';
3 import 'package:cake_wallet/entities/language_service.dart';
4 import 'package:cake_wallet/buy/order.dart';
@@ -205,10 +204,8 @@ class AppState extends State<App> with SingleTickerProviderStateMixin {
204 try {
205 final uri = await getInitialUri();
206 if (uri == null) {
208 - print('Error: no initial uri');
207 return;
208 }
211 - print('got initial uri: $uri');
209 if (!mounted) return;
210 _fetchEmojiFromUri(uri, yatStore);
211 } catch (e) {
@@ -221,7 +218,6 @@ class AppState extends State<App> with SingleTickerProviderStateMixin {
218 if (!kIsWeb) {
219 stream = getUriLinksStream().listen((Uri uri) {
220 if (!mounted) return;
224 - print('got uri: $uri');
221 _fetchEmojiFromUri(uri, yatStore);
222 }, onError: (Object error) {
223 if (!mounted) return;
@@ -285,53 +281,3 @@ class AppState extends State<App> with SingleTickerProviderStateMixin {
281 });
282 }
283 }
288 -
289 -/*class App extends StatelessWidget {
290 - App() {
291 - SystemChrome.setPreferredOrientations(
292 - [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
293 - }
294 -
295 - @override
296 - Widget build(BuildContext context) {
297 - return Observer(builder: (BuildContext context) {
298 - final settingsStore = getIt.get<AppStore>().settingsStore;
299 - final statusBarColor = Colors.transparent;
300 - final authenticationStore = getIt.get<AuthenticationStore>();
301 - final initialRoute =
302 - authenticationStore.state == AuthenticationState.denied
303 - ? Routes.disclaimer
304 - : Routes.login;
305 - final currentTheme = settingsStore.currentTheme;
306 - final statusBarBrightness = currentTheme.type == ThemeType.dark
307 - ? Brightness.light
308 - : Brightness.dark;
309 - final statusBarIconBrightness = currentTheme.type == ThemeType.dark
310 - ? Brightness.light
311 - : Brightness.dark;
312 - SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
313 - statusBarColor: statusBarColor,
314 - statusBarBrightness: statusBarBrightness,
315 - statusBarIconBrightness: statusBarIconBrightness));
316 -
317 - return Root(
318 - authenticationStore: authenticationStore,
319 - navigatorKey: navigatorKey,
320 - child: MaterialApp(
321 - navigatorKey: navigatorKey,
322 - debugShowCheckedModeBanner: false,
323 - theme: settingsStore.theme,
324 - localizationsDelegates: [
325 - S.delegate,
326 - GlobalCupertinoLocalizations.delegate,
327 - GlobalMaterialLocalizations.delegate,
328 - GlobalWidgetsLocalizations.delegate,
329 - ],
330 - supportedLocales: S.delegate.supportedLocales,
331 - locale: Locale(settingsStore.languageCode),
332 - onGenerateRoute: (settings) => Router.createRoute(settings),
333 - initialRoute: initialRoute,
334 - ));
335 - });
336 - }
337 -}*/
lib/router.dart
-6
@@ -13,7 +13,6 @@ import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
13 import 'package:cake_wallet/src/screens/support/support_page.dart';
14 import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
15 import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
16 -import 'package:cake_wallet/src/screens/yat/yat_webview_page.dart';
16 import 'package:cake_wallet/store/settings_store.dart';
17 import 'package:cake_wallet/view_model/buy/buy_view_model.dart';
18 import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart';
@@ -380,11 +379,6 @@ Route<dynamic> createRoute(RouteSettings settings) {
379 getIt.get<UnspentCoinsDetailsPage>(
380 param1: args));
381
383 - case Routes.yat:
384 - return MaterialPageRoute<void>(
385 - builder: (_) =>
386 - getIt.get<YatWebViewPage>(param1: settings.arguments as YatMode));
387 -
382 default:
383 return MaterialPageRoute<void>(
384 builder: (_) => Scaffold(
lib/routes.dart
-1
@@ -57,5 +57,4 @@ class Routes {
57 static const buyWebView = '/buy_web_view';
58 static const unspentCoinsList = '/unspent_coins_list';
59 static const unspentCoinsDetails = '/unspent_coins_details';
60 - static const yat = '/yat';
60 }
\ No newline at end of file
lib/src/screens/receive/widgets/qr_widget.dart
+1 -1
@@ -150,7 +150,7 @@ class QRWidget extends StatelessWidget {
150 crossAxisAlignment: CrossAxisAlignment.center,
151 children: [
152 Text(
153 - 'Yat Address',
153 + S.of(context).yat_address,
154 textAlign: TextAlign.center,
155 style: TextStyle(
156 fontSize: 13,
lib/src/screens/send/widgets/parse_address_from_domain_alert.dart
+2 -2
@@ -18,8 +18,8 @@ void showAddressAlert(BuildContext context, ParsedAddress parsedAddress) async {
18 content = S.of(context).openalias_alert_content(parsedAddress.name);
19 break;
20 case ParseFrom.yatRecord:
21 - title = 'Address detected';
22 - content = 'This address is from ${parsedAddress.name} on Yat';
21 + title = S.of(context).address_detected;
22 + content = S.of(context).address_from_yat(parsedAddress.name);
23 break;
24 case ParseFrom.notParsed:
25 return;
lib/src/screens/yat/yat_alert.dart
+15 -14
@@ -1,17 +1,22 @@
1 -import 'package:cake_wallet/routes.dart';
1 import 'package:cake_wallet/src/screens/yat/widgets/yat_bar.dart';
3 -import 'package:cake_wallet/src/screens/yat/yat_webview_page.dart';
2 import 'package:cake_wallet/src/widgets/primary_button.dart';
3 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
4 import 'package:flutter/cupertino.dart';
5 import 'package:flutter/material.dart';
6 import 'package:cake_wallet/palette.dart';
7 import 'package:url_launcher/url_launcher.dart';
8 +import 'package:cake_wallet/generated/i18n.dart';
9
10 class YatAlert extends StatelessWidget {
11 + YatAlert({this.isYatDevMode = false})
12 + : baseUrl = isYatDevMode ? _baseDevUrl : _baseReleaseUrl;
13 +
14 + final bool isYatDevMode;
15 + final String baseUrl;
16 static const aspectRatioImage = 1.133;
13 - static const _baseUrl = 'https://y.at';
14 - static const _signInSuffix = '/partner/CW/link';
17 + static const _baseDevUrl = 'https://yat.fyi';
18 + static const _baseReleaseUrl = 'https://y.at';
19 + static const _signInSuffix = '/partner/CW/link-email';
20 static const _createSuffix = '/create';
21 final image = Image.asset('assets/images/yat_crypto.png');
22
@@ -42,7 +47,7 @@ class YatAlert extends StatelessWidget {
47 child: Column(
48 children: [
49 Text(
45 - 'Send and receive crypto more easily with Yat',
50 + S.of(context).yat_alert_title,
51 textAlign: TextAlign.center,
52 style: TextStyle(
53 fontSize: 24,
@@ -55,7 +60,7 @@ class YatAlert extends StatelessWidget {
60 Padding(
61 padding: EdgeInsets.only(top: 20),
62 child: Text(
58 - 'Cake Wallet users can now send and receive all their favorite currencies with a one-of-a-kind emoji-based username.',
63 + S.of(context).yat_alert_content,
64 textAlign: TextAlign.center,
65 style: TextStyle(
66 fontSize: 16,
@@ -76,7 +81,7 @@ class YatAlert extends StatelessWidget {
81 crossAxisAlignment: CrossAxisAlignment.center,
82 children: [
83 PrimaryIconButton(
79 - text: 'Get your Yat',
84 + text: S.of(context).get_your_yat,
85 textColor: Colors.white,
86 color: Palette.protectiveBlue,
87 borderColor: Palette.protectiveBlue,
@@ -86,15 +91,13 @@ class YatAlert extends StatelessWidget {
91 .arrow_up_right_square,
92 mainAxisAlignment: MainAxisAlignment.end,
93 onPressed: () {
89 - //Navigator.of(context)
90 - // .popAndPushNamed(Routes.yat, arguments: YatMode.create);
91 - final url = _baseUrl + _createSuffix;
94 + final url = baseUrl + _createSuffix;
95 launch(url);
96 }),
97 Padding(
98 padding: EdgeInsets.only(top: 24),
99 child: PrimaryIconButton(
97 - text: 'Connect an existing Yat',
100 + text: S.of(context).connect_an_existing_yat,
101 textColor: Colors.black,
102 color: Palette.blueAlice,
103 borderColor: Palette.blueAlice,
@@ -104,9 +107,7 @@ class YatAlert extends StatelessWidget {
107 .arrow_up_right_square,
108 mainAxisAlignment: MainAxisAlignment.end,
109 onPressed: () {
107 - //Navigator.of(context)
108 - // .popAndPushNamed(Routes.yat, arguments: YatMode.connect);
109 - final url = _baseUrl + _signInSuffix;
110 + final url = baseUrl + _signInSuffix;
111 launch(url);
112 })
113 )
lib/src/screens/yat/yat_webview_page.dart deleted
-117
@@ -1,117 +0,0 @@
1 -import 'dart:async';
2 -import 'dart:io';
3 -import 'package:cake_wallet/palette.dart';
4 -import 'package:cake_wallet/src/screens/base_page.dart';
5 -import 'package:cake_wallet/view_model/yat_view_model.dart';
6 -import 'package:flutter/material.dart';
7 -import 'package:webview_flutter/webview_flutter.dart';
8 -
9 -enum YatMode {create, connect}
10 -
11 -class YatWebViewPage extends BasePage {
12 - YatWebViewPage({this.yatViewModel, this.mode});
13 -
14 - final YatMode mode;
15 - final YatViewModel yatViewModel;
16 -
17 - @override
18 - String get title => 'Yat';
19 -
20 - @override
21 - Color get backgroundDarkColor => Colors.white;
22 -
23 - @override
24 - Color get titleColor => Palette.darkBlueCraiola;
25 -
26 - @override
27 - Widget body(BuildContext context) => YatWebViewPageBody(yatViewModel, mode);
28 -}
29 -
30 -class YatWebViewPageBody extends StatefulWidget{
31 - YatWebViewPageBody(this.yatViewModel, this.mode);
32 -
33 - final YatMode mode;
34 - final YatViewModel yatViewModel;
35 -
36 - @override
37 - YatWebViewPageBodyState createState() =>
38 - YatWebViewPageBodyState(yatViewModel, mode);
39 -}
40 -
41 -class YatWebViewPageBodyState extends State<YatWebViewPageBody> {
42 - YatWebViewPageBodyState(this.yatViewModel, this.mode) {
43 - switch (mode) {
44 - case YatMode.create:
45 - url = _baseUrl + _createSuffix;
46 - break;
47 - case YatMode.connect:
48 - url = _baseUrl + _signInSuffix;
49 - break;
50 - default:
51 - url = _baseUrl + _createSuffix;
52 - }
53 - }
54 -
55 - static const _baseUrl = 'https://yat.fyi';
56 - static const _signInSuffix = '/sign-in';
57 - static const _createSuffix = '/create';
58 -
59 - final YatMode mode;
60 - final YatViewModel yatViewModel;
61 -
62 - String url;
63 - WebViewController _webViewController;
64 - GlobalKey _webViewkey;
65 - Timer _timer;
66 -
67 - @override
68 - void initState() {
69 - super.initState();
70 - _webViewkey = GlobalKey();
71 - if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
72 - WidgetsBinding.instance.addPostFrameCallback(_afterLayout);
73 - }
74 -
75 - @override
76 - void dispose() {
77 - super.dispose();
78 - _timer?.cancel();
79 - }
80 -
81 - @override
82 - Widget build(BuildContext context) {
83 - return WebView(
84 - key: _webViewkey,
85 - initialUrl: url,
86 - javascriptMode: JavascriptMode.unrestricted,
87 - onWebViewCreated: (WebViewController controller) =>
88 - setState(() => _webViewController = controller));
89 - }
90 -
91 - void _afterLayout(dynamic _) {
92 - _fetchYatInfo();
93 - }
94 -
95 - void _fetchYatInfo() {
96 - final keyword = 'dashboard';
97 - _timer?.cancel();
98 - _timer = Timer.periodic(Duration(seconds: 1), (timer) async {
99 -
100 - try {
101 - if (_webViewController == null) {
102 - return;
103 - }
104 -
105 - final url = await _webViewController.currentUrl();
106 - print('URL = $url');
107 - if (url.contains(keyword)) {
108 - timer.cancel();
109 - await yatViewModel.fetchCartInfo();
110 - Navigator.of(context).pop();
111 - }
112 - } catch (e) {
113 - print(e);
114 - }
115 - });
116 - }
117 -}
\ No newline at end of file
lib/view_model/settings/settings_view_model.dart
+2 -2
@@ -157,12 +157,12 @@ abstract class SettingsViewModelBase with Store {
157 ],
158 [
159 RegularListItem(
160 - title: 'Manage Yats',
160 + title: S.current.manage_yats,
161 handler: (BuildContext context) async {
162 await showPopUp<void>(
163 context: context,
164 builder: (BuildContext context) {
165 - return YatAlert();
165 + return YatAlert(isYatDevMode: true);
166 });
167 },
168 ),
lib/view_model/yat_view_model.dart deleted
-39
@@ -1,39 +0,0 @@
1 -import 'package:cake_wallet/store/yat_store.dart';
2 -import 'package:flutter/foundation.dart';
3 -import 'package:mobx/mobx.dart';
4 -import 'dart:convert';
5 -import 'package:cake_wallet/yat/yat_exception.dart';
6 -import 'package:http/http.dart';
7 -import 'package:cake_wallet/.secrets.g.dart' as secrets;
8 -
9 -part 'yat_view_model.g.dart';
10 -
11 -class YatViewModel = YatViewModelBase with _$YatViewModel;
12 -
13 -abstract class YatViewModelBase with Store {
14 - YatViewModelBase({@required this.yatStore});
15 -
16 - final YatStore yatStore;
17 -
18 - Future<void> fetchCartInfo() async {
19 - final url = 'https://a.y.at/cart';
20 - final _apiKey = secrets.yatApiToken;
21 -
22 - final response = await get(
23 - url,
24 - headers: {
25 - 'Accept':'*/*',
26 - 'X-Api-Key': _apiKey
27 - }
28 - );
29 -
30 - print('RESPONSE = ${response.body.toString()}');
31 -
32 - /*if (response.statusCode != 200) {
33 - throw YatException(text: response.body.toString());
34 - }
35 -
36 - final responseJSON = json.decode(response.body) as Map<String, dynamic>;
37 - yatStore.yatAddress = responseJSON[''] as String;*/ // FIXME
38 - }
39 -}
\ No newline at end of file
res/values/strings_de.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Adresse erkannt",
495 "address_from_domain" : "Diese Adresse ist von ${domain} auf Unstoppable Domains",
496
497 - "add_receiver" : "Fügen Sie einen weiteren Empfänger hinzu (optional)"
497 + "add_receiver" : "Fügen Sie einen weiteren Empfänger hinzu (optional)",
498 +
499 + "manage_yats" : "Yats verwalten",
500 + "yat_alert_title" : "Senden und Empfangen von Krypto leichter mit Yat",
501 + "yat_alert_content" : "Cake Wallet-Benutzer können jetzt alle ihre Lieblingswährungen mit einem einzigartigen Emoji-basierten Benutzernamen senden und empfangen.",
502 + "get_your_yat" : "Holen Sie sich Ihre Yat",
503 + "connect_an_existing_yat" : "Verbinden Sie ein vorhandenes Yat",
504 + "yat_address" : "Yat-Adresse",
505 + "address_from_yat" : "Diese Adresse ist von ${emoji} auf Yat"
506 }
res/values/strings_en.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Address detected",
495 "address_from_domain" : "This address is from ${domain} on Unstoppable Domains",
496
497 - "add_receiver" : "Add another receiver (optional)"
497 + "add_receiver" : "Add another receiver (optional)",
498 +
499 + "manage_yats" : "Manage Yats",
500 + "yat_alert_title" : "Send and receive crypto more easily with Yat",
501 + "yat_alert_content" : "Cake Wallet users can now send and receive all their favorite currencies with a one-of-a-kind emoji-based username.",
502 + "get_your_yat" : "Get your Yat",
503 + "connect_an_existing_yat" : "Connect an existing Yat",
504 + "yat_address" : "Yat Address",
505 + "address_from_yat" : "This address is from ${emoji} on Yat"
506 }
\ No newline at end of file
res/values/strings_es.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Dirección detectada",
495 "address_from_domain" : "Esta dirección es de ${domain} en Unstoppable Domains",
496
497 - "add_receiver" : "Agregar otro receptor (opcional)"
497 + "add_receiver" : "Agregar otro receptor (opcional)",
498 +
499 + "manage_yats" : "Administrar Yats",
500 + "yat_alert_title" : "Envíe y reciba criptomonedas más fácilmente con Yat",
501 + "yat_alert_content" : "Los usuarios de Cake Wallet ahora pueden enviar y recibir todas sus monedas favoritas con un nombre de usuario único basado en emoji.",
502 + "get_your_yat" : "Obtén tu Yat",
503 + "connect_an_existing_yat" : "Conectar un Yat existente",
504 + "yat_address" : "Dirección de Yat",
505 + "address_from_yat" : "Esta dirección es de ${emoji} en Yat"
506 }
\ No newline at end of file
res/values/strings_hi.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "पता लग गया",
495 "address_from_domain" : "यह पता ${domain} से है Unstoppable Domains",
496
497 - "add_receiver" : "एक और रिसीवर जोड़ें (वैकल्पिक)"
497 + "add_receiver" : "एक और रिसीवर जोड़ें (वैकल्पिक)",
498 +
499 + "manage_yats" : "Yats प्रबंधित करें",
500 + "yat_alert_title" : "के साथ अधिक आसानी से क्रिप्टो भेजें और प्राप्त करें Yat",
501 + "yat_alert_content" : "Cake Wallet उपयोगकर्ता अब अपनी सभी पसंदीदा मुद्राओं को एक-एक तरह के इमोजी-आधारित उपयोगकर्ता नाम के साथ भेज और प्राप्त कर सकते हैं।",
502 + "get_your_yat" : "अपना प्राप्त करें Yat",
503 + "connect_an_existing_yat" : "मौजूदा Yat कनेक्ट करें",
504 + "yat_address" : "Yat पता",
505 + "address_from_yat" : "यह पता ${emoji} से है Yat"
506 }
\ No newline at end of file
res/values/strings_hr.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Adresa je otkrivena",
495 "address_from_domain" : "To je adresa od ${domain} na Unstoppable Domains",
496
497 - "add_receiver" : "Dodajte drugi prijemnik (izborno)"
497 + "add_receiver" : "Dodajte drugi prijemnik (izborno)",
498 +
499 + "manage_yats" : "Upravljanje Yat",
500 + "yat_alert_title" : "Lakše šaljite i primajte kriptovalute s Yatom",
501 + "yat_alert_content" : "Korisnici Cake Wallet sada mogu slati i primati sve svoje omiljene valute s jedinstvenim korisničkim imenom na temelju emojija.",
502 + "get_your_yat" : "Uzmi svoj Yat",
503 + "connect_an_existing_yat" : "Povežite postojeći Yat",
504 + "yat_address" : "Yat adresa",
505 + "address_from_yat" : "To je adresa od ${emoji} na Yat"
506 }
\ No newline at end of file
res/values/strings_it.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Indirizzo rilevato",
495 "address_from_domain" : "Questo indirizzo è da ${domain} in poi Unstoppable Domains",
496
497 - "add_receiver" : "Aggiungi un altro ricevitore (opzionale)"
497 + "add_receiver" : "Aggiungi un altro ricevitore (opzionale)",
498 +
499 + "manage_yats" : "Gestisci Yats",
500 + "yat_alert_title" : "Invia e ricevi criptovalute più facilmente con Yat",
501 + "yat_alert_content" : "Gli utenti di Cake Wallet possono ora inviare e ricevere tutte le loro valute preferite con un nome utente unico basato su emoji.",
502 + "get_your_yat" : "Ottieni il tuo Yat",
503 + "connect_an_existing_yat" : "Collegare un Yat esistente",
504 + "yat_address" : "Indirizzo Yat",
505 + "address_from_yat" : "Questo indirizzo è da ${emoji} in poi Yat"
506 }
\ No newline at end of file
res/values/strings_ja.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "アドレスが検出されました",
495 "address_from_domain" : "このアドレスは ${domain} からのものです Unstoppable Domains",
496
497 - "add_receiver" : "別のレシーバーを追加します(オプション)"
497 + "add_receiver" : "別のレシーバーを追加します(オプション)",
498 +
499 + "manage_yats" : "Yatsを管理する",
500 + "yat_alert_title" : "Yatで暗号をより簡単に送受信できます",
501 + "yat_alert_content" : "Cake Walletユーザーは、独自の絵文字ベースのユーザー名を使用して、お気に入りのすべての通貨を送受信できるようになりました。",
502 + "get_your_yat" : "あなたのYatを入手してください",
503 + "connect_an_existing_yat" : "既存のYatを接続します",
504 + "yat_address" : "Yat 住所",
505 + "address_from_yat" : "このアドレスは ${emoji} からのものです Yat"
506 }
\ No newline at end of file
res/values/strings_ko.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "주소 감지",
495 "address_from_domain" : "이 주소는 ${domain} 의 주소입니다 Unstoppable Domains",
496
497 - "add_receiver" : "다른 수신기 추가(선택 사항)"
497 + "add_receiver" : "다른 수신기 추가(선택 사항)",
498 +
499 + "manage_yats" : "관리하다 Yats",
500 + "yat_alert_title" : "Yat으로 더 쉽게 암호화폐를 보내고 받으십시오.",
501 + "yat_alert_content" : "Cake Wallet 사용자는 이제 독특한 이모티콘 기반 사용자 이름으로 좋아하는 모든 통화를 보내고 받을 수 있습니다.",
502 + "get_your_yat" : "당신의 Yat를 얻으십시오",
503 + "connect_an_existing_yat" : "기존 Yat 연결",
504 + "yat_address" : "Yat 주소",
505 + "address_from_yat" : "이 주소는 ${emoji} 의 주소입니다 Yat"
506 }
\ No newline at end of file
res/values/strings_nl.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Adres gedetecteerd",
495 "address_from_domain" : "Dit adres is van ${domain} op Unstoppable Domains",
496
497 - "add_receiver" : "Nog een ontvanger toevoegen (optioneel)"
497 + "add_receiver" : "Nog een ontvanger toevoegen (optioneel)",
498 +
499 + "manage_yats" : "Yats beheren",
500 + "yat_alert_title" : "Verzend en ontvang crypto gemakkelijker met Yat",
501 + "yat_alert_content" : "Cake Wallet-gebruikers kunnen nu al hun favoriete valuta's verzenden en ontvangen met een unieke emoji-gebaseerde gebruikersnaam.",
502 + "get_your_yat" : "Haal je Yato",
503 + "connect_an_existing_yat" : "Verbind een bestaande Yat",
504 + "yat_address" : "Yat-adres",
505 + "address_from_yat" : "Dit adres is van ${emoji} op Yat"
506 }
\ No newline at end of file
res/values/strings_pl.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Wykryto adres",
495 "address_from_domain" : "Ten adres jest od ${domain} na Unstoppable Domains",
496
497 - "add_receiver" : "Dodaj kolejny odbiornik (opcjonalnie)"
497 + "add_receiver" : "Dodaj kolejny odbiornik (opcjonalnie)",
498 +
499 + "manage_yats" : "Zarządzaj Yats",
500 + "yat_alert_title" : "Łatwiejsze wysyłanie i odbieranie kryptowalut dzięki Yat",
501 + "yat_alert_content" : "Użytkownicy Cake Wallet mogą teraz wysyłać i odbierać wszystkie swoje ulubione waluty za pomocą jedynej w swoim rodzaju nazwy użytkownika opartej na emoji.",
502 + "get_your_yat" : "Zdobądź swój Yat",
503 + "connect_an_existing_yat" : "Podłącz istniejący Yat",
504 + "yat_address" : "Adres Yat",
505 + "address_from_yat" : "Ten adres jest od ${emoji} na Yat"
506 }
\ No newline at end of file
res/values/strings_pt.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Endereço detectado",
495 "address_from_domain" : "Este endereço é de ${domain} em Unstoppable Domains",
496
497 - "add_receiver" : "Adicione outro receptor (opcional)"
497 + "add_receiver" : "Adicione outro receptor (opcional)",
498 +
499 + "manage_yats" : "Gerenciar Yats",
500 + "yat_alert_title" : "Envie e receba criptografia mais facilmente com Yat",
501 + "yat_alert_content" : "Os usuários da Cake Wallet agora podem enviar e receber todas as suas moedas favoritas com um nome de usuário baseado em emoji único.",
502 + "get_your_yat" : "Pegue seu Yat",
503 + "connect_an_existing_yat" : "Conecte um Yat existente",
504 + "yat_address" : "Endereço Yat",
505 + "address_from_yat" : "Este endereço é de ${emoji} em Yat"
506 }
\ No newline at end of file
res/values/strings_ru.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Обнаружен адрес",
495 "address_from_domain" : "Этот адрес от ${domain} на Unstoppable Domains",
496
497 - "add_receiver" : "Добавить получателя (необязательно)"
497 + "add_receiver" : "Добавить получателя (необязательно)",
498 +
499 + "manage_yats" : "Управлять Yat",
500 + "yat_alert_title" : "С Yat проще отправлять и получать криптовалюту",
501 + "yat_alert_content" : "Пользователи Cake Wallet теперь могут отправлять и получать криптовалюту при помощи уникального имени пользователя на основе эмодзи.",
502 + "get_your_yat" : "Получить свой Yat",
503 + "connect_an_existing_yat" : "Подключить существующий Yat",
504 + "yat_address" : "Yat адрес",
505 + "address_from_yat" : "Этот адрес от ${emoji} на Yat"
506 }
\ No newline at end of file
res/values/strings_uk.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "Виявлено адресу",
495 "address_from_domain" : "Ця адреса від ${domain} на Unstoppable Domains",
496
497 - "add_receiver" : "Додати одержувача (необов'язково)"
497 + "add_receiver" : "Додати одержувача (необов'язково)",
498 +
499 + "manage_yats" : "Керувати Yat",
500 + "yat_alert_title" : "За допомогою Yat легше надсилати та отримувати криптовалюту",
501 + "yat_alert_content" : "Користувачі Cake Wallet тепер можуть надсилати та отримувати криптовалюту за допомогою унікального імені користувача на основі смайликів.",
502 + "get_your_yat" : "Одержати свій Yat",
503 + "connect_an_existing_yat" : "Підключити існуючий Yat",
504 + "yat_address" : "Yat адреса",
505 + "address_from_yat" : "Ця адреса від ${emoji} на Yat"
506 }
\ No newline at end of file
res/values/strings_zh.arb
+9 -1
@@ -494,5 +494,13 @@
494 "address_detected" : "檢測到地址",
495 "address_from_domain" : "此地址來自 Unstoppable Domains 上的 ${domain}",
496
497 - "add_receiver" : "添加另一個接收器(可選)"
497 + "add_receiver" : "添加另一個接收器(可選)",
498 +
499 + "manage_yats" : "管理 Yats",
500 + "yat_alert_title" : "使用 Yat 更輕鬆地發送和接收加密貨幣",
501 + "yat_alert_content" : "Cake Wallet 用戶現在可以使用獨一無二的基於表情符號的用戶名發送和接收他們喜歡的所有貨幣。",
502 + "get_your_yat" : "得到你的 Yat",
503 + "connect_an_existing_yat" : "連接現有 Yat",
504 + "yat_address" : "Yat 地址",
505 + "address_from_yat" : "此地址來自 Yat 上的 ${emoji}"
506 }
\ No newline at end of file