Compare commits
38 Commits
v0.8.1
...
f553ecdab3
Author | SHA1 | Date | |
---|---|---|---|
f553ecdab3
|
|||
b7764d82c9
|
|||
1575c7dd09
|
|||
3914768eeb
|
|||
edfb5bb80d
|
|||
33ad784e87
|
|||
0422341bf8
|
|||
8af62e0b32
|
|||
cd6c50f9bd
|
|||
428771462d
|
|||
917147605b
|
|||
8e3a4cbd41
|
|||
c66127cac2
|
|||
ab9fdd6b71
|
|||
99c163a51a
|
|||
fb4821ffdd
|
|||
5789d9a7a1
|
|||
b854962b07
|
|||
0295d49077
|
|||
74c3ad9b9c
|
|||
8bd9ff2a4c
|
|||
8516f2b3c1
|
|||
344f2d31fc
|
|||
c6168ec094
|
|||
2ec17c6c41
|
|||
c6b76bc64d
|
|||
d3a8c41f93
|
|||
04967910fa
|
|||
9d2bc7456f
|
|||
cc53762e4b
|
|||
0a474a1ca7
|
|||
e9062f0265
|
|||
8dae9a97f2
|
|||
a64cacb13c
|
|||
19d50f2947
|
|||
f36f02e95a
|
|||
484bf67951
|
|||
47bed26df6
|
3
.github/workflows/build.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
|||||||
uses: subosito/flutter-action@v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: stable
|
channel: stable
|
||||||
flutter-version: 3.29.3
|
flutter-version: 3.32.0
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
- run: flutter build appbundle
|
- run: flutter build appbundle
|
||||||
env:
|
env:
|
||||||
@ -53,5 +53,6 @@ jobs:
|
|||||||
uses: subosito/flutter-action@v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: stable
|
channel: stable
|
||||||
|
flutter-version: 3.32.0
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
- run: flutter build ios --no-codesign
|
- run: flutter build ios --no-codesign
|
2
.github/workflows/release.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
|||||||
uses: subosito/flutter-action@v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: stable
|
channel: stable
|
||||||
flutter-version: 3.29.3
|
flutter-version: 3.32.0
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
- name: Build apk
|
- name: Build apk
|
||||||
env:
|
env:
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import com.android.build.api.dsl.ApkSigningConfig
|
import com.android.build.api.dsl.ApkSigningConfig
|
||||||
import com.android.build.api.dsl.SigningConfig
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.toHex
|
import org.jetbrains.kotlin.gradle.targets.js.toHex
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.util.Base64
|
import java.util.Base64
|
||||||
@ -8,11 +7,9 @@ import java.util.Properties
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.application")
|
id("com.android.application")
|
||||||
// START: FlutterFire Configuration
|
|
||||||
id("com.google.gms.google-services")
|
|
||||||
// END: FlutterFire Configuration
|
|
||||||
id("kotlin-android")
|
id("kotlin-android")
|
||||||
id("dev.flutter.flutter-gradle-plugin")
|
id("dev.flutter.flutter-gradle-plugin")
|
||||||
|
id("com.google.gms.google-services")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getKeystoreFile(base64String: String?, hash: String, fileName: String): File {
|
fun getKeystoreFile(base64String: String?, hash: String, fileName: String): File {
|
||||||
|
@ -3,6 +3,5 @@
|
|||||||
the Flutter tool needs it to communicate with the running application
|
the Flutter tool needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
-->
|
-->
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@ -1,46 +1,79 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:label="zap.stream"
|
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher">
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="zap.stream">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name="com.ryanheise.audioservice.AudioServiceActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:taskAffinity=""
|
android:taskAffinity=""
|
||||||
android:theme="@style/LaunchTheme"
|
android:theme="@style/LaunchTheme"
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
|
||||||
android:hardwareAccelerated="true"
|
|
||||||
android:windowSoftInputMode="adjustResize">
|
android:windowSoftInputMode="adjustResize">
|
||||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
|
||||||
the Android process has started. This theme is visible to the user
|
|
||||||
while the Flutter UI initializes. After that, this theme continues
|
|
||||||
to determine the Window background behind the Flutter UI. -->
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="io.flutter.embedding.android.NormalTheme"
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
android:resource="@style/NormalTheme"
|
android:resource="@style/NormalTheme" />
|
||||||
/>
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<intent-filter android:autoVerify="true">
|
<intent-filter android:autoVerify="true">
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
<data android:scheme="http" android:host="zap.stream" />
|
|
||||||
|
<data android:host="zap.stream" />
|
||||||
|
<data android:scheme="http" />
|
||||||
<data android:scheme="https" />
|
<data android:scheme="https" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
|
||||||
|
<data android:scheme="zswc" />
|
||||||
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<!-- Don't delete the meta-data below.
|
<service
|
||||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
android:name="com.ryanheise.audioservice.AudioService"
|
||||||
|
android:exported="true"
|
||||||
|
android:foregroundServiceType="mediaPlayback"
|
||||||
|
android:permission="android.permission.FOREGROUND_SERVICE"
|
||||||
|
tools:ignore="Instantiatable">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.media.browse.MediaBrowserService" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
<receiver
|
||||||
|
android:name="com.ryanheise.audioservice.MediaButtonReceiver"
|
||||||
|
android:exported="true"
|
||||||
|
tools:ignore="Instantiatable">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MEDIA_BUTTON" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="flutterEmbedding"
|
android:name="flutterEmbedding"
|
||||||
android:value="2" />
|
android:value="2" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
||||||
|
|
||||||
<!-- Required to query activities that can process text, see:
|
<!-- Required to query activities that can process text, see:
|
||||||
https://developer.android.com/training/package-visibility and
|
https://developer.android.com/training/package-visibility and
|
||||||
@ -49,10 +82,11 @@
|
|||||||
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||||||
<queries>
|
<queries>
|
||||||
<intent>
|
<intent>
|
||||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
<action android:name="android.intent.action.PROCESS_TEXT" />
|
||||||
<data android:mimeType="text/plain"/>
|
<data android:mimeType="text/plain" />
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="firebase_messaging_auto_init_enabled"
|
android:name="firebase_messaging_auto_init_enabled"
|
||||||
android:value="false" />
|
android:value="false" />
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="33"
|
||||||
|
android:viewportHeight="23"
|
||||||
|
android:tint="#FFFFFF">
|
||||||
|
<group android:scaleX="0.777027"
|
||||||
|
android:scaleY="0.5415643"
|
||||||
|
android:translateX="3.679054"
|
||||||
|
android:translateY="5.272011">
|
||||||
|
<path
|
||||||
|
android:pathData="M32.788,1.721C32.356,0.677 31.344,0 30.216,0H10.68C10.674,0 10.667,0 10.661,0C10.655,0 10.648,0 10.642,0C6.542,0 3.21,3.332 3.21,7.425C3.21,9.578 4.138,11.582 5.704,12.975L0.812,17.867C0.013,18.666 -0.225,19.858 0.207,20.896C0.638,21.94 1.65,22.617 2.778,22.617H22.314C22.32,22.617 22.327,22.617 22.34,22.617C22.346,22.617 22.353,22.617 22.366,22.617C26.458,22.617 29.791,19.285 29.791,15.192C29.791,13.039 28.862,11.035 27.296,9.642L32.188,4.75C32.981,3.951 33.22,2.759 32.788,1.721ZM2.714,19.858C2.694,19.813 2.707,19.8 2.733,19.775L8.109,14.399L22.391,19.452C22.404,19.459 22.424,19.465 22.437,19.465C22.456,19.472 22.475,19.478 22.494,19.491C22.527,19.51 22.552,19.542 22.572,19.581C22.578,19.588 22.578,19.594 22.585,19.601C22.591,19.613 22.591,19.626 22.591,19.639C22.591,19.652 22.598,19.665 22.598,19.678C22.598,19.794 22.469,19.897 22.327,19.897H2.785C2.753,19.91 2.733,19.91 2.714,19.858ZM25.208,18.956C25.208,18.95 25.201,18.937 25.201,18.93C25.176,18.827 25.143,18.73 25.105,18.634C25.098,18.621 25.098,18.608 25.092,18.595C25.053,18.492 25.002,18.395 24.95,18.299C24.944,18.286 24.931,18.266 24.924,18.253C24.815,18.06 24.686,17.88 24.538,17.712C24.525,17.699 24.512,17.686 24.499,17.673C24.422,17.596 24.344,17.519 24.26,17.448C24.248,17.441 24.235,17.428 24.228,17.422C24.151,17.358 24.067,17.299 23.977,17.242C23.964,17.235 23.951,17.222 23.938,17.216C23.848,17.158 23.751,17.106 23.655,17.055C23.635,17.042 23.61,17.035 23.59,17.022C23.493,16.977 23.39,16.932 23.281,16.9L16.674,14.56L9.037,11.86L9.011,11.853C9.004,11.853 9.004,11.853 8.998,11.847C8.811,11.776 8.624,11.692 8.437,11.595C6.884,10.777 5.924,9.178 5.924,7.425C5.924,5.891 6.658,4.525 7.799,3.661C7.799,3.667 7.806,3.68 7.806,3.687C7.831,3.783 7.864,3.88 7.902,3.977C7.915,4.009 7.928,4.041 7.941,4.074C7.973,4.144 8.005,4.209 8.038,4.28C8.051,4.312 8.07,4.344 8.083,4.37C8.128,4.454 8.179,4.531 8.237,4.608C8.263,4.641 8.283,4.673 8.308,4.705C8.353,4.763 8.399,4.821 8.45,4.873C8.469,4.899 8.489,4.924 8.515,4.944C8.579,5.015 8.656,5.079 8.727,5.143C8.753,5.169 8.779,5.189 8.811,5.208C8.882,5.266 8.953,5.317 9.03,5.369C9.043,5.382 9.056,5.388 9.075,5.401C9.166,5.459 9.262,5.511 9.359,5.556C9.385,5.569 9.411,5.582 9.436,5.595C9.539,5.64 9.643,5.685 9.746,5.717L24.009,10.764C24.016,10.764 24.022,10.77 24.022,10.77C24.209,10.841 24.389,10.919 24.563,11.015C26.117,11.834 27.077,13.432 27.077,15.185C27.084,16.726 26.342,18.092 25.208,18.956ZM30.267,2.836L24.892,8.211C24.879,8.205 24.86,8.199 24.847,8.192L10.622,3.165C10.603,3.158 10.584,3.152 10.571,3.145H10.564C10.545,3.139 10.532,3.132 10.513,3.12C10.506,3.113 10.5,3.107 10.493,3.1C10.48,3.094 10.474,3.081 10.467,3.074C10.461,3.068 10.455,3.055 10.455,3.049C10.448,3.036 10.442,3.023 10.435,3.01C10.435,3.004 10.429,2.991 10.429,2.978C10.429,2.965 10.422,2.946 10.422,2.926C10.422,2.913 10.429,2.907 10.429,2.894C10.448,2.797 10.564,2.714 10.687,2.714H30.229C30.261,2.714 30.28,2.714 30.3,2.759C30.306,2.797 30.293,2.817 30.267,2.836Z"
|
||||||
|
android:fillColor="#ffffff"/>
|
||||||
|
</group>
|
||||||
|
</vector>
|
BIN
android/app/src/main/res/drawable-hdpi/ic_stat_name.png
Normal file
After Width: | Height: | Size: 531 B |
BIN
android/app/src/main/res/drawable-mdpi/ic_stat_name.png
Normal file
After Width: | Height: | Size: 366 B |
BIN
android/app/src/main/res/drawable-xhdpi/ic_stat_name.png
Normal file
After Width: | Height: | Size: 702 B |
BIN
android/app/src/main/res/drawable-xxhdpi/ic_stat_name.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/logo.jpg
Normal file
After Width: | Height: | Size: 8.2 KiB |
@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
30
ios/GoogleService-Info.plist
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>API_KEY</key>
|
||||||
|
<string>AIzaSyByygErXpki6Q7NXOXTHbRgg3-Tw-KCVO0</string>
|
||||||
|
<key>GCM_SENDER_ID</key>
|
||||||
|
<string>953923151748</string>
|
||||||
|
<key>PLIST_VERSION</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>BUNDLE_ID</key>
|
||||||
|
<string>io.nostrlabs.zap-stream</string>
|
||||||
|
<key>PROJECT_ID</key>
|
||||||
|
<string>nostrlabs</string>
|
||||||
|
<key>STORAGE_BUCKET</key>
|
||||||
|
<string>nostrlabs.firebasestorage.app</string>
|
||||||
|
<key>IS_ADS_ENABLED</key>
|
||||||
|
<false></false>
|
||||||
|
<key>IS_ANALYTICS_ENABLED</key>
|
||||||
|
<false></false>
|
||||||
|
<key>IS_APPINVITE_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>IS_GCM_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>IS_SIGNIN_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>GOOGLE_APP_ID</key>
|
||||||
|
<string>1:953923151748:ios:aef9c54f556258d39e9fd1</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
43
ios/Podfile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Uncomment this line to define a global platform for your project
|
||||||
|
# platform :ios, '12.0'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutter_root
|
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||||
|
return matches[1].strip if matches
|
||||||
|
end
|
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||||
|
|
||||||
|
flutter_ios_podfile_setup
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
|
||||||
|
target 'RunnerTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
flutter_additional_ios_build_settings(target)
|
||||||
|
end
|
||||||
|
end
|
245
ios/Podfile.lock
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
PODS:
|
||||||
|
- apivideo_live_stream (0.0.1):
|
||||||
|
- ApiVideoLiveStream (= 1.4.1)
|
||||||
|
- Flutter
|
||||||
|
- ApiVideoLiveStream (1.4.1):
|
||||||
|
- HaishinKit (= 1.7.3)
|
||||||
|
- audio_service (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- audio_session (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- emoji_picker_flutter (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- Firebase/CoreOnly (11.10.0):
|
||||||
|
- FirebaseCore (~> 11.10.0)
|
||||||
|
- Firebase/Messaging (11.10.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseMessaging (~> 11.10.0)
|
||||||
|
- firebase_core (3.13.1):
|
||||||
|
- Firebase/CoreOnly (= 11.10.0)
|
||||||
|
- Flutter
|
||||||
|
- firebase_messaging (15.2.6):
|
||||||
|
- Firebase/Messaging (= 11.10.0)
|
||||||
|
- firebase_core
|
||||||
|
- Flutter
|
||||||
|
- FirebaseCore (11.10.0):
|
||||||
|
- FirebaseCoreInternal (~> 11.10.0)
|
||||||
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
|
- GoogleUtilities/Logger (~> 8.0)
|
||||||
|
- FirebaseCoreInternal (11.10.0):
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.0)"
|
||||||
|
- FirebaseInstallations (11.10.0):
|
||||||
|
- FirebaseCore (~> 11.10.0)
|
||||||
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||||
|
- PromisesObjC (~> 2.4)
|
||||||
|
- FirebaseMessaging (11.10.0):
|
||||||
|
- FirebaseCore (~> 11.10.0)
|
||||||
|
- FirebaseInstallations (~> 11.0)
|
||||||
|
- GoogleDataTransport (~> 10.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.0)
|
||||||
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
|
- GoogleUtilities/Reachability (~> 8.0)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- Flutter (1.0.0)
|
||||||
|
- flutter_local_notifications (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- flutter_secure_storage (6.0.0):
|
||||||
|
- Flutter
|
||||||
|
- GoogleDataTransport (10.1.0):
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- PromisesObjC (~> 2.4)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (8.1.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Network
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Environment (8.1.0):
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Logger (8.1.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Network (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- "GoogleUtilities/NSData+zlib"
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Reachability
|
||||||
|
- "GoogleUtilities/NSData+zlib (8.1.0)":
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Privacy (8.1.0)
|
||||||
|
- GoogleUtilities/Reachability (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/UserDefaults (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- HaishinKit (1.7.3):
|
||||||
|
- Logboard (~> 2.4.1)
|
||||||
|
- image_picker_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- Logboard (2.4.2)
|
||||||
|
- nanopb (3.30910.0):
|
||||||
|
- nanopb/decode (= 3.30910.0)
|
||||||
|
- nanopb/encode (= 3.30910.0)
|
||||||
|
- nanopb/decode (3.30910.0)
|
||||||
|
- nanopb/encode (3.30910.0)
|
||||||
|
- native_device_orientation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- ObjectBox (4.3.0)
|
||||||
|
- objectbox_flutter_libs (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- ObjectBox (= 4.3.0)
|
||||||
|
- package_info_plus (0.4.5):
|
||||||
|
- Flutter
|
||||||
|
- path_provider_foundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- PromisesObjC (2.4.0)
|
||||||
|
- protocol_handler_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- rust_lib_ndk (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- share_plus (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- shared_preferences_foundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- sqflite_darwin (0.0.4):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- url_launcher_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- video_player_avfoundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- wakelock_plus (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- apivideo_live_stream (from `.symlinks/plugins/apivideo_live_stream/ios`)
|
||||||
|
- audio_service (from `.symlinks/plugins/audio_service/darwin`)
|
||||||
|
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
||||||
|
- emoji_picker_flutter (from `.symlinks/plugins/emoji_picker_flutter/ios`)
|
||||||
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
|
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||||
|
- Flutter (from `Flutter`)
|
||||||
|
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||||
|
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||||
|
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||||
|
- native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`)
|
||||||
|
- objectbox_flutter_libs (from `.symlinks/plugins/objectbox_flutter_libs/ios`)
|
||||||
|
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||||
|
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
|
- protocol_handler_ios (from `.symlinks/plugins/protocol_handler_ios/ios`)
|
||||||
|
- rust_lib_ndk (from `.symlinks/plugins/rust_lib_ndk/ios`)
|
||||||
|
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||||
|
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||||
|
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
|
||||||
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
|
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||||
|
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- ApiVideoLiveStream
|
||||||
|
- Firebase
|
||||||
|
- FirebaseCore
|
||||||
|
- FirebaseCoreInternal
|
||||||
|
- FirebaseInstallations
|
||||||
|
- FirebaseMessaging
|
||||||
|
- GoogleDataTransport
|
||||||
|
- GoogleUtilities
|
||||||
|
- HaishinKit
|
||||||
|
- Logboard
|
||||||
|
- nanopb
|
||||||
|
- ObjectBox
|
||||||
|
- PromisesObjC
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
apivideo_live_stream:
|
||||||
|
:path: ".symlinks/plugins/apivideo_live_stream/ios"
|
||||||
|
audio_service:
|
||||||
|
:path: ".symlinks/plugins/audio_service/darwin"
|
||||||
|
audio_session:
|
||||||
|
:path: ".symlinks/plugins/audio_session/ios"
|
||||||
|
emoji_picker_flutter:
|
||||||
|
:path: ".symlinks/plugins/emoji_picker_flutter/ios"
|
||||||
|
firebase_core:
|
||||||
|
:path: ".symlinks/plugins/firebase_core/ios"
|
||||||
|
firebase_messaging:
|
||||||
|
:path: ".symlinks/plugins/firebase_messaging/ios"
|
||||||
|
Flutter:
|
||||||
|
:path: Flutter
|
||||||
|
flutter_local_notifications:
|
||||||
|
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||||
|
flutter_secure_storage:
|
||||||
|
:path: ".symlinks/plugins/flutter_secure_storage/ios"
|
||||||
|
image_picker_ios:
|
||||||
|
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||||
|
native_device_orientation:
|
||||||
|
:path: ".symlinks/plugins/native_device_orientation/ios"
|
||||||
|
objectbox_flutter_libs:
|
||||||
|
:path: ".symlinks/plugins/objectbox_flutter_libs/ios"
|
||||||
|
package_info_plus:
|
||||||
|
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||||
|
path_provider_foundation:
|
||||||
|
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
||||||
|
protocol_handler_ios:
|
||||||
|
:path: ".symlinks/plugins/protocol_handler_ios/ios"
|
||||||
|
rust_lib_ndk:
|
||||||
|
:path: ".symlinks/plugins/rust_lib_ndk/ios"
|
||||||
|
share_plus:
|
||||||
|
:path: ".symlinks/plugins/share_plus/ios"
|
||||||
|
shared_preferences_foundation:
|
||||||
|
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
|
||||||
|
sqflite_darwin:
|
||||||
|
:path: ".symlinks/plugins/sqflite_darwin/darwin"
|
||||||
|
url_launcher_ios:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
video_player_avfoundation:
|
||||||
|
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
|
||||||
|
wakelock_plus:
|
||||||
|
:path: ".symlinks/plugins/wakelock_plus/ios"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
apivideo_live_stream: caab45dd35fb3b140d423c099d0f6672378e7abe
|
||||||
|
ApiVideoLiveStream: 8f9dce7f6d15d5e4bb3c7a25e406bf2a36337a5a
|
||||||
|
audio_service: aa99a6ba2ae7565996015322b0bb024e1d25c6fd
|
||||||
|
audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0
|
||||||
|
emoji_picker_flutter: ece213fc274bdddefb77d502d33080dc54e616cc
|
||||||
|
Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2
|
||||||
|
firebase_core: ba71b44041571da878cb624ce0d80250bcbe58ad
|
||||||
|
firebase_messaging: 13129fe2ca166d1ed2d095062d76cee88943d067
|
||||||
|
FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7
|
||||||
|
FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679
|
||||||
|
FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3
|
||||||
|
FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9
|
||||||
|
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||||
|
flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
|
||||||
|
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
||||||
|
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||||
|
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
|
||||||
|
HaishinKit: 326e27c4d06427ba53bffc68e516a92033293051
|
||||||
|
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
|
||||||
|
Logboard: 759d82599c439945d430d5a0958455b5a1974a0c
|
||||||
|
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||||
|
native_device_orientation: d6a4dc6887cd8a5ce1049962367aec60139ea0f1
|
||||||
|
ObjectBox: 7760fa9072adcffe102a6adf4646ca84ba70ab6b
|
||||||
|
objectbox_flutter_libs: 4014e38f57250b074b99893ae84579aba8f02876
|
||||||
|
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
|
||||||
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
|
protocol_handler_ios: 59f23ee71f3ec602d67902ca7f669a80957888d5
|
||||||
|
rust_lib_ndk: bf974d06ca7805c0729bf19e400ba9d8a1d67e22
|
||||||
|
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
|
||||||
|
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||||
|
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
||||||
|
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||||
|
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||||
|
wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5
|
||||||
|
|
||||||
|
COCOAPODS: 1.16.2
|
@ -8,9 +8,12 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||||
|
283FBE47FA6371E399829C24 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5D6BBF654182E2B43AEE6CF /* Pods_Runner.framework */; };
|
||||||
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
|
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||||
|
70887CE2EEA82E287D0F5E32 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CF9F2521979EC3F259E9C06 /* Pods_RunnerTests.framework */; };
|
||||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
||||||
|
890FE2C12DE5F810002F606E /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 890FE2C02DE5F810002F606E /* GoogleService-Info.plist */; };
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||||
@ -42,12 +45,19 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||||
|
2CF9F2521979EC3F259E9C06 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
||||||
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
3898346B5A5C027C9FA9F7CE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||||
|
424535975AD213D6739D7587 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
609868B63798C72BBCCC36BC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
725BF2C4E11E8D4BA045D24E /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||||
|
890FE2BD2DE5F0A1002F606E /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
|
||||||
|
890FE2C02DE5F810002F606E /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
@ -55,19 +65,53 @@
|
|||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
B6A06DA2BDF5319EBC10C29D /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
D5D6BBF654182E2B43AEE6CF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
FCD68F499269973BDF0E58C7 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
87AF17021AFC993B1F4EBD74 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
70887CE2EEA82E287D0F5E32 /* Pods_RunnerTests.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */ = {
|
97C146EB1CF9000F007C117D /* Frameworks */ = {
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
283FBE47FA6371E399829C24 /* Pods_Runner.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
065520562861D7FEFAE4BB7B /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D5D6BBF654182E2B43AEE6CF /* Pods_Runner.framework */,
|
||||||
|
2CF9F2521979EC3F259E9C06 /* Pods_RunnerTests.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
20030AF4DA59ECDC7C15CF46 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
725BF2C4E11E8D4BA045D24E /* Pods-Runner.debug.xcconfig */,
|
||||||
|
B6A06DA2BDF5319EBC10C29D /* Pods-Runner.release.xcconfig */,
|
||||||
|
424535975AD213D6739D7587 /* Pods-Runner.profile.xcconfig */,
|
||||||
|
3898346B5A5C027C9FA9F7CE /* Pods-RunnerTests.debug.xcconfig */,
|
||||||
|
609868B63798C72BBCCC36BC /* Pods-RunnerTests.release.xcconfig */,
|
||||||
|
FCD68F499269973BDF0E58C7 /* Pods-RunnerTests.profile.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
331C8082294A63A400263BE5 /* RunnerTests */ = {
|
331C8082294A63A400263BE5 /* RunnerTests */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -90,10 +134,13 @@
|
|||||||
97C146E51CF9000F007C117D = {
|
97C146E51CF9000F007C117D = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
890FE2C02DE5F810002F606E /* GoogleService-Info.plist */,
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
9740EEB11CF90186004384FC /* Flutter */,
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
97C146F01CF9000F007C117D /* Runner */,
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
331C8082294A63A400263BE5 /* RunnerTests */,
|
331C8082294A63A400263BE5 /* RunnerTests */,
|
||||||
|
20030AF4DA59ECDC7C15CF46 /* Pods */,
|
||||||
|
065520562861D7FEFAE4BB7B /* Frameworks */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@ -109,6 +156,7 @@
|
|||||||
97C146F01CF9000F007C117D /* Runner */ = {
|
97C146F01CF9000F007C117D /* Runner */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
890FE2BD2DE5F0A1002F606E /* Runner.entitlements */,
|
||||||
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
||||||
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
||||||
@ -128,8 +176,10 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
A1414F384F1233363335534B /* [CP] Check Pods Manifest.lock */,
|
||||||
331C807D294A63A400263BE5 /* Sources */,
|
331C807D294A63A400263BE5 /* Sources */,
|
||||||
331C807F294A63A400263BE5 /* Resources */,
|
331C807F294A63A400263BE5 /* Resources */,
|
||||||
|
87AF17021AFC993B1F4EBD74 /* Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@ -145,12 +195,15 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
69481579FDF721E2538F77B8 /* [CP] Check Pods Manifest.lock */,
|
||||||
9740EEB61CF901F6004384FC /* Run Script */,
|
9740EEB61CF901F6004384FC /* Run Script */,
|
||||||
97C146EA1CF9000F007C117D /* Sources */,
|
97C146EA1CF9000F007C117D /* Sources */,
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||||
97C146EC1CF9000F007C117D /* Resources */,
|
97C146EC1CF9000F007C117D /* Resources */,
|
||||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||||
|
EE4EB2C0965EE37F595A4359 /* [CP] Embed Pods Frameworks */,
|
||||||
|
6A0665F4C04FEAEA070B0BE1 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@ -214,6 +267,7 @@
|
|||||||
files = (
|
files = (
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
||||||
|
890FE2C12DE5F810002F606E /* GoogleService-Info.plist in Resources */,
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
||||||
);
|
);
|
||||||
@ -238,6 +292,45 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
||||||
};
|
};
|
||||||
|
69481579FDF721E2538F77B8 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
6A0665F4C04FEAEA070B0BE1 /* [CP] Copy Pods Resources */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Copy Pods Resources";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
alwaysOutOfDate = 1;
|
alwaysOutOfDate = 1;
|
||||||
@ -253,6 +346,45 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||||
};
|
};
|
||||||
|
A1414F384F1233363335534B /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
EE4EB2C0965EE37F595A4359 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
@ -361,14 +493,17 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -378,6 +513,7 @@
|
|||||||
};
|
};
|
||||||
331C8088294A63A400263BE5 /* Debug */ = {
|
331C8088294A63A400263BE5 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 3898346B5A5C027C9FA9F7CE /* Pods-RunnerTests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
@ -395,6 +531,7 @@
|
|||||||
};
|
};
|
||||||
331C8089294A63A400263BE5 /* Release */ = {
|
331C8089294A63A400263BE5 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 609868B63798C72BBCCC36BC /* Pods-RunnerTests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
@ -410,6 +547,7 @@
|
|||||||
};
|
};
|
||||||
331C808A294A63A400263BE5 /* Profile */ = {
|
331C808A294A63A400263BE5 /* Profile */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = FCD68F499269973BDF0E58C7 /* Pods-RunnerTests.profile.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
@ -427,7 +565,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
@ -484,7 +622,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
@ -540,14 +678,17 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
@ -562,14 +703,17 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
<MacroExpansion>
|
<MacroExpansion>
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
@ -54,6 +55,7 @@
|
|||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||||
launchStyle = "0"
|
launchStyle = "0"
|
||||||
useCustomWorkingDirectory = "NO"
|
useCustomWorkingDirectory = "NO"
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
@ -4,4 +4,7 @@
|
|||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Runner.xcodeproj">
|
location = "group:Runner.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
@ -1,122 +1 @@
|
|||||||
{
|
{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-20x20@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-40x40@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-60x60@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-60x60@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-20x20@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-40x40@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-76x76@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-76x76@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "83.5x83.5",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "1024x1024",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"filename" : "Icon-App-1024x1024@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 784 B |
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 6.3 KiB |
@ -2,16 +2,43 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
|
<true/>
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Zap Stream Flutter</string>
|
<string>zap.stream</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
|
<key>CFBundleLocalizations</key>
|
||||||
|
<array>
|
||||||
|
<string>ar</string>
|
||||||
|
<string>cs</string>
|
||||||
|
<string>da</string>
|
||||||
|
<string>de</string>
|
||||||
|
<string>el</string>
|
||||||
|
<string>en</string>
|
||||||
|
<string>es</string>
|
||||||
|
<string>fi</string>
|
||||||
|
<string>fr</string>
|
||||||
|
<string>hu</string>
|
||||||
|
<string>it</string>
|
||||||
|
<string>ja</string>
|
||||||
|
<string>ko</string>
|
||||||
|
<string>nl</string>
|
||||||
|
<string>pl</string>
|
||||||
|
<string>pt</string>
|
||||||
|
<string>ro</string>
|
||||||
|
<string>ru</string>
|
||||||
|
<string>sv</string>
|
||||||
|
<string>tr</string>
|
||||||
|
<string>uk</string>
|
||||||
|
<string>zh</string>
|
||||||
|
</array>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>zap_stream_flutter</string>
|
<string>zap_stream_flutter</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
@ -20,10 +47,33 @@
|
|||||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
|
<key>CFBundleURLTypes</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Editor</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>zswc</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||||
|
<key>FirebaseMessagingAutoInitEnabled</key>
|
||||||
|
<false/>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||||
|
<true/>
|
||||||
|
<key>UIBackgroundModes</key>
|
||||||
|
<array>
|
||||||
|
<string>fetch</string>
|
||||||
|
<string>remote-notification</string>
|
||||||
|
<string>audio</string>
|
||||||
|
</array>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIMainStoryboardFile</key>
|
<key>UIMainStoryboardFile</key>
|
||||||
@ -41,9 +91,9 @@
|
|||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<true/>
|
<string>Live streaming</string>
|
||||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<true/>
|
<string>Live streaming</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
13
ios/Runner/Runner.entitlements
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>aps-environment</key>
|
||||||
|
<string>development</string>
|
||||||
|
<key>com.apple.developer.associated-domains</key>
|
||||||
|
<array>
|
||||||
|
<string>applinks:zap.stream</string>
|
||||||
|
<string>zswc</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
260
lib/api.dart
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:developer' as developer;
|
||||||
|
|
||||||
|
import 'package:convert/convert.dart';
|
||||||
|
import 'package:crypto/crypto.dart';
|
||||||
|
import 'package:http/http.dart' as http;
|
||||||
|
import 'package:ndk/ndk.dart';
|
||||||
|
import 'package:zap_stream_flutter/const.dart';
|
||||||
|
|
||||||
|
class IngestEndpoint {
|
||||||
|
final String name;
|
||||||
|
final String url;
|
||||||
|
final String key;
|
||||||
|
final IngestCost cost;
|
||||||
|
final List<String> capabilities;
|
||||||
|
|
||||||
|
const IngestEndpoint({
|
||||||
|
required this.name,
|
||||||
|
required this.url,
|
||||||
|
required this.key,
|
||||||
|
required this.cost,
|
||||||
|
required this.capabilities,
|
||||||
|
});
|
||||||
|
|
||||||
|
static IngestEndpoint fromJson(Map<String, dynamic> json) {
|
||||||
|
return IngestEndpoint(
|
||||||
|
name: json["name"],
|
||||||
|
url: json["url"],
|
||||||
|
key: json["key"],
|
||||||
|
cost: IngestCost.fromJson(json["cost"]),
|
||||||
|
capabilities: List<String>.from(json["capabilities"]),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => name.hashCode;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
if (other is IngestEndpoint) {
|
||||||
|
return other.name == name;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class IngestCost {
|
||||||
|
final String unit;
|
||||||
|
final double rate;
|
||||||
|
|
||||||
|
const IngestCost({required this.unit, required this.rate});
|
||||||
|
|
||||||
|
static IngestCost fromJson(Map<String, dynamic> json) {
|
||||||
|
return IngestCost(unit: json["unit"], rate: json["rate"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TosAccepted {
|
||||||
|
final bool accepted;
|
||||||
|
final String? link;
|
||||||
|
|
||||||
|
const TosAccepted({required this.accepted, required this.link});
|
||||||
|
|
||||||
|
static TosAccepted fromJson(Map<String, dynamic> json) {
|
||||||
|
return TosAccepted(accepted: json["accepted"], link: json["link"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AccountInfo {
|
||||||
|
final double balance;
|
||||||
|
final List<IngestEndpoint> endpoints;
|
||||||
|
final TosAccepted tos;
|
||||||
|
final EventInfo? details;
|
||||||
|
|
||||||
|
const AccountInfo({
|
||||||
|
required this.balance,
|
||||||
|
required this.endpoints,
|
||||||
|
required this.tos,
|
||||||
|
this.details,
|
||||||
|
});
|
||||||
|
|
||||||
|
static AccountInfo fromJson(Map<String, dynamic> json) {
|
||||||
|
final balance = json["balance"] as int;
|
||||||
|
final endpoints = json["endpoints"] as Iterable<dynamic>;
|
||||||
|
return AccountInfo(
|
||||||
|
balance: balance.toDouble(),
|
||||||
|
endpoints: endpoints.map((e) => IngestEndpoint.fromJson(e)).toList(),
|
||||||
|
tos: TosAccepted.fromJson(json["tos"]),
|
||||||
|
details:
|
||||||
|
json.containsKey("details")
|
||||||
|
? EventInfo.fromJson(json["details"])
|
||||||
|
: null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class EventInfo {
|
||||||
|
final String? id;
|
||||||
|
final String? title;
|
||||||
|
final String? summary;
|
||||||
|
final String? image;
|
||||||
|
final String? contentWarning;
|
||||||
|
final String? goal;
|
||||||
|
final List<String>? tags;
|
||||||
|
|
||||||
|
EventInfo({
|
||||||
|
required this.id,
|
||||||
|
required this.title,
|
||||||
|
required this.summary,
|
||||||
|
required this.image,
|
||||||
|
required this.contentWarning,
|
||||||
|
required this.goal,
|
||||||
|
required this.tags,
|
||||||
|
});
|
||||||
|
|
||||||
|
static EventInfo fromJson(Map<String, dynamic> json) {
|
||||||
|
return EventInfo(
|
||||||
|
id: json["id"],
|
||||||
|
title: json["title"],
|
||||||
|
summary: json["summary"],
|
||||||
|
image: json["image"],
|
||||||
|
contentWarning: json["content_warning"],
|
||||||
|
goal: json["goal"],
|
||||||
|
tags: json.containsKey("tags") ? List<String>.from(json["tags"]) : null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ZapStreamApi {
|
||||||
|
final String base;
|
||||||
|
final EventSigner signer;
|
||||||
|
|
||||||
|
ZapStreamApi(this.base, this.signer);
|
||||||
|
|
||||||
|
static ZapStreamApi instance() {
|
||||||
|
return ZapStreamApi(apiUrl, ndk.accounts.getLoggedAccount()!.signer);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<AccountInfo> getAccountInfo() async {
|
||||||
|
final url = "$base/account";
|
||||||
|
final rsp = await _sendGetRequest(url);
|
||||||
|
return AccountInfo.fromJson(JsonCodec().decode(rsp.body));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> updateDefaultStreamInfo({
|
||||||
|
String? title,
|
||||||
|
String? summary,
|
||||||
|
String? image,
|
||||||
|
String? contentWarning,
|
||||||
|
String? goal,
|
||||||
|
List<String>? tags,
|
||||||
|
}) async {
|
||||||
|
final url = "$base/event";
|
||||||
|
await _sendPatchRequest(
|
||||||
|
url,
|
||||||
|
body: {
|
||||||
|
"title": title,
|
||||||
|
"summary": summary,
|
||||||
|
"image": image,
|
||||||
|
"content_warning": contentWarning,
|
||||||
|
"goal": goal,
|
||||||
|
"tags": tags,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> acceptTos() async {
|
||||||
|
await _sendPatchRequest("$base/account", body: {"accept_tos": true});
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<http.Response> _sendPatchRequest(String url, {Object? body}) async {
|
||||||
|
final jsonBody = body != null ? JsonCodec().encode(body) : null;
|
||||||
|
final auth = await _makeAuth("PATCH", url, body: jsonBody);
|
||||||
|
final rsp = await http
|
||||||
|
.patch(
|
||||||
|
Uri.parse(url),
|
||||||
|
body: jsonBody,
|
||||||
|
headers: {
|
||||||
|
"authorization": "Nostr $auth",
|
||||||
|
"accept": "application/json",
|
||||||
|
"content-type": "application/json",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.timeout(Duration(seconds: 10));
|
||||||
|
developer.log(rsp.body);
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<http.Response> _sendPutRequest(String url, {Object? body}) async {
|
||||||
|
final jsonBody = body != null ? JsonCodec().encode(body) : null;
|
||||||
|
final auth = await _makeAuth("PUT", url, body: jsonBody);
|
||||||
|
final rsp = await http
|
||||||
|
.put(
|
||||||
|
Uri.parse(url),
|
||||||
|
body: jsonBody,
|
||||||
|
headers: {
|
||||||
|
"authorization": "Nostr $auth",
|
||||||
|
"accept": "application/json",
|
||||||
|
"content-type": "application/json",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.timeout(Duration(seconds: 10));
|
||||||
|
developer.log(rsp.body);
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<http.Response> _sendGetRequest(String url, {Object? body}) async {
|
||||||
|
final jsonBody = body != null ? JsonCodec().encode(body) : null;
|
||||||
|
final auth = await _makeAuth("GET", url, body: jsonBody);
|
||||||
|
final rsp = await http
|
||||||
|
.get(
|
||||||
|
Uri.parse(url),
|
||||||
|
headers: {
|
||||||
|
"authorization": "Nostr $auth",
|
||||||
|
"accept": "application/json",
|
||||||
|
"content-type": "application/json",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.timeout(Duration(seconds: 10));
|
||||||
|
developer.log(rsp.body);
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<http.Response> _sendDeleteRequest(String url, {Object? body}) async {
|
||||||
|
final jsonBody = body != null ? JsonCodec().encode(body) : null;
|
||||||
|
final auth = await _makeAuth("DELETE", url, body: jsonBody);
|
||||||
|
final rsp = await http
|
||||||
|
.delete(
|
||||||
|
Uri.parse(url),
|
||||||
|
headers: {
|
||||||
|
"authorization": "Nostr $auth",
|
||||||
|
"accept": "application/json",
|
||||||
|
"content-type": "application/json",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.timeout(Duration(seconds: 10));
|
||||||
|
developer.log(rsp.body);
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<String> _makeAuth(String method, String url, {String? body}) async {
|
||||||
|
final pubkey = signer.getPublicKey();
|
||||||
|
var tags = [
|
||||||
|
["u", url],
|
||||||
|
["method", method],
|
||||||
|
];
|
||||||
|
if (body != null) {
|
||||||
|
final hash = hex.encode(sha256.convert(utf8.encode(body)).bytes);
|
||||||
|
tags.add(["payload", hash]);
|
||||||
|
}
|
||||||
|
final authEvent = Nip01Event(
|
||||||
|
pubKey: pubkey,
|
||||||
|
kind: 27235,
|
||||||
|
tags: tags,
|
||||||
|
content: "",
|
||||||
|
);
|
||||||
|
await signer.sign(authEvent);
|
||||||
|
return authEvent.toBase64();
|
||||||
|
}
|
||||||
|
}
|
27
lib/app.dart
@ -6,11 +6,14 @@ import 'package:zap_stream_flutter/i18n/strings.g.dart';
|
|||||||
import 'package:zap_stream_flutter/pages/category.dart';
|
import 'package:zap_stream_flutter/pages/category.dart';
|
||||||
import 'package:zap_stream_flutter/pages/hashtag.dart';
|
import 'package:zap_stream_flutter/pages/hashtag.dart';
|
||||||
import 'package:zap_stream_flutter/pages/home.dart';
|
import 'package:zap_stream_flutter/pages/home.dart';
|
||||||
|
import 'package:zap_stream_flutter/pages/live.dart';
|
||||||
import 'package:zap_stream_flutter/pages/login.dart';
|
import 'package:zap_stream_flutter/pages/login.dart';
|
||||||
import 'package:zap_stream_flutter/pages/login_input.dart';
|
import 'package:zap_stream_flutter/pages/login_input.dart';
|
||||||
import 'package:zap_stream_flutter/pages/new_account.dart';
|
import 'package:zap_stream_flutter/pages/new_account.dart';
|
||||||
import 'package:zap_stream_flutter/pages/profile.dart';
|
import 'package:zap_stream_flutter/pages/profile.dart';
|
||||||
|
import 'package:zap_stream_flutter/pages/settings.dart';
|
||||||
import 'package:zap_stream_flutter/pages/settings_profile.dart';
|
import 'package:zap_stream_flutter/pages/settings_profile.dart';
|
||||||
|
import 'package:zap_stream_flutter/pages/settings_wallet.dart';
|
||||||
import 'package:zap_stream_flutter/pages/stream.dart';
|
import 'package:zap_stream_flutter/pages/stream.dart';
|
||||||
import 'package:zap_stream_flutter/theme.dart';
|
import 'package:zap_stream_flutter/theme.dart';
|
||||||
import 'package:zap_stream_flutter/utils.dart';
|
import 'package:zap_stream_flutter/utils.dart';
|
||||||
@ -23,10 +26,21 @@ void runZapStream() {
|
|||||||
supportedLocales: AppLocaleUtils.supportedLocales,
|
supportedLocales: AppLocaleUtils.supportedLocales,
|
||||||
localizationsDelegates: GlobalMaterialLocalizations.delegates,
|
localizationsDelegates: GlobalMaterialLocalizations.delegates,
|
||||||
theme: ThemeData.localize(
|
theme: ThemeData.localize(
|
||||||
ThemeData(colorScheme: ColorScheme.dark(), highlightColor: PRIMARY_1),
|
ThemeData(
|
||||||
|
colorScheme: ColorScheme.dark(),
|
||||||
|
highlightColor: PRIMARY_1,
|
||||||
|
useMaterial3: true,
|
||||||
|
),
|
||||||
TextTheme(),
|
TextTheme(),
|
||||||
),
|
),
|
||||||
routerConfig: GoRouter(
|
routerConfig: GoRouter(
|
||||||
|
redirect: (context, state) {
|
||||||
|
// redirect back to the wallet settings page
|
||||||
|
if (state.uri.scheme == "zswc") {
|
||||||
|
return "/settings/wallet";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
routes: [
|
routes: [
|
||||||
ShellRoute(
|
ShellRoute(
|
||||||
observers: [routeObserver],
|
observers: [routeObserver],
|
||||||
@ -102,23 +116,30 @@ void runZapStream() {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
ShellRoute(
|
ShellRoute(
|
||||||
observers: [routeObserver],
|
|
||||||
builder:
|
builder:
|
||||||
(context, state, child) =>
|
(context, state, child) =>
|
||||||
Column(children: [HeaderWidget(), child]),
|
Column(children: [HeaderWidget(), child]),
|
||||||
routes: [
|
routes: [
|
||||||
GoRoute(
|
GoRoute(
|
||||||
path: "/settings",
|
path: "/settings",
|
||||||
builder: (context, state) => SizedBox(),
|
builder: (context, state) => SettingsPage(),
|
||||||
routes: [
|
routes: [
|
||||||
GoRoute(
|
GoRoute(
|
||||||
path: "profile",
|
path: "profile",
|
||||||
builder: (context, state) => SettingsProfilePage(),
|
builder: (context, state) => SettingsProfilePage(),
|
||||||
),
|
),
|
||||||
|
GoRoute(
|
||||||
|
path: "wallet",
|
||||||
|
builder: (context, state) => SettingsWalletPage(),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
GoRoute(
|
||||||
|
path: "/live",
|
||||||
|
builder: (context, state) => LivePage(),
|
||||||
|
),
|
||||||
GoRoute(
|
GoRoute(
|
||||||
path: "/:id",
|
path: "/:id",
|
||||||
redirect: (context, state) {
|
redirect: (context, state) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:amberflutter/amberflutter.dart';
|
import 'package:amberflutter/amberflutter.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
import 'package:ndk/ndk.dart';
|
import 'package:ndk/ndk.dart';
|
||||||
import 'package:ndk_amber/ndk_amber.dart';
|
import 'package:ndk_amber/ndk_amber.dart';
|
||||||
@ -17,7 +18,7 @@ class NoVerify extends EventVerifier {
|
|||||||
|
|
||||||
final ndkCache = DbObjectBox();
|
final ndkCache = DbObjectBox();
|
||||||
final eventVerifier = kDebugMode ? NoVerify() : RustEventVerifier();
|
final eventVerifier = kDebugMode ? NoVerify() : RustEventVerifier();
|
||||||
var ndk = Ndk(
|
final ndk = Ndk(
|
||||||
NdkConfig(
|
NdkConfig(
|
||||||
eventVerifier: eventVerifier,
|
eventVerifier: eventVerifier,
|
||||||
cache: ndkCache,
|
cache: ndkCache,
|
||||||
@ -35,6 +36,8 @@ const defaultRelays = [
|
|||||||
"wss://relay.fountain.fm",
|
"wss://relay.fountain.fm",
|
||||||
];
|
];
|
||||||
const searchRelays = ["wss://relay.nostr.band", "wss://search.nos.today"];
|
const searchRelays = ["wss://relay.nostr.band", "wss://search.nos.today"];
|
||||||
|
const nwcRelays = ["wss://relay.getalby.com/v1"];
|
||||||
|
final apiUrl = dotenv.env["API_URL"] ?? "https://api.zap.stream/api/nostr";
|
||||||
|
|
||||||
final loginData = LoginData();
|
final loginData = LoginData();
|
||||||
final RouteObserver<ModalRoute<void>> routeObserver =
|
final RouteObserver<ModalRoute<void>> routeObserver =
|
||||||
|
@ -59,11 +59,11 @@ class DefaultFirebaseOptions {
|
|||||||
|
|
||||||
static const FirebaseOptions ios = FirebaseOptions(
|
static const FirebaseOptions ios = FirebaseOptions(
|
||||||
apiKey: 'AIzaSyByygErXpki6Q7NXOXTHbRgg3-Tw-KCVO0',
|
apiKey: 'AIzaSyByygErXpki6Q7NXOXTHbRgg3-Tw-KCVO0',
|
||||||
appId: '1:953923151748:ios:30ec9a230e55fe139e9fd1',
|
appId: '1:953923151748:ios:aef9c54f556258d39e9fd1',
|
||||||
messagingSenderId: '953923151748',
|
messagingSenderId: '953923151748',
|
||||||
projectId: 'nostrlabs',
|
projectId: 'nostrlabs',
|
||||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||||
iosBundleId: 'io.nostrlabs.zapStreamFlutter',
|
iosBundleId: 'io.nostrlabs.zap-stream',
|
||||||
);
|
);
|
||||||
|
|
||||||
static const FirebaseOptions macos = FirebaseOptions(
|
static const FirebaseOptions macos = FirebaseOptions(
|
||||||
@ -83,4 +83,5 @@ class DefaultFirebaseOptions {
|
|||||||
authDomain: 'nostrlabs.firebaseapp.com',
|
authDomain: 'nostrlabs.firebaseapp.com',
|
||||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
}
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: "Username"
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|
@ -3,24 +3,21 @@
|
|||||||
/// Source: lib/i18n
|
/// Source: lib/i18n
|
||||||
/// To regenerate, run: `dart run slang`
|
/// To regenerate, run: `dart run slang`
|
||||||
///
|
///
|
||||||
/// Locales: 28
|
/// Locales: 22
|
||||||
/// Strings: 1764 (63 per locale)
|
/// Strings: 2010 (91 per locale)
|
||||||
///
|
///
|
||||||
/// Built on 2025-05-20 at 16:08 UTC
|
/// Built on 2025-05-30 at 13:17 UTC
|
||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'package:slang_flutter/slang_flutter.dart';
|
import 'package:slang_flutter/slang_flutter.dart';
|
||||||
export '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_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_cs.g.dart' deferred as l_cs;
|
||||||
import 'strings_da.g.dart' deferred as l_da;
|
import 'strings_da.g.dart' deferred as l_da;
|
||||||
import 'strings_de.g.dart' deferred as l_de;
|
import 'strings_de.g.dart' deferred as l_de;
|
||||||
@ -28,22 +25,18 @@ import 'strings_el.g.dart' deferred as l_el;
|
|||||||
import 'strings_es.g.dart' deferred as l_es;
|
import 'strings_es.g.dart' deferred as l_es;
|
||||||
import 'strings_fi.g.dart' deferred as l_fi;
|
import 'strings_fi.g.dart' deferred as l_fi;
|
||||||
import 'strings_fr.g.dart' deferred as l_fr;
|
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_hu.g.dart' deferred as l_hu;
|
||||||
import 'strings_it.g.dart' deferred as l_it;
|
import 'strings_it.g.dart' deferred as l_it;
|
||||||
import 'strings_ja.g.dart' deferred as l_ja;
|
import 'strings_ja.g.dart' deferred as l_ja;
|
||||||
import 'strings_ko.g.dart' deferred as l_ko;
|
import 'strings_ko.g.dart' deferred as l_ko;
|
||||||
import 'strings_nl.g.dart' deferred as l_nl;
|
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_pl.g.dart' deferred as l_pl;
|
||||||
import 'strings_pt.g.dart' deferred as l_pt;
|
import 'strings_pt.g.dart' deferred as l_pt;
|
||||||
import 'strings_ro.g.dart' deferred as l_ro;
|
import 'strings_ro.g.dart' deferred as l_ro;
|
||||||
import 'strings_ru.g.dart' deferred as l_ru;
|
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_sv.g.dart' deferred as l_sv;
|
||||||
import 'strings_tr.g.dart' deferred as l_tr;
|
import 'strings_tr.g.dart' deferred as l_tr;
|
||||||
import 'strings_uk.g.dart' deferred as l_uk;
|
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;
|
import 'strings_zh.g.dart' deferred as l_zh;
|
||||||
part 'strings_en.g.dart';
|
part 'strings_en.g.dart';
|
||||||
|
|
||||||
@ -55,9 +48,7 @@ part 'strings_en.g.dart';
|
|||||||
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
|
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
|
||||||
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
||||||
en(languageCode: 'en'),
|
en(languageCode: 'en'),
|
||||||
af(languageCode: 'af'),
|
|
||||||
ar(languageCode: 'ar'),
|
ar(languageCode: 'ar'),
|
||||||
ca(languageCode: 'ca'),
|
|
||||||
cs(languageCode: 'cs'),
|
cs(languageCode: 'cs'),
|
||||||
da(languageCode: 'da'),
|
da(languageCode: 'da'),
|
||||||
de(languageCode: 'de'),
|
de(languageCode: 'de'),
|
||||||
@ -65,22 +56,18 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
es(languageCode: 'es'),
|
es(languageCode: 'es'),
|
||||||
fi(languageCode: 'fi'),
|
fi(languageCode: 'fi'),
|
||||||
fr(languageCode: 'fr'),
|
fr(languageCode: 'fr'),
|
||||||
he(languageCode: 'he'),
|
|
||||||
hu(languageCode: 'hu'),
|
hu(languageCode: 'hu'),
|
||||||
it(languageCode: 'it'),
|
it(languageCode: 'it'),
|
||||||
ja(languageCode: 'ja'),
|
ja(languageCode: 'ja'),
|
||||||
ko(languageCode: 'ko'),
|
ko(languageCode: 'ko'),
|
||||||
nl(languageCode: 'nl'),
|
nl(languageCode: 'nl'),
|
||||||
no(languageCode: 'no'),
|
|
||||||
pl(languageCode: 'pl'),
|
pl(languageCode: 'pl'),
|
||||||
pt(languageCode: 'pt'),
|
pt(languageCode: 'pt'),
|
||||||
ro(languageCode: 'ro'),
|
ro(languageCode: 'ro'),
|
||||||
ru(languageCode: 'ru'),
|
ru(languageCode: 'ru'),
|
||||||
sr(languageCode: 'sr'),
|
|
||||||
sv(languageCode: 'sv'),
|
sv(languageCode: 'sv'),
|
||||||
tr(languageCode: 'tr'),
|
tr(languageCode: 'tr'),
|
||||||
uk(languageCode: 'uk'),
|
uk(languageCode: 'uk'),
|
||||||
vi(languageCode: 'vi'),
|
|
||||||
zh(languageCode: 'zh');
|
zh(languageCode: 'zh');
|
||||||
|
|
||||||
const AppLocale({
|
const AppLocale({
|
||||||
@ -106,13 +93,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.af:
|
|
||||||
await l_af.loadLibrary();
|
|
||||||
return l_af.TranslationsAf(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.ar:
|
case AppLocale.ar:
|
||||||
await l_ar.loadLibrary();
|
await l_ar.loadLibrary();
|
||||||
return l_ar.TranslationsAr(
|
return l_ar.TranslationsAr(
|
||||||
@ -120,13 +100,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.ca:
|
|
||||||
await l_ca.loadLibrary();
|
|
||||||
return l_ca.TranslationsCa(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.cs:
|
case AppLocale.cs:
|
||||||
await l_cs.loadLibrary();
|
await l_cs.loadLibrary();
|
||||||
return l_cs.TranslationsCs(
|
return l_cs.TranslationsCs(
|
||||||
@ -176,13 +149,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.he:
|
|
||||||
await l_he.loadLibrary();
|
|
||||||
return l_he.TranslationsHe(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.hu:
|
case AppLocale.hu:
|
||||||
await l_hu.loadLibrary();
|
await l_hu.loadLibrary();
|
||||||
return l_hu.TranslationsHu(
|
return l_hu.TranslationsHu(
|
||||||
@ -218,13 +184,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.no:
|
|
||||||
await l_no.loadLibrary();
|
|
||||||
return l_no.TranslationsNo(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.pl:
|
case AppLocale.pl:
|
||||||
await l_pl.loadLibrary();
|
await l_pl.loadLibrary();
|
||||||
return l_pl.TranslationsPl(
|
return l_pl.TranslationsPl(
|
||||||
@ -253,13 +212,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.sr:
|
|
||||||
await l_sr.loadLibrary();
|
|
||||||
return l_sr.TranslationsSr(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.sv:
|
case AppLocale.sv:
|
||||||
await l_sv.loadLibrary();
|
await l_sv.loadLibrary();
|
||||||
return l_sv.TranslationsSv(
|
return l_sv.TranslationsSv(
|
||||||
@ -281,13 +233,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.vi:
|
|
||||||
await l_vi.loadLibrary();
|
|
||||||
return l_vi.TranslationsVi(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.zh:
|
case AppLocale.zh:
|
||||||
await l_zh.loadLibrary();
|
await l_zh.loadLibrary();
|
||||||
return l_zh.TranslationsZh(
|
return l_zh.TranslationsZh(
|
||||||
@ -311,24 +256,12 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.af:
|
|
||||||
return l_af.TranslationsAf(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.ar:
|
case AppLocale.ar:
|
||||||
return l_ar.TranslationsAr(
|
return l_ar.TranslationsAr(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.ca:
|
|
||||||
return l_ca.TranslationsCa(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.cs:
|
case AppLocale.cs:
|
||||||
return l_cs.TranslationsCs(
|
return l_cs.TranslationsCs(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
@ -371,12 +304,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.he:
|
|
||||||
return l_he.TranslationsHe(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.hu:
|
case AppLocale.hu:
|
||||||
return l_hu.TranslationsHu(
|
return l_hu.TranslationsHu(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
@ -407,12 +334,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.no:
|
|
||||||
return l_no.TranslationsNo(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.pl:
|
case AppLocale.pl:
|
||||||
return l_pl.TranslationsPl(
|
return l_pl.TranslationsPl(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
@ -437,12 +358,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.sr:
|
|
||||||
return l_sr.TranslationsSr(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.sv:
|
case AppLocale.sv:
|
||||||
return l_sv.TranslationsSv(
|
return l_sv.TranslationsSv(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
@ -461,12 +376,6 @@ enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
|||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
);
|
);
|
||||||
case AppLocale.vi:
|
|
||||||
return l_vi.TranslationsVi(
|
|
||||||
overrides: overrides,
|
|
||||||
cardinalResolver: cardinalResolver,
|
|
||||||
ordinalResolver: ordinalResolver,
|
|
||||||
);
|
|
||||||
case AppLocale.zh:
|
case AppLocale.zh:
|
||||||
return l_zh.TranslationsZh(
|
return l_zh.TranslationsZh(
|
||||||
overrides: overrides,
|
overrides: overrides,
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsAf implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <af>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsAf _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsAf $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginAf login = _TranslationsLoginAf._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamAf implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamAf._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalAf._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonAf._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedAf implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedAf._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListAf._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapAf._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorAf error = _TranslationsZapErrorAf._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileAf implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileAf._(this._root);
|
|
||||||
|
|
||||||
final TranslationsAf _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditAf edit = _TranslationsProfileEditAf._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginAf implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginAf._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusAf._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatAf._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorAf._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditAf implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditAf._(this._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 _TranslationsProfileEditErrorAf error = _TranslationsProfileEditErrorAf._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorAf implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorAf._(this._root);
|
|
||||||
|
|
||||||
final TranslationsAf _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteAf implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteAf._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeAf._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidAf._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorAf implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorAf._(this._root);
|
|
||||||
|
|
||||||
final TranslationsAf _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsAr implements Translations {
|
class TranslationsAr extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsAr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsAr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsAr implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsAr implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsAr _root = this; // ignore: unused_field
|
late final TranslationsAr _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsAr implements Translations {
|
|||||||
/// مستخدم مجهول
|
/// مستخدم مجهول
|
||||||
@override String get anon => 'هوية مخفية';
|
@override String get anon => 'هوية مخفية';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('ar').format(n)} دولار ساتس';
|
||||||
|
|
||||||
/// عدد مشاهدي البث
|
/// عدد مشاهدي البث
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
||||||
one: '1 مشاهد',
|
one: '1 مشاهد',
|
||||||
other: '${n} المشاهدون',
|
other: '{n:decimalPattern} المشاهدين',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamAr stream = _TranslationsStreamAr._(_root);
|
@override late final _TranslationsStreamAr stream = _TranslationsStreamAr._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsAr implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapAr zap = _TranslationsZapAr._(_root);
|
@override late final _TranslationsZapAr zap = _TranslationsZapAr._(_root);
|
||||||
@override late final _TranslationsProfileAr profile = _TranslationsProfileAr._(_root);
|
@override late final _TranslationsProfileAr profile = _TranslationsProfileAr._(_root);
|
||||||
|
@override late final _TranslationsSettingsAr settings = _TranslationsSettingsAr._(_root);
|
||||||
@override late final _TranslationsLoginAr login = _TranslationsLoginAr._(_root);
|
@override late final _TranslationsLoginAr login = _TranslationsLoginAr._(_root);
|
||||||
|
@override late final _TranslationsLiveAr live = _TranslationsLiveAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamAr implements TranslationsStreamEn {
|
class _TranslationsStreamAr extends TranslationsStreamEn {
|
||||||
_TranslationsStreamAr._(this._root);
|
_TranslationsStreamAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusAr status = _TranslationsStreamStatusAr._(_root);
|
@override late final _TranslationsStreamStatusAr status = _TranslationsStreamStatusAr._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'بدأ ${timestamp}';
|
@override String started({required Object timestamp}) => 'بدأ ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} بدأ البث المباشر!';
|
||||||
@override late final _TranslationsStreamChatAr chat = _TranslationsStreamChatAr._(_root);
|
@override late final _TranslationsStreamChatAr chat = _TranslationsStreamChatAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalAr implements TranslationsGoalEn {
|
class _TranslationsGoalAr extends TranslationsGoalEn {
|
||||||
_TranslationsGoalAr._(this._root);
|
_TranslationsGoalAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'الهدف: ${amount}';
|
@override String title({required Object amount}) => 'الهدف: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'المتبقي: ${amount}';
|
@override String remaining({required Object amount}) => 'المتبقي: ${amount}';
|
||||||
@override String get complete => 'مكتمل';
|
@override String get complete => 'مكتمل';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonAr implements TranslationsButtonEn {
|
class _TranslationsButtonAr extends TranslationsButtonEn {
|
||||||
_TranslationsButtonAr._(this._root);
|
_TranslationsButtonAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonAr implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'رفع الكتم';
|
@override String get unmute => 'رفع الكتم';
|
||||||
@override String get share => 'مشاركة';
|
@override String get share => 'مشاركة';
|
||||||
@override String get save => 'حفظ';
|
@override String get save => 'حفظ';
|
||||||
|
@override String get connect => 'الاتصال';
|
||||||
|
@override String get settings => 'الإعدادات';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedAr implements TranslationsEmbedEn {
|
class _TranslationsEmbedAr extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedAr._(this._root);
|
_TranslationsEmbedAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'مقال بقلم ${name}';
|
@override String article_by({required Object name}) => 'مقال بقلم ${name}';
|
||||||
@override String note_by({ required Object name}) => 'ملاحظة من ${name}';
|
@override String note_by({required Object name}) => 'ملاحظة من ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'بث مباشر من ${name}';
|
@override String live_stream_by({required Object name}) => 'بث مباشر من ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListAr implements TranslationsStreamListEn {
|
class _TranslationsStreamListAr extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListAr._(this._root);
|
_TranslationsStreamListAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListAr implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapAr implements TranslationsZapEn {
|
class _TranslationsZapAr extends TranslationsZapEn {
|
||||||
_TranslationsZapAr._(this._root);
|
_TranslationsZapAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'زاب ${name}';
|
@override String title({required Object name}) => 'زاب ${name}';
|
||||||
@override String get custom_amount => 'المبلغ المخصص';
|
@override String get custom_amount => 'المبلغ المخصص';
|
||||||
@override String get confirm => 'تأكيد';
|
@override String get confirm => 'تأكيد';
|
||||||
@override String get comment => 'تعليق';
|
@override String get comment => 'تعليق';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'أومض ${amount} ساتوشي';
|
@override String button_zap_ready({required Object amount}) => 'أومض ${amount} ساتوشي';
|
||||||
@override String get button_zap => 'زاب';
|
@override String get button_zap => 'زاب';
|
||||||
@override String get button_open_wallet => 'فتح في المحفظة';
|
@override String get button_open_wallet => 'فتح في المحفظة';
|
||||||
|
@override String get button_connect_wallet => 'توصيل المحفظة';
|
||||||
@override String get copy => 'نسخ إلى الحافظة';
|
@override String get copy => 'نسخ إلى الحافظة';
|
||||||
@override late final _TranslationsZapErrorAr error = _TranslationsZapErrorAr._(_root);
|
@override late final _TranslationsZapErrorAr error = _TranslationsZapErrorAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileAr implements TranslationsProfileEn {
|
class _TranslationsProfileAr extends TranslationsProfileEn {
|
||||||
_TranslationsProfileAr._(this._root);
|
_TranslationsProfileAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'التدفقات السابقة';
|
@override String get past_streams => 'التدفقات السابقة';
|
||||||
@override late final _TranslationsProfileEditAr edit = _TranslationsProfileEditAr._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsAr extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'تعديل الملف الشخصي';
|
||||||
|
@override String get button_wallet => 'إعدادات المحفظة';
|
||||||
|
@override late final _TranslationsSettingsProfileAr profile = _TranslationsSettingsProfileAr._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletAr wallet = _TranslationsSettingsWalletAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginAr implements TranslationsLoginEn {
|
class _TranslationsLoginAr extends TranslationsLoginEn {
|
||||||
_TranslationsLoginAr._(this._root);
|
_TranslationsLoginAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginAr implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorAr error = _TranslationsLoginErrorAr._(_root);
|
@override late final _TranslationsLoginErrorAr error = _TranslationsLoginErrorAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveAr extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'ابدأ البث المباشر';
|
||||||
|
@override String get configure_stream => 'تكوين الدفق';
|
||||||
|
@override String get endpoint => 'نقطة النهاية';
|
||||||
|
@override String get accept_tos => 'قبول شروط الخدمة';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'العنوان';
|
||||||
|
@override String get summary => 'الملخص';
|
||||||
|
@override String get image => 'صورة الغلاف';
|
||||||
|
@override String get tags => 'الوسوم';
|
||||||
|
@override String get nsfw => 'محتوى غير لائق جنسيًا';
|
||||||
|
@override String get nsfw_description => 'تحقق هنا إذا كان هذا البث يحتوي على محتوى إباحي أو عري.';
|
||||||
|
@override late final _TranslationsLiveErrorAr error = _TranslationsLiveErrorAr._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusAr implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusAr extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusAr._(this._root);
|
_TranslationsStreamStatusAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusAr implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatAr implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatAr extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatAr._(this._root);
|
_TranslationsStreamChatAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'تم تعطيل الدردشة';
|
@override String get disabled => 'تم تعطيل الدردشة';
|
||||||
@override String disabled_timeout({ required Object time}) => 'تنتهي المهلة: ${time}';
|
@override String disabled_timeout({required Object time}) => 'تنتهي المهلة: ${time}';
|
||||||
|
|
||||||
/// رسالة دردشة تظهر أحداث المهلة
|
/// رسالة دردشة تظهر أحداث المهلة
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' انتهى الوقت '),
|
const TextSpan(text: ' انتهى الوقت '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' لـ '),
|
const TextSpan(text: ' لـ '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// تيار انتهى التذييل في أسفل الدردشة
|
/// تيار انتهى التذييل في أسفل الدردشة
|
||||||
@override String get ended => 'انتهى البث';
|
@override String get ended => 'انتهى البث';
|
||||||
|
|
||||||
/// رسالة الدردشة التي تُظهر البث المباشر
|
/// رسالة الدردشة التي تُظهر البث المباشر
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' انطلق '),
|
const TextSpan(text: ' انطلق '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' ساتس'),
|
const TextSpan(text: ' ساتس'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteAr write = _TranslationsStreamChatWriteAr._(_root);
|
@override late final _TranslationsStreamChatWriteAr write = _TranslationsStreamChatWriteAr._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeAr badge = _TranslationsStreamChatBadgeAr._(_root);
|
@override late final _TranslationsStreamChatBadgeAr badge = _TranslationsStreamChatBadgeAr._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatAr implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorAr implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorAr extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorAr._(this._root);
|
_TranslationsZapErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorAr implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'لم يتم العثور على عنوان البرق';
|
@override String get no_lud16 => 'لم يتم العثور على عنوان البرق';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditAr implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileAr extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditAr._(this._root);
|
_TranslationsSettingsProfileAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'اسم العرض';
|
@override String get display_name => 'اسم العرض';
|
||||||
@override String get about => 'نبذة';
|
@override String get about => 'نبذة عن';
|
||||||
@override String get nip05 => 'عنوان نوستر';
|
@override String get nip05 => 'عنوان نوستر';
|
||||||
@override String get lud16 => 'عنوان البرق';
|
@override String get lud16 => 'عنوان البرق';
|
||||||
@override late final _TranslationsProfileEditErrorAr error = _TranslationsProfileEditErrorAr._(_root);
|
@override late final _TranslationsSettingsProfileErrorAr error = _TranslationsSettingsProfileErrorAr._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletAr extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'الرصيد';
|
||||||
|
@override String get name => 'المحفظة';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorAr error = _TranslationsSettingsWalletErrorAr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorAr implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorAr extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorAr._(this._root);
|
_TranslationsLoginErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorAr implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'مفتاح غير صالح';
|
@override String get invalid_key => 'مفتاح غير صالح';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorAr extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'فشل البث';
|
||||||
|
@override String get connection_error => 'خطأ في الاتصال';
|
||||||
|
@override String get start_failed => 'فشل بدء البث فشل، يرجى التحقق من رصيدك';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteAr implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteAr extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteAr._(this._root);
|
_TranslationsStreamChatWriteAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteAr implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeAr implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeAr extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeAr._(this._root);
|
_TranslationsStreamChatBadgeAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeAr implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidAr implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidAr extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidAr._(this._root);
|
_TranslationsStreamChatRaidAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// رسالة غارة الدردشة إلى دفق آخر
|
/// رسالة غارة الدردشة إلى دفق آخر
|
||||||
@override String to({ required Object name}) => 'التصفح ${name}';
|
@override String to({required Object name}) => 'التصفح ${name}';
|
||||||
|
|
||||||
/// رسالة غارة الدردشة من دفق آخر
|
/// رسالة غارة الدردشة من دفق آخر
|
||||||
@override String from({ required Object name}) => 'RAID من ${name}';
|
@override String from({required Object name}) => 'RAID من ${name}';
|
||||||
|
|
||||||
/// مؤقت العد التنازلي للقيادة التلقائية
|
/// مؤقت العد التنازلي للقيادة التلقائية
|
||||||
@override String countdown({ required Object time}) => 'الإغارة في ${time}';
|
@override String countdown({required Object time}) => 'الإغارة في ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorAr implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorAr extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorAr._(this._root);
|
_TranslationsSettingsProfileErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsAr _root; // ignore: unused_field
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorAr implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'لا يمكن تحرير ملف التعريف عند تسجيل الخروج';
|
@override String get logged_out => 'لا يمكن تحرير ملف التعريف عند تسجيل الخروج';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorAr extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsAr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'لا يمكن الاتصال بالمحفظة عند تسجيل الخروج';
|
||||||
|
@override String get nwc_auth_event_not_found => 'لم يتم العثور على حدث مصادقة المحفظة';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsAr {
|
extension on TranslationsAr {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsAr {
|
|||||||
case 'most_zapped_streamers': return 'معظم اللافتات التي يتم بثها';
|
case 'most_zapped_streamers': return 'معظم اللافتات التي يتم بثها';
|
||||||
case 'no_user_found': return 'لم يتم العثور على مستخدم';
|
case 'no_user_found': return 'لم يتم العثور على مستخدم';
|
||||||
case 'anon': return 'هوية مخفية';
|
case 'anon': return 'هوية مخفية';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('ar').format(n)} دولار ساتس';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
||||||
one: '1 مشاهد',
|
one: '1 مشاهد',
|
||||||
other: '${n} المشاهدون',
|
other: '{n:decimalPattern} المشاهدين',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'بث مباشر';
|
case 'stream.status.live': return 'بث مباشر';
|
||||||
case 'stream.status.ended': return 'انتهى';
|
case 'stream.status.ended': return 'انتهى';
|
||||||
case 'stream.status.planned': return 'مخطط';
|
case 'stream.status.planned': return 'مخطط';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'بدأ ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'بدأ ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} بدأ البث المباشر!';
|
||||||
case 'stream.chat.disabled': return 'تم تعطيل الدردشة';
|
case 'stream.chat.disabled': return 'تم تعطيل الدردشة';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'تنتهي المهلة: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'تنتهي المهلة: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' انتهى الوقت '),
|
const TextSpan(text: ' انتهى الوقت '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' لـ '),
|
const TextSpan(text: ' لـ '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'انتهى البث';
|
case 'stream.chat.ended': return 'انتهى البث';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' انطلق '),
|
const TextSpan(text: ' انطلق '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' ساتس'),
|
const TextSpan(text: ' ساتس'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'اكتب رسالة';
|
case 'stream.chat.write.label': return 'اكتب رسالة';
|
||||||
case 'stream.chat.write.no_signer': return 'لا يمكن كتابة الرسائل باستخدام تسجيل الدخول إلى npub';
|
case 'stream.chat.write.no_signer': return 'لا يمكن كتابة الرسائل باستخدام تسجيل الدخول إلى npub';
|
||||||
case 'stream.chat.write.login': return 'الرجاء تسجيل الدخول لإرسال الرسائل';
|
case 'stream.chat.write.login': return 'الرجاء تسجيل الدخول لإرسال الرسائل';
|
||||||
case 'stream.chat.badge.awarded_to': return 'مُنحت الجائزة لـ';
|
case 'stream.chat.badge.awarded_to': return 'مُنحت الجائزة لـ';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'التصفح ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'التصفح ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID من ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID من ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'الإغارة في ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'الإغارة في ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'الهدف: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'الهدف: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'المتبقي: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'المتبقي: ${amount}';
|
||||||
case 'goal.complete': return 'مكتمل';
|
case 'goal.complete': return 'مكتمل';
|
||||||
case 'button.login': return 'تسجيل الدخول';
|
case 'button.login': return 'تسجيل الدخول';
|
||||||
case 'button.logout': return 'تسجيل الخروج';
|
case 'button.logout': return 'تسجيل الخروج';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsAr {
|
|||||||
case 'button.unmute': return 'رفع الكتم';
|
case 'button.unmute': return 'رفع الكتم';
|
||||||
case 'button.share': return 'مشاركة';
|
case 'button.share': return 'مشاركة';
|
||||||
case 'button.save': return 'حفظ';
|
case 'button.save': return 'حفظ';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'مقال بقلم ${name}';
|
case 'button.connect': return 'الاتصال';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'ملاحظة من ${name}';
|
case 'button.settings': return 'الإعدادات';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'بث مباشر من ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'مقال بقلم ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'ملاحظة من ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'بث مباشر من ${name}';
|
||||||
case 'stream_list.following': return 'المتابَعون';
|
case 'stream_list.following': return 'المتابَعون';
|
||||||
case 'stream_list.live': return 'بث مباشر';
|
case 'stream_list.live': return 'بث مباشر';
|
||||||
case 'stream_list.planned': return 'مخطط';
|
case 'stream_list.planned': return 'مخطط';
|
||||||
case 'stream_list.ended': return 'انتهى';
|
case 'stream_list.ended': return 'انتهى';
|
||||||
case 'zap.title': return ({ required Object name}) => 'زاب ${name}';
|
case 'zap.title': return ({required Object name}) => 'زاب ${name}';
|
||||||
case 'zap.custom_amount': return 'المبلغ المخصص';
|
case 'zap.custom_amount': return 'المبلغ المخصص';
|
||||||
case 'zap.confirm': return 'تأكيد';
|
case 'zap.confirm': return 'تأكيد';
|
||||||
case 'zap.comment': return 'تعليق';
|
case 'zap.comment': return 'تعليق';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'أومض ${amount} ساتوشي';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'أومض ${amount} ساتوشي';
|
||||||
case 'zap.button_zap': return 'زاب';
|
case 'zap.button_zap': return 'زاب';
|
||||||
case 'zap.button_open_wallet': return 'فتح في المحفظة';
|
case 'zap.button_open_wallet': return 'فتح في المحفظة';
|
||||||
|
case 'zap.button_connect_wallet': return 'توصيل المحفظة';
|
||||||
case 'zap.copy': return 'نسخ إلى الحافظة';
|
case 'zap.copy': return 'نسخ إلى الحافظة';
|
||||||
case 'zap.error.invalid_custom_amount': return 'مبلغ مخصص غير صالح';
|
case 'zap.error.invalid_custom_amount': return 'مبلغ مخصص غير صالح';
|
||||||
case 'zap.error.no_wallet': return 'لا توجد محفظة برق مثبتة';
|
case 'zap.error.no_wallet': return 'لا توجد محفظة برق مثبتة';
|
||||||
case 'zap.error.no_lud16': return 'لم يتم العثور على عنوان البرق';
|
case 'zap.error.no_lud16': return 'لم يتم العثور على عنوان البرق';
|
||||||
case 'profile.past_streams': return 'التدفقات السابقة';
|
case 'profile.past_streams': return 'التدفقات السابقة';
|
||||||
case 'profile.edit.display_name': return 'اسم العرض';
|
case 'settings.button_profile': return 'تعديل الملف الشخصي';
|
||||||
case 'profile.edit.about': return 'نبذة';
|
case 'settings.button_wallet': return 'إعدادات المحفظة';
|
||||||
case 'profile.edit.nip05': return 'عنوان نوستر';
|
case 'settings.profile.display_name': return 'اسم العرض';
|
||||||
case 'profile.edit.lud16': return 'عنوان البرق';
|
case 'settings.profile.about': return 'نبذة عن';
|
||||||
case 'profile.edit.error.logged_out': return 'لا يمكن تحرير ملف التعريف عند تسجيل الخروج';
|
case 'settings.profile.nip05': return 'عنوان نوستر';
|
||||||
|
case 'settings.profile.lud16': return 'عنوان البرق';
|
||||||
|
case 'settings.profile.error.logged_out': return 'لا يمكن تحرير ملف التعريف عند تسجيل الخروج';
|
||||||
|
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.balance': return 'الرصيد';
|
||||||
|
case 'settings.wallet.name': return 'المحفظة';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'لا يمكن الاتصال بالمحفظة عند تسجيل الخروج';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'لم يتم العثور على حدث مصادقة المحفظة';
|
||||||
case 'login.username': return 'اسم المستخدم';
|
case 'login.username': return 'اسم المستخدم';
|
||||||
case 'login.amber': return 'تسجيل الدخول مع آمبر';
|
case 'login.amber': return 'تسجيل الدخول مع آمبر';
|
||||||
case 'login.key': return 'تسجيل الدخول بالمفتاح';
|
case 'login.key': return 'تسجيل الدخول بالمفتاح';
|
||||||
case 'login.create': return 'إنشاء حساب';
|
case 'login.create': return 'إنشاء حساب';
|
||||||
case 'login.error.invalid_key': return 'مفتاح غير صالح';
|
case 'login.error.invalid_key': return 'مفتاح غير صالح';
|
||||||
|
case 'live.start': return 'ابدأ البث المباشر';
|
||||||
|
case 'live.configure_stream': return 'تكوين الدفق';
|
||||||
|
case 'live.endpoint': return 'نقطة النهاية';
|
||||||
|
case 'live.accept_tos': return 'قبول شروط الخدمة';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ar'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'العنوان';
|
||||||
|
case 'live.summary': return 'الملخص';
|
||||||
|
case 'live.image': return 'صورة الغلاف';
|
||||||
|
case 'live.tags': return 'الوسوم';
|
||||||
|
case 'live.nsfw': return 'محتوى غير لائق جنسيًا';
|
||||||
|
case 'live.nsfw_description': return 'تحقق هنا إذا كان هذا البث يحتوي على محتوى إباحي أو عري.';
|
||||||
|
case 'live.error.failed': return 'فشل البث';
|
||||||
|
case 'live.error.connection_error': return 'خطأ في الاتصال';
|
||||||
|
case 'live.error.start_failed': return 'فشل بدء البث فشل، يرجى التحقق من رصيدك';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsCa implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <ca>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsCa _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsCa $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginCa login = _TranslationsLoginCa._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamCa implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamCa._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalCa._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonCa._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedCa implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedCa._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListCa._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapCa._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorCa error = _TranslationsZapErrorCa._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileCa implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileCa._(this._root);
|
|
||||||
|
|
||||||
final TranslationsCa _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditCa edit = _TranslationsProfileEditCa._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginCa implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginCa._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusCa._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatCa._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorCa._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditCa implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditCa._(this._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 _TranslationsProfileEditErrorCa error = _TranslationsProfileEditErrorCa._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorCa implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorCa._(this._root);
|
|
||||||
|
|
||||||
final TranslationsCa _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteCa implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteCa._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeCa._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidCa._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorCa implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorCa._(this._root);
|
|
||||||
|
|
||||||
final TranslationsCa _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsCs implements Translations {
|
class TranslationsCs extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsCs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsCs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsCs implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsCs implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsCs _root = this; // ignore: unused_field
|
late final TranslationsCs _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsCs implements Translations {
|
|||||||
/// Anonymní uživatel
|
/// Anonymní uživatel
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('cs').format(n)} sats';
|
||||||
|
|
||||||
/// Počet diváků streamu
|
/// Počet diváků streamu
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
||||||
one: '1 divák',
|
one: '1 divák',
|
||||||
other: '${n} diváci',
|
other: '${NumberFormat.decimalPattern('cs').format(n)} diváků',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamCs stream = _TranslationsStreamCs._(_root);
|
@override late final _TranslationsStreamCs stream = _TranslationsStreamCs._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsCs implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapCs zap = _TranslationsZapCs._(_root);
|
@override late final _TranslationsZapCs zap = _TranslationsZapCs._(_root);
|
||||||
@override late final _TranslationsProfileCs profile = _TranslationsProfileCs._(_root);
|
@override late final _TranslationsProfileCs profile = _TranslationsProfileCs._(_root);
|
||||||
|
@override late final _TranslationsSettingsCs settings = _TranslationsSettingsCs._(_root);
|
||||||
@override late final _TranslationsLoginCs login = _TranslationsLoginCs._(_root);
|
@override late final _TranslationsLoginCs login = _TranslationsLoginCs._(_root);
|
||||||
|
@override late final _TranslationsLiveCs live = _TranslationsLiveCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamCs implements TranslationsStreamEn {
|
class _TranslationsStreamCs extends TranslationsStreamEn {
|
||||||
_TranslationsStreamCs._(this._root);
|
_TranslationsStreamCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusCs status = _TranslationsStreamStatusCs._(_root);
|
@override late final _TranslationsStreamStatusCs status = _TranslationsStreamStatusCs._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Založeno ${timestamp}';
|
@override String started({required Object timestamp}) => 'Založeno ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} byl spuštěn!';
|
||||||
@override late final _TranslationsStreamChatCs chat = _TranslationsStreamChatCs._(_root);
|
@override late final _TranslationsStreamChatCs chat = _TranslationsStreamChatCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalCs implements TranslationsGoalEn {
|
class _TranslationsGoalCs extends TranslationsGoalEn {
|
||||||
_TranslationsGoalCs._(this._root);
|
_TranslationsGoalCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Cíl: ${amount}';
|
@override String title({required Object amount}) => 'Cíl: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Zbývá: ${amount}';
|
@override String remaining({required Object amount}) => 'Zbývá: ${amount}';
|
||||||
@override String get complete => 'KOMPLETNÍ';
|
@override String get complete => 'KOMPLETNÍ';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonCs implements TranslationsButtonEn {
|
class _TranslationsButtonCs extends TranslationsButtonEn {
|
||||||
_TranslationsButtonCs._(this._root);
|
_TranslationsButtonCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonCs implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Zrušit ztlumení';
|
@override String get unmute => 'Zrušit ztlumení';
|
||||||
@override String get share => 'Sdílet';
|
@override String get share => 'Sdílet';
|
||||||
@override String get save => 'Uložit';
|
@override String get save => 'Uložit';
|
||||||
|
@override String get connect => 'Připojení';
|
||||||
|
@override String get settings => 'Nastavení';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedCs implements TranslationsEmbedEn {
|
class _TranslationsEmbedCs extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedCs._(this._root);
|
_TranslationsEmbedCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Článek na ${name}';
|
@override String article_by({required Object name}) => 'Článek na ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Poznámka ${name}';
|
@override String note_by({required Object name}) => 'Poznámka ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Přímý přenos na adrese ${name}';
|
@override String live_stream_by({required Object name}) => 'Přímý přenos na adrese ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListCs implements TranslationsStreamListEn {
|
class _TranslationsStreamListCs extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListCs._(this._root);
|
_TranslationsStreamListCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListCs implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapCs implements TranslationsZapEn {
|
class _TranslationsZapCs extends TranslationsZapEn {
|
||||||
_TranslationsZapCs._(this._root);
|
_TranslationsZapCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Vlastní částka';
|
@override String get custom_amount => 'Vlastní částka';
|
||||||
@override String get confirm => 'Potvrďte';
|
@override String get confirm => 'Potvrďte';
|
||||||
@override String get comment => 'Komentář:';
|
@override String get comment => 'Komentář:';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Otevřít v peněžence';
|
@override String get button_open_wallet => 'Otevřít v peněžence';
|
||||||
|
@override String get button_connect_wallet => 'Připojení peněženky';
|
||||||
@override String get copy => 'Zkopírováno do schránky';
|
@override String get copy => 'Zkopírováno do schránky';
|
||||||
@override late final _TranslationsZapErrorCs error = _TranslationsZapErrorCs._(_root);
|
@override late final _TranslationsZapErrorCs error = _TranslationsZapErrorCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileCs implements TranslationsProfileEn {
|
class _TranslationsProfileCs extends TranslationsProfileEn {
|
||||||
_TranslationsProfileCs._(this._root);
|
_TranslationsProfileCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Minulé proudy';
|
@override String get past_streams => 'Minulé proudy';
|
||||||
@override late final _TranslationsProfileEditCs edit = _TranslationsProfileEditCs._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsCs extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Upravit profil';
|
||||||
|
@override String get button_wallet => 'Nastavení peněženky';
|
||||||
|
@override late final _TranslationsSettingsProfileCs profile = _TranslationsSettingsProfileCs._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletCs wallet = _TranslationsSettingsWalletCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginCs implements TranslationsLoginEn {
|
class _TranslationsLoginCs extends TranslationsLoginEn {
|
||||||
_TranslationsLoginCs._(this._root);
|
_TranslationsLoginCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginCs implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorCs error = _TranslationsLoginErrorCs._(_root);
|
@override late final _TranslationsLoginErrorCs error = _TranslationsLoginErrorCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveCs extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'PŘEJÍT NA ŽIVOT';
|
||||||
|
@override String get configure_stream => 'Konfigurace streamu';
|
||||||
|
@override String get endpoint => 'Koncový bod';
|
||||||
|
@override String get accept_tos => 'Přijmout TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Název';
|
||||||
|
@override String get summary => 'Souhrn';
|
||||||
|
@override String get image => 'Obrázek na obálce';
|
||||||
|
@override String get tags => 'Štítky';
|
||||||
|
@override String get nsfw => 'Obsah NSFW';
|
||||||
|
@override String get nsfw_description => 'Zde zkontrolujte, zda tento stream obsahuje nahotu nebo pornografický obsah.';
|
||||||
|
@override late final _TranslationsLiveErrorCs error = _TranslationsLiveErrorCs._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusCs implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusCs extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusCs._(this._root);
|
_TranslationsStreamStatusCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusCs implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatCs implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatCs extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatCs._(this._root);
|
_TranslationsStreamChatCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT ZRUŠEN';
|
@override String get disabled => 'CHAT ZRUŠEN';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Časový limit vyprší: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Časový limit vyprší: ${time}';
|
||||||
|
|
||||||
/// Zpráva chatu zobrazující události časového limitu
|
/// Zpráva chatu zobrazující události časového limitu
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' vypršel čas '),
|
const TextSpan(text: ' vypršel čas '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' pro '),
|
const TextSpan(text: ' pro '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Zápatí v dolní části chatu ukončilo stream
|
/// Zápatí v dolní části chatu ukončilo stream
|
||||||
@override String get ended => 'STREAM UKONČEN';
|
@override String get ended => 'STREAM UKONČEN';
|
||||||
|
|
||||||
/// Zpráva chatu zobrazující proud zaps
|
/// Zpráva chatu zobrazující proud zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' Zapped '),
|
const TextSpan(text: ' Zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteCs write = _TranslationsStreamChatWriteCs._(_root);
|
@override late final _TranslationsStreamChatWriteCs write = _TranslationsStreamChatWriteCs._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeCs badge = _TranslationsStreamChatBadgeCs._(_root);
|
@override late final _TranslationsStreamChatBadgeCs badge = _TranslationsStreamChatBadgeCs._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatCs implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorCs implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorCs extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorCs._(this._root);
|
_TranslationsZapErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorCs implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nebyla nalezena žádná adresa blesku';
|
@override String get no_lud16 => 'Nebyla nalezena žádná adresa blesku';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditCs implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileCs extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditCs._(this._root);
|
_TranslationsSettingsProfileCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditCs implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'O stránkách';
|
@override String get about => 'O stránkách';
|
||||||
@override String get nip05 => 'Adresa Nostr';
|
@override String get nip05 => 'Adresa Nostr';
|
||||||
@override String get lud16 => 'Adresa blesku';
|
@override String get lud16 => 'Adresa blesku';
|
||||||
@override late final _TranslationsProfileEditErrorCs error = _TranslationsProfileEditErrorCs._(_root);
|
@override late final _TranslationsSettingsProfileErrorCs error = _TranslationsSettingsProfileErrorCs._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletCs extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Bilance';
|
||||||
|
@override String get name => 'Peněženka';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorCs error = _TranslationsSettingsWalletErrorCs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorCs implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorCs extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorCs._(this._root);
|
_TranslationsLoginErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorCs implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Neplatný klíč';
|
@override String get invalid_key => 'Neplatný klíč';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorCs extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Stream se nezdařil';
|
||||||
|
@override String get connection_error => 'Chyba připojení';
|
||||||
|
@override String get start_failed => 'Spuštění streamu se nezdařilo, zkontrolujte prosím zůstatek';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteCs implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteCs extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteCs._(this._root);
|
_TranslationsStreamChatWriteCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteCs implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeCs implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeCs extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeCs._(this._root);
|
_TranslationsStreamChatBadgeCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeCs implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidCs implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidCs extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidCs._(this._root);
|
_TranslationsStreamChatRaidCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Zpráva o nájezdu chatu do jiného proudu
|
/// Zpráva o nájezdu chatu do jiného proudu
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Zpráva o nájezdu chatu z jiného proudu
|
/// Zpráva o nájezdu chatu z jiného proudu
|
||||||
@override String from({ required Object name}) => 'RAID Z ${name}';
|
@override String from({required Object name}) => 'RAID Z ${name}';
|
||||||
|
|
||||||
/// Časovač odpočítávání pro automatický nájezd
|
/// Časovač odpočítávání pro automatický nájezd
|
||||||
@override String countdown({ required Object time}) => 'Nájezdy na ${time}';
|
@override String countdown({required Object time}) => 'Nájezdy na ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorCs implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorCs extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorCs._(this._root);
|
_TranslationsSettingsProfileErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsCs _root; // ignore: unused_field
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorCs implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Nelze upravit profil, když je odhlášený';
|
@override String get logged_out => 'Nelze upravit profil, když je odhlášený';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorCs extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsCs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsCs {
|
extension on TranslationsCs {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsCs {
|
|||||||
case 'most_zapped_streamers': return 'Nejvíce zapnutých streamerů';
|
case 'most_zapped_streamers': return 'Nejvíce zapnutých streamerů';
|
||||||
case 'no_user_found': return 'Nebyl nalezen žádný uživatel';
|
case 'no_user_found': return 'Nebyl nalezen žádný uživatel';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('cs').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
||||||
one: '1 divák',
|
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.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'KONEC';
|
case 'stream.status.ended': return 'KONEC';
|
||||||
case 'stream.status.planned': return 'PLÁNOVANÉ';
|
case 'stream.status.planned': return 'PLÁNOVANÉ';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Založeno ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Založeno ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} byl spuštěn!';
|
||||||
case 'stream.chat.disabled': return 'CHAT ZRUŠEN';
|
case 'stream.chat.disabled': return 'CHAT ZRUŠEN';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Časový limit vyprší: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Časový limit vyprší: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' vypršel čas '),
|
const TextSpan(text: ' vypršel čas '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' pro '),
|
const TextSpan(text: ' pro '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM UKONČEN';
|
case 'stream.chat.ended': return 'STREAM UKONČEN';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' Zapped '),
|
const TextSpan(text: ' Zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Napište zprávu';
|
case 'stream.chat.write.label': return 'Napište zprávu';
|
||||||
case 'stream.chat.write.no_signer': return 'Nelze psát zprávy s přihlášením npub';
|
case 'stream.chat.write.no_signer': return 'Nelze psát zprávy s přihlášením npub';
|
||||||
case 'stream.chat.write.login': return 'Pro odesílání zpráv se prosím přihlaste';
|
case 'stream.chat.write.login': return 'Pro odesílání zpráv se prosím přihlaste';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Uděleno:';
|
case 'stream.chat.badge.awarded_to': return 'Uděleno:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID Z ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID Z ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Nájezdy na ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Nájezdy na ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Cíl: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Cíl: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Zbývá: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Zbývá: ${amount}';
|
||||||
case 'goal.complete': return 'KOMPLETNÍ';
|
case 'goal.complete': return 'KOMPLETNÍ';
|
||||||
case 'button.login': return 'Přihlášení';
|
case 'button.login': return 'Přihlášení';
|
||||||
case 'button.logout': return 'Odhlášení';
|
case 'button.logout': return 'Odhlášení';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsCs {
|
|||||||
case 'button.unmute': return 'Zrušit ztlumení';
|
case 'button.unmute': return 'Zrušit ztlumení';
|
||||||
case 'button.share': return 'Sdílet';
|
case 'button.share': return 'Sdílet';
|
||||||
case 'button.save': return 'Uložit';
|
case 'button.save': return 'Uložit';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Článek na ${name}';
|
case 'button.connect': return 'Připojení';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Poznámka ${name}';
|
case 'button.settings': return 'Nastavení';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Přímý přenos na adrese ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Článek na ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Poznámka ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Přímý přenos na adrese ${name}';
|
||||||
case 'stream_list.following': return 'Po';
|
case 'stream_list.following': return 'Po';
|
||||||
case 'stream_list.live': return 'Živě';
|
case 'stream_list.live': return 'Živě';
|
||||||
case 'stream_list.planned': return 'Plánované';
|
case 'stream_list.planned': return 'Plánované';
|
||||||
case 'stream_list.ended': return 'Ukončeno';
|
case 'stream_list.ended': return 'Ukončeno';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Vlastní částka';
|
case 'zap.custom_amount': return 'Vlastní částka';
|
||||||
case 'zap.confirm': return 'Potvrďte';
|
case 'zap.confirm': return 'Potvrďte';
|
||||||
case 'zap.comment': return 'Komentář:';
|
case 'zap.comment': return 'Komentář:';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Otevřít v peněžence';
|
case 'zap.button_open_wallet': return 'Otevřít v peněžence';
|
||||||
|
case 'zap.button_connect_wallet': return 'Připojení peněženky';
|
||||||
case 'zap.copy': return 'Zkopírováno do schránky';
|
case 'zap.copy': return 'Zkopírováno do schránky';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Neplatná vlastní částka';
|
case 'zap.error.invalid_custom_amount': return 'Neplatná vlastní částka';
|
||||||
case 'zap.error.no_wallet': return 'Není nainstalována blesková peněženka';
|
case 'zap.error.no_wallet': return 'Není nainstalována blesková peněženka';
|
||||||
case 'zap.error.no_lud16': return 'Nebyla nalezena žádná adresa blesku';
|
case 'zap.error.no_lud16': return 'Nebyla nalezena žádná adresa blesku';
|
||||||
case 'profile.past_streams': return 'Minulé proudy';
|
case 'profile.past_streams': return 'Minulé proudy';
|
||||||
case 'profile.edit.display_name': return 'Zobrazení názvu';
|
case 'settings.button_profile': return 'Upravit profil';
|
||||||
case 'profile.edit.about': return 'O stránkách';
|
case 'settings.button_wallet': return 'Nastavení peněženky';
|
||||||
case 'profile.edit.nip05': return 'Adresa Nostr';
|
case 'settings.profile.display_name': return 'Zobrazení názvu';
|
||||||
case 'profile.edit.lud16': return 'Adresa blesku';
|
case 'settings.profile.about': return 'O stránkách';
|
||||||
case 'profile.edit.error.logged_out': return 'Nelze upravit profil, když je odhlášený';
|
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 '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.balance': return 'Bilance';
|
||||||
|
case 'settings.wallet.name': return 'Peněženka';
|
||||||
|
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.username': return 'Uživatelské jméno';
|
||||||
case 'login.amber': return 'Přihlášení pomocí Amber';
|
case 'login.amber': return 'Přihlášení pomocí Amber';
|
||||||
case 'login.key': return 'Přihlášení pomocí klíče';
|
case 'login.key': return 'Přihlášení pomocí klíče';
|
||||||
case 'login.create': return 'Vytvořit účet';
|
case 'login.create': return 'Vytvořit účet';
|
||||||
case 'login.error.invalid_key': return 'Neplatný klíč';
|
case 'login.error.invalid_key': return 'Neplatný klíč';
|
||||||
|
case 'live.start': return 'PŘEJÍT NA ŽIVOT';
|
||||||
|
case 'live.configure_stream': return 'Konfigurace streamu';
|
||||||
|
case 'live.endpoint': return 'Koncový bod';
|
||||||
|
case 'live.accept_tos': return 'Přijmout TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Název';
|
||||||
|
case 'live.summary': return 'Souhrn';
|
||||||
|
case 'live.image': return 'Obrázek na obálce';
|
||||||
|
case 'live.tags': return 'Štítky';
|
||||||
|
case 'live.nsfw': return 'Obsah NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Zde zkontrolujte, zda tento stream obsahuje nahotu nebo pornografický obsah.';
|
||||||
|
case 'live.error.failed': return 'Stream se nezdařil';
|
||||||
|
case 'live.error.connection_error': return 'Chyba připojení';
|
||||||
|
case 'live.error.start_failed': return 'Spuštění streamu se nezdařilo, zkontrolujte prosím zůstatek';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsDa implements Translations {
|
class TranslationsDa extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsDa({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsDa({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsDa implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsDa implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsDa _root = this; // ignore: unused_field
|
late final TranslationsDa _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsDa implements Translations {
|
|||||||
/// En anonym bruger
|
/// En anonym bruger
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('da').format(n)} sats';
|
||||||
|
|
||||||
/// Antal seere af streamingen
|
/// Antal seere af streamingen
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
||||||
one: '1 seer',
|
one: '1 seer',
|
||||||
other: '${n} Seere',
|
other: '${NumberFormat.decimalPattern('da').format(n)} seere',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamDa stream = _TranslationsStreamDa._(_root);
|
@override late final _TranslationsStreamDa stream = _TranslationsStreamDa._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsDa implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapDa zap = _TranslationsZapDa._(_root);
|
@override late final _TranslationsZapDa zap = _TranslationsZapDa._(_root);
|
||||||
@override late final _TranslationsProfileDa profile = _TranslationsProfileDa._(_root);
|
@override late final _TranslationsProfileDa profile = _TranslationsProfileDa._(_root);
|
||||||
|
@override late final _TranslationsSettingsDa settings = _TranslationsSettingsDa._(_root);
|
||||||
@override late final _TranslationsLoginDa login = _TranslationsLoginDa._(_root);
|
@override late final _TranslationsLoginDa login = _TranslationsLoginDa._(_root);
|
||||||
|
@override late final _TranslationsLiveDa live = _TranslationsLiveDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamDa implements TranslationsStreamEn {
|
class _TranslationsStreamDa extends TranslationsStreamEn {
|
||||||
_TranslationsStreamDa._(this._root);
|
_TranslationsStreamDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusDa status = _TranslationsStreamStatusDa._(_root);
|
@override late final _TranslationsStreamStatusDa status = _TranslationsStreamStatusDa._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Startet ${timestamp}';
|
@override String started({required Object timestamp}) => 'Startet ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} gik live!';
|
||||||
@override late final _TranslationsStreamChatDa chat = _TranslationsStreamChatDa._(_root);
|
@override late final _TranslationsStreamChatDa chat = _TranslationsStreamChatDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalDa implements TranslationsGoalEn {
|
class _TranslationsGoalDa extends TranslationsGoalEn {
|
||||||
_TranslationsGoalDa._(this._root);
|
_TranslationsGoalDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Mål: ${amount}';
|
@override String title({required Object amount}) => 'Mål: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Resterende: ${amount}';
|
@override String remaining({required Object amount}) => 'Resterende: ${amount}';
|
||||||
@override String get complete => 'KOMPLET';
|
@override String get complete => 'KOMPLET';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonDa implements TranslationsButtonEn {
|
class _TranslationsButtonDa extends TranslationsButtonEn {
|
||||||
_TranslationsButtonDa._(this._root);
|
_TranslationsButtonDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonDa implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Slå lyden fra';
|
@override String get unmute => 'Slå lyden fra';
|
||||||
@override String get share => 'Del';
|
@override String get share => 'Del';
|
||||||
@override String get save => 'Gemme';
|
@override String get save => 'Gemme';
|
||||||
|
@override String get connect => 'Opret forbindelse';
|
||||||
|
@override String get settings => 'Indstillinger';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedDa implements TranslationsEmbedEn {
|
class _TranslationsEmbedDa extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedDa._(this._root);
|
_TranslationsEmbedDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artikel af ${name}';
|
@override String article_by({required Object name}) => 'Artikel af ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Note fra ${name}';
|
@override String note_by({required Object name}) => 'Note fra ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Livestream på ${name}';
|
@override String live_stream_by({required Object name}) => 'Livestream på ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListDa implements TranslationsStreamListEn {
|
class _TranslationsStreamListDa extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListDa._(this._root);
|
_TranslationsStreamListDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListDa implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapDa implements TranslationsZapEn {
|
class _TranslationsZapDa extends TranslationsZapEn {
|
||||||
_TranslationsZapDa._(this._root);
|
_TranslationsZapDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Brugerdefineret beløb';
|
@override String get custom_amount => 'Brugerdefineret beløb';
|
||||||
@override String get confirm => 'Bekræft';
|
@override String get confirm => 'Bekræft';
|
||||||
@override String get comment => 'Kommentar';
|
@override String get comment => 'Kommentar';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Åbn i tegnebogen';
|
@override String get button_open_wallet => 'Åbn i tegnebogen';
|
||||||
|
@override String get button_connect_wallet => 'Forbind tegnebog';
|
||||||
@override String get copy => 'Kopieret til udklipsholder';
|
@override String get copy => 'Kopieret til udklipsholder';
|
||||||
@override late final _TranslationsZapErrorDa error = _TranslationsZapErrorDa._(_root);
|
@override late final _TranslationsZapErrorDa error = _TranslationsZapErrorDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileDa implements TranslationsProfileEn {
|
class _TranslationsProfileDa extends TranslationsProfileEn {
|
||||||
_TranslationsProfileDa._(this._root);
|
_TranslationsProfileDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Tidligere strømme';
|
@override String get past_streams => 'Tidligere strømme';
|
||||||
@override late final _TranslationsProfileEditDa edit = _TranslationsProfileEditDa._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsDa extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Rediger profil';
|
||||||
|
@override String get button_wallet => 'Indstillinger for tegnebog';
|
||||||
|
@override late final _TranslationsSettingsProfileDa profile = _TranslationsSettingsProfileDa._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletDa wallet = _TranslationsSettingsWalletDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginDa implements TranslationsLoginEn {
|
class _TranslationsLoginDa extends TranslationsLoginEn {
|
||||||
_TranslationsLoginDa._(this._root);
|
_TranslationsLoginDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginDa implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorDa error = _TranslationsLoginErrorDa._(_root);
|
@override late final _TranslationsLoginErrorDa error = _TranslationsLoginErrorDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveDa extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Konfigurer stream';
|
||||||
|
@override String get endpoint => 'Slutpunkt';
|
||||||
|
@override String get accept_tos => 'Accepter TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titel';
|
||||||
|
@override String get summary => 'Sammenfatning';
|
||||||
|
@override String get image => 'Forsidebillede';
|
||||||
|
@override String get tags => 'Tags';
|
||||||
|
@override String get nsfw => 'NSFW-indhold';
|
||||||
|
@override String get nsfw_description => 'Tjek her, om denne stream indeholder nøgenhed eller pornografisk indhold.';
|
||||||
|
@override late final _TranslationsLiveErrorDa error = _TranslationsLiveErrorDa._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusDa implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusDa extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusDa._(this._root);
|
_TranslationsStreamStatusDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusDa implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatDa implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatDa extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatDa._(this._root);
|
_TranslationsStreamChatDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DEAKTIVERET';
|
@override String get disabled => 'CHAT DEAKTIVERET';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Timeout udløber: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Timeout udløber: ${time}';
|
||||||
|
|
||||||
/// Chatbesked, der viser timeout-hændelser
|
/// Chatbesked, der viser timeout-hændelser
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' udløbet '),
|
const TextSpan(text: ' udløbet '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream afsluttede footer i bunden af chatten
|
/// Stream afsluttede footer i bunden af chatten
|
||||||
@override String get ended => 'STREAM AFSLUTTET';
|
@override String get ended => 'STREAM AFSLUTTET';
|
||||||
|
|
||||||
/// Chatbesked, der viser stream-zaps
|
/// Chatbesked, der viser stream-zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zappet '),
|
const TextSpan(text: ' zappet '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteDa write = _TranslationsStreamChatWriteDa._(_root);
|
@override late final _TranslationsStreamChatWriteDa write = _TranslationsStreamChatWriteDa._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeDa badge = _TranslationsStreamChatBadgeDa._(_root);
|
@override late final _TranslationsStreamChatBadgeDa badge = _TranslationsStreamChatBadgeDa._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatDa implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorDa implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorDa extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorDa._(this._root);
|
_TranslationsZapErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorDa implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Ingen lyn-adresse fundet';
|
@override String get no_lud16 => 'Ingen lyn-adresse fundet';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditDa implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileDa extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditDa._(this._root);
|
_TranslationsSettingsProfileDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditDa implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'Omkring';
|
@override String get about => 'Omkring';
|
||||||
@override String get nip05 => 'Nostr-adresse';
|
@override String get nip05 => 'Nostr-adresse';
|
||||||
@override String get lud16 => 'Adresse for lynnedslag';
|
@override String get lud16 => 'Adresse for lynnedslag';
|
||||||
@override late final _TranslationsProfileEditErrorDa error = _TranslationsProfileEditErrorDa._(_root);
|
@override late final _TranslationsSettingsProfileErrorDa error = _TranslationsSettingsProfileErrorDa._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletDa extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Balance';
|
||||||
|
@override String get name => 'Tegnebog';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorDa error = _TranslationsSettingsWalletErrorDa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorDa implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorDa extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorDa._(this._root);
|
_TranslationsLoginErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorDa implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Ugyldig nøgle';
|
@override String get invalid_key => 'Ugyldig nøgle';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorDa extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Strømmen mislykkedes';
|
||||||
|
@override String get connection_error => 'Forbindelsesfejl';
|
||||||
|
@override String get start_failed => 'Stream-start mislykkedes, tjek venligst din saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteDa implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteDa extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteDa._(this._root);
|
_TranslationsStreamChatWriteDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteDa implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeDa implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeDa extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeDa._(this._root);
|
_TranslationsStreamChatBadgeDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeDa implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidDa implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidDa extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidDa._(this._root);
|
_TranslationsStreamChatRaidDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat raid-besked til en anden stream
|
/// Chat raid-besked til en anden stream
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid-besked fra en anden stream
|
/// Chat raid-besked fra en anden stream
|
||||||
@override String from({ required Object name}) => 'RAID FRA ${name}';
|
@override String from({required Object name}) => 'RAID FRA ${name}';
|
||||||
|
|
||||||
/// Nedtællingstimer til auto-raiding
|
/// Nedtællingstimer til auto-raiding
|
||||||
@override String countdown({ required Object time}) => 'Raiding i ${time}';
|
@override String countdown({required Object time}) => 'Raiding i ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorDa implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorDa extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorDa._(this._root);
|
_TranslationsSettingsProfileErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDa _root; // ignore: unused_field
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorDa implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Kan ikke redigere profil, når jeg er logget ud';
|
@override String get logged_out => 'Kan ikke redigere profil, når jeg er logget ud';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorDa extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsDa {
|
extension on TranslationsDa {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsDa {
|
|||||||
case 'most_zapped_streamers': return 'De fleste zappede streamere';
|
case 'most_zapped_streamers': return 'De fleste zappede streamere';
|
||||||
case 'no_user_found': return 'Ingen bruger fundet';
|
case 'no_user_found': return 'Ingen bruger fundet';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('da').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
||||||
one: '1 seer',
|
one: '1 seer',
|
||||||
other: '${n} Seere',
|
other: '${NumberFormat.decimalPattern('da').format(n)} seere',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'AFSLUTTET';
|
case 'stream.status.ended': return 'AFSLUTTET';
|
||||||
case 'stream.status.planned': return 'PLANLAGT';
|
case 'stream.status.planned': return 'PLANLAGT';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Startet ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Startet ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} gik live!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DEAKTIVERET';
|
case 'stream.chat.disabled': return 'CHAT DEAKTIVERET';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Timeout udløber: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout udløber: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' udløbet '),
|
const TextSpan(text: ' udløbet '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM AFSLUTTET';
|
case 'stream.chat.ended': return 'STREAM AFSLUTTET';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zappet '),
|
const TextSpan(text: ' zappet '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Skriv en besked';
|
case 'stream.chat.write.label': return 'Skriv en besked';
|
||||||
case 'stream.chat.write.no_signer': return 'Kan ikke skrive beskeder med npub-login';
|
case 'stream.chat.write.no_signer': return 'Kan ikke skrive beskeder med npub-login';
|
||||||
case 'stream.chat.write.login': return 'Log ind for at sende beskeder';
|
case 'stream.chat.write.login': return 'Log ind for at sende beskeder';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Tildelt til:';
|
case 'stream.chat.badge.awarded_to': return 'Tildelt til:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID FRA ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FRA ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raiding i ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding i ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Mål: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Mål: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Resterende: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Resterende: ${amount}';
|
||||||
case 'goal.complete': return 'KOMPLET';
|
case 'goal.complete': return 'KOMPLET';
|
||||||
case 'button.login': return 'Login';
|
case 'button.login': return 'Login';
|
||||||
case 'button.logout': return 'Log ud';
|
case 'button.logout': return 'Log ud';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsDa {
|
|||||||
case 'button.unmute': return 'Slå lyden fra';
|
case 'button.unmute': return 'Slå lyden fra';
|
||||||
case 'button.share': return 'Del';
|
case 'button.share': return 'Del';
|
||||||
case 'button.save': return 'Gemme';
|
case 'button.save': return 'Gemme';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artikel af ${name}';
|
case 'button.connect': return 'Opret forbindelse';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Note fra ${name}';
|
case 'button.settings': return 'Indstillinger';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Livestream på ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artikel af ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Note fra ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Livestream på ${name}';
|
||||||
case 'stream_list.following': return 'Efterfølgende';
|
case 'stream_list.following': return 'Efterfølgende';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Planlagt';
|
case 'stream_list.planned': return 'Planlagt';
|
||||||
case 'stream_list.ended': return 'Afsluttet';
|
case 'stream_list.ended': return 'Afsluttet';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Brugerdefineret beløb';
|
case 'zap.custom_amount': return 'Brugerdefineret beløb';
|
||||||
case 'zap.confirm': return 'Bekræft';
|
case 'zap.confirm': return 'Bekræft';
|
||||||
case 'zap.comment': return 'Kommentar';
|
case 'zap.comment': return 'Kommentar';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Åbn i tegnebogen';
|
case 'zap.button_open_wallet': return 'Åbn i tegnebogen';
|
||||||
|
case 'zap.button_connect_wallet': return 'Forbind tegnebog';
|
||||||
case 'zap.copy': return 'Kopieret til udklipsholder';
|
case 'zap.copy': return 'Kopieret til udklipsholder';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Ugyldigt brugerdefineret beløb';
|
case 'zap.error.invalid_custom_amount': return 'Ugyldigt brugerdefineret beløb';
|
||||||
case 'zap.error.no_wallet': return 'Ingen lightning wallet installeret';
|
case 'zap.error.no_wallet': return 'Ingen lightning wallet installeret';
|
||||||
case 'zap.error.no_lud16': return 'Ingen lyn-adresse fundet';
|
case 'zap.error.no_lud16': return 'Ingen lyn-adresse fundet';
|
||||||
case 'profile.past_streams': return 'Tidligere strømme';
|
case 'profile.past_streams': return 'Tidligere strømme';
|
||||||
case 'profile.edit.display_name': return 'Vis navn';
|
case 'settings.button_profile': return 'Rediger profil';
|
||||||
case 'profile.edit.about': return 'Omkring';
|
case 'settings.button_wallet': return 'Indstillinger for tegnebog';
|
||||||
case 'profile.edit.nip05': return 'Nostr-adresse';
|
case 'settings.profile.display_name': return 'Vis navn';
|
||||||
case 'profile.edit.lud16': return 'Adresse for lynnedslag';
|
case 'settings.profile.about': return 'Omkring';
|
||||||
case 'profile.edit.error.logged_out': return 'Kan ikke redigere profil, når jeg er logget ud';
|
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 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.balance': return 'Balance';
|
||||||
|
case 'settings.wallet.name': return 'Tegnebog';
|
||||||
|
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.username': return 'Brugernavn';
|
||||||
case 'login.amber': return 'Log ind med Amber';
|
case 'login.amber': return 'Log ind med Amber';
|
||||||
case 'login.key': return 'Login med nøgle';
|
case 'login.key': return 'Login med nøgle';
|
||||||
case 'login.create': return 'Opret konto';
|
case 'login.create': return 'Opret konto';
|
||||||
case 'login.error.invalid_key': return 'Ugyldig nøgle';
|
case 'login.error.invalid_key': return 'Ugyldig nøgle';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Konfigurer stream';
|
||||||
|
case 'live.endpoint': return 'Slutpunkt';
|
||||||
|
case 'live.accept_tos': return 'Accepter TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titel';
|
||||||
|
case 'live.summary': return 'Sammenfatning';
|
||||||
|
case 'live.image': return 'Forsidebillede';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'NSFW-indhold';
|
||||||
|
case 'live.nsfw_description': return 'Tjek her, om denne stream indeholder nøgenhed eller pornografisk indhold.';
|
||||||
|
case 'live.error.failed': return 'Strømmen mislykkedes';
|
||||||
|
case 'live.error.connection_error': return 'Forbindelsesfejl';
|
||||||
|
case 'live.error.start_failed': return 'Stream-start mislykkedes, tjek venligst din saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsDe implements Translations {
|
class TranslationsDe extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsDe({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsDe({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsDe implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsDe implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsDe _root = this; // ignore: unused_field
|
late final TranslationsDe _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ class TranslationsDe implements Translations {
|
|||||||
/// Text, der den Benutzer auffordert, auf den Avatar-Platzhalter zu klicken, um den Upload zu starten
|
/// Text, der den Benutzer auffordert, auf den Avatar-Platzhalter zu klicken, um den Upload zu starten
|
||||||
@override String get upload_avatar => 'Avatar hochladen';
|
@override String get upload_avatar => 'Avatar hochladen';
|
||||||
|
|
||||||
/// Überschrift über gelistete Top-Streamer von zaps
|
/// Überschrift über gelistete Top-Streamer nach Zaps
|
||||||
@override String get most_zapped_streamers => 'Meistgezappte Streamer';
|
@override String get most_zapped_streamers => 'Meistgezappte Streamer';
|
||||||
|
|
||||||
/// Kein Benutzer bei der Suche gefunden
|
/// Kein Benutzer bei der Suche gefunden
|
||||||
@ -50,10 +51,12 @@ class TranslationsDe implements Translations {
|
|||||||
/// Ein anonymer Benutzer
|
/// Ein anonymer Benutzer
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
/// Anzahl der Betrachter des Streams
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('de').format(n)} sats';
|
||||||
|
|
||||||
|
/// Anzahl der Zuschauer des Streams
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
||||||
one: '1 Zuschauer',
|
one: '1 Zuschauer',
|
||||||
other: '${n} Zuschauer',
|
other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamDe stream = _TranslationsStreamDe._(_root);
|
@override late final _TranslationsStreamDe stream = _TranslationsStreamDe._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsDe implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapDe zap = _TranslationsZapDe._(_root);
|
@override late final _TranslationsZapDe zap = _TranslationsZapDe._(_root);
|
||||||
@override late final _TranslationsProfileDe profile = _TranslationsProfileDe._(_root);
|
@override late final _TranslationsProfileDe profile = _TranslationsProfileDe._(_root);
|
||||||
|
@override late final _TranslationsSettingsDe settings = _TranslationsSettingsDe._(_root);
|
||||||
@override late final _TranslationsLoginDe login = _TranslationsLoginDe._(_root);
|
@override late final _TranslationsLoginDe login = _TranslationsLoginDe._(_root);
|
||||||
|
@override late final _TranslationsLiveDe live = _TranslationsLiveDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamDe implements TranslationsStreamEn {
|
class _TranslationsStreamDe extends TranslationsStreamEn {
|
||||||
_TranslationsStreamDe._(this._root);
|
_TranslationsStreamDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusDe status = _TranslationsStreamStatusDe._(_root);
|
@override late final _TranslationsStreamStatusDe status = _TranslationsStreamStatusDe._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Gestartet ${timestamp}';
|
@override String started({required Object timestamp}) => 'Gestartet ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} ging live!';
|
||||||
@override late final _TranslationsStreamChatDe chat = _TranslationsStreamChatDe._(_root);
|
@override late final _TranslationsStreamChatDe chat = _TranslationsStreamChatDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalDe implements TranslationsGoalEn {
|
class _TranslationsGoalDe extends TranslationsGoalEn {
|
||||||
_TranslationsGoalDe._(this._root);
|
_TranslationsGoalDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Ziel: ${amount}';
|
@override String title({required Object amount}) => 'Ziel: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Verbleibend: ${amount}';
|
@override String remaining({required Object amount}) => 'Verbleibend: ${amount}';
|
||||||
@override String get complete => 'COMPLETE';
|
@override String get complete => 'COMPLETE';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonDe implements TranslationsButtonEn {
|
class _TranslationsButtonDe extends TranslationsButtonEn {
|
||||||
_TranslationsButtonDe._(this._root);
|
_TranslationsButtonDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonDe implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Entstummen';
|
@override String get unmute => 'Entstummen';
|
||||||
@override String get share => 'Teilen';
|
@override String get share => 'Teilen';
|
||||||
@override String get save => 'Speichern';
|
@override String get save => 'Speichern';
|
||||||
|
@override String get connect => 'Verbinden Sie';
|
||||||
|
@override String get settings => 'Einstellungen';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedDe implements TranslationsEmbedEn {
|
class _TranslationsEmbedDe extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedDe._(this._root);
|
_TranslationsEmbedDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artikel von ${name}';
|
@override String article_by({required Object name}) => 'Artikel von ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Note von ${name}';
|
@override String note_by({required Object name}) => 'Note von ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Live-Stream von ${name}';
|
@override String live_stream_by({required Object name}) => 'Live-Stream von ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListDe implements TranslationsStreamListEn {
|
class _TranslationsStreamListDe extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListDe._(this._root);
|
_TranslationsStreamListDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListDe implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapDe implements TranslationsZapEn {
|
class _TranslationsZapDe extends TranslationsZapEn {
|
||||||
_TranslationsZapDe._(this._root);
|
_TranslationsZapDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => '${name} zappen';
|
@override String title({required Object name}) => '${name} zappen';
|
||||||
@override String get custom_amount => 'Benutzerdefinierter Betrag';
|
@override String get custom_amount => 'Benutzerdefinierter Betrag';
|
||||||
@override String get confirm => 'Bestätigen';
|
@override String get confirm => 'Bestätigen';
|
||||||
@override String get comment => 'Kommentar';
|
@override String get comment => 'Kommentar';
|
||||||
@override String button_zap_ready({ required Object amount}) => '${amount} sats zappen';
|
@override String button_zap_ready({required Object amount}) => '${amount} sats zappen';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'In Brieftasche öffnen';
|
@override String get button_open_wallet => 'In Brieftasche öffnen';
|
||||||
|
@override String get button_connect_wallet => 'Brieftasche verbinden';
|
||||||
@override String get copy => 'In die Zwischenablage kopiert';
|
@override String get copy => 'In die Zwischenablage kopiert';
|
||||||
@override late final _TranslationsZapErrorDe error = _TranslationsZapErrorDe._(_root);
|
@override late final _TranslationsZapErrorDe error = _TranslationsZapErrorDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileDe implements TranslationsProfileEn {
|
class _TranslationsProfileDe extends TranslationsProfileEn {
|
||||||
_TranslationsProfileDe._(this._root);
|
_TranslationsProfileDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Vergangene Streams';
|
@override String get past_streams => 'Vergangene Streams';
|
||||||
@override late final _TranslationsProfileEditDe edit = _TranslationsProfileEditDe._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsDe extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Profil bearbeiten';
|
||||||
|
@override String get button_wallet => 'Wallet-Einstellungen';
|
||||||
|
@override late final _TranslationsSettingsProfileDe profile = _TranslationsSettingsProfileDe._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletDe wallet = _TranslationsSettingsWalletDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginDe implements TranslationsLoginEn {
|
class _TranslationsLoginDe extends TranslationsLoginEn {
|
||||||
_TranslationsLoginDe._(this._root);
|
_TranslationsLoginDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,47 +208,71 @@ class _TranslationsLoginDe implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorDe error = _TranslationsLoginErrorDe._(_root);
|
@override late final _TranslationsLoginErrorDe error = _TranslationsLoginErrorDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveDe extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'LIVE GEHEN';
|
||||||
|
@override String get configure_stream => 'Stream konfigurieren';
|
||||||
|
@override String get endpoint => 'Endpunkt';
|
||||||
|
@override String get accept_tos => 'TOS akzeptieren';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titel';
|
||||||
|
@override String get summary => 'Zusammenfassung';
|
||||||
|
@override String get image => 'Titelbild';
|
||||||
|
@override String get tags => 'Tags';
|
||||||
|
@override String get nsfw => 'NSFW-Inhalt';
|
||||||
|
@override String get nsfw_description => 'Prüfen Sie hier, ob dieser Stream Nacktheit oder pornografische Inhalte enthält.';
|
||||||
|
@override late final _TranslationsLiveErrorDe error = _TranslationsLiveErrorDe._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusDe implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusDe extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusDe._(this._root);
|
_TranslationsStreamStatusDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get live => 'LIVE';
|
@override String get live => 'LIVE';
|
||||||
@override String get ended => 'ENDED';
|
@override String get ended => 'BEENDET';
|
||||||
@override String get planned => 'GEPLANT';
|
@override String get planned => 'GEPLANT';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatDe implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatDe extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatDe._(this._root);
|
_TranslationsStreamChatDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DEAKTIVIERT';
|
@override String get disabled => 'CHAT DEAKTIVIERT';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Die Zeitüberschreitung läuft ab: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Timeout läuft ab: ${time}';
|
||||||
|
|
||||||
/// Chat-Nachricht mit Zeitüberschreitungsereignissen
|
/// Chat-Nachricht mit Timeout-Ereignissen
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Zeitüberschreitung '),
|
const TextSpan(text: ' gibt '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' für '),
|
const TextSpan(text: ' einen Timeout für '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream beendet Fußzeile am Ende des Chats
|
/// Stream beendet Fußzeile am Ende des Chats
|
||||||
@override String get ended => 'STREAM BEENDET';
|
@override String get ended => 'STREAM BEENDET';
|
||||||
|
|
||||||
/// Chatnachricht mit Stream Zaps
|
/// Chat-Nachricht mit Stream-Zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' hat '),
|
const TextSpan(text: ' hat '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats gezappt'),
|
const TextSpan(text: ' sats gezappt'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteDe write = _TranslationsStreamChatWriteDe._(_root);
|
@override late final _TranslationsStreamChatWriteDe write = _TranslationsStreamChatWriteDe._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeDe badge = _TranslationsStreamChatBadgeDe._(_root);
|
@override late final _TranslationsStreamChatBadgeDe badge = _TranslationsStreamChatBadgeDe._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatDe implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorDe implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorDe extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorDe._(this._root);
|
_TranslationsZapErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorDe implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Keine Blitzadresse gefunden';
|
@override String get no_lud16 => 'Keine Blitzadresse gefunden';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditDe implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileDe extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditDe._(this._root);
|
_TranslationsSettingsProfileDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -256,13 +301,29 @@ class _TranslationsProfileEditDe implements TranslationsProfileEditEn {
|
|||||||
@override String get display_name => 'Name anzeigen';
|
@override String get display_name => 'Name anzeigen';
|
||||||
@override String get about => 'Über';
|
@override String get about => 'Über';
|
||||||
@override String get nip05 => 'Nostr-Adresse';
|
@override String get nip05 => 'Nostr-Adresse';
|
||||||
@override String get lud16 => 'Lightning-Adresse';
|
@override String get lud16 => 'Blitz-Adresse';
|
||||||
@override late final _TranslationsProfileEditErrorDe error = _TranslationsProfileEditErrorDe._(_root);
|
@override late final _TranslationsSettingsProfileErrorDe error = _TranslationsSettingsProfileErrorDe._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletDe extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Bilanz';
|
||||||
|
@override String get name => 'Brieftasche';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorDe error = _TranslationsSettingsWalletErrorDe._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorDe implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorDe extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorDe._(this._root);
|
_TranslationsLoginErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorDe implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Ungültiger Schlüssel';
|
@override String get invalid_key => 'Ungültiger Schlüssel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorDe extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Stream fehlgeschlagen';
|
||||||
|
@override String get connection_error => 'Verbindungsfehler';
|
||||||
|
@override String get start_failed => 'Streamstart fehlgeschlagen, bitte überprüfen Sie Ihr Guthaben';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteDe implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteDe extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteDe._(this._root);
|
_TranslationsStreamChatWriteDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteDe implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeDe implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeDe extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeDe._(this._root);
|
_TranslationsStreamChatBadgeDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeDe implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidDe implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidDe extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidDe._(this._root);
|
_TranslationsStreamChatRaidDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat-Überfallnachricht an einen anderen Stream
|
/// Chat-Überfallnachricht an einen anderen Stream
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat-Raid-Nachricht aus einem anderen Stream
|
/// Chat-Raid-Nachricht aus einem anderen Stream
|
||||||
@override String from({ required Object name}) => 'RAID VON ${name}';
|
@override String from({required Object name}) => 'RAID VON ${name}';
|
||||||
|
|
||||||
/// Countdown-Timer für automatisches Reiten
|
/// Countdown-Timer für automatisches Reiten
|
||||||
@override String countdown({ required Object time}) => 'Raubzüge auf ${time}';
|
@override String countdown({required Object time}) => 'Raubzüge auf ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorDe implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorDe extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorDe._(this._root);
|
_TranslationsSettingsProfileErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorDe implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Profil kann nicht bearbeitet werden, wenn es abgemeldet ist';
|
@override String get logged_out => 'Profil kann nicht bearbeitet werden, wenn es abgemeldet ist';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorDe extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsDe {
|
extension on TranslationsDe {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsDe {
|
|||||||
case 'most_zapped_streamers': return 'Meistgezappte Streamer';
|
case 'most_zapped_streamers': return 'Meistgezappte Streamer';
|
||||||
case 'no_user_found': return 'Kein Benutzer gefunden';
|
case 'no_user_found': return 'Kein Benutzer gefunden';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('de').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
||||||
one: '1 Zuschauer',
|
one: '1 Zuschauer',
|
||||||
other: '${n} Zuschauer',
|
other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'ENDED';
|
case 'stream.status.ended': return 'BEENDET';
|
||||||
case 'stream.status.planned': return 'GEPLANT';
|
case 'stream.status.planned': return 'GEPLANT';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Gestartet ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Gestartet ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} ging live!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DEAKTIVIERT';
|
case 'stream.chat.disabled': return 'CHAT DEAKTIVIERT';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Die Zeitüberschreitung läuft ab: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout läuft ab: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Zeitüberschreitung '),
|
const TextSpan(text: ' gibt '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' für '),
|
const TextSpan(text: ' einen Timeout für '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM BEENDET';
|
case 'stream.chat.ended': return 'STREAM BEENDET';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' hat '),
|
const TextSpan(text: ' hat '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats gezappt'),
|
const TextSpan(text: ' sats gezappt'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Nachricht schreiben';
|
case 'stream.chat.write.label': return 'Nachricht schreiben';
|
||||||
case 'stream.chat.write.no_signer': return 'Mit npub-Login können keine Nachrichten geschrieben werden';
|
case 'stream.chat.write.no_signer': return 'Mit npub-Login können keine Nachrichten geschrieben werden';
|
||||||
case 'stream.chat.write.login': return 'Bitte anmelden, um Nachrichten zu senden';
|
case 'stream.chat.write.login': return 'Bitte anmelden, um Nachrichten zu senden';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Verliehen an:';
|
case 'stream.chat.badge.awarded_to': return 'Verliehen an:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID VON ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID VON ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raubzüge auf ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raubzüge auf ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Ziel: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Ziel: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Verbleibend: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Verbleibend: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETE';
|
case 'goal.complete': return 'COMPLETE';
|
||||||
case 'button.login': return 'Anmelden';
|
case 'button.login': return 'Anmelden';
|
||||||
case 'button.logout': return 'Abmelden';
|
case 'button.logout': return 'Abmelden';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsDe {
|
|||||||
case 'button.unmute': return 'Entstummen';
|
case 'button.unmute': return 'Entstummen';
|
||||||
case 'button.share': return 'Teilen';
|
case 'button.share': return 'Teilen';
|
||||||
case 'button.save': return 'Speichern';
|
case 'button.save': return 'Speichern';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artikel von ${name}';
|
case 'button.connect': return 'Verbinden Sie';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Note von ${name}';
|
case 'button.settings': return 'Einstellungen';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Live-Stream von ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artikel von ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Note von ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Live-Stream von ${name}';
|
||||||
case 'stream_list.following': return 'Folge ich';
|
case 'stream_list.following': return 'Folge ich';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Geplant';
|
case 'stream_list.planned': return 'Geplant';
|
||||||
case 'stream_list.ended': return 'Beendet';
|
case 'stream_list.ended': return 'Beendet';
|
||||||
case 'zap.title': return ({ required Object name}) => '${name} zappen';
|
case 'zap.title': return ({required Object name}) => '${name} zappen';
|
||||||
case 'zap.custom_amount': return 'Benutzerdefinierter Betrag';
|
case 'zap.custom_amount': return 'Benutzerdefinierter Betrag';
|
||||||
case 'zap.confirm': return 'Bestätigen';
|
case 'zap.confirm': return 'Bestätigen';
|
||||||
case 'zap.comment': return 'Kommentar';
|
case 'zap.comment': return 'Kommentar';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => '${amount} sats zappen';
|
case 'zap.button_zap_ready': return ({required Object amount}) => '${amount} sats zappen';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'In Brieftasche öffnen';
|
case 'zap.button_open_wallet': return 'In Brieftasche öffnen';
|
||||||
|
case 'zap.button_connect_wallet': return 'Brieftasche verbinden';
|
||||||
case 'zap.copy': return 'In die Zwischenablage kopiert';
|
case 'zap.copy': return 'In die Zwischenablage kopiert';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Ungültiger benutzerdefinierter Betrag';
|
case 'zap.error.invalid_custom_amount': return 'Ungültiger benutzerdefinierter Betrag';
|
||||||
case 'zap.error.no_wallet': return 'Keine Lightning-Brieftasche installiert';
|
case 'zap.error.no_wallet': return 'Keine Lightning-Brieftasche installiert';
|
||||||
case 'zap.error.no_lud16': return 'Keine Blitzadresse gefunden';
|
case 'zap.error.no_lud16': return 'Keine Blitzadresse gefunden';
|
||||||
case 'profile.past_streams': return 'Vergangene Streams';
|
case 'profile.past_streams': return 'Vergangene Streams';
|
||||||
case 'profile.edit.display_name': return 'Name anzeigen';
|
case 'settings.button_profile': return 'Profil bearbeiten';
|
||||||
case 'profile.edit.about': return 'Über';
|
case 'settings.button_wallet': return 'Wallet-Einstellungen';
|
||||||
case 'profile.edit.nip05': return 'Nostr-Adresse';
|
case 'settings.profile.display_name': return 'Name anzeigen';
|
||||||
case 'profile.edit.lud16': return 'Lightning-Adresse';
|
case 'settings.profile.about': return 'Über';
|
||||||
case 'profile.edit.error.logged_out': return 'Profil kann nicht bearbeitet werden, wenn es abgemeldet ist';
|
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 '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.balance': return 'Bilanz';
|
||||||
|
case 'settings.wallet.name': return 'Brieftasche';
|
||||||
|
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.username': return 'Benutzername';
|
||||||
case 'login.amber': return 'Anmeldung mit Amber';
|
case 'login.amber': return 'Anmeldung mit Amber';
|
||||||
case 'login.key': return 'Anmeldung mit Schlüssel';
|
case 'login.key': return 'Anmeldung mit Schlüssel';
|
||||||
case 'login.create': return 'Konto erstellen';
|
case 'login.create': return 'Konto erstellen';
|
||||||
case 'login.error.invalid_key': return 'Ungültiger Schlüssel';
|
case 'login.error.invalid_key': return 'Ungültiger Schlüssel';
|
||||||
|
case 'live.start': return 'LIVE GEHEN';
|
||||||
|
case 'live.configure_stream': return 'Stream konfigurieren';
|
||||||
|
case 'live.endpoint': return 'Endpunkt';
|
||||||
|
case 'live.accept_tos': return 'TOS akzeptieren';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('de'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titel';
|
||||||
|
case 'live.summary': return 'Zusammenfassung';
|
||||||
|
case 'live.image': return 'Titelbild';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'NSFW-Inhalt';
|
||||||
|
case 'live.nsfw_description': return 'Prüfen Sie hier, ob dieser Stream Nacktheit oder pornografische Inhalte enthält.';
|
||||||
|
case 'live.error.failed': return 'Stream fehlgeschlagen';
|
||||||
|
case 'live.error.connection_error': return 'Verbindungsfehler';
|
||||||
|
case 'live.error.start_failed': return 'Streamstart fehlgeschlagen, bitte überprüfen Sie Ihr Guthaben';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsEl implements Translations {
|
class TranslationsEl extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsEl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsEl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsEl implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsEl implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsEl _root = this; // ignore: unused_field
|
late final TranslationsEl _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsEl implements Translations {
|
|||||||
/// Ένας ανώνυμος χρήστης
|
/// Ένας ανώνυμος χρήστης
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('el').format(n)} sats';
|
||||||
|
|
||||||
/// Αριθμός θεατών της ροής
|
/// Αριθμός θεατών της ροής
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
||||||
one: '1 θεατής',
|
one: '1 θεατής',
|
||||||
other: '${n} θεατές',
|
other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamEl stream = _TranslationsStreamEl._(_root);
|
@override late final _TranslationsStreamEl stream = _TranslationsStreamEl._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsEl implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapEl zap = _TranslationsZapEl._(_root);
|
@override late final _TranslationsZapEl zap = _TranslationsZapEl._(_root);
|
||||||
@override late final _TranslationsProfileEl profile = _TranslationsProfileEl._(_root);
|
@override late final _TranslationsProfileEl profile = _TranslationsProfileEl._(_root);
|
||||||
|
@override late final _TranslationsSettingsEl settings = _TranslationsSettingsEl._(_root);
|
||||||
@override late final _TranslationsLoginEl login = _TranslationsLoginEl._(_root);
|
@override late final _TranslationsLoginEl login = _TranslationsLoginEl._(_root);
|
||||||
|
@override late final _TranslationsLiveEl live = _TranslationsLiveEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamEl implements TranslationsStreamEn {
|
class _TranslationsStreamEl extends TranslationsStreamEn {
|
||||||
_TranslationsStreamEl._(this._root);
|
_TranslationsStreamEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusEl status = _TranslationsStreamStatusEl._(_root);
|
@override late final _TranslationsStreamStatusEl status = _TranslationsStreamStatusEl._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Ξεκίνησε ${timestamp}';
|
@override String started({required Object timestamp}) => 'Ξεκίνησε ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} βγήκε ζωντανά!';
|
||||||
@override late final _TranslationsStreamChatEl chat = _TranslationsStreamChatEl._(_root);
|
@override late final _TranslationsStreamChatEl chat = _TranslationsStreamChatEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalEl implements TranslationsGoalEn {
|
class _TranslationsGoalEl extends TranslationsGoalEn {
|
||||||
_TranslationsGoalEl._(this._root);
|
_TranslationsGoalEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Στόχος: ${amount}';
|
@override String title({required Object amount}) => 'Στόχος: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Υπόλοιπο: ${amount}';
|
@override String remaining({required Object amount}) => 'Υπόλοιπο: ${amount}';
|
||||||
@override String get complete => 'ΠΛΗΡΗΣ';
|
@override String get complete => 'ΠΛΗΡΗΣ';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonEl implements TranslationsButtonEn {
|
class _TranslationsButtonEl extends TranslationsButtonEn {
|
||||||
_TranslationsButtonEl._(this._root);
|
_TranslationsButtonEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonEl implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Αποσυνδέστε τη φωνή σας από το';
|
@override String get unmute => 'Αποσυνδέστε τη φωνή σας από το';
|
||||||
@override String get share => 'Μοιραστείτε το';
|
@override String get share => 'Μοιραστείτε το';
|
||||||
@override String get save => 'Αποθήκευση';
|
@override String get save => 'Αποθήκευση';
|
||||||
|
@override String get connect => 'Συνδέστε το';
|
||||||
|
@override String get settings => 'Ρυθμίσεις';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedEl implements TranslationsEmbedEn {
|
class _TranslationsEmbedEl extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedEl._(this._root);
|
_TranslationsEmbedEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Άρθρο από ${name}';
|
@override String article_by({required Object name}) => 'Άρθρο από ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Σημείωση του ${name}';
|
@override String note_by({required Object name}) => 'Σημείωση του ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Ζωντανή μετάδοση από το ${name}';
|
@override String live_stream_by({required Object name}) => 'Ζωντανή μετάδοση από το ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListEl implements TranslationsStreamListEn {
|
class _TranslationsStreamListEl extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListEl._(this._root);
|
_TranslationsStreamListEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListEl implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapEl implements TranslationsZapEn {
|
class _TranslationsZapEl extends TranslationsZapEn {
|
||||||
_TranslationsZapEl._(this._root);
|
_TranslationsZapEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Προσαρμοσμένο ποσό';
|
@override String get custom_amount => 'Προσαρμοσμένο ποσό';
|
||||||
@override String get confirm => 'Επιβεβαίωση';
|
@override String get confirm => 'Επιβεβαίωση';
|
||||||
@override String get comment => 'Σχόλιο';
|
@override String get comment => 'Σχόλιο';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Άνοιγμα στο πορτοφόλι';
|
@override String get button_open_wallet => 'Άνοιγμα στο πορτοφόλι';
|
||||||
|
@override String get button_connect_wallet => 'Connect Wallet';
|
||||||
@override String get copy => 'Αντιγραφή στο πρόχειρο';
|
@override String get copy => 'Αντιγραφή στο πρόχειρο';
|
||||||
@override late final _TranslationsZapErrorEl error = _TranslationsZapErrorEl._(_root);
|
@override late final _TranslationsZapErrorEl error = _TranslationsZapErrorEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileEl implements TranslationsProfileEn {
|
class _TranslationsProfileEl extends TranslationsProfileEn {
|
||||||
_TranslationsProfileEl._(this._root);
|
_TranslationsProfileEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Προηγούμενα ρεύματα';
|
@override String get past_streams => 'Προηγούμενα ρεύματα';
|
||||||
@override late final _TranslationsProfileEditEl edit = _TranslationsProfileEditEl._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsEl extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Επεξεργασία προφίλ';
|
||||||
|
@override String get button_wallet => 'Ρυθμίσεις πορτοφολιού';
|
||||||
|
@override late final _TranslationsSettingsProfileEl profile = _TranslationsSettingsProfileEl._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletEl wallet = _TranslationsSettingsWalletEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginEl implements TranslationsLoginEn {
|
class _TranslationsLoginEl extends TranslationsLoginEn {
|
||||||
_TranslationsLoginEl._(this._root);
|
_TranslationsLoginEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginEl implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorEl error = _TranslationsLoginErrorEl._(_root);
|
@override late final _TranslationsLoginErrorEl error = _TranslationsLoginErrorEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveEl extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Διαμόρφωση ροής';
|
||||||
|
@override String get endpoint => 'Τελικό σημείο';
|
||||||
|
@override String get accept_tos => 'Αποδοχή TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Τίτλος';
|
||||||
|
@override String get summary => 'Περίληψη';
|
||||||
|
@override String get image => 'Εικόνα εξωφύλλου';
|
||||||
|
@override String get tags => 'Ετικέτες';
|
||||||
|
@override String get nsfw => 'Περιεχόμενο NSFW';
|
||||||
|
@override String get nsfw_description => 'Ελέγξτε εδώ αν αυτή η ροή περιέχει γυμνό ή πορνογραφικό περιεχόμενο.';
|
||||||
|
@override late final _TranslationsLiveErrorEl error = _TranslationsLiveErrorEl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusEl implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusEl extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusEl._(this._root);
|
_TranslationsStreamStatusEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusEl implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatEl implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatEl extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatEl._(this._root);
|
_TranslationsStreamChatEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ';
|
@override String get disabled => 'ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
||||||
|
|
||||||
/// Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
/// Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' για '),
|
const TextSpan(text: ' για '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Η ροή τελείωσε το υποσέλιδο στο κάτω μέρος της συνομιλίας
|
/// Η ροή τελείωσε το υποσέλιδο στο κάτω μέρος της συνομιλίας
|
||||||
@override String get ended => 'STREAM ΤΕΛΕΙΩΣΕ';
|
@override String get ended => 'STREAM ΤΕΛΕΙΩΣΕ';
|
||||||
|
|
||||||
/// Μήνυμα συνομιλίας που δείχνει ροή ροής zaps
|
/// Μήνυμα συνομιλίας που δείχνει ροή ροής zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteEl write = _TranslationsStreamChatWriteEl._(_root);
|
@override late final _TranslationsStreamChatWriteEl write = _TranslationsStreamChatWriteEl._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeEl badge = _TranslationsStreamChatBadgeEl._(_root);
|
@override late final _TranslationsStreamChatBadgeEl badge = _TranslationsStreamChatBadgeEl._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatEl implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorEl implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorEl extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorEl._(this._root);
|
_TranslationsZapErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorEl implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
@override String get no_lud16 => 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditEl implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileEl extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditEl._(this._root);
|
_TranslationsSettingsProfileEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditEl implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'Σχετικά με το';
|
@override String get about => 'Σχετικά με το';
|
||||||
@override String get nip05 => 'Διεύθυνση Nostr';
|
@override String get nip05 => 'Διεύθυνση Nostr';
|
||||||
@override String get lud16 => 'Διεύθυνση Lightning';
|
@override String get lud16 => 'Διεύθυνση Lightning';
|
||||||
@override late final _TranslationsProfileEditErrorEl error = _TranslationsProfileEditErrorEl._(_root);
|
@override late final _TranslationsSettingsProfileErrorEl error = _TranslationsSettingsProfileErrorEl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletEl extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Υπόλοιπο';
|
||||||
|
@override String get name => 'Πορτοφόλι';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorEl error = _TranslationsSettingsWalletErrorEl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorEl implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorEl extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorEl._(this._root);
|
_TranslationsLoginErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorEl implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Μη έγκυρο κλειδί';
|
@override String get invalid_key => 'Μη έγκυρο κλειδί';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorEl extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Το ρεύμα απέτυχε';
|
||||||
|
@override String get connection_error => 'Σφάλμα σύνδεσης';
|
||||||
|
@override String get start_failed => 'Η εκκίνηση της ροής απέτυχε, παρακαλούμε ελέγξτε το υπόλοιπό σας';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteEl implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteEl extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteEl._(this._root);
|
_TranslationsStreamChatWriteEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteEl implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeEl implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeEl extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeEl._(this._root);
|
_TranslationsStreamChatBadgeEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeEl implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidEl implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidEl extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidEl._(this._root);
|
_TranslationsStreamChatRaidEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Μήνυμα επιδρομής συνομιλίας σε άλλη ροή
|
/// Μήνυμα επιδρομής συνομιλίας σε άλλη ροή
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Μήνυμα επιδρομής συνομιλίας από άλλη ροή
|
/// Μήνυμα επιδρομής συνομιλίας από άλλη ροή
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Χρονοδιακόπτης αντίστροφης μέτρησης για αυτόματη ιππασία
|
/// Χρονοδιακόπτης αντίστροφης μέτρησης για αυτόματη ιππασία
|
||||||
@override String countdown({ required Object time}) => 'Επιδρομές στο ${time}';
|
@override String countdown({required Object time}) => 'Επιδρομές στο ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorEl implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorEl extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorEl._(this._root);
|
_TranslationsSettingsProfileErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEl _root; // ignore: unused_field
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorEl implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί';
|
@override String get logged_out => 'Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorEl extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί';
|
||||||
|
@override String get nwc_auth_event_not_found => 'Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsEl {
|
extension on TranslationsEl {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsEl {
|
|||||||
case 'most_zapped_streamers': return 'Τα περισσότερα Zapped Streamers';
|
case 'most_zapped_streamers': return 'Τα περισσότερα Zapped Streamers';
|
||||||
case 'no_user_found': return 'Δεν βρέθηκε χρήστης';
|
case 'no_user_found': return 'Δεν βρέθηκε χρήστης';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('el').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
||||||
one: '1 θεατής',
|
one: '1 θεατής',
|
||||||
other: '${n} θεατές',
|
other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'ENDED';
|
case 'stream.status.ended': return 'ENDED';
|
||||||
case 'stream.status.planned': return 'ΣΧΕΔΙΑΣΜΟΣ';
|
case 'stream.status.planned': return 'ΣΧΕΔΙΑΣΜΟΣ';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Ξεκίνησε ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Ξεκίνησε ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} βγήκε ζωντανά!';
|
||||||
case 'stream.chat.disabled': return 'ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ';
|
case 'stream.chat.disabled': return 'ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' για '),
|
const TextSpan(text: ' για '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM ΤΕΛΕΙΩΣΕ';
|
case 'stream.chat.ended': return 'STREAM ΤΕΛΕΙΩΣΕ';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Γράψτε μήνυμα';
|
case 'stream.chat.write.label': return 'Γράψτε μήνυμα';
|
||||||
case 'stream.chat.write.no_signer': return 'Δεν μπορείτε να γράψετε μηνύματα με σύνδεση στο npub';
|
case 'stream.chat.write.no_signer': return 'Δεν μπορείτε να γράψετε μηνύματα με σύνδεση στο npub';
|
||||||
case 'stream.chat.write.login': return 'Παρακαλώ συνδεθείτε για να στείλετε μηνύματα';
|
case 'stream.chat.write.login': return 'Παρακαλώ συνδεθείτε για να στείλετε μηνύματα';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Απονέμεται σε:';
|
case 'stream.chat.badge.awarded_to': return 'Απονέμεται σε:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Επιδρομές στο ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Επιδρομές στο ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Στόχος: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Στόχος: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Υπόλοιπο: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Υπόλοιπο: ${amount}';
|
||||||
case 'goal.complete': return 'ΠΛΗΡΗΣ';
|
case 'goal.complete': return 'ΠΛΗΡΗΣ';
|
||||||
case 'button.login': return 'Σύνδεση';
|
case 'button.login': return 'Σύνδεση';
|
||||||
case 'button.logout': return 'Αποσύνδεση';
|
case 'button.logout': return 'Αποσύνδεση';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsEl {
|
|||||||
case 'button.unmute': return 'Αποσυνδέστε τη φωνή σας από το';
|
case 'button.unmute': return 'Αποσυνδέστε τη φωνή σας από το';
|
||||||
case 'button.share': return 'Μοιραστείτε το';
|
case 'button.share': return 'Μοιραστείτε το';
|
||||||
case 'button.save': return 'Αποθήκευση';
|
case 'button.save': return 'Αποθήκευση';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Άρθρο από ${name}';
|
case 'button.connect': return 'Συνδέστε το';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Σημείωση του ${name}';
|
case 'button.settings': return 'Ρυθμίσεις';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Ζωντανή μετάδοση από το ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Άρθρο από ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Σημείωση του ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Ζωντανή μετάδοση από το ${name}';
|
||||||
case 'stream_list.following': return 'Ακολουθώντας το';
|
case 'stream_list.following': return 'Ακολουθώντας το';
|
||||||
case 'stream_list.live': return 'Ζωντανό';
|
case 'stream_list.live': return 'Ζωντανό';
|
||||||
case 'stream_list.planned': return 'Προγραμματισμένο';
|
case 'stream_list.planned': return 'Προγραμματισμένο';
|
||||||
case 'stream_list.ended': return 'Τελείωσε';
|
case 'stream_list.ended': return 'Τελείωσε';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Προσαρμοσμένο ποσό';
|
case 'zap.custom_amount': return 'Προσαρμοσμένο ποσό';
|
||||||
case 'zap.confirm': return 'Επιβεβαίωση';
|
case 'zap.confirm': return 'Επιβεβαίωση';
|
||||||
case 'zap.comment': return 'Σχόλιο';
|
case 'zap.comment': return 'Σχόλιο';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Άνοιγμα στο πορτοφόλι';
|
case 'zap.button_open_wallet': return 'Άνοιγμα στο πορτοφόλι';
|
||||||
|
case 'zap.button_connect_wallet': return 'Connect Wallet';
|
||||||
case 'zap.copy': return 'Αντιγραφή στο πρόχειρο';
|
case 'zap.copy': return 'Αντιγραφή στο πρόχειρο';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Μη έγκυρο προσαρμοσμένο ποσό';
|
case 'zap.error.invalid_custom_amount': return 'Μη έγκυρο προσαρμοσμένο ποσό';
|
||||||
case 'zap.error.no_wallet': return 'Δεν έχει εγκατασταθεί πορτοφόλι αστραπής';
|
case 'zap.error.no_wallet': return 'Δεν έχει εγκατασταθεί πορτοφόλι αστραπής';
|
||||||
case 'zap.error.no_lud16': return 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
case 'zap.error.no_lud16': return 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
||||||
case 'profile.past_streams': return 'Προηγούμενα ρεύματα';
|
case 'profile.past_streams': return 'Προηγούμενα ρεύματα';
|
||||||
case 'profile.edit.display_name': return 'Όνομα οθόνης';
|
case 'settings.button_profile': return 'Επεξεργασία προφίλ';
|
||||||
case 'profile.edit.about': return 'Σχετικά με το';
|
case 'settings.button_wallet': return 'Ρυθμίσεις πορτοφολιού';
|
||||||
case 'profile.edit.nip05': return 'Διεύθυνση Nostr';
|
case 'settings.profile.display_name': return 'Όνομα οθόνης';
|
||||||
case 'profile.edit.lud16': return 'Διεύθυνση Lightning';
|
case 'settings.profile.about': return 'Σχετικά με το';
|
||||||
case 'profile.edit.error.logged_out': return 'Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί';
|
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 '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.balance': return 'Υπόλοιπο';
|
||||||
|
case 'settings.wallet.name': return 'Πορτοφόλι';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού';
|
||||||
case 'login.username': return 'Όνομα χρήστη';
|
case 'login.username': return 'Όνομα χρήστη';
|
||||||
case 'login.amber': return 'Σύνδεση με Amber';
|
case 'login.amber': return 'Σύνδεση με Amber';
|
||||||
case 'login.key': return 'Σύνδεση με κλειδί';
|
case 'login.key': return 'Σύνδεση με κλειδί';
|
||||||
case 'login.create': return 'Δημιουργία λογαριασμού';
|
case 'login.create': return 'Δημιουργία λογαριασμού';
|
||||||
case 'login.error.invalid_key': return 'Μη έγκυρο κλειδί';
|
case 'login.error.invalid_key': return 'Μη έγκυρο κλειδί';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Διαμόρφωση ροής';
|
||||||
|
case 'live.endpoint': return 'Τελικό σημείο';
|
||||||
|
case 'live.accept_tos': return 'Αποδοχή TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('el'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Τίτλος';
|
||||||
|
case 'live.summary': return 'Περίληψη';
|
||||||
|
case 'live.image': return 'Εικόνα εξωφύλλου';
|
||||||
|
case 'live.tags': return 'Ετικέτες';
|
||||||
|
case 'live.nsfw': return 'Περιεχόμενο NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Ελέγξτε εδώ αν αυτή η ροή περιέχει γυμνό ή πορνογραφικό περιεχόμενο.';
|
||||||
|
case 'live.error.failed': return 'Το ρεύμα απέτυχε';
|
||||||
|
case 'live.error.connection_error': return 'Σφάλμα σύνδεσης';
|
||||||
|
case 'live.error.start_failed': return 'Η εκκίνηση της ροής απέτυχε, παρακαλούμε ελέγξτε το υπόλοιπό σας';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,52 +52,57 @@ class Translations implements BaseTranslations<AppLocale, Translations> {
|
|||||||
/// An anonymous user
|
/// An anonymous user
|
||||||
String get anon => 'Anon';
|
String get anon => 'Anon';
|
||||||
|
|
||||||
|
String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('en').format(n)} sats';
|
||||||
|
|
||||||
/// Number of viewers of the stream
|
/// Number of viewers of the stream
|
||||||
String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||||||
one: '1 viewer',
|
one: '1 viewer',
|
||||||
other: '${n} viewers',
|
other: '${NumberFormat.decimalPattern('en').format(n)} viewers',
|
||||||
);
|
);
|
||||||
|
|
||||||
late final TranslationsStreamEn stream = TranslationsStreamEn._(_root);
|
late final TranslationsStreamEn stream = TranslationsStreamEn.internal(_root);
|
||||||
late final TranslationsGoalEn goal = TranslationsGoalEn._(_root);
|
late final TranslationsGoalEn goal = TranslationsGoalEn.internal(_root);
|
||||||
late final TranslationsButtonEn button = TranslationsButtonEn._(_root);
|
late final TranslationsButtonEn button = TranslationsButtonEn.internal(_root);
|
||||||
late final TranslationsEmbedEn embed = TranslationsEmbedEn._(_root);
|
late final TranslationsEmbedEn embed = TranslationsEmbedEn.internal(_root);
|
||||||
|
|
||||||
/// Headings on stream lists by stream type live/ended/planned etc.
|
/// Headings on stream lists by stream type live/ended/planned etc.
|
||||||
late final TranslationsStreamListEn stream_list = TranslationsStreamListEn._(_root);
|
late final TranslationsStreamListEn stream_list = TranslationsStreamListEn.internal(_root);
|
||||||
|
|
||||||
late final TranslationsZapEn zap = TranslationsZapEn._(_root);
|
late final TranslationsZapEn zap = TranslationsZapEn.internal(_root);
|
||||||
late final TranslationsProfileEn profile = TranslationsProfileEn._(_root);
|
late final TranslationsProfileEn profile = TranslationsProfileEn.internal(_root);
|
||||||
late final TranslationsLoginEn login = TranslationsLoginEn._(_root);
|
late final TranslationsSettingsEn settings = TranslationsSettingsEn.internal(_root);
|
||||||
|
late final TranslationsLoginEn login = TranslationsLoginEn.internal(_root);
|
||||||
|
late final TranslationsLiveEn live = TranslationsLiveEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class TranslationsStreamEn {
|
class TranslationsStreamEn {
|
||||||
TranslationsStreamEn._(this._root);
|
TranslationsStreamEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
late final TranslationsStreamStatusEn status = TranslationsStreamStatusEn._(_root);
|
late final TranslationsStreamStatusEn status = TranslationsStreamStatusEn.internal(_root);
|
||||||
String started({ required Object timestamp}) => 'Started ${timestamp}';
|
String started({required Object timestamp}) => 'Started ${timestamp}';
|
||||||
late final TranslationsStreamChatEn chat = TranslationsStreamChatEn._(_root);
|
String notification({required Object name}) => '${name} went live!';
|
||||||
|
late final TranslationsStreamChatEn chat = TranslationsStreamChatEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class TranslationsGoalEn {
|
class TranslationsGoalEn {
|
||||||
TranslationsGoalEn._(this._root);
|
TranslationsGoalEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String title({ required Object amount}) => 'Goal: ${amount}';
|
String title({required Object amount}) => 'Goal: ${amount}';
|
||||||
String remaining({ required Object amount}) => 'Remaining: ${amount}';
|
String remaining({required Object amount}) => 'Remaining: ${amount}';
|
||||||
String get complete => 'COMPLETE';
|
String get complete => 'COMPLETE';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class TranslationsButtonEn {
|
class TranslationsButtonEn {
|
||||||
TranslationsButtonEn._(this._root);
|
TranslationsButtonEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -119,23 +124,25 @@ class TranslationsButtonEn {
|
|||||||
String get unmute => 'Unmute';
|
String get unmute => 'Unmute';
|
||||||
String get share => 'Share';
|
String get share => 'Share';
|
||||||
String get save => 'Save';
|
String get save => 'Save';
|
||||||
|
String get connect => 'Connect';
|
||||||
|
String get settings => 'Settings';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class TranslationsEmbedEn {
|
class TranslationsEmbedEn {
|
||||||
TranslationsEmbedEn._(this._root);
|
TranslationsEmbedEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String article_by({ required Object name}) => 'Article by ${name}';
|
String article_by({required Object name}) => 'Article by ${name}';
|
||||||
String note_by({ required Object name}) => 'Note by ${name}';
|
String note_by({required Object name}) => 'Note by ${name}';
|
||||||
String live_stream_by({ required Object name}) => 'Live stream by ${name}';
|
String live_stream_by({required Object name}) => 'Live stream by ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class TranslationsStreamListEn {
|
class TranslationsStreamListEn {
|
||||||
TranslationsStreamListEn._(this._root);
|
TranslationsStreamListEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -148,36 +155,49 @@ class TranslationsStreamListEn {
|
|||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class TranslationsZapEn {
|
class TranslationsZapEn {
|
||||||
TranslationsZapEn._(this._root);
|
TranslationsZapEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String title({ required Object name}) => 'Zap ${name}';
|
String title({required Object name}) => 'Zap ${name}';
|
||||||
String get custom_amount => 'Custom Amount';
|
String get custom_amount => 'Custom Amount';
|
||||||
String get confirm => 'Confirm';
|
String get confirm => 'Confirm';
|
||||||
String get comment => 'Comment';
|
String get comment => 'Comment';
|
||||||
String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
String get button_zap => 'Zap';
|
String get button_zap => 'Zap';
|
||||||
String get button_open_wallet => 'Open in Wallet';
|
String get button_open_wallet => 'Open in Wallet';
|
||||||
|
String get button_connect_wallet => 'Connect Wallet';
|
||||||
String get copy => 'Copied to clipboard';
|
String get copy => 'Copied to clipboard';
|
||||||
late final TranslationsZapErrorEn error = TranslationsZapErrorEn._(_root);
|
late final TranslationsZapErrorEn error = TranslationsZapErrorEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class TranslationsProfileEn {
|
class TranslationsProfileEn {
|
||||||
TranslationsProfileEn._(this._root);
|
TranslationsProfileEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String get past_streams => 'Past Streams';
|
String get past_streams => 'Past Streams';
|
||||||
late final TranslationsProfileEditEn edit = TranslationsProfileEditEn._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class TranslationsSettingsEn {
|
||||||
|
TranslationsSettingsEn.internal(this._root);
|
||||||
|
|
||||||
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
String get button_profile => 'Edit Profile';
|
||||||
|
String get button_wallet => 'Wallet Settings';
|
||||||
|
late final TranslationsSettingsProfileEn profile = TranslationsSettingsProfileEn.internal(_root);
|
||||||
|
late final TranslationsSettingsWalletEn wallet = TranslationsSettingsWalletEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class TranslationsLoginEn {
|
class TranslationsLoginEn {
|
||||||
TranslationsLoginEn._(this._root);
|
TranslationsLoginEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -186,12 +206,36 @@ class TranslationsLoginEn {
|
|||||||
String get amber => 'Login with Amber';
|
String get amber => 'Login with Amber';
|
||||||
String get key => 'Login with Key';
|
String get key => 'Login with Key';
|
||||||
String get create => 'Create Account';
|
String get create => 'Create Account';
|
||||||
late final TranslationsLoginErrorEn error = TranslationsLoginErrorEn._(_root);
|
late final TranslationsLoginErrorEn error = TranslationsLoginErrorEn.internal(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class TranslationsLiveEn {
|
||||||
|
TranslationsLiveEn.internal(this._root);
|
||||||
|
|
||||||
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
String get start => 'GO LIVE';
|
||||||
|
String get configure_stream => 'Configure Stream';
|
||||||
|
String get endpoint => 'Endpoint';
|
||||||
|
String get accept_tos => 'Accept TOS';
|
||||||
|
String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
String get title => 'Title';
|
||||||
|
String get summary => 'Summary';
|
||||||
|
String get image => 'Cover Image';
|
||||||
|
String get tags => 'Tags';
|
||||||
|
String get nsfw => 'NSFW Content';
|
||||||
|
String get nsfw_description => 'Check here if this stream contains nudity or pornographic content.';
|
||||||
|
late final TranslationsLiveErrorEn error = TranslationsLiveErrorEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class TranslationsStreamStatusEn {
|
class TranslationsStreamStatusEn {
|
||||||
TranslationsStreamStatusEn._(this._root);
|
TranslationsStreamStatusEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -203,42 +247,42 @@ class TranslationsStreamStatusEn {
|
|||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class TranslationsStreamChatEn {
|
class TranslationsStreamChatEn {
|
||||||
TranslationsStreamChatEn._(this._root);
|
TranslationsStreamChatEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String get disabled => 'CHAT DISABLED';
|
String get disabled => 'CHAT DISABLED';
|
||||||
String disabled_timeout({ required Object time}) => 'Timeout expires: ${time}';
|
String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
|
||||||
|
|
||||||
/// Chat message showing timeout events
|
/// Chat message showing timeout events
|
||||||
TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream ended footer at bottom of chat
|
/// Stream ended footer at bottom of chat
|
||||||
String get ended => 'STREAM ENDED';
|
String get ended => 'STREAM ENDED';
|
||||||
|
|
||||||
/// Chat message showing stream zaps
|
/// Chat message showing stream zaps
|
||||||
TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
late final TranslationsStreamChatWriteEn write = TranslationsStreamChatWriteEn._(_root);
|
late final TranslationsStreamChatWriteEn write = TranslationsStreamChatWriteEn.internal(_root);
|
||||||
late final TranslationsStreamChatBadgeEn badge = TranslationsStreamChatBadgeEn._(_root);
|
late final TranslationsStreamChatBadgeEn badge = TranslationsStreamChatBadgeEn.internal(_root);
|
||||||
late final TranslationsStreamChatRaidEn raid = TranslationsStreamChatRaidEn._(_root);
|
late final TranslationsStreamChatRaidEn raid = TranslationsStreamChatRaidEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class TranslationsZapErrorEn {
|
class TranslationsZapErrorEn {
|
||||||
TranslationsZapErrorEn._(this._root);
|
TranslationsZapErrorEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -248,9 +292,9 @@ class TranslationsZapErrorEn {
|
|||||||
String get no_lud16 => 'No lightning address found';
|
String get no_lud16 => 'No lightning address found';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class TranslationsProfileEditEn {
|
class TranslationsSettingsProfileEn {
|
||||||
TranslationsProfileEditEn._(this._root);
|
TranslationsSettingsProfileEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -259,12 +303,28 @@ class TranslationsProfileEditEn {
|
|||||||
String get about => 'About';
|
String get about => 'About';
|
||||||
String get nip05 => 'Nostr Address';
|
String get nip05 => 'Nostr Address';
|
||||||
String get lud16 => 'Lightning Address';
|
String get lud16 => 'Lightning Address';
|
||||||
late final TranslationsProfileEditErrorEn error = TranslationsProfileEditErrorEn._(_root);
|
late final TranslationsSettingsProfileErrorEn error = TranslationsSettingsProfileErrorEn.internal(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class TranslationsSettingsWalletEn {
|
||||||
|
TranslationsSettingsWalletEn.internal(this._root);
|
||||||
|
|
||||||
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
String get connect_wallet => 'Connect Wallet (NWC nostr+walletconnect://)';
|
||||||
|
String get disconnect_wallet => 'Disconnect Wallet';
|
||||||
|
String get connect_1tap => '1-Tap Connection';
|
||||||
|
String get paste => 'Paste URL';
|
||||||
|
String get balance => 'Balance';
|
||||||
|
String get name => 'Wallet';
|
||||||
|
late final TranslationsSettingsWalletErrorEn error = TranslationsSettingsWalletErrorEn.internal(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class TranslationsLoginErrorEn {
|
class TranslationsLoginErrorEn {
|
||||||
TranslationsLoginErrorEn._(this._root);
|
TranslationsLoginErrorEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -272,9 +332,21 @@ class TranslationsLoginErrorEn {
|
|||||||
String get invalid_key => 'Invalid key';
|
String get invalid_key => 'Invalid key';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class TranslationsLiveErrorEn {
|
||||||
|
TranslationsLiveErrorEn.internal(this._root);
|
||||||
|
|
||||||
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
String get failed => 'Stream failed';
|
||||||
|
String get connection_error => 'Connection Error';
|
||||||
|
String get start_failed => 'Stream start failed, please check your balance';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class TranslationsStreamChatWriteEn {
|
class TranslationsStreamChatWriteEn {
|
||||||
TranslationsStreamChatWriteEn._(this._root);
|
TranslationsStreamChatWriteEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -292,7 +364,7 @@ class TranslationsStreamChatWriteEn {
|
|||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class TranslationsStreamChatBadgeEn {
|
class TranslationsStreamChatBadgeEn {
|
||||||
TranslationsStreamChatBadgeEn._(this._root);
|
TranslationsStreamChatBadgeEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -304,25 +376,25 @@ class TranslationsStreamChatBadgeEn {
|
|||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class TranslationsStreamChatRaidEn {
|
class TranslationsStreamChatRaidEn {
|
||||||
TranslationsStreamChatRaidEn._(this._root);
|
TranslationsStreamChatRaidEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat raid message to another stream
|
/// Chat raid message to another stream
|
||||||
String to({ required Object name}) => 'RAIDING ${name}';
|
String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid message from another stream
|
/// Chat raid message from another stream
|
||||||
String from({ required Object name}) => 'RAID FROM ${name}';
|
String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Countdown timer for auto-raiding
|
/// Countdown timer for auto-raiding
|
||||||
String countdown({ required Object time}) => 'Raiding in ${time}';
|
String countdown({required Object time}) => 'Raiding in ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class TranslationsProfileEditErrorEn {
|
class TranslationsSettingsProfileErrorEn {
|
||||||
TranslationsProfileEditErrorEn._(this._root);
|
TranslationsSettingsProfileErrorEn.internal(this._root);
|
||||||
|
|
||||||
final Translations _root; // ignore: unused_field
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -330,6 +402,17 @@ class TranslationsProfileEditErrorEn {
|
|||||||
String get logged_out => 'Cant edit profile when logged out';
|
String get logged_out => 'Cant edit profile when logged out';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class TranslationsSettingsWalletErrorEn {
|
||||||
|
TranslationsSettingsWalletErrorEn.internal(this._root);
|
||||||
|
|
||||||
|
final Translations _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
String get logged_out => 'Cant connect wallet when logged out';
|
||||||
|
String get nwc_auth_event_not_found => 'No wallet auth event found';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on Translations {
|
extension on Translations {
|
||||||
@ -339,39 +422,41 @@ extension on Translations {
|
|||||||
case 'most_zapped_streamers': return 'Most Zapped Streamers';
|
case 'most_zapped_streamers': return 'Most Zapped Streamers';
|
||||||
case 'no_user_found': return 'No user found';
|
case 'no_user_found': return 'No user found';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('en').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||||||
one: '1 viewer',
|
one: '1 viewer',
|
||||||
other: '${n} viewers',
|
other: '${NumberFormat.decimalPattern('en').format(n)} viewers',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'ENDED';
|
case 'stream.status.ended': return 'ENDED';
|
||||||
case 'stream.status.planned': return 'PLANNED';
|
case 'stream.status.planned': return 'PLANNED';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Started ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Started ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} went live!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DISABLED';
|
case 'stream.chat.disabled': return 'CHAT DISABLED';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Timeout expires: ${time}';
|
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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Write message';
|
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.no_signer': return 'Can\'t write messages with npub login';
|
||||||
case 'stream.chat.write.login': return 'Please login to send messages';
|
case 'stream.chat.write.login': return 'Please login to send messages';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Awarded to:';
|
case 'stream.chat.badge.awarded_to': return 'Awarded to:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raiding in ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Goal: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Remaining: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETE';
|
case 'goal.complete': return 'COMPLETE';
|
||||||
case 'button.login': return 'Login';
|
case 'button.login': return 'Login';
|
||||||
case 'button.logout': return 'Logout';
|
case 'button.logout': return 'Logout';
|
||||||
@ -382,35 +467,65 @@ extension on Translations {
|
|||||||
case 'button.unmute': return 'Unmute';
|
case 'button.unmute': return 'Unmute';
|
||||||
case 'button.share': return 'Share';
|
case 'button.share': return 'Share';
|
||||||
case 'button.save': return 'Save';
|
case 'button.save': return 'Save';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Article by ${name}';
|
case 'button.connect': return 'Connect';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Note by ${name}';
|
case 'button.settings': return 'Settings';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Live stream by ${name}';
|
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.following': return 'Following';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Planned';
|
case 'stream_list.planned': return 'Planned';
|
||||||
case 'stream_list.ended': return 'Ended';
|
case 'stream_list.ended': return 'Ended';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Custom Amount';
|
case 'zap.custom_amount': return 'Custom Amount';
|
||||||
case 'zap.confirm': return 'Confirm';
|
case 'zap.confirm': return 'Confirm';
|
||||||
case 'zap.comment': return 'Comment';
|
case 'zap.comment': return 'Comment';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Open in Wallet';
|
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.copy': return 'Copied to clipboard';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
|
case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
|
||||||
case 'zap.error.no_wallet': return 'No lightning wallet installed';
|
case 'zap.error.no_wallet': return 'No lightning wallet installed';
|
||||||
case 'zap.error.no_lud16': return 'No lightning address found';
|
case 'zap.error.no_lud16': return 'No lightning address found';
|
||||||
case 'profile.past_streams': return 'Past Streams';
|
case 'profile.past_streams': return 'Past Streams';
|
||||||
case 'profile.edit.display_name': return 'Display Name';
|
case 'settings.button_profile': return 'Edit Profile';
|
||||||
case 'profile.edit.about': return 'About';
|
case 'settings.button_wallet': return 'Wallet Settings';
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
case 'settings.profile.display_name': return 'Display Name';
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
case 'settings.profile.about': return 'About';
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile when logged out';
|
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 nostr+walletconnect://)';
|
||||||
|
case 'settings.wallet.disconnect_wallet': return 'Disconnect Wallet';
|
||||||
|
case 'settings.wallet.connect_1tap': return '1-Tap Connection';
|
||||||
|
case 'settings.wallet.paste': return 'Paste URL';
|
||||||
|
case 'settings.wallet.balance': return 'Balance';
|
||||||
|
case 'settings.wallet.name': return 'Wallet';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'Cant connect wallet when logged out';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'No wallet auth event found';
|
||||||
case 'login.username': return 'Username';
|
case 'login.username': return 'Username';
|
||||||
case 'login.amber': return 'Login with Amber';
|
case 'login.amber': return 'Login with Amber';
|
||||||
case 'login.key': return 'Login with Key';
|
case 'login.key': return 'Login with Key';
|
||||||
case 'login.create': return 'Create Account';
|
case 'login.create': return 'Create Account';
|
||||||
case 'login.error.invalid_key': return 'Invalid key';
|
case 'login.error.invalid_key': return 'Invalid key';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Configure Stream';
|
||||||
|
case 'live.endpoint': return 'Endpoint';
|
||||||
|
case 'live.accept_tos': return 'Accept TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Title';
|
||||||
|
case 'live.summary': return 'Summary';
|
||||||
|
case 'live.image': return 'Cover Image';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'NSFW Content';
|
||||||
|
case 'live.nsfw_description': return 'Check here if this stream contains nudity or pornographic content.';
|
||||||
|
case 'live.error.failed': return 'Stream failed';
|
||||||
|
case 'live.error.connection_error': return 'Connection Error';
|
||||||
|
case 'live.error.start_failed': return 'Stream start failed, please check your balance';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsEs implements Translations {
|
class TranslationsEs extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsEs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsEs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsEs implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsEs implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsEs _root = this; // ignore: unused_field
|
late final TranslationsEs _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsEs implements Translations {
|
|||||||
/// Un usuario anónimo
|
/// Un usuario anónimo
|
||||||
@override String get anon => 'Anónimo';
|
@override String get anon => 'Anónimo';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('es').format(n)} sats';
|
||||||
|
|
||||||
/// Número de espectadores del flujo
|
/// Número de espectadores del flujo
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
||||||
one: '1 espectador',
|
one: '1 espectador',
|
||||||
other: '${n} espectadores',
|
other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamEs stream = _TranslationsStreamEs._(_root);
|
@override late final _TranslationsStreamEs stream = _TranslationsStreamEs._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsEs implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapEs zap = _TranslationsZapEs._(_root);
|
@override late final _TranslationsZapEs zap = _TranslationsZapEs._(_root);
|
||||||
@override late final _TranslationsProfileEs profile = _TranslationsProfileEs._(_root);
|
@override late final _TranslationsProfileEs profile = _TranslationsProfileEs._(_root);
|
||||||
|
@override late final _TranslationsSettingsEs settings = _TranslationsSettingsEs._(_root);
|
||||||
@override late final _TranslationsLoginEs login = _TranslationsLoginEs._(_root);
|
@override late final _TranslationsLoginEs login = _TranslationsLoginEs._(_root);
|
||||||
|
@override late final _TranslationsLiveEs live = _TranslationsLiveEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamEs implements TranslationsStreamEn {
|
class _TranslationsStreamEs extends TranslationsStreamEn {
|
||||||
_TranslationsStreamEs._(this._root);
|
_TranslationsStreamEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusEs status = _TranslationsStreamStatusEs._(_root);
|
@override late final _TranslationsStreamStatusEs status = _TranslationsStreamStatusEs._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Comenzó ${timestamp}';
|
@override String started({required Object timestamp}) => 'Comenzó ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} ¡se ha puesto en marcha!';
|
||||||
@override late final _TranslationsStreamChatEs chat = _TranslationsStreamChatEs._(_root);
|
@override late final _TranslationsStreamChatEs chat = _TranslationsStreamChatEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalEs implements TranslationsGoalEn {
|
class _TranslationsGoalEs extends TranslationsGoalEn {
|
||||||
_TranslationsGoalEs._(this._root);
|
_TranslationsGoalEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Objetivo: ${amount}';
|
@override String title({required Object amount}) => 'Objetivo: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Resto: ${amount}';
|
@override String remaining({required Object amount}) => 'Resto: ${amount}';
|
||||||
@override String get complete => 'COMPLETAR';
|
@override String get complete => 'COMPLETAR';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonEs implements TranslationsButtonEn {
|
class _TranslationsButtonEs extends TranslationsButtonEn {
|
||||||
_TranslationsButtonEs._(this._root);
|
_TranslationsButtonEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonEs implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Dejar de silenciar';
|
@override String get unmute => 'Dejar de silenciar';
|
||||||
@override String get share => 'Compartir';
|
@override String get share => 'Compartir';
|
||||||
@override String get save => 'Guardar';
|
@override String get save => 'Guardar';
|
||||||
|
@override String get connect => 'Conectar';
|
||||||
|
@override String get settings => 'Ajustes';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedEs implements TranslationsEmbedEn {
|
class _TranslationsEmbedEs extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedEs._(this._root);
|
_TranslationsEmbedEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artículo de ${name}';
|
@override String article_by({required Object name}) => 'Artículo de ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Nota de ${name}';
|
@override String note_by({required Object name}) => 'Nota de ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Transmisión en directo por ${name}';
|
@override String live_stream_by({required Object name}) => 'Transmisión en directo por ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListEs implements TranslationsStreamListEn {
|
class _TranslationsStreamListEs extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListEs._(this._root);
|
_TranslationsStreamListEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListEs implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapEs implements TranslationsZapEn {
|
class _TranslationsZapEs extends TranslationsZapEn {
|
||||||
_TranslationsZapEs._(this._root);
|
_TranslationsZapEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Importe personalizado';
|
@override String get custom_amount => 'Importe personalizado';
|
||||||
@override String get confirm => 'Confirmar';
|
@override String get confirm => 'Confirmar';
|
||||||
@override String get comment => 'Comentario';
|
@override String get comment => 'Comentario';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zapear ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zapear ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Abrir en cartera';
|
@override String get button_open_wallet => 'Abrir en cartera';
|
||||||
|
@override String get button_connect_wallet => 'Billetera Connect';
|
||||||
@override String get copy => 'Copiado al portapapeles';
|
@override String get copy => 'Copiado al portapapeles';
|
||||||
@override late final _TranslationsZapErrorEs error = _TranslationsZapErrorEs._(_root);
|
@override late final _TranslationsZapErrorEs error = _TranslationsZapErrorEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileEs implements TranslationsProfileEn {
|
class _TranslationsProfileEs extends TranslationsProfileEn {
|
||||||
_TranslationsProfileEs._(this._root);
|
_TranslationsProfileEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Transmisiones anteriores';
|
@override String get past_streams => 'Transmisiones anteriores';
|
||||||
@override late final _TranslationsProfileEditEs edit = _TranslationsProfileEditEs._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsEs extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Editar perfil';
|
||||||
|
@override String get button_wallet => 'Configuración de la cartera';
|
||||||
|
@override late final _TranslationsSettingsProfileEs profile = _TranslationsSettingsProfileEs._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletEs wallet = _TranslationsSettingsWalletEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginEs implements TranslationsLoginEn {
|
class _TranslationsLoginEs extends TranslationsLoginEn {
|
||||||
_TranslationsLoginEs._(this._root);
|
_TranslationsLoginEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginEs implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorEs error = _TranslationsLoginErrorEs._(_root);
|
@override late final _TranslationsLoginErrorEs error = _TranslationsLoginErrorEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveEs extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'EN VIVO';
|
||||||
|
@override String get configure_stream => 'Configurar Stream';
|
||||||
|
@override String get endpoint => 'Punto final';
|
||||||
|
@override String get accept_tos => 'Aceptar TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Título';
|
||||||
|
@override String get summary => 'Resumen';
|
||||||
|
@override String get image => 'Imagen de portada';
|
||||||
|
@override String get tags => 'Etiquetas';
|
||||||
|
@override String get nsfw => 'Contenido NSFW';
|
||||||
|
@override String get nsfw_description => 'Compruebe aquí si este flujo contiene desnudos o contenido pornográfico.';
|
||||||
|
@override late final _TranslationsLiveErrorEs error = _TranslationsLiveErrorEs._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusEs implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusEs extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusEs._(this._root);
|
_TranslationsStreamStatusEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusEs implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatEs implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatEs extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatEs._(this._root);
|
_TranslationsStreamChatEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DESHABILITADO';
|
@override String get disabled => 'CHAT DESHABILITADO';
|
||||||
@override String disabled_timeout({ required Object time}) => 'El tiempo de espera expira: ${time}';
|
@override String disabled_timeout({required Object time}) => 'El tiempo de espera expira: ${time}';
|
||||||
|
|
||||||
/// Mensaje de chat que muestra los eventos de tiempo de espera
|
/// Mensaje de chat que muestra los eventos de tiempo de espera
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' para '),
|
const TextSpan(text: ' para '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream finalizó en la parte inferior del chat
|
/// Stream finalizó en la parte inferior del chat
|
||||||
@override String get ended => 'STREAM FINED';
|
@override String get ended => 'STREAM FINED';
|
||||||
|
|
||||||
/// Mensaje de chat que muestra zaps de flujo
|
/// Mensaje de chat que muestra zaps de flujo
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapearon '),
|
const TextSpan(text: ' zapearon '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteEs write = _TranslationsStreamChatWriteEs._(_root);
|
@override late final _TranslationsStreamChatWriteEs write = _TranslationsStreamChatWriteEs._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeEs badge = _TranslationsStreamChatBadgeEs._(_root);
|
@override late final _TranslationsStreamChatBadgeEs badge = _TranslationsStreamChatBadgeEs._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatEs implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorEs implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorEs extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorEs._(this._root);
|
_TranslationsZapErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorEs implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'No se ha encontrado ninguna dirección de rayos';
|
@override String get no_lud16 => 'No se ha encontrado ninguna dirección de rayos';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditEs implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileEs extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditEs._(this._root);
|
_TranslationsSettingsProfileEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Mostrar nombre';
|
@override String get display_name => 'Mostrar nombre';
|
||||||
@override String get about => 'Sobre ti';
|
@override String get about => 'Acerca de';
|
||||||
@override String get nip05 => 'Dirección Nostr';
|
@override String get nip05 => 'Dirección Nostr';
|
||||||
@override String get lud16 => 'Dirección del rayo';
|
@override String get lud16 => 'Dirección del rayo';
|
||||||
@override late final _TranslationsProfileEditErrorEs error = _TranslationsProfileEditErrorEs._(_root);
|
@override late final _TranslationsSettingsProfileErrorEs error = _TranslationsSettingsProfileErrorEs._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletEs extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Saldo';
|
||||||
|
@override String get name => 'Cartera';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorEs error = _TranslationsSettingsWalletErrorEs._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorEs implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorEs extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorEs._(this._root);
|
_TranslationsLoginErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorEs implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Clave no válida';
|
@override String get invalid_key => 'Clave no válida';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorEs extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Corriente fallida';
|
||||||
|
@override String get connection_error => 'Error de conexión';
|
||||||
|
@override String get start_failed => 'Error en el inicio de la transmisión, compruebe su saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteEs implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteEs extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteEs._(this._root);
|
_TranslationsStreamChatWriteEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteEs implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeEs implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeEs extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeEs._(this._root);
|
_TranslationsStreamChatBadgeEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeEs implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidEs implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidEs extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidEs._(this._root);
|
_TranslationsStreamChatRaidEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Mensaje de raid de chat a otro flujo
|
/// Mensaje de raid de chat a otro flujo
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Mensaje de incursión en el chat desde otro flujo
|
/// Mensaje de incursión en el chat desde otro flujo
|
||||||
@override String from({ required Object name}) => 'RAID DESDE ${name}';
|
@override String from({required Object name}) => 'RAID DESDE ${name}';
|
||||||
|
|
||||||
/// Temporizador de cuenta atrás para auto-raiding
|
/// Temporizador de cuenta atrás para auto-raiding
|
||||||
@override String countdown({ required Object time}) => 'Incursiones en ${time}';
|
@override String countdown({required Object time}) => 'Incursiones en ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorEs implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorEs extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorEs._(this._root);
|
_TranslationsSettingsProfileErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorEs implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'No se puede editar el perfil cuando se cierra la sesión';
|
@override String get logged_out => 'No se puede editar el perfil cuando se cierra la sesión';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorEs extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsEs {
|
extension on TranslationsEs {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsEs {
|
|||||||
case 'most_zapped_streamers': return 'Serpentinas más derribadas';
|
case 'most_zapped_streamers': return 'Serpentinas más derribadas';
|
||||||
case 'no_user_found': return 'No se ha encontrado ningún usuario';
|
case 'no_user_found': return 'No se ha encontrado ningún usuario';
|
||||||
case 'anon': return 'Anónimo';
|
case 'anon': return 'Anónimo';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('es').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
||||||
one: '1 espectador',
|
one: '1 espectador',
|
||||||
other: '${n} espectadores',
|
other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'EN VIVO';
|
case 'stream.status.live': return 'EN VIVO';
|
||||||
case 'stream.status.ended': return 'FIN';
|
case 'stream.status.ended': return 'FIN';
|
||||||
case 'stream.status.planned': return 'PLANIFICADO';
|
case 'stream.status.planned': return 'PLANIFICADO';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Comenzó ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Comenzó ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} ¡se ha puesto en marcha!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DESHABILITADO';
|
case 'stream.chat.disabled': return 'CHAT DESHABILITADO';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'El tiempo de espera expira: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'El tiempo de espera expira: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' para '),
|
const TextSpan(text: ' para '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM FINED';
|
case 'stream.chat.ended': return 'STREAM FINED';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapearon '),
|
const TextSpan(text: ' zapearon '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Escribir mensaje';
|
case 'stream.chat.write.label': return 'Escribir mensaje';
|
||||||
case 'stream.chat.write.no_signer': return 'No se pueden escribir mensajes con el login npub';
|
case 'stream.chat.write.no_signer': return 'No se pueden escribir mensajes con el login npub';
|
||||||
case 'stream.chat.write.login': return 'Inicie sesión para enviar mensajes';
|
case 'stream.chat.write.login': return 'Inicie sesión para enviar mensajes';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Concedido a:';
|
case 'stream.chat.badge.awarded_to': return 'Concedido a:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID DESDE ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID DESDE ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Incursiones en ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Incursiones en ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Objetivo: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Objetivo: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Resto: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Resto: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETAR';
|
case 'goal.complete': return 'COMPLETAR';
|
||||||
case 'button.login': return 'Iniciar Sesión';
|
case 'button.login': return 'Iniciar Sesión';
|
||||||
case 'button.logout': return 'Cerrar sesión';
|
case 'button.logout': return 'Cerrar sesión';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsEs {
|
|||||||
case 'button.unmute': return 'Dejar de silenciar';
|
case 'button.unmute': return 'Dejar de silenciar';
|
||||||
case 'button.share': return 'Compartir';
|
case 'button.share': return 'Compartir';
|
||||||
case 'button.save': return 'Guardar';
|
case 'button.save': return 'Guardar';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artículo de ${name}';
|
case 'button.connect': return 'Conectar';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Nota de ${name}';
|
case 'button.settings': return 'Ajustes';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Transmisión en directo por ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artículo de ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Nota de ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Transmisión en directo por ${name}';
|
||||||
case 'stream_list.following': return 'Siguiendo';
|
case 'stream_list.following': return 'Siguiendo';
|
||||||
case 'stream_list.live': return 'En directo';
|
case 'stream_list.live': return 'En directo';
|
||||||
case 'stream_list.planned': return 'Planificado';
|
case 'stream_list.planned': return 'Planificado';
|
||||||
case 'stream_list.ended': return 'Finalizado';
|
case 'stream_list.ended': return 'Finalizado';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Importe personalizado';
|
case 'zap.custom_amount': return 'Importe personalizado';
|
||||||
case 'zap.confirm': return 'Confirmar';
|
case 'zap.confirm': return 'Confirmar';
|
||||||
case 'zap.comment': return 'Comentario';
|
case 'zap.comment': return 'Comentario';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zapear ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zapear ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Abrir en cartera';
|
case 'zap.button_open_wallet': return 'Abrir en cartera';
|
||||||
|
case 'zap.button_connect_wallet': return 'Billetera Connect';
|
||||||
case 'zap.copy': return 'Copiado al portapapeles';
|
case 'zap.copy': return 'Copiado al portapapeles';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Importe personalizado no válido';
|
case 'zap.error.invalid_custom_amount': return 'Importe personalizado no válido';
|
||||||
case 'zap.error.no_wallet': return 'Sin monedero relámpago instalado';
|
case 'zap.error.no_wallet': return 'Sin monedero relámpago instalado';
|
||||||
case 'zap.error.no_lud16': return 'No se ha encontrado ninguna dirección de rayos';
|
case 'zap.error.no_lud16': return 'No se ha encontrado ninguna dirección de rayos';
|
||||||
case 'profile.past_streams': return 'Transmisiones anteriores';
|
case 'profile.past_streams': return 'Transmisiones anteriores';
|
||||||
case 'profile.edit.display_name': return 'Mostrar nombre';
|
case 'settings.button_profile': return 'Editar perfil';
|
||||||
case 'profile.edit.about': return 'Sobre ti';
|
case 'settings.button_wallet': return 'Configuración de la cartera';
|
||||||
case 'profile.edit.nip05': return 'Dirección Nostr';
|
case 'settings.profile.display_name': return 'Mostrar nombre';
|
||||||
case 'profile.edit.lud16': return 'Dirección del rayo';
|
case 'settings.profile.about': return 'Acerca de';
|
||||||
case 'profile.edit.error.logged_out': return 'No se puede editar el perfil cuando se cierra la sesión';
|
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 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.balance': return 'Saldo';
|
||||||
|
case 'settings.wallet.name': return 'Cartera';
|
||||||
|
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.username': return 'Usuario';
|
||||||
case 'login.amber': return 'Iniciar sesión con Amber';
|
case 'login.amber': return 'Iniciar sesión con Amber';
|
||||||
case 'login.key': return 'Inicio de sesión con clave';
|
case 'login.key': return 'Inicio de sesión con clave';
|
||||||
case 'login.create': return 'Crear una cuenta';
|
case 'login.create': return 'Crear una cuenta';
|
||||||
case 'login.error.invalid_key': return 'Clave no válida';
|
case 'login.error.invalid_key': return 'Clave no válida';
|
||||||
|
case 'live.start': return 'EN VIVO';
|
||||||
|
case 'live.configure_stream': return 'Configurar Stream';
|
||||||
|
case 'live.endpoint': return 'Punto final';
|
||||||
|
case 'live.accept_tos': return 'Aceptar TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Título';
|
||||||
|
case 'live.summary': return 'Resumen';
|
||||||
|
case 'live.image': return 'Imagen de portada';
|
||||||
|
case 'live.tags': return 'Etiquetas';
|
||||||
|
case 'live.nsfw': return 'Contenido NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Compruebe aquí si este flujo contiene desnudos o contenido pornográfico.';
|
||||||
|
case 'live.error.failed': return 'Corriente fallida';
|
||||||
|
case 'live.error.connection_error': return 'Error de conexión';
|
||||||
|
case 'live.error.start_failed': return 'Error en el inicio de la transmisión, compruebe su saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsFi implements Translations {
|
class TranslationsFi extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsFi({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsFi({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsFi implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsFi implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsFi _root = this; // ignore: unused_field
|
late final TranslationsFi _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsFi implements Translations {
|
|||||||
/// Nimetön käyttäjä
|
/// Nimetön käyttäjä
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('fi').format(n)} sats';
|
||||||
|
|
||||||
/// Streamin katsojien määrä
|
/// Streamin katsojien määrä
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
||||||
one: '1 katsoja',
|
one: '1 katsoja',
|
||||||
other: '${n} katsojaa',
|
other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamFi stream = _TranslationsStreamFi._(_root);
|
@override late final _TranslationsStreamFi stream = _TranslationsStreamFi._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsFi implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapFi zap = _TranslationsZapFi._(_root);
|
@override late final _TranslationsZapFi zap = _TranslationsZapFi._(_root);
|
||||||
@override late final _TranslationsProfileFi profile = _TranslationsProfileFi._(_root);
|
@override late final _TranslationsProfileFi profile = _TranslationsProfileFi._(_root);
|
||||||
|
@override late final _TranslationsSettingsFi settings = _TranslationsSettingsFi._(_root);
|
||||||
@override late final _TranslationsLoginFi login = _TranslationsLoginFi._(_root);
|
@override late final _TranslationsLoginFi login = _TranslationsLoginFi._(_root);
|
||||||
|
@override late final _TranslationsLiveFi live = _TranslationsLiveFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamFi implements TranslationsStreamEn {
|
class _TranslationsStreamFi extends TranslationsStreamEn {
|
||||||
_TranslationsStreamFi._(this._root);
|
_TranslationsStreamFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusFi status = _TranslationsStreamStatusFi._(_root);
|
@override late final _TranslationsStreamStatusFi status = _TranslationsStreamStatusFi._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Aloitettu ${timestamp}';
|
@override String started({required Object timestamp}) => 'Aloitettu ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} meni suoraksi!';
|
||||||
@override late final _TranslationsStreamChatFi chat = _TranslationsStreamChatFi._(_root);
|
@override late final _TranslationsStreamChatFi chat = _TranslationsStreamChatFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalFi implements TranslationsGoalEn {
|
class _TranslationsGoalFi extends TranslationsGoalEn {
|
||||||
_TranslationsGoalFi._(this._root);
|
_TranslationsGoalFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Tavoite: ${amount}';
|
@override String title({required Object amount}) => 'Tavoite: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Jäljellä: ${amount}';
|
@override String remaining({required Object amount}) => 'Jäljellä: ${amount}';
|
||||||
@override String get complete => 'TÄYDELLINEN';
|
@override String get complete => 'TÄYDELLINEN';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonFi implements TranslationsButtonEn {
|
class _TranslationsButtonFi extends TranslationsButtonEn {
|
||||||
_TranslationsButtonFi._(this._root);
|
_TranslationsButtonFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonFi implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Poista mykistys';
|
@override String get unmute => 'Poista mykistys';
|
||||||
@override String get share => 'Jaa';
|
@override String get share => 'Jaa';
|
||||||
@override String get save => 'Tallenna';
|
@override String get save => 'Tallenna';
|
||||||
|
@override String get connect => 'Yhdistä';
|
||||||
|
@override String get settings => 'Asetukset';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedFi implements TranslationsEmbedEn {
|
class _TranslationsEmbedFi extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedFi._(this._root);
|
_TranslationsEmbedFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artikkeli ${name}';
|
@override String article_by({required Object name}) => 'Artikkeli ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Viesti lähettäjältä ${name}';
|
@override String note_by({required Object name}) => 'Viesti lähettäjältä ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Suora lähetys osoitteessa ${name}';
|
@override String live_stream_by({required Object name}) => 'Suora lähetys osoitteessa ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListFi implements TranslationsStreamListEn {
|
class _TranslationsStreamListFi extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListFi._(this._root);
|
_TranslationsStreamListFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListFi implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapFi implements TranslationsZapEn {
|
class _TranslationsZapFi extends TranslationsZapEn {
|
||||||
_TranslationsZapFi._(this._root);
|
_TranslationsZapFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Mukautettu määrä';
|
@override String get custom_amount => 'Mukautettu määrä';
|
||||||
@override String get confirm => 'Vahvista';
|
@override String get confirm => 'Vahvista';
|
||||||
@override String get comment => 'Kommentoi';
|
@override String get comment => 'Kommentoi';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} satsia';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} satsia';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Avaa lompakossa';
|
@override String get button_open_wallet => 'Avaa lompakossa';
|
||||||
|
@override String get button_connect_wallet => 'Yhdistä lompakko';
|
||||||
@override String get copy => 'Kopioitu leikepöydälle';
|
@override String get copy => 'Kopioitu leikepöydälle';
|
||||||
@override late final _TranslationsZapErrorFi error = _TranslationsZapErrorFi._(_root);
|
@override late final _TranslationsZapErrorFi error = _TranslationsZapErrorFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileFi implements TranslationsProfileEn {
|
class _TranslationsProfileFi extends TranslationsProfileEn {
|
||||||
_TranslationsProfileFi._(this._root);
|
_TranslationsProfileFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Aikaisemmat lähetykset';
|
@override String get past_streams => 'Aikaisemmat lähetykset';
|
||||||
@override late final _TranslationsProfileEditFi edit = _TranslationsProfileEditFi._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsFi extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Muokkaa profiilia';
|
||||||
|
@override String get button_wallet => 'Lompakon asetukset';
|
||||||
|
@override late final _TranslationsSettingsProfileFi profile = _TranslationsSettingsProfileFi._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletFi wallet = _TranslationsSettingsWalletFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginFi implements TranslationsLoginEn {
|
class _TranslationsLoginFi extends TranslationsLoginEn {
|
||||||
_TranslationsLoginFi._(this._root);
|
_TranslationsLoginFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginFi implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorFi error = _TranslationsLoginErrorFi._(_root);
|
@override late final _TranslationsLoginErrorFi error = _TranslationsLoginErrorFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveFi extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Määritä Stream';
|
||||||
|
@override String get endpoint => 'Loppupiste';
|
||||||
|
@override String get accept_tos => 'Hyväksy TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Otsikko';
|
||||||
|
@override String get summary => 'Yhteenveto';
|
||||||
|
@override String get image => 'Kansikuva';
|
||||||
|
@override String get tags => 'Tunnisteet';
|
||||||
|
@override String get nsfw => 'NSFW-sisältö';
|
||||||
|
@override String get nsfw_description => 'Tarkista täältä, jos tämä stream sisältää alastomuutta tai pornografista sisältöä.';
|
||||||
|
@override late final _TranslationsLiveErrorFi error = _TranslationsLiveErrorFi._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusFi implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusFi extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusFi._(this._root);
|
_TranslationsStreamStatusFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusFi implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatFi implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatFi extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatFi._(this._root);
|
_TranslationsStreamChatFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT POISTETTU KÄYTÖSTÄ';
|
@override String get disabled => 'CHAT POISTETTU KÄYTÖSTÄ';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
||||||
|
|
||||||
/// Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
/// Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' ajastettu '),
|
const TextSpan(text: ' ajastettu '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Virta päättyi alatunnisteen alareunaan chatissa
|
/// Virta päättyi alatunnisteen alareunaan chatissa
|
||||||
@override String get ended => 'STREAM PÄÄTTYNYT';
|
@override String get ended => 'STREAM PÄÄTTYNYT';
|
||||||
|
|
||||||
/// Chat-viestin näyttäminen stream zaps
|
/// Chat-viestin näyttäminen stream zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zappasi '),
|
const TextSpan(text: ' zappasi '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' satsia'),
|
const TextSpan(text: ' satsia'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteFi write = _TranslationsStreamChatWriteFi._(_root);
|
@override late final _TranslationsStreamChatWriteFi write = _TranslationsStreamChatWriteFi._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeFi badge = _TranslationsStreamChatBadgeFi._(_root);
|
@override late final _TranslationsStreamChatBadgeFi badge = _TranslationsStreamChatBadgeFi._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatFi implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorFi implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorFi extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorFi._(this._root);
|
_TranslationsZapErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorFi implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Salamaosoitetta ei löytynyt';
|
@override String get no_lud16 => 'Salamaosoitetta ei löytynyt';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditFi implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileFi extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditFi._(this._root);
|
_TranslationsSettingsProfileFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Näytön nimi';
|
@override String get display_name => 'Näytön nimi';
|
||||||
@override String get about => 'Tietoja';
|
@override String get about => 'Tietoja';
|
||||||
@override String get nip05 => 'Nostr-osoite';
|
@override String get nip05 => 'Nostr Osoite';
|
||||||
@override String get lud16 => 'Lightning-osoite';
|
@override String get lud16 => 'Salama osoite';
|
||||||
@override late final _TranslationsProfileEditErrorFi error = _TranslationsProfileEditErrorFi._(_root);
|
@override late final _TranslationsSettingsProfileErrorFi error = _TranslationsSettingsProfileErrorFi._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletFi extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Balance';
|
||||||
|
@override String get name => 'Lompakko';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorFi error = _TranslationsSettingsWalletErrorFi._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorFi implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorFi extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorFi._(this._root);
|
_TranslationsLoginErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorFi implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Virheellinen avain';
|
@override String get invalid_key => 'Virheellinen avain';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorFi extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Stream epäonnistui';
|
||||||
|
@override String get connection_error => 'Yhteysvirhe';
|
||||||
|
@override String get start_failed => 'Virran käynnistys epäonnistui, tarkista saldosi';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteFi implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteFi extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteFi._(this._root);
|
_TranslationsStreamChatWriteFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteFi implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeFi implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeFi extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeFi._(this._root);
|
_TranslationsStreamChatBadgeFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeFi implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidFi implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidFi extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidFi._(this._root);
|
_TranslationsStreamChatRaidFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat-viesti toiseen streamiin
|
/// Chat-viesti toiseen streamiin
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid viesti toisesta virrasta
|
/// Chat raid viesti toisesta virrasta
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Lähtölaskenta ajastin automaattista ratsastusta varten
|
/// Lähtölaskenta ajastin automaattista ratsastusta varten
|
||||||
@override String countdown({ required Object time}) => 'Ryöstöretket osoitteessa ${time}';
|
@override String countdown({required Object time}) => 'Ryöstöretket osoitteessa ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorFi implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorFi extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorFi._(this._root);
|
_TranslationsSettingsProfileErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFi _root; // ignore: unused_field
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorFi implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Ei voi muokata profiilia, kun on kirjautunut ulos';
|
@override String get logged_out => 'Ei voi muokata profiilia, kun on kirjautunut ulos';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorFi extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFi _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsFi {
|
extension on TranslationsFi {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsFi {
|
|||||||
case 'most_zapped_streamers': return 'Eniten Zapped Streamers';
|
case 'most_zapped_streamers': return 'Eniten Zapped Streamers';
|
||||||
case 'no_user_found': return 'Käyttäjää ei löytynyt';
|
case 'no_user_found': return 'Käyttäjää ei löytynyt';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('fi').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
||||||
one: '1 katsoja',
|
one: '1 katsoja',
|
||||||
other: '${n} katsojaa',
|
other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'ENDED';
|
case 'stream.status.ended': return 'ENDED';
|
||||||
case 'stream.status.planned': return 'SUUNNITELTU';
|
case 'stream.status.planned': return 'SUUNNITELTU';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Aloitettu ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Aloitettu ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} meni suoraksi!';
|
||||||
case 'stream.chat.disabled': return 'CHAT POISTETTU KÄYTÖSTÄ';
|
case 'stream.chat.disabled': return 'CHAT POISTETTU KÄYTÖSTÄ';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' ajastettu '),
|
const TextSpan(text: ' ajastettu '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM PÄÄTTYNYT';
|
case 'stream.chat.ended': return 'STREAM PÄÄTTYNYT';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zappasi '),
|
const TextSpan(text: ' zappasi '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' satsia'),
|
const TextSpan(text: ' satsia'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Kirjoita viesti';
|
case 'stream.chat.write.label': return 'Kirjoita viesti';
|
||||||
case 'stream.chat.write.no_signer': return 'Ei voi kirjoittaa viestejä npub-kirjautumisella';
|
case 'stream.chat.write.no_signer': return 'Ei voi kirjoittaa viestejä npub-kirjautumisella';
|
||||||
case 'stream.chat.write.login': return 'Kirjaudu sisään lähettääksesi viestejä';
|
case 'stream.chat.write.login': return 'Kirjaudu sisään lähettääksesi viestejä';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Myönnetty:';
|
case 'stream.chat.badge.awarded_to': return 'Myönnetty:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Ryöstöretket osoitteessa ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Ryöstöretket osoitteessa ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Tavoite: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Tavoite: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Jäljellä: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Jäljellä: ${amount}';
|
||||||
case 'goal.complete': return 'TÄYDELLINEN';
|
case 'goal.complete': return 'TÄYDELLINEN';
|
||||||
case 'button.login': return 'Kirjaudu sisään';
|
case 'button.login': return 'Kirjaudu sisään';
|
||||||
case 'button.logout': return 'Kirjaudu ulos';
|
case 'button.logout': return 'Kirjaudu ulos';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsFi {
|
|||||||
case 'button.unmute': return 'Poista mykistys';
|
case 'button.unmute': return 'Poista mykistys';
|
||||||
case 'button.share': return 'Jaa';
|
case 'button.share': return 'Jaa';
|
||||||
case 'button.save': return 'Tallenna';
|
case 'button.save': return 'Tallenna';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artikkeli ${name}';
|
case 'button.connect': return 'Yhdistä';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Viesti lähettäjältä ${name}';
|
case 'button.settings': return 'Asetukset';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Suora lähetys osoitteessa ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artikkeli ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Viesti lähettäjältä ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Suora lähetys osoitteessa ${name}';
|
||||||
case 'stream_list.following': return 'Seuraa';
|
case 'stream_list.following': return 'Seuraa';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Suunniteltu';
|
case 'stream_list.planned': return 'Suunniteltu';
|
||||||
case 'stream_list.ended': return 'Päättynyt';
|
case 'stream_list.ended': return 'Päättynyt';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Mukautettu määrä';
|
case 'zap.custom_amount': return 'Mukautettu määrä';
|
||||||
case 'zap.confirm': return 'Vahvista';
|
case 'zap.confirm': return 'Vahvista';
|
||||||
case 'zap.comment': return 'Kommentoi';
|
case 'zap.comment': return 'Kommentoi';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} satsia';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} satsia';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Avaa lompakossa';
|
case 'zap.button_open_wallet': return 'Avaa lompakossa';
|
||||||
|
case 'zap.button_connect_wallet': return 'Yhdistä lompakko';
|
||||||
case 'zap.copy': return 'Kopioitu leikepöydälle';
|
case 'zap.copy': return 'Kopioitu leikepöydälle';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Virheellinen mukautettu määrä';
|
case 'zap.error.invalid_custom_amount': return 'Virheellinen mukautettu määrä';
|
||||||
case 'zap.error.no_wallet': return 'Ei asennettua salamalompakkoa';
|
case 'zap.error.no_wallet': return 'Ei asennettua salamalompakkoa';
|
||||||
case 'zap.error.no_lud16': return 'Salamaosoitetta ei löytynyt';
|
case 'zap.error.no_lud16': return 'Salamaosoitetta ei löytynyt';
|
||||||
case 'profile.past_streams': return 'Aikaisemmat lähetykset';
|
case 'profile.past_streams': return 'Aikaisemmat lähetykset';
|
||||||
case 'profile.edit.display_name': return 'Näytön nimi';
|
case 'settings.button_profile': return 'Muokkaa profiilia';
|
||||||
case 'profile.edit.about': return 'Tietoja';
|
case 'settings.button_wallet': return 'Lompakon asetukset';
|
||||||
case 'profile.edit.nip05': return 'Nostr-osoite';
|
case 'settings.profile.display_name': return 'Näytön nimi';
|
||||||
case 'profile.edit.lud16': return 'Lightning-osoite';
|
case 'settings.profile.about': return 'Tietoja';
|
||||||
case 'profile.edit.error.logged_out': return 'Ei voi muokata profiilia, kun on kirjautunut ulos';
|
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 '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.balance': return 'Balance';
|
||||||
|
case 'settings.wallet.name': return 'Lompakko';
|
||||||
|
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.username': return 'Käyttäjätunnus';
|
||||||
case 'login.amber': return 'Kirjaudu sisään Amber kanssa';
|
case 'login.amber': return 'Kirjaudu sisään Amber kanssa';
|
||||||
case 'login.key': return 'Kirjaudu sisään avaimella';
|
case 'login.key': return 'Kirjaudu sisään avaimella';
|
||||||
case 'login.create': return 'Luo tili';
|
case 'login.create': return 'Luo tili';
|
||||||
case 'login.error.invalid_key': return 'Virheellinen avain';
|
case 'login.error.invalid_key': return 'Virheellinen avain';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Määritä Stream';
|
||||||
|
case 'live.endpoint': return 'Loppupiste';
|
||||||
|
case 'live.accept_tos': return 'Hyväksy TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Otsikko';
|
||||||
|
case 'live.summary': return 'Yhteenveto';
|
||||||
|
case 'live.image': return 'Kansikuva';
|
||||||
|
case 'live.tags': return 'Tunnisteet';
|
||||||
|
case 'live.nsfw': return 'NSFW-sisältö';
|
||||||
|
case 'live.nsfw_description': return 'Tarkista täältä, jos tämä stream sisältää alastomuutta tai pornografista sisältöä.';
|
||||||
|
case 'live.error.failed': return 'Stream epäonnistui';
|
||||||
|
case 'live.error.connection_error': return 'Yhteysvirhe';
|
||||||
|
case 'live.error.start_failed': return 'Virran käynnistys epäonnistui, tarkista saldosi';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsFr implements Translations {
|
class TranslationsFr extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsFr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsFr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsFr implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsFr implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsFr _root = this; // ignore: unused_field
|
late final TranslationsFr _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsFr implements Translations {
|
|||||||
/// Un utilisateur anonyme
|
/// Un utilisateur anonyme
|
||||||
@override String get anon => 'Anonyme';
|
@override String get anon => 'Anonyme';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('fr').format(n)} sats';
|
||||||
|
|
||||||
/// Nombre de spectateurs du flux
|
/// Nombre de spectateurs du flux
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
||||||
one: '1 téléspectateur',
|
one: '1 téléspectateur',
|
||||||
other: '${n} spectateurs',
|
other: '${NumberFormat.decimalPattern('fr').format(n)} téléspectateurs',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamFr stream = _TranslationsStreamFr._(_root);
|
@override late final _TranslationsStreamFr stream = _TranslationsStreamFr._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsFr implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapFr zap = _TranslationsZapFr._(_root);
|
@override late final _TranslationsZapFr zap = _TranslationsZapFr._(_root);
|
||||||
@override late final _TranslationsProfileFr profile = _TranslationsProfileFr._(_root);
|
@override late final _TranslationsProfileFr profile = _TranslationsProfileFr._(_root);
|
||||||
|
@override late final _TranslationsSettingsFr settings = _TranslationsSettingsFr._(_root);
|
||||||
@override late final _TranslationsLoginFr login = _TranslationsLoginFr._(_root);
|
@override late final _TranslationsLoginFr login = _TranslationsLoginFr._(_root);
|
||||||
|
@override late final _TranslationsLiveFr live = _TranslationsLiveFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamFr implements TranslationsStreamEn {
|
class _TranslationsStreamFr extends TranslationsStreamEn {
|
||||||
_TranslationsStreamFr._(this._root);
|
_TranslationsStreamFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusFr status = _TranslationsStreamStatusFr._(_root);
|
@override late final _TranslationsStreamStatusFr status = _TranslationsStreamStatusFr._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Commencé à ${timestamp}';
|
@override String started({required Object timestamp}) => 'Commencé à ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} est en ligne !';
|
||||||
@override late final _TranslationsStreamChatFr chat = _TranslationsStreamChatFr._(_root);
|
@override late final _TranslationsStreamChatFr chat = _TranslationsStreamChatFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalFr implements TranslationsGoalEn {
|
class _TranslationsGoalFr extends TranslationsGoalEn {
|
||||||
_TranslationsGoalFr._(this._root);
|
_TranslationsGoalFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Objectif : ${amount}';
|
@override String title({required Object amount}) => 'Objectif : ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Reste : ${amount}';
|
@override String remaining({required Object amount}) => 'Reste : ${amount}';
|
||||||
@override String get complete => 'COMPLET';
|
@override String get complete => 'COMPLET';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonFr implements TranslationsButtonEn {
|
class _TranslationsButtonFr extends TranslationsButtonEn {
|
||||||
_TranslationsButtonFr._(this._root);
|
_TranslationsButtonFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonFr implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Retirer sourdine';
|
@override String get unmute => 'Retirer sourdine';
|
||||||
@override String get share => 'Partager';
|
@override String get share => 'Partager';
|
||||||
@override String get save => 'Sauvegarder';
|
@override String get save => 'Sauvegarder';
|
||||||
|
@override String get connect => 'Connecter';
|
||||||
|
@override String get settings => 'Paramètres';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedFr implements TranslationsEmbedEn {
|
class _TranslationsEmbedFr extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedFr._(this._root);
|
_TranslationsEmbedFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Article par ${name}';
|
@override String article_by({required Object name}) => 'Article par ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Note par ${name}';
|
@override String note_by({required Object name}) => 'Note par ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Retransmission en direct sur ${name}';
|
@override String live_stream_by({required Object name}) => 'Retransmission en direct sur ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListFr implements TranslationsStreamListEn {
|
class _TranslationsStreamListFr extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListFr._(this._root);
|
_TranslationsStreamListFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListFr implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapFr implements TranslationsZapEn {
|
class _TranslationsZapFr extends TranslationsZapEn {
|
||||||
_TranslationsZapFr._(this._root);
|
_TranslationsZapFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Montant personnalisé';
|
@override String get custom_amount => 'Montant personnalisé';
|
||||||
@override String get confirm => 'Confirmer';
|
@override String get confirm => 'Confirmer';
|
||||||
@override String get comment => 'Commenter';
|
@override String get comment => 'Commenter';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zapper ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zapper ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Ouvrir dans le portefeuille';
|
@override String get button_open_wallet => 'Ouvrir dans le portefeuille';
|
||||||
|
@override String get button_connect_wallet => 'Connecter le portefeuille';
|
||||||
@override String get copy => 'Copié dans le presse-papiers';
|
@override String get copy => 'Copié dans le presse-papiers';
|
||||||
@override late final _TranslationsZapErrorFr error = _TranslationsZapErrorFr._(_root);
|
@override late final _TranslationsZapErrorFr error = _TranslationsZapErrorFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileFr implements TranslationsProfileEn {
|
class _TranslationsProfileFr extends TranslationsProfileEn {
|
||||||
_TranslationsProfileFr._(this._root);
|
_TranslationsProfileFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Streams passés';
|
@override String get past_streams => 'Streams passés';
|
||||||
@override late final _TranslationsProfileEditFr edit = _TranslationsProfileEditFr._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsFr extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Modifier le profil';
|
||||||
|
@override String get button_wallet => 'Paramètres du portefeuille';
|
||||||
|
@override late final _TranslationsSettingsProfileFr profile = _TranslationsSettingsProfileFr._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletFr wallet = _TranslationsSettingsWalletFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginFr implements TranslationsLoginEn {
|
class _TranslationsLoginFr extends TranslationsLoginEn {
|
||||||
_TranslationsLoginFr._(this._root);
|
_TranslationsLoginFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginFr implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorFr error = _TranslationsLoginErrorFr._(_root);
|
@override late final _TranslationsLoginErrorFr error = _TranslationsLoginErrorFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveFr extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Configurer le flux';
|
||||||
|
@override String get endpoint => 'Point final';
|
||||||
|
@override String get accept_tos => 'Accepter les CGU';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titre';
|
||||||
|
@override String get summary => 'Résumé';
|
||||||
|
@override String get image => 'Image de couverture';
|
||||||
|
@override String get tags => 'Tags';
|
||||||
|
@override String get nsfw => 'Contenu NSFW';
|
||||||
|
@override String get nsfw_description => 'Cochez cette case si ce flux contient de la nudité ou du contenu pornographique.';
|
||||||
|
@override late final _TranslationsLiveErrorFr error = _TranslationsLiveErrorFr._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusFr implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusFr extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusFr._(this._root);
|
_TranslationsStreamStatusFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusFr implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatFr implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatFr extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatFr._(this._root);
|
_TranslationsStreamChatFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DISABLED';
|
@override String get disabled => 'CHAT DISABLED';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Le délai expire : ${time}';
|
@override String disabled_timeout({required Object time}) => 'Le délai expire : ${time}';
|
||||||
|
|
||||||
/// Message de chat indiquant les événements de dépassement de délai
|
/// Message de chat indiquant les événements de dépassement de délai
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' '),
|
const TextSpan(text: ' '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a expiré dans le temps pour '),
|
const TextSpan(text: ' a expiré dans le temps pour '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream ended footer at bottom of chat
|
/// Stream ended footer at bottom of chat
|
||||||
@override String get ended => 'STREAM ENDED';
|
@override String get ended => 'STREAM ENDED';
|
||||||
|
|
||||||
/// Message de chat montrant des zaps de flux
|
/// Message de chat montrant des zaps de flux
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a zappé '),
|
const TextSpan(text: ' a zappé '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteFr write = _TranslationsStreamChatWriteFr._(_root);
|
@override late final _TranslationsStreamChatWriteFr write = _TranslationsStreamChatWriteFr._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeFr badge = _TranslationsStreamChatBadgeFr._(_root);
|
@override late final _TranslationsStreamChatBadgeFr badge = _TranslationsStreamChatBadgeFr._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatFr implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorFr implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorFr extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorFr._(this._root);
|
_TranslationsZapErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorFr implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Pas d\'adresse éclair trouvée';
|
@override String get no_lud16 => 'Pas d\'adresse éclair trouvée';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditFr implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileFr extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditFr._(this._root);
|
_TranslationsSettingsProfileFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Nom d\'affichage';
|
@override String get display_name => 'Nom d\'affichage';
|
||||||
@override String get about => 'À propos';
|
@override String get about => 'A propos de';
|
||||||
@override String get nip05 => 'Adresse Nostr';
|
@override String get nip05 => 'Nostr Adresse';
|
||||||
@override String get lud16 => 'Adresse Lightning';
|
@override String get lud16 => 'Adresse de la foudre';
|
||||||
@override late final _TranslationsProfileEditErrorFr error = _TranslationsProfileEditErrorFr._(_root);
|
@override late final _TranslationsSettingsProfileErrorFr error = _TranslationsSettingsProfileErrorFr._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletFr extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Équilibre';
|
||||||
|
@override String get name => 'Portefeuille';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorFr error = _TranslationsSettingsWalletErrorFr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorFr implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorFr extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorFr._(this._root);
|
_TranslationsLoginErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorFr implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Clé non valide';
|
@override String get invalid_key => 'Clé non valide';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorFr extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Échec du flux';
|
||||||
|
@override String get connection_error => 'Erreur de connexion';
|
||||||
|
@override String get start_failed => 'Le démarrage du flux a échoué, veuillez vérifier votre solde';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteFr implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteFr extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteFr._(this._root);
|
_TranslationsStreamChatWriteFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteFr implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeFr implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeFr extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeFr._(this._root);
|
_TranslationsStreamChatBadgeFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeFr implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidFr implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidFr extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidFr._(this._root);
|
_TranslationsStreamChatRaidFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Message de raid par chat vers un autre flux
|
/// Message de raid par chat vers un autre flux
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Message de raid sur le chat à partir d'un autre flux
|
/// Message de raid sur le chat à partir d'un autre flux
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Compte à rebours pour l'auto-raid
|
/// Compte à rebours pour l'auto-raid
|
||||||
@override String countdown({ required Object time}) => 'Raid sur ${time}';
|
@override String countdown({required Object time}) => 'Raid sur ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorFr implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorFr extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorFr._(this._root);
|
_TranslationsSettingsProfileErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorFr implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Impossible de modifier le profil lorsque l\'on est déconnecté';
|
@override String get logged_out => 'Impossible de modifier le profil lorsque l\'on est déconnecté';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorFr extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsFr {
|
extension on TranslationsFr {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsFr {
|
|||||||
case 'most_zapped_streamers': return 'Les Streamers les plus zappés';
|
case 'most_zapped_streamers': return 'Les Streamers les plus zappés';
|
||||||
case 'no_user_found': return 'Aucun utilisateur trouvé';
|
case 'no_user_found': return 'Aucun utilisateur trouvé';
|
||||||
case 'anon': return 'Anonyme';
|
case 'anon': return 'Anonyme';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('fr').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
||||||
one: '1 téléspectateur',
|
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.live': return 'VIVRE';
|
||||||
case 'stream.status.ended': return 'FINI';
|
case 'stream.status.ended': return 'FINI';
|
||||||
case 'stream.status.planned': return 'PRÉVU';
|
case 'stream.status.planned': return 'PRÉVU';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Commencé à ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Commencé à ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} est en ligne !';
|
||||||
case 'stream.chat.disabled': return 'CHAT DISABLED';
|
case 'stream.chat.disabled': return 'CHAT DISABLED';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Le délai expire : ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Le délai expire : ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' '),
|
const TextSpan(text: ' '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a expiré dans le temps pour '),
|
const TextSpan(text: ' a expiré dans le temps pour '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a zappé '),
|
const TextSpan(text: ' a zappé '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Message écrit';
|
case 'stream.chat.write.label': return 'Message écrit';
|
||||||
case 'stream.chat.write.no_signer': return 'Impossible d\'écrire des messages avec le login npub';
|
case 'stream.chat.write.no_signer': return 'Impossible d\'écrire des messages avec le login npub';
|
||||||
case 'stream.chat.write.login': return 'Veuillez vous connecter pour envoyer des messages';
|
case 'stream.chat.write.login': return 'Veuillez vous connecter pour envoyer des messages';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Attribué à :';
|
case 'stream.chat.badge.awarded_to': return 'Attribué à :';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raid sur ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raid sur ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Objectif : ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Objectif : ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Reste : ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Reste : ${amount}';
|
||||||
case 'goal.complete': return 'COMPLET';
|
case 'goal.complete': return 'COMPLET';
|
||||||
case 'button.login': return 'Se Connecter';
|
case 'button.login': return 'Se Connecter';
|
||||||
case 'button.logout': return 'Se déconnecter';
|
case 'button.logout': return 'Se déconnecter';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsFr {
|
|||||||
case 'button.unmute': return 'Retirer sourdine';
|
case 'button.unmute': return 'Retirer sourdine';
|
||||||
case 'button.share': return 'Partager';
|
case 'button.share': return 'Partager';
|
||||||
case 'button.save': return 'Sauvegarder';
|
case 'button.save': return 'Sauvegarder';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Article par ${name}';
|
case 'button.connect': return 'Connecter';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Note par ${name}';
|
case 'button.settings': return 'Paramètres';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Retransmission en direct sur ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Article par ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Note par ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Retransmission en direct sur ${name}';
|
||||||
case 'stream_list.following': return 'Abonnements';
|
case 'stream_list.following': return 'Abonnements';
|
||||||
case 'stream_list.live': return 'En direct';
|
case 'stream_list.live': return 'En direct';
|
||||||
case 'stream_list.planned': return 'Planifié';
|
case 'stream_list.planned': return 'Planifié';
|
||||||
case 'stream_list.ended': return 'Terminé';
|
case 'stream_list.ended': return 'Terminé';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Montant personnalisé';
|
case 'zap.custom_amount': return 'Montant personnalisé';
|
||||||
case 'zap.confirm': return 'Confirmer';
|
case 'zap.confirm': return 'Confirmer';
|
||||||
case 'zap.comment': return 'Commenter';
|
case 'zap.comment': return 'Commenter';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zapper ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zapper ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Ouvrir dans le portefeuille';
|
case 'zap.button_open_wallet': return 'Ouvrir dans le portefeuille';
|
||||||
|
case 'zap.button_connect_wallet': return 'Connecter le portefeuille';
|
||||||
case 'zap.copy': return 'Copié dans le presse-papiers';
|
case 'zap.copy': return 'Copié dans le presse-papiers';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Montant personnalisé non valide';
|
case 'zap.error.invalid_custom_amount': return 'Montant personnalisé non valide';
|
||||||
case 'zap.error.no_wallet': return 'Pas de porte-monnaie électronique installé';
|
case 'zap.error.no_wallet': return 'Pas de porte-monnaie électronique installé';
|
||||||
case 'zap.error.no_lud16': return 'Pas d\'adresse éclair trouvée';
|
case 'zap.error.no_lud16': return 'Pas d\'adresse éclair trouvée';
|
||||||
case 'profile.past_streams': return 'Streams passés';
|
case 'profile.past_streams': return 'Streams passés';
|
||||||
case 'profile.edit.display_name': return 'Nom d\'affichage';
|
case 'settings.button_profile': return 'Modifier le profil';
|
||||||
case 'profile.edit.about': return 'À propos';
|
case 'settings.button_wallet': return 'Paramètres du portefeuille';
|
||||||
case 'profile.edit.nip05': return 'Adresse Nostr';
|
case 'settings.profile.display_name': return 'Nom d\'affichage';
|
||||||
case 'profile.edit.lud16': return 'Adresse Lightning';
|
case 'settings.profile.about': return 'A propos de';
|
||||||
case 'profile.edit.error.logged_out': return 'Impossible de modifier le profil lorsque l\'on est déconnecté';
|
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 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.balance': return 'Équilibre';
|
||||||
|
case 'settings.wallet.name': return 'Portefeuille';
|
||||||
|
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.username': return 'Nom d’utilisateur';
|
||||||
case 'login.amber': return 'Se connecter avec Amber';
|
case 'login.amber': return 'Se connecter avec Amber';
|
||||||
case 'login.key': return 'Connexion avec la clé';
|
case 'login.key': return 'Connexion avec la clé';
|
||||||
case 'login.create': return 'Créer un Compte';
|
case 'login.create': return 'Créer un Compte';
|
||||||
case 'login.error.invalid_key': return 'Clé non valide';
|
case 'login.error.invalid_key': return 'Clé non valide';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Configurer le flux';
|
||||||
|
case 'live.endpoint': return 'Point final';
|
||||||
|
case 'live.accept_tos': return 'Accepter les CGU';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titre';
|
||||||
|
case 'live.summary': return 'Résumé';
|
||||||
|
case 'live.image': return 'Image de couverture';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'Contenu NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Cochez cette case si ce flux contient de la nudité ou du contenu pornographique.';
|
||||||
|
case 'live.error.failed': return 'Échec du flux';
|
||||||
|
case 'live.error.connection_error': return 'Erreur de connexion';
|
||||||
|
case 'live.error.start_failed': return 'Le démarrage du flux a échoué, veuillez vérifier votre solde';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsHe implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <he>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsHe _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsHe $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginHe login = _TranslationsLoginHe._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamHe implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamHe._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalHe._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonHe._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedHe implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedHe._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListHe._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapHe._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorHe error = _TranslationsZapErrorHe._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileHe implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileHe._(this._root);
|
|
||||||
|
|
||||||
final TranslationsHe _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditHe edit = _TranslationsProfileEditHe._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginHe implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginHe._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusHe._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatHe._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorHe._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditHe implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditHe._(this._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 _TranslationsProfileEditErrorHe error = _TranslationsProfileEditErrorHe._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorHe implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorHe._(this._root);
|
|
||||||
|
|
||||||
final TranslationsHe _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteHe implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteHe._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeHe._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidHe._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorHe implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorHe._(this._root);
|
|
||||||
|
|
||||||
final TranslationsHe _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsHu implements Translations {
|
class TranslationsHu extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsHu({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsHu({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsHu implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsHu implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsHu _root = this; // ignore: unused_field
|
late final TranslationsHu _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -53,7 +54,7 @@ class TranslationsHu implements Translations {
|
|||||||
/// A stream nézőinek száma
|
/// A stream nézőinek száma
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
||||||
one: '1 néző',
|
one: '1 néző',
|
||||||
other: '${n} néző',
|
other: '${NumberFormat.decimalPattern('hu').format(n)} nézők',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamHu stream = _TranslationsStreamHu._(_root);
|
@override late final _TranslationsStreamHu stream = _TranslationsStreamHu._(_root);
|
||||||
@ -66,36 +67,38 @@ class TranslationsHu implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapHu zap = _TranslationsZapHu._(_root);
|
@override late final _TranslationsZapHu zap = _TranslationsZapHu._(_root);
|
||||||
@override late final _TranslationsProfileHu profile = _TranslationsProfileHu._(_root);
|
@override late final _TranslationsProfileHu profile = _TranslationsProfileHu._(_root);
|
||||||
|
@override late final _TranslationsSettingsHu settings = _TranslationsSettingsHu._(_root);
|
||||||
@override late final _TranslationsLoginHu login = _TranslationsLoginHu._(_root);
|
@override late final _TranslationsLoginHu login = _TranslationsLoginHu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamHu implements TranslationsStreamEn {
|
class _TranslationsStreamHu extends TranslationsStreamEn {
|
||||||
_TranslationsStreamHu._(this._root);
|
_TranslationsStreamHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusHu status = _TranslationsStreamStatusHu._(_root);
|
@override late final _TranslationsStreamStatusHu status = _TranslationsStreamStatusHu._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Elindult ${timestamp}';
|
@override String started({required Object timestamp}) => 'Elindult ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} elindult!';
|
||||||
@override late final _TranslationsStreamChatHu chat = _TranslationsStreamChatHu._(_root);
|
@override late final _TranslationsStreamChatHu chat = _TranslationsStreamChatHu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalHu implements TranslationsGoalEn {
|
class _TranslationsGoalHu extends TranslationsGoalEn {
|
||||||
_TranslationsGoalHu._(this._root);
|
_TranslationsGoalHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Cél: ${amount}';
|
@override String title({required Object amount}) => 'Cél: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Maradék: ${amount}';
|
@override String remaining({required Object amount}) => 'Maradék: ${amount}';
|
||||||
@override String get complete => 'TELJES';
|
@override String get complete => 'TELJES';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonHu implements TranslationsButtonEn {
|
class _TranslationsButtonHu extends TranslationsButtonEn {
|
||||||
_TranslationsButtonHu._(this._root);
|
_TranslationsButtonHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +120,25 @@ class _TranslationsButtonHu implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Némítás visszavonása';
|
@override String get unmute => 'Némítás visszavonása';
|
||||||
@override String get share => 'Megosztás';
|
@override String get share => 'Megosztás';
|
||||||
@override String get save => 'Mentés';
|
@override String get save => 'Mentés';
|
||||||
|
@override String get connect => 'Csatlakozás';
|
||||||
|
@override String get settings => 'Beállítások';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedHu implements TranslationsEmbedEn {
|
class _TranslationsEmbedHu extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedHu._(this._root);
|
_TranslationsEmbedHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'A ${name} cikke.';
|
@override String article_by({required Object name}) => 'Cikk ${name}';
|
||||||
@override String note_by({ required Object name}) => '${name} bejegyzése';
|
@override String note_by({required Object name}) => '${name} bejegyzése';
|
||||||
@override String live_stream_by({ required Object name}) => 'Élő közvetítés a ${name} oldalon';
|
@override String live_stream_by({required Object name}) => 'Élő közvetítés a ${name} oldalon';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListHu implements TranslationsStreamListEn {
|
class _TranslationsStreamListHu extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListHu._(this._root);
|
_TranslationsStreamListHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +150,50 @@ class _TranslationsStreamListHu implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapHu implements TranslationsZapEn {
|
class _TranslationsZapHu extends TranslationsZapEn {
|
||||||
_TranslationsZapHu._(this._root);
|
_TranslationsZapHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Egyéni összeg';
|
@override String get custom_amount => 'Egyéni összeg';
|
||||||
@override String get confirm => 'Megerősítés';
|
@override String get confirm => 'Megerősítés';
|
||||||
@override String get comment => 'Hozzászólás';
|
@override String get comment => 'Hozzászólás';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} satoshi';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} satoshi';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Megnyitás a pénztárcában';
|
@override String get button_open_wallet => 'Megnyitás a pénztárcában';
|
||||||
|
@override String get button_connect_wallet => 'Connect Wallet';
|
||||||
@override String get copy => 'Vágólapra másolva';
|
@override String get copy => 'Vágólapra másolva';
|
||||||
@override late final _TranslationsZapErrorHu error = _TranslationsZapErrorHu._(_root);
|
@override late final _TranslationsZapErrorHu error = _TranslationsZapErrorHu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileHu implements TranslationsProfileEn {
|
class _TranslationsProfileHu extends TranslationsProfileEn {
|
||||||
_TranslationsProfileHu._(this._root);
|
_TranslationsProfileHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Múltbeli Streamek';
|
@override String get past_streams => 'Múltbeli Streamek';
|
||||||
@override late final _TranslationsProfileEditHu edit = _TranslationsProfileEditHu._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsHu extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Profil szerkesztése';
|
||||||
|
@override String get button_wallet => 'Pénztárca beállítások';
|
||||||
|
@override late final _TranslationsSettingsProfileHu profile = _TranslationsSettingsProfileHu._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletHu wallet = _TranslationsSettingsWalletHu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginHu implements TranslationsLoginEn {
|
class _TranslationsLoginHu extends TranslationsLoginEn {
|
||||||
_TranslationsLoginHu._(this._root);
|
_TranslationsLoginHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -188,8 +206,8 @@ class _TranslationsLoginHu implements TranslationsLoginEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusHu implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusHu extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusHu._(this._root);
|
_TranslationsStreamStatusHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,35 +218,35 @@ class _TranslationsStreamStatusHu implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatHu implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatHu extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatHu._(this._root);
|
_TranslationsStreamChatHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT KIKAPCSOLVA';
|
@override String get disabled => 'CHAT KIKAPCSOLVA';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Az időkorlát lejár: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Az időkorlát lejár: ${time}';
|
||||||
|
|
||||||
/// Chat üzenet az időkorlátos események megjelenítésével
|
/// Chat üzenet az időkorlátos események megjelenítésével
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' időzített '),
|
const TextSpan(text: ' időzített '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a '),
|
const TextSpan(text: ' a '),
|
||||||
time,
|
time,
|
||||||
const TextSpan(text: ' számára'),
|
const TextSpan(text: 'számára'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// A stream véget ért lábléc a chat alján
|
/// A stream véget ért lábléc a chat alján
|
||||||
@override String get ended => 'STREAM MEGSZÜNTETETT';
|
@override String get ended => 'STREAM MEGSZÜNTETETT';
|
||||||
|
|
||||||
/// Csevegőüzenet, amely stream zapokat mutat
|
/// Csevegőüzenet, amely stream zapokat mutat
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zap-elt '),
|
const TextSpan(text: ' zap-elt '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteHu write = _TranslationsStreamChatWriteHu._(_root);
|
@override late final _TranslationsStreamChatWriteHu write = _TranslationsStreamChatWriteHu._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeHu badge = _TranslationsStreamChatBadgeHu._(_root);
|
@override late final _TranslationsStreamChatBadgeHu badge = _TranslationsStreamChatBadgeHu._(_root);
|
||||||
@ -236,8 +254,8 @@ class _TranslationsStreamChatHu implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorHu implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorHu extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorHu._(this._root);
|
_TranslationsZapErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -247,23 +265,37 @@ class _TranslationsZapErrorHu implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nem talált villámcím';
|
@override String get no_lud16 => 'Nem talált villámcím';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditHu implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileHu extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditHu._(this._root);
|
_TranslationsSettingsProfileHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Megjelenített név';
|
@override String get display_name => 'Megjelenített név';
|
||||||
@override String get about => 'Névjegy';
|
@override String get about => 'A oldalról';
|
||||||
@override String get nip05 => 'Nostr-cím';
|
@override String get nip05 => 'Nostr cím';
|
||||||
@override String get lud16 => 'Lightning-cím';
|
@override String get lud16 => 'Villám cím';
|
||||||
@override late final _TranslationsProfileEditErrorHu error = _TranslationsProfileEditErrorHu._(_root);
|
@override late final _TranslationsSettingsProfileErrorHu error = _TranslationsSettingsProfileErrorHu._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletHu extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorHu implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorHu extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorHu._(this._root);
|
_TranslationsLoginErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -272,8 +304,8 @@ class _TranslationsLoginErrorHu implements TranslationsLoginErrorEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteHu implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteHu extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteHu._(this._root);
|
_TranslationsStreamChatWriteHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -290,8 +322,8 @@ class _TranslationsStreamChatWriteHu implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeHu implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeHu extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeHu._(this._root);
|
_TranslationsStreamChatBadgeHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -302,26 +334,26 @@ class _TranslationsStreamChatBadgeHu implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidHu implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidHu extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidHu._(this._root);
|
_TranslationsStreamChatRaidHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat raid üzenet egy másik folyamba
|
/// Chat raid üzenet egy másik folyamba
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid üzenet egy másik folyamból
|
/// Chat raid üzenet egy másik folyamból
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Visszaszámláló időzítő az automatikus lovagláshoz
|
/// 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: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorHu implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorHu extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorHu._(this._root);
|
_TranslationsSettingsProfileErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsHu _root; // ignore: unused_field
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -329,6 +361,17 @@ class _TranslationsProfileEditErrorHu implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Kijelentkezve nem lehet profilt szerkeszteni';
|
@override String get logged_out => 'Kijelentkezve nem lehet profilt szerkeszteni';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorHu extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsHu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsHu {
|
extension on TranslationsHu {
|
||||||
@ -340,38 +383,39 @@ extension on TranslationsHu {
|
|||||||
case 'anon': return 'Névtelen';
|
case 'anon': return 'Névtelen';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
||||||
one: '1 néző',
|
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.live': return 'ÉLŐ';
|
||||||
case 'stream.status.ended': return 'ENDED';
|
case 'stream.status.ended': return 'ENDED';
|
||||||
case 'stream.status.planned': return 'TERVEZETT';
|
case 'stream.status.planned': return 'TERVEZETT';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Elindult ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Elindult ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} elindult!';
|
||||||
case 'stream.chat.disabled': return 'CHAT KIKAPCSOLVA';
|
case 'stream.chat.disabled': return 'CHAT KIKAPCSOLVA';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Az időkorlát lejár: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Az időkorlát lejár: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' időzített '),
|
const TextSpan(text: ' időzített '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' a '),
|
const TextSpan(text: ' a '),
|
||||||
time,
|
time,
|
||||||
const TextSpan(text: ' számára'),
|
const TextSpan(text: 'számára'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM MEGSZÜNTETETT';
|
case 'stream.chat.ended': return 'STREAM MEGSZÜNTETETT';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zap-elt '),
|
const TextSpan(text: ' zap-elt '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Üzenet írása';
|
case 'stream.chat.write.label': return 'Üzenet írása';
|
||||||
case 'stream.chat.write.no_signer': return 'Nem tud üzeneteket írni az npub bejelentkezéssel';
|
case 'stream.chat.write.no_signer': return 'Nem tud üzeneteket írni az npub bejelentkezéssel';
|
||||||
case 'stream.chat.write.login': return 'Kérjük, jelentkezzen be az üzenetek küldéséhez';
|
case 'stream.chat.write.login': return 'Kérjük, jelentkezzen be az üzenetek küldéséhez';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Elnyerte:';
|
case 'stream.chat.badge.awarded_to': return 'Elnyerte:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.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.title': return ({required Object amount}) => 'Cél: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Maradék: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Maradék: ${amount}';
|
||||||
case 'goal.complete': return 'TELJES';
|
case 'goal.complete': return 'TELJES';
|
||||||
case 'button.login': return 'Bejelentkezés';
|
case 'button.login': return 'Bejelentkezés';
|
||||||
case 'button.logout': return 'Kijelentkezés';
|
case 'button.logout': return 'Kijelentkezés';
|
||||||
@ -382,30 +426,41 @@ extension on TranslationsHu {
|
|||||||
case 'button.unmute': return 'Némítás visszavonása';
|
case 'button.unmute': return 'Némítás visszavonása';
|
||||||
case 'button.share': return 'Megosztás';
|
case 'button.share': return 'Megosztás';
|
||||||
case 'button.save': return 'Mentés';
|
case 'button.save': return 'Mentés';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'A ${name} cikke.';
|
case 'button.connect': return 'Csatlakozás';
|
||||||
case 'embed.note_by': return ({ required Object name}) => '${name} bejegyzése';
|
case 'button.settings': return 'Beállítások';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Élő közvetítés a ${name} oldalon';
|
case 'embed.article_by': return ({required Object name}) => 'Cikk ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => '${name} bejegyzése';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Élő közvetítés a ${name} oldalon';
|
||||||
case 'stream_list.following': return 'Követettek bejegyzései';
|
case 'stream_list.following': return 'Követettek bejegyzései';
|
||||||
case 'stream_list.live': return 'Élő';
|
case 'stream_list.live': return 'Élő';
|
||||||
case 'stream_list.planned': return 'Tervezett';
|
case 'stream_list.planned': return 'Tervezett';
|
||||||
case 'stream_list.ended': return 'Véget ért';
|
case 'stream_list.ended': return 'Véget ért';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Egyéni összeg';
|
case 'zap.custom_amount': return 'Egyéni összeg';
|
||||||
case 'zap.confirm': return 'Megerősítés';
|
case 'zap.confirm': return 'Megerősítés';
|
||||||
case 'zap.comment': return 'Hozzászólás';
|
case 'zap.comment': return 'Hozzászólás';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} satoshi';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} satoshi';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Megnyitás a pénztárcában';
|
case 'zap.button_open_wallet': return 'Megnyitás a pénztárcában';
|
||||||
|
case 'zap.button_connect_wallet': return 'Connect Wallet';
|
||||||
case 'zap.copy': return 'Vágólapra másolva';
|
case 'zap.copy': return 'Vágólapra másolva';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Érvénytelen egyéni összeg';
|
case 'zap.error.invalid_custom_amount': return 'Érvénytelen egyéni összeg';
|
||||||
case 'zap.error.no_wallet': return 'Nincs telepített villám tárca';
|
case 'zap.error.no_wallet': return 'Nincs telepített villám tárca';
|
||||||
case 'zap.error.no_lud16': return 'Nem talált villámcím';
|
case 'zap.error.no_lud16': return 'Nem talált villámcím';
|
||||||
case 'profile.past_streams': return 'Múltbeli Streamek';
|
case 'profile.past_streams': return 'Múltbeli Streamek';
|
||||||
case 'profile.edit.display_name': return 'Megjelenített név';
|
case 'settings.button_profile': return 'Profil szerkesztése';
|
||||||
case 'profile.edit.about': return 'Névjegy';
|
case 'settings.button_wallet': return 'Pénztárca beállítások';
|
||||||
case 'profile.edit.nip05': return 'Nostr-cím';
|
case 'settings.profile.display_name': return 'Megjelenített név';
|
||||||
case 'profile.edit.lud16': return 'Lightning-cím';
|
case 'settings.profile.about': return 'A oldalról';
|
||||||
case 'profile.edit.error.logged_out': return 'Kijelentkezve nem lehet profilt szerkeszteni';
|
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 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.username': return 'Felhasználónév';
|
||||||
case 'login.amber': return 'Bejelentkezés Amber segítségével';
|
case 'login.amber': return 'Bejelentkezés Amber segítségével';
|
||||||
case 'login.key': return 'Bejelentkezés kulccsal';
|
case 'login.key': return 'Bejelentkezés kulccsal';
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsIt implements Translations {
|
class TranslationsIt extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsIt({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsIt({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsIt implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsIt implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsIt _root = this; // ignore: unused_field
|
late final TranslationsIt _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsIt implements Translations {
|
|||||||
/// Un utente anonimo
|
/// Un utente anonimo
|
||||||
@override String get anon => 'Anonimo';
|
@override String get anon => 'Anonimo';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('it').format(n)} sats';
|
||||||
|
|
||||||
/// Numero di spettatori del flusso
|
/// Numero di spettatori del flusso
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
||||||
one: '1 spettatore',
|
one: '1 spettatore',
|
||||||
other: '${n} spettatori',
|
other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamIt stream = _TranslationsStreamIt._(_root);
|
@override late final _TranslationsStreamIt stream = _TranslationsStreamIt._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsIt implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapIt zap = _TranslationsZapIt._(_root);
|
@override late final _TranslationsZapIt zap = _TranslationsZapIt._(_root);
|
||||||
@override late final _TranslationsProfileIt profile = _TranslationsProfileIt._(_root);
|
@override late final _TranslationsProfileIt profile = _TranslationsProfileIt._(_root);
|
||||||
|
@override late final _TranslationsSettingsIt settings = _TranslationsSettingsIt._(_root);
|
||||||
@override late final _TranslationsLoginIt login = _TranslationsLoginIt._(_root);
|
@override late final _TranslationsLoginIt login = _TranslationsLoginIt._(_root);
|
||||||
|
@override late final _TranslationsLiveIt live = _TranslationsLiveIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamIt implements TranslationsStreamEn {
|
class _TranslationsStreamIt extends TranslationsStreamEn {
|
||||||
_TranslationsStreamIt._(this._root);
|
_TranslationsStreamIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusIt status = _TranslationsStreamStatusIt._(_root);
|
@override late final _TranslationsStreamStatusIt status = _TranslationsStreamStatusIt._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Avviato ${timestamp}';
|
@override String started({required Object timestamp}) => 'Avviato ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} è andato in onda!';
|
||||||
@override late final _TranslationsStreamChatIt chat = _TranslationsStreamChatIt._(_root);
|
@override late final _TranslationsStreamChatIt chat = _TranslationsStreamChatIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalIt implements TranslationsGoalEn {
|
class _TranslationsGoalIt extends TranslationsGoalEn {
|
||||||
_TranslationsGoalIt._(this._root);
|
_TranslationsGoalIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Obiettivo: ${amount}';
|
@override String title({required Object amount}) => 'Obiettivo: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Restante: ${amount}';
|
@override String remaining({required Object amount}) => 'Restante: ${amount}';
|
||||||
@override String get complete => 'COMPLETO';
|
@override String get complete => 'COMPLETO';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonIt implements TranslationsButtonEn {
|
class _TranslationsButtonIt extends TranslationsButtonEn {
|
||||||
_TranslationsButtonIt._(this._root);
|
_TranslationsButtonIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonIt implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Riattiva';
|
@override String get unmute => 'Riattiva';
|
||||||
@override String get share => 'Condividi';
|
@override String get share => 'Condividi';
|
||||||
@override String get save => 'Salva';
|
@override String get save => 'Salva';
|
||||||
|
@override String get connect => 'Collegare';
|
||||||
|
@override String get settings => 'Impostazioni';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedIt implements TranslationsEmbedEn {
|
class _TranslationsEmbedIt extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedIt._(this._root);
|
_TranslationsEmbedIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Articolo di ${name}';
|
@override String article_by({required Object name}) => 'Articolo di ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Nota di ${name}';
|
@override String note_by({required Object name}) => 'Nota di ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Streaming in diretta da ${name}';
|
@override String live_stream_by({required Object name}) => 'Streaming in diretta da ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListIt implements TranslationsStreamListEn {
|
class _TranslationsStreamListIt extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListIt._(this._root);
|
_TranslationsStreamListIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListIt implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapIt implements TranslationsZapEn {
|
class _TranslationsZapIt extends TranslationsZapEn {
|
||||||
_TranslationsZapIt._(this._root);
|
_TranslationsZapIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Importo personalizzato';
|
@override String get custom_amount => 'Importo personalizzato';
|
||||||
@override String get confirm => 'Conferma';
|
@override String get confirm => 'Conferma';
|
||||||
@override String get comment => 'Commenta';
|
@override String get comment => 'Commenta';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Aprire nel portafoglio';
|
@override String get button_open_wallet => 'Aprire nel portafoglio';
|
||||||
|
@override String get button_connect_wallet => 'Portafoglio Connect';
|
||||||
@override String get copy => 'Copiato negli appunti';
|
@override String get copy => 'Copiato negli appunti';
|
||||||
@override late final _TranslationsZapErrorIt error = _TranslationsZapErrorIt._(_root);
|
@override late final _TranslationsZapErrorIt error = _TranslationsZapErrorIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileIt implements TranslationsProfileEn {
|
class _TranslationsProfileIt extends TranslationsProfileEn {
|
||||||
_TranslationsProfileIt._(this._root);
|
_TranslationsProfileIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Flussi passati';
|
@override String get past_streams => 'Flussi passati';
|
||||||
@override late final _TranslationsProfileEditIt edit = _TranslationsProfileEditIt._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsIt extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Modifica profilo';
|
||||||
|
@override String get button_wallet => 'Impostazioni del portafoglio';
|
||||||
|
@override late final _TranslationsSettingsProfileIt profile = _TranslationsSettingsProfileIt._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletIt wallet = _TranslationsSettingsWalletIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginIt implements TranslationsLoginEn {
|
class _TranslationsLoginIt extends TranslationsLoginEn {
|
||||||
_TranslationsLoginIt._(this._root);
|
_TranslationsLoginIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginIt implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorIt error = _TranslationsLoginErrorIt._(_root);
|
@override late final _TranslationsLoginErrorIt error = _TranslationsLoginErrorIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveIt extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'VAI IN DIRETTA';
|
||||||
|
@override String get configure_stream => 'Configurare il flusso';
|
||||||
|
@override String get endpoint => 'Punto finale';
|
||||||
|
@override String get accept_tos => 'Accettare i TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titolo';
|
||||||
|
@override String get summary => 'Sintesi';
|
||||||
|
@override String get image => 'Immagine di copertina';
|
||||||
|
@override String get tags => 'Tag';
|
||||||
|
@override String get nsfw => 'Contenuto NSFW';
|
||||||
|
@override String get nsfw_description => 'Controllare qui se questo streaming contiene nudità o contenuti pornografici.';
|
||||||
|
@override late final _TranslationsLiveErrorIt error = _TranslationsLiveErrorIt._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusIt implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusIt extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusIt._(this._root);
|
_TranslationsStreamStatusIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusIt implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatIt implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatIt extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatIt._(this._root);
|
_TranslationsStreamChatIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DISABILITATA';
|
@override String get disabled => 'CHAT DISABILITATA';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Il timeout scade: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Il timeout scade: ${time}';
|
||||||
|
|
||||||
/// Messaggio di chat che mostra gli eventi di timeout
|
/// Messaggio di chat che mostra gli eventi di timeout
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' time out '),
|
const TextSpan(text: ' time out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' per '),
|
const TextSpan(text: ' per '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Il flusso si è concluso con un piè di pagina in fondo alla chat
|
/// Il flusso si è concluso con un piè di pagina in fondo alla chat
|
||||||
@override String get ended => 'STREAM ENDED';
|
@override String get ended => 'STREAM ENDED';
|
||||||
|
|
||||||
/// Messaggio di chat che mostra gli zap del flusso
|
/// Messaggio di chat che mostra gli zap del flusso
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' ha effettuato uno zap di '),
|
const TextSpan(text: ' ha effettuato uno zap di '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteIt write = _TranslationsStreamChatWriteIt._(_root);
|
@override late final _TranslationsStreamChatWriteIt write = _TranslationsStreamChatWriteIt._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeIt badge = _TranslationsStreamChatBadgeIt._(_root);
|
@override late final _TranslationsStreamChatBadgeIt badge = _TranslationsStreamChatBadgeIt._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatIt implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorIt implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorIt extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorIt._(this._root);
|
_TranslationsZapErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorIt implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nessun indirizzo di fulmine trovato';
|
@override String get no_lud16 => 'Nessun indirizzo di fulmine trovato';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditIt implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileIt extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditIt._(this._root);
|
_TranslationsSettingsProfileIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Nome visualizzato';
|
@override String get display_name => 'Nome visualizzato';
|
||||||
@override String get about => 'Info';
|
@override String get about => 'Circa';
|
||||||
@override String get nip05 => 'Indirizzo Nostr';
|
@override String get nip05 => 'Indirizzo';
|
||||||
@override String get lud16 => 'Indirizzo del fulmine';
|
@override String get lud16 => 'Indirizzo del fulmine';
|
||||||
@override late final _TranslationsProfileEditErrorIt error = _TranslationsProfileEditErrorIt._(_root);
|
@override late final _TranslationsSettingsProfileErrorIt error = _TranslationsSettingsProfileErrorIt._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletIt extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Equilibrio';
|
||||||
|
@override String get name => 'Portafoglio';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorIt error = _TranslationsSettingsWalletErrorIt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorIt implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorIt extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorIt._(this._root);
|
_TranslationsLoginErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorIt implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Chiave non valida';
|
@override String get invalid_key => 'Chiave non valida';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorIt extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Flusso fallito';
|
||||||
|
@override String get connection_error => 'Errore di connessione';
|
||||||
|
@override String get start_failed => 'Avvio del flusso fallito, controllare il saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteIt implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteIt extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteIt._(this._root);
|
_TranslationsStreamChatWriteIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteIt implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeIt implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeIt extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeIt._(this._root);
|
_TranslationsStreamChatBadgeIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeIt implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidIt implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidIt extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidIt._(this._root);
|
_TranslationsStreamChatRaidIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Messaggio di chat raid in un altro flusso
|
/// Messaggio di chat raid in un altro flusso
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Messaggio di chat raid da un altro flusso
|
/// Messaggio di chat raid da un altro flusso
|
||||||
@override String from({ required Object name}) => 'RAID DA ${name}';
|
@override String from({required Object name}) => 'RAID DA ${name}';
|
||||||
|
|
||||||
/// Timer per il conto alla rovescia per l'auto-raid
|
/// Timer per il conto alla rovescia per l'auto-raid
|
||||||
@override String countdown({ required Object time}) => 'Raid in ${time}';
|
@override String countdown({required Object time}) => 'Raid in ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorIt implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorIt extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorIt._(this._root);
|
_TranslationsSettingsProfileErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorIt implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Impossibile modificare il profilo quando si è disconnessi';
|
@override String get logged_out => 'Impossibile modificare il profilo quando si è disconnessi';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorIt extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsIt {
|
extension on TranslationsIt {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsIt {
|
|||||||
case 'most_zapped_streamers': return 'Il maggior numero di streamer bloccati';
|
case 'most_zapped_streamers': return 'Il maggior numero di streamer bloccati';
|
||||||
case 'no_user_found': return 'Nessun utente trovato';
|
case 'no_user_found': return 'Nessun utente trovato';
|
||||||
case 'anon': return 'Anonimo';
|
case 'anon': return 'Anonimo';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('it').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
||||||
one: '1 spettatore',
|
one: '1 spettatore',
|
||||||
other: '${n} spettatori',
|
other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'IN DIRETTA';
|
case 'stream.status.live': return 'IN DIRETTA';
|
||||||
case 'stream.status.ended': return 'FINE';
|
case 'stream.status.ended': return 'FINE';
|
||||||
case 'stream.status.planned': return 'PREVISTO';
|
case 'stream.status.planned': return 'PREVISTO';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Avviato ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Avviato ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} è andato in onda!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DISABILITATA';
|
case 'stream.chat.disabled': return 'CHAT DISABILITATA';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Il timeout scade: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Il timeout scade: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' time out '),
|
const TextSpan(text: ' time out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' per '),
|
const TextSpan(text: ' per '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' ha effettuato uno zap di '),
|
const TextSpan(text: ' ha effettuato uno zap di '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Scrivi il messaggio';
|
case 'stream.chat.write.label': return 'Scrivi il messaggio';
|
||||||
case 'stream.chat.write.no_signer': return 'Impossibile scrivere messaggi con il login npub';
|
case 'stream.chat.write.no_signer': return 'Impossibile scrivere messaggi con il login npub';
|
||||||
case 'stream.chat.write.login': return 'Effettuare il login per inviare messaggi';
|
case 'stream.chat.write.login': return 'Effettuare il login per inviare messaggi';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Assegnato a:';
|
case 'stream.chat.badge.awarded_to': return 'Assegnato a:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID DA ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID DA ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raid in ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raid in ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Obiettivo: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Obiettivo: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Restante: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Restante: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETO';
|
case 'goal.complete': return 'COMPLETO';
|
||||||
case 'button.login': return 'Login';
|
case 'button.login': return 'Login';
|
||||||
case 'button.logout': return 'Logout';
|
case 'button.logout': return 'Logout';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsIt {
|
|||||||
case 'button.unmute': return 'Riattiva';
|
case 'button.unmute': return 'Riattiva';
|
||||||
case 'button.share': return 'Condividi';
|
case 'button.share': return 'Condividi';
|
||||||
case 'button.save': return 'Salva';
|
case 'button.save': return 'Salva';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Articolo di ${name}';
|
case 'button.connect': return 'Collegare';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Nota di ${name}';
|
case 'button.settings': return 'Impostazioni';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Streaming in diretta da ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Articolo di ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Nota di ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Streaming in diretta da ${name}';
|
||||||
case 'stream_list.following': return 'Seguiti';
|
case 'stream_list.following': return 'Seguiti';
|
||||||
case 'stream_list.live': return 'Dal vivo';
|
case 'stream_list.live': return 'Dal vivo';
|
||||||
case 'stream_list.planned': return 'Pianificato';
|
case 'stream_list.planned': return 'Pianificato';
|
||||||
case 'stream_list.ended': return 'Terminato';
|
case 'stream_list.ended': return 'Terminato';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Importo personalizzato';
|
case 'zap.custom_amount': return 'Importo personalizzato';
|
||||||
case 'zap.confirm': return 'Conferma';
|
case 'zap.confirm': return 'Conferma';
|
||||||
case 'zap.comment': return 'Commenta';
|
case 'zap.comment': return 'Commenta';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Aprire nel portafoglio';
|
case 'zap.button_open_wallet': return 'Aprire nel portafoglio';
|
||||||
|
case 'zap.button_connect_wallet': return 'Portafoglio Connect';
|
||||||
case 'zap.copy': return 'Copiato negli appunti';
|
case 'zap.copy': return 'Copiato negli appunti';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Importo personalizzato non valido';
|
case 'zap.error.invalid_custom_amount': return 'Importo personalizzato non valido';
|
||||||
case 'zap.error.no_wallet': return 'Nessun portafoglio Lightning installato';
|
case 'zap.error.no_wallet': return 'Nessun portafoglio Lightning installato';
|
||||||
case 'zap.error.no_lud16': return 'Nessun indirizzo di fulmine trovato';
|
case 'zap.error.no_lud16': return 'Nessun indirizzo di fulmine trovato';
|
||||||
case 'profile.past_streams': return 'Flussi passati';
|
case 'profile.past_streams': return 'Flussi passati';
|
||||||
case 'profile.edit.display_name': return 'Nome visualizzato';
|
case 'settings.button_profile': return 'Modifica profilo';
|
||||||
case 'profile.edit.about': return 'Info';
|
case 'settings.button_wallet': return 'Impostazioni del portafoglio';
|
||||||
case 'profile.edit.nip05': return 'Indirizzo Nostr';
|
case 'settings.profile.display_name': return 'Nome visualizzato';
|
||||||
case 'profile.edit.lud16': return 'Indirizzo del fulmine';
|
case 'settings.profile.about': return 'Circa';
|
||||||
case 'profile.edit.error.logged_out': return 'Impossibile modificare il profilo quando si è disconnessi';
|
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 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.balance': return 'Equilibrio';
|
||||||
|
case 'settings.wallet.name': return 'Portafoglio';
|
||||||
|
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.username': return 'Nome utente';
|
||||||
case 'login.amber': return 'Accesso con Amber';
|
case 'login.amber': return 'Accesso con Amber';
|
||||||
case 'login.key': return 'Accesso con chiave';
|
case 'login.key': return 'Accesso con chiave';
|
||||||
case 'login.create': return 'Crea un account';
|
case 'login.create': return 'Crea un account';
|
||||||
case 'login.error.invalid_key': return 'Chiave non valida';
|
case 'login.error.invalid_key': return 'Chiave non valida';
|
||||||
|
case 'live.start': return 'VAI IN DIRETTA';
|
||||||
|
case 'live.configure_stream': return 'Configurare il flusso';
|
||||||
|
case 'live.endpoint': return 'Punto finale';
|
||||||
|
case 'live.accept_tos': return 'Accettare i TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titolo';
|
||||||
|
case 'live.summary': return 'Sintesi';
|
||||||
|
case 'live.image': return 'Immagine di copertina';
|
||||||
|
case 'live.tags': return 'Tag';
|
||||||
|
case 'live.nsfw': return 'Contenuto NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Controllare qui se questo streaming contiene nudità o contenuti pornografici.';
|
||||||
|
case 'live.error.failed': return 'Flusso fallito';
|
||||||
|
case 'live.error.connection_error': return 'Errore di connessione';
|
||||||
|
case 'live.error.start_failed': return 'Avvio del flusso fallito, controllare il saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsJa implements Translations {
|
class TranslationsJa extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsJa({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsJa({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsJa implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsJa implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsJa _root = this; // ignore: unused_field
|
late final TranslationsJa _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ class TranslationsJa implements Translations {
|
|||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
/// アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
||||||
@override String get upload_avatar => 'アバターのアップロード';
|
@override String get upload_avatar => '画像アップロード';
|
||||||
|
|
||||||
/// ザップによるリストの上のストリーマーに向かう
|
/// ザップによるリストの上のストリーマーに向かう
|
||||||
@override String get most_zapped_streamers => '最もザッピングされたストリーマー';
|
@override String get most_zapped_streamers => '最もザッピングされたストリーマー';
|
||||||
@ -50,10 +51,12 @@ class TranslationsJa implements Translations {
|
|||||||
/// 匿名ユーザー
|
/// 匿名ユーザー
|
||||||
@override String get anon => '匿名';
|
@override String get anon => '匿名';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('ja').format(n)} サッツ';
|
||||||
|
|
||||||
/// ストリームの視聴者数
|
/// ストリームの視聴者数
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
||||||
one: '1 視聴者',
|
one: '1 視聴者',
|
||||||
other: '${n} 人が視聴中',
|
other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamJa stream = _TranslationsStreamJa._(_root);
|
@override late final _TranslationsStreamJa stream = _TranslationsStreamJa._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsJa implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapJa zap = _TranslationsZapJa._(_root);
|
@override late final _TranslationsZapJa zap = _TranslationsZapJa._(_root);
|
||||||
@override late final _TranslationsProfileJa profile = _TranslationsProfileJa._(_root);
|
@override late final _TranslationsProfileJa profile = _TranslationsProfileJa._(_root);
|
||||||
|
@override late final _TranslationsSettingsJa settings = _TranslationsSettingsJa._(_root);
|
||||||
@override late final _TranslationsLoginJa login = _TranslationsLoginJa._(_root);
|
@override late final _TranslationsLoginJa login = _TranslationsLoginJa._(_root);
|
||||||
|
@override late final _TranslationsLiveJa live = _TranslationsLiveJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamJa implements TranslationsStreamEn {
|
class _TranslationsStreamJa extends TranslationsStreamEn {
|
||||||
_TranslationsStreamJa._(this._root);
|
_TranslationsStreamJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusJa status = _TranslationsStreamStatusJa._(_root);
|
@override late final _TranslationsStreamStatusJa status = _TranslationsStreamStatusJa._(_root);
|
||||||
@override String started({ required Object timestamp}) => '${timestamp} を開始';
|
@override String started({required Object timestamp}) => '${timestamp} を開始';
|
||||||
|
@override String notification({required Object name}) => '${name} がライブを開始した!';
|
||||||
@override late final _TranslationsStreamChatJa chat = _TranslationsStreamChatJa._(_root);
|
@override late final _TranslationsStreamChatJa chat = _TranslationsStreamChatJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalJa implements TranslationsGoalEn {
|
class _TranslationsGoalJa extends TranslationsGoalEn {
|
||||||
_TranslationsGoalJa._(this._root);
|
_TranslationsGoalJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => '目標額: ${amount}';
|
@override String title({required Object amount}) => '目標額: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => '残り: ${amount}';
|
@override String remaining({required Object amount}) => '残り: ${amount}';
|
||||||
@override String get complete => '完了';
|
@override String get complete => '完了';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonJa implements TranslationsButtonEn {
|
class _TranslationsButtonJa extends TranslationsButtonEn {
|
||||||
_TranslationsButtonJa._(this._root);
|
_TranslationsButtonJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonJa implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'ミュート解除';
|
@override String get unmute => 'ミュート解除';
|
||||||
@override String get share => '共有';
|
@override String get share => '共有';
|
||||||
@override String get save => '保存';
|
@override String get save => '保存';
|
||||||
|
@override String get connect => '接続';
|
||||||
|
@override String get settings => '設定';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedJa implements TranslationsEmbedEn {
|
class _TranslationsEmbedJa extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedJa._(this._root);
|
_TranslationsEmbedJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => '記事: ${name}';
|
@override String article_by({required Object name}) => '記事: ${name}';
|
||||||
@override String note_by({ required Object name}) => '${name} の投稿';
|
@override String note_by({required Object name}) => '${name} の投稿';
|
||||||
@override String live_stream_by({ required Object name}) => 'ライブ・ストリーム ${name}';
|
@override String live_stream_by({required Object name}) => 'ライブ・ストリーム ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListJa implements TranslationsStreamListEn {
|
class _TranslationsStreamListJa extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListJa._(this._root);
|
_TranslationsStreamListJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListJa implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapJa implements TranslationsZapEn {
|
class _TranslationsZapJa extends TranslationsZapEn {
|
||||||
_TranslationsZapJa._(this._root);
|
_TranslationsZapJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => '${name} をザップ';
|
@override String title({required Object name}) => '${name} をザップ';
|
||||||
@override String get custom_amount => 'カスタム金額';
|
@override String get custom_amount => 'カスタム金額';
|
||||||
@override String get confirm => '確認';
|
@override String get confirm => '確認';
|
||||||
@override String get comment => 'コメント';
|
@override String get comment => 'コメント';
|
||||||
@override String button_zap_ready({ required Object amount}) => '${amount} satsをザップする';
|
@override String button_zap_ready({required Object amount}) => '${amount} satsをザップする';
|
||||||
@override String get button_zap => 'ザップ';
|
@override String get button_zap => 'ザップ';
|
||||||
@override String get button_open_wallet => 'ウォレットで開く';
|
@override String get button_open_wallet => 'ウォレットで開く';
|
||||||
|
@override String get button_connect_wallet => 'コネクトウォレット';
|
||||||
@override String get copy => 'クリップボードにコピー';
|
@override String get copy => 'クリップボードにコピー';
|
||||||
@override late final _TranslationsZapErrorJa error = _TranslationsZapErrorJa._(_root);
|
@override late final _TranslationsZapErrorJa error = _TranslationsZapErrorJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileJa implements TranslationsProfileEn {
|
class _TranslationsProfileJa extends TranslationsProfileEn {
|
||||||
_TranslationsProfileJa._(this._root);
|
_TranslationsProfileJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => '過去の配信';
|
@override String get past_streams => '過去の配信';
|
||||||
@override late final _TranslationsProfileEditJa edit = _TranslationsProfileEditJa._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsJa extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'プロフィール編集';
|
||||||
|
@override String get button_wallet => 'ウォレットの設定';
|
||||||
|
@override late final _TranslationsSettingsProfileJa profile = _TranslationsSettingsProfileJa._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletJa wallet = _TranslationsSettingsWalletJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginJa implements TranslationsLoginEn {
|
class _TranslationsLoginJa extends TranslationsLoginEn {
|
||||||
_TranslationsLoginJa._(this._root);
|
_TranslationsLoginJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginJa implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorJa error = _TranslationsLoginErrorJa._(_root);
|
@override late final _TranslationsLoginErrorJa error = _TranslationsLoginErrorJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveJa extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'ライブ中継';
|
||||||
|
@override String get configure_stream => 'ストリームの設定';
|
||||||
|
@override String get endpoint => 'エンドポイント';
|
||||||
|
@override String get accept_tos => 'TOSを受け入れる';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'タイトル';
|
||||||
|
@override String get summary => '概要';
|
||||||
|
@override String get image => '表紙画像';
|
||||||
|
@override String get tags => 'タグ';
|
||||||
|
@override String get nsfw => 'NSFWコンテンツ';
|
||||||
|
@override String get nsfw_description => 'このストリームにヌードやポルノが含まれている場合は、ここをチェックしてください。';
|
||||||
|
@override late final _TranslationsLiveErrorJa error = _TranslationsLiveErrorJa._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusJa implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusJa extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusJa._(this._root);
|
_TranslationsStreamStatusJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusJa implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatJa implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatJa extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatJa._(this._root);
|
_TranslationsStreamChatJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'チャット無効';
|
@override String get disabled => 'チャット無効';
|
||||||
@override String disabled_timeout({ required Object time}) => 'タイムアウト: ${time}';
|
@override String disabled_timeout({required Object time}) => 'タイムアウト: ${time}';
|
||||||
|
|
||||||
/// タイムアウトイベントを表示するチャットメッセージ
|
/// タイムアウトイベントを表示するチャットメッセージ
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' タイムアウト '),
|
const TextSpan(text: ' タイムアウト '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// チャットの下にストリーム終了のフッター
|
/// チャットの下にストリーム終了のフッター
|
||||||
@override String get ended => '配信終了';
|
@override String get ended => '配信終了';
|
||||||
|
|
||||||
/// ストリームのザッピングを表示するチャットメッセージ
|
/// ストリームのザッピングを表示するチャットメッセージ
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' が '),
|
const TextSpan(text: ' が '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats をザップしました'),
|
const TextSpan(text: ' sats をザップしました'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteJa write = _TranslationsStreamChatWriteJa._(_root);
|
@override late final _TranslationsStreamChatWriteJa write = _TranslationsStreamChatWriteJa._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeJa badge = _TranslationsStreamChatBadgeJa._(_root);
|
@override late final _TranslationsStreamChatBadgeJa badge = _TranslationsStreamChatBadgeJa._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatJa implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorJa implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorJa extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorJa._(this._root);
|
_TranslationsZapErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorJa implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => '雷アドレスが見つかりません';
|
@override String get no_lud16 => '雷アドレスが見つかりません';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditJa implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileJa extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditJa._(this._root);
|
_TranslationsSettingsProfileJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => '表示名';
|
@override String get display_name => '表示名';
|
||||||
@override String get about => '自己紹介';
|
@override String get about => 'について';
|
||||||
@override String get nip05 => 'Nostrアドレス';
|
@override String get nip05 => '住所';
|
||||||
@override String get lud16 => 'ライトニングアドレス';
|
@override String get lud16 => 'ライトニングアドレス';
|
||||||
@override late final _TranslationsProfileEditErrorJa error = _TranslationsProfileEditErrorJa._(_root);
|
@override late final _TranslationsSettingsProfileErrorJa error = _TranslationsSettingsProfileErrorJa._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletJa extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'バランス';
|
||||||
|
@override String get name => '財布';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorJa error = _TranslationsSettingsWalletErrorJa._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorJa implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorJa extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorJa._(this._root);
|
_TranslationsLoginErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorJa implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => '無効なキー';
|
@override String get invalid_key => '無効なキー';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorJa extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'ストリーム失敗';
|
||||||
|
@override String get connection_error => '接続エラー';
|
||||||
|
@override String get start_failed => 'ストリームの開始に失敗しました。';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteJa implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteJa extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteJa._(this._root);
|
_TranslationsStreamChatWriteJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteJa implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeJa implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeJa extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeJa._(this._root);
|
_TranslationsStreamChatBadgeJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeJa implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidJa implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidJa extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidJa._(this._root);
|
_TranslationsStreamChatRaidJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// 別のストリームへのチャット襲撃メッセージ
|
/// 別のストリームへのチャット襲撃メッセージ
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// 他のストリームからのチャット襲撃メッセージ
|
/// 他のストリームからのチャット襲撃メッセージ
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// 自動騎乗のカウントダウン・タイマー
|
/// 自動騎乗のカウントダウン・タイマー
|
||||||
@override String countdown({ required Object time}) => '${time}における襲撃';
|
@override String countdown({required Object time}) => '${time}における襲撃';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorJa implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorJa extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorJa._(this._root);
|
_TranslationsSettingsProfileErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsJa _root; // ignore: unused_field
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,48 +401,61 @@ class _TranslationsProfileEditErrorJa implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'ログアウトするとプロフィールが編集できない';
|
@override String get logged_out => 'ログアウトするとプロフィールが編集できない';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorJa extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsJa _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'ログアウト時にウォレットに接続できない';
|
||||||
|
@override String get nwc_auth_event_not_found => 'ウォレットの認証イベントが見つかりません';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsJa {
|
extension on TranslationsJa {
|
||||||
dynamic _flatMapFunction(String path) {
|
dynamic _flatMapFunction(String path) {
|
||||||
switch (path) {
|
switch (path) {
|
||||||
case 'upload_avatar': return 'アバターのアップロード';
|
case 'upload_avatar': return '画像アップロード';
|
||||||
case 'most_zapped_streamers': return '最もザッピングされたストリーマー';
|
case 'most_zapped_streamers': return '最もザッピングされたストリーマー';
|
||||||
case 'no_user_found': return 'ユーザーが見つかりません';
|
case 'no_user_found': return 'ユーザーが見つかりません';
|
||||||
case 'anon': return '匿名';
|
case 'anon': return '匿名';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('ja').format(n)} サッツ';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
||||||
one: '1 視聴者',
|
one: '1 視聴者',
|
||||||
other: '${n} 人が視聴中',
|
other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'ライブ';
|
case 'stream.status.live': return 'ライブ';
|
||||||
case 'stream.status.ended': return '終了';
|
case 'stream.status.ended': return '終了';
|
||||||
case 'stream.status.planned': return '予定';
|
case 'stream.status.planned': return '予定';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => '${timestamp} を開始';
|
case 'stream.started': return ({required Object timestamp}) => '${timestamp} を開始';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} がライブを開始した!';
|
||||||
case 'stream.chat.disabled': return 'チャット無効';
|
case 'stream.chat.disabled': return 'チャット無効';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'タイムアウト: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'タイムアウト: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' タイムアウト '),
|
const TextSpan(text: ' タイムアウト '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return '配信終了';
|
case 'stream.chat.ended': return '配信終了';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' が '),
|
const TextSpan(text: ' が '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats をザップしました'),
|
const TextSpan(text: ' sats をザップしました'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'メッセージを書く';
|
case 'stream.chat.write.label': return 'メッセージを書く';
|
||||||
case 'stream.chat.write.no_signer': return 'npubログインでメッセージが書けない';
|
case 'stream.chat.write.no_signer': return 'npubログインでメッセージが書けない';
|
||||||
case 'stream.chat.write.login': return 'メッセージを送信するにはログインしてください';
|
case 'stream.chat.write.login': return 'メッセージを送信するにはログインしてください';
|
||||||
case 'stream.chat.badge.awarded_to': return '受賞者';
|
case 'stream.chat.badge.awarded_to': return '受賞者';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => '${time}における襲撃';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => '${time}における襲撃';
|
||||||
case 'goal.title': return ({ required Object amount}) => '目標額: ${amount}';
|
case 'goal.title': return ({required Object amount}) => '目標額: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => '残り: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => '残り: ${amount}';
|
||||||
case 'goal.complete': return '完了';
|
case 'goal.complete': return '完了';
|
||||||
case 'button.login': return 'ログイン';
|
case 'button.login': return 'ログイン';
|
||||||
case 'button.logout': return 'ログアウト';
|
case 'button.logout': return 'ログアウト';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsJa {
|
|||||||
case 'button.unmute': return 'ミュート解除';
|
case 'button.unmute': return 'ミュート解除';
|
||||||
case 'button.share': return '共有';
|
case 'button.share': return '共有';
|
||||||
case 'button.save': return '保存';
|
case 'button.save': return '保存';
|
||||||
case 'embed.article_by': return ({ required Object name}) => '記事: ${name}';
|
case 'button.connect': return '接続';
|
||||||
case 'embed.note_by': return ({ required Object name}) => '${name} の投稿';
|
case 'button.settings': return '設定';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'ライブ・ストリーム ${name}';
|
case 'embed.article_by': return ({required Object name}) => '記事: ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => '${name} の投稿';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'ライブ・ストリーム ${name}';
|
||||||
case 'stream_list.following': return 'フォロー中';
|
case 'stream_list.following': return 'フォロー中';
|
||||||
case 'stream_list.live': return 'ライブ配信中';
|
case 'stream_list.live': return 'ライブ配信中';
|
||||||
case 'stream_list.planned': return '予定あり';
|
case 'stream_list.planned': return '予定あり';
|
||||||
case 'stream_list.ended': return '終了しました';
|
case 'stream_list.ended': return '終了しました';
|
||||||
case 'zap.title': return ({ required Object name}) => '${name} をザップ';
|
case 'zap.title': return ({required Object name}) => '${name} をザップ';
|
||||||
case 'zap.custom_amount': return 'カスタム金額';
|
case 'zap.custom_amount': return 'カスタム金額';
|
||||||
case 'zap.confirm': return '確認';
|
case 'zap.confirm': return '確認';
|
||||||
case 'zap.comment': return 'コメント';
|
case 'zap.comment': return 'コメント';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => '${amount} satsをザップする';
|
case 'zap.button_zap_ready': return ({required Object amount}) => '${amount} satsをザップする';
|
||||||
case 'zap.button_zap': return 'ザップ';
|
case 'zap.button_zap': return 'ザップ';
|
||||||
case 'zap.button_open_wallet': return 'ウォレットで開く';
|
case 'zap.button_open_wallet': return 'ウォレットで開く';
|
||||||
|
case 'zap.button_connect_wallet': return 'コネクトウォレット';
|
||||||
case 'zap.copy': return 'クリップボードにコピー';
|
case 'zap.copy': return 'クリップボードにコピー';
|
||||||
case 'zap.error.invalid_custom_amount': return '無効なカスタム金額';
|
case 'zap.error.invalid_custom_amount': return '無効なカスタム金額';
|
||||||
case 'zap.error.no_wallet': return 'Lightningウォレット未装着';
|
case 'zap.error.no_wallet': return 'Lightningウォレット未装着';
|
||||||
case 'zap.error.no_lud16': return '雷アドレスが見つかりません';
|
case 'zap.error.no_lud16': return '雷アドレスが見つかりません';
|
||||||
case 'profile.past_streams': return '過去の配信';
|
case 'profile.past_streams': return '過去の配信';
|
||||||
case 'profile.edit.display_name': return '表示名';
|
case 'settings.button_profile': return 'プロフィール編集';
|
||||||
case 'profile.edit.about': return '自己紹介';
|
case 'settings.button_wallet': return 'ウォレットの設定';
|
||||||
case 'profile.edit.nip05': return 'Nostrアドレス';
|
case 'settings.profile.display_name': return '表示名';
|
||||||
case 'profile.edit.lud16': return 'ライトニングアドレス';
|
case 'settings.profile.about': return 'について';
|
||||||
case 'profile.edit.error.logged_out': return 'ログアウトするとプロフィールが編集できない';
|
case 'settings.profile.nip05': return '住所';
|
||||||
|
case 'settings.profile.lud16': return 'ライトニングアドレス';
|
||||||
|
case 'settings.profile.error.logged_out': return 'ログアウトするとプロフィールが編集できない';
|
||||||
|
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.balance': return 'バランス';
|
||||||
|
case 'settings.wallet.name': return '財布';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'ログアウト時にウォレットに接続できない';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'ウォレットの認証イベントが見つかりません';
|
||||||
case 'login.username': return 'ユーザー名';
|
case 'login.username': return 'ユーザー名';
|
||||||
case 'login.amber': return '琥珀でログイン';
|
case 'login.amber': return '琥珀でログイン';
|
||||||
case 'login.key': return 'キーでログイン';
|
case 'login.key': return 'キーでログイン';
|
||||||
case 'login.create': return 'アカウントを作成する';
|
case 'login.create': return 'アカウントを作成する';
|
||||||
case 'login.error.invalid_key': return '無効なキー';
|
case 'login.error.invalid_key': return '無効なキー';
|
||||||
|
case 'live.start': return 'ライブ中継';
|
||||||
|
case 'live.configure_stream': return 'ストリームの設定';
|
||||||
|
case 'live.endpoint': return 'エンドポイント';
|
||||||
|
case 'live.accept_tos': return 'TOSを受け入れる';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ja'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'タイトル';
|
||||||
|
case 'live.summary': return '概要';
|
||||||
|
case 'live.image': return '表紙画像';
|
||||||
|
case 'live.tags': return 'タグ';
|
||||||
|
case 'live.nsfw': return 'NSFWコンテンツ';
|
||||||
|
case 'live.nsfw_description': return 'このストリームにヌードやポルノが含まれている場合は、ここをチェックしてください。';
|
||||||
|
case 'live.error.failed': return 'ストリーム失敗';
|
||||||
|
case 'live.error.connection_error': return '接続エラー';
|
||||||
|
case 'live.error.start_failed': return 'ストリームの開始に失敗しました。';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsKo implements Translations {
|
class TranslationsKo extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsKo({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsKo({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsKo implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsKo implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsKo _root = this; // ignore: unused_field
|
late final TranslationsKo _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsKo implements Translations {
|
|||||||
/// 익명 사용자
|
/// 익명 사용자
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('ko').format(n)} sats';
|
||||||
|
|
||||||
/// 스트림 시청자 수
|
/// 스트림 시청자 수
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
||||||
one: '시청자 1명',
|
one: '시청자 1명',
|
||||||
other: '${n} 시청자',
|
other: '{n:decimalPattern} 시청자',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamKo stream = _TranslationsStreamKo._(_root);
|
@override late final _TranslationsStreamKo stream = _TranslationsStreamKo._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsKo implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapKo zap = _TranslationsZapKo._(_root);
|
@override late final _TranslationsZapKo zap = _TranslationsZapKo._(_root);
|
||||||
@override late final _TranslationsProfileKo profile = _TranslationsProfileKo._(_root);
|
@override late final _TranslationsProfileKo profile = _TranslationsProfileKo._(_root);
|
||||||
|
@override late final _TranslationsSettingsKo settings = _TranslationsSettingsKo._(_root);
|
||||||
@override late final _TranslationsLoginKo login = _TranslationsLoginKo._(_root);
|
@override late final _TranslationsLoginKo login = _TranslationsLoginKo._(_root);
|
||||||
|
@override late final _TranslationsLiveKo live = _TranslationsLiveKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamKo implements TranslationsStreamEn {
|
class _TranslationsStreamKo extends TranslationsStreamEn {
|
||||||
_TranslationsStreamKo._(this._root);
|
_TranslationsStreamKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusKo status = _TranslationsStreamStatusKo._(_root);
|
@override late final _TranslationsStreamStatusKo status = _TranslationsStreamStatusKo._(_root);
|
||||||
@override String started({ required Object timestamp}) => '시작 ${timestamp}';
|
@override String started({required Object timestamp}) => '시작 ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} 라이브가 시작되었습니다!';
|
||||||
@override late final _TranslationsStreamChatKo chat = _TranslationsStreamChatKo._(_root);
|
@override late final _TranslationsStreamChatKo chat = _TranslationsStreamChatKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalKo implements TranslationsGoalEn {
|
class _TranslationsGoalKo extends TranslationsGoalEn {
|
||||||
_TranslationsGoalKo._(this._root);
|
_TranslationsGoalKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => '목표: ${amount}';
|
@override String title({required Object amount}) => '목표: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => '남음: ${amount}';
|
@override String remaining({required Object amount}) => '남음: ${amount}';
|
||||||
@override String get complete => '완료';
|
@override String get complete => '완료';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonKo implements TranslationsButtonEn {
|
class _TranslationsButtonKo extends TranslationsButtonEn {
|
||||||
_TranslationsButtonKo._(this._root);
|
_TranslationsButtonKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonKo implements TranslationsButtonEn {
|
|||||||
@override String get unmute => '뮤트 해제';
|
@override String get unmute => '뮤트 해제';
|
||||||
@override String get share => '공유';
|
@override String get share => '공유';
|
||||||
@override String get save => '저장';
|
@override String get save => '저장';
|
||||||
|
@override String get connect => '연결';
|
||||||
|
@override String get settings => '설정';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedKo implements TranslationsEmbedEn {
|
class _TranslationsEmbedKo extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedKo._(this._root);
|
_TranslationsEmbedKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => '작성자: ${name}';
|
@override String article_by({required Object name}) => '작성자: ${name}';
|
||||||
@override String note_by({ required Object name}) => '노트 작성됨: ${name}';
|
@override String note_by({required Object name}) => '노트 작성됨: ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => '라이브 스트리밍: ${name}';
|
@override String live_stream_by({required Object name}) => '라이브 스트리밍: ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListKo implements TranslationsStreamListEn {
|
class _TranslationsStreamListKo extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListKo._(this._root);
|
_TranslationsStreamListKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListKo implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapKo implements TranslationsZapEn {
|
class _TranslationsZapKo extends TranslationsZapEn {
|
||||||
_TranslationsZapKo._(this._root);
|
_TranslationsZapKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => '사용자 지정 금액';
|
@override String get custom_amount => '사용자 지정 금액';
|
||||||
@override String get confirm => '확인';
|
@override String get confirm => '확인';
|
||||||
@override String get comment => '댓글';
|
@override String get comment => '댓글';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => '지갑에서 열기';
|
@override String get button_open_wallet => '지갑에서 열기';
|
||||||
|
@override String get button_connect_wallet => '지갑 연결';
|
||||||
@override String get copy => '클립보드에 복사';
|
@override String get copy => '클립보드에 복사';
|
||||||
@override late final _TranslationsZapErrorKo error = _TranslationsZapErrorKo._(_root);
|
@override late final _TranslationsZapErrorKo error = _TranslationsZapErrorKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileKo implements TranslationsProfileEn {
|
class _TranslationsProfileKo extends TranslationsProfileEn {
|
||||||
_TranslationsProfileKo._(this._root);
|
_TranslationsProfileKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => '과거 스트림';
|
@override String get past_streams => '과거 스트림';
|
||||||
@override late final _TranslationsProfileEditKo edit = _TranslationsProfileEditKo._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsKo extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => '프로필 수정';
|
||||||
|
@override String get button_wallet => '지갑 설정';
|
||||||
|
@override late final _TranslationsSettingsProfileKo profile = _TranslationsSettingsProfileKo._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletKo wallet = _TranslationsSettingsWalletKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginKo implements TranslationsLoginEn {
|
class _TranslationsLoginKo extends TranslationsLoginEn {
|
||||||
_TranslationsLoginKo._(this._root);
|
_TranslationsLoginKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginKo implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorKo error = _TranslationsLoginErrorKo._(_root);
|
@override late final _TranslationsLoginErrorKo error = _TranslationsLoginErrorKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveKo extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => '라이브 시작하기';
|
||||||
|
@override String get configure_stream => '스트림 구성';
|
||||||
|
@override String get endpoint => '엔드포인트';
|
||||||
|
@override String get accept_tos => 'TOS 수락';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => '제목';
|
||||||
|
@override String get summary => '요약';
|
||||||
|
@override String get image => '표지 이미지';
|
||||||
|
@override String get tags => '태그';
|
||||||
|
@override String get nsfw => 'NSFW 콘텐츠';
|
||||||
|
@override String get nsfw_description => '이 스트림에 노출 또는 음란 콘텐츠가 포함되어 있는지 여기에서 확인하세요.';
|
||||||
|
@override late final _TranslationsLiveErrorKo error = _TranslationsLiveErrorKo._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusKo implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusKo extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusKo._(this._root);
|
_TranslationsStreamStatusKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusKo implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatKo implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatKo extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatKo._(this._root);
|
_TranslationsStreamChatKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => '채팅 사용 안 함';
|
@override String get disabled => '채팅 사용 안 함';
|
||||||
@override String disabled_timeout({ required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
@override String disabled_timeout({required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
||||||
|
|
||||||
/// 시간 초과 이벤트를 표시하는 채팅 메시지
|
/// 시간 초과 이벤트를 표시하는 채팅 메시지
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' 시간 초과됨 '),
|
const TextSpan(text: ' 시간 초과됨 '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' '),
|
const TextSpan(text: ' '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// 채팅 하단의 스트림 종료 푸터
|
/// 채팅 하단의 스트림 종료 푸터
|
||||||
@override String get ended => '스트림 종료';
|
@override String get ended => '스트림 종료';
|
||||||
|
|
||||||
/// 채팅 메시지 스트림 끊김 표시
|
/// 채팅 메시지 스트림 끊김 표시
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' ZAPP '),
|
const TextSpan(text: ' ZAPP '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' SATS'),
|
const TextSpan(text: ' SATS'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteKo write = _TranslationsStreamChatWriteKo._(_root);
|
@override late final _TranslationsStreamChatWriteKo write = _TranslationsStreamChatWriteKo._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeKo badge = _TranslationsStreamChatBadgeKo._(_root);
|
@override late final _TranslationsStreamChatBadgeKo badge = _TranslationsStreamChatBadgeKo._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatKo implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorKo implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorKo extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorKo._(this._root);
|
_TranslationsZapErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorKo implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => '번개 주소를 찾을 수 없습니다.';
|
@override String get no_lud16 => '번개 주소를 찾을 수 없습니다.';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditKo implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileKo extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditKo._(this._root);
|
_TranslationsSettingsProfileKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditKo implements TranslationsProfileEditEn {
|
|||||||
@override String get about => '정보';
|
@override String get about => '정보';
|
||||||
@override String get nip05 => '노스트르 주소';
|
@override String get nip05 => '노스트르 주소';
|
||||||
@override String get lud16 => '라이트닝 주소';
|
@override String get lud16 => '라이트닝 주소';
|
||||||
@override late final _TranslationsProfileEditErrorKo error = _TranslationsProfileEditErrorKo._(_root);
|
@override late final _TranslationsSettingsProfileErrorKo error = _TranslationsSettingsProfileErrorKo._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletKo extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => '잔액';
|
||||||
|
@override String get name => '지갑';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorKo error = _TranslationsSettingsWalletErrorKo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorKo implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorKo extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorKo._(this._root);
|
_TranslationsLoginErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorKo implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => '잘못된 키';
|
@override String get invalid_key => '잘못된 키';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorKo extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => '스트림 실패';
|
||||||
|
@override String get connection_error => '연결 오류';
|
||||||
|
@override String get start_failed => '스트림 시작에 실패했습니다. 잔액을 확인해 주세요.';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteKo implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteKo extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteKo._(this._root);
|
_TranslationsStreamChatWriteKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteKo implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeKo implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeKo extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeKo._(this._root);
|
_TranslationsStreamChatBadgeKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeKo implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidKo implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidKo extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidKo._(this._root);
|
_TranslationsStreamChatRaidKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// 다른 스트림으로 채팅 레이드 메시지 보내기
|
/// 다른 스트림으로 채팅 레이드 메시지 보내기
|
||||||
@override String to({ required Object name}) => 'RAIDing ${name}';
|
@override String to({required Object name}) => 'RAIDing ${name}';
|
||||||
|
|
||||||
/// 다른 스트림의 채팅 레이드 메시지
|
/// 다른 스트림의 채팅 레이드 메시지
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// 자동 레이드를 위한 카운트다운 타이머
|
/// 자동 레이드를 위한 카운트다운 타이머
|
||||||
@override String countdown({ required Object time}) => '${time}에서 레이드';
|
@override String countdown({required Object time}) => '${time}에서 레이드';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorKo implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorKo extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorKo._(this._root);
|
_TranslationsSettingsProfileErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorKo implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => '로그아웃 시 프로필 수정 불가';
|
@override String get logged_out => '로그아웃 시 프로필 수정 불가';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorKo extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => '로그아웃 시 지갑 연결 불가';
|
||||||
|
@override String get nwc_auth_event_not_found => '지갑 인증 이벤트를 찾을 수 없습니다.';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsKo {
|
extension on TranslationsKo {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsKo {
|
|||||||
case 'most_zapped_streamers': return '가장 많이 재핑된 스트리머';
|
case 'most_zapped_streamers': return '가장 많이 재핑된 스트리머';
|
||||||
case 'no_user_found': return '사용자를 찾을 수 없습니다.';
|
case 'no_user_found': return '사용자를 찾을 수 없습니다.';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('ko').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
||||||
one: '시청자 1명',
|
one: '시청자 1명',
|
||||||
other: '${n} 시청자',
|
other: '{n:decimalPattern} 시청자',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return '라이브';
|
case 'stream.status.live': return '라이브';
|
||||||
case 'stream.status.ended': return '종료';
|
case 'stream.status.ended': return '종료';
|
||||||
case 'stream.status.planned': return '계획된';
|
case 'stream.status.planned': return '계획된';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => '시작 ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => '시작 ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} 라이브가 시작되었습니다!';
|
||||||
case 'stream.chat.disabled': return '채팅 사용 안 함';
|
case 'stream.chat.disabled': return '채팅 사용 안 함';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' 시간 초과됨 '),
|
const TextSpan(text: ' 시간 초과됨 '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' '),
|
const TextSpan(text: ' '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return '스트림 종료';
|
case 'stream.chat.ended': return '스트림 종료';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' ZAPP '),
|
const TextSpan(text: ' ZAPP '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' SATS'),
|
const TextSpan(text: ' SATS'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return '메시지 작성';
|
case 'stream.chat.write.label': return '메시지 작성';
|
||||||
case 'stream.chat.write.no_signer': return 'npub 로그인으로 메시지를 작성할 수 없습니다.';
|
case 'stream.chat.write.no_signer': return 'npub 로그인으로 메시지를 작성할 수 없습니다.';
|
||||||
case 'stream.chat.write.login': return '메시지를 보내려면 로그인하세요.';
|
case 'stream.chat.write.login': return '메시지를 보내려면 로그인하세요.';
|
||||||
case 'stream.chat.badge.awarded_to': return '수상 대상';
|
case 'stream.chat.badge.awarded_to': return '수상 대상';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDing ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => '${time}에서 레이드';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => '${time}에서 레이드';
|
||||||
case 'goal.title': return ({ required Object amount}) => '목표: ${amount}';
|
case 'goal.title': return ({required Object amount}) => '목표: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => '남음: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => '남음: ${amount}';
|
||||||
case 'goal.complete': return '완료';
|
case 'goal.complete': return '완료';
|
||||||
case 'button.login': return '로그인';
|
case 'button.login': return '로그인';
|
||||||
case 'button.logout': return '로그아웃';
|
case 'button.logout': return '로그아웃';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsKo {
|
|||||||
case 'button.unmute': return '뮤트 해제';
|
case 'button.unmute': return '뮤트 해제';
|
||||||
case 'button.share': return '공유';
|
case 'button.share': return '공유';
|
||||||
case 'button.save': return '저장';
|
case 'button.save': return '저장';
|
||||||
case 'embed.article_by': return ({ required Object name}) => '작성자: ${name}';
|
case 'button.connect': return '연결';
|
||||||
case 'embed.note_by': return ({ required Object name}) => '노트 작성됨: ${name}';
|
case 'button.settings': return '설정';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => '라이브 스트리밍: ${name}';
|
case 'embed.article_by': return ({required Object name}) => '작성자: ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => '노트 작성됨: ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => '라이브 스트리밍: ${name}';
|
||||||
case 'stream_list.following': return '팔로잉';
|
case 'stream_list.following': return '팔로잉';
|
||||||
case 'stream_list.live': return '라이브';
|
case 'stream_list.live': return '라이브';
|
||||||
case 'stream_list.planned': return '계획된';
|
case 'stream_list.planned': return '계획된';
|
||||||
case 'stream_list.ended': return '종료됨';
|
case 'stream_list.ended': return '종료됨';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return '사용자 지정 금액';
|
case 'zap.custom_amount': return '사용자 지정 금액';
|
||||||
case 'zap.confirm': return '확인';
|
case 'zap.confirm': return '확인';
|
||||||
case 'zap.comment': return '댓글';
|
case 'zap.comment': return '댓글';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return '지갑에서 열기';
|
case 'zap.button_open_wallet': return '지갑에서 열기';
|
||||||
|
case 'zap.button_connect_wallet': return '지갑 연결';
|
||||||
case 'zap.copy': return '클립보드에 복사';
|
case 'zap.copy': return '클립보드에 복사';
|
||||||
case 'zap.error.invalid_custom_amount': return '잘못된 사용자 지정 금액';
|
case 'zap.error.invalid_custom_amount': return '잘못된 사용자 지정 금액';
|
||||||
case 'zap.error.no_wallet': return '라이트닝 월렛이 설치되지 않았습니다.';
|
case 'zap.error.no_wallet': return '라이트닝 월렛이 설치되지 않았습니다.';
|
||||||
case 'zap.error.no_lud16': return '번개 주소를 찾을 수 없습니다.';
|
case 'zap.error.no_lud16': return '번개 주소를 찾을 수 없습니다.';
|
||||||
case 'profile.past_streams': return '과거 스트림';
|
case 'profile.past_streams': return '과거 스트림';
|
||||||
case 'profile.edit.display_name': return '표시 이름';
|
case 'settings.button_profile': return '프로필 수정';
|
||||||
case 'profile.edit.about': return '정보';
|
case 'settings.button_wallet': return '지갑 설정';
|
||||||
case 'profile.edit.nip05': return '노스트르 주소';
|
case 'settings.profile.display_name': return '표시 이름';
|
||||||
case 'profile.edit.lud16': return '라이트닝 주소';
|
case 'settings.profile.about': return '정보';
|
||||||
case 'profile.edit.error.logged_out': return '로그아웃 시 프로필 수정 불가';
|
case 'settings.profile.nip05': return '노스트르 주소';
|
||||||
|
case 'settings.profile.lud16': return '라이트닝 주소';
|
||||||
|
case 'settings.profile.error.logged_out': return '로그아웃 시 프로필 수정 불가';
|
||||||
|
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.balance': return '잔액';
|
||||||
|
case 'settings.wallet.name': return '지갑';
|
||||||
|
case 'settings.wallet.error.logged_out': return '로그아웃 시 지갑 연결 불가';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return '지갑 인증 이벤트를 찾을 수 없습니다.';
|
||||||
case 'login.username': return '사용자 이름';
|
case 'login.username': return '사용자 이름';
|
||||||
case 'login.amber': return 'Amber로 로그인';
|
case 'login.amber': return 'Amber로 로그인';
|
||||||
case 'login.key': return '키로 로그인';
|
case 'login.key': return '키로 로그인';
|
||||||
case 'login.create': return '계정 만들기';
|
case 'login.create': return '계정 만들기';
|
||||||
case 'login.error.invalid_key': return '잘못된 키';
|
case 'login.error.invalid_key': return '잘못된 키';
|
||||||
|
case 'live.start': return '라이브 시작하기';
|
||||||
|
case 'live.configure_stream': return '스트림 구성';
|
||||||
|
case 'live.endpoint': return '엔드포인트';
|
||||||
|
case 'live.accept_tos': return 'TOS 수락';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ko'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return '제목';
|
||||||
|
case 'live.summary': return '요약';
|
||||||
|
case 'live.image': return '표지 이미지';
|
||||||
|
case 'live.tags': return '태그';
|
||||||
|
case 'live.nsfw': return 'NSFW 콘텐츠';
|
||||||
|
case 'live.nsfw_description': return '이 스트림에 노출 또는 음란 콘텐츠가 포함되어 있는지 여기에서 확인하세요.';
|
||||||
|
case 'live.error.failed': return '스트림 실패';
|
||||||
|
case 'live.error.connection_error': return '연결 오류';
|
||||||
|
case 'live.error.start_failed': return '스트림 시작에 실패했습니다. 잔액을 확인해 주세요.';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsNl implements Translations {
|
class TranslationsNl extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsNl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsNl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsNl implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsNl implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsNl _root = this; // ignore: unused_field
|
late final TranslationsNl _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsNl implements Translations {
|
|||||||
/// Een anonieme gebruiker
|
/// Een anonieme gebruiker
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('nl').format(n)} sats';
|
||||||
|
|
||||||
/// Aantal kijkers van de stream
|
/// Aantal kijkers van de stream
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
||||||
one: '1 kijker',
|
one: '1 kijker',
|
||||||
other: '${n} kijkers',
|
other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamNl stream = _TranslationsStreamNl._(_root);
|
@override late final _TranslationsStreamNl stream = _TranslationsStreamNl._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsNl implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapNl zap = _TranslationsZapNl._(_root);
|
@override late final _TranslationsZapNl zap = _TranslationsZapNl._(_root);
|
||||||
@override late final _TranslationsProfileNl profile = _TranslationsProfileNl._(_root);
|
@override late final _TranslationsProfileNl profile = _TranslationsProfileNl._(_root);
|
||||||
|
@override late final _TranslationsSettingsNl settings = _TranslationsSettingsNl._(_root);
|
||||||
@override late final _TranslationsLoginNl login = _TranslationsLoginNl._(_root);
|
@override late final _TranslationsLoginNl login = _TranslationsLoginNl._(_root);
|
||||||
|
@override late final _TranslationsLiveNl live = _TranslationsLiveNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamNl implements TranslationsStreamEn {
|
class _TranslationsStreamNl extends TranslationsStreamEn {
|
||||||
_TranslationsStreamNl._(this._root);
|
_TranslationsStreamNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusNl status = _TranslationsStreamStatusNl._(_root);
|
@override late final _TranslationsStreamStatusNl status = _TranslationsStreamStatusNl._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Begonnen met ${timestamp}';
|
@override String started({required Object timestamp}) => 'Begonnen met ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} ging live!';
|
||||||
@override late final _TranslationsStreamChatNl chat = _TranslationsStreamChatNl._(_root);
|
@override late final _TranslationsStreamChatNl chat = _TranslationsStreamChatNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalNl implements TranslationsGoalEn {
|
class _TranslationsGoalNl extends TranslationsGoalEn {
|
||||||
_TranslationsGoalNl._(this._root);
|
_TranslationsGoalNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Doel: ${amount}';
|
@override String title({required Object amount}) => 'Doel: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Overblijvend: ${amount}';
|
@override String remaining({required Object amount}) => 'Overblijvend: ${amount}';
|
||||||
@override String get complete => 'COMPLETE';
|
@override String get complete => 'COMPLETE';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonNl implements TranslationsButtonEn {
|
class _TranslationsButtonNl extends TranslationsButtonEn {
|
||||||
_TranslationsButtonNl._(this._root);
|
_TranslationsButtonNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonNl implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Niet langer negeren';
|
@override String get unmute => 'Niet langer negeren';
|
||||||
@override String get share => 'Deel';
|
@override String get share => 'Deel';
|
||||||
@override String get save => 'Opslaan';
|
@override String get save => 'Opslaan';
|
||||||
|
@override String get connect => 'Maak verbinding met';
|
||||||
|
@override String get settings => 'Instellingen';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedNl implements TranslationsEmbedEn {
|
class _TranslationsEmbedNl extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedNl._(this._root);
|
_TranslationsEmbedNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artikel door ${name}';
|
@override String article_by({required Object name}) => 'Artikel door ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Opmerking door ${name}';
|
@override String note_by({required Object name}) => 'Opmerking door ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Live stream via ${name}';
|
@override String live_stream_by({required Object name}) => 'Live stream via ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListNl implements TranslationsStreamListEn {
|
class _TranslationsStreamListNl extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListNl._(this._root);
|
_TranslationsStreamListNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListNl implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapNl implements TranslationsZapEn {
|
class _TranslationsZapNl extends TranslationsZapEn {
|
||||||
_TranslationsZapNl._(this._root);
|
_TranslationsZapNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Aangepast bedrag';
|
@override String get custom_amount => 'Aangepast bedrag';
|
||||||
@override String get confirm => 'Bevestig';
|
@override String get confirm => 'Bevestig';
|
||||||
@override String get comment => 'Opmerking';
|
@override String get comment => 'Opmerking';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Openen in portefeuille';
|
@override String get button_open_wallet => 'Openen in portefeuille';
|
||||||
|
@override String get button_connect_wallet => 'Portemonnee aansluiten';
|
||||||
@override String get copy => 'Gekopieerd naar klembord';
|
@override String get copy => 'Gekopieerd naar klembord';
|
||||||
@override late final _TranslationsZapErrorNl error = _TranslationsZapErrorNl._(_root);
|
@override late final _TranslationsZapErrorNl error = _TranslationsZapErrorNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileNl implements TranslationsProfileEn {
|
class _TranslationsProfileNl extends TranslationsProfileEn {
|
||||||
_TranslationsProfileNl._(this._root);
|
_TranslationsProfileNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Afgelopen Streams';
|
@override String get past_streams => 'Afgelopen Streams';
|
||||||
@override late final _TranslationsProfileEditNl edit = _TranslationsProfileEditNl._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsNl extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Profiel bewerken';
|
||||||
|
@override String get button_wallet => 'Portemonnee-instellingen';
|
||||||
|
@override late final _TranslationsSettingsProfileNl profile = _TranslationsSettingsProfileNl._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletNl wallet = _TranslationsSettingsWalletNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginNl implements TranslationsLoginEn {
|
class _TranslationsLoginNl extends TranslationsLoginEn {
|
||||||
_TranslationsLoginNl._(this._root);
|
_TranslationsLoginNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginNl implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorNl error = _TranslationsLoginErrorNl._(_root);
|
@override late final _TranslationsLoginErrorNl error = _TranslationsLoginErrorNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveNl extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'LIVE GAAN';
|
||||||
|
@override String get configure_stream => 'Stream configureren';
|
||||||
|
@override String get endpoint => 'Eindpunt';
|
||||||
|
@override String get accept_tos => 'TOS accepteren';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titel';
|
||||||
|
@override String get summary => 'Samenvatting';
|
||||||
|
@override String get image => 'Afbeelding omslag';
|
||||||
|
@override String get tags => 'Tags';
|
||||||
|
@override String get nsfw => 'NSFW-inhoud';
|
||||||
|
@override String get nsfw_description => 'Controleer hier of deze stream naaktheid of pornografische inhoud bevat.';
|
||||||
|
@override late final _TranslationsLiveErrorNl error = _TranslationsLiveErrorNl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusNl implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusNl extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusNl._(this._root);
|
_TranslationsStreamStatusNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusNl implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatNl implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatNl extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatNl._(this._root);
|
_TranslationsStreamChatNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT UITGESCHAKELD';
|
@override String get disabled => 'CHAT UITGESCHAKELD';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Time-out loopt af: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Time-out loopt af: ${time}';
|
||||||
|
|
||||||
/// Chatbericht met time-outgebeurtenissen
|
/// Chatbericht met time-outgebeurtenissen
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' voor '),
|
const TextSpan(text: ' voor '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Voettekst einde stream onderaan chat
|
/// Voettekst einde stream onderaan chat
|
||||||
@override String get ended => 'STREAM BEËINDIGD';
|
@override String get ended => 'STREAM BEËINDIGD';
|
||||||
|
|
||||||
/// Chatbericht met stream zaps
|
/// Chatbericht met stream zaps
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteNl write = _TranslationsStreamChatWriteNl._(_root);
|
@override late final _TranslationsStreamChatWriteNl write = _TranslationsStreamChatWriteNl._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeNl badge = _TranslationsStreamChatBadgeNl._(_root);
|
@override late final _TranslationsStreamChatBadgeNl badge = _TranslationsStreamChatBadgeNl._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatNl implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorNl implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorNl extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorNl._(this._root);
|
_TranslationsZapErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorNl implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Geen bliksemadres gevonden';
|
@override String get no_lud16 => 'Geen bliksemadres gevonden';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditNl implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileNl extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditNl._(this._root);
|
_TranslationsSettingsProfileNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Naam weergeven';
|
@override String get display_name => 'Naam weergeven';
|
||||||
@override String get about => 'Over ons';
|
@override String get about => 'Over';
|
||||||
@override String get nip05 => 'Nostr Adres';
|
@override String get nip05 => 'Nostr Adres';
|
||||||
@override String get lud16 => 'Lightning adres';
|
@override String get lud16 => 'Bliksemadres';
|
||||||
@override late final _TranslationsProfileEditErrorNl error = _TranslationsProfileEditErrorNl._(_root);
|
@override late final _TranslationsSettingsProfileErrorNl error = _TranslationsSettingsProfileErrorNl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletNl extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Saldo';
|
||||||
|
@override String get name => 'Portemonnee';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorNl error = _TranslationsSettingsWalletErrorNl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorNl implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorNl extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorNl._(this._root);
|
_TranslationsLoginErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorNl implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Ongeldige sleutel';
|
@override String get invalid_key => 'Ongeldige sleutel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorNl extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Stream mislukt';
|
||||||
|
@override String get connection_error => 'Fout bij verbinding';
|
||||||
|
@override String get start_failed => 'Stream start mislukt, controleer uw saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteNl implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteNl extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteNl._(this._root);
|
_TranslationsStreamChatWriteNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteNl implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeNl implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeNl extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeNl._(this._root);
|
_TranslationsStreamChatBadgeNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeNl implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidNl implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidNl extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidNl._(this._root);
|
_TranslationsStreamChatRaidNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat raid bericht naar een andere stream
|
/// Chat raid bericht naar een andere stream
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat invalbericht van een andere stream
|
/// Chat invalbericht van een andere stream
|
||||||
@override String from({ required Object name}) => 'RAID VAN ${name}';
|
@override String from({required Object name}) => 'RAID VAN ${name}';
|
||||||
|
|
||||||
/// Afteltimer voor automatisch rijden
|
/// Afteltimer voor automatisch rijden
|
||||||
@override String countdown({ required Object time}) => 'Overvallen in ${time}';
|
@override String countdown({required Object time}) => 'Overvallen in ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorNl implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorNl extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorNl._(this._root);
|
_TranslationsSettingsProfileErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorNl implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Kan profiel niet bewerken als ik ben uitgelogd';
|
@override String get logged_out => 'Kan profiel niet bewerken als ik ben uitgelogd';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorNl extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsNl {
|
extension on TranslationsNl {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsNl {
|
|||||||
case 'most_zapped_streamers': return 'Meeste Zapped Streamers';
|
case 'most_zapped_streamers': return 'Meeste Zapped Streamers';
|
||||||
case 'no_user_found': return 'Geen gebruiker gevonden';
|
case 'no_user_found': return 'Geen gebruiker gevonden';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('nl').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
||||||
one: '1 kijker',
|
one: '1 kijker',
|
||||||
other: '${n} kijkers',
|
other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'GESLOTEN';
|
case 'stream.status.ended': return 'GESLOTEN';
|
||||||
case 'stream.status.planned': return 'GEPLAND';
|
case 'stream.status.planned': return 'GEPLAND';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Begonnen met ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Begonnen met ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} ging live!';
|
||||||
case 'stream.chat.disabled': return 'CHAT UITGESCHAKELD';
|
case 'stream.chat.disabled': return 'CHAT UITGESCHAKELD';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Time-out loopt af: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Time-out loopt af: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' timed out '),
|
const TextSpan(text: ' timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' voor '),
|
const TextSpan(text: ' voor '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM BEËINDIGD';
|
case 'stream.chat.ended': return 'STREAM BEËINDIGD';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Schrijf bericht';
|
case 'stream.chat.write.label': return 'Schrijf bericht';
|
||||||
case 'stream.chat.write.no_signer': return 'Kan geen berichten schrijven met npub login';
|
case 'stream.chat.write.no_signer': return 'Kan geen berichten schrijven met npub login';
|
||||||
case 'stream.chat.write.login': return 'Log in om berichten te verzenden';
|
case 'stream.chat.write.login': return 'Log in om berichten te verzenden';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Toegekend aan:';
|
case 'stream.chat.badge.awarded_to': return 'Toegekend aan:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID VAN ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID VAN ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Overvallen in ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Overvallen in ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Doel: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Doel: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Overblijvend: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Overblijvend: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETE';
|
case 'goal.complete': return 'COMPLETE';
|
||||||
case 'button.login': return 'Inloggen';
|
case 'button.login': return 'Inloggen';
|
||||||
case 'button.logout': return 'Uitloggen';
|
case 'button.logout': return 'Uitloggen';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsNl {
|
|||||||
case 'button.unmute': return 'Niet langer negeren';
|
case 'button.unmute': return 'Niet langer negeren';
|
||||||
case 'button.share': return 'Deel';
|
case 'button.share': return 'Deel';
|
||||||
case 'button.save': return 'Opslaan';
|
case 'button.save': return 'Opslaan';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artikel door ${name}';
|
case 'button.connect': return 'Maak verbinding met';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Opmerking door ${name}';
|
case 'button.settings': return 'Instellingen';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Live stream via ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artikel door ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Opmerking door ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Live stream via ${name}';
|
||||||
case 'stream_list.following': return 'Volgt';
|
case 'stream_list.following': return 'Volgt';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Gepland';
|
case 'stream_list.planned': return 'Gepland';
|
||||||
case 'stream_list.ended': return 'Beëindigd';
|
case 'stream_list.ended': return 'Beëindigd';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Aangepast bedrag';
|
case 'zap.custom_amount': return 'Aangepast bedrag';
|
||||||
case 'zap.confirm': return 'Bevestig';
|
case 'zap.confirm': return 'Bevestig';
|
||||||
case 'zap.comment': return 'Opmerking';
|
case 'zap.comment': return 'Opmerking';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Openen in portefeuille';
|
case 'zap.button_open_wallet': return 'Openen in portefeuille';
|
||||||
|
case 'zap.button_connect_wallet': return 'Portemonnee aansluiten';
|
||||||
case 'zap.copy': return 'Gekopieerd naar klembord';
|
case 'zap.copy': return 'Gekopieerd naar klembord';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Ongeldig aangepast bedrag';
|
case 'zap.error.invalid_custom_amount': return 'Ongeldig aangepast bedrag';
|
||||||
case 'zap.error.no_wallet': return 'Geen bliksemportemonnee geïnstalleerd';
|
case 'zap.error.no_wallet': return 'Geen bliksemportemonnee geïnstalleerd';
|
||||||
case 'zap.error.no_lud16': return 'Geen bliksemadres gevonden';
|
case 'zap.error.no_lud16': return 'Geen bliksemadres gevonden';
|
||||||
case 'profile.past_streams': return 'Afgelopen Streams';
|
case 'profile.past_streams': return 'Afgelopen Streams';
|
||||||
case 'profile.edit.display_name': return 'Naam weergeven';
|
case 'settings.button_profile': return 'Profiel bewerken';
|
||||||
case 'profile.edit.about': return 'Over ons';
|
case 'settings.button_wallet': return 'Portemonnee-instellingen';
|
||||||
case 'profile.edit.nip05': return 'Nostr Adres';
|
case 'settings.profile.display_name': return 'Naam weergeven';
|
||||||
case 'profile.edit.lud16': return 'Lightning adres';
|
case 'settings.profile.about': return 'Over';
|
||||||
case 'profile.edit.error.logged_out': return 'Kan profiel niet bewerken als ik ben uitgelogd';
|
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 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.balance': return 'Saldo';
|
||||||
|
case 'settings.wallet.name': return 'Portemonnee';
|
||||||
|
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.username': return 'Gebruikersnaam';
|
||||||
case 'login.amber': return 'Inloggen met Amber';
|
case 'login.amber': return 'Inloggen met Amber';
|
||||||
case 'login.key': return 'Inloggen met sleutel';
|
case 'login.key': return 'Inloggen met sleutel';
|
||||||
case 'login.create': return 'Account aanmaken';
|
case 'login.create': return 'Account aanmaken';
|
||||||
case 'login.error.invalid_key': return 'Ongeldige sleutel';
|
case 'login.error.invalid_key': return 'Ongeldige sleutel';
|
||||||
|
case 'live.start': return 'LIVE GAAN';
|
||||||
|
case 'live.configure_stream': return 'Stream configureren';
|
||||||
|
case 'live.endpoint': return 'Eindpunt';
|
||||||
|
case 'live.accept_tos': return 'TOS accepteren';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titel';
|
||||||
|
case 'live.summary': return 'Samenvatting';
|
||||||
|
case 'live.image': return 'Afbeelding omslag';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'NSFW-inhoud';
|
||||||
|
case 'live.nsfw_description': return 'Controleer hier of deze stream naaktheid of pornografische inhoud bevat.';
|
||||||
|
case 'live.error.failed': return 'Stream mislukt';
|
||||||
|
case 'live.error.connection_error': return 'Fout bij verbinding';
|
||||||
|
case 'live.error.start_failed': return 'Stream start mislukt, controleer uw saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsNo implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <no>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsNo _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsNo $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginNo login = _TranslationsLoginNo._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamNo implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamNo._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalNo._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonNo._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedNo implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedNo._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListNo._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapNo._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorNo error = _TranslationsZapErrorNo._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileNo implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileNo._(this._root);
|
|
||||||
|
|
||||||
final TranslationsNo _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditNo edit = _TranslationsProfileEditNo._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginNo implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginNo._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusNo._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatNo._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorNo._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditNo implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditNo._(this._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 _TranslationsProfileEditErrorNo error = _TranslationsProfileEditErrorNo._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorNo implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorNo._(this._root);
|
|
||||||
|
|
||||||
final TranslationsNo _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteNo implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteNo._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeNo._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidNo._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorNo implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorNo._(this._root);
|
|
||||||
|
|
||||||
final TranslationsNo _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsPl implements Translations {
|
class TranslationsPl extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsPl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsPl({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsPl implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsPl implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsPl _root = this; // ignore: unused_field
|
late final TranslationsPl _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsPl implements Translations {
|
|||||||
/// Anonimowy użytkownik
|
/// Anonimowy użytkownik
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('pl').format(n)} sats';
|
||||||
|
|
||||||
/// Liczba widzów strumienia
|
/// Liczba widzów strumienia
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
||||||
one: '1 przeglądarka',
|
one: '1 przeglądarka',
|
||||||
other: '${n} widzowie',
|
other: '{n:decimalPattern} widzów',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamPl stream = _TranslationsStreamPl._(_root);
|
@override late final _TranslationsStreamPl stream = _TranslationsStreamPl._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsPl implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapPl zap = _TranslationsZapPl._(_root);
|
@override late final _TranslationsZapPl zap = _TranslationsZapPl._(_root);
|
||||||
@override late final _TranslationsProfilePl profile = _TranslationsProfilePl._(_root);
|
@override late final _TranslationsProfilePl profile = _TranslationsProfilePl._(_root);
|
||||||
|
@override late final _TranslationsSettingsPl settings = _TranslationsSettingsPl._(_root);
|
||||||
@override late final _TranslationsLoginPl login = _TranslationsLoginPl._(_root);
|
@override late final _TranslationsLoginPl login = _TranslationsLoginPl._(_root);
|
||||||
|
@override late final _TranslationsLivePl live = _TranslationsLivePl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamPl implements TranslationsStreamEn {
|
class _TranslationsStreamPl extends TranslationsStreamEn {
|
||||||
_TranslationsStreamPl._(this._root);
|
_TranslationsStreamPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusPl status = _TranslationsStreamStatusPl._(_root);
|
@override late final _TranslationsStreamStatusPl status = _TranslationsStreamStatusPl._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Start ${timestamp}';
|
@override String started({required Object timestamp}) => 'Start ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} został uruchomiony!';
|
||||||
@override late final _TranslationsStreamChatPl chat = _TranslationsStreamChatPl._(_root);
|
@override late final _TranslationsStreamChatPl chat = _TranslationsStreamChatPl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalPl implements TranslationsGoalEn {
|
class _TranslationsGoalPl extends TranslationsGoalEn {
|
||||||
_TranslationsGoalPl._(this._root);
|
_TranslationsGoalPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Cel: ${amount}';
|
@override String title({required Object amount}) => 'Cel: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Pozostałe: ${amount}';
|
@override String remaining({required Object amount}) => 'Pozostałe: ${amount}';
|
||||||
@override String get complete => 'ZAKOŃCZONE';
|
@override String get complete => 'ZAKOŃCZONE';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonPl implements TranslationsButtonEn {
|
class _TranslationsButtonPl extends TranslationsButtonEn {
|
||||||
_TranslationsButtonPl._(this._root);
|
_TranslationsButtonPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonPl implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Wyłącz wyciszenie';
|
@override String get unmute => 'Wyłącz wyciszenie';
|
||||||
@override String get share => 'Udział';
|
@override String get share => 'Udział';
|
||||||
@override String get save => 'Zapisz';
|
@override String get save => 'Zapisz';
|
||||||
|
@override String get connect => 'Połączenie';
|
||||||
|
@override String get settings => 'Ustawienia';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedPl implements TranslationsEmbedEn {
|
class _TranslationsEmbedPl extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedPl._(this._root);
|
_TranslationsEmbedPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artykuł autorstwa ${name}';
|
@override String article_by({required Object name}) => 'Artykuł autorstwa ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Uwaga ${name}';
|
@override String note_by({required Object name}) => 'Uwaga ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Transmisja na żywo przez ${name}';
|
@override String live_stream_by({required Object name}) => 'Transmisja na żywo przez ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListPl implements TranslationsStreamListEn {
|
class _TranslationsStreamListPl extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListPl._(this._root);
|
_TranslationsStreamListPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListPl implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapPl implements TranslationsZapEn {
|
class _TranslationsZapPl extends TranslationsZapEn {
|
||||||
_TranslationsZapPl._(this._root);
|
_TranslationsZapPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Kwota niestandardowa';
|
@override String get custom_amount => 'Kwota niestandardowa';
|
||||||
@override String get confirm => 'Potwierdzenie';
|
@override String get confirm => 'Potwierdzenie';
|
||||||
@override String get comment => 'Komentarz';
|
@override String get comment => 'Komentarz';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Otwórz w portfelu';
|
@override String get button_open_wallet => 'Otwórz w portfelu';
|
||||||
|
@override String get button_connect_wallet => 'Connect Wallet';
|
||||||
@override String get copy => 'Skopiowane do schowka';
|
@override String get copy => 'Skopiowane do schowka';
|
||||||
@override late final _TranslationsZapErrorPl error = _TranslationsZapErrorPl._(_root);
|
@override late final _TranslationsZapErrorPl error = _TranslationsZapErrorPl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfilePl implements TranslationsProfileEn {
|
class _TranslationsProfilePl extends TranslationsProfileEn {
|
||||||
_TranslationsProfilePl._(this._root);
|
_TranslationsProfilePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Poprzednie strumienie';
|
@override String get past_streams => 'Poprzednie strumienie';
|
||||||
@override late final _TranslationsProfileEditPl edit = _TranslationsProfileEditPl._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsPl extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Edytuj profil';
|
||||||
|
@override String get button_wallet => 'Ustawienia portfela';
|
||||||
|
@override late final _TranslationsSettingsProfilePl profile = _TranslationsSettingsProfilePl._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletPl wallet = _TranslationsSettingsWalletPl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginPl implements TranslationsLoginEn {
|
class _TranslationsLoginPl extends TranslationsLoginEn {
|
||||||
_TranslationsLoginPl._(this._root);
|
_TranslationsLoginPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginPl implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorPl error = _TranslationsLoginErrorPl._(_root);
|
@override late final _TranslationsLoginErrorPl error = _TranslationsLoginErrorPl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLivePl extends TranslationsLiveEn {
|
||||||
|
_TranslationsLivePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Konfiguracja strumienia';
|
||||||
|
@override String get endpoint => 'Punkt końcowy';
|
||||||
|
@override String get accept_tos => 'Zaakceptuj Regulamin';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Tytuł';
|
||||||
|
@override String get summary => 'Podsumowanie';
|
||||||
|
@override String get image => 'Obraz na okładce';
|
||||||
|
@override String get tags => 'Tagi';
|
||||||
|
@override String get nsfw => 'Treści NSFW';
|
||||||
|
@override String get nsfw_description => 'Sprawdź tutaj, czy ten stream zawiera nagość lub treści pornograficzne.';
|
||||||
|
@override late final _TranslationsLiveErrorPl error = _TranslationsLiveErrorPl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusPl implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusPl extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusPl._(this._root);
|
_TranslationsStreamStatusPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusPl implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatPl implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatPl extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatPl._(this._root);
|
_TranslationsStreamChatPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CZAT WYŁĄCZONY';
|
@override String get disabled => 'CZAT WYŁĄCZONY';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Upłynął limit czasu: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Upłynął limit czasu: ${time}';
|
||||||
|
|
||||||
/// Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
/// Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' upłynął limit czasu '),
|
const TextSpan(text: ' upłynął limit czasu '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' dla '),
|
const TextSpan(text: ' dla '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream zakończył stopkę na dole czatu
|
/// Stream zakończył stopkę na dole czatu
|
||||||
@override String get ended => 'TRANSMISJA ZAKOŃCZONA';
|
@override String get ended => 'TRANSMISJA ZAKOŃCZONA';
|
||||||
|
|
||||||
/// Wiadomość na czacie pokazująca zapy strumienia
|
/// Wiadomość na czacie pokazująca zapy strumienia
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWritePl write = _TranslationsStreamChatWritePl._(_root);
|
@override late final _TranslationsStreamChatWritePl write = _TranslationsStreamChatWritePl._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgePl badge = _TranslationsStreamChatBadgePl._(_root);
|
@override late final _TranslationsStreamChatBadgePl badge = _TranslationsStreamChatBadgePl._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatPl implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorPl implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorPl extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorPl._(this._root);
|
_TranslationsZapErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorPl implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nie znaleziono adresu pioruna';
|
@override String get no_lud16 => 'Nie znaleziono adresu pioruna';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditPl implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfilePl extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditPl._(this._root);
|
_TranslationsSettingsProfilePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditPl implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'O';
|
@override String get about => 'O';
|
||||||
@override String get nip05 => 'Adres Nostr';
|
@override String get nip05 => 'Adres Nostr';
|
||||||
@override String get lud16 => 'Adres błyskawicy';
|
@override String get lud16 => 'Adres błyskawicy';
|
||||||
@override late final _TranslationsProfileEditErrorPl error = _TranslationsProfileEditErrorPl._(_root);
|
@override late final _TranslationsSettingsProfileErrorPl error = _TranslationsSettingsProfileErrorPl._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletPl extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Równowaga';
|
||||||
|
@override String get name => 'Portfel';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorPl error = _TranslationsSettingsWalletErrorPl._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorPl implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorPl extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorPl._(this._root);
|
_TranslationsLoginErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorPl implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Nieprawidłowy klucz';
|
@override String get invalid_key => 'Nieprawidłowy klucz';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorPl extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Strumień nie powiódł się';
|
||||||
|
@override String get connection_error => 'Błąd połączenia';
|
||||||
|
@override String get start_failed => 'Uruchomienie strumienia nie powiodło się, sprawdź saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWritePl implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWritePl extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWritePl._(this._root);
|
_TranslationsStreamChatWritePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWritePl implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgePl implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgePl extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgePl._(this._root);
|
_TranslationsStreamChatBadgePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgePl implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidPl implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidPl extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidPl._(this._root);
|
_TranslationsStreamChatRaidPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Przesyłanie wiadomości na czacie do innego strumienia
|
/// Przesyłanie wiadomości na czacie do innego strumienia
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Nalot na czat z innego strumienia
|
/// Nalot na czat z innego strumienia
|
||||||
@override String from({ required Object name}) => 'RAID Z ${name}';
|
@override String from({required Object name}) => 'RAID Z ${name}';
|
||||||
|
|
||||||
/// Zegar odliczający czas do automatycznej jazdy
|
/// Zegar odliczający czas do automatycznej jazdy
|
||||||
@override String countdown({ required Object time}) => 'Naloty w ${time}';
|
@override String countdown({required Object time}) => 'Naloty w ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorPl implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorPl extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorPl._(this._root);
|
_TranslationsSettingsProfileErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPl _root; // ignore: unused_field
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorPl implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Nie można edytować profilu po wylogowaniu';
|
@override String get logged_out => 'Nie można edytować profilu po wylogowaniu';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorPl extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPl _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsPl {
|
extension on TranslationsPl {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsPl {
|
|||||||
case 'most_zapped_streamers': return 'Większość zapped streamerów';
|
case 'most_zapped_streamers': return 'Większość zapped streamerów';
|
||||||
case 'no_user_found': return 'Nie znaleziono użytkownika';
|
case 'no_user_found': return 'Nie znaleziono użytkownika';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('pl').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
||||||
one: '1 przeglądarka',
|
one: '1 przeglądarka',
|
||||||
other: '${n} widzowie',
|
other: '{n:decimalPattern} widzów',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'NA ŻYWO';
|
case 'stream.status.live': return 'NA ŻYWO';
|
||||||
case 'stream.status.ended': return 'ZAKOŃCZONY';
|
case 'stream.status.ended': return 'ZAKOŃCZONY';
|
||||||
case 'stream.status.planned': return 'PLANOWANE';
|
case 'stream.status.planned': return 'PLANOWANE';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Start ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Start ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} został uruchomiony!';
|
||||||
case 'stream.chat.disabled': return 'CZAT WYŁĄCZONY';
|
case 'stream.chat.disabled': return 'CZAT WYŁĄCZONY';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Upłynął limit czasu: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Upłynął limit czasu: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' upłynął limit czasu '),
|
const TextSpan(text: ' upłynął limit czasu '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' dla '),
|
const TextSpan(text: ' dla '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'TRANSMISJA ZAKOŃCZONA';
|
case 'stream.chat.ended': return 'TRANSMISJA ZAKOŃCZONA';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Napisz wiadomość';
|
case 'stream.chat.write.label': return 'Napisz wiadomość';
|
||||||
case 'stream.chat.write.no_signer': return 'Nie można pisać wiadomości z loginem npub';
|
case 'stream.chat.write.no_signer': return 'Nie można pisać wiadomości z loginem npub';
|
||||||
case 'stream.chat.write.login': return 'Zaloguj się, aby wysyłać wiadomości';
|
case 'stream.chat.write.login': return 'Zaloguj się, aby wysyłać wiadomości';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Przyznano:';
|
case 'stream.chat.badge.awarded_to': return 'Przyznano:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID Z ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID Z ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Naloty w ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Naloty w ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Cel: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Cel: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Pozostałe: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Pozostałe: ${amount}';
|
||||||
case 'goal.complete': return 'ZAKOŃCZONE';
|
case 'goal.complete': return 'ZAKOŃCZONE';
|
||||||
case 'button.login': return 'Logowanie';
|
case 'button.login': return 'Logowanie';
|
||||||
case 'button.logout': return 'Wylogowanie';
|
case 'button.logout': return 'Wylogowanie';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsPl {
|
|||||||
case 'button.unmute': return 'Wyłącz wyciszenie';
|
case 'button.unmute': return 'Wyłącz wyciszenie';
|
||||||
case 'button.share': return 'Udział';
|
case 'button.share': return 'Udział';
|
||||||
case 'button.save': return 'Zapisz';
|
case 'button.save': return 'Zapisz';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artykuł autorstwa ${name}';
|
case 'button.connect': return 'Połączenie';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Uwaga ${name}';
|
case 'button.settings': return 'Ustawienia';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Transmisja na żywo przez ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artykuł autorstwa ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Uwaga ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Transmisja na żywo przez ${name}';
|
||||||
case 'stream_list.following': return 'Następujący';
|
case 'stream_list.following': return 'Następujący';
|
||||||
case 'stream_list.live': return 'Na żywo';
|
case 'stream_list.live': return 'Na żywo';
|
||||||
case 'stream_list.planned': return 'Planowane';
|
case 'stream_list.planned': return 'Planowane';
|
||||||
case 'stream_list.ended': return 'Zakończony';
|
case 'stream_list.ended': return 'Zakończony';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Kwota niestandardowa';
|
case 'zap.custom_amount': return 'Kwota niestandardowa';
|
||||||
case 'zap.confirm': return 'Potwierdzenie';
|
case 'zap.confirm': return 'Potwierdzenie';
|
||||||
case 'zap.comment': return 'Komentarz';
|
case 'zap.comment': return 'Komentarz';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Otwórz w portfelu';
|
case 'zap.button_open_wallet': return 'Otwórz w portfelu';
|
||||||
|
case 'zap.button_connect_wallet': return 'Connect Wallet';
|
||||||
case 'zap.copy': return 'Skopiowane do schowka';
|
case 'zap.copy': return 'Skopiowane do schowka';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Nieprawidłowa kwota niestandardowa';
|
case 'zap.error.invalid_custom_amount': return 'Nieprawidłowa kwota niestandardowa';
|
||||||
case 'zap.error.no_wallet': return 'Brak zainstalowanego portfela Lightning';
|
case 'zap.error.no_wallet': return 'Brak zainstalowanego portfela Lightning';
|
||||||
case 'zap.error.no_lud16': return 'Nie znaleziono adresu pioruna';
|
case 'zap.error.no_lud16': return 'Nie znaleziono adresu pioruna';
|
||||||
case 'profile.past_streams': return 'Poprzednie strumienie';
|
case 'profile.past_streams': return 'Poprzednie strumienie';
|
||||||
case 'profile.edit.display_name': return 'Wyświetlana nazwa';
|
case 'settings.button_profile': return 'Edytuj profil';
|
||||||
case 'profile.edit.about': return 'O';
|
case 'settings.button_wallet': return 'Ustawienia portfela';
|
||||||
case 'profile.edit.nip05': return 'Adres Nostr';
|
case 'settings.profile.display_name': return 'Wyświetlana nazwa';
|
||||||
case 'profile.edit.lud16': return 'Adres błyskawicy';
|
case 'settings.profile.about': return 'O';
|
||||||
case 'profile.edit.error.logged_out': return 'Nie można edytować profilu po wylogowaniu';
|
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 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.balance': return 'Równowaga';
|
||||||
|
case 'settings.wallet.name': return 'Portfel';
|
||||||
|
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.username': return 'Nazwa użytkownika';
|
||||||
case 'login.amber': return 'Zaloguj się za pomocą Amber';
|
case 'login.amber': return 'Zaloguj się za pomocą Amber';
|
||||||
case 'login.key': return 'Logowanie za pomocą klucza';
|
case 'login.key': return 'Logowanie za pomocą klucza';
|
||||||
case 'login.create': return 'Utwórz konto';
|
case 'login.create': return 'Utwórz konto';
|
||||||
case 'login.error.invalid_key': return 'Nieprawidłowy klucz';
|
case 'login.error.invalid_key': return 'Nieprawidłowy klucz';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Konfiguracja strumienia';
|
||||||
|
case 'live.endpoint': return 'Punkt końcowy';
|
||||||
|
case 'live.accept_tos': return 'Zaakceptuj Regulamin';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Tytuł';
|
||||||
|
case 'live.summary': return 'Podsumowanie';
|
||||||
|
case 'live.image': return 'Obraz na okładce';
|
||||||
|
case 'live.tags': return 'Tagi';
|
||||||
|
case 'live.nsfw': return 'Treści NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Sprawdź tutaj, czy ten stream zawiera nagość lub treści pornograficzne.';
|
||||||
|
case 'live.error.failed': return 'Strumień nie powiódł się';
|
||||||
|
case 'live.error.connection_error': return 'Błąd połączenia';
|
||||||
|
case 'live.error.start_failed': return 'Uruchomienie strumienia nie powiodło się, sprawdź saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsPt implements Translations {
|
class TranslationsPt extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsPt({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsPt({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsPt implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsPt implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsPt _root = this; // ignore: unused_field
|
late final TranslationsPt _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsPt implements Translations {
|
|||||||
/// Um usuário anônimo
|
/// Um usuário anônimo
|
||||||
@override String get anon => 'Anônimo';
|
@override String get anon => 'Anônimo';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('pt').format(n)} sats';
|
||||||
|
|
||||||
/// Número de espectadores da transmissão
|
/// Número de espectadores da transmissão
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
||||||
one: '1 visualizador',
|
one: '1 visualizador',
|
||||||
other: '${n} espectadores',
|
other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamPt stream = _TranslationsStreamPt._(_root);
|
@override late final _TranslationsStreamPt stream = _TranslationsStreamPt._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsPt implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapPt zap = _TranslationsZapPt._(_root);
|
@override late final _TranslationsZapPt zap = _TranslationsZapPt._(_root);
|
||||||
@override late final _TranslationsProfilePt profile = _TranslationsProfilePt._(_root);
|
@override late final _TranslationsProfilePt profile = _TranslationsProfilePt._(_root);
|
||||||
|
@override late final _TranslationsSettingsPt settings = _TranslationsSettingsPt._(_root);
|
||||||
@override late final _TranslationsLoginPt login = _TranslationsLoginPt._(_root);
|
@override late final _TranslationsLoginPt login = _TranslationsLoginPt._(_root);
|
||||||
|
@override late final _TranslationsLivePt live = _TranslationsLivePt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamPt implements TranslationsStreamEn {
|
class _TranslationsStreamPt extends TranslationsStreamEn {
|
||||||
_TranslationsStreamPt._(this._root);
|
_TranslationsStreamPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusPt status = _TranslationsStreamStatusPt._(_root);
|
@override late final _TranslationsStreamStatusPt status = _TranslationsStreamStatusPt._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Iniciado em ${timestamp}';
|
@override String started({required Object timestamp}) => 'Iniciado em ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} foi ao ar!';
|
||||||
@override late final _TranslationsStreamChatPt chat = _TranslationsStreamChatPt._(_root);
|
@override late final _TranslationsStreamChatPt chat = _TranslationsStreamChatPt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalPt implements TranslationsGoalEn {
|
class _TranslationsGoalPt extends TranslationsGoalEn {
|
||||||
_TranslationsGoalPt._(this._root);
|
_TranslationsGoalPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Meta: ${amount}';
|
@override String title({required Object amount}) => 'Meta: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Restante: ${amount}';
|
@override String remaining({required Object amount}) => 'Restante: ${amount}';
|
||||||
@override String get complete => 'COMPLETO';
|
@override String get complete => 'COMPLETO';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonPt implements TranslationsButtonEn {
|
class _TranslationsButtonPt extends TranslationsButtonEn {
|
||||||
_TranslationsButtonPt._(this._root);
|
_TranslationsButtonPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonPt implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Desmutar';
|
@override String get unmute => 'Desmutar';
|
||||||
@override String get share => 'Compartilhar';
|
@override String get share => 'Compartilhar';
|
||||||
@override String get save => 'Salvar';
|
@override String get save => 'Salvar';
|
||||||
|
@override String get connect => 'Conectar';
|
||||||
|
@override String get settings => 'Configurações';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedPt implements TranslationsEmbedEn {
|
class _TranslationsEmbedPt extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedPt._(this._root);
|
_TranslationsEmbedPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artigo de ${name}';
|
@override String article_by({required Object name}) => 'Artigo de ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Nota de ${name}';
|
@override String note_by({required Object name}) => 'Nota de ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Transmissão ao vivo pelo site ${name}';
|
@override String live_stream_by({required Object name}) => 'Transmissão ao vivo pelo site ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListPt implements TranslationsStreamListEn {
|
class _TranslationsStreamListPt extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListPt._(this._root);
|
_TranslationsStreamListPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListPt implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapPt implements TranslationsZapEn {
|
class _TranslationsZapPt extends TranslationsZapEn {
|
||||||
_TranslationsZapPt._(this._root);
|
_TranslationsZapPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Valor personalizado';
|
@override String get custom_amount => 'Valor personalizado';
|
||||||
@override String get confirm => 'Confirmar';
|
@override String get confirm => 'Confirmar';
|
||||||
@override String get comment => 'Comentar';
|
@override String get comment => 'Comentar';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Enviar Zap de ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Enviar Zap de ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Abrir na carteira';
|
@override String get button_open_wallet => 'Abrir na carteira';
|
||||||
|
@override String get button_connect_wallet => 'Conectar carteira';
|
||||||
@override String get copy => 'Copiado para a área de transferência';
|
@override String get copy => 'Copiado para a área de transferência';
|
||||||
@override late final _TranslationsZapErrorPt error = _TranslationsZapErrorPt._(_root);
|
@override late final _TranslationsZapErrorPt error = _TranslationsZapErrorPt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfilePt implements TranslationsProfileEn {
|
class _TranslationsProfilePt extends TranslationsProfileEn {
|
||||||
_TranslationsProfilePt._(this._root);
|
_TranslationsProfilePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Transmissões Passadas';
|
@override String get past_streams => 'Transmissões Passadas';
|
||||||
@override late final _TranslationsProfileEditPt edit = _TranslationsProfileEditPt._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsPt extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Editar perfil';
|
||||||
|
@override String get button_wallet => 'Configurações da carteira';
|
||||||
|
@override late final _TranslationsSettingsProfilePt profile = _TranslationsSettingsProfilePt._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletPt wallet = _TranslationsSettingsWalletPt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginPt implements TranslationsLoginEn {
|
class _TranslationsLoginPt extends TranslationsLoginEn {
|
||||||
_TranslationsLoginPt._(this._root);
|
_TranslationsLoginPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginPt implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorPt error = _TranslationsLoginErrorPt._(_root);
|
@override late final _TranslationsLoginErrorPt error = _TranslationsLoginErrorPt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLivePt extends TranslationsLiveEn {
|
||||||
|
_TranslationsLivePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Configurar fluxo';
|
||||||
|
@override String get endpoint => 'Ponto final';
|
||||||
|
@override String get accept_tos => 'Aceitar os Termos de Serviço';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Título';
|
||||||
|
@override String get summary => 'Resumo';
|
||||||
|
@override String get image => 'Imagem da capa';
|
||||||
|
@override String get tags => 'Tags';
|
||||||
|
@override String get nsfw => 'Conteúdo NSFW';
|
||||||
|
@override String get nsfw_description => 'Verifique aqui se essa transmissão contém nudez ou conteúdo pornográfico.';
|
||||||
|
@override late final _TranslationsLiveErrorPt error = _TranslationsLiveErrorPt._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusPt implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusPt extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusPt._(this._root);
|
_TranslationsStreamStatusPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusPt implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatPt implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatPt extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatPt._(this._root);
|
_TranslationsStreamChatPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'BATE-PAPO DESATIVADO';
|
@override String get disabled => 'BATE-PAPO DESATIVADO';
|
||||||
@override String disabled_timeout({ required Object time}) => 'O tempo limite expira: ${time}';
|
@override String disabled_timeout({required Object time}) => 'O tempo limite expira: ${time}';
|
||||||
|
|
||||||
/// Mensagem de bate-papo mostrando eventos de tempo limite
|
/// Mensagem de bate-papo mostrando eventos de tempo limite
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Tempo esgotado '),
|
const TextSpan(text: ' Tempo esgotado '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' para '),
|
const TextSpan(text: ' para '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// O rodapé do fluxo terminou na parte inferior do bate-papo
|
/// O rodapé do fluxo terminou na parte inferior do bate-papo
|
||||||
@override String get ended => 'TRANSMISSÃO ENCERRADA';
|
@override String get ended => 'TRANSMISSÃO ENCERRADA';
|
||||||
|
|
||||||
/// Mensagem de bate-papo mostrando zaps de fluxo
|
/// Mensagem de bate-papo mostrando zaps de fluxo
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapeou '),
|
const TextSpan(text: ' zapeou '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWritePt write = _TranslationsStreamChatWritePt._(_root);
|
@override late final _TranslationsStreamChatWritePt write = _TranslationsStreamChatWritePt._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgePt badge = _TranslationsStreamChatBadgePt._(_root);
|
@override late final _TranslationsStreamChatBadgePt badge = _TranslationsStreamChatBadgePt._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatPt implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorPt implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorPt extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorPt._(this._root);
|
_TranslationsZapErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorPt implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nenhum endereço de raio encontrado';
|
@override String get no_lud16 => 'Nenhum endereço de raio encontrado';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditPt implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfilePt extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditPt._(this._root);
|
_TranslationsSettingsProfilePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Nome de exibição';
|
@override String get display_name => 'Nome de exibição';
|
||||||
@override String get about => 'Sobre';
|
@override String get about => 'Sobre';
|
||||||
@override String get nip05 => 'Endereço do Nostr';
|
@override String get nip05 => 'Endereço Nostr';
|
||||||
@override String get lud16 => 'Endereço Lightning';
|
@override String get lud16 => 'Endereço para relâmpagos';
|
||||||
@override late final _TranslationsProfileEditErrorPt error = _TranslationsProfileEditErrorPt._(_root);
|
@override late final _TranslationsSettingsProfileErrorPt error = _TranslationsSettingsProfileErrorPt._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletPt extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Equilíbrio';
|
||||||
|
@override String get name => 'Carteira';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorPt error = _TranslationsSettingsWalletErrorPt._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorPt implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorPt extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorPt._(this._root);
|
_TranslationsLoginErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorPt implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Chave inválida';
|
@override String get invalid_key => 'Chave inválida';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorPt extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'O fluxo falhou';
|
||||||
|
@override String get connection_error => 'Erro de conexão';
|
||||||
|
@override String get start_failed => 'Falha no início do fluxo, verifique seu saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWritePt implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWritePt extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWritePt._(this._root);
|
_TranslationsStreamChatWritePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWritePt implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgePt implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgePt extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgePt._(this._root);
|
_TranslationsStreamChatBadgePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgePt implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidPt implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidPt extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidPt._(this._root);
|
_TranslationsStreamChatRaidPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Mensagem de invasão de bate-papo para outro fluxo
|
/// Mensagem de invasão de bate-papo para outro fluxo
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Mensagem de invasão de bate-papo de outro fluxo
|
/// Mensagem de invasão de bate-papo de outro fluxo
|
||||||
@override String from({ required Object name}) => 'RAID DE ${name}';
|
@override String from({required Object name}) => 'RAID DE ${name}';
|
||||||
|
|
||||||
/// Cronômetro de contagem regressiva para o ataque automático
|
/// Cronômetro de contagem regressiva para o ataque automático
|
||||||
@override String countdown({ required Object time}) => 'Incursões em ${time}';
|
@override String countdown({required Object time}) => 'Incursões em ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorPt implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorPt extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorPt._(this._root);
|
_TranslationsSettingsProfileErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsPt _root; // ignore: unused_field
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorPt implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Não é possível editar o perfil quando se está desconectado';
|
@override String get logged_out => 'Não é possível editar o perfil quando se está desconectado';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorPt extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsPt _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsPt {
|
extension on TranslationsPt {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsPt {
|
|||||||
case 'most_zapped_streamers': return 'Streamers mais afetados';
|
case 'most_zapped_streamers': return 'Streamers mais afetados';
|
||||||
case 'no_user_found': return 'Nenhum usuário encontrado';
|
case 'no_user_found': return 'Nenhum usuário encontrado';
|
||||||
case 'anon': return 'Anônimo';
|
case 'anon': return 'Anônimo';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('pt').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
||||||
one: '1 visualizador',
|
one: '1 visualizador',
|
||||||
other: '${n} espectadores',
|
other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'AO VIVO';
|
case 'stream.status.live': return 'AO VIVO';
|
||||||
case 'stream.status.ended': return 'FINALIZADO';
|
case 'stream.status.ended': return 'FINALIZADO';
|
||||||
case 'stream.status.planned': return 'PLANEJADO';
|
case 'stream.status.planned': return 'PLANEJADO';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Iniciado em ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Iniciado em ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} foi ao ar!';
|
||||||
case 'stream.chat.disabled': return 'BATE-PAPO DESATIVADO';
|
case 'stream.chat.disabled': return 'BATE-PAPO DESATIVADO';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'O tempo limite expira: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'O tempo limite expira: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Tempo esgotado '),
|
const TextSpan(text: ' Tempo esgotado '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' para '),
|
const TextSpan(text: ' para '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'TRANSMISSÃO ENCERRADA';
|
case 'stream.chat.ended': return 'TRANSMISSÃO ENCERRADA';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapeou '),
|
const TextSpan(text: ' zapeou '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Escrever mensagem';
|
case 'stream.chat.write.label': return 'Escrever mensagem';
|
||||||
case 'stream.chat.write.no_signer': return 'Não é possível escrever mensagens com o login do npub';
|
case 'stream.chat.write.no_signer': return 'Não é possível escrever mensagens com o login do npub';
|
||||||
case 'stream.chat.write.login': return 'Faça login para enviar mensagens';
|
case 'stream.chat.write.login': return 'Faça login para enviar mensagens';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Prêmio concedido a:';
|
case 'stream.chat.badge.awarded_to': return 'Prêmio concedido a:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID DE ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID DE ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Incursões em ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Incursões em ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Meta: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Meta: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Restante: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Restante: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLETO';
|
case 'goal.complete': return 'COMPLETO';
|
||||||
case 'button.login': return 'Entrar';
|
case 'button.login': return 'Entrar';
|
||||||
case 'button.logout': return 'Sair';
|
case 'button.logout': return 'Sair';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsPt {
|
|||||||
case 'button.unmute': return 'Desmutar';
|
case 'button.unmute': return 'Desmutar';
|
||||||
case 'button.share': return 'Compartilhar';
|
case 'button.share': return 'Compartilhar';
|
||||||
case 'button.save': return 'Salvar';
|
case 'button.save': return 'Salvar';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artigo de ${name}';
|
case 'button.connect': return 'Conectar';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Nota de ${name}';
|
case 'button.settings': return 'Configurações';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Transmissão ao vivo pelo site ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artigo de ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Nota de ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Transmissão ao vivo pelo site ${name}';
|
||||||
case 'stream_list.following': return 'Seguindo';
|
case 'stream_list.following': return 'Seguindo';
|
||||||
case 'stream_list.live': return 'Ao vivo';
|
case 'stream_list.live': return 'Ao vivo';
|
||||||
case 'stream_list.planned': return 'Planejado';
|
case 'stream_list.planned': return 'Planejado';
|
||||||
case 'stream_list.ended': return 'Encerrado';
|
case 'stream_list.ended': return 'Encerrado';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Valor personalizado';
|
case 'zap.custom_amount': return 'Valor personalizado';
|
||||||
case 'zap.confirm': return 'Confirmar';
|
case 'zap.confirm': return 'Confirmar';
|
||||||
case 'zap.comment': return 'Comentar';
|
case 'zap.comment': return 'Comentar';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Enviar Zap de ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Enviar Zap de ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Abrir na carteira';
|
case 'zap.button_open_wallet': return 'Abrir na carteira';
|
||||||
|
case 'zap.button_connect_wallet': return 'Conectar carteira';
|
||||||
case 'zap.copy': return 'Copiado para a área de transferência';
|
case 'zap.copy': return 'Copiado para a área de transferência';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Valor personalizado inválido';
|
case 'zap.error.invalid_custom_amount': return 'Valor personalizado inválido';
|
||||||
case 'zap.error.no_wallet': return 'Nenhuma carteira lightning instalada';
|
case 'zap.error.no_wallet': return 'Nenhuma carteira lightning instalada';
|
||||||
case 'zap.error.no_lud16': return 'Nenhum endereço de raio encontrado';
|
case 'zap.error.no_lud16': return 'Nenhum endereço de raio encontrado';
|
||||||
case 'profile.past_streams': return 'Transmissões Passadas';
|
case 'profile.past_streams': return 'Transmissões Passadas';
|
||||||
case 'profile.edit.display_name': return 'Nome de exibição';
|
case 'settings.button_profile': return 'Editar perfil';
|
||||||
case 'profile.edit.about': return 'Sobre';
|
case 'settings.button_wallet': return 'Configurações da carteira';
|
||||||
case 'profile.edit.nip05': return 'Endereço do Nostr';
|
case 'settings.profile.display_name': return 'Nome de exibição';
|
||||||
case 'profile.edit.lud16': return 'Endereço Lightning';
|
case 'settings.profile.about': return 'Sobre';
|
||||||
case 'profile.edit.error.logged_out': return 'Não é possível editar o perfil quando se está desconectado';
|
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 '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.balance': return 'Equilíbrio';
|
||||||
|
case 'settings.wallet.name': return 'Carteira';
|
||||||
|
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.username': return 'Nome de usuário';
|
||||||
case 'login.amber': return 'Faça login com o Amber';
|
case 'login.amber': return 'Faça login com o Amber';
|
||||||
case 'login.key': return 'Login com chave';
|
case 'login.key': return 'Login com chave';
|
||||||
case 'login.create': return 'Criar Conta';
|
case 'login.create': return 'Criar Conta';
|
||||||
case 'login.error.invalid_key': return 'Chave inválida';
|
case 'login.error.invalid_key': return 'Chave inválida';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Configurar fluxo';
|
||||||
|
case 'live.endpoint': return 'Ponto final';
|
||||||
|
case 'live.accept_tos': return 'Aceitar os Termos de Serviço';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Título';
|
||||||
|
case 'live.summary': return 'Resumo';
|
||||||
|
case 'live.image': return 'Imagem da capa';
|
||||||
|
case 'live.tags': return 'Tags';
|
||||||
|
case 'live.nsfw': return 'Conteúdo NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Verifique aqui se essa transmissão contém nudez ou conteúdo pornográfico.';
|
||||||
|
case 'live.error.failed': return 'O fluxo falhou';
|
||||||
|
case 'live.error.connection_error': return 'Erro de conexão';
|
||||||
|
case 'live.error.start_failed': return 'Falha no início do fluxo, verifique seu saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsRo implements Translations {
|
class TranslationsRo extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsRo({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsRo({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsRo implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsRo implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsRo _root = this; // ignore: unused_field
|
late final TranslationsRo _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsRo implements Translations {
|
|||||||
/// Un utilizator anonim
|
/// Un utilizator anonim
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anon';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('ro').format(n)} sats';
|
||||||
|
|
||||||
/// Numărul de telespectatori ai fluxului
|
/// Numărul de telespectatori ai fluxului
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
||||||
one: '1 vizualizator',
|
one: '1 vizualizator',
|
||||||
other: '${n} telespectatori',
|
other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamRo stream = _TranslationsStreamRo._(_root);
|
@override late final _TranslationsStreamRo stream = _TranslationsStreamRo._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsRo implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapRo zap = _TranslationsZapRo._(_root);
|
@override late final _TranslationsZapRo zap = _TranslationsZapRo._(_root);
|
||||||
@override late final _TranslationsProfileRo profile = _TranslationsProfileRo._(_root);
|
@override late final _TranslationsProfileRo profile = _TranslationsProfileRo._(_root);
|
||||||
|
@override late final _TranslationsSettingsRo settings = _TranslationsSettingsRo._(_root);
|
||||||
@override late final _TranslationsLoginRo login = _TranslationsLoginRo._(_root);
|
@override late final _TranslationsLoginRo login = _TranslationsLoginRo._(_root);
|
||||||
|
@override late final _TranslationsLiveRo live = _TranslationsLiveRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamRo implements TranslationsStreamEn {
|
class _TranslationsStreamRo extends TranslationsStreamEn {
|
||||||
_TranslationsStreamRo._(this._root);
|
_TranslationsStreamRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusRo status = _TranslationsStreamStatusRo._(_root);
|
@override late final _TranslationsStreamStatusRo status = _TranslationsStreamStatusRo._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'A început ${timestamp}';
|
@override String started({required Object timestamp}) => 'A început ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} a intrat în direct!';
|
||||||
@override late final _TranslationsStreamChatRo chat = _TranslationsStreamChatRo._(_root);
|
@override late final _TranslationsStreamChatRo chat = _TranslationsStreamChatRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalRo implements TranslationsGoalEn {
|
class _TranslationsGoalRo extends TranslationsGoalEn {
|
||||||
_TranslationsGoalRo._(this._root);
|
_TranslationsGoalRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Obiectiv: ${amount}';
|
@override String title({required Object amount}) => 'Obiectiv: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Rămase: ${amount}';
|
@override String remaining({required Object amount}) => 'Rămase: ${amount}';
|
||||||
@override String get complete => 'COMPLET';
|
@override String get complete => 'COMPLET';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonRo implements TranslationsButtonEn {
|
class _TranslationsButtonRo extends TranslationsButtonEn {
|
||||||
_TranslationsButtonRo._(this._root);
|
_TranslationsButtonRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonRo implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Dezactivați';
|
@override String get unmute => 'Dezactivați';
|
||||||
@override String get share => 'Share';
|
@override String get share => 'Share';
|
||||||
@override String get save => 'Salvați';
|
@override String get save => 'Salvați';
|
||||||
|
@override String get connect => 'Conectare';
|
||||||
|
@override String get settings => 'Setări';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedRo implements TranslationsEmbedEn {
|
class _TranslationsEmbedRo extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedRo._(this._root);
|
_TranslationsEmbedRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Articol de ${name}';
|
@override String article_by({required Object name}) => 'Articol de ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Notă de la ${name}';
|
@override String note_by({required Object name}) => 'Notă de la ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Transmisiune live prin ${name}';
|
@override String live_stream_by({required Object name}) => 'Transmisiune live prin ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListRo implements TranslationsStreamListEn {
|
class _TranslationsStreamListRo extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListRo._(this._root);
|
_TranslationsStreamListRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListRo implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapRo implements TranslationsZapEn {
|
class _TranslationsZapRo extends TranslationsZapEn {
|
||||||
_TranslationsZapRo._(this._root);
|
_TranslationsZapRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Sumă personalizată';
|
@override String get custom_amount => 'Sumă personalizată';
|
||||||
@override String get confirm => 'Confirmați';
|
@override String get confirm => 'Confirmați';
|
||||||
@override String get comment => 'Comentariu';
|
@override String get comment => 'Comentariu';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Deschide în portofel';
|
@override String get button_open_wallet => 'Deschide în portofel';
|
||||||
|
@override String get button_connect_wallet => 'Conectați portofelul';
|
||||||
@override String get copy => 'Copiat în clipboard';
|
@override String get copy => 'Copiat în clipboard';
|
||||||
@override late final _TranslationsZapErrorRo error = _TranslationsZapErrorRo._(_root);
|
@override late final _TranslationsZapErrorRo error = _TranslationsZapErrorRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileRo implements TranslationsProfileEn {
|
class _TranslationsProfileRo extends TranslationsProfileEn {
|
||||||
_TranslationsProfileRo._(this._root);
|
_TranslationsProfileRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Fluxuri trecute';
|
@override String get past_streams => 'Fluxuri trecute';
|
||||||
@override late final _TranslationsProfileEditRo edit = _TranslationsProfileEditRo._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsRo extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Editare profil';
|
||||||
|
@override String get button_wallet => 'Setări portofel';
|
||||||
|
@override late final _TranslationsSettingsProfileRo profile = _TranslationsSettingsProfileRo._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletRo wallet = _TranslationsSettingsWalletRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginRo implements TranslationsLoginEn {
|
class _TranslationsLoginRo extends TranslationsLoginEn {
|
||||||
_TranslationsLoginRo._(this._root);
|
_TranslationsLoginRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginRo implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorRo error = _TranslationsLoginErrorRo._(_root);
|
@override late final _TranslationsLoginErrorRo error = _TranslationsLoginErrorRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveRo extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Configurați fluxul';
|
||||||
|
@override String get endpoint => 'Punct final';
|
||||||
|
@override String get accept_tos => 'Acceptați TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titlu';
|
||||||
|
@override String get summary => 'Rezumat';
|
||||||
|
@override String get image => 'Imagine de copertă';
|
||||||
|
@override String get tags => 'Etichete';
|
||||||
|
@override String get nsfw => 'Conținut NSFW';
|
||||||
|
@override String get nsfw_description => 'Bifați aici dacă acest flux conține nuditate sau conținut pornografic.';
|
||||||
|
@override late final _TranslationsLiveErrorRo error = _TranslationsLiveErrorRo._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusRo implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusRo extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusRo._(this._root);
|
_TranslationsStreamStatusRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusRo implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatRo implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatRo extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatRo._(this._root);
|
_TranslationsStreamChatRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT DEZACTIVAT';
|
@override String get disabled => 'CHAT DEZACTIVAT';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Timpul expiră: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Timpul expiră: ${time}';
|
||||||
|
|
||||||
/// Mesaj de chat care afișează evenimentele de timeout
|
/// Mesaj de chat care afișează evenimentele de timeout
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Timed out '),
|
const TextSpan(text: ' Timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' pentru '),
|
const TextSpan(text: ' pentru '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream a încheiat footer-ul în partea de jos a chat-ului
|
/// Stream a încheiat footer-ul în partea de jos a chat-ului
|
||||||
@override String get ended => 'STREAM ÎNCHEIAT';
|
@override String get ended => 'STREAM ÎNCHEIAT';
|
||||||
|
|
||||||
/// Mesaj de chat care arată zapsuri de flux
|
/// Mesaj de chat care arată zapsuri de flux
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteRo write = _TranslationsStreamChatWriteRo._(_root);
|
@override late final _TranslationsStreamChatWriteRo write = _TranslationsStreamChatWriteRo._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeRo badge = _TranslationsStreamChatBadgeRo._(_root);
|
@override late final _TranslationsStreamChatBadgeRo badge = _TranslationsStreamChatBadgeRo._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatRo implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorRo implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorRo extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorRo._(this._root);
|
_TranslationsZapErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorRo implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Nu a fost găsită nicio adresă de fulgere';
|
@override String get no_lud16 => 'Nu a fost găsită nicio adresă de fulgere';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditRo implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileRo extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditRo._(this._root);
|
_TranslationsSettingsProfileRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditRo implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'Despre';
|
@override String get about => 'Despre';
|
||||||
@override String get nip05 => 'Adresa Nostr';
|
@override String get nip05 => 'Adresa Nostr';
|
||||||
@override String get lud16 => 'Adresa fulgerului';
|
@override String get lud16 => 'Adresa fulgerului';
|
||||||
@override late final _TranslationsProfileEditErrorRo error = _TranslationsProfileEditErrorRo._(_root);
|
@override late final _TranslationsSettingsProfileErrorRo error = _TranslationsSettingsProfileErrorRo._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletRo extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Echilibru';
|
||||||
|
@override String get name => 'Portofel';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorRo error = _TranslationsSettingsWalletErrorRo._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorRo implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorRo extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorRo._(this._root);
|
_TranslationsLoginErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorRo implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Cheie invalidă';
|
@override String get invalid_key => 'Cheie invalidă';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorRo extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Fluxul a eșuat';
|
||||||
|
@override String get connection_error => 'Eroare de conectare';
|
||||||
|
@override String get start_failed => 'Pornirea fluxului a eșuat, vă rugăm să verificați soldul';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteRo implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteRo extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteRo._(this._root);
|
_TranslationsStreamChatWriteRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteRo implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeRo implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeRo extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeRo._(this._root);
|
_TranslationsStreamChatBadgeRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeRo implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidRo implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidRo extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidRo._(this._root);
|
_TranslationsStreamChatRaidRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chat mesaj raid la un alt flux
|
/// Chat mesaj raid la un alt flux
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid mesaj din alt flux
|
/// Chat raid mesaj din alt flux
|
||||||
@override String from({ required Object name}) => 'RAID DE LA ${name}';
|
@override String from({required Object name}) => 'RAID DE LA ${name}';
|
||||||
|
|
||||||
/// Cronometru cu numărătoare inversă pentru auto-raid
|
/// Cronometru cu numărătoare inversă pentru auto-raid
|
||||||
@override String countdown({ required Object time}) => 'Raiduri în ${time}';
|
@override String countdown({required Object time}) => 'Raiduri în ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorRo implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorRo extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorRo._(this._root);
|
_TranslationsSettingsProfileErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRo _root; // ignore: unused_field
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorRo implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Nu pot edita profilul când sunt deconectat';
|
@override String get logged_out => 'Nu pot edita profilul când sunt deconectat';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorRo extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRo _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsRo {
|
extension on TranslationsRo {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsRo {
|
|||||||
case 'most_zapped_streamers': return 'Cele mai multe Streamers Zapped';
|
case 'most_zapped_streamers': return 'Cele mai multe Streamers Zapped';
|
||||||
case 'no_user_found': return 'Niciun utilizator găsit';
|
case 'no_user_found': return 'Niciun utilizator găsit';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('ro').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
||||||
one: '1 vizualizator',
|
one: '1 vizualizator',
|
||||||
other: '${n} telespectatori',
|
other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'ÎN DIRECT';
|
case 'stream.status.live': return 'ÎN DIRECT';
|
||||||
case 'stream.status.ended': return 'TERMINAT';
|
case 'stream.status.ended': return 'TERMINAT';
|
||||||
case 'stream.status.planned': return 'PLANIFICATE';
|
case 'stream.status.planned': return 'PLANIFICATE';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'A început ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'A început ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} a intrat în direct!';
|
||||||
case 'stream.chat.disabled': return 'CHAT DEZACTIVAT';
|
case 'stream.chat.disabled': return 'CHAT DEZACTIVAT';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Timpul expiră: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timpul expiră: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' Timed out '),
|
const TextSpan(text: ' Timed out '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' pentru '),
|
const TextSpan(text: ' pentru '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM ÎNCHEIAT';
|
case 'stream.chat.ended': return 'STREAM ÎNCHEIAT';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Scrieți mesajul';
|
case 'stream.chat.write.label': return 'Scrieți mesajul';
|
||||||
case 'stream.chat.write.no_signer': return 'Nu se pot scrie mesaje cu autentificarea npub';
|
case 'stream.chat.write.no_signer': return 'Nu se pot scrie mesaje cu autentificarea npub';
|
||||||
case 'stream.chat.write.login': return 'Vă rugăm să vă autentificați pentru a trimite mesaje';
|
case 'stream.chat.write.login': return 'Vă rugăm să vă autentificați pentru a trimite mesaje';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Premiat pentru:';
|
case 'stream.chat.badge.awarded_to': return 'Premiat pentru:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID DE LA ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID DE LA ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raiduri în ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiduri în ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Obiectiv: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Obiectiv: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Rămase: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Rămase: ${amount}';
|
||||||
case 'goal.complete': return 'COMPLET';
|
case 'goal.complete': return 'COMPLET';
|
||||||
case 'button.login': return 'Autentificare';
|
case 'button.login': return 'Autentificare';
|
||||||
case 'button.logout': return 'Ieșire';
|
case 'button.logout': return 'Ieșire';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsRo {
|
|||||||
case 'button.unmute': return 'Dezactivați';
|
case 'button.unmute': return 'Dezactivați';
|
||||||
case 'button.share': return 'Share';
|
case 'button.share': return 'Share';
|
||||||
case 'button.save': return 'Salvați';
|
case 'button.save': return 'Salvați';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Articol de ${name}';
|
case 'button.connect': return 'Conectare';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Notă de la ${name}';
|
case 'button.settings': return 'Setări';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Transmisiune live prin ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Articol de ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Notă de la ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Transmisiune live prin ${name}';
|
||||||
case 'stream_list.following': return 'În urma';
|
case 'stream_list.following': return 'În urma';
|
||||||
case 'stream_list.live': return 'În direct';
|
case 'stream_list.live': return 'În direct';
|
||||||
case 'stream_list.planned': return 'Planificate';
|
case 'stream_list.planned': return 'Planificate';
|
||||||
case 'stream_list.ended': return 'Încheiat';
|
case 'stream_list.ended': return 'Încheiat';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Sumă personalizată';
|
case 'zap.custom_amount': return 'Sumă personalizată';
|
||||||
case 'zap.confirm': return 'Confirmați';
|
case 'zap.confirm': return 'Confirmați';
|
||||||
case 'zap.comment': return 'Comentariu';
|
case 'zap.comment': return 'Comentariu';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Deschide în portofel';
|
case 'zap.button_open_wallet': return 'Deschide în portofel';
|
||||||
|
case 'zap.button_connect_wallet': return 'Conectați portofelul';
|
||||||
case 'zap.copy': return 'Copiat în clipboard';
|
case 'zap.copy': return 'Copiat în clipboard';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Sumă personalizată invalidă';
|
case 'zap.error.invalid_custom_amount': return 'Sumă personalizată invalidă';
|
||||||
case 'zap.error.no_wallet': return 'Nu este instalat niciun portofel Lightning';
|
case 'zap.error.no_wallet': return 'Nu este instalat niciun portofel Lightning';
|
||||||
case 'zap.error.no_lud16': return 'Nu a fost găsită nicio adresă de fulgere';
|
case 'zap.error.no_lud16': return 'Nu a fost găsită nicio adresă de fulgere';
|
||||||
case 'profile.past_streams': return 'Fluxuri trecute';
|
case 'profile.past_streams': return 'Fluxuri trecute';
|
||||||
case 'profile.edit.display_name': return 'Nume afișat';
|
case 'settings.button_profile': return 'Editare profil';
|
||||||
case 'profile.edit.about': return 'Despre';
|
case 'settings.button_wallet': return 'Setări portofel';
|
||||||
case 'profile.edit.nip05': return 'Adresa Nostr';
|
case 'settings.profile.display_name': return 'Nume afișat';
|
||||||
case 'profile.edit.lud16': return 'Adresa fulgerului';
|
case 'settings.profile.about': return 'Despre';
|
||||||
case 'profile.edit.error.logged_out': return 'Nu pot edita profilul când sunt deconectat';
|
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 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.balance': return 'Echilibru';
|
||||||
|
case 'settings.wallet.name': return 'Portofel';
|
||||||
|
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.username': return 'Nume utilizator';
|
||||||
case 'login.amber': return 'Conectați-vă cu Amber';
|
case 'login.amber': return 'Conectați-vă cu Amber';
|
||||||
case 'login.key': return 'Autentificare cu cheie';
|
case 'login.key': return 'Autentificare cu cheie';
|
||||||
case 'login.create': return 'Creare cont';
|
case 'login.create': return 'Creare cont';
|
||||||
case 'login.error.invalid_key': return 'Cheie invalidă';
|
case 'login.error.invalid_key': return 'Cheie invalidă';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Configurați fluxul';
|
||||||
|
case 'live.endpoint': return 'Punct final';
|
||||||
|
case 'live.accept_tos': return 'Acceptați TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titlu';
|
||||||
|
case 'live.summary': return 'Rezumat';
|
||||||
|
case 'live.image': return 'Imagine de copertă';
|
||||||
|
case 'live.tags': return 'Etichete';
|
||||||
|
case 'live.nsfw': return 'Conținut NSFW';
|
||||||
|
case 'live.nsfw_description': return 'Bifați aici dacă acest flux conține nuditate sau conținut pornografic.';
|
||||||
|
case 'live.error.failed': return 'Fluxul a eșuat';
|
||||||
|
case 'live.error.connection_error': return 'Eroare de conectare';
|
||||||
|
case 'live.error.start_failed': return 'Pornirea fluxului a eșuat, vă rugăm să verificați soldul';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsRu implements Translations {
|
class TranslationsRu extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsRu({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsRu({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsRu implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsRu implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsRu _root = this; // ignore: unused_field
|
late final TranslationsRu _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsRu implements Translations {
|
|||||||
/// Анонимный пользователь
|
/// Анонимный пользователь
|
||||||
@override String get anon => 'Аноним';
|
@override String get anon => 'Аноним';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('ru').format(n)} sats';
|
||||||
|
|
||||||
/// Количество зрителей потока
|
/// Количество зрителей потока
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
||||||
one: '1 зритель',
|
one: '1 зритель',
|
||||||
other: '${n} зрителей',
|
other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamRu stream = _TranslationsStreamRu._(_root);
|
@override late final _TranslationsStreamRu stream = _TranslationsStreamRu._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsRu implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapRu zap = _TranslationsZapRu._(_root);
|
@override late final _TranslationsZapRu zap = _TranslationsZapRu._(_root);
|
||||||
@override late final _TranslationsProfileRu profile = _TranslationsProfileRu._(_root);
|
@override late final _TranslationsProfileRu profile = _TranslationsProfileRu._(_root);
|
||||||
|
@override late final _TranslationsSettingsRu settings = _TranslationsSettingsRu._(_root);
|
||||||
@override late final _TranslationsLoginRu login = _TranslationsLoginRu._(_root);
|
@override late final _TranslationsLoginRu login = _TranslationsLoginRu._(_root);
|
||||||
|
@override late final _TranslationsLiveRu live = _TranslationsLiveRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamRu implements TranslationsStreamEn {
|
class _TranslationsStreamRu extends TranslationsStreamEn {
|
||||||
_TranslationsStreamRu._(this._root);
|
_TranslationsStreamRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusRu status = _TranslationsStreamStatusRu._(_root);
|
@override late final _TranslationsStreamStatusRu status = _TranslationsStreamStatusRu._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Начало ${timestamp}';
|
@override String started({required Object timestamp}) => 'Начало ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} запустился!';
|
||||||
@override late final _TranslationsStreamChatRu chat = _TranslationsStreamChatRu._(_root);
|
@override late final _TranslationsStreamChatRu chat = _TranslationsStreamChatRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalRu implements TranslationsGoalEn {
|
class _TranslationsGoalRu extends TranslationsGoalEn {
|
||||||
_TranslationsGoalRu._(this._root);
|
_TranslationsGoalRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Цель: ${amount}';
|
@override String title({required Object amount}) => 'Цель: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Осталось: ${amount}';
|
@override String remaining({required Object amount}) => 'Осталось: ${amount}';
|
||||||
@override String get complete => 'КОМПЛЕКТ';
|
@override String get complete => 'КОМПЛЕКТ';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonRu implements TranslationsButtonEn {
|
class _TranslationsButtonRu extends TranslationsButtonEn {
|
||||||
_TranslationsButtonRu._(this._root);
|
_TranslationsButtonRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonRu implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Включить уведомления';
|
@override String get unmute => 'Включить уведомления';
|
||||||
@override String get share => 'Поделиться';
|
@override String get share => 'Поделиться';
|
||||||
@override String get save => 'Сохранить';
|
@override String get save => 'Сохранить';
|
||||||
|
@override String get connect => 'Подключайтесь';
|
||||||
|
@override String get settings => 'Настройки';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedRu implements TranslationsEmbedEn {
|
class _TranslationsEmbedRu extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedRu._(this._root);
|
_TranslationsEmbedRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Статья ${name}';
|
@override String article_by({required Object name}) => 'Статья ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Заметка на сайте ${name}';
|
@override String note_by({required Object name}) => 'Заметка на сайте ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Прямая трансляция: ${name}';
|
@override String live_stream_by({required Object name}) => 'Прямая трансляция: ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListRu implements TranslationsStreamListEn {
|
class _TranslationsStreamListRu extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListRu._(this._root);
|
_TranslationsStreamListRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListRu implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapRu implements TranslationsZapEn {
|
class _TranslationsZapRu extends TranslationsZapEn {
|
||||||
_TranslationsZapRu._(this._root);
|
_TranslationsZapRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Запнуть (${name}';
|
@override String title({required Object name}) => 'Запнуть (${name}';
|
||||||
@override String get custom_amount => 'Пользовательская сумма';
|
@override String get custom_amount => 'Пользовательская сумма';
|
||||||
@override String get confirm => 'Подтвердить';
|
@override String get confirm => 'Подтвердить';
|
||||||
@override String get comment => 'Комментарий';
|
@override String get comment => 'Комментарий';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Запнуть ${amount} сат';
|
@override String button_zap_ready({required Object amount}) => 'Запнуть ${amount} сат';
|
||||||
@override String get button_zap => 'Зап';
|
@override String get button_zap => 'Зап';
|
||||||
@override String get button_open_wallet => 'Открыть в кошельке';
|
@override String get button_open_wallet => 'Открыть в кошельке';
|
||||||
|
@override String get button_connect_wallet => 'Подключить кошелек';
|
||||||
@override String get copy => 'Скопировано в буфер обмена';
|
@override String get copy => 'Скопировано в буфер обмена';
|
||||||
@override late final _TranslationsZapErrorRu error = _TranslationsZapErrorRu._(_root);
|
@override late final _TranslationsZapErrorRu error = _TranslationsZapErrorRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileRu implements TranslationsProfileEn {
|
class _TranslationsProfileRu extends TranslationsProfileEn {
|
||||||
_TranslationsProfileRu._(this._root);
|
_TranslationsProfileRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Предыдущие трансляции';
|
@override String get past_streams => 'Предыдущие трансляции';
|
||||||
@override late final _TranslationsProfileEditRu edit = _TranslationsProfileEditRu._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsRu extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Редактировать профиль';
|
||||||
|
@override String get button_wallet => 'Настройки кошелька';
|
||||||
|
@override late final _TranslationsSettingsProfileRu profile = _TranslationsSettingsProfileRu._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletRu wallet = _TranslationsSettingsWalletRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginRu implements TranslationsLoginEn {
|
class _TranslationsLoginRu extends TranslationsLoginEn {
|
||||||
_TranslationsLoginRu._(this._root);
|
_TranslationsLoginRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginRu implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorRu error = _TranslationsLoginErrorRu._(_root);
|
@override late final _TranslationsLoginErrorRu error = _TranslationsLoginErrorRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveRu extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'ПЕРЕЙТИ В ПРЯМОЙ ЭФИР';
|
||||||
|
@override String get configure_stream => 'Настроить поток';
|
||||||
|
@override String get endpoint => 'Конечная точка';
|
||||||
|
@override String get accept_tos => 'Принять TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Название';
|
||||||
|
@override String get summary => 'Резюме';
|
||||||
|
@override String get image => 'Изображение на обложке';
|
||||||
|
@override String get tags => 'Теги';
|
||||||
|
@override String get nsfw => 'NSFW-контент';
|
||||||
|
@override String get nsfw_description => 'Отметьте здесь, если этот поток содержит наготу или порнографические материалы.';
|
||||||
|
@override late final _TranslationsLiveErrorRu error = _TranslationsLiveErrorRu._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusRu implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusRu extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusRu._(this._root);
|
_TranslationsStreamStatusRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusRu implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatRu implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatRu extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatRu._(this._root);
|
_TranslationsStreamChatRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'ЧАТ ОТКЛЮЧЕН';
|
@override String get disabled => 'ЧАТ ОТКЛЮЧЕН';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Таймаут истекает: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Таймаут истекает: ${time}';
|
||||||
|
|
||||||
/// Сообщение в чате, показывающее события по тайм-ауту
|
/// Сообщение в чате, показывающее события по тайм-ауту
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' тайм-аут '),
|
const TextSpan(text: ' тайм-аут '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' для '),
|
const TextSpan(text: ' для '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Поток закончился в нижней части чата
|
/// Поток закончился в нижней части чата
|
||||||
@override String get ended => 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
@override String get ended => 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
||||||
|
|
||||||
/// Сообщение в чате, отображающее потоковые зазоры
|
/// Сообщение в чате, отображающее потоковые зазоры
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' запнул '),
|
const TextSpan(text: ' запнул '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' сат'),
|
const TextSpan(text: ' сат'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteRu write = _TranslationsStreamChatWriteRu._(_root);
|
@override late final _TranslationsStreamChatWriteRu write = _TranslationsStreamChatWriteRu._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeRu badge = _TranslationsStreamChatBadgeRu._(_root);
|
@override late final _TranslationsStreamChatBadgeRu badge = _TranslationsStreamChatBadgeRu._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatRu implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorRu implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorRu extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorRu._(this._root);
|
_TranslationsZapErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorRu implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Адрес молнии не найден';
|
@override String get no_lud16 => 'Адрес молнии не найден';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditRu implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileRu extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditRu._(this._root);
|
_TranslationsSettingsProfileRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Отображаемое имя';
|
@override String get display_name => 'Отображаемое имя';
|
||||||
@override String get about => 'О себе';
|
@override String get about => 'О сайте';
|
||||||
@override String get nip05 => 'Nostr адрес';
|
@override String get nip05 => 'Адрес Ностр';
|
||||||
@override String get lud16 => 'Lightning Адрес';
|
@override String get lud16 => 'Адрес молнии';
|
||||||
@override late final _TranslationsProfileEditErrorRu error = _TranslationsProfileEditErrorRu._(_root);
|
@override late final _TranslationsSettingsProfileErrorRu error = _TranslationsSettingsProfileErrorRu._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletRu extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Баланс';
|
||||||
|
@override String get name => 'Кошелек';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorRu error = _TranslationsSettingsWalletErrorRu._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorRu implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorRu extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorRu._(this._root);
|
_TranslationsLoginErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorRu implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Неверный ключ';
|
@override String get invalid_key => 'Неверный ключ';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorRu extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Сбой потока';
|
||||||
|
@override String get connection_error => 'Ошибка подключения';
|
||||||
|
@override String get start_failed => 'Запуск потока не удался, пожалуйста, проверьте баланс';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteRu implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteRu extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteRu._(this._root);
|
_TranslationsStreamChatWriteRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteRu implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeRu implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeRu extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeRu._(this._root);
|
_TranslationsStreamChatBadgeRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeRu implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidRu implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidRu extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidRu._(this._root);
|
_TranslationsStreamChatRaidRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Сообщение о рейде в чате в другой поток
|
/// Сообщение о рейде в чате в другой поток
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Сообщение о рейде в чате из другого потока
|
/// Сообщение о рейде в чате из другого потока
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Таймер обратного отсчета для автопоездки
|
/// Таймер обратного отсчета для автопоездки
|
||||||
@override String countdown({ required Object time}) => 'Рейды в ${time}';
|
@override String countdown({required Object time}) => 'Рейды в ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorRu implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorRu extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorRu._(this._root);
|
_TranslationsSettingsProfileErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsRu _root; // ignore: unused_field
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorRu implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Невозможно редактировать профиль при выходе из системы';
|
@override String get logged_out => 'Невозможно редактировать профиль при выходе из системы';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorRu extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsRu _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'Невозможно подключить кошелек при выходе из системы';
|
||||||
|
@override String get nwc_auth_event_not_found => 'Событие аутентификации кошелька не найдено';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsRu {
|
extension on TranslationsRu {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsRu {
|
|||||||
case 'most_zapped_streamers': return 'Самые прыткие стримеры';
|
case 'most_zapped_streamers': return 'Самые прыткие стримеры';
|
||||||
case 'no_user_found': return 'Пользователь не найден';
|
case 'no_user_found': return 'Пользователь не найден';
|
||||||
case 'anon': return 'Аноним';
|
case 'anon': return 'Аноним';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('ru').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
||||||
one: '1 зритель',
|
one: '1 зритель',
|
||||||
other: '${n} зрителей',
|
other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'КОНЕЦ';
|
case 'stream.status.ended': return 'КОНЕЦ';
|
||||||
case 'stream.status.planned': return 'ПЛАНИРУЕМЫЙ';
|
case 'stream.status.planned': return 'ПЛАНИРУЕМЫЙ';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Начало ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Начало ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} запустился!';
|
||||||
case 'stream.chat.disabled': return 'ЧАТ ОТКЛЮЧЕН';
|
case 'stream.chat.disabled': return 'ЧАТ ОТКЛЮЧЕН';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Таймаут истекает: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Таймаут истекает: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' тайм-аут '),
|
const TextSpan(text: ' тайм-аут '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' для '),
|
const TextSpan(text: ' для '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
case 'stream.chat.ended': return 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' запнул '),
|
const TextSpan(text: ' запнул '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' сат'),
|
const TextSpan(text: ' сат'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Написать сообщение';
|
case 'stream.chat.write.label': return 'Написать сообщение';
|
||||||
case 'stream.chat.write.no_signer': return 'Невозможно писать сообщения с логином npub';
|
case 'stream.chat.write.no_signer': return 'Невозможно писать сообщения с логином npub';
|
||||||
case 'stream.chat.write.login': return 'Пожалуйста, войдите в систему, чтобы отправлять сообщения';
|
case 'stream.chat.write.login': return 'Пожалуйста, войдите в систему, чтобы отправлять сообщения';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Награждается:';
|
case 'stream.chat.badge.awarded_to': return 'Награждается:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Рейды в ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Рейды в ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Цель: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Цель: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Осталось: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Осталось: ${amount}';
|
||||||
case 'goal.complete': return 'КОМПЛЕКТ';
|
case 'goal.complete': return 'КОМПЛЕКТ';
|
||||||
case 'button.login': return 'Логин';
|
case 'button.login': return 'Логин';
|
||||||
case 'button.logout': return 'Выйти';
|
case 'button.logout': return 'Выйти';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsRu {
|
|||||||
case 'button.unmute': return 'Включить уведомления';
|
case 'button.unmute': return 'Включить уведомления';
|
||||||
case 'button.share': return 'Поделиться';
|
case 'button.share': return 'Поделиться';
|
||||||
case 'button.save': return 'Сохранить';
|
case 'button.save': return 'Сохранить';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Статья ${name}';
|
case 'button.connect': return 'Подключайтесь';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Заметка на сайте ${name}';
|
case 'button.settings': return 'Настройки';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Прямая трансляция: ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Статья ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Заметка на сайте ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Прямая трансляция: ${name}';
|
||||||
case 'stream_list.following': return 'Подписки';
|
case 'stream_list.following': return 'Подписки';
|
||||||
case 'stream_list.live': return 'Прямой эфир';
|
case 'stream_list.live': return 'Прямой эфир';
|
||||||
case 'stream_list.planned': return 'Запланировано';
|
case 'stream_list.planned': return 'Запланировано';
|
||||||
case 'stream_list.ended': return 'Завершено';
|
case 'stream_list.ended': return 'Завершено';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Запнуть (${name}';
|
case 'zap.title': return ({required Object name}) => 'Запнуть (${name}';
|
||||||
case 'zap.custom_amount': return 'Пользовательская сумма';
|
case 'zap.custom_amount': return 'Пользовательская сумма';
|
||||||
case 'zap.confirm': return 'Подтвердить';
|
case 'zap.confirm': return 'Подтвердить';
|
||||||
case 'zap.comment': return 'Комментарий';
|
case 'zap.comment': return 'Комментарий';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Запнуть ${amount} сат';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Запнуть ${amount} сат';
|
||||||
case 'zap.button_zap': return 'Зап';
|
case 'zap.button_zap': return 'Зап';
|
||||||
case 'zap.button_open_wallet': return 'Открыть в кошельке';
|
case 'zap.button_open_wallet': return 'Открыть в кошельке';
|
||||||
|
case 'zap.button_connect_wallet': return 'Подключить кошелек';
|
||||||
case 'zap.copy': return 'Скопировано в буфер обмена';
|
case 'zap.copy': return 'Скопировано в буфер обмена';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Недопустимая пользовательская сумма';
|
case 'zap.error.invalid_custom_amount': return 'Недопустимая пользовательская сумма';
|
||||||
case 'zap.error.no_wallet': return 'Кошелек молнии не установлен';
|
case 'zap.error.no_wallet': return 'Кошелек молнии не установлен';
|
||||||
case 'zap.error.no_lud16': return 'Адрес молнии не найден';
|
case 'zap.error.no_lud16': return 'Адрес молнии не найден';
|
||||||
case 'profile.past_streams': return 'Предыдущие трансляции';
|
case 'profile.past_streams': return 'Предыдущие трансляции';
|
||||||
case 'profile.edit.display_name': return 'Отображаемое имя';
|
case 'settings.button_profile': return 'Редактировать профиль';
|
||||||
case 'profile.edit.about': return 'О себе';
|
case 'settings.button_wallet': return 'Настройки кошелька';
|
||||||
case 'profile.edit.nip05': return 'Nostr адрес';
|
case 'settings.profile.display_name': return 'Отображаемое имя';
|
||||||
case 'profile.edit.lud16': return 'Lightning Адрес';
|
case 'settings.profile.about': return 'О сайте';
|
||||||
case 'profile.edit.error.logged_out': return 'Невозможно редактировать профиль при выходе из системы';
|
case 'settings.profile.nip05': return 'Адрес Ностр';
|
||||||
|
case 'settings.profile.lud16': return 'Адрес молнии';
|
||||||
|
case 'settings.profile.error.logged_out': return 'Невозможно редактировать профиль при выходе из системы';
|
||||||
|
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.balance': return 'Баланс';
|
||||||
|
case 'settings.wallet.name': return 'Кошелек';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'Невозможно подключить кошелек при выходе из системы';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'Событие аутентификации кошелька не найдено';
|
||||||
case 'login.username': return 'Имя пользователя';
|
case 'login.username': return 'Имя пользователя';
|
||||||
case 'login.amber': return 'Войти с помощью Amber';
|
case 'login.amber': return 'Войти с помощью Amber';
|
||||||
case 'login.key': return 'Вход в систему с помощью ключа';
|
case 'login.key': return 'Вход в систему с помощью ключа';
|
||||||
case 'login.create': return 'Создать аккаунт';
|
case 'login.create': return 'Создать аккаунт';
|
||||||
case 'login.error.invalid_key': return 'Неверный ключ';
|
case 'login.error.invalid_key': return 'Неверный ключ';
|
||||||
|
case 'live.start': return 'ПЕРЕЙТИ В ПРЯМОЙ ЭФИР';
|
||||||
|
case 'live.configure_stream': return 'Настроить поток';
|
||||||
|
case 'live.endpoint': return 'Конечная точка';
|
||||||
|
case 'live.accept_tos': return 'Принять TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ru'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Название';
|
||||||
|
case 'live.summary': return 'Резюме';
|
||||||
|
case 'live.image': return 'Изображение на обложке';
|
||||||
|
case 'live.tags': return 'Теги';
|
||||||
|
case 'live.nsfw': return 'NSFW-контент';
|
||||||
|
case 'live.nsfw_description': return 'Отметьте здесь, если этот поток содержит наготу или порнографические материалы.';
|
||||||
|
case 'live.error.failed': return 'Сбой потока';
|
||||||
|
case 'live.error.connection_error': return 'Ошибка подключения';
|
||||||
|
case 'live.error.start_failed': return 'Запуск потока не удался, пожалуйста, проверьте баланс';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsSr implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <sr>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsSr _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsSr $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginSr login = _TranslationsLoginSr._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamSr implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamSr._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalSr._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonSr._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedSr implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedSr._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListSr._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapSr._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorSr error = _TranslationsZapErrorSr._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileSr implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileSr._(this._root);
|
|
||||||
|
|
||||||
final TranslationsSr _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditSr edit = _TranslationsProfileEditSr._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginSr implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginSr._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusSr._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatSr._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorSr._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditSr implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditSr._(this._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 _TranslationsProfileEditErrorSr error = _TranslationsProfileEditErrorSr._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorSr implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorSr._(this._root);
|
|
||||||
|
|
||||||
final TranslationsSr _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteSr implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteSr._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeSr._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidSr._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorSr implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorSr._(this._root);
|
|
||||||
|
|
||||||
final TranslationsSr _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsSv implements Translations {
|
class TranslationsSv extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsSv({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsSv({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsSv implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsSv implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsSv _root = this; // ignore: unused_field
|
late final TranslationsSv _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -38,22 +39,24 @@ class TranslationsSv implements Translations {
|
|||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Text som uppmanar användaren att trycka på avatarplatshållaren för att påbörja uppladdningen
|
/// Text som uppmanar användaren att trycka på avatar platshållaren för att påbörja uppladdningen
|
||||||
@override String get upload_avatar => 'Ladda upp avatar';
|
@override String get upload_avatar => 'Ladda upp avatar';
|
||||||
|
|
||||||
/// Rubrik över listade toppstreamers av zaps
|
/// Rubrik över listade topp streamers av zaps
|
||||||
@override String get most_zapped_streamers => 'De flesta zappade streamers';
|
@override String get most_zapped_streamers => 'De flest zappade streamers';
|
||||||
|
|
||||||
/// Ingen användare hittades vid sökning
|
/// Ingen användare hittades vid sökning
|
||||||
@override String get no_user_found => 'Ingen användare hittades';
|
@override String get no_user_found => 'Ingen användare hittades';
|
||||||
|
|
||||||
/// En anonym användare
|
/// En anonym användare
|
||||||
@override String get anon => 'Anon';
|
@override String get anon => 'Anno';
|
||||||
|
|
||||||
/// Antal tittare på streamingen
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('sv').format(n)} sats';
|
||||||
|
|
||||||
|
/// Antal tittare på strömmingen
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
||||||
one: '1 tittare',
|
one: '1 tittare',
|
||||||
other: '${n} tittare',
|
other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamSv stream = _TranslationsStreamSv._(_root);
|
@override late final _TranslationsStreamSv stream = _TranslationsStreamSv._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsSv implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapSv zap = _TranslationsZapSv._(_root);
|
@override late final _TranslationsZapSv zap = _TranslationsZapSv._(_root);
|
||||||
@override late final _TranslationsProfileSv profile = _TranslationsProfileSv._(_root);
|
@override late final _TranslationsProfileSv profile = _TranslationsProfileSv._(_root);
|
||||||
|
@override late final _TranslationsSettingsSv settings = _TranslationsSettingsSv._(_root);
|
||||||
@override late final _TranslationsLoginSv login = _TranslationsLoginSv._(_root);
|
@override late final _TranslationsLoginSv login = _TranslationsLoginSv._(_root);
|
||||||
|
@override late final _TranslationsLiveSv live = _TranslationsLiveSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamSv implements TranslationsStreamEn {
|
class _TranslationsStreamSv extends TranslationsStreamEn {
|
||||||
_TranslationsStreamSv._(this._root);
|
_TranslationsStreamSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusSv status = _TranslationsStreamStatusSv._(_root);
|
@override late final _TranslationsStreamStatusSv status = _TranslationsStreamStatusSv._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Startade ${timestamp}';
|
@override String started({required Object timestamp}) => 'Startad ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} gick live!';
|
||||||
@override late final _TranslationsStreamChatSv chat = _TranslationsStreamChatSv._(_root);
|
@override late final _TranslationsStreamChatSv chat = _TranslationsStreamChatSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalSv implements TranslationsGoalEn {
|
class _TranslationsGoalSv extends TranslationsGoalEn {
|
||||||
_TranslationsGoalSv._(this._root);
|
_TranslationsGoalSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Mål: ${amount}';
|
@override String title({required Object amount}) => 'Mål: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Kvarvarande: ${amount}';
|
@override String remaining({required Object amount}) => 'Kvarvarande: ${amount}';
|
||||||
@override String get complete => 'KOMPLETT';
|
@override String get complete => 'KOMPLETT';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonSv implements TranslationsButtonEn {
|
class _TranslationsButtonSv extends TranslationsButtonEn {
|
||||||
_TranslationsButtonSv._(this._root);
|
_TranslationsButtonSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -110,30 +116,32 @@ class _TranslationsButtonSv implements TranslationsButtonEn {
|
|||||||
/// Knapptext för följ-knappen
|
/// Knapptext för följ-knappen
|
||||||
@override String get follow => 'Följ';
|
@override String get follow => 'Följ';
|
||||||
|
|
||||||
/// Knapptext för avföljningsknappen
|
/// Knapptext för sluta följa knappen
|
||||||
@override String get unfollow => 'Sluta följa';
|
@override String get unfollow => 'Sluta följa';
|
||||||
|
|
||||||
@override String get mute => 'Tysta';
|
@override String get mute => 'Tysta';
|
||||||
@override String get unmute => 'Avtysta';
|
@override String get unmute => 'Avtysta';
|
||||||
@override String get share => 'Dela';
|
@override String get share => 'Dela';
|
||||||
@override String get save => 'Spara';
|
@override String get save => 'Spara';
|
||||||
|
@override String get connect => 'Anslut';
|
||||||
|
@override String get settings => 'Inställningar';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedSv implements TranslationsEmbedEn {
|
class _TranslationsEmbedSv extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedSv._(this._root);
|
_TranslationsEmbedSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Artikel av ${name}';
|
@override String article_by({required Object name}) => 'Artikel av ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Anteckning av ${name}';
|
@override String note_by({required Object name}) => 'Anteckning av ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Direktsändning via ${name}';
|
@override String live_stream_by({required Object name}) => 'Direktsändning via ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListSv implements TranslationsStreamListEn {
|
class _TranslationsStreamListSv extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListSv._(this._root);
|
_TranslationsStreamListSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListSv implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapSv implements TranslationsZapEn {
|
class _TranslationsZapSv extends TranslationsZapEn {
|
||||||
_TranslationsZapSv._(this._root);
|
_TranslationsZapSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Anpassat belopp';
|
@override String get custom_amount => 'Anpassat belopp';
|
||||||
@override String get confirm => 'Bekräfta';
|
@override String get confirm => 'Bekräfta';
|
||||||
@override String get comment => 'Kommentar';
|
@override String get comment => 'Kommentar';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Öppna i plånboken';
|
@override String get button_open_wallet => 'Öppna i plånboken';
|
||||||
|
@override String get button_connect_wallet => 'Anslut plånbok';
|
||||||
@override String get copy => 'Kopieras till urklipp';
|
@override String get copy => 'Kopieras till urklipp';
|
||||||
@override late final _TranslationsZapErrorSv error = _TranslationsZapErrorSv._(_root);
|
@override late final _TranslationsZapErrorSv error = _TranslationsZapErrorSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileSv implements TranslationsProfileEn {
|
class _TranslationsProfileSv extends TranslationsProfileEn {
|
||||||
_TranslationsProfileSv._(this._root);
|
_TranslationsProfileSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Tidigare streamar';
|
@override String get past_streams => 'Tidigare streamar';
|
||||||
@override late final _TranslationsProfileEditSv edit = _TranslationsProfileEditSv._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsSv extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Redigera profil';
|
||||||
|
@override String get button_wallet => 'Inställningar för plånbok';
|
||||||
|
@override late final _TranslationsSettingsProfileSv profile = _TranslationsSettingsProfileSv._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletSv wallet = _TranslationsSettingsWalletSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginSv implements TranslationsLoginEn {
|
class _TranslationsLoginSv extends TranslationsLoginEn {
|
||||||
_TranslationsLoginSv._(this._root);
|
_TranslationsLoginSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginSv implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorSv error = _TranslationsLoginErrorSv._(_root);
|
@override late final _TranslationsLoginErrorSv error = _TranslationsLoginErrorSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveSv extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GÅ DIREKT';
|
||||||
|
@override String get configure_stream => 'Konfigurera ström';
|
||||||
|
@override String get endpoint => 'Slutpunkt';
|
||||||
|
@override String get accept_tos => 'Acceptera TOS';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Titel';
|
||||||
|
@override String get summary => 'Sammanfattning';
|
||||||
|
@override String get image => 'Omslagsbild';
|
||||||
|
@override String get tags => 'Etiketter';
|
||||||
|
@override String get nsfw => 'NSFW-innehåll';
|
||||||
|
@override String get nsfw_description => 'Markera här om denna stream innehåller nakenhet eller pornografiskt innehåll.';
|
||||||
|
@override late final _TranslationsLiveErrorSv error = _TranslationsLiveErrorSv._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusSv implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusSv extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusSv._(this._root);
|
_TranslationsStreamStatusSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusSv implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatSv implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatSv extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatSv._(this._root);
|
_TranslationsStreamChatSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'CHAT AVSTÄNGD';
|
@override String get disabled => 'CHAT AVSTÄNGD';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Tidsgränsen går ut: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Tidsgränsen går ut: ${time}';
|
||||||
|
|
||||||
/// Chattmeddelande som visar timeout-händelser
|
/// Chattmeddelande som visar timeout-händelser
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' tidsbegränsad '),
|
const TextSpan(text: ' tidsbegränsad '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' för '),
|
const TextSpan(text: ' för '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Stream avslutade sidfoten längst ner på chatten
|
/// Streama slutade sidfot längst ned i chatten
|
||||||
@override String get ended => 'STREAM AVSLUTAD';
|
@override String get ended => 'STREAM AVSLUTAD';
|
||||||
|
|
||||||
/// Chattmeddelande som visar strömavbrott
|
/// Chattmeddelande som visar strömavbrott
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteSv write = _TranslationsStreamChatWriteSv._(_root);
|
@override late final _TranslationsStreamChatWriteSv write = _TranslationsStreamChatWriteSv._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeSv badge = _TranslationsStreamChatBadgeSv._(_root);
|
@override late final _TranslationsStreamChatBadgeSv badge = _TranslationsStreamChatBadgeSv._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatSv implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorSv implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorSv extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorSv._(this._root);
|
_TranslationsZapErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorSv implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Ingen blixtadress hittades';
|
@override String get no_lud16 => 'Ingen blixtadress hittades';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditSv implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileSv extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditSv._(this._root);
|
_TranslationsSettingsProfileSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => 'Visa namn';
|
@override String get display_name => 'Visa namn';
|
||||||
@override String get about => 'Om';
|
@override String get about => 'Om';
|
||||||
@override String get nip05 => 'Nostr Adress';
|
@override String get nip05 => 'Nostr adress';
|
||||||
@override String get lud16 => 'Lightning-adress';
|
@override String get lud16 => 'Lightning-adress';
|
||||||
@override late final _TranslationsProfileEditErrorSv error = _TranslationsProfileEditErrorSv._(_root);
|
@override late final _TranslationsSettingsProfileErrorSv error = _TranslationsSettingsProfileErrorSv._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletSv extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get connect_wallet => 'Anslut plånbok (NWC nostr+walletconnect://)';
|
||||||
|
@override String get disconnect_wallet => 'Koppla bort plånboken';
|
||||||
|
@override String get connect_1tap => '1-tryck anslutning';
|
||||||
|
@override String get paste => 'Klistra in URL';
|
||||||
|
@override String get balance => 'Balans';
|
||||||
|
@override String get name => 'Plånbok';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorSv error = _TranslationsSettingsWalletErrorSv._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorSv implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorSv extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorSv._(this._root);
|
_TranslationsLoginErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorSv implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Ogiltig nyckel';
|
@override String get invalid_key => 'Ogiltig nyckel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorSv extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Strömmen misslyckades';
|
||||||
|
@override String get connection_error => 'Anslutningsfel';
|
||||||
|
@override String get start_failed => 'Stream start misslyckades, vänligen kontrollera ditt saldo';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteSv implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteSv extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteSv._(this._root);
|
_TranslationsStreamChatWriteSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -281,46 +354,46 @@ class _TranslationsStreamChatWriteSv implements TranslationsStreamChatWriteEn {
|
|||||||
/// Etikett på inmatningsrutan för chattmeddelanden
|
/// Etikett på inmatningsrutan för chattmeddelanden
|
||||||
@override String get label => 'Skriv meddelande';
|
@override String get label => 'Skriv meddelande';
|
||||||
|
|
||||||
/// Chattinmatningsmeddelande som visas när användaren endast är inloggad med pubkey
|
/// Chattinmatningsmeddelande som visas när användaren endast är inloggad med publik nyckel
|
||||||
@override String get no_signer => 'Det går inte att skriva meddelanden med npub-inloggning';
|
@override String get no_signer => 'Det går inte att skriva meddelanden med n-pub inloggning';
|
||||||
|
|
||||||
/// Chattinmatningsmeddelande som visas när användaren är utloggad
|
/// Chattinmatningsmeddelande som visas när användaren är utloggad
|
||||||
@override String get login => 'Logga in för att skicka meddelanden';
|
@override String get login => 'Logga in för att skicka meddelanden';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeSv implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeSv extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeSv._(this._root);
|
_TranslationsStreamChatBadgeSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Rubrik över lista över användare som tilldelats en badge
|
/// Rubrik över listan över användare som tilldelas ett märke
|
||||||
@override String get awarded_to => 'Tilldelas till:';
|
@override String get awarded_to => 'Tilldelas till:';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidSv implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidSv extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidSv._(this._root);
|
_TranslationsStreamChatRaidSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Chatta raidmeddelande till en annan ström
|
/// Chatt raid meddelande till en annan ström
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Chat raid-meddelande från en annan ström
|
/// Chatt raid meddelande från en annan ström
|
||||||
@override String from({ required Object name}) => 'RAID FRÅN ${name}';
|
@override String from({required Object name}) => 'RAID FRÅN ${name}';
|
||||||
|
|
||||||
/// Nedräkningstimer för auto-raiding
|
/// Nedräkningstimer för auto- radiering
|
||||||
@override String countdown({ required Object time}) => 'Raiding på ${time}';
|
@override String countdown({required Object time}) => 'Radiering i ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorSv implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorSv extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorSv._(this._root);
|
_TranslationsSettingsProfileErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,48 +401,61 @@ class _TranslationsProfileEditErrorSv implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Kan inte redigera profil när jag är utloggad';
|
@override String get logged_out => 'Kan inte redigera profil när jag är utloggad';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorSv extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'Kan inte ansluta plånbok när du är utloggad';
|
||||||
|
@override String get nwc_auth_event_not_found => 'Inget autentiseringshändelse för plånbok hittades';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsSv {
|
extension on TranslationsSv {
|
||||||
dynamic _flatMapFunction(String path) {
|
dynamic _flatMapFunction(String path) {
|
||||||
switch (path) {
|
switch (path) {
|
||||||
case 'upload_avatar': return 'Ladda upp avatar';
|
case 'upload_avatar': return 'Ladda upp avatar';
|
||||||
case 'most_zapped_streamers': return 'De flesta zappade streamers';
|
case 'most_zapped_streamers': return 'De flest zappade streamers';
|
||||||
case 'no_user_found': return 'Ingen användare hittades';
|
case 'no_user_found': return 'Ingen användare hittades';
|
||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anno';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('sv').format(n)} sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
||||||
one: '1 tittare',
|
one: '1 tittare',
|
||||||
other: '${n} tittare',
|
other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'LIVE';
|
case 'stream.status.live': return 'LIVE';
|
||||||
case 'stream.status.ended': return 'AVSLUTAD';
|
case 'stream.status.ended': return 'AVSLUTAD';
|
||||||
case 'stream.status.planned': return 'PLANERADE';
|
case 'stream.status.planned': return 'PLANERADE';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Startade ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Startad ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} gick live!';
|
||||||
case 'stream.chat.disabled': return 'CHAT AVSTÄNGD';
|
case 'stream.chat.disabled': return 'CHAT AVSTÄNGD';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Tidsgränsen går ut: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Tidsgränsen går ut: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' tidsbegränsad '),
|
const TextSpan(text: ' tidsbegränsad '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' för '),
|
const TextSpan(text: ' för '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'STREAM AVSLUTAD';
|
case 'stream.chat.ended': return 'STREAM AVSLUTAD';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Skriv meddelande';
|
case 'stream.chat.write.label': return 'Skriv meddelande';
|
||||||
case 'stream.chat.write.no_signer': return 'Det går inte att skriva meddelanden med npub-inloggning';
|
case 'stream.chat.write.no_signer': return 'Det går inte att skriva meddelanden med n-pub inloggning';
|
||||||
case 'stream.chat.write.login': return 'Logga in för att skicka meddelanden';
|
case 'stream.chat.write.login': return 'Logga in för att skicka meddelanden';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Tilldelas till:';
|
case 'stream.chat.badge.awarded_to': return 'Tilldelas till:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => 'RAID FRÅN ${name}';
|
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FRÅN ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Raiding på ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Radiering i ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Mål: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Mål: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Kvarvarande: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Kvarvarande: ${amount}';
|
||||||
case 'goal.complete': return 'KOMPLETT';
|
case 'goal.complete': return 'KOMPLETT';
|
||||||
case 'button.login': return 'Logga in';
|
case 'button.login': return 'Logga in';
|
||||||
case 'button.logout': return 'Logga ut';
|
case 'button.logout': return 'Logga ut';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsSv {
|
|||||||
case 'button.unmute': return 'Avtysta';
|
case 'button.unmute': return 'Avtysta';
|
||||||
case 'button.share': return 'Dela';
|
case 'button.share': return 'Dela';
|
||||||
case 'button.save': return 'Spara';
|
case 'button.save': return 'Spara';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Artikel av ${name}';
|
case 'button.connect': return 'Anslut';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Anteckning av ${name}';
|
case 'button.settings': return 'Inställningar';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Direktsändning via ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Artikel av ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Anteckning av ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Direktsändning via ${name}';
|
||||||
case 'stream_list.following': return 'Följer';
|
case 'stream_list.following': return 'Följer';
|
||||||
case 'stream_list.live': return 'Live';
|
case 'stream_list.live': return 'Live';
|
||||||
case 'stream_list.planned': return 'Planerade';
|
case 'stream_list.planned': return 'Planerade';
|
||||||
case 'stream_list.ended': return 'Avslutade';
|
case 'stream_list.ended': return 'Avslutade';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Anpassat belopp';
|
case 'zap.custom_amount': return 'Anpassat belopp';
|
||||||
case 'zap.confirm': return 'Bekräfta';
|
case 'zap.confirm': return 'Bekräfta';
|
||||||
case 'zap.comment': return 'Kommentar';
|
case 'zap.comment': return 'Kommentar';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Öppna i plånboken';
|
case 'zap.button_open_wallet': return 'Öppna i plånboken';
|
||||||
|
case 'zap.button_connect_wallet': return 'Anslut plånbok';
|
||||||
case 'zap.copy': return 'Kopieras till urklipp';
|
case 'zap.copy': return 'Kopieras till urklipp';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Ogiltigt anpassat belopp';
|
case 'zap.error.invalid_custom_amount': return 'Ogiltigt anpassat belopp';
|
||||||
case 'zap.error.no_wallet': return 'Ingen blixtplånbok installerad';
|
case 'zap.error.no_wallet': return 'Ingen blixtplånbok installerad';
|
||||||
case 'zap.error.no_lud16': return 'Ingen blixtadress hittades';
|
case 'zap.error.no_lud16': return 'Ingen blixtadress hittades';
|
||||||
case 'profile.past_streams': return 'Tidigare streamar';
|
case 'profile.past_streams': return 'Tidigare streamar';
|
||||||
case 'profile.edit.display_name': return 'Visa namn';
|
case 'settings.button_profile': return 'Redigera profil';
|
||||||
case 'profile.edit.about': return 'Om';
|
case 'settings.button_wallet': return 'Inställningar för plånbok';
|
||||||
case 'profile.edit.nip05': return 'Nostr Adress';
|
case 'settings.profile.display_name': return 'Visa namn';
|
||||||
case 'profile.edit.lud16': return 'Lightning-adress';
|
case 'settings.profile.about': return 'Om';
|
||||||
case 'profile.edit.error.logged_out': return 'Kan inte redigera profil när jag är utloggad';
|
case 'settings.profile.nip05': return 'Nostr adress';
|
||||||
|
case 'settings.profile.lud16': return 'Lightning-adress';
|
||||||
|
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 nostr+walletconnect://)';
|
||||||
|
case 'settings.wallet.disconnect_wallet': return 'Koppla bort plånboken';
|
||||||
|
case 'settings.wallet.connect_1tap': return '1-tryck anslutning';
|
||||||
|
case 'settings.wallet.paste': return 'Klistra in URL';
|
||||||
|
case 'settings.wallet.balance': return 'Balans';
|
||||||
|
case 'settings.wallet.name': return 'Plånbok';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'Kan inte ansluta plånbok när du är utloggad';
|
||||||
|
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.username': return 'Användarnamn';
|
||||||
case 'login.amber': return 'Logga in med Amber';
|
case 'login.amber': return 'Logga in med Amber';
|
||||||
case 'login.key': return 'Logga in med nyckel';
|
case 'login.key': return 'Logga in med nyckel';
|
||||||
case 'login.create': return 'Skapa konto';
|
case 'login.create': return 'Skapa konto';
|
||||||
case 'login.error.invalid_key': return 'Ogiltig nyckel';
|
case 'login.error.invalid_key': return 'Ogiltig nyckel';
|
||||||
|
case 'live.start': return 'GÅ DIREKT';
|
||||||
|
case 'live.configure_stream': return 'Konfigurera ström';
|
||||||
|
case 'live.endpoint': return 'Slutpunkt';
|
||||||
|
case 'live.accept_tos': return 'Acceptera TOS';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('sv'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Titel';
|
||||||
|
case 'live.summary': return 'Sammanfattning';
|
||||||
|
case 'live.image': return 'Omslagsbild';
|
||||||
|
case 'live.tags': return 'Etiketter';
|
||||||
|
case 'live.nsfw': return 'NSFW-innehåll';
|
||||||
|
case 'live.nsfw_description': return 'Markera här om denna stream innehåller nakenhet eller pornografiskt innehåll.';
|
||||||
|
case 'live.error.failed': return 'Strömmen misslyckades';
|
||||||
|
case 'live.error.connection_error': return 'Anslutningsfel';
|
||||||
|
case 'live.error.start_failed': return 'Stream start misslyckades, vänligen kontrollera ditt saldo';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsTr implements Translations {
|
class TranslationsTr extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsTr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsTr({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsTr implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsTr implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsTr _root = this; // ignore: unused_field
|
late final TranslationsTr _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -53,7 +54,7 @@ class TranslationsTr implements Translations {
|
|||||||
/// Akışı izleyenlerin sayısı
|
/// Akışı izleyenlerin sayısı
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
||||||
one: '1 izleyici',
|
one: '1 izleyici',
|
||||||
other: '${n} izleyiciler',
|
other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamTr stream = _TranslationsStreamTr._(_root);
|
@override late final _TranslationsStreamTr stream = _TranslationsStreamTr._(_root);
|
||||||
@ -66,36 +67,38 @@ class TranslationsTr implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapTr zap = _TranslationsZapTr._(_root);
|
@override late final _TranslationsZapTr zap = _TranslationsZapTr._(_root);
|
||||||
@override late final _TranslationsProfileTr profile = _TranslationsProfileTr._(_root);
|
@override late final _TranslationsProfileTr profile = _TranslationsProfileTr._(_root);
|
||||||
|
@override late final _TranslationsSettingsTr settings = _TranslationsSettingsTr._(_root);
|
||||||
@override late final _TranslationsLoginTr login = _TranslationsLoginTr._(_root);
|
@override late final _TranslationsLoginTr login = _TranslationsLoginTr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamTr implements TranslationsStreamEn {
|
class _TranslationsStreamTr extends TranslationsStreamEn {
|
||||||
_TranslationsStreamTr._(this._root);
|
_TranslationsStreamTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusTr status = _TranslationsStreamStatusTr._(_root);
|
@override late final _TranslationsStreamStatusTr status = _TranslationsStreamStatusTr._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Başlatıldı ${timestamp}';
|
@override String started({required Object timestamp}) => 'Başlatıldı ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} yayına girdi!';
|
||||||
@override late final _TranslationsStreamChatTr chat = _TranslationsStreamChatTr._(_root);
|
@override late final _TranslationsStreamChatTr chat = _TranslationsStreamChatTr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalTr implements TranslationsGoalEn {
|
class _TranslationsGoalTr extends TranslationsGoalEn {
|
||||||
_TranslationsGoalTr._(this._root);
|
_TranslationsGoalTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Hedef: ${amount}';
|
@override String title({required Object amount}) => 'Hedef: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Kalan: ${amount}';
|
@override String remaining({required Object amount}) => 'Kalan: ${amount}';
|
||||||
@override String get complete => 'TAMAMLANDI';
|
@override String get complete => 'TAMAMLANDI';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonTr implements TranslationsButtonEn {
|
class _TranslationsButtonTr extends TranslationsButtonEn {
|
||||||
_TranslationsButtonTr._(this._root);
|
_TranslationsButtonTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +120,25 @@ class _TranslationsButtonTr implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Sesi aç';
|
@override String get unmute => 'Sesi aç';
|
||||||
@override String get share => 'Paylaş';
|
@override String get share => 'Paylaş';
|
||||||
@override String get save => 'Kaydet';
|
@override String get save => 'Kaydet';
|
||||||
|
@override String get connect => 'Bağlan';
|
||||||
|
@override String get settings => 'Ayarlar';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedTr implements TranslationsEmbedEn {
|
class _TranslationsEmbedTr extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedTr._(this._root);
|
_TranslationsEmbedTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Makale ${name}';
|
@override String article_by({required Object name}) => 'Makale ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Not: ${name}';
|
@override String note_by({required Object name}) => 'Not: ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Canlı yayın: ${name}';
|
@override String live_stream_by({required Object name}) => 'Canlı yayın: ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListTr implements TranslationsStreamListEn {
|
class _TranslationsStreamListTr extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListTr._(this._root);
|
_TranslationsStreamListTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +150,50 @@ class _TranslationsStreamListTr implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapTr implements TranslationsZapEn {
|
class _TranslationsZapTr extends TranslationsZapEn {
|
||||||
_TranslationsZapTr._(this._root);
|
_TranslationsZapTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Özel Tutar';
|
@override String get custom_amount => 'Özel Tutar';
|
||||||
@override String get confirm => 'Onaylayın';
|
@override String get confirm => 'Onaylayın';
|
||||||
@override String get comment => 'Yorum';
|
@override String get comment => 'Yorum';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap';
|
@override String get button_zap => 'Zap';
|
||||||
@override String get button_open_wallet => 'Cüzdanda Aç';
|
@override String get button_open_wallet => 'Cüzdanda Aç';
|
||||||
|
@override String get button_connect_wallet => 'Cüzdan Bağlayın';
|
||||||
@override String get copy => 'Panoya kopyalandı';
|
@override String get copy => 'Panoya kopyalandı';
|
||||||
@override late final _TranslationsZapErrorTr error = _TranslationsZapErrorTr._(_root);
|
@override late final _TranslationsZapErrorTr error = _TranslationsZapErrorTr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileTr implements TranslationsProfileEn {
|
class _TranslationsProfileTr extends TranslationsProfileEn {
|
||||||
_TranslationsProfileTr._(this._root);
|
_TranslationsProfileTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Geçmiş Akışlar';
|
@override String get past_streams => 'Geçmiş Akışlar';
|
||||||
@override late final _TranslationsProfileEditTr edit = _TranslationsProfileEditTr._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsTr extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Profil Düzenle';
|
||||||
|
@override String get button_wallet => 'Cüzdan Ayarları';
|
||||||
|
@override late final _TranslationsSettingsProfileTr profile = _TranslationsSettingsProfileTr._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletTr wallet = _TranslationsSettingsWalletTr._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginTr implements TranslationsLoginEn {
|
class _TranslationsLoginTr extends TranslationsLoginEn {
|
||||||
_TranslationsLoginTr._(this._root);
|
_TranslationsLoginTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -188,8 +206,8 @@ class _TranslationsLoginTr implements TranslationsLoginEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusTr implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusTr extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusTr._(this._root);
|
_TranslationsStreamStatusTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +218,35 @@ class _TranslationsStreamStatusTr implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatTr implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatTr extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatTr._(this._root);
|
_TranslationsStreamChatTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'SOHBET DEVRE DIŞI';
|
@override String get disabled => 'SOHBET DEVRE DIŞI';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Zaman aşımı sona eriyor: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Zaman aşımı sona eriyor: ${time}';
|
||||||
|
|
||||||
/// Zaman aşımı olaylarını gösteren sohbet mesajı
|
/// Zaman aşımı olaylarını gösteren sohbet mesajı
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' zaman aşımına uğradı '),
|
const TextSpan(text: ' zaman aşımına uğradı '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' için '),
|
const TextSpan(text: ' '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
const TextSpan(text: 'için'),
|
||||||
|
]);
|
||||||
|
|
||||||
/// Sohbetin alt kısmında akış sona erdi altbilgisi
|
/// Sohbetin alt kısmında akış sona erdi altbilgisi
|
||||||
@override String get ended => 'YAYIN SONLANDI';
|
@override String get ended => 'YAYIN SONLANDI';
|
||||||
|
|
||||||
/// Akış zaplarını gösteren sohbet mesajı
|
/// Akış zaplarını gösteren sohbet mesajı
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteTr write = _TranslationsStreamChatWriteTr._(_root);
|
@override late final _TranslationsStreamChatWriteTr write = _TranslationsStreamChatWriteTr._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeTr badge = _TranslationsStreamChatBadgeTr._(_root);
|
@override late final _TranslationsStreamChatBadgeTr badge = _TranslationsStreamChatBadgeTr._(_root);
|
||||||
@ -235,8 +254,8 @@ class _TranslationsStreamChatTr implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorTr implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorTr extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorTr._(this._root);
|
_TranslationsZapErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +265,9 @@ class _TranslationsZapErrorTr implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Yıldırım adresi bulunamadı';
|
@override String get no_lud16 => 'Yıldırım adresi bulunamadı';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditTr implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileTr extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditTr._(this._root);
|
_TranslationsSettingsProfileTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +276,26 @@ class _TranslationsProfileEditTr implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'Hakkında';
|
@override String get about => 'Hakkında';
|
||||||
@override String get nip05 => 'Nostr Adres';
|
@override String get nip05 => 'Nostr Adres';
|
||||||
@override String get lud16 => 'Yıldırım Adres';
|
@override String get lud16 => 'Yıldırım Adres';
|
||||||
@override late final _TranslationsProfileEditErrorTr error = _TranslationsProfileEditErrorTr._(_root);
|
@override late final _TranslationsSettingsProfileErrorTr error = _TranslationsSettingsProfileErrorTr._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletTr extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorTr implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorTr extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorTr._(this._root);
|
_TranslationsLoginErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -271,8 +304,8 @@ class _TranslationsLoginErrorTr implements TranslationsLoginErrorEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteTr implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteTr extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteTr._(this._root);
|
_TranslationsStreamChatWriteTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +322,8 @@ class _TranslationsStreamChatWriteTr implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeTr implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeTr extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeTr._(this._root);
|
_TranslationsStreamChatBadgeTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +334,26 @@ class _TranslationsStreamChatBadgeTr implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidTr implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidTr extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidTr._(this._root);
|
_TranslationsStreamChatRaidTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Başka bir akışa sohbet baskını mesajı
|
/// Başka bir akışa sohbet baskını mesajı
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}S';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Başka bir akıştan sohbet baskını mesajı
|
/// Başka bir akıştan sohbet baskını mesajı
|
||||||
@override String from({ required Object name}) => '${name} ADRESINDEN RAID';
|
@override String from({required Object name}) => '${name} ADRESINDEN RAID';
|
||||||
|
|
||||||
/// Otomatik sürüş için geri sayım sayacı
|
/// Otomatik sürüş için geri sayım sayacı
|
||||||
@override String countdown({ required Object time}) => '${time} adresinde baskın';
|
@override String countdown({required Object time}) => '${time}adresinde baskın';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorTr implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorTr extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorTr._(this._root);
|
_TranslationsSettingsProfileErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsTr _root; // ignore: unused_field
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +361,17 @@ class _TranslationsProfileEditErrorTr implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Çıkış yapıldığında profil düzenlenemiyor';
|
@override String get logged_out => 'Çıkış yapıldığında profil düzenlenemiyor';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorTr extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsTr _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// 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.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsTr {
|
extension on TranslationsTr {
|
||||||
@ -339,37 +383,39 @@ extension on TranslationsTr {
|
|||||||
case 'anon': return 'Anon';
|
case 'anon': return 'Anon';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
||||||
one: '1 izleyici',
|
one: '1 izleyici',
|
||||||
other: '${n} izleyiciler',
|
other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'CANLI';
|
case 'stream.status.live': return 'CANLI';
|
||||||
case 'stream.status.ended': return 'SONLANDI';
|
case 'stream.status.ended': return 'SONLANDI';
|
||||||
case 'stream.status.planned': return 'PLANLANMIŞ';
|
case 'stream.status.planned': return 'PLANLANMIŞ';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Başlatıldı ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Başlatıldı ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} yayına girdi!';
|
||||||
case 'stream.chat.disabled': return 'SOHBET DEVRE DIŞI';
|
case 'stream.chat.disabled': return 'SOHBET DEVRE DIŞI';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Zaman aşımı sona eriyor: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Zaman aşımı sona eriyor: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' zaman aşımına uğradı '),
|
const TextSpan(text: ' zaman aşımına uğradı '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' için '),
|
const TextSpan(text: ' '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
const TextSpan(text: 'için'),
|
||||||
|
]);
|
||||||
case 'stream.chat.ended': return 'YAYIN SONLANDI';
|
case 'stream.chat.ended': return 'YAYIN SONLANDI';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Mesaj yaz';
|
case 'stream.chat.write.label': return 'Mesaj yaz';
|
||||||
case 'stream.chat.write.no_signer': return 'Npub girişi ile mesaj yazılamıyor';
|
case 'stream.chat.write.no_signer': return 'Npub girişi ile mesaj yazılamıyor';
|
||||||
case 'stream.chat.write.login': return 'Mesaj göndermek için lütfen giriş yapın';
|
case 'stream.chat.write.login': return 'Mesaj göndermek için lütfen giriş yapın';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Ödüllendirildi:';
|
case 'stream.chat.badge.awarded_to': return 'Ödüllendirildi:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}S';
|
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||||
case 'stream.chat.raid.from': return ({ required Object name}) => '${name} ADRESINDEN RAID';
|
case 'stream.chat.raid.from': return ({required Object name}) => '${name} ADRESINDEN RAID';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => '${time} adresinde baskın';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => '${time}adresinde baskın';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Hedef: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Hedef: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Kalan: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Kalan: ${amount}';
|
||||||
case 'goal.complete': return 'TAMAMLANDI';
|
case 'goal.complete': return 'TAMAMLANDI';
|
||||||
case 'button.login': return 'Giriş';
|
case 'button.login': return 'Giriş';
|
||||||
case 'button.logout': return 'Oturum Kapatma';
|
case 'button.logout': return 'Oturum Kapatma';
|
||||||
@ -380,30 +426,41 @@ extension on TranslationsTr {
|
|||||||
case 'button.unmute': return 'Sesi aç';
|
case 'button.unmute': return 'Sesi aç';
|
||||||
case 'button.share': return 'Paylaş';
|
case 'button.share': return 'Paylaş';
|
||||||
case 'button.save': return 'Kaydet';
|
case 'button.save': return 'Kaydet';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Makale ${name}';
|
case 'button.connect': return 'Bağlan';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Not: ${name}';
|
case 'button.settings': return 'Ayarlar';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Canlı yayın: ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Makale ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Not: ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Canlı yayın: ${name}';
|
||||||
case 'stream_list.following': return 'Aşağıdaki';
|
case 'stream_list.following': return 'Aşağıdaki';
|
||||||
case 'stream_list.live': return 'Canlı';
|
case 'stream_list.live': return 'Canlı';
|
||||||
case 'stream_list.planned': return 'Planlanmış';
|
case 'stream_list.planned': return 'Planlanmış';
|
||||||
case 'stream_list.ended': return 'Bitti';
|
case 'stream_list.ended': return 'Bitti';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Özel Tutar';
|
case 'zap.custom_amount': return 'Özel Tutar';
|
||||||
case 'zap.confirm': return 'Onaylayın';
|
case 'zap.confirm': return 'Onaylayın';
|
||||||
case 'zap.comment': return 'Yorum';
|
case 'zap.comment': return 'Yorum';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap';
|
case 'zap.button_zap': return 'Zap';
|
||||||
case 'zap.button_open_wallet': return 'Cüzdanda Aç';
|
case 'zap.button_open_wallet': return 'Cüzdanda Aç';
|
||||||
|
case 'zap.button_connect_wallet': return 'Cüzdan Bağlayın';
|
||||||
case 'zap.copy': return 'Panoya kopyalandı';
|
case 'zap.copy': return 'Panoya kopyalandı';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Geçersiz özel tutar';
|
case 'zap.error.invalid_custom_amount': return 'Geçersiz özel tutar';
|
||||||
case 'zap.error.no_wallet': return 'Lightning cüzdan yüklü değil';
|
case 'zap.error.no_wallet': return 'Lightning cüzdan yüklü değil';
|
||||||
case 'zap.error.no_lud16': return 'Yıldırım adresi bulunamadı';
|
case 'zap.error.no_lud16': return 'Yıldırım adresi bulunamadı';
|
||||||
case 'profile.past_streams': return 'Geçmiş Akışlar';
|
case 'profile.past_streams': return 'Geçmiş Akışlar';
|
||||||
case 'profile.edit.display_name': return 'Ekran Adı';
|
case 'settings.button_profile': return 'Profil Düzenle';
|
||||||
case 'profile.edit.about': return 'Hakkında';
|
case 'settings.button_wallet': return 'Cüzdan Ayarları';
|
||||||
case 'profile.edit.nip05': return 'Nostr Adres';
|
case 'settings.profile.display_name': return 'Ekran Adı';
|
||||||
case 'profile.edit.lud16': return 'Yıldırım Adres';
|
case 'settings.profile.about': return 'Hakkında';
|
||||||
case 'profile.edit.error.logged_out': return 'Çıkış yapıldığında profil düzenlenemiyor';
|
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 '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.username': return 'Kullanıcı Adı';
|
||||||
case 'login.amber': return 'Amber ile Giriş Yapın';
|
case 'login.amber': return 'Amber ile Giriş Yapın';
|
||||||
case 'login.key': return 'Anahtar ile Giriş Yapın';
|
case 'login.key': return 'Anahtar ile Giriş Yapın';
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsUk implements Translations {
|
class TranslationsUk extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsUk({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsUk({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsUk implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsUk implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsUk _root = this; // ignore: unused_field
|
late final TranslationsUk _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsUk implements Translations {
|
|||||||
/// Анонімний користувач
|
/// Анонімний користувач
|
||||||
@override String get anon => 'Анонім.';
|
@override String get anon => 'Анонім.';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('uk').format(n)} сатів';
|
||||||
|
|
||||||
/// Кількість глядачів стріму
|
/// Кількість глядачів стріму
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
||||||
one: '1 глядач',
|
one: '1 глядач',
|
||||||
other: '${n} глядачі',
|
other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamUk stream = _TranslationsStreamUk._(_root);
|
@override late final _TranslationsStreamUk stream = _TranslationsStreamUk._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsUk implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapUk zap = _TranslationsZapUk._(_root);
|
@override late final _TranslationsZapUk zap = _TranslationsZapUk._(_root);
|
||||||
@override late final _TranslationsProfileUk profile = _TranslationsProfileUk._(_root);
|
@override late final _TranslationsProfileUk profile = _TranslationsProfileUk._(_root);
|
||||||
|
@override late final _TranslationsSettingsUk settings = _TranslationsSettingsUk._(_root);
|
||||||
@override late final _TranslationsLoginUk login = _TranslationsLoginUk._(_root);
|
@override late final _TranslationsLoginUk login = _TranslationsLoginUk._(_root);
|
||||||
|
@override late final _TranslationsLiveUk live = _TranslationsLiveUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamUk implements TranslationsStreamEn {
|
class _TranslationsStreamUk extends TranslationsStreamEn {
|
||||||
_TranslationsStreamUk._(this._root);
|
_TranslationsStreamUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusUk status = _TranslationsStreamStatusUk._(_root);
|
@override late final _TranslationsStreamStatusUk status = _TranslationsStreamStatusUk._(_root);
|
||||||
@override String started({ required Object timestamp}) => 'Запустив ${timestamp}';
|
@override String started({required Object timestamp}) => 'Запустив ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} запрацював!';
|
||||||
@override late final _TranslationsStreamChatUk chat = _TranslationsStreamChatUk._(_root);
|
@override late final _TranslationsStreamChatUk chat = _TranslationsStreamChatUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalUk implements TranslationsGoalEn {
|
class _TranslationsGoalUk extends TranslationsGoalEn {
|
||||||
_TranslationsGoalUk._(this._root);
|
_TranslationsGoalUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => 'Мета: ${amount}';
|
@override String title({required Object amount}) => 'Мета: ${amount}';
|
||||||
@override String remaining({ required Object amount}) => 'Залишилося: ${amount}';
|
@override String remaining({required Object amount}) => 'Залишилося: ${amount}';
|
||||||
@override String get complete => 'ЗАВЕРШИТИ';
|
@override String get complete => 'ЗАВЕРШИТИ';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonUk implements TranslationsButtonEn {
|
class _TranslationsButtonUk extends TranslationsButtonEn {
|
||||||
_TranslationsButtonUk._(this._root);
|
_TranslationsButtonUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonUk implements TranslationsButtonEn {
|
|||||||
@override String get unmute => 'Увімкнути звук.';
|
@override String get unmute => 'Увімкнути звук.';
|
||||||
@override String get share => 'Поділіться';
|
@override String get share => 'Поділіться';
|
||||||
@override String get save => 'Зберегти';
|
@override String get save => 'Зберегти';
|
||||||
|
@override String get connect => 'Підключіться';
|
||||||
|
@override String get settings => 'Налаштування';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedUk implements TranslationsEmbedEn {
|
class _TranslationsEmbedUk extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedUk._(this._root);
|
_TranslationsEmbedUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => 'Стаття за посиланням ${name}';
|
@override String article_by({required Object name}) => 'Стаття за посиланням ${name}';
|
||||||
@override String note_by({ required Object name}) => 'Примітка ${name}';
|
@override String note_by({required Object name}) => 'Примітка ${name}';
|
||||||
@override String live_stream_by({ required Object name}) => 'Пряма трансляція на ${name}';
|
@override String live_stream_by({required Object name}) => 'Пряма трансляція на ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListUk implements TranslationsStreamListEn {
|
class _TranslationsStreamListUk extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListUk._(this._root);
|
_TranslationsStreamListUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListUk implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapUk implements TranslationsZapEn {
|
class _TranslationsZapUk extends TranslationsZapEn {
|
||||||
_TranslationsZapUk._(this._root);
|
_TranslationsZapUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => 'Zap ${name}';
|
@override String title({required Object name}) => 'Zap ${name}';
|
||||||
@override String get custom_amount => 'Нестандартна сума';
|
@override String get custom_amount => 'Нестандартна сума';
|
||||||
@override String get confirm => 'Підтвердити';
|
@override String get confirm => 'Підтвердити';
|
||||||
@override String get comment => 'Коментар';
|
@override String get comment => 'Коментар';
|
||||||
@override String button_zap_ready({ required Object amount}) => 'Zap ${amount} sats';
|
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||||
@override String get button_zap => 'Zap!';
|
@override String get button_zap => 'Zap!';
|
||||||
@override String get button_open_wallet => 'Відкрити в Гаманці';
|
@override String get button_open_wallet => 'Відкрити в Гаманці';
|
||||||
|
@override String get button_connect_wallet => 'Підключити гаманець';
|
||||||
@override String get copy => 'Скопійовано в буфер обміну';
|
@override String get copy => 'Скопійовано в буфер обміну';
|
||||||
@override late final _TranslationsZapErrorUk error = _TranslationsZapErrorUk._(_root);
|
@override late final _TranslationsZapErrorUk error = _TranslationsZapErrorUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileUk implements TranslationsProfileEn {
|
class _TranslationsProfileUk extends TranslationsProfileEn {
|
||||||
_TranslationsProfileUk._(this._root);
|
_TranslationsProfileUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => 'Минулі потоки';
|
@override String get past_streams => 'Минулі потоки';
|
||||||
@override late final _TranslationsProfileEditUk edit = _TranslationsProfileEditUk._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsUk extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => 'Редагувати профіль';
|
||||||
|
@override String get button_wallet => 'Налаштування гаманця';
|
||||||
|
@override late final _TranslationsSettingsProfileUk profile = _TranslationsSettingsProfileUk._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletUk wallet = _TranslationsSettingsWalletUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginUk implements TranslationsLoginEn {
|
class _TranslationsLoginUk extends TranslationsLoginEn {
|
||||||
_TranslationsLoginUk._(this._root);
|
_TranslationsLoginUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginUk implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorUk error = _TranslationsLoginErrorUk._(_root);
|
@override late final _TranslationsLoginErrorUk error = _TranslationsLoginErrorUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveUk extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => 'GO LIVE';
|
||||||
|
@override String get configure_stream => 'Налаштувати потік';
|
||||||
|
@override String get endpoint => 'Кінцева точка';
|
||||||
|
@override String get accept_tos => 'Прийміть ТЗ';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => 'Назва';
|
||||||
|
@override String get summary => 'Підсумок';
|
||||||
|
@override String get image => 'Зображення обкладинки';
|
||||||
|
@override String get tags => 'Теги';
|
||||||
|
@override String get nsfw => 'Нецензурна лексика';
|
||||||
|
@override String get nsfw_description => 'Перевірте тут, чи містить цей потік оголену натуру або порнографічний контент.';
|
||||||
|
@override late final _TranslationsLiveErrorUk error = _TranslationsLiveErrorUk._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusUk implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusUk extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusUk._(this._root);
|
_TranslationsStreamStatusUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusUk implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatUk implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatUk extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatUk._(this._root);
|
_TranslationsStreamChatUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => 'ЧАТ ВІДКЛЮЧЕНО';
|
@override String get disabled => 'ЧАТ ВІДКЛЮЧЕНО';
|
||||||
@override String disabled_timeout({ required Object time}) => 'Тайм-аут закінчився: ${time}';
|
@override String disabled_timeout({required Object time}) => 'Тайм-аут закінчився: ${time}';
|
||||||
|
|
||||||
/// Повідомлення в чаті про події тайм-ауту
|
/// Повідомлення в чаті про події тайм-ауту
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' таймінг '),
|
const TextSpan(text: ' таймінг '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' для '),
|
const TextSpan(text: ' для '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// Нижній колонтитул кінця потоку внизу чату
|
/// Нижній колонтитул кінця потоку внизу чату
|
||||||
@override String get ended => 'СТРІМ ЗАКІНЧИВСЯ';
|
@override String get ended => 'СТРІМ ЗАКІНЧИВСЯ';
|
||||||
|
|
||||||
/// Повідомлення в чаті, що показує затримки потоку
|
/// Повідомлення в чаті, що показує затримки потоку
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteUk write = _TranslationsStreamChatWriteUk._(_root);
|
@override late final _TranslationsStreamChatWriteUk write = _TranslationsStreamChatWriteUk._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeUk badge = _TranslationsStreamChatBadgeUk._(_root);
|
@override late final _TranslationsStreamChatBadgeUk badge = _TranslationsStreamChatBadgeUk._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatUk implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorUk implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorUk extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorUk._(this._root);
|
_TranslationsZapErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,9 +291,9 @@ class _TranslationsZapErrorUk implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => 'Адреса блискавки не знайдена';
|
@override String get no_lud16 => 'Адреса блискавки не знайдена';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditUk implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileUk extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditUk._(this._root);
|
_TranslationsSettingsProfileUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -257,12 +302,28 @@ class _TranslationsProfileEditUk implements TranslationsProfileEditEn {
|
|||||||
@override String get about => 'Про';
|
@override String get about => 'Про';
|
||||||
@override String get nip05 => 'Nostr Адреса';
|
@override String get nip05 => 'Nostr Адреса';
|
||||||
@override String get lud16 => 'Блискавична адреса';
|
@override String get lud16 => 'Блискавична адреса';
|
||||||
@override late final _TranslationsProfileEditErrorUk error = _TranslationsProfileEditErrorUk._(_root);
|
@override late final _TranslationsSettingsProfileErrorUk error = _TranslationsSettingsProfileErrorUk._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletUk extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => 'Баланс';
|
||||||
|
@override String get name => 'Гаманець';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorUk error = _TranslationsSettingsWalletErrorUk._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorUk implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorUk extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorUk._(this._root);
|
_TranslationsLoginErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorUk implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => 'Неправильний ключ';
|
@override String get invalid_key => 'Неправильний ключ';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorUk extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => 'Потік не вдалося запустити';
|
||||||
|
@override String get connection_error => 'Помилка з\'єднання';
|
||||||
|
@override String get start_failed => 'Не вдалося запустити трансляцію, будь ласка, перевірте свій баланс';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteUk implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteUk extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteUk._(this._root);
|
_TranslationsStreamChatWriteUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteUk implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeUk implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeUk extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeUk._(this._root);
|
_TranslationsStreamChatBadgeUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeUk implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidUk implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidUk extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidUk._(this._root);
|
_TranslationsStreamChatRaidUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// Повідомлення про рейд чату в інший потік
|
/// Повідомлення про рейд чату в інший потік
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// Повідомлення про наліт на чат з іншого потоку
|
/// Повідомлення про наліт на чат з іншого потоку
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// Таймер зворотного відліку для авторейду
|
/// Таймер зворотного відліку для авторейду
|
||||||
@override String countdown({ required Object time}) => 'Рейд у ${time}';
|
@override String countdown({required Object time}) => 'Рейд у ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorUk implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorUk extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorUk._(this._root);
|
_TranslationsSettingsProfileErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsUk _root; // ignore: unused_field
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorUk implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => 'Неможливо редагувати профіль, коли ви вийшли з системи';
|
@override String get logged_out => 'Неможливо редагувати профіль, коли ви вийшли з системи';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorUk extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsUk _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => 'Не вдається підключити гаманець, коли ви вийшли з системи';
|
||||||
|
@override String get nwc_auth_event_not_found => 'Не знайдено жодної події авторизації гаманця';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsUk {
|
extension on TranslationsUk {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsUk {
|
|||||||
case 'most_zapped_streamers': return 'Більшість стримерів, які були під напругою';
|
case 'most_zapped_streamers': return 'Більшість стримерів, які були під напругою';
|
||||||
case 'no_user_found': return 'Користувача не знайдено';
|
case 'no_user_found': return 'Користувача не знайдено';
|
||||||
case 'anon': return 'Анонім.';
|
case 'anon': return 'Анонім.';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('uk').format(n)} сатів';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
||||||
one: '1 глядач',
|
one: '1 глядач',
|
||||||
other: '${n} глядачі',
|
other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return 'НАЖИВО';
|
case 'stream.status.live': return 'НАЖИВО';
|
||||||
case 'stream.status.ended': return 'ЗАКІНЧЕНО';
|
case 'stream.status.ended': return 'ЗАКІНЧЕНО';
|
||||||
case 'stream.status.planned': return 'ЗАПЛАНОВАНО';
|
case 'stream.status.planned': return 'ЗАПЛАНОВАНО';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => 'Запустив ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => 'Запустив ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} запрацював!';
|
||||||
case 'stream.chat.disabled': return 'ЧАТ ВІДКЛЮЧЕНО';
|
case 'stream.chat.disabled': return 'ЧАТ ВІДКЛЮЧЕНО';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => 'Тайм-аут закінчився: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Тайм-аут закінчився: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' таймінг '),
|
const TextSpan(text: ' таймінг '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' для '),
|
const TextSpan(text: ' для '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return 'СТРІМ ЗАКІНЧИВСЯ';
|
case 'stream.chat.ended': return 'СТРІМ ЗАКІНЧИВСЯ';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' zapped '),
|
const TextSpan(text: ' zapped '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' sats'),
|
const TextSpan(text: ' sats'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return 'Написати повідомлення';
|
case 'stream.chat.write.label': return 'Написати повідомлення';
|
||||||
case 'stream.chat.write.no_signer': return 'Неможливо писати повідомлення з логіном npub';
|
case 'stream.chat.write.no_signer': return 'Неможливо писати повідомлення з логіном npub';
|
||||||
case 'stream.chat.write.login': return 'Будь ласка, авторизуйтесь, щоб надсилати повідомлення';
|
case 'stream.chat.write.login': return 'Будь ласка, авторизуйтесь, щоб надсилати повідомлення';
|
||||||
case 'stream.chat.badge.awarded_to': return 'Нагороджується:';
|
case 'stream.chat.badge.awarded_to': return 'Нагороджується:';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => 'Рейд у ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Рейд у ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => 'Мета: ${amount}';
|
case 'goal.title': return ({required Object amount}) => 'Мета: ${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => 'Залишилося: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => 'Залишилося: ${amount}';
|
||||||
case 'goal.complete': return 'ЗАВЕРШИТИ';
|
case 'goal.complete': return 'ЗАВЕРШИТИ';
|
||||||
case 'button.login': return 'Логін';
|
case 'button.login': return 'Логін';
|
||||||
case 'button.logout': return 'Вийти з системи';
|
case 'button.logout': return 'Вийти з системи';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsUk {
|
|||||||
case 'button.unmute': return 'Увімкнути звук.';
|
case 'button.unmute': return 'Увімкнути звук.';
|
||||||
case 'button.share': return 'Поділіться';
|
case 'button.share': return 'Поділіться';
|
||||||
case 'button.save': return 'Зберегти';
|
case 'button.save': return 'Зберегти';
|
||||||
case 'embed.article_by': return ({ required Object name}) => 'Стаття за посиланням ${name}';
|
case 'button.connect': return 'Підключіться';
|
||||||
case 'embed.note_by': return ({ required Object name}) => 'Примітка ${name}';
|
case 'button.settings': return 'Налаштування';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Пряма трансляція на ${name}';
|
case 'embed.article_by': return ({required Object name}) => 'Стаття за посиланням ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => 'Примітка ${name}';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Пряма трансляція на ${name}';
|
||||||
case 'stream_list.following': return 'Після того, як';
|
case 'stream_list.following': return 'Після того, як';
|
||||||
case 'stream_list.live': return 'Наживо';
|
case 'stream_list.live': return 'Наживо';
|
||||||
case 'stream_list.planned': return 'Заплановано';
|
case 'stream_list.planned': return 'Заплановано';
|
||||||
case 'stream_list.ended': return 'Закінчилося';
|
case 'stream_list.ended': return 'Закінчилося';
|
||||||
case 'zap.title': return ({ required Object name}) => 'Zap ${name}';
|
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||||
case 'zap.custom_amount': return 'Нестандартна сума';
|
case 'zap.custom_amount': return 'Нестандартна сума';
|
||||||
case 'zap.confirm': return 'Підтвердити';
|
case 'zap.confirm': return 'Підтвердити';
|
||||||
case 'zap.comment': return 'Коментар';
|
case 'zap.comment': return 'Коментар';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => 'Zap ${amount} sats';
|
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||||
case 'zap.button_zap': return 'Zap!';
|
case 'zap.button_zap': return 'Zap!';
|
||||||
case 'zap.button_open_wallet': return 'Відкрити в Гаманці';
|
case 'zap.button_open_wallet': return 'Відкрити в Гаманці';
|
||||||
|
case 'zap.button_connect_wallet': return 'Підключити гаманець';
|
||||||
case 'zap.copy': return 'Скопійовано в буфер обміну';
|
case 'zap.copy': return 'Скопійовано в буфер обміну';
|
||||||
case 'zap.error.invalid_custom_amount': return 'Неправильна сума замовлення';
|
case 'zap.error.invalid_custom_amount': return 'Неправильна сума замовлення';
|
||||||
case 'zap.error.no_wallet': return 'Не встановлено гаманець-блискавку';
|
case 'zap.error.no_wallet': return 'Не встановлено гаманець-блискавку';
|
||||||
case 'zap.error.no_lud16': return 'Адреса блискавки не знайдена';
|
case 'zap.error.no_lud16': return 'Адреса блискавки не знайдена';
|
||||||
case 'profile.past_streams': return 'Минулі потоки';
|
case 'profile.past_streams': return 'Минулі потоки';
|
||||||
case 'profile.edit.display_name': return 'Ім\'я користувача';
|
case 'settings.button_profile': return 'Редагувати профіль';
|
||||||
case 'profile.edit.about': return 'Про';
|
case 'settings.button_wallet': return 'Налаштування гаманця';
|
||||||
case 'profile.edit.nip05': return 'Nostr Адреса';
|
case 'settings.profile.display_name': return 'Ім\'я користувача';
|
||||||
case 'profile.edit.lud16': return 'Блискавична адреса';
|
case 'settings.profile.about': return 'Про';
|
||||||
case 'profile.edit.error.logged_out': return 'Неможливо редагувати профіль, коли ви вийшли з системи';
|
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 nostr+walletconnect://)';
|
||||||
|
case 'settings.wallet.disconnect_wallet': return 'Відключити гаманець';
|
||||||
|
case 'settings.wallet.connect_1tap': return 'Підключення в 1 кран';
|
||||||
|
case 'settings.wallet.paste': return 'Вставити URL-адресу';
|
||||||
|
case 'settings.wallet.balance': return 'Баланс';
|
||||||
|
case 'settings.wallet.name': return 'Гаманець';
|
||||||
|
case 'settings.wallet.error.logged_out': return 'Не вдається підключити гаманець, коли ви вийшли з системи';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return 'Не знайдено жодної події авторизації гаманця';
|
||||||
case 'login.username': return 'Ім\'я користувача';
|
case 'login.username': return 'Ім\'я користувача';
|
||||||
case 'login.amber': return 'Увійдіть за допомогою Amber';
|
case 'login.amber': return 'Увійдіть за допомогою Amber';
|
||||||
case 'login.key': return 'Увійдіть за допомогою ключа';
|
case 'login.key': return 'Увійдіть за допомогою ключа';
|
||||||
case 'login.create': return 'Створити обліковий запис';
|
case 'login.create': return 'Створити обліковий запис';
|
||||||
case 'login.error.invalid_key': return 'Неправильний ключ';
|
case 'login.error.invalid_key': return 'Неправильний ключ';
|
||||||
|
case 'live.start': return 'GO LIVE';
|
||||||
|
case 'live.configure_stream': return 'Налаштувати потік';
|
||||||
|
case 'live.endpoint': return 'Кінцева точка';
|
||||||
|
case 'live.accept_tos': return 'Прийміть ТЗ';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('uk'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return 'Назва';
|
||||||
|
case 'live.summary': return 'Підсумок';
|
||||||
|
case 'live.image': return 'Зображення обкладинки';
|
||||||
|
case 'live.tags': return 'Теги';
|
||||||
|
case 'live.nsfw': return 'Нецензурна лексика';
|
||||||
|
case 'live.nsfw_description': return 'Перевірте тут, чи містить цей потік оголену натуру або порнографічний контент.';
|
||||||
|
case 'live.error.failed': return 'Потік не вдалося запустити';
|
||||||
|
case 'live.error.connection_error': return 'Помилка з\'єднання';
|
||||||
|
case 'live.error.start_failed': return 'Не вдалося запустити трансляцію, будь ласка, перевірте свій баланс';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,416 +0,0 @@
|
|||||||
///
|
|
||||||
/// Generated file. Do not edit.
|
|
||||||
///
|
|
||||||
// coverage:ignore-file
|
|
||||||
// ignore_for_file: type=lint, unused_import
|
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:intl/intl.dart';
|
|
||||||
import 'package:slang/generated.dart';
|
|
||||||
import 'strings.g.dart';
|
|
||||||
|
|
||||||
// Path: <root>
|
|
||||||
class TranslationsVi implements 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<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? 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,
|
|
||||||
) {
|
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Metadata for the translations of <vi>.
|
|
||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
||||||
|
|
||||||
/// Access flat map
|
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
|
||||||
|
|
||||||
late final TranslationsVi _root = this; // ignore: unused_field
|
|
||||||
|
|
||||||
@override
|
|
||||||
TranslationsVi $copyWith({TranslationMetadata<AppLocale, Translations>? 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 _TranslationsLoginVi login = _TranslationsLoginVi._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream
|
|
||||||
class _TranslationsStreamVi implements TranslationsStreamEn {
|
|
||||||
_TranslationsStreamVi._(this._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 implements TranslationsGoalEn {
|
|
||||||
_TranslationsGoalVi._(this._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 implements TranslationsButtonEn {
|
|
||||||
_TranslationsButtonVi._(this._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';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: embed
|
|
||||||
class _TranslationsEmbedVi implements TranslationsEmbedEn {
|
|
||||||
_TranslationsEmbedVi._(this._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 implements TranslationsStreamListEn {
|
|
||||||
_TranslationsStreamListVi._(this._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 implements TranslationsZapEn {
|
|
||||||
_TranslationsZapVi._(this._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 copy => 'Copied to clipboard';
|
|
||||||
@override late final _TranslationsZapErrorVi error = _TranslationsZapErrorVi._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: profile
|
|
||||||
class _TranslationsProfileVi implements TranslationsProfileEn {
|
|
||||||
_TranslationsProfileVi._(this._root);
|
|
||||||
|
|
||||||
final TranslationsVi _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get past_streams => 'Past Streams';
|
|
||||||
@override late final _TranslationsProfileEditVi edit = _TranslationsProfileEditVi._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login
|
|
||||||
class _TranslationsLoginVi implements TranslationsLoginEn {
|
|
||||||
_TranslationsLoginVi._(this._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 implements TranslationsStreamStatusEn {
|
|
||||||
_TranslationsStreamStatusVi._(this._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 implements TranslationsStreamChatEn {
|
|
||||||
_TranslationsStreamChatVi._(this._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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
/// 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
|
|
||||||
@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 implements TranslationsZapErrorEn {
|
|
||||||
_TranslationsZapErrorVi._(this._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: profile.edit
|
|
||||||
class _TranslationsProfileEditVi implements TranslationsProfileEditEn {
|
|
||||||
_TranslationsProfileEditVi._(this._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 _TranslationsProfileEditErrorVi error = _TranslationsProfileEditErrorVi._(_root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: login.error
|
|
||||||
class _TranslationsLoginErrorVi implements TranslationsLoginErrorEn {
|
|
||||||
_TranslationsLoginErrorVi._(this._root);
|
|
||||||
|
|
||||||
final TranslationsVi _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get invalid_key => 'Invalid key';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Path: stream.chat.write
|
|
||||||
class _TranslationsStreamChatWriteVi implements TranslationsStreamChatWriteEn {
|
|
||||||
_TranslationsStreamChatWriteVi._(this._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 implements TranslationsStreamChatBadgeEn {
|
|
||||||
_TranslationsStreamChatBadgeVi._(this._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 implements TranslationsStreamChatRaidEn {
|
|
||||||
_TranslationsStreamChatRaidVi._(this._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: profile.edit.error
|
|
||||||
class _TranslationsProfileEditErrorVi implements TranslationsProfileEditErrorEn {
|
|
||||||
_TranslationsProfileEditErrorVi._(this._root);
|
|
||||||
|
|
||||||
final TranslationsVi _root; // ignore: unused_field
|
|
||||||
|
|
||||||
// Translations
|
|
||||||
@override String get logged_out => 'Cant edit profile 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, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
mod,
|
|
||||||
const TextSpan(text: ' timed out '),
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' for '),
|
|
||||||
time,
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
|
||||||
user,
|
|
||||||
const TextSpan(text: ' zapped '),
|
|
||||||
amount,
|
|
||||||
const TextSpan(text: ' sats'),
|
|
||||||
], style: style, recognizer: recognizer);
|
|
||||||
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 '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.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 'profile.edit.display_name': return 'Display Name';
|
|
||||||
case 'profile.edit.about': return 'About';
|
|
||||||
case 'profile.edit.nip05': return 'Nostr Address';
|
|
||||||
case 'profile.edit.lud16': return 'Lightning Address';
|
|
||||||
case 'profile.edit.error.logged_out': return 'Cant edit profile 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,14 +4,13 @@
|
|||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:slang/generated.dart';
|
import 'package:slang/generated.dart';
|
||||||
import 'strings.g.dart';
|
import 'strings.g.dart';
|
||||||
|
|
||||||
// Path: <root>
|
// Path: <root>
|
||||||
class TranslationsZh implements Translations {
|
class TranslationsZh extends Translations {
|
||||||
/// You can call this constructor and build your own translation instance of this locale.
|
/// You can call this constructor and build your own translation instance of this locale.
|
||||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||||
TranslationsZh({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
TranslationsZh({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
|
||||||
@ -21,7 +20,9 @@ class TranslationsZh implements Translations {
|
|||||||
overrides: overrides ?? {},
|
overrides: overrides ?? {},
|
||||||
cardinalResolver: cardinalResolver,
|
cardinalResolver: cardinalResolver,
|
||||||
ordinalResolver: ordinalResolver,
|
ordinalResolver: ordinalResolver,
|
||||||
) {
|
),
|
||||||
|
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||||
|
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||||
$meta.setFlatMapFunction(_flatMapFunction);
|
$meta.setFlatMapFunction(_flatMapFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TranslationsZh implements Translations {
|
|||||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||||
|
|
||||||
/// Access flat map
|
/// Access flat map
|
||||||
@override dynamic operator[](String key) => $meta.getTranslation(key);
|
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||||
|
|
||||||
late final TranslationsZh _root = this; // ignore: unused_field
|
late final TranslationsZh _root = this; // ignore: unused_field
|
||||||
|
|
||||||
@ -50,10 +51,12 @@ class TranslationsZh implements Translations {
|
|||||||
/// 匿名使用者
|
/// 匿名使用者
|
||||||
@override String get anon => '匿名';
|
@override String get anon => '匿名';
|
||||||
|
|
||||||
|
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('zh').format(n)} Sats';
|
||||||
|
|
||||||
/// 串流的觀看者人數
|
/// 串流的觀看者人數
|
||||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
||||||
one: '1 個檢視器',
|
one: '1 個檢視器',
|
||||||
other: '${n} 觀眾',
|
other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
|
||||||
);
|
);
|
||||||
|
|
||||||
@override late final _TranslationsStreamZh stream = _TranslationsStreamZh._(_root);
|
@override late final _TranslationsStreamZh stream = _TranslationsStreamZh._(_root);
|
||||||
@ -66,36 +69,39 @@ class TranslationsZh implements Translations {
|
|||||||
|
|
||||||
@override late final _TranslationsZapZh zap = _TranslationsZapZh._(_root);
|
@override late final _TranslationsZapZh zap = _TranslationsZapZh._(_root);
|
||||||
@override late final _TranslationsProfileZh profile = _TranslationsProfileZh._(_root);
|
@override late final _TranslationsProfileZh profile = _TranslationsProfileZh._(_root);
|
||||||
|
@override late final _TranslationsSettingsZh settings = _TranslationsSettingsZh._(_root);
|
||||||
@override late final _TranslationsLoginZh login = _TranslationsLoginZh._(_root);
|
@override late final _TranslationsLoginZh login = _TranslationsLoginZh._(_root);
|
||||||
|
@override late final _TranslationsLiveZh live = _TranslationsLiveZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream
|
// Path: stream
|
||||||
class _TranslationsStreamZh implements TranslationsStreamEn {
|
class _TranslationsStreamZh extends TranslationsStreamEn {
|
||||||
_TranslationsStreamZh._(this._root);
|
_TranslationsStreamZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override late final _TranslationsStreamStatusZh status = _TranslationsStreamStatusZh._(_root);
|
@override late final _TranslationsStreamStatusZh status = _TranslationsStreamStatusZh._(_root);
|
||||||
@override String started({ required Object timestamp}) => '開始 ${timestamp}';
|
@override String started({required Object timestamp}) => '開始 ${timestamp}';
|
||||||
|
@override String notification({required Object name}) => '${name} 已啟用!';
|
||||||
@override late final _TranslationsStreamChatZh chat = _TranslationsStreamChatZh._(_root);
|
@override late final _TranslationsStreamChatZh chat = _TranslationsStreamChatZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: goal
|
// Path: goal
|
||||||
class _TranslationsGoalZh implements TranslationsGoalEn {
|
class _TranslationsGoalZh extends TranslationsGoalEn {
|
||||||
_TranslationsGoalZh._(this._root);
|
_TranslationsGoalZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object amount}) => '目標:${amount}';
|
@override String title({required Object amount}) => '目標:${amount}';
|
||||||
@override String remaining({ required Object amount}) => '剩餘: ${amount}';
|
@override String remaining({required Object amount}) => '剩餘: ${amount}';
|
||||||
@override String get complete => '完成';
|
@override String get complete => '完成';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: button
|
// Path: button
|
||||||
class _TranslationsButtonZh implements TranslationsButtonEn {
|
class _TranslationsButtonZh extends TranslationsButtonEn {
|
||||||
_TranslationsButtonZh._(this._root);
|
_TranslationsButtonZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -117,23 +123,25 @@ class _TranslationsButtonZh implements TranslationsButtonEn {
|
|||||||
@override String get unmute => '解除静音';
|
@override String get unmute => '解除静音';
|
||||||
@override String get share => '分享';
|
@override String get share => '分享';
|
||||||
@override String get save => '保存';
|
@override String get save => '保存';
|
||||||
|
@override String get connect => '連接';
|
||||||
|
@override String get settings => '設定';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: embed
|
// Path: embed
|
||||||
class _TranslationsEmbedZh implements TranslationsEmbedEn {
|
class _TranslationsEmbedZh extends TranslationsEmbedEn {
|
||||||
_TranslationsEmbedZh._(this._root);
|
_TranslationsEmbedZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String article_by({ required Object name}) => '文章來源: ${name}';
|
@override String article_by({required Object name}) => '文章來源: ${name}';
|
||||||
@override String note_by({ required Object name}) => '${name} 的筆記';
|
@override String note_by({required Object name}) => '${name} 的筆記';
|
||||||
@override String live_stream_by({ required Object name}) => 'Live stream by ${name}';
|
@override String live_stream_by({required Object name}) => 'Live stream by ${name}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream_list
|
// Path: stream_list
|
||||||
class _TranslationsStreamListZh implements TranslationsStreamListEn {
|
class _TranslationsStreamListZh extends TranslationsStreamListEn {
|
||||||
_TranslationsStreamListZh._(this._root);
|
_TranslationsStreamListZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -145,37 +153,50 @@ class _TranslationsStreamListZh implements TranslationsStreamListEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap
|
// Path: zap
|
||||||
class _TranslationsZapZh implements TranslationsZapEn {
|
class _TranslationsZapZh extends TranslationsZapEn {
|
||||||
_TranslationsZapZh._(this._root);
|
_TranslationsZapZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String title({ required Object name}) => '打閃${name}';
|
@override String title({required Object name}) => '打閃${name}';
|
||||||
@override String get custom_amount => '自訂金額';
|
@override String get custom_amount => '自訂金額';
|
||||||
@override String get confirm => '確認';
|
@override String get confirm => '確認';
|
||||||
@override String get comment => '評論';
|
@override String get comment => '評論';
|
||||||
@override String button_zap_ready({ required Object amount}) => '打閃 ${amount} 聰';
|
@override String button_zap_ready({required Object amount}) => '打閃 ${amount} 聰';
|
||||||
@override String get button_zap => '打閃';
|
@override String get button_zap => '打閃';
|
||||||
@override String get button_open_wallet => '在錢包中開啟';
|
@override String get button_open_wallet => '在錢包中開啟';
|
||||||
|
@override String get button_connect_wallet => '連接錢包';
|
||||||
@override String get copy => '複製到剪貼簿';
|
@override String get copy => '複製到剪貼簿';
|
||||||
@override late final _TranslationsZapErrorZh error = _TranslationsZapErrorZh._(_root);
|
@override late final _TranslationsZapErrorZh error = _TranslationsZapErrorZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile
|
// Path: profile
|
||||||
class _TranslationsProfileZh implements TranslationsProfileEn {
|
class _TranslationsProfileZh extends TranslationsProfileEn {
|
||||||
_TranslationsProfileZh._(this._root);
|
_TranslationsProfileZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get past_streams => '過去的直播';
|
@override String get past_streams => '過去的直播';
|
||||||
@override late final _TranslationsProfileEditZh edit = _TranslationsProfileEditZh._(_root);
|
}
|
||||||
|
|
||||||
|
// Path: settings
|
||||||
|
class _TranslationsSettingsZh extends TranslationsSettingsEn {
|
||||||
|
_TranslationsSettingsZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get button_profile => '編輯個人資料';
|
||||||
|
@override String get button_wallet => '錢包設定';
|
||||||
|
@override late final _TranslationsSettingsProfileZh profile = _TranslationsSettingsProfileZh._(_root);
|
||||||
|
@override late final _TranslationsSettingsWalletZh wallet = _TranslationsSettingsWalletZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login
|
// Path: login
|
||||||
class _TranslationsLoginZh implements TranslationsLoginEn {
|
class _TranslationsLoginZh extends TranslationsLoginEn {
|
||||||
_TranslationsLoginZh._(this._root);
|
_TranslationsLoginZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -187,9 +208,33 @@ class _TranslationsLoginZh implements TranslationsLoginEn {
|
|||||||
@override late final _TranslationsLoginErrorZh error = _TranslationsLoginErrorZh._(_root);
|
@override late final _TranslationsLoginErrorZh error = _TranslationsLoginErrorZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live
|
||||||
|
class _TranslationsLiveZh extends TranslationsLiveEn {
|
||||||
|
_TranslationsLiveZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get start => '開始直播';
|
||||||
|
@override String get configure_stream => '設定串流';
|
||||||
|
@override String get endpoint => '終點';
|
||||||
|
@override String get accept_tos => '接受服務條款';
|
||||||
|
@override String balance_left({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
@override String get title => '標題';
|
||||||
|
@override String get summary => '摘要';
|
||||||
|
@override String get image => '封面圖片';
|
||||||
|
@override String get tags => '標籤';
|
||||||
|
@override String get nsfw => 'NSFW 內容';
|
||||||
|
@override String get nsfw_description => '請檢查此串流是否包含裸體或色情內容。';
|
||||||
|
@override late final _TranslationsLiveErrorZh error = _TranslationsLiveErrorZh._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.status
|
// Path: stream.status
|
||||||
class _TranslationsStreamStatusZh implements TranslationsStreamStatusEn {
|
class _TranslationsStreamStatusZh extends TranslationsStreamStatusEn {
|
||||||
_TranslationsStreamStatusZh._(this._root);
|
_TranslationsStreamStatusZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -200,34 +245,34 @@ class _TranslationsStreamStatusZh implements TranslationsStreamStatusEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat
|
// Path: stream.chat
|
||||||
class _TranslationsStreamChatZh implements TranslationsStreamChatEn {
|
class _TranslationsStreamChatZh extends TranslationsStreamChatEn {
|
||||||
_TranslationsStreamChatZh._(this._root);
|
_TranslationsStreamChatZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get disabled => '關閉聊天';
|
@override String get disabled => '關閉聊天';
|
||||||
@override String disabled_timeout({ required Object time}) => '超時過期: ${time}';
|
@override String disabled_timeout({required Object time}) => '超時過期: ${time}';
|
||||||
|
|
||||||
/// 顯示逾時事件的聊天訊息
|
/// 顯示逾時事件的聊天訊息
|
||||||
@override TextSpan timeout({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' 超時 '),
|
const TextSpan(text: ' 超時 '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
/// 聊天底部的流結束頁尾
|
/// 聊天底部的流結束頁尾
|
||||||
@override String get ended => '串流結束';
|
@override String get ended => '串流結束';
|
||||||
|
|
||||||
/// 聊天訊息顯示串流斷點
|
/// 聊天訊息顯示串流斷點
|
||||||
@override TextSpan zap({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' 打閃了 '),
|
const TextSpan(text: ' 打閃了 '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' 聰'),
|
const TextSpan(text: ' 聰'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
|
|
||||||
@override late final _TranslationsStreamChatWriteZh write = _TranslationsStreamChatWriteZh._(_root);
|
@override late final _TranslationsStreamChatWriteZh write = _TranslationsStreamChatWriteZh._(_root);
|
||||||
@override late final _TranslationsStreamChatBadgeZh badge = _TranslationsStreamChatBadgeZh._(_root);
|
@override late final _TranslationsStreamChatBadgeZh badge = _TranslationsStreamChatBadgeZh._(_root);
|
||||||
@ -235,8 +280,8 @@ class _TranslationsStreamChatZh implements TranslationsStreamChatEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: zap.error
|
// Path: zap.error
|
||||||
class _TranslationsZapErrorZh implements TranslationsZapErrorEn {
|
class _TranslationsZapErrorZh extends TranslationsZapErrorEn {
|
||||||
_TranslationsZapErrorZh._(this._root);
|
_TranslationsZapErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -246,23 +291,39 @@ class _TranslationsZapErrorZh implements TranslationsZapErrorEn {
|
|||||||
@override String get no_lud16 => '未找到閃電地址';
|
@override String get no_lud16 => '未找到閃電地址';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit
|
// Path: settings.profile
|
||||||
class _TranslationsProfileEditZh implements TranslationsProfileEditEn {
|
class _TranslationsSettingsProfileZh extends TranslationsSettingsProfileEn {
|
||||||
_TranslationsProfileEditZh._(this._root);
|
_TranslationsSettingsProfileZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get display_name => '顯示名稱';
|
@override String get display_name => '顯示名稱';
|
||||||
@override String get about => '關於';
|
@override String get about => '關於';
|
||||||
@override String get nip05 => 'Nostr 地址';
|
@override String get nip05 => '地址';
|
||||||
@override String get lud16 => '閃電地址';
|
@override String get lud16 => '閃電地址';
|
||||||
@override late final _TranslationsProfileEditErrorZh error = _TranslationsProfileEditErrorZh._(_root);
|
@override late final _TranslationsSettingsProfileErrorZh error = _TranslationsSettingsProfileErrorZh._(_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet
|
||||||
|
class _TranslationsSettingsWalletZh extends TranslationsSettingsWalletEn {
|
||||||
|
_TranslationsSettingsWalletZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@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 String get balance => '平衡';
|
||||||
|
@override String get name => '錢包';
|
||||||
|
@override late final _TranslationsSettingsWalletErrorZh error = _TranslationsSettingsWalletErrorZh._(_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: login.error
|
// Path: login.error
|
||||||
class _TranslationsLoginErrorZh implements TranslationsLoginErrorEn {
|
class _TranslationsLoginErrorZh extends TranslationsLoginErrorEn {
|
||||||
_TranslationsLoginErrorZh._(this._root);
|
_TranslationsLoginErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -270,9 +331,21 @@ class _TranslationsLoginErrorZh implements TranslationsLoginErrorEn {
|
|||||||
@override String get invalid_key => '無效按鍵';
|
@override String get invalid_key => '無效按鍵';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: live.error
|
||||||
|
class _TranslationsLiveErrorZh extends TranslationsLiveErrorEn {
|
||||||
|
_TranslationsLiveErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get failed => '串流失敗';
|
||||||
|
@override String get connection_error => '連線錯誤';
|
||||||
|
@override String get start_failed => '串流啟動失敗,請檢查您的餘額';
|
||||||
|
}
|
||||||
|
|
||||||
// Path: stream.chat.write
|
// Path: stream.chat.write
|
||||||
class _TranslationsStreamChatWriteZh implements TranslationsStreamChatWriteEn {
|
class _TranslationsStreamChatWriteZh extends TranslationsStreamChatWriteEn {
|
||||||
_TranslationsStreamChatWriteZh._(this._root);
|
_TranslationsStreamChatWriteZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -289,8 +362,8 @@ class _TranslationsStreamChatWriteZh implements TranslationsStreamChatWriteEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.badge
|
// Path: stream.chat.badge
|
||||||
class _TranslationsStreamChatBadgeZh implements TranslationsStreamChatBadgeEn {
|
class _TranslationsStreamChatBadgeZh extends TranslationsStreamChatBadgeEn {
|
||||||
_TranslationsStreamChatBadgeZh._(this._root);
|
_TranslationsStreamChatBadgeZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -301,26 +374,26 @@ class _TranslationsStreamChatBadgeZh implements TranslationsStreamChatBadgeEn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Path: stream.chat.raid
|
// Path: stream.chat.raid
|
||||||
class _TranslationsStreamChatRaidZh implements TranslationsStreamChatRaidEn {
|
class _TranslationsStreamChatRaidZh extends TranslationsStreamChatRaidEn {
|
||||||
_TranslationsStreamChatRaidZh._(this._root);
|
_TranslationsStreamChatRaidZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// 聊天突擊消息到另一個串流
|
/// 聊天突擊消息到另一個串流
|
||||||
@override String to({ required Object name}) => 'RAIDING ${name}';
|
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||||
|
|
||||||
/// 來自其他串流的聊天突襲訊息
|
/// 來自其他串流的聊天突襲訊息
|
||||||
@override String from({ required Object name}) => 'RAID FROM ${name}';
|
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||||
|
|
||||||
/// 自動騎乘倒數計時器
|
/// 自動騎乘倒數計時器
|
||||||
@override String countdown({ required Object time}) => '突襲 ${time}';
|
@override String countdown({required Object time}) => '突襲 ${time}';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: profile.edit.error
|
// Path: settings.profile.error
|
||||||
class _TranslationsProfileEditErrorZh implements TranslationsProfileEditErrorEn {
|
class _TranslationsSettingsProfileErrorZh extends TranslationsSettingsProfileErrorEn {
|
||||||
_TranslationsProfileEditErrorZh._(this._root);
|
_TranslationsSettingsProfileErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
@ -328,6 +401,17 @@ class _TranslationsProfileEditErrorZh implements TranslationsProfileEditErrorEn
|
|||||||
@override String get logged_out => '登出時無法編輯個人資料';
|
@override String get logged_out => '登出時無法編輯個人資料';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path: settings.wallet.error
|
||||||
|
class _TranslationsSettingsWalletErrorZh extends TranslationsSettingsWalletErrorEn {
|
||||||
|
_TranslationsSettingsWalletErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||||
|
|
||||||
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
@override String get logged_out => '登出時無法連接錢包';
|
||||||
|
@override String get nwc_auth_event_not_found => '未找到錢包認證事件';
|
||||||
|
}
|
||||||
|
|
||||||
/// Flat map(s) containing all translations.
|
/// Flat map(s) containing all translations.
|
||||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||||
extension on TranslationsZh {
|
extension on TranslationsZh {
|
||||||
@ -337,39 +421,41 @@ extension on TranslationsZh {
|
|||||||
case 'most_zapped_streamers': return '最多被擊中的溪流';
|
case 'most_zapped_streamers': return '最多被擊中的溪流';
|
||||||
case 'no_user_found': return '未找到使用者';
|
case 'no_user_found': return '未找到使用者';
|
||||||
case 'anon': return '匿名';
|
case 'anon': return '匿名';
|
||||||
|
case 'full_amount_sats': return ({required num n}) => '${NumberFormat.decimalPattern('zh').format(n)} Sats';
|
||||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
||||||
one: '1 個檢視器',
|
one: '1 個檢視器',
|
||||||
other: '${n} 觀眾',
|
other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
|
||||||
);
|
);
|
||||||
case 'stream.status.live': return '直播';
|
case 'stream.status.live': return '直播';
|
||||||
case 'stream.status.ended': return '結束';
|
case 'stream.status.ended': return '結束';
|
||||||
case 'stream.status.planned': return '計劃';
|
case 'stream.status.planned': return '計劃';
|
||||||
case 'stream.started': return ({ required Object timestamp}) => '開始 ${timestamp}';
|
case 'stream.started': return ({required Object timestamp}) => '開始 ${timestamp}';
|
||||||
|
case 'stream.notification': return ({required Object name}) => '${name} 已啟用!';
|
||||||
case 'stream.chat.disabled': return '關閉聊天';
|
case 'stream.chat.disabled': return '關閉聊天';
|
||||||
case 'stream.chat.disabled_timeout': return ({ required Object time}) => '超時過期: ${time}';
|
case 'stream.chat.disabled_timeout': return ({required Object time}) => '超時過期: ${time}';
|
||||||
case 'stream.chat.timeout': return ({ required InlineSpan mod, required InlineSpan user, required InlineSpan time, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||||
mod,
|
mod,
|
||||||
const TextSpan(text: ' 超時 '),
|
const TextSpan(text: ' 超時 '),
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' for '),
|
const TextSpan(text: ' for '),
|
||||||
time,
|
time,
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.ended': return '串流結束';
|
case 'stream.chat.ended': return '串流結束';
|
||||||
case 'stream.chat.zap': return ({ required InlineSpan user, required InlineSpan amount, TextStyle? style, GestureRecognizer? recognizer}) => TextSpan(children: [
|
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||||
user,
|
user,
|
||||||
const TextSpan(text: ' 打閃了 '),
|
const TextSpan(text: ' 打閃了 '),
|
||||||
amount,
|
amount,
|
||||||
const TextSpan(text: ' 聰'),
|
const TextSpan(text: ' 聰'),
|
||||||
], style: style, recognizer: recognizer);
|
]);
|
||||||
case 'stream.chat.write.label': return '寫訊息';
|
case 'stream.chat.write.label': return '寫訊息';
|
||||||
case 'stream.chat.write.no_signer': return '無法使用 npub 登入撰寫訊息';
|
case 'stream.chat.write.no_signer': return '無法使用 npub 登入撰寫訊息';
|
||||||
case 'stream.chat.write.login': return '請登入以傳送訊息';
|
case 'stream.chat.write.login': return '請登入以傳送訊息';
|
||||||
case 'stream.chat.badge.awarded_to': return '頒發給';
|
case 'stream.chat.badge.awarded_to': return '頒發給';
|
||||||
case 'stream.chat.raid.to': return ({ required Object name}) => 'RAIDING ${name}';
|
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.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||||
case 'stream.chat.raid.countdown': return ({ required Object time}) => '突襲 ${time}';
|
case 'stream.chat.raid.countdown': return ({required Object time}) => '突襲 ${time}';
|
||||||
case 'goal.title': return ({ required Object amount}) => '目標:${amount}';
|
case 'goal.title': return ({required Object amount}) => '目標:${amount}';
|
||||||
case 'goal.remaining': return ({ required Object amount}) => '剩餘: ${amount}';
|
case 'goal.remaining': return ({required Object amount}) => '剩餘: ${amount}';
|
||||||
case 'goal.complete': return '完成';
|
case 'goal.complete': return '完成';
|
||||||
case 'button.login': return '登錄';
|
case 'button.login': return '登錄';
|
||||||
case 'button.logout': return '登出';
|
case 'button.logout': return '登出';
|
||||||
@ -380,35 +466,65 @@ extension on TranslationsZh {
|
|||||||
case 'button.unmute': return '解除静音';
|
case 'button.unmute': return '解除静音';
|
||||||
case 'button.share': return '分享';
|
case 'button.share': return '分享';
|
||||||
case 'button.save': return '保存';
|
case 'button.save': return '保存';
|
||||||
case 'embed.article_by': return ({ required Object name}) => '文章來源: ${name}';
|
case 'button.connect': return '連接';
|
||||||
case 'embed.note_by': return ({ required Object name}) => '${name} 的筆記';
|
case 'button.settings': return '設定';
|
||||||
case 'embed.live_stream_by': return ({ required Object name}) => 'Live stream by ${name}';
|
case 'embed.article_by': return ({required Object name}) => '文章來源: ${name}';
|
||||||
|
case 'embed.note_by': return ({required Object name}) => '${name} 的筆記';
|
||||||
|
case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
|
||||||
case 'stream_list.following': return '已關注';
|
case 'stream_list.following': return '已關注';
|
||||||
case 'stream_list.live': return '直播';
|
case 'stream_list.live': return '直播';
|
||||||
case 'stream_list.planned': return '已計畫';
|
case 'stream_list.planned': return '已計畫';
|
||||||
case 'stream_list.ended': return '已結束';
|
case 'stream_list.ended': return '已結束';
|
||||||
case 'zap.title': return ({ required Object name}) => '打閃${name}';
|
case 'zap.title': return ({required Object name}) => '打閃${name}';
|
||||||
case 'zap.custom_amount': return '自訂金額';
|
case 'zap.custom_amount': return '自訂金額';
|
||||||
case 'zap.confirm': return '確認';
|
case 'zap.confirm': return '確認';
|
||||||
case 'zap.comment': return '評論';
|
case 'zap.comment': return '評論';
|
||||||
case 'zap.button_zap_ready': return ({ required Object amount}) => '打閃 ${amount} 聰';
|
case 'zap.button_zap_ready': return ({required Object amount}) => '打閃 ${amount} 聰';
|
||||||
case 'zap.button_zap': return '打閃';
|
case 'zap.button_zap': return '打閃';
|
||||||
case 'zap.button_open_wallet': return '在錢包中開啟';
|
case 'zap.button_open_wallet': return '在錢包中開啟';
|
||||||
|
case 'zap.button_connect_wallet': return '連接錢包';
|
||||||
case 'zap.copy': return '複製到剪貼簿';
|
case 'zap.copy': return '複製到剪貼簿';
|
||||||
case 'zap.error.invalid_custom_amount': return '無效自訂金額';
|
case 'zap.error.invalid_custom_amount': return '無效自訂金額';
|
||||||
case 'zap.error.no_wallet': return '未安裝閃電錢夾';
|
case 'zap.error.no_wallet': return '未安裝閃電錢夾';
|
||||||
case 'zap.error.no_lud16': return '未找到閃電地址';
|
case 'zap.error.no_lud16': return '未找到閃電地址';
|
||||||
case 'profile.past_streams': return '過去的直播';
|
case 'profile.past_streams': return '過去的直播';
|
||||||
case 'profile.edit.display_name': return '顯示名稱';
|
case 'settings.button_profile': return '編輯個人資料';
|
||||||
case 'profile.edit.about': return '關於';
|
case 'settings.button_wallet': return '錢包設定';
|
||||||
case 'profile.edit.nip05': return 'Nostr 地址';
|
case 'settings.profile.display_name': return '顯示名稱';
|
||||||
case 'profile.edit.lud16': return '閃電地址';
|
case 'settings.profile.about': return '關於';
|
||||||
case 'profile.edit.error.logged_out': return '登出時無法編輯個人資料';
|
case 'settings.profile.nip05': return '地址';
|
||||||
|
case 'settings.profile.lud16': return '閃電地址';
|
||||||
|
case 'settings.profile.error.logged_out': return '登出時無法編輯個人資料';
|
||||||
|
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.balance': return '平衡';
|
||||||
|
case 'settings.wallet.name': return '錢包';
|
||||||
|
case 'settings.wallet.error.logged_out': return '登出時無法連接錢包';
|
||||||
|
case 'settings.wallet.error.nwc_auth_event_not_found': return '未找到錢包認證事件';
|
||||||
case 'login.username': return '用戶名';
|
case 'login.username': return '用戶名';
|
||||||
case 'login.amber': return '使用 Amber 登入';
|
case 'login.amber': return '使用 Amber 登入';
|
||||||
case 'login.key': return '使用鑰匙登入';
|
case 'login.key': return '使用鑰匙登入';
|
||||||
case 'login.create': return '創建帳戶';
|
case 'login.create': return '創建帳戶';
|
||||||
case 'login.error.invalid_key': return '無效按鍵';
|
case 'login.error.invalid_key': return '無效按鍵';
|
||||||
|
case 'live.start': return '開始直播';
|
||||||
|
case 'live.configure_stream': return '設定串流';
|
||||||
|
case 'live.endpoint': return '終點';
|
||||||
|
case 'live.accept_tos': return '接受服務條款';
|
||||||
|
case 'live.balance_left': return ({required num n, required Object time}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('zh'))(n,
|
||||||
|
zero: '∞',
|
||||||
|
other: '~${time}',
|
||||||
|
);
|
||||||
|
case 'live.title': return '標題';
|
||||||
|
case 'live.summary': return '摘要';
|
||||||
|
case 'live.image': return '封面圖片';
|
||||||
|
case 'live.tags': return '標籤';
|
||||||
|
case 'live.nsfw': return 'NSFW 內容';
|
||||||
|
case 'live.nsfw_description': return '請檢查此串流是否包含裸體或色情內容。';
|
||||||
|
case 'live.error.failed': return '串流失敗';
|
||||||
|
case 'live.error.connection_error': return '連線錯誤';
|
||||||
|
case 'live.error.start_failed': return '串流啟動失敗,請檢查您的餘額';
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: Username
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|
@ -8,14 +8,12 @@ no_user_found: لم يتم العثور على مستخدم
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: لم يتم العثور على مستخدم عند البحث
|
description: لم يتم العثور على مستخدم عند البحث
|
||||||
anon: هوية مخفية
|
anon: هوية مخفية
|
||||||
|
full_amount_sats: "${n:decimalPattern} دولار ساتس"
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 مشاهد
|
one: 1 مشاهد
|
||||||
other: $n المشاهدون
|
other: "{n:decimalPattern} المشاهدين"
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: عدد مشاهدي البث
|
description: عدد مشاهدي البث
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: في
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: مستخدم مجهول
|
description: مستخدم مجهول
|
||||||
stream:
|
stream:
|
||||||
@ -24,10 +22,11 @@ stream:
|
|||||||
ended: انتهى
|
ended: انتهى
|
||||||
planned: مخطط
|
planned: مخطط
|
||||||
started: بدأ $timestamp
|
started: بدأ $timestamp
|
||||||
|
notification: ${name} بدأ البث المباشر!
|
||||||
chat:
|
chat:
|
||||||
disabled: تم تعطيل الدردشة
|
disabled: تم تعطيل الدردشة
|
||||||
disabled_timeout: "تنتهي المهلة: $time"
|
disabled_timeout: "تنتهي المهلة: $time"
|
||||||
timeout(rich): $mod انتهى الوقت $user لـ $time
|
timeout(rich): $mod انتهى الوقت $user لـ ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: رسالة دردشة تظهر أحداث المهلة
|
description: رسالة دردشة تظهر أحداث المهلة
|
||||||
ended: انتهى البث
|
ended: انتهى البث
|
||||||
@ -81,6 +80,8 @@ button:
|
|||||||
unmute: رفع الكتم
|
unmute: رفع الكتم
|
||||||
share: مشاركة
|
share: مشاركة
|
||||||
save: حفظ
|
save: حفظ
|
||||||
|
connect: الاتصال
|
||||||
|
settings: الإعدادات
|
||||||
embed:
|
embed:
|
||||||
article_by: مقال بقلم $name
|
article_by: مقال بقلم $name
|
||||||
note_by: ملاحظة من $name
|
note_by: ملاحظة من $name
|
||||||
@ -100,6 +101,7 @@ zap:
|
|||||||
button_zap_ready: أومض $amount ساتوشي
|
button_zap_ready: أومض $amount ساتوشي
|
||||||
button_zap: زاب
|
button_zap: زاب
|
||||||
button_open_wallet: فتح في المحفظة
|
button_open_wallet: فتح في المحفظة
|
||||||
|
button_connect_wallet: توصيل المحفظة
|
||||||
copy: نسخ إلى الحافظة
|
copy: نسخ إلى الحافظة
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: مبلغ مخصص غير صالح
|
invalid_custom_amount: مبلغ مخصص غير صالح
|
||||||
@ -107,13 +109,26 @@ zap:
|
|||||||
no_lud16: لم يتم العثور على عنوان البرق
|
no_lud16: لم يتم العثور على عنوان البرق
|
||||||
profile:
|
profile:
|
||||||
past_streams: التدفقات السابقة
|
past_streams: التدفقات السابقة
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: تعديل الملف الشخصي
|
||||||
|
button_wallet: إعدادات المحفظة
|
||||||
|
profile:
|
||||||
display_name: اسم العرض
|
display_name: اسم العرض
|
||||||
about: نبذة
|
about: نبذة عن
|
||||||
nip05: عنوان نوستر
|
nip05: عنوان نوستر
|
||||||
lud16: عنوان البرق
|
lud16: عنوان البرق
|
||||||
error:
|
error:
|
||||||
logged_out: لا يمكن تحرير ملف التعريف عند تسجيل الخروج
|
logged_out: لا يمكن تحرير ملف التعريف عند تسجيل الخروج
|
||||||
|
wallet:
|
||||||
|
connect_wallet: توصيل المحفظة (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: محفظة قطع الاتصال
|
||||||
|
connect_1tap: 1-التوصيل بنقرة 1
|
||||||
|
paste: لصق عنوان URL
|
||||||
|
balance: الرصيد
|
||||||
|
name: المحفظة
|
||||||
|
error:
|
||||||
|
logged_out: لا يمكن الاتصال بالمحفظة عند تسجيل الخروج
|
||||||
|
nwc_auth_event_not_found: لم يتم العثور على حدث مصادقة المحفظة
|
||||||
login:
|
login:
|
||||||
username: اسم المستخدم
|
username: اسم المستخدم
|
||||||
amber: تسجيل الدخول مع آمبر
|
amber: تسجيل الدخول مع آمبر
|
||||||
@ -121,3 +136,21 @@ login:
|
|||||||
create: إنشاء حساب
|
create: إنشاء حساب
|
||||||
error:
|
error:
|
||||||
invalid_key: مفتاح غير صالح
|
invalid_key: مفتاح غير صالح
|
||||||
|
live:
|
||||||
|
start: ابدأ البث المباشر
|
||||||
|
configure_stream: تكوين الدفق
|
||||||
|
endpoint: نقطة النهاية
|
||||||
|
accept_tos: قبول شروط الخدمة
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: العنوان
|
||||||
|
summary: الملخص
|
||||||
|
image: صورة الغلاف
|
||||||
|
tags: الوسوم
|
||||||
|
nsfw: محتوى غير لائق جنسيًا
|
||||||
|
nsfw_description: تحقق هنا إذا كان هذا البث يحتوي على محتوى إباحي أو عري.
|
||||||
|
error:
|
||||||
|
failed: فشل البث
|
||||||
|
connection_error: خطأ في الاتصال
|
||||||
|
start_failed: فشل بدء البث فشل، يرجى التحقق من رصيدك
|
||||||
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: Username
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|
@ -9,14 +9,12 @@ no_user_found: Nebyl nalezen žádný uživatel
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Při vyhledávání nebyl nalezen žádný uživatel
|
description: Při vyhledávání nebyl nalezen žádný uživatel
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 divák
|
one: 1 divák
|
||||||
other: $n diváci
|
other: ${n:decimalPattern} diváků
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Počet diváků streamu
|
description: Počet diváků streamu
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Anonymní uživatel
|
description: Anonymní uživatel
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: KONEC
|
ended: KONEC
|
||||||
planned: PLÁNOVANÉ
|
planned: PLÁNOVANÉ
|
||||||
started: Založeno $timestamp
|
started: Založeno $timestamp
|
||||||
|
notification: ${name} byl spuštěn!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT ZRUŠEN
|
disabled: CHAT ZRUŠEN
|
||||||
disabled_timeout: "Časový limit vyprší: $time"
|
disabled_timeout: "Časový limit vyprší: $time"
|
||||||
timeout(rich): $mod vypršel čas $user pro $time
|
timeout(rich): $mod vypršel čas $user pro ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Zpráva chatu zobrazující události časového limitu
|
description: Zpráva chatu zobrazující události časového limitu
|
||||||
ended: STREAM UKONČEN
|
ended: STREAM UKONČEN
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Zrušit ztlumení
|
unmute: Zrušit ztlumení
|
||||||
share: Sdílet
|
share: Sdílet
|
||||||
save: Uložit
|
save: Uložit
|
||||||
|
connect: Připojení
|
||||||
|
settings: Nastavení
|
||||||
embed:
|
embed:
|
||||||
article_by: Článek na $name
|
article_by: Článek na $name
|
||||||
note_by: Poznámka $name
|
note_by: Poznámka $name
|
||||||
@ -101,6 +102,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Otevřít v peněžence
|
button_open_wallet: Otevřít v peněžence
|
||||||
|
button_connect_wallet: Připojení peněženky
|
||||||
copy: Zkopírováno do schránky
|
copy: Zkopírováno do schránky
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Neplatná vlastní částka
|
invalid_custom_amount: Neplatná vlastní částka
|
||||||
@ -108,13 +110,26 @@ zap:
|
|||||||
no_lud16: Nebyla nalezena žádná adresa blesku
|
no_lud16: Nebyla nalezena žádná adresa blesku
|
||||||
profile:
|
profile:
|
||||||
past_streams: Minulé proudy
|
past_streams: Minulé proudy
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Upravit profil
|
||||||
|
button_wallet: Nastavení peněženky
|
||||||
|
profile:
|
||||||
display_name: Zobrazení názvu
|
display_name: Zobrazení názvu
|
||||||
about: O stránkách
|
about: O stránkách
|
||||||
nip05: Adresa Nostr
|
nip05: Adresa Nostr
|
||||||
lud16: Adresa blesku
|
lud16: Adresa blesku
|
||||||
error:
|
error:
|
||||||
logged_out: Nelze upravit profil, když je odhlášený
|
logged_out: Nelze upravit profil, když je odhlášený
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Odpojení peněženky
|
||||||
|
connect_1tap: Připojení 1 kohoutku
|
||||||
|
paste: Vložit adresu URL
|
||||||
|
balance: Bilance
|
||||||
|
name: Peněženka
|
||||||
|
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:
|
login:
|
||||||
username: Uživatelské jméno
|
username: Uživatelské jméno
|
||||||
amber: Přihlášení pomocí Amber
|
amber: Přihlášení pomocí Amber
|
||||||
@ -122,3 +137,21 @@ login:
|
|||||||
create: Vytvořit účet
|
create: Vytvořit účet
|
||||||
error:
|
error:
|
||||||
invalid_key: Neplatný klíč
|
invalid_key: Neplatný klíč
|
||||||
|
live:
|
||||||
|
start: PŘEJÍT NA ŽIVOT
|
||||||
|
configure_stream: Konfigurace streamu
|
||||||
|
endpoint: Koncový bod
|
||||||
|
accept_tos: Přijmout TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Název
|
||||||
|
summary: Souhrn
|
||||||
|
image: Obrázek na obálce
|
||||||
|
tags: Štítky
|
||||||
|
nsfw: Obsah NSFW
|
||||||
|
nsfw_description: Zde zkontrolujte, zda tento stream obsahuje nahotu nebo pornografický obsah.
|
||||||
|
error:
|
||||||
|
failed: Stream se nezdařil
|
||||||
|
connection_error: Chyba připojení
|
||||||
|
start_failed: Spuštění streamu se nezdařilo, zkontrolujte prosím zůstatek
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Ingen bruger fundet
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Ingen bruger fundet ved søgning
|
description: Ingen bruger fundet ved søgning
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 seer
|
one: 1 seer
|
||||||
other: $n Seere
|
other: ${n:decimalPattern} seere
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Antal seere af streamingen
|
description: Antal seere af streamingen
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: En anonym bruger
|
description: En anonym bruger
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: AFSLUTTET
|
ended: AFSLUTTET
|
||||||
planned: PLANLAGT
|
planned: PLANLAGT
|
||||||
started: Startet $timestamp
|
started: Startet $timestamp
|
||||||
|
notification: ${name} gik live!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DEAKTIVERET
|
disabled: CHAT DEAKTIVERET
|
||||||
disabled_timeout: "Timeout udløber: $time"
|
disabled_timeout: "Timeout udløber: $time"
|
||||||
timeout(rich): $mod udløbet $user for $time
|
timeout(rich): $mod udløbet $user for ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chatbesked, der viser timeout-hændelser
|
description: Chatbesked, der viser timeout-hændelser
|
||||||
ended: STREAM AFSLUTTET
|
ended: STREAM AFSLUTTET
|
||||||
@ -81,6 +80,8 @@ button:
|
|||||||
unmute: Slå lyden fra
|
unmute: Slå lyden fra
|
||||||
share: Del
|
share: Del
|
||||||
save: Gemme
|
save: Gemme
|
||||||
|
connect: Opret forbindelse
|
||||||
|
settings: Indstillinger
|
||||||
embed:
|
embed:
|
||||||
article_by: Artikel af $name
|
article_by: Artikel af $name
|
||||||
note_by: Note fra $name
|
note_by: Note fra $name
|
||||||
@ -101,6 +102,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Åbn i tegnebogen
|
button_open_wallet: Åbn i tegnebogen
|
||||||
|
button_connect_wallet: Forbind tegnebog
|
||||||
copy: Kopieret til udklipsholder
|
copy: Kopieret til udklipsholder
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Ugyldigt brugerdefineret beløb
|
invalid_custom_amount: Ugyldigt brugerdefineret beløb
|
||||||
@ -108,13 +110,26 @@ zap:
|
|||||||
no_lud16: Ingen lyn-adresse fundet
|
no_lud16: Ingen lyn-adresse fundet
|
||||||
profile:
|
profile:
|
||||||
past_streams: Tidligere strømme
|
past_streams: Tidligere strømme
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Rediger profil
|
||||||
|
button_wallet: Indstillinger for tegnebog
|
||||||
|
profile:
|
||||||
display_name: Vis navn
|
display_name: Vis navn
|
||||||
about: Omkring
|
about: Omkring
|
||||||
nip05: Nostr-adresse
|
nip05: Nostr-adresse
|
||||||
lud16: Adresse for lynnedslag
|
lud16: Adresse for lynnedslag
|
||||||
error:
|
error:
|
||||||
logged_out: Kan ikke redigere profil, når jeg er logget ud
|
logged_out: Kan ikke redigere profil, når jeg er logget ud
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Afbryd forbindelsen til tegnebogen
|
||||||
|
connect_1tap: 1-Tap-forbindelse
|
||||||
|
paste: Indsæt URL
|
||||||
|
balance: Balance
|
||||||
|
name: Tegnebog
|
||||||
|
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:
|
login:
|
||||||
username: Brugernavn
|
username: Brugernavn
|
||||||
amber: Log ind med Amber
|
amber: Log ind med Amber
|
||||||
@ -122,3 +137,21 @@ login:
|
|||||||
create: Opret konto
|
create: Opret konto
|
||||||
error:
|
error:
|
||||||
invalid_key: Ugyldig nøgle
|
invalid_key: Ugyldig nøgle
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Konfigurer stream
|
||||||
|
endpoint: Slutpunkt
|
||||||
|
accept_tos: Accepter TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titel
|
||||||
|
summary: Sammenfatning
|
||||||
|
image: Forsidebillede
|
||||||
|
tags: Tags
|
||||||
|
nsfw: NSFW-indhold
|
||||||
|
nsfw_description: Tjek her, om denne stream indeholder nøgenhed eller pornografisk indhold.
|
||||||
|
error:
|
||||||
|
failed: Strømmen mislykkedes
|
||||||
|
connection_error: Forbindelsesfejl
|
||||||
|
start_failed: Stream-start mislykkedes, tjek venligst din saldo
|
||||||
|
@ -4,39 +4,38 @@ upload_avatar: Avatar hochladen
|
|||||||
klicken, um den Upload zu starten
|
klicken, um den Upload zu starten
|
||||||
most_zapped_streamers: Meistgezappte Streamer
|
most_zapped_streamers: Meistgezappte Streamer
|
||||||
"@most_zapped_streamers":
|
"@most_zapped_streamers":
|
||||||
description: Überschrift über gelistete Top-Streamer von zaps
|
description: Überschrift über gelistete Top-Streamer nach Zaps
|
||||||
no_user_found: Kein Benutzer gefunden
|
no_user_found: Kein Benutzer gefunden
|
||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Kein Benutzer bei der Suche gefunden
|
description: Kein Benutzer bei der Suche gefunden
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 Zuschauer
|
one: 1 Zuschauer
|
||||||
other: $n Zuschauer
|
other: ${n:decimalPattern} Zuschauer
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Anzahl der Betrachter des Streams
|
description: Anzahl der Zuschauer des Streams
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Ein anonymer Benutzer
|
description: Ein anonymer Benutzer
|
||||||
stream:
|
stream:
|
||||||
status:
|
status:
|
||||||
live: LIVE
|
live: LIVE
|
||||||
ended: ENDED
|
ended: BEENDET
|
||||||
planned: GEPLANT
|
planned: GEPLANT
|
||||||
started: Gestartet $timestamp
|
started: Gestartet $timestamp
|
||||||
|
notification: ${name} ging live!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DEAKTIVIERT
|
disabled: CHAT DEAKTIVIERT
|
||||||
disabled_timeout: "Die Zeitüberschreitung läuft ab: $time"
|
disabled_timeout: "Timeout läuft ab: $time"
|
||||||
timeout(rich): $mod Zeitüberschreitung $user für $time
|
timeout(rich): $mod gibt $user einen Timeout für ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chat-Nachricht mit Zeitüberschreitungsereignissen
|
description: Chat-Nachricht mit Timeout-Ereignissen
|
||||||
ended: STREAM BEENDET
|
ended: STREAM BEENDET
|
||||||
"@ended":
|
"@ended":
|
||||||
description: Stream beendet Fußzeile am Ende des Chats
|
description: Stream beendet Fußzeile am Ende des Chats
|
||||||
zap(rich): $user hat $amount sats gezappt
|
zap(rich): $user hat $amount sats gezappt
|
||||||
"@zap":
|
"@zap":
|
||||||
description: Chatnachricht mit Stream Zaps
|
description: Chat-Nachricht mit Stream-Zaps
|
||||||
write:
|
write:
|
||||||
label: Nachricht schreiben
|
label: Nachricht schreiben
|
||||||
"@label":
|
"@label":
|
||||||
@ -83,6 +82,8 @@ button:
|
|||||||
unmute: Entstummen
|
unmute: Entstummen
|
||||||
share: Teilen
|
share: Teilen
|
||||||
save: Speichern
|
save: Speichern
|
||||||
|
connect: Verbinden Sie
|
||||||
|
settings: Einstellungen
|
||||||
embed:
|
embed:
|
||||||
article_by: Artikel von $name
|
article_by: Artikel von $name
|
||||||
note_by: Note von $name
|
note_by: Note von $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: $amount sats zappen
|
button_zap_ready: $amount sats zappen
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: In Brieftasche öffnen
|
button_open_wallet: In Brieftasche öffnen
|
||||||
|
button_connect_wallet: Brieftasche verbinden
|
||||||
copy: In die Zwischenablage kopiert
|
copy: In die Zwischenablage kopiert
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Ungültiger benutzerdefinierter Betrag
|
invalid_custom_amount: Ungültiger benutzerdefinierter Betrag
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Keine Blitzadresse gefunden
|
no_lud16: Keine Blitzadresse gefunden
|
||||||
profile:
|
profile:
|
||||||
past_streams: Vergangene Streams
|
past_streams: Vergangene Streams
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Profil bearbeiten
|
||||||
|
button_wallet: Wallet-Einstellungen
|
||||||
|
profile:
|
||||||
display_name: Name anzeigen
|
display_name: Name anzeigen
|
||||||
about: Über
|
about: Über
|
||||||
nip05: Nostr-Adresse
|
nip05: Nostr-Adresse
|
||||||
lud16: Lightning-Adresse
|
lud16: Blitz-Adresse
|
||||||
error:
|
error:
|
||||||
logged_out: Profil kann nicht bearbeitet werden, wenn es abgemeldet ist
|
logged_out: Profil kann nicht bearbeitet werden, wenn es abgemeldet ist
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Brieftasche abtrennen
|
||||||
|
connect_1tap: 1-Tap-Verbindung
|
||||||
|
paste: URL einfügen
|
||||||
|
balance: Bilanz
|
||||||
|
name: Brieftasche
|
||||||
|
error:
|
||||||
|
logged_out: Kann keine Verbindung zur Brieftasche herstellen, wenn ich abgemeldet bin
|
||||||
|
nwc_auth_event_not_found: Kein Wallet-Authentifizierungsereignis gefunden
|
||||||
login:
|
login:
|
||||||
username: Benutzername
|
username: Benutzername
|
||||||
amber: Anmeldung mit Amber
|
amber: Anmeldung mit Amber
|
||||||
@ -123,3 +138,22 @@ login:
|
|||||||
create: Konto erstellen
|
create: Konto erstellen
|
||||||
error:
|
error:
|
||||||
invalid_key: Ungültiger Schlüssel
|
invalid_key: Ungültiger Schlüssel
|
||||||
|
live:
|
||||||
|
start: LIVE GEHEN
|
||||||
|
configure_stream: Stream konfigurieren
|
||||||
|
endpoint: Endpunkt
|
||||||
|
accept_tos: TOS akzeptieren
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titel
|
||||||
|
summary: Zusammenfassung
|
||||||
|
image: Titelbild
|
||||||
|
tags: Tags
|
||||||
|
nsfw: NSFW-Inhalt
|
||||||
|
nsfw_description: Prüfen Sie hier, ob dieser Stream Nacktheit oder
|
||||||
|
pornografische Inhalte enthält.
|
||||||
|
error:
|
||||||
|
failed: Stream fehlgeschlagen
|
||||||
|
connection_error: Verbindungsfehler
|
||||||
|
start_failed: Streamstart fehlgeschlagen, bitte überprüfen Sie Ihr Guthaben
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Δεν βρέθηκε χρήστης
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Δεν βρέθηκε χρήστης κατά την αναζήτηση
|
description: Δεν βρέθηκε χρήστης κατά την αναζήτηση
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 θεατής
|
one: 1 θεατής
|
||||||
other: $n θεατές
|
other: ${n:decimalPattern} θεατές
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Αριθμός θεατών της ροής
|
description: Αριθμός θεατών της ροής
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Ένας ανώνυμος χρήστης
|
description: Ένας ανώνυμος χρήστης
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: ENDED
|
ended: ENDED
|
||||||
planned: ΣΧΕΔΙΑΣΜΟΣ
|
planned: ΣΧΕΔΙΑΣΜΟΣ
|
||||||
started: Ξεκίνησε $timestamp
|
started: Ξεκίνησε $timestamp
|
||||||
|
notification: ${name} βγήκε ζωντανά!
|
||||||
chat:
|
chat:
|
||||||
disabled: ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ
|
disabled: ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ
|
||||||
disabled_timeout: "Το χρονικό όριο λήγει: $time"
|
disabled_timeout: "Το χρονικό όριο λήγει: $time"
|
||||||
timeout(rich): $mod χρονομετρημένη λήξη $user για $time
|
timeout(rich): $mod χρονομετρημένη λήξη $user για ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
description: Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
||||||
ended: STREAM ΤΕΛΕΙΩΣΕ
|
ended: STREAM ΤΕΛΕΙΩΣΕ
|
||||||
@ -84,6 +83,8 @@ button:
|
|||||||
unmute: Αποσυνδέστε τη φωνή σας από το
|
unmute: Αποσυνδέστε τη φωνή σας από το
|
||||||
share: Μοιραστείτε το
|
share: Μοιραστείτε το
|
||||||
save: Αποθήκευση
|
save: Αποθήκευση
|
||||||
|
connect: Συνδέστε το
|
||||||
|
settings: Ρυθμίσεις
|
||||||
embed:
|
embed:
|
||||||
article_by: Άρθρο από $name
|
article_by: Άρθρο από $name
|
||||||
note_by: Σημείωση του $name
|
note_by: Σημείωση του $name
|
||||||
@ -104,6 +105,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Άνοιγμα στο πορτοφόλι
|
button_open_wallet: Άνοιγμα στο πορτοφόλι
|
||||||
|
button_connect_wallet: Connect Wallet
|
||||||
copy: Αντιγραφή στο πρόχειρο
|
copy: Αντιγραφή στο πρόχειρο
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Μη έγκυρο προσαρμοσμένο ποσό
|
invalid_custom_amount: Μη έγκυρο προσαρμοσμένο ποσό
|
||||||
@ -111,13 +113,26 @@ zap:
|
|||||||
no_lud16: Δεν βρέθηκε διεύθυνση κεραυνού
|
no_lud16: Δεν βρέθηκε διεύθυνση κεραυνού
|
||||||
profile:
|
profile:
|
||||||
past_streams: Προηγούμενα ρεύματα
|
past_streams: Προηγούμενα ρεύματα
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Επεξεργασία προφίλ
|
||||||
|
button_wallet: Ρυθμίσεις πορτοφολιού
|
||||||
|
profile:
|
||||||
display_name: Όνομα οθόνης
|
display_name: Όνομα οθόνης
|
||||||
about: Σχετικά με το
|
about: Σχετικά με το
|
||||||
nip05: Διεύθυνση Nostr
|
nip05: Διεύθυνση Nostr
|
||||||
lud16: Διεύθυνση Lightning
|
lud16: Διεύθυνση Lightning
|
||||||
error:
|
error:
|
||||||
logged_out: Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί
|
logged_out: Δεν μπορείτε να επεξεργαστείτε το προφίλ όταν έχετε αποσυνδεθεί
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Αποσύνδεση πορτοφολιού
|
||||||
|
connect_1tap: Σύνδεση 1 βρύσης
|
||||||
|
paste: Επικόλληση URL
|
||||||
|
balance: Υπόλοιπο
|
||||||
|
name: Πορτοφόλι
|
||||||
|
error:
|
||||||
|
logged_out: Δεν μπορώ να συνδεθώ με πορτοφόλι όταν έχω αποσυνδεθεί
|
||||||
|
nwc_auth_event_not_found: Δεν βρέθηκε συμβάν εξουσιοδότησης πορτοφολιού
|
||||||
login:
|
login:
|
||||||
username: Όνομα χρήστη
|
username: Όνομα χρήστη
|
||||||
amber: Σύνδεση με Amber
|
amber: Σύνδεση με Amber
|
||||||
@ -125,3 +140,21 @@ login:
|
|||||||
create: Δημιουργία λογαριασμού
|
create: Δημιουργία λογαριασμού
|
||||||
error:
|
error:
|
||||||
invalid_key: Μη έγκυρο κλειδί
|
invalid_key: Μη έγκυρο κλειδί
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Διαμόρφωση ροής
|
||||||
|
endpoint: Τελικό σημείο
|
||||||
|
accept_tos: Αποδοχή TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Τίτλος
|
||||||
|
summary: Περίληψη
|
||||||
|
image: Εικόνα εξωφύλλου
|
||||||
|
tags: Ετικέτες
|
||||||
|
nsfw: Περιεχόμενο NSFW
|
||||||
|
nsfw_description: Ελέγξτε εδώ αν αυτή η ροή περιέχει γυμνό ή πορνογραφικό περιεχόμενο.
|
||||||
|
error:
|
||||||
|
failed: Το ρεύμα απέτυχε
|
||||||
|
connection_error: Σφάλμα σύνδεσης
|
||||||
|
start_failed: Η εκκίνηση της ροής απέτυχε, παρακαλούμε ελέγξτε το υπόλοιπό σας
|
||||||
|
@ -8,14 +8,12 @@ no_user_found: No user found
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: No user found when searching
|
description: No user found when searching
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 viewer
|
one: 1 viewer
|
||||||
other: $n viewers
|
other: ${n:decimalPattern} viewers
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Number of viewers of the stream
|
description: Number of viewers of the stream
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: An anonymous user
|
description: An anonymous user
|
||||||
stream:
|
stream:
|
||||||
@ -24,10 +22,11 @@ stream:
|
|||||||
ended: ENDED
|
ended: ENDED
|
||||||
planned: PLANNED
|
planned: PLANNED
|
||||||
started: Started $timestamp
|
started: Started $timestamp
|
||||||
|
notification: ${name} went live!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DISABLED
|
disabled: CHAT DISABLED
|
||||||
disabled_timeout: "Timeout expires: $time"
|
disabled_timeout: "Timeout expires: $time"
|
||||||
timeout(rich): $mod timed out $user for $time
|
timeout(rich): $mod timed out $user for ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chat message showing timeout events
|
description: Chat message showing timeout events
|
||||||
ended: STREAM ENDED
|
ended: STREAM ENDED
|
||||||
@ -51,13 +50,13 @@ stream:
|
|||||||
"@awarded_to":
|
"@awarded_to":
|
||||||
description: Heading over list of users who are awarded a badge
|
description: Heading over list of users who are awarded a badge
|
||||||
raid:
|
raid:
|
||||||
to: RAIDING $name
|
to: RAIDING ${name}
|
||||||
"@to":
|
"@to":
|
||||||
description: Chat raid message to another stream
|
description: Chat raid message to another stream
|
||||||
from: RAID FROM $name
|
from: RAID FROM ${name}
|
||||||
"@from":
|
"@from":
|
||||||
description: Chat raid message from another stream
|
description: Chat raid message from another stream
|
||||||
countdown: Raiding in $time
|
countdown: Raiding in ${time}
|
||||||
"@countdown":
|
"@countdown":
|
||||||
description: Countdown timer for auto-raiding
|
description: Countdown timer for auto-raiding
|
||||||
goal:
|
goal:
|
||||||
@ -80,10 +79,12 @@ button:
|
|||||||
unmute: Unmute
|
unmute: Unmute
|
||||||
share: Share
|
share: Share
|
||||||
save: Save
|
save: Save
|
||||||
|
connect: Connect
|
||||||
|
settings: Settings
|
||||||
embed:
|
embed:
|
||||||
article_by: Article by $name
|
article_by: Article by ${name}
|
||||||
note_by: Note by $name
|
note_by: Note by $name
|
||||||
live_stream_by: Live stream by $name
|
live_stream_by: Live stream by ${name}
|
||||||
stream_list:
|
stream_list:
|
||||||
following: Following
|
following: Following
|
||||||
live: Live
|
live: Live
|
||||||
@ -99,6 +100,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Open in Wallet
|
button_open_wallet: Open in Wallet
|
||||||
|
button_connect_wallet: Connect Wallet
|
||||||
copy: Copied to clipboard
|
copy: Copied to clipboard
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Invalid custom amount
|
invalid_custom_amount: Invalid custom amount
|
||||||
@ -106,13 +108,26 @@ zap:
|
|||||||
no_lud16: No lightning address found
|
no_lud16: No lightning address found
|
||||||
profile:
|
profile:
|
||||||
past_streams: Past Streams
|
past_streams: Past Streams
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Edit Profile
|
||||||
|
button_wallet: Wallet Settings
|
||||||
|
profile:
|
||||||
display_name: Display Name
|
display_name: Display Name
|
||||||
about: About
|
about: About
|
||||||
nip05: Nostr Address
|
nip05: Nostr Address
|
||||||
lud16: Lightning Address
|
lud16: Lightning Address
|
||||||
error:
|
error:
|
||||||
logged_out: Cant edit profile when logged out
|
logged_out: Cant edit profile when logged out
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Disconnect Wallet
|
||||||
|
connect_1tap: 1-Tap Connection
|
||||||
|
paste: Paste URL
|
||||||
|
balance: Balance
|
||||||
|
name: Wallet
|
||||||
|
error:
|
||||||
|
logged_out: Cant connect wallet when logged out
|
||||||
|
nwc_auth_event_not_found: No wallet auth event found
|
||||||
login:
|
login:
|
||||||
username: Username
|
username: Username
|
||||||
amber: Login with Amber
|
amber: Login with Amber
|
||||||
@ -120,3 +135,21 @@ login:
|
|||||||
create: Create Account
|
create: Create Account
|
||||||
error:
|
error:
|
||||||
invalid_key: Invalid key
|
invalid_key: Invalid key
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Configure Stream
|
||||||
|
endpoint: Endpoint
|
||||||
|
accept_tos: Accept TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Title
|
||||||
|
summary: Summary
|
||||||
|
image: Cover Image
|
||||||
|
tags: Tags
|
||||||
|
nsfw: NSFW Content
|
||||||
|
nsfw_description: Check here if this stream contains nudity or pornographic content.
|
||||||
|
error:
|
||||||
|
failed: Stream failed
|
||||||
|
connection_error: Connection Error
|
||||||
|
start_failed: Stream start failed, please check your balance
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: No se ha encontrado ningún usuario
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: No se ha encontrado ningún usuario al realizar la búsqueda
|
description: No se ha encontrado ningún usuario al realizar la búsqueda
|
||||||
anon: Anónimo
|
anon: Anónimo
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 espectador
|
one: 1 espectador
|
||||||
other: $n espectadores
|
other: ${n:decimalPattern} espectadores
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Número de espectadores del flujo
|
description: Número de espectadores del flujo
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Un usuario anónimo
|
description: Un usuario anónimo
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: FIN
|
ended: FIN
|
||||||
planned: PLANIFICADO
|
planned: PLANIFICADO
|
||||||
started: Comenzó $timestamp
|
started: Comenzó $timestamp
|
||||||
|
notification: ${name} ¡se ha puesto en marcha!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DESHABILITADO
|
disabled: CHAT DESHABILITADO
|
||||||
disabled_timeout: "El tiempo de espera expira: $time"
|
disabled_timeout: "El tiempo de espera expira: $time"
|
||||||
timeout(rich): $mod timed out $user para $time
|
timeout(rich): $mod timed out $user para ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Mensaje de chat que muestra los eventos de tiempo de espera
|
description: Mensaje de chat que muestra los eventos de tiempo de espera
|
||||||
ended: STREAM FINED
|
ended: STREAM FINED
|
||||||
@ -84,6 +83,8 @@ button:
|
|||||||
unmute: Dejar de silenciar
|
unmute: Dejar de silenciar
|
||||||
share: Compartir
|
share: Compartir
|
||||||
save: Guardar
|
save: Guardar
|
||||||
|
connect: Conectar
|
||||||
|
settings: Ajustes
|
||||||
embed:
|
embed:
|
||||||
article_by: Artículo de $name
|
article_by: Artículo de $name
|
||||||
note_by: Nota de $name
|
note_by: Nota de $name
|
||||||
@ -104,6 +105,7 @@ zap:
|
|||||||
button_zap_ready: Zapear $amount sats
|
button_zap_ready: Zapear $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Abrir en cartera
|
button_open_wallet: Abrir en cartera
|
||||||
|
button_connect_wallet: Billetera Connect
|
||||||
copy: Copiado al portapapeles
|
copy: Copiado al portapapeles
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Importe personalizado no válido
|
invalid_custom_amount: Importe personalizado no válido
|
||||||
@ -111,13 +113,26 @@ zap:
|
|||||||
no_lud16: No se ha encontrado ninguna dirección de rayos
|
no_lud16: No se ha encontrado ninguna dirección de rayos
|
||||||
profile:
|
profile:
|
||||||
past_streams: Transmisiones anteriores
|
past_streams: Transmisiones anteriores
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Editar perfil
|
||||||
|
button_wallet: Configuración de la cartera
|
||||||
|
profile:
|
||||||
display_name: Mostrar nombre
|
display_name: Mostrar nombre
|
||||||
about: Sobre ti
|
about: Acerca de
|
||||||
nip05: Dirección Nostr
|
nip05: Dirección Nostr
|
||||||
lud16: Dirección del rayo
|
lud16: Dirección del rayo
|
||||||
error:
|
error:
|
||||||
logged_out: No se puede editar el perfil cuando se cierra la sesión
|
logged_out: No se puede editar el perfil cuando se cierra la sesión
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Cartera Connect (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Desconectar Cartera
|
||||||
|
connect_1tap: Conexión de 1 toma
|
||||||
|
paste: Pegar URL
|
||||||
|
balance: Saldo
|
||||||
|
name: Cartera
|
||||||
|
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:
|
login:
|
||||||
username: Usuario
|
username: Usuario
|
||||||
amber: Iniciar sesión con Amber
|
amber: Iniciar sesión con Amber
|
||||||
@ -125,3 +140,21 @@ login:
|
|||||||
create: Crear una cuenta
|
create: Crear una cuenta
|
||||||
error:
|
error:
|
||||||
invalid_key: Clave no válida
|
invalid_key: Clave no válida
|
||||||
|
live:
|
||||||
|
start: EN VIVO
|
||||||
|
configure_stream: Configurar Stream
|
||||||
|
endpoint: Punto final
|
||||||
|
accept_tos: Aceptar TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Título
|
||||||
|
summary: Resumen
|
||||||
|
image: Imagen de portada
|
||||||
|
tags: Etiquetas
|
||||||
|
nsfw: Contenido NSFW
|
||||||
|
nsfw_description: Compruebe aquí si este flujo contiene desnudos o contenido pornográfico.
|
||||||
|
error:
|
||||||
|
failed: Corriente fallida
|
||||||
|
connection_error: Error de conexión
|
||||||
|
start_failed: Error en el inicio de la transmisión, compruebe su saldo
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Käyttäjää ei löytynyt
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Käyttäjää ei löytynyt haun yhteydessä
|
description: Käyttäjää ei löytynyt haun yhteydessä
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 katsoja
|
one: 1 katsoja
|
||||||
other: $n katsojaa
|
other: ${n:decimalPattern} katsojat
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Streamin katsojien määrä
|
description: Streamin katsojien määrä
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Nimetön käyttäjä
|
description: Nimetön käyttäjä
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: ENDED
|
ended: ENDED
|
||||||
planned: SUUNNITELTU
|
planned: SUUNNITELTU
|
||||||
started: Aloitettu $timestamp
|
started: Aloitettu $timestamp
|
||||||
|
notification: ${name} meni suoraksi!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT POISTETTU KÄYTÖSTÄ
|
disabled: CHAT POISTETTU KÄYTÖSTÄ
|
||||||
disabled_timeout: "Aikakatkaisu päättyy: $time"
|
disabled_timeout: "Aikakatkaisu päättyy: $time"
|
||||||
timeout(rich): $mod ajastettu $user for $time
|
timeout(rich): $mod ajastettu $user for ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
description: Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
||||||
ended: STREAM PÄÄTTYNYT
|
ended: STREAM PÄÄTTYNYT
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Poista mykistys
|
unmute: Poista mykistys
|
||||||
share: Jaa
|
share: Jaa
|
||||||
save: Tallenna
|
save: Tallenna
|
||||||
|
connect: Yhdistä
|
||||||
|
settings: Asetukset
|
||||||
embed:
|
embed:
|
||||||
article_by: Artikkeli $name
|
article_by: Artikkeli $name
|
||||||
note_by: Viesti lähettäjältä $name
|
note_by: Viesti lähettäjältä $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount satsia
|
button_zap_ready: Zap $amount satsia
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Avaa lompakossa
|
button_open_wallet: Avaa lompakossa
|
||||||
|
button_connect_wallet: Yhdistä lompakko
|
||||||
copy: Kopioitu leikepöydälle
|
copy: Kopioitu leikepöydälle
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Virheellinen mukautettu määrä
|
invalid_custom_amount: Virheellinen mukautettu määrä
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Salamaosoitetta ei löytynyt
|
no_lud16: Salamaosoitetta ei löytynyt
|
||||||
profile:
|
profile:
|
||||||
past_streams: Aikaisemmat lähetykset
|
past_streams: Aikaisemmat lähetykset
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Muokkaa profiilia
|
||||||
|
button_wallet: Lompakon asetukset
|
||||||
|
profile:
|
||||||
display_name: Näytön nimi
|
display_name: Näytön nimi
|
||||||
about: Tietoja
|
about: Tietoja
|
||||||
nip05: Nostr-osoite
|
nip05: Nostr Osoite
|
||||||
lud16: Lightning-osoite
|
lud16: Salama osoite
|
||||||
error:
|
error:
|
||||||
logged_out: Ei voi muokata profiilia, kun on kirjautunut ulos
|
logged_out: Ei voi muokata profiilia, kun on kirjautunut ulos
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect-lompakko (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Irrota lompakko
|
||||||
|
connect_1tap: 1-Tap-liitäntä
|
||||||
|
paste: Liitä URL-osoite
|
||||||
|
balance: Balance
|
||||||
|
name: Lompakko
|
||||||
|
error:
|
||||||
|
logged_out: Ei voi muodostaa yhteyttä lompakkoon, kun on kirjautunut ulos
|
||||||
|
nwc_auth_event_not_found: Ei lompakko-auth-tapahtumaa löydetty
|
||||||
login:
|
login:
|
||||||
username: Käyttäjätunnus
|
username: Käyttäjätunnus
|
||||||
amber: Kirjaudu sisään Amber kanssa
|
amber: Kirjaudu sisään Amber kanssa
|
||||||
@ -123,3 +138,22 @@ login:
|
|||||||
create: Luo tili
|
create: Luo tili
|
||||||
error:
|
error:
|
||||||
invalid_key: Virheellinen avain
|
invalid_key: Virheellinen avain
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Määritä Stream
|
||||||
|
endpoint: Loppupiste
|
||||||
|
accept_tos: Hyväksy TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Otsikko
|
||||||
|
summary: Yhteenveto
|
||||||
|
image: Kansikuva
|
||||||
|
tags: Tunnisteet
|
||||||
|
nsfw: NSFW-sisältö
|
||||||
|
nsfw_description: Tarkista täältä, jos tämä stream sisältää alastomuutta tai
|
||||||
|
pornografista sisältöä.
|
||||||
|
error:
|
||||||
|
failed: Stream epäonnistui
|
||||||
|
connection_error: Yhteysvirhe
|
||||||
|
start_failed: Virran käynnistys epäonnistui, tarkista saldosi
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Aucun utilisateur trouvé
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Aucun utilisateur n'a été trouvé lors de la recherche
|
description: Aucun utilisateur n'a été trouvé lors de la recherche
|
||||||
anon: Anonyme
|
anon: Anonyme
|
||||||
|
full_amount_sats: "${n:decimalPattern} sats"
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 téléspectateur
|
one: 1 téléspectateur
|
||||||
other: $n spectateurs
|
other: "${n:decimalPattern} téléspectateurs"
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Nombre de spectateurs du flux
|
description: Nombre de spectateurs du flux
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Un utilisateur anonyme
|
description: Un utilisateur anonyme
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: FINI
|
ended: FINI
|
||||||
planned: PRÉVU
|
planned: PRÉVU
|
||||||
started: Commencé à $timestamp
|
started: Commencé à $timestamp
|
||||||
|
notification: ${name} est en ligne !
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DISABLED
|
disabled: CHAT DISABLED
|
||||||
disabled_timeout: "Le délai expire : $time"
|
disabled_timeout: "Le délai expire : $time"
|
||||||
timeout(rich): $mod $user a expiré dans le temps pour $time
|
timeout(rich): $mod $user a expiré dans le temps pour ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Message de chat indiquant les événements de dépassement de délai
|
description: Message de chat indiquant les événements de dépassement de délai
|
||||||
ended: STREAM ENDED
|
ended: STREAM ENDED
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Retirer sourdine
|
unmute: Retirer sourdine
|
||||||
share: Partager
|
share: Partager
|
||||||
save: Sauvegarder
|
save: Sauvegarder
|
||||||
|
connect: Connecter
|
||||||
|
settings: Paramètres
|
||||||
embed:
|
embed:
|
||||||
article_by: Article par $name
|
article_by: Article par $name
|
||||||
note_by: Note par $name
|
note_by: Note par $name
|
||||||
@ -101,6 +102,7 @@ zap:
|
|||||||
button_zap_ready: Zapper $amount sats
|
button_zap_ready: Zapper $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Ouvrir dans le portefeuille
|
button_open_wallet: Ouvrir dans le portefeuille
|
||||||
|
button_connect_wallet: Connecter le portefeuille
|
||||||
copy: Copié dans le presse-papiers
|
copy: Copié dans le presse-papiers
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Montant personnalisé non valide
|
invalid_custom_amount: Montant personnalisé non valide
|
||||||
@ -108,13 +110,26 @@ zap:
|
|||||||
no_lud16: Pas d'adresse éclair trouvée
|
no_lud16: Pas d'adresse éclair trouvée
|
||||||
profile:
|
profile:
|
||||||
past_streams: Streams passés
|
past_streams: Streams passés
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Modifier le profil
|
||||||
|
button_wallet: Paramètres du portefeuille
|
||||||
|
profile:
|
||||||
display_name: Nom d'affichage
|
display_name: Nom d'affichage
|
||||||
about: À propos
|
about: A propos de
|
||||||
nip05: Adresse Nostr
|
nip05: Nostr Adresse
|
||||||
lud16: Adresse Lightning
|
lud16: Adresse de la foudre
|
||||||
error:
|
error:
|
||||||
logged_out: Impossible de modifier le profil lorsque l'on est déconnecté
|
logged_out: Impossible de modifier le profil lorsque l'on est déconnecté
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Portefeuille Connect (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Déconnecter le portefeuille
|
||||||
|
connect_1tap: Connexion à 1 robinet
|
||||||
|
paste: Coller l'URL
|
||||||
|
balance: Équilibre
|
||||||
|
name: Portefeuille
|
||||||
|
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:
|
login:
|
||||||
username: Nom d’utilisateur
|
username: Nom d’utilisateur
|
||||||
amber: Se connecter avec Amber
|
amber: Se connecter avec Amber
|
||||||
@ -122,3 +137,22 @@ login:
|
|||||||
create: Créer un Compte
|
create: Créer un Compte
|
||||||
error:
|
error:
|
||||||
invalid_key: Clé non valide
|
invalid_key: Clé non valide
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Configurer le flux
|
||||||
|
endpoint: Point final
|
||||||
|
accept_tos: Accepter les CGU
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titre
|
||||||
|
summary: Résumé
|
||||||
|
image: Image de couverture
|
||||||
|
tags: Tags
|
||||||
|
nsfw: Contenu NSFW
|
||||||
|
nsfw_description: Cochez cette case si ce flux contient de la nudité ou du
|
||||||
|
contenu pornographique.
|
||||||
|
error:
|
||||||
|
failed: Échec du flux
|
||||||
|
connection_error: Erreur de connexion
|
||||||
|
start_failed: Le démarrage du flux a échoué, veuillez vérifier votre solde
|
||||||
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: Username
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|
@ -11,12 +11,9 @@ no_user_found: Nem talált felhasználó
|
|||||||
anon: Névtelen
|
anon: Névtelen
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 néző
|
one: 1 néző
|
||||||
other: $n néző
|
other: ${n:decimalPattern} nézők
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: A stream nézőinek száma
|
description: A stream nézőinek száma
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Egy névtelen felhasználó
|
description: Egy névtelen felhasználó
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +22,11 @@ stream:
|
|||||||
ended: ENDED
|
ended: ENDED
|
||||||
planned: TERVEZETT
|
planned: TERVEZETT
|
||||||
started: Elindult $timestamp
|
started: Elindult $timestamp
|
||||||
|
notification: ${name} elindult!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT KIKAPCSOLVA
|
disabled: CHAT KIKAPCSOLVA
|
||||||
disabled_timeout: "Az időkorlát lejár: $time"
|
disabled_timeout: "Az időkorlát lejár: $time"
|
||||||
timeout(rich): $mod időzített $user a $time számára
|
timeout(rich): $mod időzített $user a ${time}számára
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chat üzenet az időkorlátos események megjelenítésével
|
description: Chat üzenet az időkorlátos események megjelenítésével
|
||||||
ended: STREAM MEGSZÜNTETETT
|
ended: STREAM MEGSZÜNTETETT
|
||||||
@ -53,13 +51,13 @@ stream:
|
|||||||
"@awarded_to":
|
"@awarded_to":
|
||||||
description: Fejléc a jelvényt kapott felhasználók listája fölött
|
description: Fejléc a jelvényt kapott felhasználók listája fölött
|
||||||
raid:
|
raid:
|
||||||
to: RAIDING $name
|
to: RAIDING ${name}
|
||||||
"@to":
|
"@to":
|
||||||
description: Chat raid üzenet egy másik folyamba
|
description: Chat raid üzenet egy másik folyamba
|
||||||
from: RAID FROM $name
|
from: RAID FROM $name
|
||||||
"@from":
|
"@from":
|
||||||
description: Chat raid üzenet egy másik folyamból
|
description: Chat raid üzenet egy másik folyamból
|
||||||
countdown: Raiding a $time oldalon
|
countdown: Raiding a ${time} oldalon
|
||||||
"@countdown":
|
"@countdown":
|
||||||
description: Visszaszámláló időzítő az automatikus lovagláshoz
|
description: Visszaszámláló időzítő az automatikus lovagláshoz
|
||||||
goal:
|
goal:
|
||||||
@ -82,10 +80,12 @@ button:
|
|||||||
unmute: Némítás visszavonása
|
unmute: Némítás visszavonása
|
||||||
share: Megosztás
|
share: Megosztás
|
||||||
save: Mentés
|
save: Mentés
|
||||||
|
connect: Csatlakozás
|
||||||
|
settings: Beállítások
|
||||||
embed:
|
embed:
|
||||||
article_by: A $name cikke.
|
article_by: Cikk ${name}
|
||||||
note_by: $name bejegyzése
|
note_by: $name bejegyzése
|
||||||
live_stream_by: Élő közvetítés a $name oldalon
|
live_stream_by: Élő közvetítés a ${name} oldalon
|
||||||
stream_list:
|
stream_list:
|
||||||
following: Követettek bejegyzései
|
following: Követettek bejegyzései
|
||||||
live: Élő
|
live: Élő
|
||||||
@ -101,6 +101,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount satoshi
|
button_zap_ready: Zap $amount satoshi
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Megnyitás a pénztárcában
|
button_open_wallet: Megnyitás a pénztárcában
|
||||||
|
button_connect_wallet: Connect Wallet
|
||||||
copy: Vágólapra másolva
|
copy: Vágólapra másolva
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Érvénytelen egyéni összeg
|
invalid_custom_amount: Érvénytelen egyéni összeg
|
||||||
@ -108,13 +109,24 @@ zap:
|
|||||||
no_lud16: Nem talált villámcím
|
no_lud16: Nem talált villámcím
|
||||||
profile:
|
profile:
|
||||||
past_streams: Múltbeli Streamek
|
past_streams: Múltbeli Streamek
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Profil szerkesztése
|
||||||
|
button_wallet: Pénztárca beállítások
|
||||||
|
profile:
|
||||||
display_name: Megjelenített név
|
display_name: Megjelenített név
|
||||||
about: Névjegy
|
about: A oldalról
|
||||||
nip05: Nostr-cím
|
nip05: Nostr cím
|
||||||
lud16: Lightning-cím
|
lud16: Villám cím
|
||||||
error:
|
error:
|
||||||
logged_out: Kijelentkezve nem lehet profilt szerkeszteni
|
logged_out: Kijelentkezve nem lehet profilt szerkeszteni
|
||||||
|
wallet:
|
||||||
|
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:
|
login:
|
||||||
username: Felhasználónév
|
username: Felhasználónév
|
||||||
amber: Bejelentkezés Amber segítségével
|
amber: Bejelentkezés Amber segítségével
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Nessun utente trovato
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Nessun utente trovato durante la ricerca
|
description: Nessun utente trovato durante la ricerca
|
||||||
anon: Anonimo
|
anon: Anonimo
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 spettatore
|
one: 1 spettatore
|
||||||
other: $n spettatori
|
other: ${n:decimalPattern} spettatori
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Numero di spettatori del flusso
|
description: Numero di spettatori del flusso
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Un utente anonimo
|
description: Un utente anonimo
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: FINE
|
ended: FINE
|
||||||
planned: PREVISTO
|
planned: PREVISTO
|
||||||
started: Avviato $timestamp
|
started: Avviato $timestamp
|
||||||
|
notification: ${name} è andato in onda!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DISABILITATA
|
disabled: CHAT DISABILITATA
|
||||||
disabled_timeout: "Il timeout scade: $time"
|
disabled_timeout: "Il timeout scade: $time"
|
||||||
timeout(rich): $mod time out $user per $time
|
timeout(rich): $mod time out $user per ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Messaggio di chat che mostra gli eventi di timeout
|
description: Messaggio di chat che mostra gli eventi di timeout
|
||||||
ended: STREAM ENDED
|
ended: STREAM ENDED
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Riattiva
|
unmute: Riattiva
|
||||||
share: Condividi
|
share: Condividi
|
||||||
save: Salva
|
save: Salva
|
||||||
|
connect: Collegare
|
||||||
|
settings: Impostazioni
|
||||||
embed:
|
embed:
|
||||||
article_by: Articolo di $name
|
article_by: Articolo di $name
|
||||||
note_by: Nota di $name
|
note_by: Nota di $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Aprire nel portafoglio
|
button_open_wallet: Aprire nel portafoglio
|
||||||
|
button_connect_wallet: Portafoglio Connect
|
||||||
copy: Copiato negli appunti
|
copy: Copiato negli appunti
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Importo personalizzato non valido
|
invalid_custom_amount: Importo personalizzato non valido
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Nessun indirizzo di fulmine trovato
|
no_lud16: Nessun indirizzo di fulmine trovato
|
||||||
profile:
|
profile:
|
||||||
past_streams: Flussi passati
|
past_streams: Flussi passati
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Modifica profilo
|
||||||
|
button_wallet: Impostazioni del portafoglio
|
||||||
|
profile:
|
||||||
display_name: Nome visualizzato
|
display_name: Nome visualizzato
|
||||||
about: Info
|
about: Circa
|
||||||
nip05: Indirizzo Nostr
|
nip05: Indirizzo
|
||||||
lud16: Indirizzo del fulmine
|
lud16: Indirizzo del fulmine
|
||||||
error:
|
error:
|
||||||
logged_out: Impossibile modificare il profilo quando si è disconnessi
|
logged_out: Impossibile modificare il profilo quando si è disconnessi
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Portafoglio Connect (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Disconnettere il portafoglio
|
||||||
|
connect_1tap: Connessione a 1 rubinetto
|
||||||
|
paste: Incolla URL
|
||||||
|
balance: Equilibrio
|
||||||
|
name: Portafoglio
|
||||||
|
error:
|
||||||
|
logged_out: Impossibile connettere il portafoglio quando si è disconnessi
|
||||||
|
nwc_auth_event_not_found: Nessun evento wallet auth trovato
|
||||||
login:
|
login:
|
||||||
username: Nome utente
|
username: Nome utente
|
||||||
amber: Accesso con Amber
|
amber: Accesso con Amber
|
||||||
@ -123,3 +138,21 @@ login:
|
|||||||
create: Crea un account
|
create: Crea un account
|
||||||
error:
|
error:
|
||||||
invalid_key: Chiave non valida
|
invalid_key: Chiave non valida
|
||||||
|
live:
|
||||||
|
start: VAI IN DIRETTA
|
||||||
|
configure_stream: Configurare il flusso
|
||||||
|
endpoint: Punto finale
|
||||||
|
accept_tos: Accettare i TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titolo
|
||||||
|
summary: Sintesi
|
||||||
|
image: Immagine di copertina
|
||||||
|
tags: Tag
|
||||||
|
nsfw: Contenuto NSFW
|
||||||
|
nsfw_description: Controllare qui se questo streaming contiene nudità o contenuti pornografici.
|
||||||
|
error:
|
||||||
|
failed: Flusso fallito
|
||||||
|
connection_error: Errore di connessione
|
||||||
|
start_failed: Avvio del flusso fallito, controllare il saldo
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
upload_avatar: アバターのアップロード
|
upload_avatar: 画像アップロード
|
||||||
"@upload_avatar":
|
"@upload_avatar":
|
||||||
description: アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
description: アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
||||||
most_zapped_streamers: 最もザッピングされたストリーマー
|
most_zapped_streamers: 最もザッピングされたストリーマー
|
||||||
@ -8,14 +8,12 @@ no_user_found: ユーザーが見つかりません
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: 検索してもユーザーが見つからない
|
description: 検索してもユーザーが見つからない
|
||||||
anon: 匿名
|
anon: 匿名
|
||||||
|
full_amount_sats: "${n:decimalPattern} サッツ"
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 視聴者
|
one: 1 視聴者
|
||||||
other: $n 人が視聴中
|
other: ${n:decimalPattern} 人が視聴中
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: ストリームの視聴者数
|
description: ストリームの視聴者数
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: イント
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: 匿名ユーザー
|
description: 匿名ユーザー
|
||||||
stream:
|
stream:
|
||||||
@ -24,10 +22,11 @@ stream:
|
|||||||
ended: 終了
|
ended: 終了
|
||||||
planned: 予定
|
planned: 予定
|
||||||
started: $timestamp を開始
|
started: $timestamp を開始
|
||||||
|
notification: ${name} がライブを開始した!
|
||||||
chat:
|
chat:
|
||||||
disabled: チャット無効
|
disabled: チャット無効
|
||||||
disabled_timeout: タイムアウト: $time
|
disabled_timeout: タイムアウト: $time
|
||||||
timeout(rich): $mod タイムアウト $user for $time
|
timeout(rich): $mod タイムアウト $user for ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: タイムアウトイベントを表示するチャットメッセージ
|
description: タイムアウトイベントを表示するチャットメッセージ
|
||||||
ended: 配信終了
|
ended: 配信終了
|
||||||
@ -80,6 +79,8 @@ button:
|
|||||||
unmute: ミュート解除
|
unmute: ミュート解除
|
||||||
share: 共有
|
share: 共有
|
||||||
save: 保存
|
save: 保存
|
||||||
|
connect: 接続
|
||||||
|
settings: 設定
|
||||||
embed:
|
embed:
|
||||||
article_by: 記事: $name
|
article_by: 記事: $name
|
||||||
note_by: $name の投稿
|
note_by: $name の投稿
|
||||||
@ -99,6 +100,7 @@ zap:
|
|||||||
button_zap_ready: $amount satsをザップする
|
button_zap_ready: $amount satsをザップする
|
||||||
button_zap: ザップ
|
button_zap: ザップ
|
||||||
button_open_wallet: ウォレットで開く
|
button_open_wallet: ウォレットで開く
|
||||||
|
button_connect_wallet: コネクトウォレット
|
||||||
copy: クリップボードにコピー
|
copy: クリップボードにコピー
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: 無効なカスタム金額
|
invalid_custom_amount: 無効なカスタム金額
|
||||||
@ -106,13 +108,26 @@ zap:
|
|||||||
no_lud16: 雷アドレスが見つかりません
|
no_lud16: 雷アドレスが見つかりません
|
||||||
profile:
|
profile:
|
||||||
past_streams: 過去の配信
|
past_streams: 過去の配信
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: プロフィール編集
|
||||||
|
button_wallet: ウォレットの設定
|
||||||
|
profile:
|
||||||
display_name: 表示名
|
display_name: 表示名
|
||||||
about: 自己紹介
|
about: について
|
||||||
nip05: Nostrアドレス
|
nip05: 住所
|
||||||
lud16: ライトニングアドレス
|
lud16: ライトニングアドレス
|
||||||
error:
|
error:
|
||||||
logged_out: ログアウトするとプロフィールが編集できない
|
logged_out: ログアウトするとプロフィールが編集できない
|
||||||
|
wallet:
|
||||||
|
connect_wallet: コネクトウォレット(NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: ウォレットの切断
|
||||||
|
connect_1tap: 1タップ接続
|
||||||
|
paste: URLを貼り付ける
|
||||||
|
balance: バランス
|
||||||
|
name: 財布
|
||||||
|
error:
|
||||||
|
logged_out: ログアウト時にウォレットに接続できない
|
||||||
|
nwc_auth_event_not_found: ウォレットの認証イベントが見つかりません
|
||||||
login:
|
login:
|
||||||
username: ユーザー名
|
username: ユーザー名
|
||||||
amber: 琥珀でログイン
|
amber: 琥珀でログイン
|
||||||
@ -120,3 +135,21 @@ login:
|
|||||||
create: アカウントを作成する
|
create: アカウントを作成する
|
||||||
error:
|
error:
|
||||||
invalid_key: 無効なキー
|
invalid_key: 無効なキー
|
||||||
|
live:
|
||||||
|
start: ライブ中継
|
||||||
|
configure_stream: ストリームの設定
|
||||||
|
endpoint: エンドポイント
|
||||||
|
accept_tos: TOSを受け入れる
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: タイトル
|
||||||
|
summary: 概要
|
||||||
|
image: 表紙画像
|
||||||
|
tags: タグ
|
||||||
|
nsfw: NSFWコンテンツ
|
||||||
|
nsfw_description: このストリームにヌードやポルノが含まれている場合は、ここをチェックしてください。
|
||||||
|
error:
|
||||||
|
failed: ストリーム失敗
|
||||||
|
connection_error: 接続エラー
|
||||||
|
start_failed: ストリームの開始に失敗しました。
|
||||||
|
@ -8,14 +8,12 @@ no_user_found: 사용자를 찾을 수 없습니다.
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: 검색 시 사용자를 찾을 수 없음
|
description: 검색 시 사용자를 찾을 수 없음
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: "${n:decimalPattern} sats"
|
||||||
viewers:
|
viewers:
|
||||||
one: 시청자 1명
|
one: 시청자 1명
|
||||||
other: $n 시청자
|
other: "{n:decimalPattern} 시청자"
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: 스트림 시청자 수
|
description: 스트림 시청자 수
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: 익명 사용자
|
description: 익명 사용자
|
||||||
stream:
|
stream:
|
||||||
@ -24,10 +22,11 @@ stream:
|
|||||||
ended: 종료
|
ended: 종료
|
||||||
planned: 계획된
|
planned: 계획된
|
||||||
started: 시작 $timestamp
|
started: 시작 $timestamp
|
||||||
|
notification: ${name} 라이브가 시작되었습니다!
|
||||||
chat:
|
chat:
|
||||||
disabled: 채팅 사용 안 함
|
disabled: 채팅 사용 안 함
|
||||||
disabled_timeout: "시간 초과가 만료되었습니다: $time"
|
disabled_timeout: "시간 초과가 만료되었습니다: $time"
|
||||||
timeout(rich): $mod 시간 초과됨 $user $time
|
timeout(rich): $mod 시간 초과됨 $user ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: 시간 초과 이벤트를 표시하는 채팅 메시지
|
description: 시간 초과 이벤트를 표시하는 채팅 메시지
|
||||||
ended: 스트림 종료
|
ended: 스트림 종료
|
||||||
@ -80,6 +79,8 @@ button:
|
|||||||
unmute: 뮤트 해제
|
unmute: 뮤트 해제
|
||||||
share: 공유
|
share: 공유
|
||||||
save: 저장
|
save: 저장
|
||||||
|
connect: 연결
|
||||||
|
settings: 설정
|
||||||
embed:
|
embed:
|
||||||
article_by: "작성자: $name"
|
article_by: "작성자: $name"
|
||||||
note_by: "노트 작성됨: $name"
|
note_by: "노트 작성됨: $name"
|
||||||
@ -99,6 +100,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: 지갑에서 열기
|
button_open_wallet: 지갑에서 열기
|
||||||
|
button_connect_wallet: 지갑 연결
|
||||||
copy: 클립보드에 복사
|
copy: 클립보드에 복사
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: 잘못된 사용자 지정 금액
|
invalid_custom_amount: 잘못된 사용자 지정 금액
|
||||||
@ -106,13 +108,26 @@ zap:
|
|||||||
no_lud16: 번개 주소를 찾을 수 없습니다.
|
no_lud16: 번개 주소를 찾을 수 없습니다.
|
||||||
profile:
|
profile:
|
||||||
past_streams: 과거 스트림
|
past_streams: 과거 스트림
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: 프로필 수정
|
||||||
|
button_wallet: 지갑 설정
|
||||||
|
profile:
|
||||||
display_name: 표시 이름
|
display_name: 표시 이름
|
||||||
about: 정보
|
about: 정보
|
||||||
nip05: 노스트르 주소
|
nip05: 노스트르 주소
|
||||||
lud16: 라이트닝 주소
|
lud16: 라이트닝 주소
|
||||||
error:
|
error:
|
||||||
logged_out: 로그아웃 시 프로필 수정 불가
|
logged_out: 로그아웃 시 프로필 수정 불가
|
||||||
|
wallet:
|
||||||
|
connect_wallet: 지갑 연결(NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: 지갑 연결 해제
|
||||||
|
connect_1tap: 1-탭 연결
|
||||||
|
paste: URL 붙여넣기
|
||||||
|
balance: 잔액
|
||||||
|
name: 지갑
|
||||||
|
error:
|
||||||
|
logged_out: 로그아웃 시 지갑 연결 불가
|
||||||
|
nwc_auth_event_not_found: 지갑 인증 이벤트를 찾을 수 없습니다.
|
||||||
login:
|
login:
|
||||||
username: 사용자 이름
|
username: 사용자 이름
|
||||||
amber: Amber로 로그인
|
amber: Amber로 로그인
|
||||||
@ -120,3 +135,21 @@ login:
|
|||||||
create: 계정 만들기
|
create: 계정 만들기
|
||||||
error:
|
error:
|
||||||
invalid_key: 잘못된 키
|
invalid_key: 잘못된 키
|
||||||
|
live:
|
||||||
|
start: 라이브 시작하기
|
||||||
|
configure_stream: 스트림 구성
|
||||||
|
endpoint: 엔드포인트
|
||||||
|
accept_tos: TOS 수락
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: 제목
|
||||||
|
summary: 요약
|
||||||
|
image: 표지 이미지
|
||||||
|
tags: 태그
|
||||||
|
nsfw: NSFW 콘텐츠
|
||||||
|
nsfw_description: 이 스트림에 노출 또는 음란 콘텐츠가 포함되어 있는지 여기에서 확인하세요.
|
||||||
|
error:
|
||||||
|
failed: 스트림 실패
|
||||||
|
connection_error: 연결 오류
|
||||||
|
start_failed: 스트림 시작에 실패했습니다. 잔액을 확인해 주세요.
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Geen gebruiker gevonden
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Geen gebruiker gevonden bij het zoeken
|
description: Geen gebruiker gevonden bij het zoeken
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 kijker
|
one: 1 kijker
|
||||||
other: $n kijkers
|
other: ${n:decimalPattern} kijkers
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Aantal kijkers van de stream
|
description: Aantal kijkers van de stream
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Een anonieme gebruiker
|
description: Een anonieme gebruiker
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: GESLOTEN
|
ended: GESLOTEN
|
||||||
planned: GEPLAND
|
planned: GEPLAND
|
||||||
started: Begonnen met $timestamp
|
started: Begonnen met $timestamp
|
||||||
|
notification: ${name} ging live!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT UITGESCHAKELD
|
disabled: CHAT UITGESCHAKELD
|
||||||
disabled_timeout: "Time-out loopt af: $time"
|
disabled_timeout: "Time-out loopt af: $time"
|
||||||
timeout(rich): $mod timed out $user voor $time
|
timeout(rich): $mod timed out $user voor ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Chatbericht met time-outgebeurtenissen
|
description: Chatbericht met time-outgebeurtenissen
|
||||||
ended: STREAM BEËINDIGD
|
ended: STREAM BEËINDIGD
|
||||||
@ -83,6 +82,8 @@ button:
|
|||||||
unmute: Niet langer negeren
|
unmute: Niet langer negeren
|
||||||
share: Deel
|
share: Deel
|
||||||
save: Opslaan
|
save: Opslaan
|
||||||
|
connect: Maak verbinding met
|
||||||
|
settings: Instellingen
|
||||||
embed:
|
embed:
|
||||||
article_by: Artikel door $name
|
article_by: Artikel door $name
|
||||||
note_by: Opmerking door $name
|
note_by: Opmerking door $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Openen in portefeuille
|
button_open_wallet: Openen in portefeuille
|
||||||
|
button_connect_wallet: Portemonnee aansluiten
|
||||||
copy: Gekopieerd naar klembord
|
copy: Gekopieerd naar klembord
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Ongeldig aangepast bedrag
|
invalid_custom_amount: Ongeldig aangepast bedrag
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Geen bliksemadres gevonden
|
no_lud16: Geen bliksemadres gevonden
|
||||||
profile:
|
profile:
|
||||||
past_streams: Afgelopen Streams
|
past_streams: Afgelopen Streams
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Profiel bewerken
|
||||||
|
button_wallet: Portemonnee-instellingen
|
||||||
|
profile:
|
||||||
display_name: Naam weergeven
|
display_name: Naam weergeven
|
||||||
about: Over ons
|
about: Over
|
||||||
nip05: Nostr Adres
|
nip05: Nostr Adres
|
||||||
lud16: Lightning adres
|
lud16: Bliksemadres
|
||||||
error:
|
error:
|
||||||
logged_out: Kan profiel niet bewerken als ik ben uitgelogd
|
logged_out: Kan profiel niet bewerken als ik ben uitgelogd
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Portemonnee verbinden (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Portefeuille loskoppelen
|
||||||
|
connect_1tap: 1-Tap Aansluiting
|
||||||
|
paste: URL plakken
|
||||||
|
balance: Saldo
|
||||||
|
name: Portemonnee
|
||||||
|
error:
|
||||||
|
logged_out: Kan geen verbinding maken met portemonnee als ik ben uitgelogd
|
||||||
|
nwc_auth_event_not_found: Geen portemonnee-auth-gebeurtenis gevonden
|
||||||
login:
|
login:
|
||||||
username: Gebruikersnaam
|
username: Gebruikersnaam
|
||||||
amber: Inloggen met Amber
|
amber: Inloggen met Amber
|
||||||
@ -123,3 +138,21 @@ login:
|
|||||||
create: Account aanmaken
|
create: Account aanmaken
|
||||||
error:
|
error:
|
||||||
invalid_key: Ongeldige sleutel
|
invalid_key: Ongeldige sleutel
|
||||||
|
live:
|
||||||
|
start: LIVE GAAN
|
||||||
|
configure_stream: Stream configureren
|
||||||
|
endpoint: Eindpunt
|
||||||
|
accept_tos: TOS accepteren
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titel
|
||||||
|
summary: Samenvatting
|
||||||
|
image: Afbeelding omslag
|
||||||
|
tags: Tags
|
||||||
|
nsfw: NSFW-inhoud
|
||||||
|
nsfw_description: Controleer hier of deze stream naaktheid of pornografische inhoud bevat.
|
||||||
|
error:
|
||||||
|
failed: Stream mislukt
|
||||||
|
connection_error: Fout bij verbinding
|
||||||
|
start_failed: Stream start mislukt, controleer uw saldo
|
||||||
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: Username
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|
@ -9,14 +9,12 @@ no_user_found: Nie znaleziono użytkownika
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Nie znaleziono użytkownika podczas wyszukiwania
|
description: Nie znaleziono użytkownika podczas wyszukiwania
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 przeglądarka
|
one: 1 przeglądarka
|
||||||
other: $n widzowie
|
other: "{n:decimalPattern} widzów"
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Liczba widzów strumienia
|
description: Liczba widzów strumienia
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Anonimowy użytkownik
|
description: Anonimowy użytkownik
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: ZAKOŃCZONY
|
ended: ZAKOŃCZONY
|
||||||
planned: PLANOWANE
|
planned: PLANOWANE
|
||||||
started: Start $timestamp
|
started: Start $timestamp
|
||||||
|
notification: ${name} został uruchomiony!
|
||||||
chat:
|
chat:
|
||||||
disabled: CZAT WYŁĄCZONY
|
disabled: CZAT WYŁĄCZONY
|
||||||
disabled_timeout: "Upłynął limit czasu: $time"
|
disabled_timeout: "Upłynął limit czasu: $time"
|
||||||
timeout(rich): $mod upłynął limit czasu $user dla $time
|
timeout(rich): $mod upłynął limit czasu $user dla ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
description: Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
||||||
ended: TRANSMISJA ZAKOŃCZONA
|
ended: TRANSMISJA ZAKOŃCZONA
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Wyłącz wyciszenie
|
unmute: Wyłącz wyciszenie
|
||||||
share: Udział
|
share: Udział
|
||||||
save: Zapisz
|
save: Zapisz
|
||||||
|
connect: Połączenie
|
||||||
|
settings: Ustawienia
|
||||||
embed:
|
embed:
|
||||||
article_by: Artykuł autorstwa $name
|
article_by: Artykuł autorstwa $name
|
||||||
note_by: Uwaga $name
|
note_by: Uwaga $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Otwórz w portfelu
|
button_open_wallet: Otwórz w portfelu
|
||||||
|
button_connect_wallet: Connect Wallet
|
||||||
copy: Skopiowane do schowka
|
copy: Skopiowane do schowka
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Nieprawidłowa kwota niestandardowa
|
invalid_custom_amount: Nieprawidłowa kwota niestandardowa
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Nie znaleziono adresu pioruna
|
no_lud16: Nie znaleziono adresu pioruna
|
||||||
profile:
|
profile:
|
||||||
past_streams: Poprzednie strumienie
|
past_streams: Poprzednie strumienie
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Edytuj profil
|
||||||
|
button_wallet: Ustawienia portfela
|
||||||
|
profile:
|
||||||
display_name: Wyświetlana nazwa
|
display_name: Wyświetlana nazwa
|
||||||
about: O
|
about: O
|
||||||
nip05: Adres Nostr
|
nip05: Adres Nostr
|
||||||
lud16: Adres błyskawicy
|
lud16: Adres błyskawicy
|
||||||
error:
|
error:
|
||||||
logged_out: Nie można edytować profilu po wylogowaniu
|
logged_out: Nie można edytować profilu po wylogowaniu
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Connect Wallet (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Odłącz portfel
|
||||||
|
connect_1tap: Połączenie 1-wtykowe
|
||||||
|
paste: Wklej adres URL
|
||||||
|
balance: Równowaga
|
||||||
|
name: Portfel
|
||||||
|
error:
|
||||||
|
logged_out: Nie można połączyć portfela po wylogowaniu
|
||||||
|
nwc_auth_event_not_found: Nie znaleziono zdarzenia autoryzacji portfela
|
||||||
login:
|
login:
|
||||||
username: Nazwa użytkownika
|
username: Nazwa użytkownika
|
||||||
amber: Zaloguj się za pomocą Amber
|
amber: Zaloguj się za pomocą Amber
|
||||||
@ -123,3 +138,21 @@ login:
|
|||||||
create: Utwórz konto
|
create: Utwórz konto
|
||||||
error:
|
error:
|
||||||
invalid_key: Nieprawidłowy klucz
|
invalid_key: Nieprawidłowy klucz
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Konfiguracja strumienia
|
||||||
|
endpoint: Punkt końcowy
|
||||||
|
accept_tos: Zaakceptuj Regulamin
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Tytuł
|
||||||
|
summary: Podsumowanie
|
||||||
|
image: Obraz na okładce
|
||||||
|
tags: Tagi
|
||||||
|
nsfw: Treści NSFW
|
||||||
|
nsfw_description: Sprawdź tutaj, czy ten stream zawiera nagość lub treści pornograficzne.
|
||||||
|
error:
|
||||||
|
failed: Strumień nie powiódł się
|
||||||
|
connection_error: Błąd połączenia
|
||||||
|
start_failed: Uruchomienie strumienia nie powiodło się, sprawdź saldo
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Nenhum usuário encontrado
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Nenhum usuário foi encontrado durante a pesquisa
|
description: Nenhum usuário foi encontrado durante a pesquisa
|
||||||
anon: Anônimo
|
anon: Anônimo
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 visualizador
|
one: 1 visualizador
|
||||||
other: $n espectadores
|
other: ${n:decimalPattern} espectadores
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Número de espectadores da transmissão
|
description: Número de espectadores da transmissão
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Um usuário anônimo
|
description: Um usuário anônimo
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: FINALIZADO
|
ended: FINALIZADO
|
||||||
planned: PLANEJADO
|
planned: PLANEJADO
|
||||||
started: Iniciado em $timestamp
|
started: Iniciado em $timestamp
|
||||||
|
notification: ${name} foi ao ar!
|
||||||
chat:
|
chat:
|
||||||
disabled: BATE-PAPO DESATIVADO
|
disabled: BATE-PAPO DESATIVADO
|
||||||
disabled_timeout: "O tempo limite expira: $time"
|
disabled_timeout: "O tempo limite expira: $time"
|
||||||
timeout(rich): $mod Tempo esgotado $user para $time
|
timeout(rich): $mod Tempo esgotado $user para ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Mensagem de bate-papo mostrando eventos de tempo limite
|
description: Mensagem de bate-papo mostrando eventos de tempo limite
|
||||||
ended: TRANSMISSÃO ENCERRADA
|
ended: TRANSMISSÃO ENCERRADA
|
||||||
@ -82,6 +81,8 @@ button:
|
|||||||
unmute: Desmutar
|
unmute: Desmutar
|
||||||
share: Compartilhar
|
share: Compartilhar
|
||||||
save: Salvar
|
save: Salvar
|
||||||
|
connect: Conectar
|
||||||
|
settings: Configurações
|
||||||
embed:
|
embed:
|
||||||
article_by: Artigo de $name
|
article_by: Artigo de $name
|
||||||
note_by: Nota de $name
|
note_by: Nota de $name
|
||||||
@ -102,6 +103,7 @@ zap:
|
|||||||
button_zap_ready: Enviar Zap de $amount sats
|
button_zap_ready: Enviar Zap de $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Abrir na carteira
|
button_open_wallet: Abrir na carteira
|
||||||
|
button_connect_wallet: Conectar carteira
|
||||||
copy: Copiado para a área de transferência
|
copy: Copiado para a área de transferência
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Valor personalizado inválido
|
invalid_custom_amount: Valor personalizado inválido
|
||||||
@ -109,13 +111,26 @@ zap:
|
|||||||
no_lud16: Nenhum endereço de raio encontrado
|
no_lud16: Nenhum endereço de raio encontrado
|
||||||
profile:
|
profile:
|
||||||
past_streams: Transmissões Passadas
|
past_streams: Transmissões Passadas
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Editar perfil
|
||||||
|
button_wallet: Configurações da carteira
|
||||||
|
profile:
|
||||||
display_name: Nome de exibição
|
display_name: Nome de exibição
|
||||||
about: Sobre
|
about: Sobre
|
||||||
nip05: Endereço do Nostr
|
nip05: Endereço Nostr
|
||||||
lud16: Endereço Lightning
|
lud16: Endereço para relâmpagos
|
||||||
error:
|
error:
|
||||||
logged_out: Não é possível editar o perfil quando se está desconectado
|
logged_out: Não é possível editar o perfil quando se está desconectado
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Carteira Connect (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Desconectar carteira
|
||||||
|
connect_1tap: Conexão de 1 torneira
|
||||||
|
paste: Colar URL
|
||||||
|
balance: Equilíbrio
|
||||||
|
name: Carteira
|
||||||
|
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:
|
login:
|
||||||
username: Nome de usuário
|
username: Nome de usuário
|
||||||
amber: Faça login com o Amber
|
amber: Faça login com o Amber
|
||||||
@ -123,3 +138,21 @@ login:
|
|||||||
create: Criar Conta
|
create: Criar Conta
|
||||||
error:
|
error:
|
||||||
invalid_key: Chave inválida
|
invalid_key: Chave inválida
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Configurar fluxo
|
||||||
|
endpoint: Ponto final
|
||||||
|
accept_tos: Aceitar os Termos de Serviço
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Título
|
||||||
|
summary: Resumo
|
||||||
|
image: Imagem da capa
|
||||||
|
tags: Tags
|
||||||
|
nsfw: Conteúdo NSFW
|
||||||
|
nsfw_description: Verifique aqui se essa transmissão contém nudez ou conteúdo pornográfico.
|
||||||
|
error:
|
||||||
|
failed: O fluxo falhou
|
||||||
|
connection_error: Erro de conexão
|
||||||
|
start_failed: Falha no início do fluxo, verifique seu saldo
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Niciun utilizator găsit
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Nu s-a găsit niciun utilizator la căutare
|
description: Nu s-a găsit niciun utilizator la căutare
|
||||||
anon: Anon
|
anon: Anon
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 vizualizator
|
one: 1 vizualizator
|
||||||
other: $n telespectatori
|
other: ${n:decimalPattern} telespectatori
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Numărul de telespectatori ai fluxului
|
description: Numărul de telespectatori ai fluxului
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Un utilizator anonim
|
description: Un utilizator anonim
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: TERMINAT
|
ended: TERMINAT
|
||||||
planned: PLANIFICATE
|
planned: PLANIFICATE
|
||||||
started: A început $timestamp
|
started: A început $timestamp
|
||||||
|
notification: ${name} a intrat în direct!
|
||||||
chat:
|
chat:
|
||||||
disabled: CHAT DEZACTIVAT
|
disabled: CHAT DEZACTIVAT
|
||||||
disabled_timeout: "Timpul expiră: $time"
|
disabled_timeout: "Timpul expiră: $time"
|
||||||
timeout(rich): $mod Timed out $user pentru $time
|
timeout(rich): $mod Timed out $user pentru ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Mesaj de chat care afișează evenimentele de timeout
|
description: Mesaj de chat care afișează evenimentele de timeout
|
||||||
ended: STREAM ÎNCHEIAT
|
ended: STREAM ÎNCHEIAT
|
||||||
@ -83,6 +82,8 @@ button:
|
|||||||
unmute: Dezactivați
|
unmute: Dezactivați
|
||||||
share: Share
|
share: Share
|
||||||
save: Salvați
|
save: Salvați
|
||||||
|
connect: Conectare
|
||||||
|
settings: Setări
|
||||||
embed:
|
embed:
|
||||||
article_by: Articol de $name
|
article_by: Articol de $name
|
||||||
note_by: Notă de la $name
|
note_by: Notă de la $name
|
||||||
@ -103,6 +104,7 @@ zap:
|
|||||||
button_zap_ready: Zap $amount sats
|
button_zap_ready: Zap $amount sats
|
||||||
button_zap: Zap
|
button_zap: Zap
|
||||||
button_open_wallet: Deschide în portofel
|
button_open_wallet: Deschide în portofel
|
||||||
|
button_connect_wallet: Conectați portofelul
|
||||||
copy: Copiat în clipboard
|
copy: Copiat în clipboard
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Sumă personalizată invalidă
|
invalid_custom_amount: Sumă personalizată invalidă
|
||||||
@ -110,13 +112,26 @@ zap:
|
|||||||
no_lud16: Nu a fost găsită nicio adresă de fulgere
|
no_lud16: Nu a fost găsită nicio adresă de fulgere
|
||||||
profile:
|
profile:
|
||||||
past_streams: Fluxuri trecute
|
past_streams: Fluxuri trecute
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Editare profil
|
||||||
|
button_wallet: Setări portofel
|
||||||
|
profile:
|
||||||
display_name: Nume afișat
|
display_name: Nume afișat
|
||||||
about: Despre
|
about: Despre
|
||||||
nip05: Adresa Nostr
|
nip05: Adresa Nostr
|
||||||
lud16: Adresa fulgerului
|
lud16: Adresa fulgerului
|
||||||
error:
|
error:
|
||||||
logged_out: Nu pot edita profilul când sunt deconectat
|
logged_out: Nu pot edita profilul când sunt deconectat
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Conectați portofelul (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Deconectați portofelul
|
||||||
|
connect_1tap: Conexiune 1-Tap
|
||||||
|
paste: Lipiți URL
|
||||||
|
balance: Echilibru
|
||||||
|
name: Portofel
|
||||||
|
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:
|
login:
|
||||||
username: Nume utilizator
|
username: Nume utilizator
|
||||||
amber: Conectați-vă cu Amber
|
amber: Conectați-vă cu Amber
|
||||||
@ -124,3 +139,21 @@ login:
|
|||||||
create: Creare cont
|
create: Creare cont
|
||||||
error:
|
error:
|
||||||
invalid_key: Cheie invalidă
|
invalid_key: Cheie invalidă
|
||||||
|
live:
|
||||||
|
start: GO LIVE
|
||||||
|
configure_stream: Configurați fluxul
|
||||||
|
endpoint: Punct final
|
||||||
|
accept_tos: Acceptați TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Titlu
|
||||||
|
summary: Rezumat
|
||||||
|
image: Imagine de copertă
|
||||||
|
tags: Etichete
|
||||||
|
nsfw: Conținut NSFW
|
||||||
|
nsfw_description: Bifați aici dacă acest flux conține nuditate sau conținut pornografic.
|
||||||
|
error:
|
||||||
|
failed: Fluxul a eșuat
|
||||||
|
connection_error: Eroare de conectare
|
||||||
|
start_failed: Pornirea fluxului a eșuat, vă rugăm să verificați soldul
|
||||||
|
@ -9,14 +9,12 @@ no_user_found: Пользователь не найден
|
|||||||
"@no_user_found":
|
"@no_user_found":
|
||||||
description: Пользователь не найден при поиске
|
description: Пользователь не найден при поиске
|
||||||
anon: Аноним
|
anon: Аноним
|
||||||
|
full_amount_sats: ${n:decimalPattern} sats
|
||||||
viewers:
|
viewers:
|
||||||
one: 1 зритель
|
one: 1 зритель
|
||||||
other: $n зрителей
|
other: ${n:decimalPattern} зрителей
|
||||||
"@viewers":
|
"@viewers":
|
||||||
description: Количество зрителей потока
|
description: Количество зрителей потока
|
||||||
placeholders:
|
|
||||||
n:
|
|
||||||
type: int
|
|
||||||
"@anon":
|
"@anon":
|
||||||
description: Анонимный пользователь
|
description: Анонимный пользователь
|
||||||
stream:
|
stream:
|
||||||
@ -25,10 +23,11 @@ stream:
|
|||||||
ended: КОНЕЦ
|
ended: КОНЕЦ
|
||||||
planned: ПЛАНИРУЕМЫЙ
|
planned: ПЛАНИРУЕМЫЙ
|
||||||
started: Начало $timestamp
|
started: Начало $timestamp
|
||||||
|
notification: ${name} запустился!
|
||||||
chat:
|
chat:
|
||||||
disabled: ЧАТ ОТКЛЮЧЕН
|
disabled: ЧАТ ОТКЛЮЧЕН
|
||||||
disabled_timeout: "Таймаут истекает: $time"
|
disabled_timeout: "Таймаут истекает: $time"
|
||||||
timeout(rich): $mod тайм-аут $user для $time
|
timeout(rich): $mod тайм-аут $user для ${time}
|
||||||
"@timeout":
|
"@timeout":
|
||||||
description: Сообщение в чате, показывающее события по тайм-ауту
|
description: Сообщение в чате, показывающее события по тайм-ауту
|
||||||
ended: ТРАНСЛЯЦИЯ ОКОНЧЕНА
|
ended: ТРАНСЛЯЦИЯ ОКОНЧЕНА
|
||||||
@ -83,6 +82,8 @@ button:
|
|||||||
unmute: Включить уведомления
|
unmute: Включить уведомления
|
||||||
share: Поделиться
|
share: Поделиться
|
||||||
save: Сохранить
|
save: Сохранить
|
||||||
|
connect: Подключайтесь
|
||||||
|
settings: Настройки
|
||||||
embed:
|
embed:
|
||||||
article_by: Статья $name
|
article_by: Статья $name
|
||||||
note_by: Заметка на сайте $name
|
note_by: Заметка на сайте $name
|
||||||
@ -103,6 +104,7 @@ zap:
|
|||||||
button_zap_ready: Запнуть $amount сат
|
button_zap_ready: Запнуть $amount сат
|
||||||
button_zap: Зап
|
button_zap: Зап
|
||||||
button_open_wallet: Открыть в кошельке
|
button_open_wallet: Открыть в кошельке
|
||||||
|
button_connect_wallet: Подключить кошелек
|
||||||
copy: Скопировано в буфер обмена
|
copy: Скопировано в буфер обмена
|
||||||
error:
|
error:
|
||||||
invalid_custom_amount: Недопустимая пользовательская сумма
|
invalid_custom_amount: Недопустимая пользовательская сумма
|
||||||
@ -110,13 +112,26 @@ zap:
|
|||||||
no_lud16: Адрес молнии не найден
|
no_lud16: Адрес молнии не найден
|
||||||
profile:
|
profile:
|
||||||
past_streams: Предыдущие трансляции
|
past_streams: Предыдущие трансляции
|
||||||
edit:
|
settings:
|
||||||
|
button_profile: Редактировать профиль
|
||||||
|
button_wallet: Настройки кошелька
|
||||||
|
profile:
|
||||||
display_name: Отображаемое имя
|
display_name: Отображаемое имя
|
||||||
about: О себе
|
about: О сайте
|
||||||
nip05: Nostr адрес
|
nip05: Адрес Ностр
|
||||||
lud16: Lightning Адрес
|
lud16: Адрес молнии
|
||||||
error:
|
error:
|
||||||
logged_out: Невозможно редактировать профиль при выходе из системы
|
logged_out: Невозможно редактировать профиль при выходе из системы
|
||||||
|
wallet:
|
||||||
|
connect_wallet: Кошелек Connect (NWC nostr+walletconnect://)
|
||||||
|
disconnect_wallet: Отключить кошелек
|
||||||
|
connect_1tap: 1-кратное соединение
|
||||||
|
paste: Вставить URL
|
||||||
|
balance: Баланс
|
||||||
|
name: Кошелек
|
||||||
|
error:
|
||||||
|
logged_out: Невозможно подключить кошелек при выходе из системы
|
||||||
|
nwc_auth_event_not_found: Событие аутентификации кошелька не найдено
|
||||||
login:
|
login:
|
||||||
username: Имя пользователя
|
username: Имя пользователя
|
||||||
amber: Войти с помощью Amber
|
amber: Войти с помощью Amber
|
||||||
@ -124,3 +139,22 @@ login:
|
|||||||
create: Создать аккаунт
|
create: Создать аккаунт
|
||||||
error:
|
error:
|
||||||
invalid_key: Неверный ключ
|
invalid_key: Неверный ключ
|
||||||
|
live:
|
||||||
|
start: ПЕРЕЙТИ В ПРЯМОЙ ЭФИР
|
||||||
|
configure_stream: Настроить поток
|
||||||
|
endpoint: Конечная точка
|
||||||
|
accept_tos: Принять TOS
|
||||||
|
balance_left:
|
||||||
|
zero: ∞
|
||||||
|
other: ~${time}
|
||||||
|
title: Название
|
||||||
|
summary: Резюме
|
||||||
|
image: Изображение на обложке
|
||||||
|
tags: Теги
|
||||||
|
nsfw: NSFW-контент
|
||||||
|
nsfw_description: Отметьте здесь, если этот поток содержит наготу или
|
||||||
|
порнографические материалы.
|
||||||
|
error:
|
||||||
|
failed: Сбой потока
|
||||||
|
connection_error: Ошибка подключения
|
||||||
|
start_failed: Запуск потока не удался, пожалуйста, проверьте баланс
|
||||||
|
@ -1,122 +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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
edit:
|
|
||||||
display_name: Display Name
|
|
||||||
about: About
|
|
||||||
nip05: Nostr Address
|
|
||||||
lud16: Lightning Address
|
|
||||||
error:
|
|
||||||
logged_out: Cant edit profile when logged out
|
|
||||||
login:
|
|
||||||
username: Username
|
|
||||||
amber: Login with Amber
|
|
||||||
key: Login with Key
|
|
||||||
create: Create Account
|
|
||||||
error:
|
|
||||||
invalid_key: Invalid key
|
|