diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 8759f06..3ed80d2 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -16,9 +16,7 @@
6.0
CFBundleLocalizations
- af
ar
- ca
cs
da
de
@@ -27,22 +25,18 @@
es
fi
fr
- he
hu
it
ja
ko
nl
- no
pl
pt
ro
ru
- sr
sv
tr
uk
- vi
zh
CFBundleName
diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart
index 5354116..793b348 100644
--- a/lib/i18n/strings.g.dart
+++ b/lib/i18n/strings.g.dart
@@ -3,10 +3,10 @@
/// Source: lib/i18n
/// To regenerate, run: `dart run slang`
///
-/// Locales: 28
-/// Strings: 1991 (71 per locale)
+/// Locales: 22
+/// Strings: 1628 (74 per locale)
///
-/// Built on 2025-05-28 at 12:24 UTC
+/// Built on 2025-05-28 at 12:41 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
@@ -17,9 +17,7 @@ import 'package:slang/generated.dart';
import 'package:slang_flutter/slang_flutter.dart';
export 'package:slang_flutter/slang_flutter.dart';
-import 'strings_af.g.dart' deferred as l_af;
import 'strings_ar.g.dart' deferred as l_ar;
-import 'strings_ca.g.dart' deferred as l_ca;
import 'strings_cs.g.dart' deferred as l_cs;
import 'strings_da.g.dart' deferred as l_da;
import 'strings_de.g.dart' deferred as l_de;
@@ -27,22 +25,18 @@ import 'strings_el.g.dart' deferred as l_el;
import 'strings_es.g.dart' deferred as l_es;
import 'strings_fi.g.dart' deferred as l_fi;
import 'strings_fr.g.dart' deferred as l_fr;
-import 'strings_he.g.dart' deferred as l_he;
import 'strings_hu.g.dart' deferred as l_hu;
import 'strings_it.g.dart' deferred as l_it;
import 'strings_ja.g.dart' deferred as l_ja;
import 'strings_ko.g.dart' deferred as l_ko;
import 'strings_nl.g.dart' deferred as l_nl;
-import 'strings_no.g.dart' deferred as l_no;
import 'strings_pl.g.dart' deferred as l_pl;
import 'strings_pt.g.dart' deferred as l_pt;
import 'strings_ro.g.dart' deferred as l_ro;
import 'strings_ru.g.dart' deferred as l_ru;
-import 'strings_sr.g.dart' deferred as l_sr;
import 'strings_sv.g.dart' deferred as l_sv;
import 'strings_tr.g.dart' deferred as l_tr;
import 'strings_uk.g.dart' deferred as l_uk;
-import 'strings_vi.g.dart' deferred as l_vi;
import 'strings_zh.g.dart' deferred as l_zh;
part 'strings_en.g.dart';
@@ -54,9 +48,7 @@ part 'strings_en.g.dart';
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
enum AppLocale with BaseAppLocale {
en(languageCode: 'en'),
- af(languageCode: 'af'),
ar(languageCode: 'ar'),
- ca(languageCode: 'ca'),
cs(languageCode: 'cs'),
da(languageCode: 'da'),
de(languageCode: 'de'),
@@ -64,22 +56,18 @@ enum AppLocale with BaseAppLocale {
es(languageCode: 'es'),
fi(languageCode: 'fi'),
fr(languageCode: 'fr'),
- he(languageCode: 'he'),
hu(languageCode: 'hu'),
it(languageCode: 'it'),
ja(languageCode: 'ja'),
ko(languageCode: 'ko'),
nl(languageCode: 'nl'),
- no(languageCode: 'no'),
pl(languageCode: 'pl'),
pt(languageCode: 'pt'),
ro(languageCode: 'ro'),
ru(languageCode: 'ru'),
- sr(languageCode: 'sr'),
sv(languageCode: 'sv'),
tr(languageCode: 'tr'),
uk(languageCode: 'uk'),
- vi(languageCode: 'vi'),
zh(languageCode: 'zh');
const AppLocale({
@@ -105,13 +93,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.af:
- await l_af.loadLibrary();
- return l_af.TranslationsAf(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.ar:
await l_ar.loadLibrary();
return l_ar.TranslationsAr(
@@ -119,13 +100,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.ca:
- await l_ca.loadLibrary();
- return l_ca.TranslationsCa(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.cs:
await l_cs.loadLibrary();
return l_cs.TranslationsCs(
@@ -175,13 +149,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.he:
- await l_he.loadLibrary();
- return l_he.TranslationsHe(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.hu:
await l_hu.loadLibrary();
return l_hu.TranslationsHu(
@@ -217,13 +184,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.no:
- await l_no.loadLibrary();
- return l_no.TranslationsNo(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.pl:
await l_pl.loadLibrary();
return l_pl.TranslationsPl(
@@ -252,13 +212,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.sr:
- await l_sr.loadLibrary();
- return l_sr.TranslationsSr(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.sv:
await l_sv.loadLibrary();
return l_sv.TranslationsSv(
@@ -280,13 +233,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.vi:
- await l_vi.loadLibrary();
- return l_vi.TranslationsVi(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.zh:
await l_zh.loadLibrary();
return l_zh.TranslationsZh(
@@ -310,24 +256,12 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.af:
- return l_af.TranslationsAf(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.ar:
return l_ar.TranslationsAr(
overrides: overrides,
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.ca:
- return l_ca.TranslationsCa(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.cs:
return l_cs.TranslationsCs(
overrides: overrides,
@@ -370,12 +304,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.he:
- return l_he.TranslationsHe(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.hu:
return l_hu.TranslationsHu(
overrides: overrides,
@@ -406,12 +334,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.no:
- return l_no.TranslationsNo(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.pl:
return l_pl.TranslationsPl(
overrides: overrides,
@@ -436,12 +358,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.sr:
- return l_sr.TranslationsSr(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.sv:
return l_sv.TranslationsSv(
overrides: overrides,
@@ -460,12 +376,6 @@ enum AppLocale with BaseAppLocale {
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
);
- case AppLocale.vi:
- return l_vi.TranslationsVi(
- overrides: overrides,
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- );
case AppLocale.zh:
return l_zh.TranslationsZh(
overrides: overrides,
diff --git a/lib/i18n/strings_af.g.dart b/lib/i18n/strings_af.g.dart
deleted file mode 100644
index e6f51f4..0000000
--- a/lib/i18n/strings_af.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsAf extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsAf({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.af,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsAf _root = this; // ignore: unused_field
-
- @override
- TranslationsAf $copyWith({TranslationMetadata? meta}) => TranslationsAf(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('af'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamAf stream = _TranslationsStreamAf._(_root);
- @override late final _TranslationsGoalAf goal = _TranslationsGoalAf._(_root);
- @override late final _TranslationsButtonAf button = _TranslationsButtonAf._(_root);
- @override late final _TranslationsEmbedAf embed = _TranslationsEmbedAf._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListAf stream_list = _TranslationsStreamListAf._(_root);
-
- @override late final _TranslationsZapAf zap = _TranslationsZapAf._(_root);
- @override late final _TranslationsProfileAf profile = _TranslationsProfileAf._(_root);
- @override late final _TranslationsSettingsAf settings = _TranslationsSettingsAf._(_root);
- @override late final _TranslationsLoginAf login = _TranslationsLoginAf._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamAf extends TranslationsStreamEn {
- _TranslationsStreamAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusAf status = _TranslationsStreamStatusAf._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatAf chat = _TranslationsStreamChatAf._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalAf extends TranslationsGoalEn {
- _TranslationsGoalAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonAf extends TranslationsButtonEn {
- _TranslationsButtonAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedAf extends TranslationsEmbedEn {
- _TranslationsEmbedAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListAf extends TranslationsStreamListEn {
- _TranslationsStreamListAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapAf extends TranslationsZapEn {
- _TranslationsZapAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorAf error = _TranslationsZapErrorAf._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileAf extends TranslationsProfileEn {
- _TranslationsProfileAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsAf extends TranslationsSettingsEn {
- _TranslationsSettingsAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileAf profile = _TranslationsSettingsProfileAf._(_root);
- @override late final _TranslationsSettingsWalletAf wallet = _TranslationsSettingsWalletAf._(_root);
-}
-
-// Path: login
-class _TranslationsLoginAf extends TranslationsLoginEn {
- _TranslationsLoginAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorAf error = _TranslationsLoginErrorAf._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusAf extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatAf extends TranslationsStreamChatEn {
- _TranslationsStreamChatAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteAf write = _TranslationsStreamChatWriteAf._(_root);
- @override late final _TranslationsStreamChatBadgeAf badge = _TranslationsStreamChatBadgeAf._(_root);
- @override late final _TranslationsStreamChatRaidAf raid = _TranslationsStreamChatRaidAf._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorAf extends TranslationsZapErrorEn {
- _TranslationsZapErrorAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileAf extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorAf error = _TranslationsSettingsProfileErrorAf._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletAf extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorAf error = _TranslationsSettingsWalletErrorAf._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorAf extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteAf extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeAf extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidAf extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorAf extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorAf extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorAf._(TranslationsAf root) : this._root = root, super.internal(root);
-
- final TranslationsAf _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsAf {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('af'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_ar.g.dart b/lib/i18n/strings_ar.g.dart
index abf121e..62e3d66 100644
--- a/lib/i18n/strings_ar.g.dart
+++ b/lib/i18n/strings_ar.g.dart
@@ -54,7 +54,7 @@ class TranslationsAr extends Translations {
/// عدد مشاهدي البث
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
one: '1 مشاهد',
- other: '${n} المشاهدون',
+ other: '${NumberFormat.decimalPattern('ar').format(n)} المشاهدين',
);
@override late final _TranslationsStreamAr stream = _TranslationsStreamAr._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletAr extends TranslationsSettingsWalletEn {
final TranslationsAr _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'توصيل المحفظة (NWC nwc://)';
+ @override String get connect_wallet => 'توصيل المحفظة (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'محفظة قطع الاتصال';
+ @override String get connect_1tap => '1-التوصيل بنقرة 1';
+ @override String get paste => 'لصق عنوان URL';
@override late final _TranslationsSettingsWalletErrorAr error = _TranslationsSettingsWalletErrorAr._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorAr extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'لا يمكن الاتصال بالمحفظة عند تسجيل الخروج';
+ @override String get nwc_auth_event_not_found => 'لم يتم العثور على حدث مصادقة المحفظة';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsAr {
case 'anon': return 'هوية مخفية';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
one: '1 مشاهد',
- other: '${n} المشاهدون',
+ other: '${NumberFormat.decimalPattern('ar').format(n)} المشاهدين',
);
case 'stream.status.live': return 'بث مباشر';
case 'stream.status.ended': return 'انتهى';
@@ -448,9 +451,12 @@ extension on TranslationsAr {
case 'settings.profile.nip05': return 'عنوان نوستر';
case 'settings.profile.lud16': return 'عنوان البرق';
case 'settings.profile.error.logged_out': return 'لا يمكن تحرير ملف التعريف عند تسجيل الخروج';
- case 'settings.wallet.connect_wallet': return 'توصيل المحفظة (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'توصيل المحفظة (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'محفظة قطع الاتصال';
+ case 'settings.wallet.connect_1tap': return '1-التوصيل بنقرة 1';
+ case 'settings.wallet.paste': return 'لصق عنوان URL';
case 'settings.wallet.error.logged_out': return 'لا يمكن الاتصال بالمحفظة عند تسجيل الخروج';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'لم يتم العثور على حدث مصادقة المحفظة';
case 'login.username': return 'اسم المستخدم';
case 'login.amber': return 'تسجيل الدخول مع آمبر';
case 'login.key': return 'تسجيل الدخول بالمفتاح';
diff --git a/lib/i18n/strings_ca.g.dart b/lib/i18n/strings_ca.g.dart
deleted file mode 100644
index c6866eb..0000000
--- a/lib/i18n/strings_ca.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsCa extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsCa({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.ca,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsCa _root = this; // ignore: unused_field
-
- @override
- TranslationsCa $copyWith({TranslationMetadata? meta}) => TranslationsCa(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ca'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamCa stream = _TranslationsStreamCa._(_root);
- @override late final _TranslationsGoalCa goal = _TranslationsGoalCa._(_root);
- @override late final _TranslationsButtonCa button = _TranslationsButtonCa._(_root);
- @override late final _TranslationsEmbedCa embed = _TranslationsEmbedCa._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListCa stream_list = _TranslationsStreamListCa._(_root);
-
- @override late final _TranslationsZapCa zap = _TranslationsZapCa._(_root);
- @override late final _TranslationsProfileCa profile = _TranslationsProfileCa._(_root);
- @override late final _TranslationsSettingsCa settings = _TranslationsSettingsCa._(_root);
- @override late final _TranslationsLoginCa login = _TranslationsLoginCa._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamCa extends TranslationsStreamEn {
- _TranslationsStreamCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusCa status = _TranslationsStreamStatusCa._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatCa chat = _TranslationsStreamChatCa._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalCa extends TranslationsGoalEn {
- _TranslationsGoalCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonCa extends TranslationsButtonEn {
- _TranslationsButtonCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedCa extends TranslationsEmbedEn {
- _TranslationsEmbedCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListCa extends TranslationsStreamListEn {
- _TranslationsStreamListCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapCa extends TranslationsZapEn {
- _TranslationsZapCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorCa error = _TranslationsZapErrorCa._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileCa extends TranslationsProfileEn {
- _TranslationsProfileCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsCa extends TranslationsSettingsEn {
- _TranslationsSettingsCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileCa profile = _TranslationsSettingsProfileCa._(_root);
- @override late final _TranslationsSettingsWalletCa wallet = _TranslationsSettingsWalletCa._(_root);
-}
-
-// Path: login
-class _TranslationsLoginCa extends TranslationsLoginEn {
- _TranslationsLoginCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorCa error = _TranslationsLoginErrorCa._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusCa extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatCa extends TranslationsStreamChatEn {
- _TranslationsStreamChatCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteCa write = _TranslationsStreamChatWriteCa._(_root);
- @override late final _TranslationsStreamChatBadgeCa badge = _TranslationsStreamChatBadgeCa._(_root);
- @override late final _TranslationsStreamChatRaidCa raid = _TranslationsStreamChatRaidCa._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorCa extends TranslationsZapErrorEn {
- _TranslationsZapErrorCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileCa extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorCa error = _TranslationsSettingsProfileErrorCa._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletCa extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorCa error = _TranslationsSettingsWalletErrorCa._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorCa extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteCa extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeCa extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidCa extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorCa extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorCa extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorCa._(TranslationsCa root) : this._root = root, super.internal(root);
-
- final TranslationsCa _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsCa {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ca'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_cs.g.dart b/lib/i18n/strings_cs.g.dart
index fa97681..f4351e2 100644
--- a/lib/i18n/strings_cs.g.dart
+++ b/lib/i18n/strings_cs.g.dart
@@ -54,7 +54,7 @@ class TranslationsCs extends Translations {
/// Počet diváků streamu
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
one: '1 divák',
- other: '${n} diváci',
+ other: '${NumberFormat.decimalPattern('cs').format(n)} diváků',
);
@override late final _TranslationsStreamCs stream = _TranslationsStreamCs._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletCs extends TranslationsSettingsWalletEn {
final TranslationsCs _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Připojení peněženky (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Odpojení peněženky';
+ @override String get connect_1tap => 'Připojení 1 kohoutku';
+ @override String get paste => 'Vložit adresu URL';
@override late final _TranslationsSettingsWalletErrorCs error = _TranslationsSettingsWalletErrorCs._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorCs extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Nelze se připojit k peněžence, když jste odhlášeni';
+ @override String get nwc_auth_event_not_found => 'Nebyla nalezena žádná událost autentizace peněženky';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsCs {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
one: '1 divák',
- other: '${n} diváci',
+ other: '${NumberFormat.decimalPattern('cs').format(n)} diváků',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'KONEC';
@@ -448,9 +451,12 @@ extension on TranslationsCs {
case 'settings.profile.nip05': return 'Adresa Nostr';
case 'settings.profile.lud16': return 'Adresa blesku';
case 'settings.profile.error.logged_out': return 'Nelze upravit profil, když je odhlášený';
- case 'settings.wallet.connect_wallet': return 'Připojení peněženky (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Odpojení peněženky';
+ case 'settings.wallet.connect_1tap': return 'Připojení 1 kohoutku';
+ case 'settings.wallet.paste': return 'Vložit adresu URL';
case 'settings.wallet.error.logged_out': return 'Nelze se připojit k peněžence, když jste odhlášeni';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nebyla nalezena žádná událost autentizace peněženky';
case 'login.username': return 'Uživatelské jméno';
case 'login.amber': return 'Přihlášení pomocí Amber';
case 'login.key': return 'Přihlášení pomocí klíče';
diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart
index 8df971e..1115d6a 100644
--- a/lib/i18n/strings_da.g.dart
+++ b/lib/i18n/strings_da.g.dart
@@ -54,7 +54,7 @@ class TranslationsDa extends Translations {
/// Antal seere af streamingen
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
one: '1 seer',
- other: '${n} Seere',
+ other: '${NumberFormat.decimalPattern('da').format(n)} seere',
);
@override late final _TranslationsStreamDa stream = _TranslationsStreamDa._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletDa extends TranslationsSettingsWalletEn {
final TranslationsDa _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Afbryd forbindelsen til tegnebogen';
+ @override String get connect_1tap => '1-Tap-forbindelse';
+ @override String get paste => 'Indsæt URL';
@override late final _TranslationsSettingsWalletErrorDa error = _TranslationsSettingsWalletErrorDa._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorDa extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Kan ikke oprette forbindelse til wallet, når jeg er logget ud';
+ @override String get nwc_auth_event_not_found => 'Ingen wallet-auth-begivenhed fundet';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsDa {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
one: '1 seer',
- other: '${n} Seere',
+ other: '${NumberFormat.decimalPattern('da').format(n)} seere',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'AFSLUTTET';
@@ -448,9 +451,12 @@ extension on TranslationsDa {
case 'settings.profile.nip05': return 'Nostr-adresse';
case 'settings.profile.lud16': return 'Adresse for lynnedslag';
case 'settings.profile.error.logged_out': return 'Kan ikke redigere profil, når jeg er logget ud';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Afbryd forbindelsen til tegnebogen';
+ case 'settings.wallet.connect_1tap': return '1-Tap-forbindelse';
+ case 'settings.wallet.paste': return 'Indsæt URL';
case 'settings.wallet.error.logged_out': return 'Kan ikke oprette forbindelse til wallet, når jeg er logget ud';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Ingen wallet-auth-begivenhed fundet';
case 'login.username': return 'Brugernavn';
case 'login.amber': return 'Log ind med Amber';
case 'login.key': return 'Login med nøgle';
diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart
index 520f892..a44ba5c 100644
--- a/lib/i18n/strings_de.g.dart
+++ b/lib/i18n/strings_de.g.dart
@@ -54,7 +54,7 @@ class TranslationsDe extends Translations {
/// Anzahl der Betrachter des Streams
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
one: '1 Zuschauer',
- other: '${n} Zuschauer',
+ other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
);
@override late final _TranslationsStreamDe stream = _TranslationsStreamDe._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletDe extends TranslationsSettingsWalletEn {
final TranslationsDe _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Brieftasche verbinden (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Brieftasche abtrennen';
+ @override String get connect_1tap => '1-Tap-Verbindung';
+ @override String get paste => 'URL einfügen';
@override late final _TranslationsSettingsWalletErrorDe error = _TranslationsSettingsWalletErrorDe._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorDe extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Kann keine Verbindung zur Brieftasche herstellen, wenn ich abgemeldet bin';
+ @override String get nwc_auth_event_not_found => 'Kein Wallet-Authentifizierungsereignis gefunden';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsDe {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
one: '1 Zuschauer',
- other: '${n} Zuschauer',
+ other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'ENDED';
@@ -448,9 +451,12 @@ extension on TranslationsDe {
case 'settings.profile.nip05': return 'Nostr-Adresse';
case 'settings.profile.lud16': return 'Blitz-Adresse';
case 'settings.profile.error.logged_out': return 'Profil kann nicht bearbeitet werden, wenn es abgemeldet ist';
- case 'settings.wallet.connect_wallet': return 'Brieftasche verbinden (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Brieftasche abtrennen';
+ case 'settings.wallet.connect_1tap': return '1-Tap-Verbindung';
+ case 'settings.wallet.paste': return 'URL einfügen';
case 'settings.wallet.error.logged_out': return 'Kann keine Verbindung zur Brieftasche herstellen, wenn ich abgemeldet bin';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Kein Wallet-Authentifizierungsereignis gefunden';
case 'login.username': return 'Benutzername';
case 'login.amber': return 'Anmeldung mit Amber';
case 'login.key': return 'Anmeldung mit Schlüssel';
diff --git a/lib/i18n/strings_el.g.dart b/lib/i18n/strings_el.g.dart
index a042839..a2974b2 100644
--- a/lib/i18n/strings_el.g.dart
+++ b/lib/i18n/strings_el.g.dart
@@ -54,7 +54,7 @@ class TranslationsEl extends Translations {
/// Αριθμός θεατών της ροής
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
one: '1 θεατής',
- other: '${n} θεατές',
+ other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
);
@override late final _TranslationsStreamEl stream = _TranslationsStreamEl._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletEl extends TranslationsSettingsWalletEn {
final TranslationsEl _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Σύνδεση πορτοφολιού (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Αποσύνδεση πορτοφολιού';
+ @override String get connect_1tap => 'Σύνδεση 1 βρύσης';
+ @override String get paste => 'Επικόλληση URL';
@override late final _TranslationsSettingsWalletErrorEl error = _TranslationsSettingsWalletErrorEl._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorEl extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί';
+ @override String get nwc_auth_event_not_found => 'Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsEl {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
one: '1 θεατής',
- other: '${n} θεατές',
+ other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'ENDED';
@@ -448,9 +451,12 @@ extension on TranslationsEl {
case 'settings.profile.nip05': return 'Διεύθυνση Nostr';
case 'settings.profile.lud16': return 'Διεύθυνση Lightning';
case 'settings.profile.error.logged_out': return 'Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί';
- case 'settings.wallet.connect_wallet': return 'Σύνδεση πορτοφολιού (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Αποσύνδεση πορτοφολιού';
+ case 'settings.wallet.connect_1tap': return 'Σύνδεση 1 βρύσης';
+ case 'settings.wallet.paste': return 'Επικόλληση URL';
case 'settings.wallet.error.logged_out': return 'Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού';
case 'login.username': return 'Όνομα χρήστη';
case 'login.amber': return 'Σύνδεση με Amber';
case 'login.key': return 'Σύνδεση με κλειδί';
diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart
index a27014d..4ba0d9b 100644
--- a/lib/i18n/strings_es.g.dart
+++ b/lib/i18n/strings_es.g.dart
@@ -54,7 +54,7 @@ class TranslationsEs extends Translations {
/// Número de espectadores del flujo
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
one: '1 espectador',
- other: '${n} espectadores',
+ other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
);
@override late final _TranslationsStreamEs stream = _TranslationsStreamEs._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletEs extends TranslationsSettingsWalletEn {
final TranslationsEs _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Cartera Connect (NWC nwc://)';
+ @override String get connect_wallet => 'Cartera Connect (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Desconectar Cartera';
+ @override String get connect_1tap => 'Conexión de 1 toma';
+ @override String get paste => 'Pegar URL';
@override late final _TranslationsSettingsWalletErrorEs error = _TranslationsSettingsWalletErrorEs._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorEs extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'No se puede conectar el monedero al cerrar la sesión';
+ @override String get nwc_auth_event_not_found => 'No se ha encontrado ningún evento de autenticación de cartera';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsEs {
case 'anon': return 'Anónimo';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
one: '1 espectador',
- other: '${n} espectadores',
+ other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
);
case 'stream.status.live': return 'EN VIVO';
case 'stream.status.ended': return 'FIN';
@@ -448,9 +451,12 @@ extension on TranslationsEs {
case 'settings.profile.nip05': return 'Dirección Nostr';
case 'settings.profile.lud16': return 'Dirección del rayo';
case 'settings.profile.error.logged_out': return 'No se puede editar el perfil cuando se cierra la sesión';
- case 'settings.wallet.connect_wallet': return 'Cartera Connect (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Cartera Connect (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Desconectar Cartera';
+ case 'settings.wallet.connect_1tap': return 'Conexión de 1 toma';
+ case 'settings.wallet.paste': return 'Pegar URL';
case 'settings.wallet.error.logged_out': return 'No se puede conectar el monedero al cerrar la sesión';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'No se ha encontrado ningún evento de autenticación de cartera';
case 'login.username': return 'Usuario';
case 'login.amber': return 'Iniciar sesión con Amber';
case 'login.key': return 'Inicio de sesión con clave';
diff --git a/lib/i18n/strings_fi.g.dart b/lib/i18n/strings_fi.g.dart
index 0052f5b..e619e4e 100644
--- a/lib/i18n/strings_fi.g.dart
+++ b/lib/i18n/strings_fi.g.dart
@@ -54,7 +54,7 @@ class TranslationsFi extends Translations {
/// Streamin katsojien määrä
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
one: '1 katsoja',
- other: '${n} katsojaa',
+ other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
);
@override late final _TranslationsStreamFi stream = _TranslationsStreamFi._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletFi extends TranslationsSettingsWalletEn {
final TranslationsFi _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Yhdistä lompakko (NWC nwc://)';
+ @override String get connect_wallet => 'Connect-lompakko (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Irrota lompakko';
+ @override String get connect_1tap => '1-Tap-liitäntä';
+ @override String get paste => 'Liitä URL-osoite';
@override late final _TranslationsSettingsWalletErrorFi error = _TranslationsSettingsWalletErrorFi._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorFi extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Ei voi muodostaa yhteyttä lompakkoon, kun on kirjautunut ulos';
+ @override String get nwc_auth_event_not_found => 'Ei lompakko-auth-tapahtumaa löydetty';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsFi {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
one: '1 katsoja',
- other: '${n} katsojaa',
+ other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'ENDED';
@@ -448,9 +451,12 @@ extension on TranslationsFi {
case 'settings.profile.nip05': return 'Nostr Osoite';
case 'settings.profile.lud16': return 'Salama osoite';
case 'settings.profile.error.logged_out': return 'Ei voi muokata profiilia, kun on kirjautunut ulos';
- case 'settings.wallet.connect_wallet': return 'Yhdistä lompakko (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect-lompakko (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Irrota lompakko';
+ case 'settings.wallet.connect_1tap': return '1-Tap-liitäntä';
+ case 'settings.wallet.paste': return 'Liitä URL-osoite';
case 'settings.wallet.error.logged_out': return 'Ei voi muodostaa yhteyttä lompakkoon, kun on kirjautunut ulos';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Ei lompakko-auth-tapahtumaa löydetty';
case 'login.username': return 'Käyttäjätunnus';
case 'login.amber': return 'Kirjaudu sisään Amber kanssa';
case 'login.key': return 'Kirjaudu sisään avaimella';
diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart
index b2ea915..d98b7bc 100644
--- a/lib/i18n/strings_fr.g.dart
+++ b/lib/i18n/strings_fr.g.dart
@@ -54,7 +54,7 @@ class TranslationsFr extends Translations {
/// Nombre de spectateurs du flux
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
one: '1 téléspectateur',
- other: '${n} spectateurs',
+ other: '${NumberFormat.decimalPattern('fr').format(n)} téléspectateurs',
);
@override late final _TranslationsStreamFr stream = _TranslationsStreamFr._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletFr extends TranslationsSettingsWalletEn {
final TranslationsFr _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Portefeuille connecté (NWC nwc://)';
+ @override String get connect_wallet => 'Portefeuille Connect (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Déconnecter le portefeuille';
+ @override String get connect_1tap => 'Connexion à 1 robinet';
+ @override String get paste => 'Coller l\'URL';
@override late final _TranslationsSettingsWalletErrorFr error = _TranslationsSettingsWalletErrorFr._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorFr extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Impossible de se connecter au portefeuille lorsque l\'on est déconnecté';
+ @override String get nwc_auth_event_not_found => 'Aucun événement d\'authentification de portefeuille n\'a été trouvé';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsFr {
case 'anon': return 'Anonyme';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
one: '1 téléspectateur',
- other: '${n} spectateurs',
+ other: '${NumberFormat.decimalPattern('fr').format(n)} téléspectateurs',
);
case 'stream.status.live': return 'VIVRE';
case 'stream.status.ended': return 'FINI';
@@ -448,9 +451,12 @@ extension on TranslationsFr {
case 'settings.profile.nip05': return 'Nostr Adresse';
case 'settings.profile.lud16': return 'Adresse de la foudre';
case 'settings.profile.error.logged_out': return 'Impossible de modifier le profil lorsque l\'on est déconnecté';
- case 'settings.wallet.connect_wallet': return 'Portefeuille connecté (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Portefeuille Connect (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Déconnecter le portefeuille';
+ case 'settings.wallet.connect_1tap': return 'Connexion à 1 robinet';
+ case 'settings.wallet.paste': return 'Coller l\'URL';
case 'settings.wallet.error.logged_out': return 'Impossible de se connecter au portefeuille lorsque l\'on est déconnecté';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Aucun événement d\'authentification de portefeuille n\'a été trouvé';
case 'login.username': return 'Nom d’utilisateur';
case 'login.amber': return 'Se connecter avec Amber';
case 'login.key': return 'Connexion avec la clé';
diff --git a/lib/i18n/strings_he.g.dart b/lib/i18n/strings_he.g.dart
deleted file mode 100644
index 9abb497..0000000
--- a/lib/i18n/strings_he.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsHe extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsHe({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.he,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsHe _root = this; // ignore: unused_field
-
- @override
- TranslationsHe $copyWith({TranslationMetadata? meta}) => TranslationsHe(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('he'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamHe stream = _TranslationsStreamHe._(_root);
- @override late final _TranslationsGoalHe goal = _TranslationsGoalHe._(_root);
- @override late final _TranslationsButtonHe button = _TranslationsButtonHe._(_root);
- @override late final _TranslationsEmbedHe embed = _TranslationsEmbedHe._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListHe stream_list = _TranslationsStreamListHe._(_root);
-
- @override late final _TranslationsZapHe zap = _TranslationsZapHe._(_root);
- @override late final _TranslationsProfileHe profile = _TranslationsProfileHe._(_root);
- @override late final _TranslationsSettingsHe settings = _TranslationsSettingsHe._(_root);
- @override late final _TranslationsLoginHe login = _TranslationsLoginHe._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamHe extends TranslationsStreamEn {
- _TranslationsStreamHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusHe status = _TranslationsStreamStatusHe._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatHe chat = _TranslationsStreamChatHe._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalHe extends TranslationsGoalEn {
- _TranslationsGoalHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonHe extends TranslationsButtonEn {
- _TranslationsButtonHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedHe extends TranslationsEmbedEn {
- _TranslationsEmbedHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListHe extends TranslationsStreamListEn {
- _TranslationsStreamListHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapHe extends TranslationsZapEn {
- _TranslationsZapHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorHe error = _TranslationsZapErrorHe._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileHe extends TranslationsProfileEn {
- _TranslationsProfileHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsHe extends TranslationsSettingsEn {
- _TranslationsSettingsHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileHe profile = _TranslationsSettingsProfileHe._(_root);
- @override late final _TranslationsSettingsWalletHe wallet = _TranslationsSettingsWalletHe._(_root);
-}
-
-// Path: login
-class _TranslationsLoginHe extends TranslationsLoginEn {
- _TranslationsLoginHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorHe error = _TranslationsLoginErrorHe._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusHe extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatHe extends TranslationsStreamChatEn {
- _TranslationsStreamChatHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteHe write = _TranslationsStreamChatWriteHe._(_root);
- @override late final _TranslationsStreamChatBadgeHe badge = _TranslationsStreamChatBadgeHe._(_root);
- @override late final _TranslationsStreamChatRaidHe raid = _TranslationsStreamChatRaidHe._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorHe extends TranslationsZapErrorEn {
- _TranslationsZapErrorHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileHe extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorHe error = _TranslationsSettingsProfileErrorHe._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletHe extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorHe error = _TranslationsSettingsWalletErrorHe._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorHe extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteHe extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeHe extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidHe extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorHe extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorHe extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorHe._(TranslationsHe root) : this._root = root, super.internal(root);
-
- final TranslationsHe _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsHe {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('he'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_hu.g.dart b/lib/i18n/strings_hu.g.dart
index 00babd4..5686529 100644
--- a/lib/i18n/strings_hu.g.dart
+++ b/lib/i18n/strings_hu.g.dart
@@ -54,7 +54,7 @@ class TranslationsHu extends Translations {
/// A stream nézőinek száma
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
one: '1 néző',
- other: '${n} néző',
+ other: '${NumberFormat.decimalPattern('hu').format(n)} nézők',
);
@override late final _TranslationsStreamHu stream = _TranslationsStreamHu._(_root);
@@ -285,8 +285,10 @@ class _TranslationsSettingsWalletHu extends TranslationsSettingsWalletEn {
final TranslationsHu _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Pénztárca lekapcsolása';
+ @override String get connect_1tap => '1-Tap csatlakozás';
+ @override String get paste => 'URL beillesztése';
@override late final _TranslationsSettingsWalletErrorHu error = _TranslationsSettingsWalletErrorHu._(_root);
}
@@ -345,7 +347,7 @@ class _TranslationsStreamChatRaidHu extends TranslationsStreamChatRaidEn {
@override String from({required Object name}) => 'RAID FROM ${name}';
/// Visszaszámláló időzítő az automatikus lovagláshoz
- @override String countdown({required Object time}) => 'Raiding a ${time} oldalon';
+ @override String countdown({required Object time}) => 'Raiding a ${time}oldalon';
}
// Path: settings.profile.error
@@ -366,6 +368,7 @@ class _TranslationsSettingsWalletErrorHu extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Kijelentkezve nem lehet csatlakozni a pénztárcához';
+ @override String get nwc_auth_event_not_found => 'Nem találtak pénztárca-auth eseményt';
}
/// Flat map(s) containing all translations.
@@ -379,7 +382,7 @@ extension on TranslationsHu {
case 'anon': return 'Névtelen';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
one: '1 néző',
- other: '${n} néző',
+ other: '${NumberFormat.decimalPattern('hu').format(n)} nézők',
);
case 'stream.status.live': return 'ÉLŐ';
case 'stream.status.ended': return 'ENDED';
@@ -408,7 +411,7 @@ extension on TranslationsHu {
case 'stream.chat.badge.awarded_to': return 'Elnyerte:';
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding a ${time} oldalon';
+ case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding a ${time}oldalon';
case 'goal.title': return ({required Object amount}) => 'Cél: ${amount}';
case 'goal.remaining': return ({required Object amount}) => 'Maradék: ${amount}';
case 'goal.complete': return 'TELJES';
@@ -450,9 +453,12 @@ extension on TranslationsHu {
case 'settings.profile.nip05': return 'Nostr cím';
case 'settings.profile.lud16': return 'Villám cím';
case 'settings.profile.error.logged_out': return 'Kijelentkezve nem lehet profilt szerkeszteni';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Pénztárca lekapcsolása';
+ case 'settings.wallet.connect_1tap': return '1-Tap csatlakozás';
+ case 'settings.wallet.paste': return 'URL beillesztése';
case 'settings.wallet.error.logged_out': return 'Kijelentkezve nem lehet csatlakozni a pénztárcához';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nem találtak pénztárca-auth eseményt';
case 'login.username': return 'Felhasználónév';
case 'login.amber': return 'Bejelentkezés Amber segítségével';
case 'login.key': return 'Bejelentkezés kulccsal';
diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart
index 4a83768..a34b907 100644
--- a/lib/i18n/strings_it.g.dart
+++ b/lib/i18n/strings_it.g.dart
@@ -54,7 +54,7 @@ class TranslationsIt extends Translations {
/// Numero di spettatori del flusso
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
one: '1 spettatore',
- other: '${n} spettatori',
+ other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
);
@override late final _TranslationsStreamIt stream = _TranslationsStreamIt._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletIt extends TranslationsSettingsWalletEn {
final TranslationsIt _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Portafoglio Connect (NWC nwc://)';
+ @override String get connect_wallet => 'Portafoglio Connect (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Disconnettere il portafoglio';
+ @override String get connect_1tap => 'Connessione a 1 rubinetto';
+ @override String get paste => 'Incolla URL';
@override late final _TranslationsSettingsWalletErrorIt error = _TranslationsSettingsWalletErrorIt._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorIt extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Impossibile connettere il portafoglio quando si è disconnessi';
+ @override String get nwc_auth_event_not_found => 'Nessun evento wallet auth trovato';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsIt {
case 'anon': return 'Anonimo';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
one: '1 spettatore',
- other: '${n} spettatori',
+ other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
);
case 'stream.status.live': return 'IN DIRETTA';
case 'stream.status.ended': return 'FINE';
@@ -448,9 +451,12 @@ extension on TranslationsIt {
case 'settings.profile.nip05': return 'Indirizzo';
case 'settings.profile.lud16': return 'Indirizzo del fulmine';
case 'settings.profile.error.logged_out': return 'Impossibile modificare il profilo quando si è disconnessi';
- case 'settings.wallet.connect_wallet': return 'Portafoglio Connect (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Portafoglio Connect (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Disconnettere il portafoglio';
+ case 'settings.wallet.connect_1tap': return 'Connessione a 1 rubinetto';
+ case 'settings.wallet.paste': return 'Incolla URL';
case 'settings.wallet.error.logged_out': return 'Impossibile connettere il portafoglio quando si è disconnessi';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nessun evento wallet auth trovato';
case 'login.username': return 'Nome utente';
case 'login.amber': return 'Accesso con Amber';
case 'login.key': return 'Accesso con chiave';
diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart
index 0185111..f833ef2 100644
--- a/lib/i18n/strings_ja.g.dart
+++ b/lib/i18n/strings_ja.g.dart
@@ -40,7 +40,7 @@ class TranslationsJa extends Translations {
// Translations
/// アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
- @override String get upload_avatar => 'アバターのアップロード';
+ @override String get upload_avatar => '画像アップロード';
/// ザップによるリストの上のストリーマーに向かう
@override String get most_zapped_streamers => '最もザッピングされたストリーマー';
@@ -54,7 +54,7 @@ class TranslationsJa extends Translations {
/// ストリームの視聴者数
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
one: '1 視聴者',
- other: '${n} 人が視聴中',
+ other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
);
@override late final _TranslationsStreamJa stream = _TranslationsStreamJa._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletJa extends TranslationsSettingsWalletEn {
final TranslationsJa _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'コネクトウォレット (NWC nwc://)';
+ @override String get connect_wallet => 'コネクトウォレット(NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'ウォレットの切断';
+ @override String get connect_1tap => '1タップ接続';
+ @override String get paste => 'URLを貼り付ける';
@override late final _TranslationsSettingsWalletErrorJa error = _TranslationsSettingsWalletErrorJa._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorJa extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'ログアウト時にウォレットに接続できない';
+ @override String get nwc_auth_event_not_found => 'ウォレットの認証イベントが見つかりません';
}
/// Flat map(s) containing all translations.
@@ -372,13 +375,13 @@ class _TranslationsSettingsWalletErrorJa extends TranslationsSettingsWalletError
extension on TranslationsJa {
dynamic _flatMapFunction(String path) {
switch (path) {
- case 'upload_avatar': return 'アバターのアップロード';
+ case 'upload_avatar': return '画像アップロード';
case 'most_zapped_streamers': return '最もザッピングされたストリーマー';
case 'no_user_found': return 'ユーザーが見つかりません';
case 'anon': return '匿名';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
one: '1 視聴者',
- other: '${n} 人が視聴中',
+ other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
);
case 'stream.status.live': return 'ライブ';
case 'stream.status.ended': return '終了';
@@ -448,9 +451,12 @@ extension on TranslationsJa {
case 'settings.profile.nip05': return '住所';
case 'settings.profile.lud16': return 'ライトニングアドレス';
case 'settings.profile.error.logged_out': return 'ログアウトするとプロフィールが編集できない';
- case 'settings.wallet.connect_wallet': return 'コネクトウォレット (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'コネクトウォレット(NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'ウォレットの切断';
+ case 'settings.wallet.connect_1tap': return '1タップ接続';
+ case 'settings.wallet.paste': return 'URLを貼り付ける';
case 'settings.wallet.error.logged_out': return 'ログアウト時にウォレットに接続できない';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'ウォレットの認証イベントが見つかりません';
case 'login.username': return 'ユーザー名';
case 'login.amber': return '琥珀でログイン';
case 'login.key': return 'キーでログイン';
diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart
index 9c38a30..11a8115 100644
--- a/lib/i18n/strings_ko.g.dart
+++ b/lib/i18n/strings_ko.g.dart
@@ -54,7 +54,7 @@ class TranslationsKo extends Translations {
/// 스트림 시청자 수
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
one: '시청자 1명',
- other: '${n} 시청자',
+ other: '${NumberFormat.decimalPattern('ko').format(n)} 시청자',
);
@override late final _TranslationsStreamKo stream = _TranslationsStreamKo._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletKo extends TranslationsSettingsWalletEn {
final TranslationsKo _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => '지갑 연결(NWC nwc://)';
+ @override String get connect_wallet => '지갑 연결(NWC nostr+walletconnect://)';
@override String get disconnect_wallet => '지갑 연결 해제';
+ @override String get connect_1tap => '1-탭 연결';
+ @override String get paste => 'URL 붙여넣기';
@override late final _TranslationsSettingsWalletErrorKo error = _TranslationsSettingsWalletErrorKo._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorKo extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => '로그아웃 시 지갑 연결 불가';
+ @override String get nwc_auth_event_not_found => '지갑 인증 이벤트를 찾을 수 없습니다.';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsKo {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
one: '시청자 1명',
- other: '${n} 시청자',
+ other: '${NumberFormat.decimalPattern('ko').format(n)} 시청자',
);
case 'stream.status.live': return '라이브';
case 'stream.status.ended': return '종료';
@@ -448,9 +451,12 @@ extension on TranslationsKo {
case 'settings.profile.nip05': return '노스트르 주소';
case 'settings.profile.lud16': return '라이트닝 주소';
case 'settings.profile.error.logged_out': return '로그아웃 시 프로필 수정 불가';
- case 'settings.wallet.connect_wallet': return '지갑 연결(NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return '지갑 연결(NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return '지갑 연결 해제';
+ case 'settings.wallet.connect_1tap': return '1-탭 연결';
+ case 'settings.wallet.paste': return 'URL 붙여넣기';
case 'settings.wallet.error.logged_out': return '로그아웃 시 지갑 연결 불가';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return '지갑 인증 이벤트를 찾을 수 없습니다.';
case 'login.username': return '사용자 이름';
case 'login.amber': return 'Amber로 로그인';
case 'login.key': return '키로 로그인';
diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart
index 38affa9..4adabfb 100644
--- a/lib/i18n/strings_nl.g.dart
+++ b/lib/i18n/strings_nl.g.dart
@@ -54,7 +54,7 @@ class TranslationsNl extends Translations {
/// Aantal kijkers van de stream
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
one: '1 kijker',
- other: '${n} kijkers',
+ other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
);
@override late final _TranslationsStreamNl stream = _TranslationsStreamNl._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletNl extends TranslationsSettingsWalletEn {
final TranslationsNl _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Portemonnee verbinden (NWC nwc://)';
+ @override String get connect_wallet => 'Portemonnee verbinden (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Portefeuille loskoppelen';
+ @override String get connect_1tap => '1-Tap Aansluiting';
+ @override String get paste => 'URL plakken';
@override late final _TranslationsSettingsWalletErrorNl error = _TranslationsSettingsWalletErrorNl._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorNl extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Kan geen verbinding maken met portemonnee als ik ben uitgelogd';
+ @override String get nwc_auth_event_not_found => 'Geen portemonnee-auth-gebeurtenis gevonden';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsNl {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
one: '1 kijker',
- other: '${n} kijkers',
+ other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'GESLOTEN';
@@ -448,9 +451,12 @@ extension on TranslationsNl {
case 'settings.profile.nip05': return 'Nostr Adres';
case 'settings.profile.lud16': return 'Bliksemadres';
case 'settings.profile.error.logged_out': return 'Kan profiel niet bewerken als ik ben uitgelogd';
- case 'settings.wallet.connect_wallet': return 'Portemonnee verbinden (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Portemonnee verbinden (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Portefeuille loskoppelen';
+ case 'settings.wallet.connect_1tap': return '1-Tap Aansluiting';
+ case 'settings.wallet.paste': return 'URL plakken';
case 'settings.wallet.error.logged_out': return 'Kan geen verbinding maken met portemonnee als ik ben uitgelogd';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Geen portemonnee-auth-gebeurtenis gevonden';
case 'login.username': return 'Gebruikersnaam';
case 'login.amber': return 'Inloggen met Amber';
case 'login.key': return 'Inloggen met sleutel';
diff --git a/lib/i18n/strings_no.g.dart b/lib/i18n/strings_no.g.dart
deleted file mode 100644
index 7076fe6..0000000
--- a/lib/i18n/strings_no.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsNo extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsNo({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.no,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsNo _root = this; // ignore: unused_field
-
- @override
- TranslationsNo $copyWith({TranslationMetadata? meta}) => TranslationsNo(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('no'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamNo stream = _TranslationsStreamNo._(_root);
- @override late final _TranslationsGoalNo goal = _TranslationsGoalNo._(_root);
- @override late final _TranslationsButtonNo button = _TranslationsButtonNo._(_root);
- @override late final _TranslationsEmbedNo embed = _TranslationsEmbedNo._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListNo stream_list = _TranslationsStreamListNo._(_root);
-
- @override late final _TranslationsZapNo zap = _TranslationsZapNo._(_root);
- @override late final _TranslationsProfileNo profile = _TranslationsProfileNo._(_root);
- @override late final _TranslationsSettingsNo settings = _TranslationsSettingsNo._(_root);
- @override late final _TranslationsLoginNo login = _TranslationsLoginNo._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamNo extends TranslationsStreamEn {
- _TranslationsStreamNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusNo status = _TranslationsStreamStatusNo._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatNo chat = _TranslationsStreamChatNo._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalNo extends TranslationsGoalEn {
- _TranslationsGoalNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonNo extends TranslationsButtonEn {
- _TranslationsButtonNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedNo extends TranslationsEmbedEn {
- _TranslationsEmbedNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListNo extends TranslationsStreamListEn {
- _TranslationsStreamListNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapNo extends TranslationsZapEn {
- _TranslationsZapNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorNo error = _TranslationsZapErrorNo._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileNo extends TranslationsProfileEn {
- _TranslationsProfileNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsNo extends TranslationsSettingsEn {
- _TranslationsSettingsNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileNo profile = _TranslationsSettingsProfileNo._(_root);
- @override late final _TranslationsSettingsWalletNo wallet = _TranslationsSettingsWalletNo._(_root);
-}
-
-// Path: login
-class _TranslationsLoginNo extends TranslationsLoginEn {
- _TranslationsLoginNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorNo error = _TranslationsLoginErrorNo._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusNo extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatNo extends TranslationsStreamChatEn {
- _TranslationsStreamChatNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteNo write = _TranslationsStreamChatWriteNo._(_root);
- @override late final _TranslationsStreamChatBadgeNo badge = _TranslationsStreamChatBadgeNo._(_root);
- @override late final _TranslationsStreamChatRaidNo raid = _TranslationsStreamChatRaidNo._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorNo extends TranslationsZapErrorEn {
- _TranslationsZapErrorNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileNo extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorNo error = _TranslationsSettingsProfileErrorNo._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletNo extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorNo error = _TranslationsSettingsWalletErrorNo._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorNo extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteNo extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeNo extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidNo extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorNo extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorNo extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorNo._(TranslationsNo root) : this._root = root, super.internal(root);
-
- final TranslationsNo _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsNo {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('no'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart
index 8db45e2..c829d87 100644
--- a/lib/i18n/strings_pl.g.dart
+++ b/lib/i18n/strings_pl.g.dart
@@ -54,7 +54,7 @@ class TranslationsPl extends Translations {
/// Liczba widzów strumienia
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
one: '1 przeglądarka',
- other: '${n} widzowie',
+ other: '{n:decimalPattern} widzów',
);
@override late final _TranslationsStreamPl stream = _TranslationsStreamPl._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletPl extends TranslationsSettingsWalletEn {
final TranslationsPl _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Odłącz portfel';
+ @override String get connect_1tap => 'Połączenie 1-wtykowe';
+ @override String get paste => 'Wklej adres URL';
@override late final _TranslationsSettingsWalletErrorPl error = _TranslationsSettingsWalletErrorPl._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorPl extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Nie można połączyć portfela po wylogowaniu';
+ @override String get nwc_auth_event_not_found => 'Nie znaleziono zdarzenia autoryzacji portfela';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsPl {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
one: '1 przeglądarka',
- other: '${n} widzowie',
+ other: '{n:decimalPattern} widzów',
);
case 'stream.status.live': return 'NA ŻYWO';
case 'stream.status.ended': return 'ZAKOŃCZONY';
@@ -448,9 +451,12 @@ extension on TranslationsPl {
case 'settings.profile.nip05': return 'Adres Nostr';
case 'settings.profile.lud16': return 'Adres błyskawicy';
case 'settings.profile.error.logged_out': return 'Nie można edytować profilu po wylogowaniu';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Odłącz portfel';
+ case 'settings.wallet.connect_1tap': return 'Połączenie 1-wtykowe';
+ case 'settings.wallet.paste': return 'Wklej adres URL';
case 'settings.wallet.error.logged_out': return 'Nie można połączyć portfela po wylogowaniu';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nie znaleziono zdarzenia autoryzacji portfela';
case 'login.username': return 'Nazwa użytkownika';
case 'login.amber': return 'Zaloguj się za pomocą Amber';
case 'login.key': return 'Logowanie za pomocą klucza';
diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart
index bbc1c0c..c4bf786 100644
--- a/lib/i18n/strings_pt.g.dart
+++ b/lib/i18n/strings_pt.g.dart
@@ -54,7 +54,7 @@ class TranslationsPt extends Translations {
/// Número de espectadores da transmissão
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
one: '1 visualizador',
- other: '${n} espectadores',
+ other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
);
@override late final _TranslationsStreamPt stream = _TranslationsStreamPt._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletPt extends TranslationsSettingsWalletEn {
final TranslationsPt _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Conectar carteira (NWC nwc://)';
+ @override String get connect_wallet => 'Carteira Connect (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Desconectar carteira';
+ @override String get connect_1tap => 'Conexão de 1 torneira';
+ @override String get paste => 'Colar URL';
@override late final _TranslationsSettingsWalletErrorPt error = _TranslationsSettingsWalletErrorPt._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorPt extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Não consigo conectar a carteira quando estou desconectado';
+ @override String get nwc_auth_event_not_found => 'Nenhum evento de autenticação de carteira encontrado';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsPt {
case 'anon': return 'Anônimo';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
one: '1 visualizador',
- other: '${n} espectadores',
+ other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
);
case 'stream.status.live': return 'AO VIVO';
case 'stream.status.ended': return 'FINALIZADO';
@@ -448,9 +451,12 @@ extension on TranslationsPt {
case 'settings.profile.nip05': return 'Endereço Nostr';
case 'settings.profile.lud16': return 'Endereço para relâmpagos';
case 'settings.profile.error.logged_out': return 'Não é possível editar o perfil quando se está desconectado';
- case 'settings.wallet.connect_wallet': return 'Conectar carteira (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Carteira Connect (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Desconectar carteira';
+ case 'settings.wallet.connect_1tap': return 'Conexão de 1 torneira';
+ case 'settings.wallet.paste': return 'Colar URL';
case 'settings.wallet.error.logged_out': return 'Não consigo conectar a carteira quando estou desconectado';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nenhum evento de autenticação de carteira encontrado';
case 'login.username': return 'Nome de usuário';
case 'login.amber': return 'Faça login com o Amber';
case 'login.key': return 'Login com chave';
diff --git a/lib/i18n/strings_ro.g.dart b/lib/i18n/strings_ro.g.dart
index b3cba8f..4673894 100644
--- a/lib/i18n/strings_ro.g.dart
+++ b/lib/i18n/strings_ro.g.dart
@@ -54,7 +54,7 @@ class TranslationsRo extends Translations {
/// Numărul de telespectatori ai fluxului
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
one: '1 vizualizator',
- other: '${n} telespectatori',
+ other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
);
@override late final _TranslationsStreamRo stream = _TranslationsStreamRo._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletRo extends TranslationsSettingsWalletEn {
final TranslationsRo _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Conectați portofelul (NWC nwc://)';
+ @override String get connect_wallet => 'Conectați portofelul (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Deconectați portofelul';
+ @override String get connect_1tap => 'Conexiune 1-Tap';
+ @override String get paste => 'Lipiți URL';
@override late final _TranslationsSettingsWalletErrorRo error = _TranslationsSettingsWalletErrorRo._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorRo extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Nu puteți conecta portofelul atunci când sunteți deconectat';
+ @override String get nwc_auth_event_not_found => 'Nu a fost găsit niciun eveniment de autorizare a portofelului';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsRo {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
one: '1 vizualizator',
- other: '${n} telespectatori',
+ other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
);
case 'stream.status.live': return 'ÎN DIRECT';
case 'stream.status.ended': return 'TERMINAT';
@@ -448,9 +451,12 @@ extension on TranslationsRo {
case 'settings.profile.nip05': return 'Adresa Nostr';
case 'settings.profile.lud16': return 'Adresa fulgerului';
case 'settings.profile.error.logged_out': return 'Nu pot edita profilul când sunt deconectat';
- case 'settings.wallet.connect_wallet': return 'Conectați portofelul (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Conectați portofelul (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Deconectați portofelul';
+ case 'settings.wallet.connect_1tap': return 'Conexiune 1-Tap';
+ case 'settings.wallet.paste': return 'Lipiți URL';
case 'settings.wallet.error.logged_out': return 'Nu puteți conecta portofelul atunci când sunteți deconectat';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Nu a fost găsit niciun eveniment de autorizare a portofelului';
case 'login.username': return 'Nume utilizator';
case 'login.amber': return 'Conectați-vă cu Amber';
case 'login.key': return 'Autentificare cu cheie';
diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart
index 88df6bc..976aa26 100644
--- a/lib/i18n/strings_ru.g.dart
+++ b/lib/i18n/strings_ru.g.dart
@@ -54,7 +54,7 @@ class TranslationsRu extends Translations {
/// Количество зрителей потока
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
one: '1 зритель',
- other: '${n} зрителей',
+ other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
);
@override late final _TranslationsStreamRu stream = _TranslationsStreamRu._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletRu extends TranslationsSettingsWalletEn {
final TranslationsRu _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Подключите кошелек (NWC nwc://)';
+ @override String get connect_wallet => 'Кошелек Connect (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Отключить кошелек';
+ @override String get connect_1tap => '1-кратное соединение';
+ @override String get paste => 'Вставить URL';
@override late final _TranslationsSettingsWalletErrorRu error = _TranslationsSettingsWalletErrorRu._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorRu extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Невозможно подключить кошелек при выходе из системы';
+ @override String get nwc_auth_event_not_found => 'Событие аутентификации кошелька не найдено';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsRu {
case 'anon': return 'Аноним';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
one: '1 зритель',
- other: '${n} зрителей',
+ other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'КОНЕЦ';
@@ -448,9 +451,12 @@ extension on TranslationsRu {
case 'settings.profile.nip05': return 'Адрес Ностр';
case 'settings.profile.lud16': return 'Адрес молнии';
case 'settings.profile.error.logged_out': return 'Невозможно редактировать профиль при выходе из системы';
- case 'settings.wallet.connect_wallet': return 'Подключите кошелек (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Кошелек Connect (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Отключить кошелек';
+ case 'settings.wallet.connect_1tap': return '1-кратное соединение';
+ case 'settings.wallet.paste': return 'Вставить URL';
case 'settings.wallet.error.logged_out': return 'Невозможно подключить кошелек при выходе из системы';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Событие аутентификации кошелька не найдено';
case 'login.username': return 'Имя пользователя';
case 'login.amber': return 'Войти с помощью Amber';
case 'login.key': return 'Вход в систему с помощью ключа';
diff --git a/lib/i18n/strings_sr.g.dart b/lib/i18n/strings_sr.g.dart
deleted file mode 100644
index 4c38dd0..0000000
--- a/lib/i18n/strings_sr.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsSr extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsSr({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.sr,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsSr _root = this; // ignore: unused_field
-
- @override
- TranslationsSr $copyWith({TranslationMetadata? meta}) => TranslationsSr(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sr'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamSr stream = _TranslationsStreamSr._(_root);
- @override late final _TranslationsGoalSr goal = _TranslationsGoalSr._(_root);
- @override late final _TranslationsButtonSr button = _TranslationsButtonSr._(_root);
- @override late final _TranslationsEmbedSr embed = _TranslationsEmbedSr._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListSr stream_list = _TranslationsStreamListSr._(_root);
-
- @override late final _TranslationsZapSr zap = _TranslationsZapSr._(_root);
- @override late final _TranslationsProfileSr profile = _TranslationsProfileSr._(_root);
- @override late final _TranslationsSettingsSr settings = _TranslationsSettingsSr._(_root);
- @override late final _TranslationsLoginSr login = _TranslationsLoginSr._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamSr extends TranslationsStreamEn {
- _TranslationsStreamSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusSr status = _TranslationsStreamStatusSr._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatSr chat = _TranslationsStreamChatSr._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalSr extends TranslationsGoalEn {
- _TranslationsGoalSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonSr extends TranslationsButtonEn {
- _TranslationsButtonSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedSr extends TranslationsEmbedEn {
- _TranslationsEmbedSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListSr extends TranslationsStreamListEn {
- _TranslationsStreamListSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapSr extends TranslationsZapEn {
- _TranslationsZapSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorSr error = _TranslationsZapErrorSr._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileSr extends TranslationsProfileEn {
- _TranslationsProfileSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsSr extends TranslationsSettingsEn {
- _TranslationsSettingsSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileSr profile = _TranslationsSettingsProfileSr._(_root);
- @override late final _TranslationsSettingsWalletSr wallet = _TranslationsSettingsWalletSr._(_root);
-}
-
-// Path: login
-class _TranslationsLoginSr extends TranslationsLoginEn {
- _TranslationsLoginSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorSr error = _TranslationsLoginErrorSr._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusSr extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatSr extends TranslationsStreamChatEn {
- _TranslationsStreamChatSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteSr write = _TranslationsStreamChatWriteSr._(_root);
- @override late final _TranslationsStreamChatBadgeSr badge = _TranslationsStreamChatBadgeSr._(_root);
- @override late final _TranslationsStreamChatRaidSr raid = _TranslationsStreamChatRaidSr._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorSr extends TranslationsZapErrorEn {
- _TranslationsZapErrorSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileSr extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorSr error = _TranslationsSettingsProfileErrorSr._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletSr extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorSr error = _TranslationsSettingsWalletErrorSr._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorSr extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteSr extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeSr extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidSr extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorSr extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorSr extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorSr._(TranslationsSr root) : this._root = root, super.internal(root);
-
- final TranslationsSr _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsSr {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sr'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart
index fda495a..98d349e 100644
--- a/lib/i18n/strings_sv.g.dart
+++ b/lib/i18n/strings_sv.g.dart
@@ -54,7 +54,7 @@ class TranslationsSv extends Translations {
/// Antal tittare på streamingen
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
one: '1 tittare',
- other: '${n} tittare',
+ other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
);
@override late final _TranslationsStreamSv stream = _TranslationsStreamSv._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletSv extends TranslationsSettingsWalletEn {
final TranslationsSv _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Anslut plånbok (NWC nwc://)';
+ @override String get connect_wallet => 'Connect plånbok (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Koppla bort plånboken';
+ @override String get connect_1tap => '1-Tap-anslutning';
+ @override String get paste => 'Klistra in URL';
@override late final _TranslationsSettingsWalletErrorSv error = _TranslationsSettingsWalletErrorSv._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorSv extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Kan inte ansluta plånbok när du är inloggad';
+ @override String get nwc_auth_event_not_found => 'Inget autentiseringshändelse för plånbok hittades';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsSv {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
one: '1 tittare',
- other: '${n} tittare',
+ other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
);
case 'stream.status.live': return 'LIVE';
case 'stream.status.ended': return 'AVSLUTAD';
@@ -448,9 +451,12 @@ extension on TranslationsSv {
case 'settings.profile.nip05': return 'Nostr Adress';
case 'settings.profile.lud16': return 'Adress för blixtnedslag';
case 'settings.profile.error.logged_out': return 'Kan inte redigera profil när jag är utloggad';
- case 'settings.wallet.connect_wallet': return 'Anslut plånbok (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect plånbok (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Koppla bort plånboken';
+ case 'settings.wallet.connect_1tap': return '1-Tap-anslutning';
+ case 'settings.wallet.paste': return 'Klistra in URL';
case 'settings.wallet.error.logged_out': return 'Kan inte ansluta plånbok när du är inloggad';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Inget autentiseringshändelse för plånbok hittades';
case 'login.username': return 'Användarnamn';
case 'login.amber': return 'Logga in med Amber';
case 'login.key': return 'Logga in med nyckel';
diff --git a/lib/i18n/strings_tr.g.dart b/lib/i18n/strings_tr.g.dart
index f7aad58..cfd85de 100644
--- a/lib/i18n/strings_tr.g.dart
+++ b/lib/i18n/strings_tr.g.dart
@@ -54,7 +54,7 @@ class TranslationsTr extends Translations {
/// Akışı izleyenlerin sayısı
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
one: '1 izleyici',
- other: '${n} izleyiciler',
+ other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
);
@override late final _TranslationsStreamTr stream = _TranslationsStreamTr._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletTr extends TranslationsSettingsWalletEn {
final TranslationsTr _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Cüzdanı Bağlayın (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Cüzdan (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Cüzdan Bağlantısını Kes';
+ @override String get connect_1tap => '1-Tap Bağlantı';
+ @override String get paste => 'URL Yapıştır';
@override late final _TranslationsSettingsWalletErrorTr error = _TranslationsSettingsWalletErrorTr._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorTr extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Oturumu kapattığımda cüzdana bağlanamıyorum';
+ @override String get nwc_auth_event_not_found => 'Cüzdan yetkilendirme olayı bulunamadı';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsTr {
case 'anon': return 'Anon';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
one: '1 izleyici',
- other: '${n} izleyiciler',
+ other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
);
case 'stream.status.live': return 'CANLI';
case 'stream.status.ended': return 'SONLANDI';
@@ -448,9 +451,12 @@ extension on TranslationsTr {
case 'settings.profile.nip05': return 'Nostr Adres';
case 'settings.profile.lud16': return 'Yıldırım Adres';
case 'settings.profile.error.logged_out': return 'Çıkış yapıldığında profil düzenlenemiyor';
- case 'settings.wallet.connect_wallet': return 'Cüzdanı Bağlayın (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Cüzdan (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Cüzdan Bağlantısını Kes';
+ case 'settings.wallet.connect_1tap': return '1-Tap Bağlantı';
+ case 'settings.wallet.paste': return 'URL Yapıştır';
case 'settings.wallet.error.logged_out': return 'Oturumu kapattığımda cüzdana bağlanamıyorum';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Cüzdan yetkilendirme olayı bulunamadı';
case 'login.username': return 'Kullanıcı Adı';
case 'login.amber': return 'Amber ile Giriş Yapın';
case 'login.key': return 'Anahtar ile Giriş Yapın';
diff --git a/lib/i18n/strings_uk.g.dart b/lib/i18n/strings_uk.g.dart
index c92703a..596d79d 100644
--- a/lib/i18n/strings_uk.g.dart
+++ b/lib/i18n/strings_uk.g.dart
@@ -54,7 +54,7 @@ class TranslationsUk extends Translations {
/// Кількість глядачів стріму
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
one: '1 глядач',
- other: '${n} глядачі',
+ other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
);
@override late final _TranslationsStreamUk stream = _TranslationsStreamUk._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletUk extends TranslationsSettingsWalletEn {
final TranslationsUk _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => 'Підключити гаманець (NWC nwc://)';
+ @override String get connect_wallet => 'Підключити гаманець (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => 'Відключити гаманець';
+ @override String get connect_1tap => 'Підключення в 1 кран';
+ @override String get paste => 'Вставити URL-адресу';
@override late final _TranslationsSettingsWalletErrorUk error = _TranslationsSettingsWalletErrorUk._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorUk extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => 'Не вдається підключити гаманець, коли ви вийшли з системи';
+ @override String get nwc_auth_event_not_found => 'Не знайдено жодної події авторизації гаманця';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsUk {
case 'anon': return 'Анонім.';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
one: '1 глядач',
- other: '${n} глядачі',
+ other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
);
case 'stream.status.live': return 'НАЖИВО';
case 'stream.status.ended': return 'ЗАКІНЧЕНО';
@@ -448,9 +451,12 @@ extension on TranslationsUk {
case 'settings.profile.nip05': return 'Nostr Адреса';
case 'settings.profile.lud16': return 'Блискавична адреса';
case 'settings.profile.error.logged_out': return 'Неможливо редагувати профіль, коли ви вийшли з системи';
- case 'settings.wallet.connect_wallet': return 'Підключити гаманець (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Підключити гаманець (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return 'Відключити гаманець';
+ case 'settings.wallet.connect_1tap': return 'Підключення в 1 кран';
+ case 'settings.wallet.paste': return 'Вставити URL-адресу';
case 'settings.wallet.error.logged_out': return 'Не вдається підключити гаманець, коли ви вийшли з системи';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return 'Не знайдено жодної події авторизації гаманця';
case 'login.username': return 'Ім\'я користувача';
case 'login.amber': return 'Увійдіть за допомогою Amber';
case 'login.key': return 'Увійдіть за допомогою ключа';
diff --git a/lib/i18n/strings_vi.g.dart b/lib/i18n/strings_vi.g.dart
deleted file mode 100644
index 735852b..0000000
--- a/lib/i18n/strings_vi.g.dart
+++ /dev/null
@@ -1,463 +0,0 @@
-///
-/// Generated file. Do not edit.
-///
-// coverage:ignore-file
-// ignore_for_file: type=lint, unused_import
-
-import 'package:flutter/widgets.dart';
-import 'package:intl/intl.dart';
-import 'package:slang/generated.dart';
-import 'strings.g.dart';
-
-// Path:
-class TranslationsVi extends Translations {
- /// You can call this constructor and build your own translation instance of this locale.
- /// Constructing via the enum [AppLocale.build] is preferred.
- TranslationsVi({Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata? meta})
- : assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
- $meta = meta ?? TranslationMetadata(
- locale: AppLocale.vi,
- overrides: overrides ?? {},
- cardinalResolver: cardinalResolver,
- ordinalResolver: ordinalResolver,
- ),
- super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
- super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
- $meta.setFlatMapFunction(_flatMapFunction);
- }
-
- /// Metadata for the translations of .
- @override final TranslationMetadata $meta;
-
- /// Access flat map
- @override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
-
- late final TranslationsVi _root = this; // ignore: unused_field
-
- @override
- TranslationsVi $copyWith({TranslationMetadata? meta}) => TranslationsVi(meta: meta ?? this.$meta);
-
- // Translations
-
- /// Text prompting user to hit avatar placeholder to begin upload
- @override String get upload_avatar => 'Upload Avatar';
-
- /// Heading over listed top streamers by zaps
- @override String get most_zapped_streamers => 'Most Zapped Streamers';
-
- /// No user found when searching
- @override String get no_user_found => 'No user found';
-
- /// An anonymous user
- @override String get anon => 'Anon';
-
- /// Number of viewers of the stream
- @override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('vi'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
-
- @override late final _TranslationsStreamVi stream = _TranslationsStreamVi._(_root);
- @override late final _TranslationsGoalVi goal = _TranslationsGoalVi._(_root);
- @override late final _TranslationsButtonVi button = _TranslationsButtonVi._(_root);
- @override late final _TranslationsEmbedVi embed = _TranslationsEmbedVi._(_root);
-
- /// Headings on stream lists by stream type live/ended/planned etc.
- @override late final _TranslationsStreamListVi stream_list = _TranslationsStreamListVi._(_root);
-
- @override late final _TranslationsZapVi zap = _TranslationsZapVi._(_root);
- @override late final _TranslationsProfileVi profile = _TranslationsProfileVi._(_root);
- @override late final _TranslationsSettingsVi settings = _TranslationsSettingsVi._(_root);
- @override late final _TranslationsLoginVi login = _TranslationsLoginVi._(_root);
-}
-
-// Path: stream
-class _TranslationsStreamVi extends TranslationsStreamEn {
- _TranslationsStreamVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override late final _TranslationsStreamStatusVi status = _TranslationsStreamStatusVi._(_root);
- @override String started({required Object timestamp}) => 'Started ${timestamp}';
- @override late final _TranslationsStreamChatVi chat = _TranslationsStreamChatVi._(_root);
-}
-
-// Path: goal
-class _TranslationsGoalVi extends TranslationsGoalEn {
- _TranslationsGoalVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object amount}) => 'Goal: ${amount}';
- @override String remaining({required Object amount}) => 'Remaining: ${amount}';
- @override String get complete => 'COMPLETE';
-}
-
-// Path: button
-class _TranslationsButtonVi extends TranslationsButtonEn {
- _TranslationsButtonVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
-
- /// Button text for the login button
- @override String get login => 'Login';
-
- @override String get logout => 'Logout';
- @override String get edit_profile => 'Edit Profile';
-
- /// Button text for the follow button
- @override String get follow => 'Follow';
-
- /// Button text for the unfollow button
- @override String get unfollow => 'Unfollow';
-
- @override String get mute => 'Mute';
- @override String get unmute => 'Unmute';
- @override String get share => 'Share';
- @override String get save => 'Save';
- @override String get connect => 'Connect';
- @override String get settings => 'Settings';
-}
-
-// Path: embed
-class _TranslationsEmbedVi extends TranslationsEmbedEn {
- _TranslationsEmbedVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String article_by({required Object name}) => 'Article by ${name}';
- @override String note_by({required Object name}) => 'Note by ${name}';
- @override String live_stream_by({required Object name}) => 'Live stream by ${name}';
-}
-
-// Path: stream_list
-class _TranslationsStreamListVi extends TranslationsStreamListEn {
- _TranslationsStreamListVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get following => 'Following';
- @override String get live => 'Live';
- @override String get planned => 'Planned';
- @override String get ended => 'Ended';
-}
-
-// Path: zap
-class _TranslationsZapVi extends TranslationsZapEn {
- _TranslationsZapVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String title({required Object name}) => 'Zap ${name}';
- @override String get custom_amount => 'Custom Amount';
- @override String get confirm => 'Confirm';
- @override String get comment => 'Comment';
- @override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
- @override String get button_zap => 'Zap';
- @override String get button_open_wallet => 'Open in Wallet';
- @override String get button_connect_wallet => 'Connect Wallet';
- @override String get copy => 'Copied to clipboard';
- @override late final _TranslationsZapErrorVi error = _TranslationsZapErrorVi._(_root);
-}
-
-// Path: profile
-class _TranslationsProfileVi extends TranslationsProfileEn {
- _TranslationsProfileVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get past_streams => 'Past Streams';
-}
-
-// Path: settings
-class _TranslationsSettingsVi extends TranslationsSettingsEn {
- _TranslationsSettingsVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get button_profile => 'Edit Profile';
- @override String get button_wallet => 'Wallet Settings';
- @override late final _TranslationsSettingsProfileVi profile = _TranslationsSettingsProfileVi._(_root);
- @override late final _TranslationsSettingsWalletVi wallet = _TranslationsSettingsWalletVi._(_root);
-}
-
-// Path: login
-class _TranslationsLoginVi extends TranslationsLoginEn {
- _TranslationsLoginVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get username => 'Username';
- @override String get amber => 'Login with Amber';
- @override String get key => 'Login with Key';
- @override String get create => 'Create Account';
- @override late final _TranslationsLoginErrorVi error = _TranslationsLoginErrorVi._(_root);
-}
-
-// Path: stream.status
-class _TranslationsStreamStatusVi extends TranslationsStreamStatusEn {
- _TranslationsStreamStatusVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get live => 'LIVE';
- @override String get ended => 'ENDED';
- @override String get planned => 'PLANNED';
-}
-
-// Path: stream.chat
-class _TranslationsStreamChatVi extends TranslationsStreamChatEn {
- _TranslationsStreamChatVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get disabled => 'CHAT DISABLED';
- @override String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
-
- /// Chat message showing timeout events
- @override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
-
- /// Stream ended footer at bottom of chat
- @override String get ended => 'STREAM ENDED';
-
- /// Chat message showing stream zaps
- @override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
-
- @override late final _TranslationsStreamChatWriteVi write = _TranslationsStreamChatWriteVi._(_root);
- @override late final _TranslationsStreamChatBadgeVi badge = _TranslationsStreamChatBadgeVi._(_root);
- @override late final _TranslationsStreamChatRaidVi raid = _TranslationsStreamChatRaidVi._(_root);
-}
-
-// Path: zap.error
-class _TranslationsZapErrorVi extends TranslationsZapErrorEn {
- _TranslationsZapErrorVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_custom_amount => 'Invalid custom amount';
- @override String get no_wallet => 'No lightning wallet installed';
- @override String get no_lud16 => 'No lightning address found';
-}
-
-// Path: settings.profile
-class _TranslationsSettingsProfileVi extends TranslationsSettingsProfileEn {
- _TranslationsSettingsProfileVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get display_name => 'Display Name';
- @override String get about => 'About';
- @override String get nip05 => 'Nostr Address';
- @override String get lud16 => 'Lightning Address';
- @override late final _TranslationsSettingsProfileErrorVi error = _TranslationsSettingsProfileErrorVi._(_root);
-}
-
-// Path: settings.wallet
-class _TranslationsSettingsWalletVi extends TranslationsSettingsWalletEn {
- _TranslationsSettingsWalletVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get connect_wallet => 'Connect Wallet (NWC nwc://)';
- @override String get disconnect_wallet => 'Disconnect Wallet';
- @override late final _TranslationsSettingsWalletErrorVi error = _TranslationsSettingsWalletErrorVi._(_root);
-}
-
-// Path: login.error
-class _TranslationsLoginErrorVi extends TranslationsLoginErrorEn {
- _TranslationsLoginErrorVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get invalid_key => 'Invalid key';
-}
-
-// Path: stream.chat.write
-class _TranslationsStreamChatWriteVi extends TranslationsStreamChatWriteEn {
- _TranslationsStreamChatWriteVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
-
- /// Label on the chat message input box
- @override String get label => 'Write message';
-
- /// Chat input message shown when the user is logged in only with pubkey
- @override String get no_signer => 'Can\'t write messages with npub login';
-
- /// Chat input message shown when the user is logged out
- @override String get login => 'Please login to send messages';
-}
-
-// Path: stream.chat.badge
-class _TranslationsStreamChatBadgeVi extends TranslationsStreamChatBadgeEn {
- _TranslationsStreamChatBadgeVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
-
- /// Heading over list of users who are awarded a badge
- @override String get awarded_to => 'Awarded to:';
-}
-
-// Path: stream.chat.raid
-class _TranslationsStreamChatRaidVi extends TranslationsStreamChatRaidEn {
- _TranslationsStreamChatRaidVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
-
- /// Chat raid message to another stream
- @override String to({required Object name}) => 'RAIDING ${name}';
-
- /// Chat raid message from another stream
- @override String from({required Object name}) => 'RAID FROM ${name}';
-
- /// Countdown timer for auto-raiding
- @override String countdown({required Object time}) => 'Raiding in ${time}';
-}
-
-// Path: settings.profile.error
-class _TranslationsSettingsProfileErrorVi extends TranslationsSettingsProfileErrorEn {
- _TranslationsSettingsProfileErrorVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant edit profile when logged out';
-}
-
-// Path: settings.wallet.error
-class _TranslationsSettingsWalletErrorVi extends TranslationsSettingsWalletErrorEn {
- _TranslationsSettingsWalletErrorVi._(TranslationsVi root) : this._root = root, super.internal(root);
-
- final TranslationsVi _root; // ignore: unused_field
-
- // Translations
- @override String get logged_out => 'Cant connect wallet when logged out';
-}
-
-/// Flat map(s) containing all translations.
-/// Only for edge cases! For simple maps, use the map function of this library.
-extension on TranslationsVi {
- dynamic _flatMapFunction(String path) {
- switch (path) {
- case 'upload_avatar': return 'Upload Avatar';
- case 'most_zapped_streamers': return 'Most Zapped Streamers';
- case 'no_user_found': return 'No user found';
- case 'anon': return 'Anon';
- case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('vi'))(n,
- one: '1 viewer',
- other: '${n} viewers',
- );
- case 'stream.status.live': return 'LIVE';
- case 'stream.status.ended': return 'ENDED';
- case 'stream.status.planned': return 'PLANNED';
- case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
- case 'stream.chat.disabled': return 'CHAT DISABLED';
- case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
- case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
- mod,
- const TextSpan(text: ' timed out '),
- user,
- const TextSpan(text: ' for '),
- time,
- ]);
- case 'stream.chat.ended': return 'STREAM ENDED';
- case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
- user,
- const TextSpan(text: ' zapped '),
- amount,
- const TextSpan(text: ' sats'),
- ]);
- case 'stream.chat.write.label': return 'Write message';
- case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
- case 'stream.chat.write.login': return 'Please login to send messages';
- case 'stream.chat.badge.awarded_to': return 'Awarded to:';
- case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
- case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
- case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
- case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
- case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
- case 'goal.complete': return 'COMPLETE';
- case 'button.login': return 'Login';
- case 'button.logout': return 'Logout';
- case 'button.edit_profile': return 'Edit Profile';
- case 'button.follow': return 'Follow';
- case 'button.unfollow': return 'Unfollow';
- case 'button.mute': return 'Mute';
- case 'button.unmute': return 'Unmute';
- case 'button.share': return 'Share';
- case 'button.save': return 'Save';
- case 'button.connect': return 'Connect';
- case 'button.settings': return 'Settings';
- case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
- case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
- case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
- case 'stream_list.following': return 'Following';
- case 'stream_list.live': return 'Live';
- case 'stream_list.planned': return 'Planned';
- case 'stream_list.ended': return 'Ended';
- case 'zap.title': return ({required Object name}) => 'Zap ${name}';
- case 'zap.custom_amount': return 'Custom Amount';
- case 'zap.confirm': return 'Confirm';
- case 'zap.comment': return 'Comment';
- case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
- case 'zap.button_zap': return 'Zap';
- case 'zap.button_open_wallet': return 'Open in Wallet';
- case 'zap.button_connect_wallet': return 'Connect Wallet';
- case 'zap.copy': return 'Copied to clipboard';
- case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
- case 'zap.error.no_wallet': return 'No lightning wallet installed';
- case 'zap.error.no_lud16': return 'No lightning address found';
- case 'profile.past_streams': return 'Past Streams';
- case 'settings.button_profile': return 'Edit Profile';
- case 'settings.button_wallet': return 'Wallet Settings';
- case 'settings.profile.display_name': return 'Display Name';
- case 'settings.profile.about': return 'About';
- case 'settings.profile.nip05': return 'Nostr Address';
- case 'settings.profile.lud16': return 'Lightning Address';
- case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
- case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nwc://)';
- case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
- case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
- case 'login.username': return 'Username';
- case 'login.amber': return 'Login with Amber';
- case 'login.key': return 'Login with Key';
- case 'login.create': return 'Create Account';
- case 'login.error.invalid_key': return 'Invalid key';
- default: return null;
- }
- }
-}
-
diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart
index f4fb142..87371e7 100644
--- a/lib/i18n/strings_zh.g.dart
+++ b/lib/i18n/strings_zh.g.dart
@@ -54,7 +54,7 @@ class TranslationsZh extends Translations {
/// 串流的觀看者人數
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
one: '1 個檢視器',
- other: '${n} 觀眾',
+ other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
);
@override late final _TranslationsStreamZh stream = _TranslationsStreamZh._(_root);
@@ -284,8 +284,10 @@ class _TranslationsSettingsWalletZh extends TranslationsSettingsWalletEn {
final TranslationsZh _root; // ignore: unused_field
// Translations
- @override String get connect_wallet => '連接錢包 (NWC nwc://)';
+ @override String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
@override String get disconnect_wallet => '斷開錢包';
+ @override String get connect_1tap => '1 抽頭連接';
+ @override String get paste => '貼上 URL';
@override late final _TranslationsSettingsWalletErrorZh error = _TranslationsSettingsWalletErrorZh._(_root);
}
@@ -365,6 +367,7 @@ class _TranslationsSettingsWalletErrorZh extends TranslationsSettingsWalletError
// Translations
@override String get logged_out => '登出時無法連接錢包';
+ @override String get nwc_auth_event_not_found => '未找到錢包認證事件';
}
/// Flat map(s) containing all translations.
@@ -378,7 +381,7 @@ extension on TranslationsZh {
case 'anon': return '匿名';
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
one: '1 個檢視器',
- other: '${n} 觀眾',
+ other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
);
case 'stream.status.live': return '直播';
case 'stream.status.ended': return '結束';
@@ -448,9 +451,12 @@ extension on TranslationsZh {
case 'settings.profile.nip05': return '地址';
case 'settings.profile.lud16': return '閃電地址';
case 'settings.profile.error.logged_out': return '登出時無法編輯個人資料';
- case 'settings.wallet.connect_wallet': return '連接錢包 (NWC nwc://)';
+ case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC nostr+walletconnect://)';
case 'settings.wallet.disconnect_wallet': return '斷開錢包';
+ case 'settings.wallet.connect_1tap': return '1 抽頭連接';
+ case 'settings.wallet.paste': return '貼上 URL';
case 'settings.wallet.error.logged_out': return '登出時無法連接錢包';
+ case 'settings.wallet.error.nwc_auth_event_not_found': return '未找到錢包認證事件';
case 'login.username': return '用戶名';
case 'login.amber': return '使用 Amber 登入';
case 'login.key': return '使用鑰匙登入';
diff --git a/lib/i18n/translated/af.i18n.yaml b/lib/i18n/translated/af.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/af.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/ar.i18n.yaml b/lib/i18n/translated/ar.i18n.yaml
index 9ae662d..2fc9858 100644
--- a/lib/i18n/translated/ar.i18n.yaml
+++ b/lib/i18n/translated/ar.i18n.yaml
@@ -10,12 +10,9 @@ no_user_found: لم يتم العثور على مستخدم
anon: هوية مخفية
viewers:
one: 1 مشاهد
- other: $n المشاهدون
+ other: "${n:decimalPattern} المشاهدين"
"@viewers":
description: عدد مشاهدي البث
- placeholders:
- n:
- type: في
"@anon":
description: مستخدم مجهول
stream:
@@ -121,10 +118,13 @@ settings:
error:
logged_out: لا يمكن تحرير ملف التعريف عند تسجيل الخروج
wallet:
- connect_wallet: توصيل المحفظة (NWC nwc://)
+ connect_wallet: توصيل المحفظة (NWC nostr+walletconnect://)
disconnect_wallet: محفظة قطع الاتصال
+ connect_1tap: 1-التوصيل بنقرة 1
+ paste: لصق عنوان URL
error:
logged_out: لا يمكن الاتصال بالمحفظة عند تسجيل الخروج
+ nwc_auth_event_not_found: لم يتم العثور على حدث مصادقة المحفظة
login:
username: اسم المستخدم
amber: تسجيل الدخول مع آمبر
diff --git a/lib/i18n/translated/ca.i18n.yaml b/lib/i18n/translated/ca.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/ca.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/cs.i18n.yaml b/lib/i18n/translated/cs.i18n.yaml
index 029e43d..ec1c7ff 100644
--- a/lib/i18n/translated/cs.i18n.yaml
+++ b/lib/i18n/translated/cs.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Nebyl nalezen žádný uživatel
anon: Anon
viewers:
one: 1 divák
- other: $n diváci
+ other: ${n:decimalPattern} diváků
"@viewers":
description: Počet diváků streamu
- placeholders:
- n:
- type: int
"@anon":
description: Anonymní uživatel
stream:
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Nelze upravit profil, když je odhlášený
wallet:
- connect_wallet: Připojení peněženky (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Odpojení peněženky
+ connect_1tap: Připojení 1 kohoutku
+ paste: Vložit adresu URL
error:
logged_out: Nelze se připojit k peněžence, když jste odhlášeni
+ nwc_auth_event_not_found: Nebyla nalezena žádná událost autentizace peněženky
login:
username: Uživatelské jméno
amber: Přihlášení pomocí Amber
diff --git a/lib/i18n/translated/da.i18n.yaml b/lib/i18n/translated/da.i18n.yaml
index d305f1a..cddd14a 100644
--- a/lib/i18n/translated/da.i18n.yaml
+++ b/lib/i18n/translated/da.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Ingen bruger fundet
anon: Anon
viewers:
one: 1 seer
- other: $n Seere
+ other: ${n:decimalPattern} seere
"@viewers":
description: Antal seere af streamingen
- placeholders:
- n:
- type: int
"@anon":
description: En anonym bruger
stream:
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Kan ikke redigere profil, når jeg er logget ud
wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Afbryd forbindelsen til tegnebogen
+ connect_1tap: 1-Tap-forbindelse
+ paste: Indsæt URL
error:
logged_out: Kan ikke oprette forbindelse til wallet, når jeg er logget ud
+ nwc_auth_event_not_found: Ingen wallet-auth-begivenhed fundet
login:
username: Brugernavn
amber: Log ind med Amber
diff --git a/lib/i18n/translated/de.i18n.yaml b/lib/i18n/translated/de.i18n.yaml
index 26217e9..b376caa 100644
--- a/lib/i18n/translated/de.i18n.yaml
+++ b/lib/i18n/translated/de.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Kein Benutzer gefunden
anon: Anon
viewers:
one: 1 Zuschauer
- other: $n Zuschauer
+ other: ${n:decimalPattern} Zuschauer
"@viewers":
description: Anzahl der Betrachter des Streams
- placeholders:
- n:
- type: int
"@anon":
description: Ein anonymer Benutzer
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Profil kann nicht bearbeitet werden, wenn es abgemeldet ist
wallet:
- connect_wallet: Brieftasche verbinden (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Brieftasche abtrennen
+ connect_1tap: 1-Tap-Verbindung
+ paste: URL einfügen
error:
logged_out: Kann keine Verbindung zur Brieftasche herstellen, wenn ich abgemeldet bin
+ nwc_auth_event_not_found: Kein Wallet-Authentifizierungsereignis gefunden
login:
username: Benutzername
amber: Anmeldung mit Amber
diff --git a/lib/i18n/translated/el.i18n.yaml b/lib/i18n/translated/el.i18n.yaml
index d3a6d31..f51ee12 100644
--- a/lib/i18n/translated/el.i18n.yaml
+++ b/lib/i18n/translated/el.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Δεν βρέθηκε χρήστης
anon: Anon
viewers:
one: 1 θεατής
- other: $n θεατές
+ other: ${n:decimalPattern} θεατές
"@viewers":
description: Αριθμός θεατών της ροής
- placeholders:
- n:
- type: int
"@anon":
description: Ένας ανώνυμος χρήστης
stream:
@@ -125,10 +122,13 @@ settings:
error:
logged_out: Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί
wallet:
- connect_wallet: Σύνδεση πορτοφολιού (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Αποσύνδεση πορτοφολιού
+ connect_1tap: Σύνδεση 1 βρύσης
+ paste: Επικόλληση URL
error:
logged_out: Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί
+ nwc_auth_event_not_found: Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού
login:
username: Όνομα χρήστη
amber: Σύνδεση με Amber
diff --git a/lib/i18n/translated/en.i18n.yaml b/lib/i18n/translated/en.i18n.yaml
index eb5ff52..f823a43 100644
--- a/lib/i18n/translated/en.i18n.yaml
+++ b/lib/i18n/translated/en.i18n.yaml
@@ -10,7 +10,7 @@ no_user_found: No user found
anon: Anon
viewers:
one: 1 viewer
- other: "${n:decimalPattern} viewers"
+ other: ${n:decimalPattern} viewers
"@viewers":
description: Number of viewers of the stream
"@anon":
@@ -24,7 +24,7 @@ stream:
chat:
disabled: CHAT DISABLED
disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
+ timeout(rich): $mod timed out $user for ${time}
"@timeout":
description: Chat message showing timeout events
ended: STREAM ENDED
@@ -125,7 +125,7 @@ settings:
logged_out: Cant connect wallet when logged out
nwc_auth_event_not_found: No wallet auth event found
login:
- username: "Username"
+ username: Username
amber: Login with Amber
key: Login with Key
create: Create Account
diff --git a/lib/i18n/translated/es.i18n.yaml b/lib/i18n/translated/es.i18n.yaml
index e7eb5da..21965dd 100644
--- a/lib/i18n/translated/es.i18n.yaml
+++ b/lib/i18n/translated/es.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: No se ha encontrado ningún usuario
anon: Anónimo
viewers:
one: 1 espectador
- other: $n espectadores
+ other: ${n:decimalPattern} espectadores
"@viewers":
description: Número de espectadores del flujo
- placeholders:
- n:
- type: int
"@anon":
description: Un usuario anónimo
stream:
@@ -125,10 +122,13 @@ settings:
error:
logged_out: No se puede editar el perfil cuando se cierra la sesión
wallet:
- connect_wallet: Cartera Connect (NWC nwc://)
+ connect_wallet: Cartera Connect (NWC nostr+walletconnect://)
disconnect_wallet: Desconectar Cartera
+ connect_1tap: Conexión de 1 toma
+ paste: Pegar URL
error:
logged_out: No se puede conectar el monedero al cerrar la sesión
+ nwc_auth_event_not_found: No se ha encontrado ningún evento de autenticación de cartera
login:
username: Usuario
amber: Iniciar sesión con Amber
diff --git a/lib/i18n/translated/fi.i18n.yaml b/lib/i18n/translated/fi.i18n.yaml
index d43cf8e..a186198 100644
--- a/lib/i18n/translated/fi.i18n.yaml
+++ b/lib/i18n/translated/fi.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Käyttäjää ei löytynyt
anon: Anon
viewers:
one: 1 katsoja
- other: $n katsojaa
+ other: ${n:decimalPattern} katsojat
"@viewers":
description: Streamin katsojien määrä
- placeholders:
- n:
- type: int
"@anon":
description: Nimetön käyttäjä
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Ei voi muokata profiilia, kun on kirjautunut ulos
wallet:
- connect_wallet: Yhdistä lompakko (NWC nwc://)
+ connect_wallet: Connect-lompakko (NWC nostr+walletconnect://)
disconnect_wallet: Irrota lompakko
+ connect_1tap: 1-Tap-liitäntä
+ paste: Liitä URL-osoite
error:
logged_out: Ei voi muodostaa yhteyttä lompakkoon, kun on kirjautunut ulos
+ nwc_auth_event_not_found: Ei lompakko-auth-tapahtumaa löydetty
login:
username: Käyttäjätunnus
amber: Kirjaudu sisään Amber kanssa
diff --git a/lib/i18n/translated/fr.i18n.yaml b/lib/i18n/translated/fr.i18n.yaml
index d79597d..c832b88 100644
--- a/lib/i18n/translated/fr.i18n.yaml
+++ b/lib/i18n/translated/fr.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Aucun utilisateur trouvé
anon: Anonyme
viewers:
one: 1 téléspectateur
- other: $n spectateurs
+ other: "${n:decimalPattern} téléspectateurs"
"@viewers":
description: Nombre de spectateurs du flux
- placeholders:
- n:
- type: int
"@anon":
description: Un utilisateur anonyme
stream:
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Impossible de modifier le profil lorsque l'on est déconnecté
wallet:
- connect_wallet: Portefeuille connecté (NWC nwc://)
+ connect_wallet: Portefeuille Connect (NWC nostr+walletconnect://)
disconnect_wallet: Déconnecter le portefeuille
+ connect_1tap: Connexion à 1 robinet
+ paste: Coller l'URL
error:
logged_out: Impossible de se connecter au portefeuille lorsque l'on est déconnecté
+ nwc_auth_event_not_found: Aucun événement d'authentification de portefeuille n'a été trouvé
login:
username: Nom d’utilisateur
amber: Se connecter avec Amber
diff --git a/lib/i18n/translated/he.i18n.yaml b/lib/i18n/translated/he.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/he.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/hu.i18n.yaml b/lib/i18n/translated/hu.i18n.yaml
index 33ad42a..c05e1f5 100644
--- a/lib/i18n/translated/hu.i18n.yaml
+++ b/lib/i18n/translated/hu.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Nem talált felhasználó
anon: Névtelen
viewers:
one: 1 néző
- other: $n néző
+ other: ${n:decimalPattern} nézők
"@viewers":
description: A stream nézőinek száma
- placeholders:
- n:
- type: int
"@anon":
description: Egy névtelen felhasználó
stream:
@@ -56,10 +53,10 @@ stream:
to: RAIDING ${name}
"@to":
description: Chat raid üzenet egy másik folyamba
- from: RAID FROM ${name}
+ from: RAID FROM $name
"@from":
description: Chat raid üzenet egy másik folyamból
- countdown: Raiding a ${time} oldalon
+ countdown: Raiding a ${time}oldalon
"@countdown":
description: Visszaszámláló időzítő az automatikus lovagláshoz
goal:
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Kijelentkezve nem lehet profilt szerkeszteni
wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Pénztárca lekapcsolása
+ connect_1tap: 1-Tap csatlakozás
+ paste: URL beillesztése
error:
logged_out: Kijelentkezve nem lehet csatlakozni a pénztárcához
+ nwc_auth_event_not_found: Nem találtak pénztárca-auth eseményt
login:
username: Felhasználónév
amber: Bejelentkezés Amber segítségével
diff --git a/lib/i18n/translated/it.i18n.yaml b/lib/i18n/translated/it.i18n.yaml
index 086a9de..564f63f 100644
--- a/lib/i18n/translated/it.i18n.yaml
+++ b/lib/i18n/translated/it.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Nessun utente trovato
anon: Anonimo
viewers:
one: 1 spettatore
- other: $n spettatori
+ other: ${n:decimalPattern} spettatori
"@viewers":
description: Numero di spettatori del flusso
- placeholders:
- n:
- type: int
"@anon":
description: Un utente anonimo
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Impossibile modificare il profilo quando si è disconnessi
wallet:
- connect_wallet: Portafoglio Connect (NWC nwc://)
+ connect_wallet: Portafoglio Connect (NWC nostr+walletconnect://)
disconnect_wallet: Disconnettere il portafoglio
+ connect_1tap: Connessione a 1 rubinetto
+ paste: Incolla URL
error:
logged_out: Impossibile connettere il portafoglio quando si è disconnessi
+ nwc_auth_event_not_found: Nessun evento wallet auth trovato
login:
username: Nome utente
amber: Accesso con Amber
diff --git a/lib/i18n/translated/ja.i18n.yaml b/lib/i18n/translated/ja.i18n.yaml
index 950d332..fae6f63 100644
--- a/lib/i18n/translated/ja.i18n.yaml
+++ b/lib/i18n/translated/ja.i18n.yaml
@@ -1,4 +1,4 @@
-upload_avatar: アバターのアップロード
+upload_avatar: 画像アップロード
"@upload_avatar":
description: アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
most_zapped_streamers: 最もザッピングされたストリーマー
@@ -10,12 +10,9 @@ no_user_found: ユーザーが見つかりません
anon: 匿名
viewers:
one: 1 視聴者
- other: $n 人が視聴中
+ other: ${n:decimalPattern} 人が視聴中
"@viewers":
description: ストリームの視聴者数
- placeholders:
- n:
- type: イント
"@anon":
description: 匿名ユーザー
stream:
@@ -120,10 +117,13 @@ settings:
error:
logged_out: ログアウトするとプロフィールが編集できない
wallet:
- connect_wallet: コネクトウォレット (NWC nwc://)
+ connect_wallet: コネクトウォレット(NWC nostr+walletconnect://)
disconnect_wallet: ウォレットの切断
+ connect_1tap: 1タップ接続
+ paste: URLを貼り付ける
error:
logged_out: ログアウト時にウォレットに接続できない
+ nwc_auth_event_not_found: ウォレットの認証イベントが見つかりません
login:
username: ユーザー名
amber: 琥珀でログイン
diff --git a/lib/i18n/translated/ko.i18n.yaml b/lib/i18n/translated/ko.i18n.yaml
index 3da8056..fa6c6ab 100644
--- a/lib/i18n/translated/ko.i18n.yaml
+++ b/lib/i18n/translated/ko.i18n.yaml
@@ -10,12 +10,9 @@ no_user_found: 사용자를 찾을 수 없습니다.
anon: Anon
viewers:
one: 시청자 1명
- other: $n 시청자
+ other: "${n:decimalPattern} 시청자"
"@viewers":
description: 스트림 시청자 수
- placeholders:
- n:
- type: int
"@anon":
description: 익명 사용자
stream:
@@ -120,10 +117,13 @@ settings:
error:
logged_out: 로그아웃 시 프로필 수정 불가
wallet:
- connect_wallet: 지갑 연결(NWC nwc://)
+ connect_wallet: 지갑 연결(NWC nostr+walletconnect://)
disconnect_wallet: 지갑 연결 해제
+ connect_1tap: 1-탭 연결
+ paste: URL 붙여넣기
error:
logged_out: 로그아웃 시 지갑 연결 불가
+ nwc_auth_event_not_found: 지갑 인증 이벤트를 찾을 수 없습니다.
login:
username: 사용자 이름
amber: Amber로 로그인
diff --git a/lib/i18n/translated/nl.i18n.yaml b/lib/i18n/translated/nl.i18n.yaml
index 5d44d14..d69e6e7 100644
--- a/lib/i18n/translated/nl.i18n.yaml
+++ b/lib/i18n/translated/nl.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Geen gebruiker gevonden
anon: Anon
viewers:
one: 1 kijker
- other: $n kijkers
+ other: ${n:decimalPattern} kijkers
"@viewers":
description: Aantal kijkers van de stream
- placeholders:
- n:
- type: int
"@anon":
description: Een anonieme gebruiker
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Kan profiel niet bewerken als ik ben uitgelogd
wallet:
- connect_wallet: Portemonnee verbinden (NWC nwc://)
+ connect_wallet: Portemonnee verbinden (NWC nostr+walletconnect://)
disconnect_wallet: Portefeuille loskoppelen
+ connect_1tap: 1-Tap Aansluiting
+ paste: URL plakken
error:
logged_out: Kan geen verbinding maken met portemonnee als ik ben uitgelogd
+ nwc_auth_event_not_found: Geen portemonnee-auth-gebeurtenis gevonden
login:
username: Gebruikersnaam
amber: Inloggen met Amber
diff --git a/lib/i18n/translated/no.i18n.yaml b/lib/i18n/translated/no.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/no.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/pl.i18n.yaml b/lib/i18n/translated/pl.i18n.yaml
index 4727390..884466f 100644
--- a/lib/i18n/translated/pl.i18n.yaml
+++ b/lib/i18n/translated/pl.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Nie znaleziono użytkownika
anon: Anon
viewers:
one: 1 przeglądarka
- other: $n widzowie
+ other: "{n:decimalPattern} widzów"
"@viewers":
description: Liczba widzów strumienia
- placeholders:
- n:
- type: int
"@anon":
description: Anonimowy użytkownik
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Nie można edytować profilu po wylogowaniu
wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: Odłącz portfel
+ connect_1tap: Połączenie 1-wtykowe
+ paste: Wklej adres URL
error:
logged_out: Nie można połączyć portfela po wylogowaniu
+ nwc_auth_event_not_found: Nie znaleziono zdarzenia autoryzacji portfela
login:
username: Nazwa użytkownika
amber: Zaloguj się za pomocą Amber
diff --git a/lib/i18n/translated/pt.i18n.yaml b/lib/i18n/translated/pt.i18n.yaml
index a80bc8a..714e514 100644
--- a/lib/i18n/translated/pt.i18n.yaml
+++ b/lib/i18n/translated/pt.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Nenhum usuário encontrado
anon: Anônimo
viewers:
one: 1 visualizador
- other: $n espectadores
+ other: ${n:decimalPattern} espectadores
"@viewers":
description: Número de espectadores da transmissão
- placeholders:
- n:
- type: int
"@anon":
description: Um usuário anônimo
stream:
@@ -123,10 +120,13 @@ settings:
error:
logged_out: Não é possível editar o perfil quando se está desconectado
wallet:
- connect_wallet: Conectar carteira (NWC nwc://)
+ connect_wallet: Carteira Connect (NWC nostr+walletconnect://)
disconnect_wallet: Desconectar carteira
+ connect_1tap: Conexão de 1 torneira
+ paste: Colar URL
error:
logged_out: Não consigo conectar a carteira quando estou desconectado
+ nwc_auth_event_not_found: Nenhum evento de autenticação de carteira encontrado
login:
username: Nome de usuário
amber: Faça login com o Amber
diff --git a/lib/i18n/translated/ro.i18n.yaml b/lib/i18n/translated/ro.i18n.yaml
index b152f59..80f7fba 100644
--- a/lib/i18n/translated/ro.i18n.yaml
+++ b/lib/i18n/translated/ro.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Niciun utilizator găsit
anon: Anon
viewers:
one: 1 vizualizator
- other: $n telespectatori
+ other: ${n:decimalPattern} telespectatori
"@viewers":
description: Numărul de telespectatori ai fluxului
- placeholders:
- n:
- type: int
"@anon":
description: Un utilizator anonim
stream:
@@ -124,10 +121,13 @@ settings:
error:
logged_out: Nu pot edita profilul când sunt deconectat
wallet:
- connect_wallet: Conectați portofelul (NWC nwc://)
+ connect_wallet: Conectați portofelul (NWC nostr+walletconnect://)
disconnect_wallet: Deconectați portofelul
+ connect_1tap: Conexiune 1-Tap
+ paste: Lipiți URL
error:
logged_out: Nu puteți conecta portofelul atunci când sunteți deconectat
+ nwc_auth_event_not_found: Nu a fost găsit niciun eveniment de autorizare a portofelului
login:
username: Nume utilizator
amber: Conectați-vă cu Amber
diff --git a/lib/i18n/translated/ru.i18n.yaml b/lib/i18n/translated/ru.i18n.yaml
index 78a22f9..fa82d00 100644
--- a/lib/i18n/translated/ru.i18n.yaml
+++ b/lib/i18n/translated/ru.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Пользователь не найден
anon: Аноним
viewers:
one: 1 зритель
- other: $n зрителей
+ other: ${n:decimalPattern} зрителей
"@viewers":
description: Количество зрителей потока
- placeholders:
- n:
- type: int
"@anon":
description: Анонимный пользователь
stream:
@@ -124,10 +121,13 @@ settings:
error:
logged_out: Невозможно редактировать профиль при выходе из системы
wallet:
- connect_wallet: Подключите кошелек (NWC nwc://)
+ connect_wallet: Кошелек Connect (NWC nostr+walletconnect://)
disconnect_wallet: Отключить кошелек
+ connect_1tap: 1-кратное соединение
+ paste: Вставить URL
error:
logged_out: Невозможно подключить кошелек при выходе из системы
+ nwc_auth_event_not_found: Событие аутентификации кошелька не найдено
login:
username: Имя пользователя
amber: Войти с помощью Amber
diff --git a/lib/i18n/translated/sr.i18n.yaml b/lib/i18n/translated/sr.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/sr.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/sv.i18n.yaml b/lib/i18n/translated/sv.i18n.yaml
index 9ddc3e2..081e2cc 100644
--- a/lib/i18n/translated/sv.i18n.yaml
+++ b/lib/i18n/translated/sv.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Ingen användare hittades
anon: Anon
viewers:
one: 1 tittare
- other: $n tittare
+ other: ${n:decimalPattern} tittare
"@viewers":
description: Antal tittare på streamingen
- placeholders:
- n:
- type: int
"@anon":
description: En anonym användare
stream:
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Kan inte redigera profil när jag är utloggad
wallet:
- connect_wallet: Anslut plånbok (NWC nwc://)
+ connect_wallet: Connect plånbok (NWC nostr+walletconnect://)
disconnect_wallet: Koppla bort plånboken
+ connect_1tap: 1-Tap-anslutning
+ paste: Klistra in URL
error:
logged_out: Kan inte ansluta plånbok när du är inloggad
+ nwc_auth_event_not_found: Inget autentiseringshändelse för plånbok hittades
login:
username: Användarnamn
amber: Logga in med Amber
diff --git a/lib/i18n/translated/tr.i18n.yaml b/lib/i18n/translated/tr.i18n.yaml
index 0925124..f373be0 100644
--- a/lib/i18n/translated/tr.i18n.yaml
+++ b/lib/i18n/translated/tr.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Kullanıcı bulunamadı
anon: Anon
viewers:
one: 1 izleyici
- other: $n izleyiciler
+ other: ${n:decimalPattern} izleyiciler
"@viewers":
description: Akışı izleyenlerin sayısı
- placeholders:
- n:
- type: int
"@anon":
description: Anonim bir kullanıcı
stream:
@@ -53,7 +50,7 @@ stream:
"@awarded_to":
description: Rozet verilen kullanıcıların listesi üzerinde başlık
raid:
- to: RAIDING $name
+ to: RAIDING ${name}
"@to":
description: Başka bir akışa sohbet baskını mesajı
from: ${name}ADRESINDEN RAID
@@ -122,10 +119,13 @@ settings:
error:
logged_out: Çıkış yapıldığında profil düzenlenemiyor
wallet:
- connect_wallet: Cüzdanı Bağlayın (NWC nwc://)
+ connect_wallet: Connect Cüzdan (NWC nostr+walletconnect://)
disconnect_wallet: Cüzdan Bağlantısını Kes
+ connect_1tap: 1-Tap Bağlantı
+ paste: URL Yapıştır
error:
logged_out: Oturumu kapattığımda cüzdana bağlanamıyorum
+ nwc_auth_event_not_found: Cüzdan yetkilendirme olayı bulunamadı
login:
username: Kullanıcı Adı
amber: Amber ile Giriş Yapın
diff --git a/lib/i18n/translated/uk.i18n.yaml b/lib/i18n/translated/uk.i18n.yaml
index 0998cb3..f2d2413 100644
--- a/lib/i18n/translated/uk.i18n.yaml
+++ b/lib/i18n/translated/uk.i18n.yaml
@@ -11,12 +11,9 @@ no_user_found: Користувача не знайдено
anon: Анонім.
viewers:
one: 1 глядач
- other: $n глядачі
+ other: ${n:decimalPattern} глядачів
"@viewers":
description: Кількість глядачів стріму
- placeholders:
- n:
- type: int
"@anon":
description: Анонімний користувач
stream:
@@ -124,10 +121,13 @@ settings:
error:
logged_out: Неможливо редагувати профіль, коли ви вийшли з системи
wallet:
- connect_wallet: Підключити гаманець (NWC nwc://)
+ connect_wallet: Підключити гаманець (NWC nostr+walletconnect://)
disconnect_wallet: Відключити гаманець
+ connect_1tap: Підключення в 1 кран
+ paste: Вставити URL-адресу
error:
logged_out: Не вдається підключити гаманець, коли ви вийшли з системи
+ nwc_auth_event_not_found: Не знайдено жодної події авторизації гаманця
login:
username: Ім'я користувача
amber: Увійдіть за допомогою Amber
diff --git a/lib/i18n/translated/vi.i18n.yaml b/lib/i18n/translated/vi.i18n.yaml
deleted file mode 100644
index 188759e..0000000
--- a/lib/i18n/translated/vi.i18n.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-upload_avatar: Upload Avatar
-"@upload_avatar":
- description: Text prompting user to hit avatar placeholder to begin upload
-most_zapped_streamers: Most Zapped Streamers
-"@most_zapped_streamers":
- description: Heading over listed top streamers by zaps
-no_user_found: No user found
-"@no_user_found":
- description: No user found when searching
-anon: Anon
-viewers:
- one: 1 viewer
- other: $n viewers
-"@viewers":
- description: Number of viewers of the stream
- placeholders:
- n:
- type: int
-"@anon":
- description: An anonymous user
-stream:
- status:
- live: LIVE
- ended: ENDED
- planned: PLANNED
- started: Started $timestamp
- chat:
- disabled: CHAT DISABLED
- disabled_timeout: "Timeout expires: $time"
- timeout(rich): $mod timed out $user for $time
- "@timeout":
- description: Chat message showing timeout events
- ended: STREAM ENDED
- "@ended":
- description: Stream ended footer at bottom of chat
- zap(rich): $user zapped $amount sats
- "@zap":
- description: Chat message showing stream zaps
- write:
- label: Write message
- "@label":
- description: Label on the chat message input box
- no_signer: Can't write messages with npub login
- "@no_signer":
- description: Chat input message shown when the user is logged in only with pubkey
- login: Please login to send messages
- "@login":
- description: Chat input message shown when the user is logged out
- badge:
- awarded_to: "Awarded to:"
- "@awarded_to":
- description: Heading over list of users who are awarded a badge
- raid:
- to: RAIDING ${name}
- "@to":
- description: Chat raid message to another stream
- from: RAID FROM ${name}
- "@from":
- description: Chat raid message from another stream
- countdown: Raiding in ${time}
- "@countdown":
- description: Countdown timer for auto-raiding
-goal:
- title: "Goal: $amount"
- remaining: "Remaining: $amount"
- complete: COMPLETE
-button:
- login: Login
- logout: Logout
- edit_profile: Edit Profile
- "@login":
- description: Button text for the login button
- follow: Follow
- "@follow":
- description: Button text for the follow button
- unfollow: Unfollow
- "@unfollow":
- description: Button text for the unfollow button
- mute: Mute
- unmute: Unmute
- share: Share
- save: Save
- connect: Connect
- settings: Settings
-embed:
- article_by: Article by ${name}
- note_by: Note by $name
- live_stream_by: Live stream by ${name}
-stream_list:
- following: Following
- live: Live
- planned: Planned
- ended: Ended
-"@stream_list":
- description: Headings on stream lists by stream type live/ended/planned etc.
-zap:
- title: Zap $name
- custom_amount: Custom Amount
- confirm: Confirm
- comment: Comment
- button_zap_ready: Zap $amount sats
- button_zap: Zap
- button_open_wallet: Open in Wallet
- button_connect_wallet: Connect Wallet
- copy: Copied to clipboard
- error:
- invalid_custom_amount: Invalid custom amount
- no_wallet: No lightning wallet installed
- no_lud16: No lightning address found
-profile:
- past_streams: Past Streams
-settings:
- button_profile: Edit Profile
- button_wallet: Wallet Settings
- profile:
- display_name: Display Name
- about: About
- nip05: Nostr Address
- lud16: Lightning Address
- error:
- logged_out: Cant edit profile when logged out
- wallet:
- connect_wallet: Connect Wallet (NWC nwc://)
- disconnect_wallet: Disconnect Wallet
- error:
- logged_out: Cant connect wallet when logged out
-login:
- username: Username
- amber: Login with Amber
- key: Login with Key
- create: Create Account
- error:
- invalid_key: Invalid key
diff --git a/lib/i18n/translated/zh.i18n.yaml b/lib/i18n/translated/zh.i18n.yaml
index ab33f16..5972107 100644
--- a/lib/i18n/translated/zh.i18n.yaml
+++ b/lib/i18n/translated/zh.i18n.yaml
@@ -10,12 +10,9 @@ no_user_found: 未找到使用者
anon: 匿名
viewers:
one: 1 個檢視器
- other: $n 觀眾
+ other: ${n:decimalPattern} 觀眾
"@viewers":
description: 串流的觀看者人數
- placeholders:
- n:
- type: int
"@anon":
description: 匿名使用者
stream:
@@ -120,10 +117,13 @@ settings:
error:
logged_out: 登出時無法編輯個人資料
wallet:
- connect_wallet: 連接錢包 (NWC nwc://)
+ connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
disconnect_wallet: 斷開錢包
+ connect_1tap: 1 抽頭連接
+ paste: 貼上 URL
error:
logged_out: 登出時無法連接錢包
+ nwc_auth_event_not_found: 未找到錢包認證事件
login:
username: 用戶名
amber: 使用 Amber 登入
diff --git a/lib/main.dart b/lib/main.dart
index 57f9e70..76ccaca 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -10,7 +10,8 @@ import 'package:zap_stream_flutter/notifications.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
- LocaleSettings.useDeviceLocale();
+ await LocaleSettings.useDeviceLocale();
+ //await LocaleSettings.setLocaleRaw("zh");
await dotenv.load(fileName: kDebugMode ? ".env.development" : ".env");
await initLogin();
diff --git a/lib/pages/settings.dart b/lib/pages/settings.dart
index 29f4f4e..84ca11c 100644
--- a/lib/pages/settings.dart
+++ b/lib/pages/settings.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
+import 'package:zap_stream_flutter/i18n/strings.g.dart';
import 'package:zap_stream_flutter/widgets/button.dart';
class SettingsPage extends StatelessWidget {
@@ -10,13 +11,13 @@ class SettingsPage extends StatelessWidget {
return Column(
spacing: 8,
children: [
- Text("Settings", style: TextStyle(fontSize: 24)),
+ Text(t.button.settings, style: TextStyle(fontSize: 24)),
BasicButton.text(
- "Edit Profile",
+ t.settings.button_profile,
onTap: (context) => context.push("/settings/profile"),
),
BasicButton.text(
- "Wallet Settings",
+ t.settings.button_wallet,
onTap: (context) => context.push("/settings/wallet"),
),
],
diff --git a/lib/pages/settings_wallet.dart b/lib/pages/settings_wallet.dart
index 5d34a5a..ca57c0d 100644
--- a/lib/pages/settings_wallet.dart
+++ b/lib/pages/settings_wallet.dart
@@ -139,7 +139,7 @@ class _Inner extends State with ProtocolListener {
),
],
Text(
- "Paste URL",
+ t.settings.wallet.paste,
style: TextStyle(fontSize: 26, fontWeight: FontWeight.bold),
),
TextField(
diff --git a/lib/widgets/chat_message.dart b/lib/widgets/chat_message.dart
index 1f72a22..d76461d 100644
--- a/lib/widgets/chat_message.dart
+++ b/lib/widgets/chat_message.dart
@@ -5,7 +5,6 @@ import 'package:zap_stream_flutter/theme.dart';
import 'package:zap_stream_flutter/utils.dart';
import 'package:zap_stream_flutter/widgets/avatar.dart';
import 'package:zap_stream_flutter/widgets/chat_modal.dart';
-import 'package:zap_stream_flutter/widgets/custom_emoji.dart';
import 'package:zap_stream_flutter/widgets/nostr_text.dart';
import 'package:zap_stream_flutter/widgets/profile.dart';
diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist
index 7a67f8c..e748165 100644
--- a/macos/Runner/Info.plist
+++ b/macos/Runner/Info.plist
@@ -30,9 +30,7 @@
NSApplication
CFBundleLocalizations
- af
ar
- ca
cs
da
de
@@ -41,22 +39,18 @@
es
fi
fr
- he
hu
it
ja
ko
nl
- no
pl
pt
ro
ru
- sr
sv
tr
uk
- vi
zh