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