Compare commits
102 Commits
v0.3.0
...
0d8ce78009
Author | SHA1 | Date | |
---|---|---|---|
0d8ce78009
|
|||
ef1c03d8d5
|
|||
97a6708ae2
|
|||
6bb19ce1f5
|
|||
f15e693a54
|
|||
8605761dff
|
|||
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
|
|||
befd7c014b
|
|||
0a75665bde
|
|||
46b809ff58
|
|||
8f41ed6d0e
|
|||
acbf311972
|
|||
43c3b3fc31
|
|||
7838607cfc
|
|||
9a0811760c
|
|||
5af5bab20c
|
|||
4db0317c0b
|
|||
4e4061b808
|
|||
3dbb247890
|
|||
825152c6bf
|
|||
99ec8cfbf7
|
|||
b8422291a5
|
|||
a0b2275bea
|
|||
182f34ff71
|
|||
57a67106fd
|
|||
b1a1e4131b
|
|||
9f91135572
|
|||
a5736aa3d3
|
|||
c865f24b2c
|
|||
f8f5860b64
|
|||
a500e0b3da
|
|||
86a8181aea
|
|||
cb1c995023
|
|||
46d60994a8
|
|||
3eac1c4bfa
|
|||
e6bad40608
|
|||
e332dc9c6c
|
|||
a870aa0888
|
|||
8173eab05d
|
|||
e91807e80e
|
|||
c79ea1b872
|
|||
b630b59e53
|
|||
c7435d5772
|
|||
b5e0822d6c
|
|||
dcf42e7a78
|
|||
244a0aad38
|
|||
556377263d
|
|||
7c3e9afc3e
|
|||
d85c93b7ed
|
|||
4ca9460a6c
|
|||
21f69e433e
|
|||
52953a4c16
|
|||
54a61322cf
|
|||
4c6d5b995f
|
|||
be66446e85
|
|||
787a848257
|
|||
2d855362e4
|
|||
5e28b40c5c
|
|||
12b4475c60
|
|||
e0e9175536
|
|||
465c6f222e
|
|||
eefbbc2f73
|
|||
f094569ed4
|
|||
f5a03d756b
|
|||
1f8124b708
|
1
.env.development
Normal file
@ -0,0 +1 @@
|
||||
NOTEPUSH_URL="http://10.0.2.2:8000"
|
2
.github/workflows/build.yml
vendored
@ -12,6 +12,7 @@ jobs:
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.32.0
|
||||
- run: flutter pub get
|
||||
- run: flutter build appbundle
|
||||
env:
|
||||
@ -52,5 +53,6 @@ jobs:
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.32.0
|
||||
- run: flutter pub get
|
||||
- run: flutter build ios --no-codesign
|
1
.github/workflows/release.yml
vendored
@ -16,6 +16,7 @@ jobs:
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: 3.32.0
|
||||
- run: flutter pub get
|
||||
- name: Build apk
|
||||
env:
|
||||
|
@ -1,5 +1,4 @@
|
||||
import com.android.build.api.dsl.ApkSigningConfig
|
||||
import com.android.build.api.dsl.SigningConfig
|
||||
import org.jetbrains.kotlin.gradle.targets.js.toHex
|
||||
import java.io.FileInputStream
|
||||
import java.util.Base64
|
||||
@ -10,6 +9,7 @@ plugins {
|
||||
id("com.android.application")
|
||||
id("kotlin-android")
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
id("com.google.gms.google-services")
|
||||
}
|
||||
|
||||
fun getKeystoreFile(base64String: String?, hash: String, fileName: String): File {
|
||||
@ -82,6 +82,7 @@ android {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
@ -108,3 +109,7 @@ android {
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||
}
|
29
android/app/google-services.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "953923151748",
|
||||
"project_id": "nostrlabs",
|
||||
"storage_bucket": "nostrlabs.firebasestorage.app"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:953923151748:android:8536cdc7f75edc9f9e9fd1",
|
||||
"android_client_info": {
|
||||
"package_name": "io.nostrlabs.zap_stream_flutter"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAdpxIN8DR1-mh8MCjHU0mDtaUAk6xda6w"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
@ -3,6 +3,5 @@
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
</manifest>
|
||||
|
@ -1,40 +1,80 @@
|
||||
<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
|
||||
android:label="zap.stream"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="zap.stream">
|
||||
<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:hardwareAccelerated="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
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
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme" />
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<intent-filter android:autoVerify="true">
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data android:host="zap.stream" />
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
</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>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<service
|
||||
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
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
</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:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||
@ -42,8 +82,15 @@
|
||||
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
<action android:name="android.intent.action.PROCESS_TEXT" />
|
||||
<data android:mimeType="text/plain" />
|
||||
</intent>
|
||||
</queries>
|
||||
|
||||
<meta-data
|
||||
android:name="firebase_messaging_auto_init_enabled"
|
||||
android:value="false" />
|
||||
<meta-data
|
||||
android:name="firebase_analytics_collection_enabled"
|
||||
android:value="false" />
|
||||
</manifest>
|
||||
|
@ -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 |
@ -19,6 +19,9 @@ pluginManagement {
|
||||
plugins {
|
||||
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||
id("com.android.application") version "8.7.0" apply false
|
||||
// START: FlutterFire Configuration
|
||||
id("com.google.gms.google-services") version("4.3.15") apply false
|
||||
// END: FlutterFire Configuration
|
||||
id("org.jetbrains.kotlin.android") version "1.8.22" apply false
|
||||
}
|
||||
|
||||
|
BIN
assets/category/art.jpeg
Normal file
After Width: | Height: | Size: 660 KiB |
BIN
assets/category/gaming.jpeg
Normal file
After Width: | Height: | Size: 333 KiB |
BIN
assets/category/irl.jpeg
Normal file
After Width: | Height: | Size: 521 KiB |
BIN
assets/category/music.jpeg
Normal file
After Width: | Height: | Size: 300 KiB |
BIN
assets/category/talk.jpeg
Normal file
After Width: | Height: | Size: 402 KiB |
BIN
assets/logo.jpg
Normal file
After Width: | Height: | Size: 8.2 KiB |
25
firebase.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"flutter": {
|
||||
"platforms": {
|
||||
"android": {
|
||||
"default": {
|
||||
"projectId": "nostrlabs",
|
||||
"appId": "1:953923151748:android:8536cdc7f75edc9f9e9fd1",
|
||||
"fileOutput": "android/app/google-services.json"
|
||||
}
|
||||
},
|
||||
"dart": {
|
||||
"lib/firebase_options.dart": {
|
||||
"projectId": "nostrlabs",
|
||||
"configurations": {
|
||||
"android": "1:953923151748:android:8536cdc7f75edc9f9e9fd1",
|
||||
"ios": "1:953923151748:ios:30ec9a230e55fe139e9fd1",
|
||||
"macos": "1:953923151748:ios:19516d42a1cc02229e9fd1",
|
||||
"web": "1:953923151748:web:f04633c33f9343b19e9fd1",
|
||||
"windows": "1:953923151748:web:6b9a6be6798644909e9fd1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.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 */
|
||||
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 */; };
|
||||
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 */; };
|
||||
890FE2C12DE5F810002F606E /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 890FE2C02DE5F810002F606E /* GoogleService-Info.plist */; };
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||
@ -42,12 +45,19 @@
|
||||
/* Begin PBXFileReference section */
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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; };
|
||||
@ -55,19 +65,53 @@
|
||||
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>"; };
|
||||
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 */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
87AF17021AFC993B1F4EBD74 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
70887CE2EEA82E287D0F5E32 /* Pods_RunnerTests.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
97C146EB1CF9000F007C117D /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
283FBE47FA6371E399829C24 /* Pods_Runner.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase 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 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -90,10 +134,13 @@
|
||||
97C146E51CF9000F007C117D = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
890FE2C02DE5F810002F606E /* GoogleService-Info.plist */,
|
||||
9740EEB11CF90186004384FC /* Flutter */,
|
||||
97C146F01CF9000F007C117D /* Runner */,
|
||||
97C146EF1CF9000F007C117D /* Products */,
|
||||
331C8082294A63A400263BE5 /* RunnerTests */,
|
||||
20030AF4DA59ECDC7C15CF46 /* Pods */,
|
||||
065520562861D7FEFAE4BB7B /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
@ -109,6 +156,7 @@
|
||||
97C146F01CF9000F007C117D /* Runner */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
890FE2BD2DE5F0A1002F606E /* Runner.entitlements */,
|
||||
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
||||
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
||||
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
||||
@ -128,8 +176,10 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
||||
buildPhases = (
|
||||
A1414F384F1233363335534B /* [CP] Check Pods Manifest.lock */,
|
||||
331C807D294A63A400263BE5 /* Sources */,
|
||||
331C807F294A63A400263BE5 /* Resources */,
|
||||
87AF17021AFC993B1F4EBD74 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -145,12 +195,15 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||
buildPhases = (
|
||||
69481579FDF721E2538F77B8 /* [CP] Check Pods Manifest.lock */,
|
||||
9740EEB61CF901F6004384FC /* Run Script */,
|
||||
97C146EA1CF9000F007C117D /* Sources */,
|
||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||
97C146EC1CF9000F007C117D /* Resources */,
|
||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||
EE4EB2C0965EE37F595A4359 /* [CP] Embed Pods Frameworks */,
|
||||
6A0665F4C04FEAEA070B0BE1 /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -214,6 +267,7 @@
|
||||
files = (
|
||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
||||
890FE2C12DE5F810002F606E /* GoogleService-Info.plist in Resources */,
|
||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
||||
);
|
||||
@ -238,6 +292,45 @@
|
||||
shellPath = /bin/sh;
|
||||
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 */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
@ -253,6 +346,45 @@
|
||||
shellPath = /bin/sh;
|
||||
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 */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
@ -361,14 +493,17 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@ -378,6 +513,7 @@
|
||||
};
|
||||
331C8088294A63A400263BE5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3898346B5A5C027C9FA9F7CE /* Pods-RunnerTests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
@ -395,6 +531,7 @@
|
||||
};
|
||||
331C8089294A63A400263BE5 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 609868B63798C72BBCCC36BC /* Pods-RunnerTests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
@ -410,6 +547,7 @@
|
||||
};
|
||||
331C808A294A63A400263BE5 /* Profile */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = FCD68F499269973BDF0E58C7 /* Pods-RunnerTests.profile.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
@ -427,7 +565,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
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_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
@ -484,7 +622,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
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_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
@ -540,14 +678,17 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
@ -562,14 +703,17 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 24VGVR4CHC;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.nostrlabs.zapStreamFlutter;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "io.nostrlabs.zap-stream";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
|
@ -26,6 +26,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
@ -54,6 +55,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
@ -4,4 +4,7 @@
|
||||
<FileRef
|
||||
location = "group:Runner.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</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" : "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"
|
||||
}
|
||||
}
|
||||
{"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"}}
|
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">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Zap Stream Flutter</string>
|
||||
<string>zap.stream</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<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>
|
||||
<string>zap_stream_flutter</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
@ -20,10 +47,33 @@
|
||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<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>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>FirebaseMessagingAutoInitEnabled</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>fetch</string>
|
||||
<string>remote-notification</string>
|
||||
<string>audio</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
@ -41,9 +91,9 @@
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Live streaming</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Live streaming</string>
|
||||
</dict>
|
||||
</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>
|
262
lib/api.dart
Normal file
@ -0,0 +1,262 @@
|
||||
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? id,
|
||||
String? title,
|
||||
String? summary,
|
||||
String? image,
|
||||
String? contentWarning,
|
||||
String? goal,
|
||||
List<String>? tags,
|
||||
}) async {
|
||||
final url = "$base/event";
|
||||
await _sendPatchRequest(
|
||||
url,
|
||||
body: {
|
||||
"id": id,
|
||||
"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();
|
||||
}
|
||||
}
|
164
lib/app.dart
Normal file
@ -0,0 +1,164 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:zap_stream_flutter/const.dart';
|
||||
import 'package:zap_stream_flutter/i18n/strings.g.dart';
|
||||
import 'package:zap_stream_flutter/pages/category.dart';
|
||||
import 'package:zap_stream_flutter/pages/hashtag.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_input.dart';
|
||||
import 'package:zap_stream_flutter/pages/new_account.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_wallet.dart';
|
||||
import 'package:zap_stream_flutter/pages/stream.dart';
|
||||
import 'package:zap_stream_flutter/theme.dart';
|
||||
import 'package:zap_stream_flutter/utils.dart';
|
||||
import 'package:zap_stream_flutter/widgets/header.dart';
|
||||
|
||||
void runZapStream() {
|
||||
runApp(
|
||||
MaterialApp.router(
|
||||
title: "zap.stream",
|
||||
supportedLocales: AppLocaleUtils.supportedLocales,
|
||||
localizationsDelegates: GlobalMaterialLocalizations.delegates,
|
||||
theme: ThemeData.localize(
|
||||
ThemeData(
|
||||
colorScheme: ColorScheme.dark(),
|
||||
highlightColor: PRIMARY_1,
|
||||
useMaterial3: true,
|
||||
),
|
||||
TextTheme(),
|
||||
),
|
||||
routerConfig: GoRouter(
|
||||
redirect: (context, state) {
|
||||
// redirect back to the wallet settings page
|
||||
if (state.uri.scheme == "zswc") {
|
||||
return "/settings/wallet";
|
||||
}
|
||||
return null;
|
||||
},
|
||||
routes: [
|
||||
ShellRoute(
|
||||
observers: [routeObserver],
|
||||
builder:
|
||||
(context, state, child) => SafeArea(
|
||||
child: Scaffold(body: child, backgroundColor: Colors.black),
|
||||
),
|
||||
routes: [
|
||||
GoRoute(path: "/", builder: (ctx, state) => HomePage()),
|
||||
ShellRoute(
|
||||
builder: (context, state, child) {
|
||||
return Container(
|
||||
margin: EdgeInsets.only(top: 50),
|
||||
padding: EdgeInsets.symmetric(horizontal: 5),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
spacing: 20,
|
||||
children: [
|
||||
Center(
|
||||
child: Image.asset("assets/logo.png", height: 150),
|
||||
),
|
||||
child,
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: "/login",
|
||||
builder: (ctx, state) => LoginPage(),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: "key",
|
||||
builder: (ctx, state) => LoginInputPage(),
|
||||
),
|
||||
GoRoute(
|
||||
path: "new",
|
||||
builder: (context, state) => NewAccountPage(),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: StreamPage.path,
|
||||
builder: (ctx, state) {
|
||||
if (state.extra is StreamEvent) {
|
||||
return StreamPage(stream: state.extra as StreamEvent);
|
||||
} else {
|
||||
return StreamPage.loader(state.pathParameters["id"]!);
|
||||
}
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: "/p/:id",
|
||||
builder: (ctx, state) {
|
||||
return ProfilePage(pubkey: state.pathParameters["id"]!);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: "/t/:id",
|
||||
builder: (context, state) {
|
||||
return HashtagPage(tag: state.pathParameters["id"]!);
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: "/category/:id",
|
||||
builder: (context, state) {
|
||||
return CategoryPage(
|
||||
category: state.pathParameters["id"]!,
|
||||
info: state.extra as GameInfo?,
|
||||
);
|
||||
},
|
||||
),
|
||||
ShellRoute(
|
||||
builder:
|
||||
(context, state, child) =>
|
||||
Column(children: [HeaderWidget(), child]),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: "/settings",
|
||||
builder: (context, state) => SettingsPage(),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: "profile",
|
||||
builder: (context, state) => SettingsProfilePage(),
|
||||
),
|
||||
GoRoute(
|
||||
path: "wallet",
|
||||
builder: (context, state) => SettingsWalletPage(),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: "/live",
|
||||
builder: (context, state) => LivePage(),
|
||||
),
|
||||
GoRoute(
|
||||
path: "/:id",
|
||||
redirect: (context, state) {
|
||||
final id = state.pathParameters["id"]!;
|
||||
if (id.startsWith("naddr1") ||
|
||||
id.startsWith("nevent1") ||
|
||||
id.startsWith("note1")) {
|
||||
return "/e/$id";
|
||||
} else if (id.startsWith("npub1") ||
|
||||
id.startsWith("nprofile1")) {
|
||||
return "/p/$id";
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
78
lib/const.dart
Normal file
@ -0,0 +1,78 @@
|
||||
import 'package:amberflutter/amberflutter.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:ndk/ndk.dart';
|
||||
import 'package:ndk_amber/ndk_amber.dart';
|
||||
import 'package:ndk_objectbox/ndk_objectbox.dart';
|
||||
import 'package:ndk_rust_verifier/ndk_rust_verifier.dart';
|
||||
import 'package:zap_stream_flutter/login.dart';
|
||||
|
||||
class NoVerify extends EventVerifier {
|
||||
@override
|
||||
Future<bool> verify(Nip01Event event) {
|
||||
return Future.value(true);
|
||||
}
|
||||
}
|
||||
|
||||
final ndkCache = DbObjectBox();
|
||||
final eventVerifier = kDebugMode ? NoVerify() : RustEventVerifier();
|
||||
final ndk = Ndk(
|
||||
NdkConfig(
|
||||
eventVerifier: eventVerifier,
|
||||
cache: ndkCache,
|
||||
bootstrapRelays: defaultRelays,
|
||||
//engine: NdkEngine.JIT,
|
||||
),
|
||||
);
|
||||
|
||||
const userAgent = "zap.stream/1.0";
|
||||
const defaultRelays = [
|
||||
"wss://nos.lol",
|
||||
"wss://relay.damus.io",
|
||||
"wss://relay.primal.net",
|
||||
"wss://relay.snort.social",
|
||||
"wss://relay.fountain.fm",
|
||||
];
|
||||
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 RouteObserver<ModalRoute<void>> routeObserver =
|
||||
RouteObserver<ModalRoute<void>>();
|
||||
final localNotifications = FlutterLocalNotificationsPlugin();
|
||||
|
||||
Future<void> initLogin() async {
|
||||
// reload / cache login data
|
||||
loginData.addListener(() {
|
||||
if (loginData.value != null) {
|
||||
final pubkey = loginData.value!.pubkey;
|
||||
if (!ndk.accounts.hasAccount(pubkey)) {
|
||||
switch (loginData.value!.type) {
|
||||
case AccountType.privateKey:
|
||||
ndk.accounts.loginPrivateKey(
|
||||
pubkey: pubkey,
|
||||
privkey: loginData.value!.privateKey!,
|
||||
);
|
||||
case AccountType.externalSigner:
|
||||
ndk.accounts.loginExternalSigner(
|
||||
signer: AmberEventSigner(
|
||||
publicKey: pubkey,
|
||||
amberFlutterDS: AmberFlutterDS(Amberflutter()),
|
||||
),
|
||||
);
|
||||
case AccountType.publicKey:
|
||||
ndk.accounts.loginPublicKey(pubkey: pubkey);
|
||||
}
|
||||
}
|
||||
ndk.metadata.loadMetadata(pubkey);
|
||||
ndk.follows.getContactList(pubkey);
|
||||
} else {
|
||||
ndk.accounts.logout();
|
||||
}
|
||||
});
|
||||
|
||||
await loginData.load();
|
||||
}
|
87
lib/firebase_options.dart
Normal file
@ -0,0 +1,87 @@
|
||||
// File generated by FlutterFire CLI.
|
||||
// ignore_for_file: type=lint
|
||||
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
|
||||
import 'package:flutter/foundation.dart'
|
||||
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
||||
|
||||
/// Default [FirebaseOptions] for use with your Firebase apps.
|
||||
///
|
||||
/// Example:
|
||||
/// ```dart
|
||||
/// import 'firebase_options.dart';
|
||||
/// // ...
|
||||
/// await Firebase.initializeApp(
|
||||
/// options: DefaultFirebaseOptions.currentPlatform,
|
||||
/// );
|
||||
/// ```
|
||||
class DefaultFirebaseOptions {
|
||||
static FirebaseOptions get currentPlatform {
|
||||
if (kIsWeb) {
|
||||
return web;
|
||||
}
|
||||
switch (defaultTargetPlatform) {
|
||||
case TargetPlatform.android:
|
||||
return android;
|
||||
case TargetPlatform.iOS:
|
||||
return ios;
|
||||
case TargetPlatform.macOS:
|
||||
return macos;
|
||||
case TargetPlatform.windows:
|
||||
return windows;
|
||||
case TargetPlatform.linux:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions have not been configured for linux - '
|
||||
'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
);
|
||||
default:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions are not supported for this platform.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static const FirebaseOptions web = FirebaseOptions(
|
||||
apiKey: 'AIzaSyDd9GBruNVBv2qrwv0CGvYeby0ALtTlFKk',
|
||||
appId: '1:953923151748:web:f04633c33f9343b19e9fd1',
|
||||
messagingSenderId: '953923151748',
|
||||
projectId: 'nostrlabs',
|
||||
authDomain: 'nostrlabs.firebaseapp.com',
|
||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||
);
|
||||
|
||||
static const FirebaseOptions android = FirebaseOptions(
|
||||
apiKey: 'AIzaSyAdpxIN8DR1-mh8MCjHU0mDtaUAk6xda6w',
|
||||
appId: '1:953923151748:android:8536cdc7f75edc9f9e9fd1',
|
||||
messagingSenderId: '953923151748',
|
||||
projectId: 'nostrlabs',
|
||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||
);
|
||||
|
||||
static const FirebaseOptions ios = FirebaseOptions(
|
||||
apiKey: 'AIzaSyByygErXpki6Q7NXOXTHbRgg3-Tw-KCVO0',
|
||||
appId: '1:953923151748:ios:aef9c54f556258d39e9fd1',
|
||||
messagingSenderId: '953923151748',
|
||||
projectId: 'nostrlabs',
|
||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||
iosBundleId: 'io.nostrlabs.zap-stream',
|
||||
);
|
||||
|
||||
static const FirebaseOptions macos = FirebaseOptions(
|
||||
apiKey: 'AIzaSyByygErXpki6Q7NXOXTHbRgg3-Tw-KCVO0',
|
||||
appId: '1:953923151748:ios:19516d42a1cc02229e9fd1',
|
||||
messagingSenderId: '953923151748',
|
||||
projectId: 'nostrlabs',
|
||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||
iosBundleId: 'com.example.zapStreamFlutter',
|
||||
);
|
||||
|
||||
static const FirebaseOptions windows = FirebaseOptions(
|
||||
apiKey: 'AIzaSyDd9GBruNVBv2qrwv0CGvYeby0ALtTlFKk',
|
||||
appId: '1:953923151748:web:6b9a6be6798644909e9fd1',
|
||||
messagingSenderId: '953923151748',
|
||||
projectId: 'nostrlabs',
|
||||
authDomain: 'nostrlabs.firebaseapp.com',
|
||||
storageBucket: 'nostrlabs.firebasestorage.app',
|
||||
);
|
||||
|
||||
}
|
12
lib/flavours/free/main.dart
Normal file
@ -0,0 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:zap_stream_flutter/app.dart';
|
||||
import 'package:zap_stream_flutter/const.dart';
|
||||
import 'package:zap_stream_flutter/i18n/strings.g.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
LocaleSettings.useDeviceLocale();
|
||||
await initLogin();
|
||||
|
||||
runZapStream();
|
||||
}
|
482
lib/i18n/strings.g.dart
Normal file
@ -0,0 +1,482 @@
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
/// Source: lib/i18n
|
||||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 22
|
||||
/// Strings: 2011 (91 per locale)
|
||||
///
|
||||
/// Built on 2025-06-03 at 10:11 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'package:slang_flutter/slang_flutter.dart';
|
||||
export 'package:slang_flutter/slang_flutter.dart';
|
||||
|
||||
import 'strings_ar.g.dart' deferred as l_ar;
|
||||
import 'strings_cs.g.dart' deferred as l_cs;
|
||||
import 'strings_da.g.dart' deferred as l_da;
|
||||
import 'strings_de.g.dart' deferred as l_de;
|
||||
import 'strings_el.g.dart' deferred as l_el;
|
||||
import 'strings_es.g.dart' deferred as l_es;
|
||||
import 'strings_fi.g.dart' deferred as l_fi;
|
||||
import 'strings_fr.g.dart' deferred as l_fr;
|
||||
import 'strings_hu.g.dart' deferred as l_hu;
|
||||
import 'strings_it.g.dart' deferred as l_it;
|
||||
import 'strings_ja.g.dart' deferred as l_ja;
|
||||
import 'strings_ko.g.dart' deferred as l_ko;
|
||||
import 'strings_nl.g.dart' deferred as l_nl;
|
||||
import 'strings_pl.g.dart' deferred as l_pl;
|
||||
import 'strings_pt.g.dart' deferred as l_pt;
|
||||
import 'strings_ro.g.dart' deferred as l_ro;
|
||||
import 'strings_ru.g.dart' deferred as l_ru;
|
||||
import 'strings_sv.g.dart' deferred as l_sv;
|
||||
import 'strings_tr.g.dart' deferred as l_tr;
|
||||
import 'strings_uk.g.dart' deferred as l_uk;
|
||||
import 'strings_zh.g.dart' deferred as l_zh;
|
||||
part 'strings_en.g.dart';
|
||||
|
||||
/// Supported locales.
|
||||
///
|
||||
/// Usage:
|
||||
/// - LocaleSettings.setLocale(AppLocale.en) // set locale
|
||||
/// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
|
||||
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
|
||||
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
||||
en(languageCode: 'en'),
|
||||
ar(languageCode: 'ar'),
|
||||
cs(languageCode: 'cs'),
|
||||
da(languageCode: 'da'),
|
||||
de(languageCode: 'de'),
|
||||
el(languageCode: 'el'),
|
||||
es(languageCode: 'es'),
|
||||
fi(languageCode: 'fi'),
|
||||
fr(languageCode: 'fr'),
|
||||
hu(languageCode: 'hu'),
|
||||
it(languageCode: 'it'),
|
||||
ja(languageCode: 'ja'),
|
||||
ko(languageCode: 'ko'),
|
||||
nl(languageCode: 'nl'),
|
||||
pl(languageCode: 'pl'),
|
||||
pt(languageCode: 'pt'),
|
||||
ro(languageCode: 'ro'),
|
||||
ru(languageCode: 'ru'),
|
||||
sv(languageCode: 'sv'),
|
||||
tr(languageCode: 'tr'),
|
||||
uk(languageCode: 'uk'),
|
||||
zh(languageCode: 'zh');
|
||||
|
||||
const AppLocale({
|
||||
required this.languageCode,
|
||||
this.scriptCode, // ignore: unused_element, unused_element_parameter
|
||||
this.countryCode, // ignore: unused_element, unused_element_parameter
|
||||
});
|
||||
|
||||
@override final String languageCode;
|
||||
@override final String? scriptCode;
|
||||
@override final String? countryCode;
|
||||
|
||||
@override
|
||||
Future<Translations> build({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) async {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ar:
|
||||
await l_ar.loadLibrary();
|
||||
return l_ar.TranslationsAr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.cs:
|
||||
await l_cs.loadLibrary();
|
||||
return l_cs.TranslationsCs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.da:
|
||||
await l_da.loadLibrary();
|
||||
return l_da.TranslationsDa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.de:
|
||||
await l_de.loadLibrary();
|
||||
return l_de.TranslationsDe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.el:
|
||||
await l_el.loadLibrary();
|
||||
return l_el.TranslationsEl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.es:
|
||||
await l_es.loadLibrary();
|
||||
return l_es.TranslationsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fi:
|
||||
await l_fi.loadLibrary();
|
||||
return l_fi.TranslationsFi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fr:
|
||||
await l_fr.loadLibrary();
|
||||
return l_fr.TranslationsFr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hu:
|
||||
await l_hu.loadLibrary();
|
||||
return l_hu.TranslationsHu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.it:
|
||||
await l_it.loadLibrary();
|
||||
return l_it.TranslationsIt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ja:
|
||||
await l_ja.loadLibrary();
|
||||
return l_ja.TranslationsJa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ko:
|
||||
await l_ko.loadLibrary();
|
||||
return l_ko.TranslationsKo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.nl:
|
||||
await l_nl.loadLibrary();
|
||||
return l_nl.TranslationsNl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pl:
|
||||
await l_pl.loadLibrary();
|
||||
return l_pl.TranslationsPl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pt:
|
||||
await l_pt.loadLibrary();
|
||||
return l_pt.TranslationsPt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ro:
|
||||
await l_ro.loadLibrary();
|
||||
return l_ro.TranslationsRo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ru:
|
||||
await l_ru.loadLibrary();
|
||||
return l_ru.TranslationsRu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sv:
|
||||
await l_sv.loadLibrary();
|
||||
return l_sv.TranslationsSv(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.tr:
|
||||
await l_tr.loadLibrary();
|
||||
return l_tr.TranslationsTr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.uk:
|
||||
await l_uk.loadLibrary();
|
||||
return l_uk.TranslationsUk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zh:
|
||||
await l_zh.loadLibrary();
|
||||
return l_zh.TranslationsZh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Translations buildSync({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ar:
|
||||
return l_ar.TranslationsAr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.cs:
|
||||
return l_cs.TranslationsCs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.da:
|
||||
return l_da.TranslationsDa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.de:
|
||||
return l_de.TranslationsDe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.el:
|
||||
return l_el.TranslationsEl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.es:
|
||||
return l_es.TranslationsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fi:
|
||||
return l_fi.TranslationsFi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fr:
|
||||
return l_fr.TranslationsFr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hu:
|
||||
return l_hu.TranslationsHu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.it:
|
||||
return l_it.TranslationsIt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ja:
|
||||
return l_ja.TranslationsJa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ko:
|
||||
return l_ko.TranslationsKo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.nl:
|
||||
return l_nl.TranslationsNl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pl:
|
||||
return l_pl.TranslationsPl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pt:
|
||||
return l_pt.TranslationsPt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ro:
|
||||
return l_ro.TranslationsRo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ru:
|
||||
return l_ru.TranslationsRu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sv:
|
||||
return l_sv.TranslationsSv(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.tr:
|
||||
return l_tr.TranslationsTr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.uk:
|
||||
return l_uk.TranslationsUk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zh:
|
||||
return l_zh.TranslationsZh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets current instance managed by [LocaleSettings].
|
||||
Translations get translations => LocaleSettings.instance.getTranslations(this);
|
||||
}
|
||||
|
||||
/// Method A: Simple
|
||||
///
|
||||
/// No rebuild after locale change.
|
||||
/// Translation happens during initialization of the widget (call of t).
|
||||
/// Configurable via 'translate_var'.
|
||||
///
|
||||
/// Usage:
|
||||
/// String a = t.someKey.anotherKey;
|
||||
/// String b = t['someKey.anotherKey']; // Only for edge cases!
|
||||
Translations get t => LocaleSettings.instance.currentTranslations;
|
||||
|
||||
/// Method B: Advanced
|
||||
///
|
||||
/// All widgets using this method will trigger a rebuild when locale changes.
|
||||
/// Use this if you have e.g. a settings page where the user can select the locale during runtime.
|
||||
///
|
||||
/// Step 1:
|
||||
/// wrap your App with
|
||||
/// TranslationProvider(
|
||||
/// child: MyApp()
|
||||
/// );
|
||||
///
|
||||
/// Step 2:
|
||||
/// final t = Translations.of(context); // Get t variable.
|
||||
/// String a = t.someKey.anotherKey; // Use t variable.
|
||||
/// String b = t['someKey.anotherKey']; // Only for edge cases!
|
||||
class TranslationProvider extends BaseTranslationProvider<AppLocale, Translations> {
|
||||
TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
|
||||
|
||||
static InheritedLocaleData<AppLocale, Translations> of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context);
|
||||
}
|
||||
|
||||
/// Method B shorthand via [BuildContext] extension method.
|
||||
/// Configurable via 'translate_var'.
|
||||
///
|
||||
/// Usage (e.g. in a widget's build method):
|
||||
/// context.t.someKey.anotherKey
|
||||
extension BuildContextTranslationsExtension on BuildContext {
|
||||
Translations get t => TranslationProvider.of(this).translations;
|
||||
}
|
||||
|
||||
/// Manages all translation instances and the current locale
|
||||
class LocaleSettings extends BaseFlutterLocaleSettings<AppLocale, Translations> {
|
||||
LocaleSettings._() : super(
|
||||
utils: AppLocaleUtils.instance,
|
||||
lazy: true,
|
||||
);
|
||||
|
||||
static final instance = LocaleSettings._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale get currentLocale => instance.currentLocale;
|
||||
static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
|
||||
static Future<AppLocale> setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> useDeviceLocale() => instance.useDeviceLocale();
|
||||
static Future<void> setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolver(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
|
||||
// synchronous versions
|
||||
static AppLocale setLocaleSync(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocaleSync(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale setLocaleRawSync(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRawSync(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale useDeviceLocaleSync() => instance.useDeviceLocaleSync();
|
||||
static void setPluralResolverSync({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolverSync(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
|
||||
/// Provides utility functions without any side effects.
|
||||
class AppLocaleUtils extends BaseAppLocaleUtils<AppLocale, Translations> {
|
||||
AppLocaleUtils._() : super(
|
||||
baseLocale: AppLocale.en,
|
||||
locales: AppLocale.values,
|
||||
);
|
||||
|
||||
static final instance = AppLocaleUtils._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
|
||||
static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) => instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
|
||||
static AppLocale findDeviceLocale() => instance.findDeviceLocale();
|
||||
static List<Locale> get supportedLocales => instance.supportedLocales;
|
||||
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
|
||||
}
|
532
lib/i18n/strings_ar.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsAr extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsAr({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.ar,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <ar>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsAr _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsAr $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsAr(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// نص يطالب المستخدم بالضغط على العنصر النائب للصورة الرمزية لبدء التحميل
|
||||
@override String get upload_avatar => 'تحميل الصورة الرمزية';
|
||||
|
||||
/// التوجه فوق اللافتات العلوية المدرجة من قبل zaps
|
||||
@override String get most_zapped_streamers => 'معظم اللافتات التي يتم بثها';
|
||||
|
||||
/// لم يتم العثور على مستخدم عند البحث
|
||||
@override String get no_user_found => 'لم يتم العثور على مستخدم';
|
||||
|
||||
/// مستخدم مجهول
|
||||
@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,
|
||||
one: '1 مشاهد',
|
||||
other: '{n:decimalPattern} المشاهدين',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamAr stream = _TranslationsStreamAr._(_root);
|
||||
@override late final _TranslationsGoalAr goal = _TranslationsGoalAr._(_root);
|
||||
@override late final _TranslationsButtonAr button = _TranslationsButtonAr._(_root);
|
||||
@override late final _TranslationsEmbedAr embed = _TranslationsEmbedAr._(_root);
|
||||
|
||||
/// العناوين في قوائم البث حسب نوع البث المباشر/المُنتهي/المخطط له وما إلى ذلك.
|
||||
@override late final _TranslationsStreamListAr stream_list = _TranslationsStreamListAr._(_root);
|
||||
|
||||
@override late final _TranslationsZapAr zap = _TranslationsZapAr._(_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 _TranslationsLiveAr live = _TranslationsLiveAr._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamAr extends TranslationsStreamEn {
|
||||
_TranslationsStreamAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusAr status = _TranslationsStreamStatusAr._(_root);
|
||||
@override String started({required Object timestamp}) => 'بدأ ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} بدأ البث المباشر!';
|
||||
@override late final _TranslationsStreamChatAr chat = _TranslationsStreamChatAr._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalAr extends TranslationsGoalEn {
|
||||
_TranslationsGoalAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'الهدف: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'المتبقي: ${amount}';
|
||||
@override String get complete => 'مكتمل';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonAr extends TranslationsButtonEn {
|
||||
_TranslationsButtonAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// نص الزر الخاص بزر تسجيل الدخول
|
||||
@override String get login => 'تسجيل الدخول';
|
||||
|
||||
@override String get logout => 'تسجيل الخروج';
|
||||
@override String get edit_profile => 'تعديل الملف الشخصي';
|
||||
|
||||
/// نص الزر الخاص بزر المتابعة
|
||||
@override String get follow => 'متابعة';
|
||||
|
||||
/// نص الزر لزر إلغاء المتابعة
|
||||
@override String get unfollow => 'الغاء المتابعة';
|
||||
|
||||
@override String get mute => 'كتم';
|
||||
@override String get unmute => 'رفع الكتم';
|
||||
@override String get share => 'مشاركة';
|
||||
@override String get save => 'حفظ';
|
||||
@override String get connect => 'الاتصال';
|
||||
@override String get settings => 'الإعدادات';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedAr extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'مقال بقلم ${name}';
|
||||
@override String note_by({required Object name}) => 'ملاحظة من ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'بث مباشر من ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListAr extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'المتابَعون';
|
||||
@override String get live => 'بث مباشر';
|
||||
@override String get planned => 'مخطط';
|
||||
@override String get ended => 'انتهى';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapAr extends TranslationsZapEn {
|
||||
_TranslationsZapAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'زاب ${name}';
|
||||
@override String get custom_amount => 'المبلغ المخصص';
|
||||
@override String get confirm => 'تأكيد';
|
||||
@override String get comment => 'تعليق';
|
||||
@override String button_zap_ready({required Object amount}) => 'أومض ${amount} ساتوشي';
|
||||
@override String get button_zap => 'زاب';
|
||||
@override String get button_open_wallet => 'فتح في المحفظة';
|
||||
@override String get button_connect_wallet => 'توصيل المحفظة';
|
||||
@override String get copy => 'نسخ إلى الحافظة';
|
||||
@override late final _TranslationsZapErrorAr error = _TranslationsZapErrorAr._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileAr extends TranslationsProfileEn {
|
||||
_TranslationsProfileAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'التدفقات السابقة';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginAr extends TranslationsLoginEn {
|
||||
_TranslationsLoginAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'اسم المستخدم';
|
||||
@override String get amber => 'تسجيل الدخول مع آمبر';
|
||||
@override String get key => 'تسجيل الدخول بالمفتاح';
|
||||
@override String get create => 'إنشاء حساب';
|
||||
@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
|
||||
class _TranslationsStreamStatusAr extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'بث مباشر';
|
||||
@override String get ended => 'انتهى';
|
||||
@override String get planned => 'مخطط';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatAr extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'تم تعطيل الدردشة';
|
||||
@override String disabled_timeout({required Object time}) => 'تنتهي المهلة: ${time}';
|
||||
|
||||
/// رسالة دردشة تظهر أحداث المهلة
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' انتهى الوقت '),
|
||||
user,
|
||||
const TextSpan(text: ' لـ '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// تيار انتهى التذييل في أسفل الدردشة
|
||||
@override String get ended => 'انتهى البث';
|
||||
|
||||
/// رسالة الدردشة التي تُظهر البث المباشر
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' انطلق '),
|
||||
amount,
|
||||
const TextSpan(text: ' ساتس'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteAr write = _TranslationsStreamChatWriteAr._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeAr badge = _TranslationsStreamChatBadgeAr._(_root);
|
||||
@override late final _TranslationsStreamChatRaidAr raid = _TranslationsStreamChatRaidAr._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorAr extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'مبلغ مخصص غير صالح';
|
||||
@override String get no_wallet => 'لا توجد محفظة برق مثبتة';
|
||||
@override String get no_lud16 => 'لم يتم العثور على عنوان البرق';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileAr extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'اسم العرض';
|
||||
@override String get about => 'نبذة عن';
|
||||
@override String get nip05 => 'عنوان نوستر';
|
||||
@override String get lud16 => 'عنوان البرق';
|
||||
@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
|
||||
class _TranslationsLoginErrorAr extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteAr extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// التسمية على مربع إدخال رسالة الدردشة
|
||||
@override String get label => 'اكتب رسالة';
|
||||
|
||||
/// تظهر رسالة إدخال الدردشة عندما يقوم المستخدم بتسجيل الدخول باستخدام مفتاح الحانة فقط
|
||||
@override String get no_signer => 'لا يمكن كتابة الرسائل باستخدام تسجيل الدخول إلى npub';
|
||||
|
||||
/// تظهر رسالة إدخال الدردشة عند تسجيل خروج المستخدم من المحادثة
|
||||
@override String get login => 'الرجاء تسجيل الدخول لإرسال الرسائل';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeAr extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// العنوان فوق قائمة المستخدمين الذين حصلوا على شارة
|
||||
@override String get awarded_to => 'مُنحت الجائزة لـ';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidAr extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// رسالة غارة الدردشة إلى دفق آخر
|
||||
@override String to({required Object name}) => 'التصفح ${name}';
|
||||
|
||||
/// رسالة غارة الدردشة من دفق آخر
|
||||
@override String from({required Object name}) => 'RAID من ${name}';
|
||||
|
||||
/// مؤقت العد التنازلي للقيادة التلقائية
|
||||
@override String countdown({required Object time}) => 'الإغارة في ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorAr extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorAr._(TranslationsAr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsAr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsAr {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'تحميل الصورة الرمزية';
|
||||
case 'most_zapped_streamers': return 'معظم اللافتات التي يتم بثها';
|
||||
case 'no_user_found': 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,
|
||||
one: '1 مشاهد',
|
||||
other: '{n:decimalPattern} المشاهدين',
|
||||
);
|
||||
case 'stream.status.live': return 'بث مباشر';
|
||||
case 'stream.status.ended': return 'انتهى';
|
||||
case 'stream.status.planned': return 'مخطط';
|
||||
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_timeout': return ({required Object time}) => 'تنتهي المهلة: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' انتهى الوقت '),
|
||||
user,
|
||||
const TextSpan(text: ' لـ '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'انتهى البث';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' انطلق '),
|
||||
amount,
|
||||
const TextSpan(text: ' ساتس'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'اكتب رسالة';
|
||||
case 'stream.chat.write.no_signer': return 'لا يمكن كتابة الرسائل باستخدام تسجيل الدخول إلى npub';
|
||||
case 'stream.chat.write.login': return 'الرجاء تسجيل الدخول لإرسال الرسائل';
|
||||
case 'stream.chat.badge.awarded_to': return 'مُنحت الجائزة لـ';
|
||||
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.countdown': return ({required Object time}) => 'الإغارة في ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'الهدف: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'المتبقي: ${amount}';
|
||||
case 'goal.complete': return 'مكتمل';
|
||||
case 'button.login': return 'تسجيل الدخول';
|
||||
case 'button.logout': return 'تسجيل الخروج';
|
||||
case 'button.edit_profile': return 'تعديل الملف الشخصي';
|
||||
case 'button.follow': return 'متابعة';
|
||||
case 'button.unfollow': return 'الغاء المتابعة';
|
||||
case 'button.mute': return 'كتم';
|
||||
case 'button.unmute': return 'رفع الكتم';
|
||||
case 'button.share': return 'مشاركة';
|
||||
case 'button.save': return 'حفظ';
|
||||
case 'button.connect': return 'الاتصال';
|
||||
case 'button.settings': return 'الإعدادات';
|
||||
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.live': return 'بث مباشر';
|
||||
case 'stream_list.planned': return 'مخطط';
|
||||
case 'stream_list.ended': return 'انتهى';
|
||||
case 'zap.title': return ({required Object name}) => 'زاب ${name}';
|
||||
case 'zap.custom_amount': return 'المبلغ المخصص';
|
||||
case 'zap.confirm': return 'تأكيد';
|
||||
case 'zap.comment': return 'تعليق';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'أومض ${amount} ساتوشي';
|
||||
case 'zap.button_zap': return 'زاب';
|
||||
case 'zap.button_open_wallet': return 'فتح في المحفظة';
|
||||
case 'zap.button_connect_wallet': return 'توصيل المحفظة';
|
||||
case 'zap.copy': return 'نسخ إلى الحافظة';
|
||||
case 'zap.error.invalid_custom_amount': return 'مبلغ مخصص غير صالح';
|
||||
case 'zap.error.no_wallet': return 'لا توجد محفظة برق مثبتة';
|
||||
case 'zap.error.no_lud16': return 'لم يتم العثور على عنوان البرق';
|
||||
case 'profile.past_streams': return 'التدفقات السابقة';
|
||||
case 'settings.button_profile': return 'تعديل الملف الشخصي';
|
||||
case 'settings.button_wallet': return 'إعدادات المحفظة';
|
||||
case 'settings.profile.display_name': return 'اسم العرض';
|
||||
case 'settings.profile.about': 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.amber': return 'تسجيل الدخول مع آمبر';
|
||||
case 'login.key': return 'تسجيل الدخول بالمفتاح';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_cs.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsCs extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsCs({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.cs,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <cs>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsCs _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsCs $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsCs(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Text vyzývající uživatele, aby stiskl zástupný symbol avatara pro zahájení nahrávání
|
||||
@override String get upload_avatar => 'Nahrát avatar';
|
||||
|
||||
/// Směřování přes uvedené horní streamery podle zaps
|
||||
@override String get most_zapped_streamers => 'Nejvíce zapnutých streamerů';
|
||||
|
||||
/// Při vyhledávání nebyl nalezen žádný uživatel
|
||||
@override String get no_user_found => 'Nebyl nalezen žádný uživatel';
|
||||
|
||||
/// Anonymní uživatel
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('cs').format(n)} sats';
|
||||
|
||||
/// Počet diváků streamu
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('cs'))(n,
|
||||
one: '1 divák',
|
||||
other: '${NumberFormat.decimalPattern('cs').format(n)} diváků',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamCs stream = _TranslationsStreamCs._(_root);
|
||||
@override late final _TranslationsGoalCs goal = _TranslationsGoalCs._(_root);
|
||||
@override late final _TranslationsButtonCs button = _TranslationsButtonCs._(_root);
|
||||
@override late final _TranslationsEmbedCs embed = _TranslationsEmbedCs._(_root);
|
||||
|
||||
/// Nadpisy v seznamech proudů podle typu proudu živě/konec/plánovaně atd.
|
||||
@override late final _TranslationsStreamListCs stream_list = _TranslationsStreamListCs._(_root);
|
||||
|
||||
@override late final _TranslationsZapCs zap = _TranslationsZapCs._(_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 _TranslationsLiveCs live = _TranslationsLiveCs._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamCs extends TranslationsStreamEn {
|
||||
_TranslationsStreamCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusCs status = _TranslationsStreamStatusCs._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalCs extends TranslationsGoalEn {
|
||||
_TranslationsGoalCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Cíl: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Zbývá: ${amount}';
|
||||
@override String get complete => 'KOMPLETNÍ';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonCs extends TranslationsButtonEn {
|
||||
_TranslationsButtonCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Text tlačítka pro přihlašovací tlačítko
|
||||
@override String get login => 'Přihlášení';
|
||||
|
||||
@override String get logout => 'Odhlášení';
|
||||
@override String get edit_profile => 'Upravit profil';
|
||||
|
||||
/// Text tlačítka pro tlačítko sledovat
|
||||
@override String get follow => 'Sledujte';
|
||||
|
||||
/// Text tlačítka pro zrušení sledování
|
||||
@override String get unfollow => 'Zrušit sledování';
|
||||
|
||||
@override String get mute => 'Ztlumit';
|
||||
@override String get unmute => 'Zrušit ztlumení';
|
||||
@override String get share => 'Sdílet';
|
||||
@override String get save => 'Uložit';
|
||||
@override String get connect => 'Připojení';
|
||||
@override String get settings => 'Nastavení';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedCs extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Článek na ${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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListCs extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Po';
|
||||
@override String get live => 'Živě';
|
||||
@override String get planned => 'Plánované';
|
||||
@override String get ended => 'Ukončeno';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapCs extends TranslationsZapEn {
|
||||
_TranslationsZapCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Vlastní částka';
|
||||
@override String get confirm => 'Potvrďte';
|
||||
@override String get comment => 'Komentář:';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorCs error = _TranslationsZapErrorCs._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileCs extends TranslationsProfileEn {
|
||||
_TranslationsProfileCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Minulé proudy';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginCs extends TranslationsLoginEn {
|
||||
_TranslationsLoginCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Uživatelské jméno';
|
||||
@override String get amber => 'Přihlášení pomocí Amber';
|
||||
@override String get key => 'Přihlášení pomocí klíče';
|
||||
@override String get create => 'Vytvořit účet';
|
||||
@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
|
||||
class _TranslationsStreamStatusCs extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'KONEC';
|
||||
@override String get planned => 'PLÁNOVANÉ';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatCs extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT ZRUŠEN';
|
||||
@override String disabled_timeout({required Object time}) => 'Časový limit vyprší: ${time}';
|
||||
|
||||
/// Zpráva chatu zobrazující události časového limitu
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' vypršel čas '),
|
||||
user,
|
||||
const TextSpan(text: ' pro '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Zápatí v dolní části chatu ukončilo stream
|
||||
@override String get ended => 'STREAM UKONČEN';
|
||||
|
||||
/// Zpráva chatu zobrazující proud zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' Zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteCs write = _TranslationsStreamChatWriteCs._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeCs badge = _TranslationsStreamChatBadgeCs._(_root);
|
||||
@override late final _TranslationsStreamChatRaidCs raid = _TranslationsStreamChatRaidCs._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorCs extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Neplatná vlastní částka';
|
||||
@override String get no_wallet => 'Není nainstalována blesková peněženka';
|
||||
@override String get no_lud16 => 'Nebyla nalezena žádná adresa blesku';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileCs extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Zobrazení názvu';
|
||||
@override String get about => 'O stránkách';
|
||||
@override String get nip05 => 'Adresa Nostr';
|
||||
@override String get lud16 => 'Adresa blesku';
|
||||
@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
|
||||
class _TranslationsLoginErrorCs extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteCs extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Popisek na vstupním poli zprávy chatu
|
||||
@override String get label => 'Napište zprávu';
|
||||
|
||||
/// Vstupní zpráva chatu se zobrazí, když je uživatel přihlášen pouze pomocí pubkey
|
||||
@override String get no_signer => 'Nelze psát zprávy s přihlášením npub';
|
||||
|
||||
/// Vstupní zpráva chatu zobrazená při odhlášení uživatele
|
||||
@override String get login => 'Pro odesílání zpráv se prosím přihlaste';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeCs extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Záhlaví nad seznamem uživatelů, kterým byl udělen odznak
|
||||
@override String get awarded_to => 'Uděleno:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidCs extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Zpráva o nájezdu chatu do jiného proudu
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Zpráva o nájezdu chatu z jiného proudu
|
||||
@override String from({required Object name}) => 'RAID Z ${name}';
|
||||
|
||||
/// Časovač odpočítávání pro automatický nájezd
|
||||
@override String countdown({required Object time}) => 'Nájezdy na ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorCs extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorCs._(TranslationsCs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsCs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsCs {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Nahrát avatar';
|
||||
case 'most_zapped_streamers': return 'Nejvíce zapnutých streamerů';
|
||||
case 'no_user_found': return 'Nebyl nalezen žádný uživatel';
|
||||
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,
|
||||
one: '1 divák',
|
||||
other: '${NumberFormat.decimalPattern('cs').format(n)} diváků',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'KONEC';
|
||||
case 'stream.status.planned': return 'PLÁNOVANÉ';
|
||||
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_timeout': return ({required Object time}) => 'Časový limit vyprší: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' vypršel čas '),
|
||||
user,
|
||||
const TextSpan(text: ' pro '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM UKONČEN';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' Zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return '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.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.raid.to': return ({required Object name}) => 'RAIDING ${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 'goal.title': return ({required Object amount}) => 'Cíl: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Zbývá: ${amount}';
|
||||
case 'goal.complete': return 'KOMPLETNÍ';
|
||||
case 'button.login': return 'Přihlášení';
|
||||
case 'button.logout': return 'Odhlášení';
|
||||
case 'button.edit_profile': return 'Upravit profil';
|
||||
case 'button.follow': return 'Sledujte';
|
||||
case 'button.unfollow': return 'Zrušit sledování';
|
||||
case 'button.mute': return 'Ztlumit';
|
||||
case 'button.unmute': return 'Zrušit ztlumení';
|
||||
case 'button.share': return 'Sdílet';
|
||||
case 'button.save': return 'Uložit';
|
||||
case 'button.connect': return 'Připojení';
|
||||
case 'button.settings': return 'Nastavení';
|
||||
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.live': return 'Živě';
|
||||
case 'stream_list.planned': return 'Plánované';
|
||||
case 'stream_list.ended': return 'Ukončeno';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Vlastní částka';
|
||||
case 'zap.confirm': return 'Potvrďte';
|
||||
case 'zap.comment': return 'Komentář:';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Neplatná vlastní částka';
|
||||
case 'zap.error.no_wallet': return 'Není nainstalována blesková peněženka';
|
||||
case 'zap.error.no_lud16': return 'Nebyla nalezena žádná adresa blesku';
|
||||
case 'profile.past_streams': return 'Minulé proudy';
|
||||
case 'settings.button_profile': return 'Upravit profil';
|
||||
case 'settings.button_wallet': return 'Nastavení peněženky';
|
||||
case 'settings.profile.display_name': return 'Zobrazení názvu';
|
||||
case 'settings.profile.about': return 'O stránkách';
|
||||
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.amber': return 'Přihlášení pomocí Amber';
|
||||
case 'login.key': return 'Přihlášení pomocí klíče';
|
||||
case 'login.create': return 'Vytvořit účet';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_da.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsDa extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsDa({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.da,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <da>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsDa _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsDa $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsDa(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Tekst, der beder brugeren om at trykke på avatar-pladsholderen for at begynde at uploade
|
||||
@override String get upload_avatar => 'Upload avatar';
|
||||
|
||||
/// På vej over listede topstreamere af zaps
|
||||
@override String get most_zapped_streamers => 'De fleste zappede streamere';
|
||||
|
||||
/// Ingen bruger fundet ved søgning
|
||||
@override String get no_user_found => 'Ingen bruger fundet';
|
||||
|
||||
/// En anonym bruger
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('da').format(n)} sats';
|
||||
|
||||
/// Antal seere af streamingen
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('da'))(n,
|
||||
one: '1 seer',
|
||||
other: '${NumberFormat.decimalPattern('da').format(n)} seere',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamDa stream = _TranslationsStreamDa._(_root);
|
||||
@override late final _TranslationsGoalDa goal = _TranslationsGoalDa._(_root);
|
||||
@override late final _TranslationsButtonDa button = _TranslationsButtonDa._(_root);
|
||||
@override late final _TranslationsEmbedDa embed = _TranslationsEmbedDa._(_root);
|
||||
|
||||
/// Overskrifter på streaminglister efter streamingtype live/afsluttet/planlagt osv.
|
||||
@override late final _TranslationsStreamListDa stream_list = _TranslationsStreamListDa._(_root);
|
||||
|
||||
@override late final _TranslationsZapDa zap = _TranslationsZapDa._(_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 _TranslationsLiveDa live = _TranslationsLiveDa._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamDa extends TranslationsStreamEn {
|
||||
_TranslationsStreamDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusDa status = _TranslationsStreamStatusDa._(_root);
|
||||
@override String started({required Object timestamp}) => 'Startet ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} gik live!';
|
||||
@override late final _TranslationsStreamChatDa chat = _TranslationsStreamChatDa._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalDa extends TranslationsGoalEn {
|
||||
_TranslationsGoalDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Mål: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Resterende: ${amount}';
|
||||
@override String get complete => 'KOMPLET';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonDa extends TranslationsButtonEn {
|
||||
_TranslationsButtonDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Knaptekst til login-knappen
|
||||
@override String get login => 'Login';
|
||||
|
||||
@override String get logout => 'Log ud';
|
||||
@override String get edit_profile => 'Rediger profil';
|
||||
|
||||
/// Knaptekst til følg-knappen
|
||||
@override String get follow => 'Følg med';
|
||||
|
||||
/// Knaptekst til unfollow-knappen
|
||||
@override String get unfollow => 'Ikke følge';
|
||||
|
||||
@override String get mute => 'Dæmpet';
|
||||
@override String get unmute => 'Slå lyden fra';
|
||||
@override String get share => 'Del';
|
||||
@override String get save => 'Gemme';
|
||||
@override String get connect => 'Opret forbindelse';
|
||||
@override String get settings => 'Indstillinger';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedDa extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artikel af ${name}';
|
||||
@override String note_by({required Object name}) => 'Note fra ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Livestream på ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListDa extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Efterfølgende';
|
||||
@override String get live => 'Live';
|
||||
@override String get planned => 'Planlagt';
|
||||
@override String get ended => 'Afsluttet';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapDa extends TranslationsZapEn {
|
||||
_TranslationsZapDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Brugerdefineret beløb';
|
||||
@override String get confirm => 'Bekræft';
|
||||
@override String get comment => 'Kommentar';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorDa error = _TranslationsZapErrorDa._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileDa extends TranslationsProfileEn {
|
||||
_TranslationsProfileDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Tidligere strømme';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginDa extends TranslationsLoginEn {
|
||||
_TranslationsLoginDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Brugernavn';
|
||||
@override String get amber => 'Log ind med Amber';
|
||||
@override String get key => 'Login med nøgle';
|
||||
@override String get create => 'Opret konto';
|
||||
@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
|
||||
class _TranslationsStreamStatusDa extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'AFSLUTTET';
|
||||
@override String get planned => 'PLANLAGT';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatDa extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DEAKTIVERET';
|
||||
@override String disabled_timeout({required Object time}) => 'Timeout udløber: ${time}';
|
||||
|
||||
/// Chatbesked, der viser timeout-hændelser
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' udløbet '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream afsluttede footer i bunden af chatten
|
||||
@override String get ended => 'STREAM AFSLUTTET';
|
||||
|
||||
/// Chatbesked, der viser stream-zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zappet '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteDa write = _TranslationsStreamChatWriteDa._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeDa badge = _TranslationsStreamChatBadgeDa._(_root);
|
||||
@override late final _TranslationsStreamChatRaidDa raid = _TranslationsStreamChatRaidDa._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorDa extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Ugyldigt brugerdefineret beløb';
|
||||
@override String get no_wallet => 'Ingen lightning wallet installeret';
|
||||
@override String get no_lud16 => 'Ingen lyn-adresse fundet';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileDa extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Vis navn';
|
||||
@override String get about => 'Omkring';
|
||||
@override String get nip05 => 'Nostr-adresse';
|
||||
@override String get lud16 => 'Adresse for lynnedslag';
|
||||
@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
|
||||
class _TranslationsLoginErrorDa extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteDa extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Label på chatbeskedens inputfelt
|
||||
@override String get label => 'Skriv en besked';
|
||||
|
||||
/// Chat-inputmeddelelse vises, når brugeren kun er logget ind med pubkey
|
||||
@override String get no_signer => 'Kan ikke skrive beskeder med npub-login';
|
||||
|
||||
/// Chat-inputmeddelelse vises, når brugeren er logget ud
|
||||
@override String get login => 'Log ind for at sende beskeder';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeDa extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Overskrift over liste over brugere, der har fået tildelt et badge
|
||||
@override String get awarded_to => 'Tildelt til:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidDa extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat raid-besked til en anden stream
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat raid-besked fra en anden stream
|
||||
@override String from({required Object name}) => 'RAID FRA ${name}';
|
||||
|
||||
/// Nedtællingstimer til auto-raiding
|
||||
@override String countdown({required Object time}) => 'Raiding i ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorDa extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorDa._(TranslationsDa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsDa {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Upload avatar';
|
||||
case 'most_zapped_streamers': return 'De fleste zappede streamere';
|
||||
case 'no_user_found': return 'Ingen bruger fundet';
|
||||
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,
|
||||
one: '1 seer',
|
||||
other: '${NumberFormat.decimalPattern('da').format(n)} seere',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'AFSLUTTET';
|
||||
case 'stream.status.planned': return 'PLANLAGT';
|
||||
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_timeout': return ({required Object time}) => 'Timeout udløber: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' udløbet '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM AFSLUTTET';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zappet '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Log ind for at sende beskeder';
|
||||
case 'stream.chat.badge.awarded_to': return 'Tildelt til:';
|
||||
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.countdown': return ({required Object time}) => 'Raiding i ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Mål: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Resterende: ${amount}';
|
||||
case 'goal.complete': return 'KOMPLET';
|
||||
case 'button.login': return 'Login';
|
||||
case 'button.logout': return 'Log ud';
|
||||
case 'button.edit_profile': return 'Rediger profil';
|
||||
case 'button.follow': return 'Følg med';
|
||||
case 'button.unfollow': return 'Ikke følge';
|
||||
case 'button.mute': return 'Dæmpet';
|
||||
case 'button.unmute': return 'Slå lyden fra';
|
||||
case 'button.share': return 'Del';
|
||||
case 'button.save': return 'Gemme';
|
||||
case 'button.connect': return 'Opret forbindelse';
|
||||
case 'button.settings': return 'Indstillinger';
|
||||
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.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Planlagt';
|
||||
case 'stream_list.ended': return 'Afsluttet';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Brugerdefineret beløb';
|
||||
case 'zap.confirm': return 'Bekræft';
|
||||
case 'zap.comment': return 'Kommentar';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Ugyldigt brugerdefineret beløb';
|
||||
case 'zap.error.no_wallet': return 'Ingen lightning wallet installeret';
|
||||
case 'zap.error.no_lud16': return 'Ingen lyn-adresse fundet';
|
||||
case 'profile.past_streams': return 'Tidligere strømme';
|
||||
case 'settings.button_profile': return 'Rediger profil';
|
||||
case 'settings.button_wallet': return 'Indstillinger for tegnebog';
|
||||
case 'settings.profile.display_name': return 'Vis navn';
|
||||
case 'settings.profile.about': return 'Omkring';
|
||||
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.amber': return 'Log ind med Amber';
|
||||
case 'login.key': return 'Login med nøgle';
|
||||
case 'login.create': return 'Opret konto';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_de.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsDe extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsDe({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.de,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <de>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsDe _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsDe $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsDe(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Text, der den Benutzer auffordert, auf den Avatar-Platzhalter zu klicken, um den Upload zu starten
|
||||
@override String get upload_avatar => 'Avatar hochladen';
|
||||
|
||||
/// Überschrift über gelistete Top-Streamer nach Zaps
|
||||
@override String get most_zapped_streamers => 'Meistgezappte Streamer';
|
||||
|
||||
/// Kein Benutzer bei der Suche gefunden
|
||||
@override String get no_user_found => 'Kein Benutzer gefunden';
|
||||
|
||||
/// Ein anonymer Benutzer
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@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,
|
||||
one: '1 Zuschauer',
|
||||
other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamDe stream = _TranslationsStreamDe._(_root);
|
||||
@override late final _TranslationsGoalDe goal = _TranslationsGoalDe._(_root);
|
||||
@override late final _TranslationsButtonDe button = _TranslationsButtonDe._(_root);
|
||||
@override late final _TranslationsEmbedDe embed = _TranslationsEmbedDe._(_root);
|
||||
|
||||
/// Überschriften auf Stream-Listen nach Stream-Typ live/beendet/geplant usw.
|
||||
@override late final _TranslationsStreamListDe stream_list = _TranslationsStreamListDe._(_root);
|
||||
|
||||
@override late final _TranslationsZapDe zap = _TranslationsZapDe._(_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 _TranslationsLiveDe live = _TranslationsLiveDe._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamDe extends TranslationsStreamEn {
|
||||
_TranslationsStreamDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusDe status = _TranslationsStreamStatusDe._(_root);
|
||||
@override String started({required Object timestamp}) => 'Gestartet ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} ging live!';
|
||||
@override late final _TranslationsStreamChatDe chat = _TranslationsStreamChatDe._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalDe extends TranslationsGoalEn {
|
||||
_TranslationsGoalDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Ziel: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Verbleibend: ${amount}';
|
||||
@override String get complete => 'COMPLETE';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonDe extends TranslationsButtonEn {
|
||||
_TranslationsButtonDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Schaltflächentext für die Anmeldeschaltfläche
|
||||
@override String get login => 'Anmelden';
|
||||
|
||||
@override String get logout => 'Abmelden';
|
||||
@override String get edit_profile => 'Profil anpassen';
|
||||
|
||||
/// Schaltflächentext für die Schaltfläche "Folgen
|
||||
@override String get follow => 'Folgen';
|
||||
|
||||
/// Schaltflächentext für die "Unfollow"-Schaltfläche
|
||||
@override String get unfollow => 'Entfolgen';
|
||||
|
||||
@override String get mute => 'Stummschalten';
|
||||
@override String get unmute => 'Entstummen';
|
||||
@override String get share => 'Teilen';
|
||||
@override String get save => 'Speichern';
|
||||
@override String get connect => 'Verbinden Sie';
|
||||
@override String get settings => 'Einstellungen';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedDe extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artikel von ${name}';
|
||||
@override String note_by({required Object name}) => 'Note von ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Live-Stream von ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListDe extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Folge ich';
|
||||
@override String get live => 'Live';
|
||||
@override String get planned => 'Geplant';
|
||||
@override String get ended => 'Beendet';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapDe extends TranslationsZapEn {
|
||||
_TranslationsZapDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => '${name} zappen';
|
||||
@override String get custom_amount => 'Benutzerdefinierter Betrag';
|
||||
@override String get confirm => 'Bestätigen';
|
||||
@override String get comment => 'Kommentar';
|
||||
@override String button_zap_ready({required Object amount}) => '${amount} sats zappen';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorDe error = _TranslationsZapErrorDe._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileDe extends TranslationsProfileEn {
|
||||
_TranslationsProfileDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Vergangene Streams';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginDe extends TranslationsLoginEn {
|
||||
_TranslationsLoginDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Benutzername';
|
||||
@override String get amber => 'Anmeldung mit Amber';
|
||||
@override String get key => 'Anmeldung mit Schlüssel';
|
||||
@override String get create => 'Konto erstellen';
|
||||
@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
|
||||
class _TranslationsStreamStatusDe extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'BEENDET';
|
||||
@override String get planned => 'GEPLANT';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatDe extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DEAKTIVIERT';
|
||||
@override String disabled_timeout({required Object time}) => 'Timeout läuft ab: ${time}';
|
||||
|
||||
/// Chat-Nachricht mit Timeout-Ereignissen
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' gibt '),
|
||||
user,
|
||||
const TextSpan(text: ' einen Timeout für '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream beendet Fußzeile am Ende des Chats
|
||||
@override String get ended => 'STREAM BEENDET';
|
||||
|
||||
/// Chat-Nachricht mit Stream-Zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' hat '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats gezappt'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteDe write = _TranslationsStreamChatWriteDe._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeDe badge = _TranslationsStreamChatBadgeDe._(_root);
|
||||
@override late final _TranslationsStreamChatRaidDe raid = _TranslationsStreamChatRaidDe._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorDe extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Ungültiger benutzerdefinierter Betrag';
|
||||
@override String get no_wallet => 'Keine Lightning-Brieftasche installiert';
|
||||
@override String get no_lud16 => 'Keine Blitzadresse gefunden';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileDe extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Name anzeigen';
|
||||
@override String get about => 'Über';
|
||||
@override String get nip05 => 'Nostr-Adresse';
|
||||
@override String get lud16 => 'Blitz-Adresse';
|
||||
@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
|
||||
class _TranslationsLoginErrorDe extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteDe extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Beschriftung des Eingabefeldes für Chatnachrichten
|
||||
@override String get label => 'Nachricht schreiben';
|
||||
|
||||
/// Chat-Eingabemeldung wird angezeigt, wenn der Benutzer nur mit Pubkey eingeloggt ist
|
||||
@override String get no_signer => 'Mit npub-Login können keine Nachrichten geschrieben werden';
|
||||
|
||||
/// Chat-Eingabemeldung wird angezeigt, wenn der Benutzer abgemeldet ist
|
||||
@override String get login => 'Bitte anmelden, um Nachrichten zu senden';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeDe extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Überschrift über der Liste der Benutzer, die ein Abzeichen erhalten haben
|
||||
@override String get awarded_to => 'Verliehen an:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidDe extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat-Überfallnachricht an einen anderen Stream
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat-Raid-Nachricht aus einem anderen Stream
|
||||
@override String from({required Object name}) => 'RAID VON ${name}';
|
||||
|
||||
/// Countdown-Timer für automatisches Reiten
|
||||
@override String countdown({required Object time}) => 'Raubzüge auf ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorDe extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorDe._(TranslationsDe root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsDe _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsDe {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Avatar hochladen';
|
||||
case 'most_zapped_streamers': return 'Meistgezappte Streamer';
|
||||
case 'no_user_found': return 'Kein Benutzer gefunden';
|
||||
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,
|
||||
one: '1 Zuschauer',
|
||||
other: '${NumberFormat.decimalPattern('de').format(n)} Zuschauer',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'BEENDET';
|
||||
case 'stream.status.planned': return 'GEPLANT';
|
||||
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_timeout': return ({required Object time}) => 'Timeout läuft ab: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' gibt '),
|
||||
user,
|
||||
const TextSpan(text: ' einen Timeout für '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM BEENDET';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' hat '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats gezappt'),
|
||||
]);
|
||||
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.login': return 'Bitte anmelden, um Nachrichten zu senden';
|
||||
case 'stream.chat.badge.awarded_to': return 'Verliehen an:';
|
||||
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.countdown': return ({required Object time}) => 'Raubzüge auf ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Ziel: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Verbleibend: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETE';
|
||||
case 'button.login': return 'Anmelden';
|
||||
case 'button.logout': return 'Abmelden';
|
||||
case 'button.edit_profile': return 'Profil anpassen';
|
||||
case 'button.follow': return 'Folgen';
|
||||
case 'button.unfollow': return 'Entfolgen';
|
||||
case 'button.mute': return 'Stummschalten';
|
||||
case 'button.unmute': return 'Entstummen';
|
||||
case 'button.share': return 'Teilen';
|
||||
case 'button.save': return 'Speichern';
|
||||
case 'button.connect': return 'Verbinden Sie';
|
||||
case 'button.settings': return 'Einstellungen';
|
||||
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.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Geplant';
|
||||
case 'stream_list.ended': return 'Beendet';
|
||||
case 'zap.title': return ({required Object name}) => '${name} zappen';
|
||||
case 'zap.custom_amount': return 'Benutzerdefinierter Betrag';
|
||||
case 'zap.confirm': return 'Bestätigen';
|
||||
case 'zap.comment': return 'Kommentar';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => '${amount} sats zappen';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Ungültiger benutzerdefinierter Betrag';
|
||||
case 'zap.error.no_wallet': return 'Keine Lightning-Brieftasche installiert';
|
||||
case 'zap.error.no_lud16': return 'Keine Blitzadresse gefunden';
|
||||
case 'profile.past_streams': return 'Vergangene Streams';
|
||||
case 'settings.button_profile': return 'Profil bearbeiten';
|
||||
case 'settings.button_wallet': return 'Wallet-Einstellungen';
|
||||
case 'settings.profile.display_name': return 'Name anzeigen';
|
||||
case 'settings.profile.about': return 'Über';
|
||||
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.amber': return 'Anmeldung mit Amber';
|
||||
case 'login.key': return 'Anmeldung mit Schlüssel';
|
||||
case 'login.create': return 'Konto erstellen';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_el.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsEl extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsEl({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.el,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <el>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsEl _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsEl $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsEl(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Κείμενο που προτρέπει τον χρήστη να πατήσει το εικονίδιο avatar για να ξεκινήσει το ανέβασμα
|
||||
@override String get upload_avatar => 'Ανέβασμα Avatar';
|
||||
|
||||
/// Επικεφαλής πάνω από τα αναφερόμενα κορυφαία streamers από zaps
|
||||
@override String get most_zapped_streamers => 'Τα περισσότερα Zapped Streamers';
|
||||
|
||||
/// Δεν βρέθηκε χρήστης κατά την αναζήτηση
|
||||
@override String get no_user_found => 'Δεν βρέθηκε χρήστης';
|
||||
|
||||
/// Ένας ανώνυμος χρήστης
|
||||
@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,
|
||||
one: '1 θεατής',
|
||||
other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamEl stream = _TranslationsStreamEl._(_root);
|
||||
@override late final _TranslationsGoalEl goal = _TranslationsGoalEl._(_root);
|
||||
@override late final _TranslationsButtonEl button = _TranslationsButtonEl._(_root);
|
||||
@override late final _TranslationsEmbedEl embed = _TranslationsEmbedEl._(_root);
|
||||
|
||||
/// Επικεφαλίδες στις λίστες ροής ανά τύπο ροής ζωντανή/τελειωμένη/προγραμματισμένη κ.λπ.
|
||||
@override late final _TranslationsStreamListEl stream_list = _TranslationsStreamListEl._(_root);
|
||||
|
||||
@override late final _TranslationsZapEl zap = _TranslationsZapEl._(_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 _TranslationsLiveEl live = _TranslationsLiveEl._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamEl extends TranslationsStreamEn {
|
||||
_TranslationsStreamEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusEl status = _TranslationsStreamStatusEl._(_root);
|
||||
@override String started({required Object timestamp}) => 'Ξεκίνησε ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} βγήκε ζωντανά!';
|
||||
@override late final _TranslationsStreamChatEl chat = _TranslationsStreamChatEl._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalEl extends TranslationsGoalEn {
|
||||
_TranslationsGoalEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Στόχος: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Υπόλοιπο: ${amount}';
|
||||
@override String get complete => 'ΠΛΗΡΗΣ';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonEl extends TranslationsButtonEn {
|
||||
_TranslationsButtonEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Κείμενο κουμπιού για το κουμπί σύνδεσης
|
||||
@override String get login => 'Σύνδεση';
|
||||
|
||||
@override String get logout => 'Αποσύνδεση';
|
||||
@override String get edit_profile => 'Επεξεργασία προφίλ';
|
||||
|
||||
/// Κείμενο κουμπιού για το κουμπί follow
|
||||
@override String get follow => 'Ακολουθήστε το';
|
||||
|
||||
/// Κείμενο κουμπιού για το κουμπί unfollow
|
||||
@override String get unfollow => 'Ακολουθήστε το';
|
||||
|
||||
@override String get mute => 'Σίγαση';
|
||||
@override String get unmute => 'Αποσυνδέστε τη φωνή σας από το';
|
||||
@override String get share => 'Μοιραστείτε το';
|
||||
@override String get save => 'Αποθήκευση';
|
||||
@override String get connect => 'Συνδέστε το';
|
||||
@override String get settings => 'Ρυθμίσεις';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedEl extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Άρθρο από ${name}';
|
||||
@override String note_by({required Object name}) => 'Σημείωση του ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Ζωντανή μετάδοση από το ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListEl extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Ακολουθώντας το';
|
||||
@override String get live => 'Ζωντανό';
|
||||
@override String get planned => 'Προγραμματισμένο';
|
||||
@override String get ended => 'Τελείωσε';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapEl extends TranslationsZapEn {
|
||||
_TranslationsZapEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Προσαρμοσμένο ποσό';
|
||||
@override String get confirm => 'Επιβεβαίωση';
|
||||
@override String get comment => 'Σχόλιο';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@override String get button_open_wallet => 'Άνοιγμα στο πορτοφόλι';
|
||||
@override String get button_connect_wallet => 'Connect Wallet';
|
||||
@override String get copy => 'Αντιγραφή στο πρόχειρο';
|
||||
@override late final _TranslationsZapErrorEl error = _TranslationsZapErrorEl._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileEl extends TranslationsProfileEn {
|
||||
_TranslationsProfileEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Προηγούμενα ρεύματα';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginEl extends TranslationsLoginEn {
|
||||
_TranslationsLoginEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Όνομα χρήστη';
|
||||
@override String get amber => 'Σύνδεση με Amber';
|
||||
@override String get key => 'Σύνδεση με κλειδί';
|
||||
@override String get create => 'Δημιουργία λογαριασμού';
|
||||
@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
|
||||
class _TranslationsStreamStatusEl extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'ENDED';
|
||||
@override String get planned => 'ΣΧΕΔΙΑΣΜΟΣ';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatEl extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ';
|
||||
@override String disabled_timeout({required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
||||
|
||||
/// Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
||||
user,
|
||||
const TextSpan(text: ' για '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Η ροή τελείωσε το υποσέλιδο στο κάτω μέρος της συνομιλίας
|
||||
@override String get ended => 'STREAM ΤΕΛΕΙΩΣΕ';
|
||||
|
||||
/// Μήνυμα συνομιλίας που δείχνει ροή ροής zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteEl write = _TranslationsStreamChatWriteEl._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeEl badge = _TranslationsStreamChatBadgeEl._(_root);
|
||||
@override late final _TranslationsStreamChatRaidEl raid = _TranslationsStreamChatRaidEl._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorEl extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Μη έγκυρο προσαρμοσμένο ποσό';
|
||||
@override String get no_wallet => 'Δεν έχει εγκατασταθεί πορτοφόλι αστραπής';
|
||||
@override String get no_lud16 => 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileEl extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Όνομα οθόνης';
|
||||
@override String get about => 'Σχετικά με το';
|
||||
@override String get nip05 => 'Διεύθυνση Nostr';
|
||||
@override String get lud16 => 'Διεύθυνση Lightning';
|
||||
@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
|
||||
class _TranslationsLoginErrorEl extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteEl extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Ετικέτα στο πλαίσιο εισαγωγής μηνύματος συνομιλίας
|
||||
@override String get label => 'Γράψτε μήνυμα';
|
||||
|
||||
/// Μήνυμα εισόδου συνομιλίας που εμφανίζεται όταν ο χρήστης είναι συνδεδεμένος μόνο με το κλειδί pubkey
|
||||
@override String get no_signer => 'Δεν μπορείτε να γράψετε μηνύματα με σύνδεση στο npub';
|
||||
|
||||
/// Μήνυμα εισόδου συνομιλίας που εμφανίζεται όταν ο χρήστης έχει αποσυνδεθεί
|
||||
@override String get login => 'Παρακαλώ συνδεθείτε για να στείλετε μηνύματα';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeEl extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Επικεφαλίδα πάνω από τη λίστα των χρηστών στους οποίους έχει απονεμηθεί ένα σήμα
|
||||
@override String get awarded_to => 'Απονέμεται σε:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidEl extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Μήνυμα επιδρομής συνομιλίας σε άλλη ροή
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Μήνυμα επιδρομής συνομιλίας από άλλη ροή
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Χρονοδιακόπτης αντίστροφης μέτρησης για αυτόματη ιππασία
|
||||
@override String countdown({required Object time}) => 'Επιδρομές στο ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorEl extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorEl._(TranslationsEl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsEl {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Ανέβασμα Avatar';
|
||||
case 'most_zapped_streamers': return 'Τα περισσότερα Zapped Streamers';
|
||||
case 'no_user_found': return 'Δεν βρέθηκε χρήστης';
|
||||
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,
|
||||
one: '1 θεατής',
|
||||
other: '${NumberFormat.decimalPattern('el').format(n)} θεατές',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'ENDED';
|
||||
case 'stream.status.planned': return 'ΣΧΕΔΙΑΣΜΟΣ';
|
||||
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_timeout': return ({required Object time}) => 'Το χρονικό όριο λήγει: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' χρονομετρημένη λήξη '),
|
||||
user,
|
||||
const TextSpan(text: ' για '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM ΤΕΛΕΙΩΣΕ';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Γράψτε μήνυμα';
|
||||
case 'stream.chat.write.no_signer': return 'Δεν μπορείτε να γράψετε μηνύματα με σύνδεση στο npub';
|
||||
case 'stream.chat.write.login': return 'Παρακαλώ συνδεθείτε για να στείλετε μηνύματα';
|
||||
case 'stream.chat.badge.awarded_to': return 'Απονέμεται σε:';
|
||||
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}) => 'Επιδρομές στο ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Στόχος: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Υπόλοιπο: ${amount}';
|
||||
case 'goal.complete': return 'ΠΛΗΡΗΣ';
|
||||
case 'button.login': return 'Σύνδεση';
|
||||
case 'button.logout': return 'Αποσύνδεση';
|
||||
case 'button.edit_profile': return 'Επεξεργασία προφίλ';
|
||||
case 'button.follow': return 'Ακολουθήστε το';
|
||||
case 'button.unfollow': return 'Ακολουθήστε το';
|
||||
case 'button.mute': return 'Σίγαση';
|
||||
case 'button.unmute': return 'Αποσυνδέστε τη φωνή σας από το';
|
||||
case 'button.share': return 'Μοιραστείτε το';
|
||||
case 'button.save': return 'Αποθήκευση';
|
||||
case 'button.connect': return 'Συνδέστε το';
|
||||
case 'button.settings': return 'Ρυθμίσεις';
|
||||
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.live': return 'Ζωντανό';
|
||||
case 'stream_list.planned': return 'Προγραμματισμένο';
|
||||
case 'stream_list.ended': return 'Τελείωσε';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Προσαρμοσμένο ποσό';
|
||||
case 'zap.confirm': return 'Επιβεβαίωση';
|
||||
case 'zap.comment': return 'Σχόλιο';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
case 'zap.button_open_wallet': return 'Άνοιγμα στο πορτοφόλι';
|
||||
case 'zap.button_connect_wallet': return 'Connect Wallet';
|
||||
case 'zap.copy': return 'Αντιγραφή στο πρόχειρο';
|
||||
case 'zap.error.invalid_custom_amount': return 'Μη έγκυρο προσαρμοσμένο ποσό';
|
||||
case 'zap.error.no_wallet': return 'Δεν έχει εγκατασταθεί πορτοφόλι αστραπής';
|
||||
case 'zap.error.no_lud16': return 'Δεν βρέθηκε διεύθυνση κεραυνού';
|
||||
case 'profile.past_streams': return 'Προηγούμενα ρεύματα';
|
||||
case 'settings.button_profile': return 'Επεξεργασία προφίλ';
|
||||
case 'settings.button_wallet': return 'Ρυθμίσεις πορτοφολιού';
|
||||
case 'settings.profile.display_name': return 'Όνομα οθόνης';
|
||||
case 'settings.profile.about': 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.amber': return 'Σύνδεση με Amber';
|
||||
case 'login.key': return 'Σύνδεση με κλειδί';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
545
lib/i18n/strings_en.g.dart
Normal file
@ -0,0 +1,545 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
part of 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
typedef TranslationsEn = Translations; // ignore: unused_element
|
||||
class Translations implements BaseTranslations<AppLocale, Translations> {
|
||||
/// Returns the current translations of the given [context].
|
||||
///
|
||||
/// Usage:
|
||||
/// final t = Translations.of(context);
|
||||
static Translations of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context).translations;
|
||||
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
Translations({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.en,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
) {
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <en>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
dynamic operator[](String key) => $meta.getTranslation(key);
|
||||
|
||||
late final Translations _root = this; // ignore: unused_field
|
||||
|
||||
Translations $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => Translations(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Text prompting user to hit avatar placeholder to begin upload
|
||||
String get upload_avatar => 'Upload Avatar';
|
||||
|
||||
/// Heading over listed top streamers by zaps
|
||||
String get most_zapped_streamers => 'Most Zapped Streamers';
|
||||
|
||||
/// No user found when searching
|
||||
String get no_user_found => 'No user found';
|
||||
|
||||
/// An anonymous user
|
||||
String get anon => 'Anon';
|
||||
|
||||
String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('en').format(n)} sats';
|
||||
|
||||
/// Number of viewers of the stream
|
||||
String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('en'))(n,
|
||||
one: '1 viewer',
|
||||
other: '${NumberFormat.decimalPattern('en').format(n)} viewers',
|
||||
);
|
||||
|
||||
late final TranslationsStreamEn stream = TranslationsStreamEn.internal(_root);
|
||||
late final TranslationsGoalEn goal = TranslationsGoalEn.internal(_root);
|
||||
late final TranslationsButtonEn button = TranslationsButtonEn.internal(_root);
|
||||
late final TranslationsEmbedEn embed = TranslationsEmbedEn.internal(_root);
|
||||
|
||||
/// Headings on stream lists by stream type live/ended/planned etc.
|
||||
late final TranslationsStreamListEn stream_list = TranslationsStreamListEn.internal(_root);
|
||||
|
||||
late final TranslationsZapEn zap = TranslationsZapEn.internal(_root);
|
||||
late final TranslationsProfileEn profile = TranslationsProfileEn.internal(_root);
|
||||
late final TranslationsSettingsEn settings = TranslationsSettingsEn.internal(_root);
|
||||
late final TranslationsLoginEn login = TranslationsLoginEn.internal(_root);
|
||||
late final TranslationsLiveEn live = TranslationsLiveEn.internal(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class TranslationsStreamEn {
|
||||
TranslationsStreamEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
late final TranslationsStreamStatusEn status = TranslationsStreamStatusEn.internal(_root);
|
||||
String started({required Object timestamp}) => 'Started ${timestamp}';
|
||||
String notification({required Object name}) => '${name} went live!';
|
||||
late final TranslationsStreamChatEn chat = TranslationsStreamChatEn.internal(_root);
|
||||
late final TranslationsStreamErrorEn error = TranslationsStreamErrorEn.internal(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class TranslationsGoalEn {
|
||||
TranslationsGoalEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String title({required Object amount}) => 'Goal: ${amount}';
|
||||
String remaining({required Object amount}) => 'Remaining: ${amount}';
|
||||
String get complete => 'COMPLETE';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class TranslationsButtonEn {
|
||||
TranslationsButtonEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Button text for the login button
|
||||
String get login => 'Login';
|
||||
|
||||
String get logout => 'Logout';
|
||||
String get edit_profile => 'Edit Profile';
|
||||
|
||||
/// Button text for the follow button
|
||||
String get follow => 'Follow';
|
||||
|
||||
/// Button text for the unfollow button
|
||||
String get unfollow => 'Unfollow';
|
||||
|
||||
String get mute => 'Mute';
|
||||
String get unmute => 'Unmute';
|
||||
String get share => 'Share';
|
||||
String get save => 'Save';
|
||||
String get connect => 'Connect';
|
||||
String get settings => 'Settings';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class TranslationsEmbedEn {
|
||||
TranslationsEmbedEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String article_by({required Object name}) => 'Article by ${name}';
|
||||
String note_by({required Object name}) => 'Note by ${name}';
|
||||
String live_stream_by({required Object name}) => 'Live stream by ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class TranslationsStreamListEn {
|
||||
TranslationsStreamListEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get following => 'Following';
|
||||
String get live => 'Live';
|
||||
String get planned => 'Planned';
|
||||
String get ended => 'Ended';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class TranslationsZapEn {
|
||||
TranslationsZapEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String title({required Object name}) => 'Zap ${name}';
|
||||
String get custom_amount => 'Custom Amount';
|
||||
String get confirm => 'Confirm';
|
||||
String get comment => 'Comment';
|
||||
String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
String get button_zap => 'Zap';
|
||||
String get button_open_wallet => 'Open in Wallet';
|
||||
String get button_connect_wallet => 'Connect Wallet';
|
||||
String get copy => 'Copied to clipboard';
|
||||
late final TranslationsZapErrorEn error = TranslationsZapErrorEn.internal(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class TranslationsProfileEn {
|
||||
TranslationsProfileEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get past_streams => 'Past Streams';
|
||||
}
|
||||
|
||||
// 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
|
||||
class TranslationsLoginEn {
|
||||
TranslationsLoginEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get username => 'Username';
|
||||
String get amber => 'Login with Amber';
|
||||
String get key => 'Login with Key';
|
||||
String get create => 'Create Account';
|
||||
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
|
||||
class TranslationsStreamStatusEn {
|
||||
TranslationsStreamStatusEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get live => 'LIVE';
|
||||
String get ended => 'ENDED';
|
||||
String get planned => 'PLANNED';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class TranslationsStreamChatEn {
|
||||
TranslationsStreamChatEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get disabled => 'CHAT DISABLED';
|
||||
String disabled_timeout({required Object time}) => 'Timeout expires: ${time}';
|
||||
|
||||
/// Chat message showing timeout events
|
||||
TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream ended footer at bottom of chat
|
||||
String get ended => 'STREAM ENDED';
|
||||
|
||||
/// Chat message showing stream zaps
|
||||
TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
late final TranslationsStreamChatWriteEn write = TranslationsStreamChatWriteEn.internal(_root);
|
||||
late final TranslationsStreamChatBadgeEn badge = TranslationsStreamChatBadgeEn.internal(_root);
|
||||
late final TranslationsStreamChatRaidEn raid = TranslationsStreamChatRaidEn.internal(_root);
|
||||
}
|
||||
|
||||
// Path: stream.error
|
||||
class TranslationsStreamErrorEn {
|
||||
TranslationsStreamErrorEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String load_failed({required Object url}) => 'Failed to load stream from ${url}';
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class TranslationsZapErrorEn {
|
||||
TranslationsZapErrorEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get invalid_custom_amount => 'Invalid custom amount';
|
||||
String get no_wallet => 'No lightning wallet installed';
|
||||
String get no_lud16 => 'No lightning address found';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class TranslationsSettingsProfileEn {
|
||||
TranslationsSettingsProfileEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
String get display_name => 'Display Name';
|
||||
String get about => 'About';
|
||||
String get nip05 => 'Nostr Address';
|
||||
String get lud16 => 'Lightning Address';
|
||||
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
|
||||
class TranslationsLoginErrorEn {
|
||||
TranslationsLoginErrorEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
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
|
||||
class TranslationsStreamChatWriteEn {
|
||||
TranslationsStreamChatWriteEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Label on the chat message input box
|
||||
String get label => 'Write message';
|
||||
|
||||
/// Chat input message shown when the user is logged in only with pubkey
|
||||
String get no_signer => 'Can\'t write messages with npub login';
|
||||
|
||||
/// Chat input message shown when the user is logged out
|
||||
String get login => 'Please login to send messages';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class TranslationsStreamChatBadgeEn {
|
||||
TranslationsStreamChatBadgeEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Heading over list of users who are awarded a badge
|
||||
String get awarded_to => 'Awarded to:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class TranslationsStreamChatRaidEn {
|
||||
TranslationsStreamChatRaidEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat raid message to another stream
|
||||
String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat raid message from another stream
|
||||
String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Countdown timer for auto-raiding
|
||||
String countdown({required Object time}) => 'Raiding in ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class TranslationsSettingsProfileErrorEn {
|
||||
TranslationsSettingsProfileErrorEn.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on Translations {
|
||||
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 '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,
|
||||
one: '1 viewer',
|
||||
other: '${NumberFormat.decimalPattern('en').format(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.notification': return ({required Object name}) => '${name} went live!';
|
||||
case 'stream.chat.disabled': return 'CHAT DISABLED';
|
||||
case 'stream.chat.disabled_timeout': return ({required Object time}) => 'Timeout expires: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Write message';
|
||||
case 'stream.chat.write.no_signer': return 'Can\'t write messages with npub login';
|
||||
case 'stream.chat.write.login': return 'Please login to send messages';
|
||||
case 'stream.chat.badge.awarded_to': return 'Awarded to:';
|
||||
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding in ${time}';
|
||||
case 'stream.error.load_failed': return ({required Object url}) => 'Failed to load stream from ${url}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Goal: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Remaining: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETE';
|
||||
case 'button.login': return 'Login';
|
||||
case 'button.logout': return 'Logout';
|
||||
case 'button.edit_profile': return 'Edit Profile';
|
||||
case 'button.follow': return 'Follow';
|
||||
case 'button.unfollow': return 'Unfollow';
|
||||
case 'button.mute': return 'Mute';
|
||||
case 'button.unmute': return 'Unmute';
|
||||
case 'button.share': return 'Share';
|
||||
case 'button.save': return 'Save';
|
||||
case 'button.connect': return 'Connect';
|
||||
case 'button.settings': return 'Settings';
|
||||
case 'embed.article_by': return ({required Object name}) => 'Article by ${name}';
|
||||
case 'embed.note_by': return ({required Object name}) => 'Note by ${name}';
|
||||
case 'embed.live_stream_by': return ({required Object name}) => 'Live stream by ${name}';
|
||||
case 'stream_list.following': return 'Following';
|
||||
case 'stream_list.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Planned';
|
||||
case 'stream_list.ended': return 'Ended';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Custom Amount';
|
||||
case 'zap.confirm': return 'Confirm';
|
||||
case 'zap.comment': return 'Comment';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
case 'zap.button_open_wallet': return 'Open in Wallet';
|
||||
case 'zap.button_connect_wallet': return 'Connect Wallet';
|
||||
case 'zap.copy': return 'Copied to clipboard';
|
||||
case 'zap.error.invalid_custom_amount': return 'Invalid custom amount';
|
||||
case 'zap.error.no_wallet': return 'No lightning wallet installed';
|
||||
case 'zap.error.no_lud16': return 'No lightning address found';
|
||||
case 'profile.past_streams': return 'Past Streams';
|
||||
case 'settings.button_profile': return 'Edit Profile';
|
||||
case 'settings.button_wallet': return 'Wallet Settings';
|
||||
case 'settings.profile.display_name': return 'Display Name';
|
||||
case 'settings.profile.about': return 'About';
|
||||
case 'settings.profile.nip05': return 'Nostr Address';
|
||||
case 'settings.profile.lud16': return 'Lightning Address';
|
||||
case 'settings.profile.error.logged_out': return 'Cant edit profile when logged out';
|
||||
case 'settings.wallet.connect_wallet': return 'Connect Wallet (NWC 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.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';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_es.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsEs extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsEs({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.es,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <es>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsEs _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsEs $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsEs(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texto que indica al usuario que pulse el marcador de avatar para iniciar la carga
|
||||
@override String get upload_avatar => 'Subir avatar';
|
||||
|
||||
/// Encabezando streamers superiores listados por zaps
|
||||
@override String get most_zapped_streamers => 'Serpentinas más derribadas';
|
||||
|
||||
/// No se ha encontrado ningún usuario al realizar la búsqueda
|
||||
@override String get no_user_found => 'No se ha encontrado ningún usuario';
|
||||
|
||||
/// Un usuario 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
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('es'))(n,
|
||||
one: '1 espectador',
|
||||
other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamEs stream = _TranslationsStreamEs._(_root);
|
||||
@override late final _TranslationsGoalEs goal = _TranslationsGoalEs._(_root);
|
||||
@override late final _TranslationsButtonEs button = _TranslationsButtonEs._(_root);
|
||||
@override late final _TranslationsEmbedEs embed = _TranslationsEmbedEs._(_root);
|
||||
|
||||
/// Encabezamientos en las listas de flujos por tipo de flujo en directo/finalizado/planificado, etc.
|
||||
@override late final _TranslationsStreamListEs stream_list = _TranslationsStreamListEs._(_root);
|
||||
|
||||
@override late final _TranslationsZapEs zap = _TranslationsZapEs._(_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 _TranslationsLiveEs live = _TranslationsLiveEs._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamEs extends TranslationsStreamEn {
|
||||
_TranslationsStreamEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusEs status = _TranslationsStreamStatusEs._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalEs extends TranslationsGoalEn {
|
||||
_TranslationsGoalEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Objetivo: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Resto: ${amount}';
|
||||
@override String get complete => 'COMPLETAR';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonEs extends TranslationsButtonEn {
|
||||
_TranslationsButtonEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texto del botón de inicio de sesión
|
||||
@override String get login => 'Iniciar Sesión';
|
||||
|
||||
@override String get logout => 'Cerrar sesión';
|
||||
@override String get edit_profile => 'Editar Perfil';
|
||||
|
||||
/// Texto del botón de seguimiento
|
||||
@override String get follow => 'Seguir';
|
||||
|
||||
/// Texto del botón "Dejar de seguir
|
||||
@override String get unfollow => 'Dejar de seguir';
|
||||
|
||||
@override String get mute => 'Silenciar';
|
||||
@override String get unmute => 'Dejar de silenciar';
|
||||
@override String get share => 'Compartir';
|
||||
@override String get save => 'Guardar';
|
||||
@override String get connect => 'Conectar';
|
||||
@override String get settings => 'Ajustes';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedEs extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artículo 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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListEs extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Siguiendo';
|
||||
@override String get live => 'En directo';
|
||||
@override String get planned => 'Planificado';
|
||||
@override String get ended => 'Finalizado';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapEs extends TranslationsZapEn {
|
||||
_TranslationsZapEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Importe personalizado';
|
||||
@override String get confirm => 'Confirmar';
|
||||
@override String get comment => 'Comentario';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zapear ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorEs error = _TranslationsZapErrorEs._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileEs extends TranslationsProfileEn {
|
||||
_TranslationsProfileEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Transmisiones anteriores';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginEs extends TranslationsLoginEn {
|
||||
_TranslationsLoginEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Usuario';
|
||||
@override String get amber => 'Iniciar sesión con Amber';
|
||||
@override String get key => 'Inicio de sesión con clave';
|
||||
@override String get create => 'Crear una cuenta';
|
||||
@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
|
||||
class _TranslationsStreamStatusEs extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'EN VIVO';
|
||||
@override String get ended => 'FIN';
|
||||
@override String get planned => 'PLANIFICADO';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatEs extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DESHABILITADO';
|
||||
@override String disabled_timeout({required Object time}) => 'El tiempo de espera expira: ${time}';
|
||||
|
||||
/// Mensaje de chat que muestra los eventos de tiempo de espera
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' para '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream finalizó en la parte inferior del chat
|
||||
@override String get ended => 'STREAM FINED';
|
||||
|
||||
/// Mensaje de chat que muestra zaps de flujo
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapearon '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteEs write = _TranslationsStreamChatWriteEs._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeEs badge = _TranslationsStreamChatBadgeEs._(_root);
|
||||
@override late final _TranslationsStreamChatRaidEs raid = _TranslationsStreamChatRaidEs._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorEs extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Importe personalizado no válido';
|
||||
@override String get no_wallet => 'Sin monedero relámpago instalado';
|
||||
@override String get no_lud16 => 'No se ha encontrado ninguna dirección de rayos';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileEs extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Mostrar nombre';
|
||||
@override String get about => 'Acerca de';
|
||||
@override String get nip05 => 'Dirección Nostr';
|
||||
@override String get lud16 => 'Dirección del rayo';
|
||||
@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
|
||||
class _TranslationsLoginErrorEs extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteEs extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Etiqueta del cuadro de entrada de mensajes de chat
|
||||
@override String get label => 'Escribir mensaje';
|
||||
|
||||
/// Mensaje de entrada en el chat que se muestra cuando el usuario está conectado sólo con pubkey
|
||||
@override String get no_signer => 'No se pueden escribir mensajes con el login npub';
|
||||
|
||||
/// Mensaje de entrada al chat que se muestra cuando el usuario cierra la sesión
|
||||
@override String get login => 'Inicie sesión para enviar mensajes';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeEs extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Encabezamiento de la lista de usuarios a los que se ha concedido una insignia
|
||||
@override String get awarded_to => 'Concedido a:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidEs extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Mensaje de raid de chat a otro flujo
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Mensaje de incursión en el chat desde otro flujo
|
||||
@override String from({required Object name}) => 'RAID DESDE ${name}';
|
||||
|
||||
/// Temporizador de cuenta atrás para auto-raiding
|
||||
@override String countdown({required Object time}) => 'Incursiones en ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorEs extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorEs._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsEs {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Subir avatar';
|
||||
case 'most_zapped_streamers': return 'Serpentinas más derribadas';
|
||||
case 'no_user_found': return 'No se ha encontrado ningún usuario';
|
||||
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,
|
||||
one: '1 espectador',
|
||||
other: '${NumberFormat.decimalPattern('es').format(n)} espectadores',
|
||||
);
|
||||
case 'stream.status.live': return 'EN VIVO';
|
||||
case 'stream.status.ended': return 'FIN';
|
||||
case 'stream.status.planned': return 'PLANIFICADO';
|
||||
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_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}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' para '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM FINED';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapearon '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Inicie sesión para enviar mensajes';
|
||||
case 'stream.chat.badge.awarded_to': return 'Concedido a:';
|
||||
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.countdown': return ({required Object time}) => 'Incursiones en ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Objetivo: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Resto: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETAR';
|
||||
case 'button.login': return 'Iniciar Sesión';
|
||||
case 'button.logout': return 'Cerrar sesión';
|
||||
case 'button.edit_profile': return 'Editar Perfil';
|
||||
case 'button.follow': return 'Seguir';
|
||||
case 'button.unfollow': return 'Dejar de seguir';
|
||||
case 'button.mute': return 'Silenciar';
|
||||
case 'button.unmute': return 'Dejar de silenciar';
|
||||
case 'button.share': return 'Compartir';
|
||||
case 'button.save': return 'Guardar';
|
||||
case 'button.connect': return 'Conectar';
|
||||
case 'button.settings': return 'Ajustes';
|
||||
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.live': return 'En directo';
|
||||
case 'stream_list.planned': return 'Planificado';
|
||||
case 'stream_list.ended': return 'Finalizado';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Importe personalizado';
|
||||
case 'zap.confirm': return 'Confirmar';
|
||||
case 'zap.comment': return 'Comentario';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zapear ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.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_lud16': return 'No se ha encontrado ninguna dirección de rayos';
|
||||
case 'profile.past_streams': return 'Transmisiones anteriores';
|
||||
case 'settings.button_profile': return 'Editar perfil';
|
||||
case 'settings.button_wallet': return 'Configuración de la cartera';
|
||||
case 'settings.profile.display_name': return 'Mostrar nombre';
|
||||
case 'settings.profile.about': return 'Acerca de';
|
||||
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.amber': return 'Iniciar sesión con Amber';
|
||||
case 'login.key': return 'Inicio de sesión con clave';
|
||||
case 'login.create': return 'Crear una cuenta';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_fi.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsFi extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsFi({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.fi,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <fi>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsFi _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsFi $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsFi(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Teksti, joka kehottaa käyttäjää painamaan avatar-merkkiä aloittaakseen lataamisen.
|
||||
@override String get upload_avatar => 'Lataa avatar';
|
||||
|
||||
/// Päällekkäin lueteltujen alkuun streamers by zaps
|
||||
@override String get most_zapped_streamers => 'Eniten Zapped Streamers';
|
||||
|
||||
/// Käyttäjää ei löytynyt haun yhteydessä
|
||||
@override String get no_user_found => 'Käyttäjää ei löytynyt';
|
||||
|
||||
/// Nimetön käyttäjä
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('fi').format(n)} sats';
|
||||
|
||||
/// Streamin katsojien määrä
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fi'))(n,
|
||||
one: '1 katsoja',
|
||||
other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamFi stream = _TranslationsStreamFi._(_root);
|
||||
@override late final _TranslationsGoalFi goal = _TranslationsGoalFi._(_root);
|
||||
@override late final _TranslationsButtonFi button = _TranslationsButtonFi._(_root);
|
||||
@override late final _TranslationsEmbedFi embed = _TranslationsEmbedFi._(_root);
|
||||
|
||||
/// Stream-luetteloiden otsikot stream-tyypeittäin live/päättynyt/suunniteltu jne.
|
||||
@override late final _TranslationsStreamListFi stream_list = _TranslationsStreamListFi._(_root);
|
||||
|
||||
@override late final _TranslationsZapFi zap = _TranslationsZapFi._(_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 _TranslationsLiveFi live = _TranslationsLiveFi._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamFi extends TranslationsStreamEn {
|
||||
_TranslationsStreamFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusFi status = _TranslationsStreamStatusFi._(_root);
|
||||
@override String started({required Object timestamp}) => 'Aloitettu ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} meni suoraksi!';
|
||||
@override late final _TranslationsStreamChatFi chat = _TranslationsStreamChatFi._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalFi extends TranslationsGoalEn {
|
||||
_TranslationsGoalFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Tavoite: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Jäljellä: ${amount}';
|
||||
@override String get complete => 'TÄYDELLINEN';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonFi extends TranslationsButtonEn {
|
||||
_TranslationsButtonFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Kirjautumispainikkeen teksti
|
||||
@override String get login => 'Kirjaudu sisään';
|
||||
|
||||
@override String get logout => 'Kirjaudu ulos';
|
||||
@override String get edit_profile => 'Muokkaa profiilia';
|
||||
|
||||
/// Seuraa-painikkeen painikkeen teksti
|
||||
@override String get follow => 'Seuraa';
|
||||
|
||||
/// Seuraa-painikkeen teksti
|
||||
@override String get unfollow => 'Älä seuraa';
|
||||
|
||||
@override String get mute => 'Mykistä';
|
||||
@override String get unmute => 'Poista mykistys';
|
||||
@override String get share => 'Jaa';
|
||||
@override String get save => 'Tallenna';
|
||||
@override String get connect => 'Yhdistä';
|
||||
@override String get settings => 'Asetukset';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedFi extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artikkeli ${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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListFi extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Seuraa';
|
||||
@override String get live => 'Live';
|
||||
@override String get planned => 'Suunniteltu';
|
||||
@override String get ended => 'Päättynyt';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapFi extends TranslationsZapEn {
|
||||
_TranslationsZapFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Mukautettu määrä';
|
||||
@override String get confirm => 'Vahvista';
|
||||
@override String get comment => 'Kommentoi';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} satsia';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorFi error = _TranslationsZapErrorFi._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileFi extends TranslationsProfileEn {
|
||||
_TranslationsProfileFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Aikaisemmat lähetykset';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginFi extends TranslationsLoginEn {
|
||||
_TranslationsLoginFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Käyttäjätunnus';
|
||||
@override String get amber => 'Kirjaudu sisään Amber kanssa';
|
||||
@override String get key => 'Kirjaudu sisään avaimella';
|
||||
@override String get create => 'Luo tili';
|
||||
@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
|
||||
class _TranslationsStreamStatusFi extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'ENDED';
|
||||
@override String get planned => 'SUUNNITELTU';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatFi extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT POISTETTU KÄYTÖSTÄ';
|
||||
@override String disabled_timeout({required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
||||
|
||||
/// Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' ajastettu '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Virta päättyi alatunnisteen alareunaan chatissa
|
||||
@override String get ended => 'STREAM PÄÄTTYNYT';
|
||||
|
||||
/// Chat-viestin näyttäminen stream zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zappasi '),
|
||||
amount,
|
||||
const TextSpan(text: ' satsia'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteFi write = _TranslationsStreamChatWriteFi._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeFi badge = _TranslationsStreamChatBadgeFi._(_root);
|
||||
@override late final _TranslationsStreamChatRaidFi raid = _TranslationsStreamChatRaidFi._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorFi extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Virheellinen mukautettu määrä';
|
||||
@override String get no_wallet => 'Ei asennettua salamalompakkoa';
|
||||
@override String get no_lud16 => 'Salamaosoitetta ei löytynyt';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileFi extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Näytön nimi';
|
||||
@override String get about => 'Tietoja';
|
||||
@override String get nip05 => 'Nostr Osoite';
|
||||
@override String get lud16 => 'Salama osoite';
|
||||
@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
|
||||
class _TranslationsLoginErrorFi extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteFi extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat-viestin syöttöruudun tarra
|
||||
@override String get label => 'Kirjoita viesti';
|
||||
|
||||
/// Chat-syöttöviesti näytetään, kun käyttäjä on kirjautunut sisään vain pubkey-avaimella.
|
||||
@override String get no_signer => 'Ei voi kirjoittaa viestejä npub-kirjautumisella';
|
||||
|
||||
/// Chat-syötteen viesti näytetään, kun käyttäjä on kirjautunut ulos.
|
||||
@override String get login => 'Kirjaudu sisään lähettääksesi viestejä';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeFi extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Merkin saaneiden käyttäjien luettelon otsikko
|
||||
@override String get awarded_to => 'Myönnetty:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidFi extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat-viesti toiseen streamiin
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat raid viesti toisesta virrasta
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Lähtölaskenta ajastin automaattista ratsastusta varten
|
||||
@override String countdown({required Object time}) => 'Ryöstöretket osoitteessa ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorFi extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorFi._(TranslationsFi root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFi _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsFi {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Lataa avatar';
|
||||
case 'most_zapped_streamers': return 'Eniten Zapped Streamers';
|
||||
case 'no_user_found': return 'Käyttäjää ei löytynyt';
|
||||
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,
|
||||
one: '1 katsoja',
|
||||
other: '${NumberFormat.decimalPattern('fi').format(n)} katsojat',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'ENDED';
|
||||
case 'stream.status.planned': return 'SUUNNITELTU';
|
||||
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_timeout': return ({required Object time}) => 'Aikakatkaisu päättyy: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' ajastettu '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM PÄÄTTYNYT';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zappasi '),
|
||||
amount,
|
||||
const TextSpan(text: ' satsia'),
|
||||
]);
|
||||
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.login': return 'Kirjaudu sisään lähettääksesi viestejä';
|
||||
case 'stream.chat.badge.awarded_to': return 'Myönnetty:';
|
||||
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}) => 'Ryöstöretket osoitteessa ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Tavoite: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Jäljellä: ${amount}';
|
||||
case 'goal.complete': return 'TÄYDELLINEN';
|
||||
case 'button.login': return 'Kirjaudu sisään';
|
||||
case 'button.logout': return 'Kirjaudu ulos';
|
||||
case 'button.edit_profile': return 'Muokkaa profiilia';
|
||||
case 'button.follow': return 'Seuraa';
|
||||
case 'button.unfollow': return 'Älä seuraa';
|
||||
case 'button.mute': return 'Mykistä';
|
||||
case 'button.unmute': return 'Poista mykistys';
|
||||
case 'button.share': return 'Jaa';
|
||||
case 'button.save': return 'Tallenna';
|
||||
case 'button.connect': return 'Yhdistä';
|
||||
case 'button.settings': return 'Asetukset';
|
||||
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.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Suunniteltu';
|
||||
case 'stream_list.ended': return 'Päättynyt';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Mukautettu määrä';
|
||||
case 'zap.confirm': return 'Vahvista';
|
||||
case 'zap.comment': return 'Kommentoi';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} satsia';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Virheellinen mukautettu määrä';
|
||||
case 'zap.error.no_wallet': return 'Ei asennettua salamalompakkoa';
|
||||
case 'zap.error.no_lud16': return 'Salamaosoitetta ei löytynyt';
|
||||
case 'profile.past_streams': return 'Aikaisemmat lähetykset';
|
||||
case 'settings.button_profile': return 'Muokkaa profiilia';
|
||||
case 'settings.button_wallet': return 'Lompakon asetukset';
|
||||
case 'settings.profile.display_name': return 'Näytön nimi';
|
||||
case 'settings.profile.about': return 'Tietoja';
|
||||
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.amber': return 'Kirjaudu sisään Amber kanssa';
|
||||
case 'login.key': return 'Kirjaudu sisään avaimella';
|
||||
case 'login.create': return 'Luo tili';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_fr.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsFr extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsFr({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.fr,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <fr>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsFr _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsFr $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsFr(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texte invitant l'utilisateur à cliquer sur l'espace réservé à l'avatar pour commencer le téléchargement
|
||||
@override String get upload_avatar => 'Télécharger l\'avatar';
|
||||
|
||||
/// Les têtes d'affiche sont listées par zaps.
|
||||
@override String get most_zapped_streamers => 'Les Streamers les plus zappés';
|
||||
|
||||
/// Aucun utilisateur n'a été trouvé lors de la recherche
|
||||
@override String get no_user_found => 'Aucun utilisateur trouvé';
|
||||
|
||||
/// Un utilisateur 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
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('fr'))(n,
|
||||
one: '1 téléspectateur',
|
||||
other: '${NumberFormat.decimalPattern('fr').format(n)} téléspectateurs',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamFr stream = _TranslationsStreamFr._(_root);
|
||||
@override late final _TranslationsGoalFr goal = _TranslationsGoalFr._(_root);
|
||||
@override late final _TranslationsButtonFr button = _TranslationsButtonFr._(_root);
|
||||
@override late final _TranslationsEmbedFr embed = _TranslationsEmbedFr._(_root);
|
||||
|
||||
/// Rubriques sur les listes de flux par type de flux en direct/fini/prévu, etc.
|
||||
@override late final _TranslationsStreamListFr stream_list = _TranslationsStreamListFr._(_root);
|
||||
|
||||
@override late final _TranslationsZapFr zap = _TranslationsZapFr._(_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 _TranslationsLiveFr live = _TranslationsLiveFr._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamFr extends TranslationsStreamEn {
|
||||
_TranslationsStreamFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusFr status = _TranslationsStreamStatusFr._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalFr extends TranslationsGoalEn {
|
||||
_TranslationsGoalFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Objectif : ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Reste : ${amount}';
|
||||
@override String get complete => 'COMPLET';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonFr extends TranslationsButtonEn {
|
||||
_TranslationsButtonFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texte du bouton de connexion
|
||||
@override String get login => 'Se Connecter';
|
||||
|
||||
@override String get logout => 'Se déconnecter';
|
||||
@override String get edit_profile => 'Modifier le Profil';
|
||||
|
||||
/// Texte du bouton de suivi
|
||||
@override String get follow => 'Suivre';
|
||||
|
||||
/// Texte du bouton pour le bouton "unfollow
|
||||
@override String get unfollow => 'Ne plus suivre';
|
||||
|
||||
@override String get mute => 'Muet';
|
||||
@override String get unmute => 'Retirer sourdine';
|
||||
@override String get share => 'Partager';
|
||||
@override String get save => 'Sauvegarder';
|
||||
@override String get connect => 'Connecter';
|
||||
@override String get settings => 'Paramètres';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedFr extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Article 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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListFr extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Abonnements';
|
||||
@override String get live => 'En direct';
|
||||
@override String get planned => 'Planifié';
|
||||
@override String get ended => 'Terminé';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapFr extends TranslationsZapEn {
|
||||
_TranslationsZapFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Montant personnalisé';
|
||||
@override String get confirm => 'Confirmer';
|
||||
@override String get comment => 'Commenter';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zapper ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorFr error = _TranslationsZapErrorFr._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileFr extends TranslationsProfileEn {
|
||||
_TranslationsProfileFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Streams passés';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginFr extends TranslationsLoginEn {
|
||||
_TranslationsLoginFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Nom d’utilisateur';
|
||||
@override String get amber => 'Se connecter avec Amber';
|
||||
@override String get key => 'Connexion avec la clé';
|
||||
@override String get create => 'Créer un Compte';
|
||||
@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
|
||||
class _TranslationsStreamStatusFr extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'VIVRE';
|
||||
@override String get ended => 'FINI';
|
||||
@override String get planned => 'PRÉVU';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatFr extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DISABLED';
|
||||
@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
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' '),
|
||||
user,
|
||||
const TextSpan(text: ' a expiré dans le temps pour '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream ended footer at bottom of chat
|
||||
@override String get ended => 'STREAM ENDED';
|
||||
|
||||
/// Message de chat montrant des zaps de flux
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' a zappé '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteFr write = _TranslationsStreamChatWriteFr._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeFr badge = _TranslationsStreamChatBadgeFr._(_root);
|
||||
@override late final _TranslationsStreamChatRaidFr raid = _TranslationsStreamChatRaidFr._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorFr extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Montant personnalisé non valide';
|
||||
@override String get no_wallet => 'Pas de porte-monnaie électronique installé';
|
||||
@override String get no_lud16 => 'Pas d\'adresse éclair trouvée';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileFr extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Nom d\'affichage';
|
||||
@override String get about => 'A propos de';
|
||||
@override String get nip05 => 'Nostr Adresse';
|
||||
@override String get lud16 => 'Adresse de la foudre';
|
||||
@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
|
||||
class _TranslationsLoginErrorFr extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteFr extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Étiquette sur la boîte de saisie du message de chat
|
||||
@override String get label => 'Message écrit';
|
||||
|
||||
/// Message d'entrée du chat affiché lorsque l'utilisateur n'est connecté qu'avec pubkey
|
||||
@override String get no_signer => 'Impossible d\'écrire des messages avec le login npub';
|
||||
|
||||
/// Message d'entrée du chat affiché lorsque l'utilisateur est déconnecté
|
||||
@override String get login => 'Veuillez vous connecter pour envoyer des messages';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeFr extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Titre sur la liste des utilisateurs qui ont reçu un badge
|
||||
@override String get awarded_to => 'Attribué à :';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidFr extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Message de raid par chat vers un autre flux
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Message de raid sur le chat à partir d'un autre flux
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Compte à rebours pour l'auto-raid
|
||||
@override String countdown({required Object time}) => 'Raid sur ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorFr extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorFr._(TranslationsFr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsFr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsFr {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Télécharger l\'avatar';
|
||||
case 'most_zapped_streamers': return 'Les Streamers les plus zappés';
|
||||
case 'no_user_found': return 'Aucun utilisateur trouvé';
|
||||
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,
|
||||
one: '1 téléspectateur',
|
||||
other: '${NumberFormat.decimalPattern('fr').format(n)} téléspectateurs',
|
||||
);
|
||||
case 'stream.status.live': return 'VIVRE';
|
||||
case 'stream.status.ended': return 'FINI';
|
||||
case 'stream.status.planned': return 'PRÉVU';
|
||||
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_timeout': return ({required Object time}) => 'Le délai expire : ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' '),
|
||||
user,
|
||||
const TextSpan(text: ' a expiré dans le temps pour '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' a zappé '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Veuillez vous connecter pour envoyer des messages';
|
||||
case 'stream.chat.badge.awarded_to': return 'Attribué à :';
|
||||
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}) => 'Raid sur ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Objectif : ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Reste : ${amount}';
|
||||
case 'goal.complete': return 'COMPLET';
|
||||
case 'button.login': return 'Se Connecter';
|
||||
case 'button.logout': return 'Se déconnecter';
|
||||
case 'button.edit_profile': return 'Modifier le Profil';
|
||||
case 'button.follow': return 'Suivre';
|
||||
case 'button.unfollow': return 'Ne plus suivre';
|
||||
case 'button.mute': return 'Muet';
|
||||
case 'button.unmute': return 'Retirer sourdine';
|
||||
case 'button.share': return 'Partager';
|
||||
case 'button.save': return 'Sauvegarder';
|
||||
case 'button.connect': return 'Connecter';
|
||||
case 'button.settings': return 'Paramètres';
|
||||
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.live': return 'En direct';
|
||||
case 'stream_list.planned': return 'Planifié';
|
||||
case 'stream_list.ended': return 'Terminé';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Montant personnalisé';
|
||||
case 'zap.confirm': return 'Confirmer';
|
||||
case 'zap.comment': return 'Commenter';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zapper ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.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_lud16': return 'Pas d\'adresse éclair trouvée';
|
||||
case 'profile.past_streams': return 'Streams passés';
|
||||
case 'settings.button_profile': return 'Modifier le profil';
|
||||
case 'settings.button_wallet': return 'Paramètres du portefeuille';
|
||||
case 'settings.profile.display_name': return 'Nom d\'affichage';
|
||||
case 'settings.profile.about': return 'A propos de';
|
||||
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.amber': return 'Se connecter avec Amber';
|
||||
case 'login.key': return 'Connexion avec la clé';
|
||||
case 'login.create': return 'Créer un Compte';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
473
lib/i18n/strings_hu.g.dart
Normal file
@ -0,0 +1,473 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsHu extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsHu({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.hu,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <hu>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsHu _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsHu $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsHu(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Szöveg, amely arra kéri a felhasználót, hogy a feltöltés megkezdéséhez nyomja meg az avatar helyőrzőt
|
||||
@override String get upload_avatar => 'Avatár feltöltése';
|
||||
|
||||
/// Irány a felsorolt top streamerek fölött zaps által
|
||||
@override String get most_zapped_streamers => 'A legtöbb Zapped Streamers';
|
||||
|
||||
/// Kereséskor nem talált felhasználó
|
||||
@override String get no_user_found => 'Nem talált felhasználó';
|
||||
|
||||
/// Egy névtelen felhasználó
|
||||
@override String get anon => 'Névtelen';
|
||||
|
||||
/// A stream nézőinek száma
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
||||
one: '1 néző',
|
||||
other: '${NumberFormat.decimalPattern('hu').format(n)} nézők',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamHu stream = _TranslationsStreamHu._(_root);
|
||||
@override late final _TranslationsGoalHu goal = _TranslationsGoalHu._(_root);
|
||||
@override late final _TranslationsButtonHu button = _TranslationsButtonHu._(_root);
|
||||
@override late final _TranslationsEmbedHu embed = _TranslationsEmbedHu._(_root);
|
||||
|
||||
/// A stream-listák címsorai stream-típusonként élő/befejezett/tervezett stb.
|
||||
@override late final _TranslationsStreamListHu stream_list = _TranslationsStreamListHu._(_root);
|
||||
|
||||
@override late final _TranslationsZapHu zap = _TranslationsZapHu._(_root);
|
||||
@override late final _TranslationsProfileHu profile = _TranslationsProfileHu._(_root);
|
||||
@override late final _TranslationsSettingsHu settings = _TranslationsSettingsHu._(_root);
|
||||
@override late final _TranslationsLoginHu login = _TranslationsLoginHu._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamHu extends TranslationsStreamEn {
|
||||
_TranslationsStreamHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusHu status = _TranslationsStreamStatusHu._(_root);
|
||||
@override String started({required Object timestamp}) => 'Elindult ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} elindult!';
|
||||
@override late final _TranslationsStreamChatHu chat = _TranslationsStreamChatHu._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalHu extends TranslationsGoalEn {
|
||||
_TranslationsGoalHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Cél: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Maradék: ${amount}';
|
||||
@override String get complete => 'TELJES';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonHu extends TranslationsButtonEn {
|
||||
_TranslationsButtonHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// A bejelentkezési gomb szövege
|
||||
@override String get login => 'Bejelentkezés';
|
||||
|
||||
@override String get logout => 'Kijelentkezés';
|
||||
@override String get edit_profile => 'Profil szerkesztése';
|
||||
|
||||
/// A követés gomb szövege
|
||||
@override String get follow => 'Követés';
|
||||
|
||||
/// A követés megszüntetése gomb szövege
|
||||
@override String get unfollow => 'Követés megszüntetése';
|
||||
|
||||
@override String get mute => 'Némítás';
|
||||
@override String get unmute => 'Némítás visszavonása';
|
||||
@override String get share => 'Megosztás';
|
||||
@override String get save => 'Mentés';
|
||||
@override String get connect => 'Csatlakozás';
|
||||
@override String get settings => 'Beállítások';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedHu extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Cikk ${name}';
|
||||
@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';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListHu extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Követettek bejegyzései';
|
||||
@override String get live => 'Élő';
|
||||
@override String get planned => 'Tervezett';
|
||||
@override String get ended => 'Véget ért';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapHu extends TranslationsZapEn {
|
||||
_TranslationsZapHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Egyéni összeg';
|
||||
@override String get confirm => 'Megerősítés';
|
||||
@override String get comment => 'Hozzászólás';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} satoshi';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorHu error = _TranslationsZapErrorHu._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileHu extends TranslationsProfileEn {
|
||||
_TranslationsProfileHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Múltbeli Streamek';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginHu extends TranslationsLoginEn {
|
||||
_TranslationsLoginHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Felhasználónév';
|
||||
@override String get amber => 'Bejelentkezés Amber segítségével';
|
||||
@override String get key => 'Bejelentkezés kulccsal';
|
||||
@override String get create => 'Fiók Létrehozása';
|
||||
@override late final _TranslationsLoginErrorHu error = _TranslationsLoginErrorHu._(_root);
|
||||
}
|
||||
|
||||
// Path: stream.status
|
||||
class _TranslationsStreamStatusHu extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'ÉLŐ';
|
||||
@override String get ended => 'ENDED';
|
||||
@override String get planned => 'TERVEZETT';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatHu extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT KIKAPCSOLVA';
|
||||
@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
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' időzített '),
|
||||
user,
|
||||
const TextSpan(text: ' a '),
|
||||
time,
|
||||
const TextSpan(text: 'számára'),
|
||||
]);
|
||||
|
||||
/// A stream véget ért lábléc a chat alján
|
||||
@override String get ended => 'STREAM MEGSZÜNTETETT';
|
||||
|
||||
/// Csevegőüzenet, amely stream zapokat mutat
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zap-elt '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteHu write = _TranslationsStreamChatWriteHu._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeHu badge = _TranslationsStreamChatBadgeHu._(_root);
|
||||
@override late final _TranslationsStreamChatRaidHu raid = _TranslationsStreamChatRaidHu._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorHu extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Érvénytelen egyéni összeg';
|
||||
@override String get no_wallet => 'Nincs telepített villám tárca';
|
||||
@override String get no_lud16 => 'Nem talált villámcím';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileHu extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Megjelenített név';
|
||||
@override String get about => 'A oldalról';
|
||||
@override String get nip05 => 'Nostr cím';
|
||||
@override String get lud16 => 'Villám cím';
|
||||
@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
|
||||
class _TranslationsLoginErrorHu extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_key => 'Érvénytelen kulcs';
|
||||
}
|
||||
|
||||
// Path: stream.chat.write
|
||||
class _TranslationsStreamChatWriteHu extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Címke a csevegőüzenet beviteli mezőjén
|
||||
@override String get label => 'Üzenet írása';
|
||||
|
||||
/// A csevegés bemeneti üzenete megjelenik, ha a felhasználó csak pubkey-vel van bejelentkezve
|
||||
@override String get no_signer => 'Nem tud üzeneteket írni az npub bejelentkezéssel';
|
||||
|
||||
/// A felhasználó kijelentkezésekor megjelenő csevegési beviteli üzenet
|
||||
@override String get login => 'Kérjük, jelentkezzen be az üzenetek küldéséhez';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeHu extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Fejléc a jelvényt kapott felhasználók listája fölött
|
||||
@override String get awarded_to => 'Elnyerte:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidHu extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat raid üzenet egy másik folyamba
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat raid üzenet egy másik folyamból
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Visszaszámláló időzítő az automatikus lovagláshoz
|
||||
@override String countdown({required Object time}) => 'Raiding a ${time} oldalon';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorHu extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorHu._(TranslationsHu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsHu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsHu {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Avatár feltöltése';
|
||||
case 'most_zapped_streamers': return 'A legtöbb Zapped Streamers';
|
||||
case 'no_user_found': return 'Nem talált felhasználó';
|
||||
case 'anon': return 'Névtelen';
|
||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('hu'))(n,
|
||||
one: '1 néző',
|
||||
other: '${NumberFormat.decimalPattern('hu').format(n)} nézők',
|
||||
);
|
||||
case 'stream.status.live': return 'ÉLŐ';
|
||||
case 'stream.status.ended': return 'ENDED';
|
||||
case 'stream.status.planned': return 'TERVEZETT';
|
||||
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_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}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' időzített '),
|
||||
user,
|
||||
const TextSpan(text: ' a '),
|
||||
time,
|
||||
const TextSpan(text: 'számára'),
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM MEGSZÜNTETETT';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zap-elt '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Kérjük, jelentkezzen be az üzenetek küldéséhez';
|
||||
case 'stream.chat.badge.awarded_to': return 'Elnyerte:';
|
||||
case 'stream.chat.raid.to': return ({required Object name}) => 'RAIDING ${name}';
|
||||
case 'stream.chat.raid.from': return ({required Object name}) => 'RAID FROM ${name}';
|
||||
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Raiding a ${time} oldalon';
|
||||
case 'goal.title': return ({required Object amount}) => 'Cél: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Maradék: ${amount}';
|
||||
case 'goal.complete': return 'TELJES';
|
||||
case 'button.login': return 'Bejelentkezés';
|
||||
case 'button.logout': return 'Kijelentkezés';
|
||||
case 'button.edit_profile': return 'Profil szerkesztése';
|
||||
case 'button.follow': return 'Követés';
|
||||
case 'button.unfollow': return 'Követés megszüntetése';
|
||||
case 'button.mute': return 'Némítás';
|
||||
case 'button.unmute': return 'Némítás visszavonása';
|
||||
case 'button.share': return 'Megosztás';
|
||||
case 'button.save': return 'Mentés';
|
||||
case 'button.connect': return 'Csatlakozás';
|
||||
case 'button.settings': return 'Beállítások';
|
||||
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.live': return 'Élő';
|
||||
case 'stream_list.planned': return 'Tervezett';
|
||||
case 'stream_list.ended': return 'Véget ért';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Egyéni összeg';
|
||||
case 'zap.confirm': return 'Megerősíté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': return 'Zap';
|
||||
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.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_lud16': return 'Nem talált villámcím';
|
||||
case 'profile.past_streams': return 'Múltbeli Streamek';
|
||||
case 'settings.button_profile': return 'Profil szerkesztése';
|
||||
case 'settings.button_wallet': return 'Pénztárca beállítások';
|
||||
case 'settings.profile.display_name': return 'Megjelenített név';
|
||||
case 'settings.profile.about': return 'A oldalról';
|
||||
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.amber': return 'Bejelentkezés Amber segítségével';
|
||||
case 'login.key': return 'Bejelentkezés kulccsal';
|
||||
case 'login.create': return 'Fiók Létrehozása';
|
||||
case 'login.error.invalid_key': return 'Érvénytelen kulcs';
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_it.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsIt extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsIt({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.it,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <it>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsIt _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsIt $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsIt(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Testo che richiede all'utente di premere il segnaposto dell'avatar per iniziare il caricamento
|
||||
@override String get upload_avatar => 'Carica Avatar';
|
||||
|
||||
/// Direzione sopra elencata top streamers da zaps
|
||||
@override String get most_zapped_streamers => 'Il maggior numero di streamer bloccati';
|
||||
|
||||
/// Nessun utente trovato durante la ricerca
|
||||
@override String get no_user_found => 'Nessun utente trovato';
|
||||
|
||||
/// Un utente 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
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('it'))(n,
|
||||
one: '1 spettatore',
|
||||
other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamIt stream = _TranslationsStreamIt._(_root);
|
||||
@override late final _TranslationsGoalIt goal = _TranslationsGoalIt._(_root);
|
||||
@override late final _TranslationsButtonIt button = _TranslationsButtonIt._(_root);
|
||||
@override late final _TranslationsEmbedIt embed = _TranslationsEmbedIt._(_root);
|
||||
|
||||
/// Titoli sugli elenchi dei flussi per tipo di flusso live/finito/pianificato ecc.
|
||||
@override late final _TranslationsStreamListIt stream_list = _TranslationsStreamListIt._(_root);
|
||||
|
||||
@override late final _TranslationsZapIt zap = _TranslationsZapIt._(_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 _TranslationsLiveIt live = _TranslationsLiveIt._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamIt extends TranslationsStreamEn {
|
||||
_TranslationsStreamIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusIt status = _TranslationsStreamStatusIt._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalIt extends TranslationsGoalEn {
|
||||
_TranslationsGoalIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Obiettivo: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Restante: ${amount}';
|
||||
@override String get complete => 'COMPLETO';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonIt extends TranslationsButtonEn {
|
||||
_TranslationsButtonIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Testo del pulsante per il pulsante di accesso
|
||||
@override String get login => 'Login';
|
||||
|
||||
@override String get logout => 'Logout';
|
||||
@override String get edit_profile => 'Modifica profilo';
|
||||
|
||||
/// Testo del pulsante per il pulsante Segui
|
||||
@override String get follow => 'Segui';
|
||||
|
||||
/// Testo del pulsante per il pulsante unfollow
|
||||
@override String get unfollow => 'Smetti di seguire';
|
||||
|
||||
@override String get mute => 'Silenzia';
|
||||
@override String get unmute => 'Riattiva';
|
||||
@override String get share => 'Condividi';
|
||||
@override String get save => 'Salva';
|
||||
@override String get connect => 'Collegare';
|
||||
@override String get settings => 'Impostazioni';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedIt extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Articolo 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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListIt extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Seguiti';
|
||||
@override String get live => 'Dal vivo';
|
||||
@override String get planned => 'Pianificato';
|
||||
@override String get ended => 'Terminato';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapIt extends TranslationsZapEn {
|
||||
_TranslationsZapIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Importo personalizzato';
|
||||
@override String get confirm => 'Conferma';
|
||||
@override String get comment => 'Commenta';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorIt error = _TranslationsZapErrorIt._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileIt extends TranslationsProfileEn {
|
||||
_TranslationsProfileIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Flussi passati';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginIt extends TranslationsLoginEn {
|
||||
_TranslationsLoginIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Nome utente';
|
||||
@override String get amber => 'Accesso con Amber';
|
||||
@override String get key => 'Accesso con chiave';
|
||||
@override String get create => 'Crea un account';
|
||||
@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
|
||||
class _TranslationsStreamStatusIt extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'IN DIRETTA';
|
||||
@override String get ended => 'FINE';
|
||||
@override String get planned => 'PREVISTO';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatIt extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DISABILITATA';
|
||||
@override String disabled_timeout({required Object time}) => 'Il timeout scade: ${time}';
|
||||
|
||||
/// Messaggio di chat che mostra gli eventi di timeout
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' time out '),
|
||||
user,
|
||||
const TextSpan(text: ' per '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Il flusso si è concluso con un piè di pagina in fondo alla chat
|
||||
@override String get ended => 'STREAM ENDED';
|
||||
|
||||
/// Messaggio di chat che mostra gli zap del flusso
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' ha effettuato uno zap di '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteIt write = _TranslationsStreamChatWriteIt._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeIt badge = _TranslationsStreamChatBadgeIt._(_root);
|
||||
@override late final _TranslationsStreamChatRaidIt raid = _TranslationsStreamChatRaidIt._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorIt extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Importo personalizzato non valido';
|
||||
@override String get no_wallet => 'Nessun portafoglio Lightning installato';
|
||||
@override String get no_lud16 => 'Nessun indirizzo di fulmine trovato';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileIt extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Nome visualizzato';
|
||||
@override String get about => 'Circa';
|
||||
@override String get nip05 => 'Indirizzo';
|
||||
@override String get lud16 => 'Indirizzo del fulmine';
|
||||
@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
|
||||
class _TranslationsLoginErrorIt extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteIt extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Etichetta della casella di immissione del messaggio di chat
|
||||
@override String get label => 'Scrivi il messaggio';
|
||||
|
||||
/// Messaggio di ingresso alla chat mostrato quando l'utente è connesso solo con la pubkey
|
||||
@override String get no_signer => 'Impossibile scrivere messaggi con il login npub';
|
||||
|
||||
/// Messaggio di input della chat mostrato quando l'utente è disconnesso
|
||||
@override String get login => 'Effettuare il login per inviare messaggi';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeIt extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Intestazione dell'elenco degli utenti a cui è stato assegnato un badge
|
||||
@override String get awarded_to => 'Assegnato a:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidIt extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Messaggio di chat raid in un altro flusso
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Messaggio di chat raid da un altro flusso
|
||||
@override String from({required Object name}) => 'RAID DA ${name}';
|
||||
|
||||
/// Timer per il conto alla rovescia per l'auto-raid
|
||||
@override String countdown({required Object time}) => 'Raid in ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorIt extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorIt._(TranslationsIt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsIt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsIt {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Carica Avatar';
|
||||
case 'most_zapped_streamers': return 'Il maggior numero di streamer bloccati';
|
||||
case 'no_user_found': return 'Nessun utente trovato';
|
||||
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,
|
||||
one: '1 spettatore',
|
||||
other: '${NumberFormat.decimalPattern('it').format(n)} spettatori',
|
||||
);
|
||||
case 'stream.status.live': return 'IN DIRETTA';
|
||||
case 'stream.status.ended': return 'FINE';
|
||||
case 'stream.status.planned': return 'PREVISTO';
|
||||
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_timeout': return ({required Object time}) => 'Il timeout scade: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' time out '),
|
||||
user,
|
||||
const TextSpan(text: ' per '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM ENDED';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' ha effettuato uno zap di '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Effettuare il login per inviare messaggi';
|
||||
case 'stream.chat.badge.awarded_to': return 'Assegnato a:';
|
||||
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.countdown': return ({required Object time}) => 'Raid in ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Obiettivo: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Restante: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETO';
|
||||
case 'button.login': return 'Login';
|
||||
case 'button.logout': return 'Logout';
|
||||
case 'button.edit_profile': return 'Modifica profilo';
|
||||
case 'button.follow': return 'Segui';
|
||||
case 'button.unfollow': return 'Smetti di seguire';
|
||||
case 'button.mute': return 'Silenzia';
|
||||
case 'button.unmute': return 'Riattiva';
|
||||
case 'button.share': return 'Condividi';
|
||||
case 'button.save': return 'Salva';
|
||||
case 'button.connect': return 'Collegare';
|
||||
case 'button.settings': return 'Impostazioni';
|
||||
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.live': return 'Dal vivo';
|
||||
case 'stream_list.planned': return 'Pianificato';
|
||||
case 'stream_list.ended': return 'Terminato';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Importo personalizzato';
|
||||
case 'zap.confirm': return 'Conferma';
|
||||
case 'zap.comment': return 'Commenta';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Importo personalizzato non valido';
|
||||
case 'zap.error.no_wallet': return 'Nessun portafoglio Lightning installato';
|
||||
case 'zap.error.no_lud16': return 'Nessun indirizzo di fulmine trovato';
|
||||
case 'profile.past_streams': return 'Flussi passati';
|
||||
case 'settings.button_profile': return 'Modifica profilo';
|
||||
case 'settings.button_wallet': return 'Impostazioni del portafoglio';
|
||||
case 'settings.profile.display_name': return 'Nome visualizzato';
|
||||
case 'settings.profile.about': return 'Circa';
|
||||
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.amber': return 'Accesso con Amber';
|
||||
case 'login.key': return 'Accesso con chiave';
|
||||
case 'login.create': return 'Crea un account';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_ja.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsJa extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsJa({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.ja,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <ja>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsJa _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsJa $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsJa(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
||||
@override String get upload_avatar => '画像アップロード';
|
||||
|
||||
/// ザップによるリストの上のストリーマーに向かう
|
||||
@override String get most_zapped_streamers => '最もザッピングされたストリーマー';
|
||||
|
||||
/// 検索してもユーザーが見つからない
|
||||
@override String get no_user_found => 'ユーザーが見つかりません';
|
||||
|
||||
/// 匿名ユーザー
|
||||
@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,
|
||||
one: '1 視聴者',
|
||||
other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamJa stream = _TranslationsStreamJa._(_root);
|
||||
@override late final _TranslationsGoalJa goal = _TranslationsGoalJa._(_root);
|
||||
@override late final _TranslationsButtonJa button = _TranslationsButtonJa._(_root);
|
||||
@override late final _TranslationsEmbedJa embed = _TranslationsEmbedJa._(_root);
|
||||
|
||||
/// ライブ/終了/予定など、ストリーム・タイプ別のストリーム・リストの見出し。
|
||||
@override late final _TranslationsStreamListJa stream_list = _TranslationsStreamListJa._(_root);
|
||||
|
||||
@override late final _TranslationsZapJa zap = _TranslationsZapJa._(_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 _TranslationsLiveJa live = _TranslationsLiveJa._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamJa extends TranslationsStreamEn {
|
||||
_TranslationsStreamJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusJa status = _TranslationsStreamStatusJa._(_root);
|
||||
@override String started({required Object timestamp}) => '${timestamp} を開始';
|
||||
@override String notification({required Object name}) => '${name} がライブを開始した!';
|
||||
@override late final _TranslationsStreamChatJa chat = _TranslationsStreamChatJa._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalJa extends TranslationsGoalEn {
|
||||
_TranslationsGoalJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => '目標額: ${amount}';
|
||||
@override String remaining({required Object amount}) => '残り: ${amount}';
|
||||
@override String get complete => '完了';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonJa extends TranslationsButtonEn {
|
||||
_TranslationsButtonJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// ログインボタンのテキスト
|
||||
@override String get login => 'ログイン';
|
||||
|
||||
@override String get logout => 'ログアウト';
|
||||
@override String get edit_profile => 'プロフィールを編集';
|
||||
|
||||
/// フォローボタンのテキスト
|
||||
@override String get follow => 'フォロー';
|
||||
|
||||
/// フォロー解除ボタンのテキスト
|
||||
@override String get unfollow => 'フォロー解除';
|
||||
|
||||
@override String get mute => 'ミュート';
|
||||
@override String get unmute => 'ミュート解除';
|
||||
@override String get share => '共有';
|
||||
@override String get save => '保存';
|
||||
@override String get connect => '接続';
|
||||
@override String get settings => '設定';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedJa extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => '記事: ${name}';
|
||||
@override String note_by({required Object name}) => '${name} の投稿';
|
||||
@override String live_stream_by({required Object name}) => 'ライブ・ストリーム ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListJa extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'フォロー中';
|
||||
@override String get live => 'ライブ配信中';
|
||||
@override String get planned => '予定あり';
|
||||
@override String get ended => '終了しました';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapJa extends TranslationsZapEn {
|
||||
_TranslationsZapJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => '${name} をザップ';
|
||||
@override String get custom_amount => 'カスタム金額';
|
||||
@override String get confirm => '確認';
|
||||
@override String get comment => 'コメント';
|
||||
@override String button_zap_ready({required Object amount}) => '${amount} satsをザップする';
|
||||
@override String get button_zap => 'ザップ';
|
||||
@override String get button_open_wallet => 'ウォレットで開く';
|
||||
@override String get button_connect_wallet => 'コネクトウォレット';
|
||||
@override String get copy => 'クリップボードにコピー';
|
||||
@override late final _TranslationsZapErrorJa error = _TranslationsZapErrorJa._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileJa extends TranslationsProfileEn {
|
||||
_TranslationsProfileJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => '過去の配信';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginJa extends TranslationsLoginEn {
|
||||
_TranslationsLoginJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'ユーザー名';
|
||||
@override String get amber => '琥珀でログイン';
|
||||
@override String get key => 'キーでログイン';
|
||||
@override String get create => 'アカウントを作成する';
|
||||
@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
|
||||
class _TranslationsStreamStatusJa extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'ライブ';
|
||||
@override String get ended => '終了';
|
||||
@override String get planned => '予定';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatJa extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'チャット無効';
|
||||
@override String disabled_timeout({required Object time}) => 'タイムアウト: ${time}';
|
||||
|
||||
/// タイムアウトイベントを表示するチャットメッセージ
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' タイムアウト '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// チャットの下にストリーム終了のフッター
|
||||
@override String get ended => '配信終了';
|
||||
|
||||
/// ストリームのザッピングを表示するチャットメッセージ
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' が '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats をザップしました'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteJa write = _TranslationsStreamChatWriteJa._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeJa badge = _TranslationsStreamChatBadgeJa._(_root);
|
||||
@override late final _TranslationsStreamChatRaidJa raid = _TranslationsStreamChatRaidJa._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorJa extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => '無効なカスタム金額';
|
||||
@override String get no_wallet => 'Lightningウォレット未装着';
|
||||
@override String get no_lud16 => '雷アドレスが見つかりません';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileJa extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => '表示名';
|
||||
@override String get about => 'について';
|
||||
@override String get nip05 => '住所';
|
||||
@override String get lud16 => 'ライトニングアドレス';
|
||||
@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
|
||||
class _TranslationsLoginErrorJa extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteJa extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// チャットメッセージ入力ボックスのラベル
|
||||
@override String get label => 'メッセージを書く';
|
||||
|
||||
/// ユーザーがpubkeyのみでログインしている場合に表示されるチャット入力メッセージ
|
||||
@override String get no_signer => 'npubログインでメッセージが書けない';
|
||||
|
||||
/// ログアウト時に表示されるチャット入力メッセージ
|
||||
@override String get login => 'メッセージを送信するにはログインしてください';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeJa extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// バッジを授与されたユーザーのリスト上の見出し
|
||||
@override String get awarded_to => '受賞者';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidJa extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 別のストリームへのチャット襲撃メッセージ
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// 他のストリームからのチャット襲撃メッセージ
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// 自動騎乗のカウントダウン・タイマー
|
||||
@override String countdown({required Object time}) => '${time}における襲撃';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorJa extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorJa._(TranslationsJa root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsJa _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsJa {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return '画像アップロード';
|
||||
case 'most_zapped_streamers': return '最もザッピングされたストリーマー';
|
||||
case 'no_user_found': 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,
|
||||
one: '1 視聴者',
|
||||
other: '${NumberFormat.decimalPattern('ja').format(n)} 人が視聴中',
|
||||
);
|
||||
case 'stream.status.live': return 'ライブ';
|
||||
case 'stream.status.ended': return '終了';
|
||||
case 'stream.status.planned': return '予定';
|
||||
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_timeout': return ({required Object time}) => 'タイムアウト: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' タイムアウト '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return '配信終了';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' が '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats をザップしました'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'メッセージを書く';
|
||||
case 'stream.chat.write.no_signer': return 'npubログインでメッセージが書けない';
|
||||
case 'stream.chat.write.login': return 'メッセージを送信するにはログインしてください';
|
||||
case 'stream.chat.badge.awarded_to': return '受賞者';
|
||||
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}) => '${time}における襲撃';
|
||||
case 'goal.title': return ({required Object amount}) => '目標額: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => '残り: ${amount}';
|
||||
case 'goal.complete': return '完了';
|
||||
case 'button.login': return 'ログイン';
|
||||
case 'button.logout': return 'ログアウト';
|
||||
case 'button.edit_profile': return 'プロフィールを編集';
|
||||
case 'button.follow': return 'フォロー';
|
||||
case 'button.unfollow': return 'フォロー解除';
|
||||
case 'button.mute': return 'ミュート';
|
||||
case 'button.unmute': return 'ミュート解除';
|
||||
case 'button.share': return '共有';
|
||||
case 'button.save': return '保存';
|
||||
case 'button.connect': return '接続';
|
||||
case 'button.settings': return '設定';
|
||||
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.live': return 'ライブ配信中';
|
||||
case 'stream_list.planned': return '予定あり';
|
||||
case 'stream_list.ended': return '終了しました';
|
||||
case 'zap.title': return ({required Object name}) => '${name} をザップ';
|
||||
case 'zap.custom_amount': return 'カスタム金額';
|
||||
case 'zap.confirm': return '確認';
|
||||
case 'zap.comment': return 'コメント';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => '${amount} satsをザップする';
|
||||
case 'zap.button_zap': return 'ザップ';
|
||||
case 'zap.button_open_wallet': return 'ウォレットで開く';
|
||||
case 'zap.button_connect_wallet': return 'コネクトウォレット';
|
||||
case 'zap.copy': return 'クリップボードにコピー';
|
||||
case 'zap.error.invalid_custom_amount': return '無効なカスタム金額';
|
||||
case 'zap.error.no_wallet': return 'Lightningウォレット未装着';
|
||||
case 'zap.error.no_lud16': return '雷アドレスが見つかりません';
|
||||
case 'profile.past_streams': return '過去の配信';
|
||||
case 'settings.button_profile': return 'プロフィール編集';
|
||||
case 'settings.button_wallet': return 'ウォレットの設定';
|
||||
case 'settings.profile.display_name': return '表示名';
|
||||
case 'settings.profile.about': 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.amber': return '琥珀でログイン';
|
||||
case 'login.key': return 'キーでログイン';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_ko.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsKo extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsKo({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.ko,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <ko>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsKo _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsKo $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsKo(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// 아바타 플레이스홀더를 눌러 업로드를 시작하라는 메시지를 표시하는 텍스트
|
||||
@override String get upload_avatar => '아바타 업로드';
|
||||
|
||||
/// 나열된 상위 스트리머를 잽별로 살펴보기
|
||||
@override String get most_zapped_streamers => '가장 많이 재핑된 스트리머';
|
||||
|
||||
/// 검색 시 사용자를 찾을 수 없음
|
||||
@override String get no_user_found => '사용자를 찾을 수 없습니다.';
|
||||
|
||||
/// 익명 사용자
|
||||
@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,
|
||||
one: '시청자 1명',
|
||||
other: '{n:decimalPattern} 시청자',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamKo stream = _TranslationsStreamKo._(_root);
|
||||
@override late final _TranslationsGoalKo goal = _TranslationsGoalKo._(_root);
|
||||
@override late final _TranslationsButtonKo button = _TranslationsButtonKo._(_root);
|
||||
@override late final _TranslationsEmbedKo embed = _TranslationsEmbedKo._(_root);
|
||||
|
||||
/// 실시간/종료/예정 등 스트림 유형별로 스트림 목록의 제목을 표시합니다.
|
||||
@override late final _TranslationsStreamListKo stream_list = _TranslationsStreamListKo._(_root);
|
||||
|
||||
@override late final _TranslationsZapKo zap = _TranslationsZapKo._(_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 _TranslationsLiveKo live = _TranslationsLiveKo._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamKo extends TranslationsStreamEn {
|
||||
_TranslationsStreamKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusKo status = _TranslationsStreamStatusKo._(_root);
|
||||
@override String started({required Object timestamp}) => '시작 ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} 라이브가 시작되었습니다!';
|
||||
@override late final _TranslationsStreamChatKo chat = _TranslationsStreamChatKo._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalKo extends TranslationsGoalEn {
|
||||
_TranslationsGoalKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => '목표: ${amount}';
|
||||
@override String remaining({required Object amount}) => '남음: ${amount}';
|
||||
@override String get complete => '완료';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonKo extends TranslationsButtonEn {
|
||||
_TranslationsButtonKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 로그인 버튼의 버튼 텍스트
|
||||
@override String get login => '로그인';
|
||||
|
||||
@override String get logout => '로그아웃';
|
||||
@override String get edit_profile => '프로필 수정';
|
||||
|
||||
/// 팔로우 버튼의 버튼 텍스트
|
||||
@override String get follow => '팔로우';
|
||||
|
||||
/// 언팔로우 버튼의 버튼 텍스트
|
||||
@override String get unfollow => '언팔로우';
|
||||
|
||||
@override String get mute => '뮤트';
|
||||
@override String get unmute => '뮤트 해제';
|
||||
@override String get share => '공유';
|
||||
@override String get save => '저장';
|
||||
@override String get connect => '연결';
|
||||
@override String get settings => '설정';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedKo extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => '작성자: ${name}';
|
||||
@override String note_by({required Object name}) => '노트 작성됨: ${name}';
|
||||
@override String live_stream_by({required Object name}) => '라이브 스트리밍: ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListKo extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => '팔로잉';
|
||||
@override String get live => '라이브';
|
||||
@override String get planned => '계획된';
|
||||
@override String get ended => '종료됨';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapKo extends TranslationsZapEn {
|
||||
_TranslationsZapKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => '사용자 지정 금액';
|
||||
@override String get confirm => '확인';
|
||||
@override String get comment => '댓글';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@override String get button_open_wallet => '지갑에서 열기';
|
||||
@override String get button_connect_wallet => '지갑 연결';
|
||||
@override String get copy => '클립보드에 복사';
|
||||
@override late final _TranslationsZapErrorKo error = _TranslationsZapErrorKo._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileKo extends TranslationsProfileEn {
|
||||
_TranslationsProfileKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => '과거 스트림';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginKo extends TranslationsLoginEn {
|
||||
_TranslationsLoginKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => '사용자 이름';
|
||||
@override String get amber => 'Amber로 로그인';
|
||||
@override String get key => '키로 로그인';
|
||||
@override String get create => '계정 만들기';
|
||||
@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
|
||||
class _TranslationsStreamStatusKo extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => '라이브';
|
||||
@override String get ended => '종료';
|
||||
@override String get planned => '계획된';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatKo extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => '채팅 사용 안 함';
|
||||
@override String disabled_timeout({required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
||||
|
||||
/// 시간 초과 이벤트를 표시하는 채팅 메시지
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' 시간 초과됨 '),
|
||||
user,
|
||||
const TextSpan(text: ' '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// 채팅 하단의 스트림 종료 푸터
|
||||
@override String get ended => '스트림 종료';
|
||||
|
||||
/// 채팅 메시지 스트림 끊김 표시
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' ZAPP '),
|
||||
amount,
|
||||
const TextSpan(text: ' SATS'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteKo write = _TranslationsStreamChatWriteKo._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeKo badge = _TranslationsStreamChatBadgeKo._(_root);
|
||||
@override late final _TranslationsStreamChatRaidKo raid = _TranslationsStreamChatRaidKo._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorKo extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => '잘못된 사용자 지정 금액';
|
||||
@override String get no_wallet => '라이트닝 월렛이 설치되지 않았습니다.';
|
||||
@override String get no_lud16 => '번개 주소를 찾을 수 없습니다.';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileKo extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => '표시 이름';
|
||||
@override String get about => '정보';
|
||||
@override String get nip05 => '노스트르 주소';
|
||||
@override String get lud16 => '라이트닝 주소';
|
||||
@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
|
||||
class _TranslationsLoginErrorKo extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteKo extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 채팅 메시지 입력 상자의 라벨
|
||||
@override String get label => '메시지 작성';
|
||||
|
||||
/// 사용자가 공개 키로만 로그인한 경우에 표시되는 채팅 입력 메시지
|
||||
@override String get no_signer => 'npub 로그인으로 메시지를 작성할 수 없습니다.';
|
||||
|
||||
/// 사용자가 로그아웃할 때 표시되는 채팅 입력 메시지
|
||||
@override String get login => '메시지를 보내려면 로그인하세요.';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeKo extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 배지를 받은 사용자 목록으로 이동하기
|
||||
@override String get awarded_to => '수상 대상';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidKo extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 다른 스트림으로 채팅 레이드 메시지 보내기
|
||||
@override String to({required Object name}) => 'RAIDing ${name}';
|
||||
|
||||
/// 다른 스트림의 채팅 레이드 메시지
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// 자동 레이드를 위한 카운트다운 타이머
|
||||
@override String countdown({required Object time}) => '${time}에서 레이드';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorKo extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorKo._(TranslationsKo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsKo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsKo {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return '아바타 업로드';
|
||||
case 'most_zapped_streamers': return '가장 많이 재핑된 스트리머';
|
||||
case 'no_user_found': return '사용자를 찾을 수 없습니다.';
|
||||
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,
|
||||
one: '시청자 1명',
|
||||
other: '{n:decimalPattern} 시청자',
|
||||
);
|
||||
case 'stream.status.live': return '라이브';
|
||||
case 'stream.status.ended': return '종료';
|
||||
case 'stream.status.planned': return '계획된';
|
||||
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_timeout': return ({required Object time}) => '시간 초과가 만료되었습니다: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' 시간 초과됨 '),
|
||||
user,
|
||||
const TextSpan(text: ' '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return '스트림 종료';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' ZAPP '),
|
||||
amount,
|
||||
const TextSpan(text: ' SATS'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return '메시지 작성';
|
||||
case 'stream.chat.write.no_signer': return 'npub 로그인으로 메시지를 작성할 수 없습니다.';
|
||||
case 'stream.chat.write.login': return '메시지를 보내려면 로그인하세요.';
|
||||
case 'stream.chat.badge.awarded_to': return '수상 대상';
|
||||
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}) => '${time}에서 레이드';
|
||||
case 'goal.title': return ({required Object amount}) => '목표: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => '남음: ${amount}';
|
||||
case 'goal.complete': return '완료';
|
||||
case 'button.login': return '로그인';
|
||||
case 'button.logout': return '로그아웃';
|
||||
case 'button.edit_profile': return '프로필 수정';
|
||||
case 'button.follow': return '팔로우';
|
||||
case 'button.unfollow': return '언팔로우';
|
||||
case 'button.mute': return '뮤트';
|
||||
case 'button.unmute': return '뮤트 해제';
|
||||
case 'button.share': return '공유';
|
||||
case 'button.save': return '저장';
|
||||
case 'button.connect': return '연결';
|
||||
case 'button.settings': return '설정';
|
||||
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.live': return '라이브';
|
||||
case 'stream_list.planned': return '계획된';
|
||||
case 'stream_list.ended': return '종료됨';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return '사용자 지정 금액';
|
||||
case 'zap.confirm': return '확인';
|
||||
case 'zap.comment': return '댓글';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
case 'zap.button_open_wallet': return '지갑에서 열기';
|
||||
case 'zap.button_connect_wallet': return '지갑 연결';
|
||||
case 'zap.copy': return '클립보드에 복사';
|
||||
case 'zap.error.invalid_custom_amount': return '잘못된 사용자 지정 금액';
|
||||
case 'zap.error.no_wallet': return '라이트닝 월렛이 설치되지 않았습니다.';
|
||||
case 'zap.error.no_lud16': return '번개 주소를 찾을 수 없습니다.';
|
||||
case 'profile.past_streams': return '과거 스트림';
|
||||
case 'settings.button_profile': return '프로필 수정';
|
||||
case 'settings.button_wallet': return '지갑 설정';
|
||||
case 'settings.profile.display_name': return '표시 이름';
|
||||
case 'settings.profile.about': 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.amber': return 'Amber로 로그인';
|
||||
case 'login.key': return '키로 로그인';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_nl.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsNl extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsNl({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.nl,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <nl>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsNl _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsNl $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsNl(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Tekst die de gebruiker vraagt om op de avatar-plaatshouder te klikken om te beginnen met uploaden
|
||||
@override String get upload_avatar => 'Avatar uploaden';
|
||||
|
||||
/// Koers over beursgenoteerde topstreamers door zaps
|
||||
@override String get most_zapped_streamers => 'Meeste Zapped Streamers';
|
||||
|
||||
/// Geen gebruiker gevonden bij het zoeken
|
||||
@override String get no_user_found => 'Geen gebruiker gevonden';
|
||||
|
||||
/// Een anonieme gebruiker
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('nl').format(n)} sats';
|
||||
|
||||
/// Aantal kijkers van de stream
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('nl'))(n,
|
||||
one: '1 kijker',
|
||||
other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamNl stream = _TranslationsStreamNl._(_root);
|
||||
@override late final _TranslationsGoalNl goal = _TranslationsGoalNl._(_root);
|
||||
@override late final _TranslationsButtonNl button = _TranslationsButtonNl._(_root);
|
||||
@override late final _TranslationsEmbedNl embed = _TranslationsEmbedNl._(_root);
|
||||
|
||||
/// Rubrieken op streamlijsten per streamtype live/beëindigd/gepland etc.
|
||||
@override late final _TranslationsStreamListNl stream_list = _TranslationsStreamListNl._(_root);
|
||||
|
||||
@override late final _TranslationsZapNl zap = _TranslationsZapNl._(_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 _TranslationsLiveNl live = _TranslationsLiveNl._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamNl extends TranslationsStreamEn {
|
||||
_TranslationsStreamNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusNl status = _TranslationsStreamStatusNl._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalNl extends TranslationsGoalEn {
|
||||
_TranslationsGoalNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Doel: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Overblijvend: ${amount}';
|
||||
@override String get complete => 'COMPLETE';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonNl extends TranslationsButtonEn {
|
||||
_TranslationsButtonNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Knoptekst voor de aanmeldknop
|
||||
@override String get login => 'Inloggen';
|
||||
|
||||
@override String get logout => 'Uitloggen';
|
||||
@override String get edit_profile => 'Bewerk Profiel';
|
||||
|
||||
/// Knoptekst voor de volgknop
|
||||
@override String get follow => 'Volgen';
|
||||
|
||||
/// Knoptekst voor de knop Ontvolgen
|
||||
@override String get unfollow => 'Ontvolgen';
|
||||
|
||||
@override String get mute => 'Dempen';
|
||||
@override String get unmute => 'Niet langer negeren';
|
||||
@override String get share => 'Deel';
|
||||
@override String get save => 'Opslaan';
|
||||
@override String get connect => 'Maak verbinding met';
|
||||
@override String get settings => 'Instellingen';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedNl extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artikel door ${name}';
|
||||
@override String note_by({required Object name}) => 'Opmerking door ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Live stream via ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListNl extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Volgt';
|
||||
@override String get live => 'Live';
|
||||
@override String get planned => 'Gepland';
|
||||
@override String get ended => 'Beëindigd';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapNl extends TranslationsZapEn {
|
||||
_TranslationsZapNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Aangepast bedrag';
|
||||
@override String get confirm => 'Bevestig';
|
||||
@override String get comment => 'Opmerking';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorNl error = _TranslationsZapErrorNl._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileNl extends TranslationsProfileEn {
|
||||
_TranslationsProfileNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Afgelopen Streams';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginNl extends TranslationsLoginEn {
|
||||
_TranslationsLoginNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Gebruikersnaam';
|
||||
@override String get amber => 'Inloggen met Amber';
|
||||
@override String get key => 'Inloggen met sleutel';
|
||||
@override String get create => 'Account aanmaken';
|
||||
@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
|
||||
class _TranslationsStreamStatusNl extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'GESLOTEN';
|
||||
@override String get planned => 'GEPLAND';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatNl extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT UITGESCHAKELD';
|
||||
@override String disabled_timeout({required Object time}) => 'Time-out loopt af: ${time}';
|
||||
|
||||
/// Chatbericht met time-outgebeurtenissen
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' voor '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Voettekst einde stream onderaan chat
|
||||
@override String get ended => 'STREAM BEËINDIGD';
|
||||
|
||||
/// Chatbericht met stream zaps
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteNl write = _TranslationsStreamChatWriteNl._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeNl badge = _TranslationsStreamChatBadgeNl._(_root);
|
||||
@override late final _TranslationsStreamChatRaidNl raid = _TranslationsStreamChatRaidNl._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorNl extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Ongeldig aangepast bedrag';
|
||||
@override String get no_wallet => 'Geen bliksemportemonnee geïnstalleerd';
|
||||
@override String get no_lud16 => 'Geen bliksemadres gevonden';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileNl extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Naam weergeven';
|
||||
@override String get about => 'Over';
|
||||
@override String get nip05 => 'Nostr Adres';
|
||||
@override String get lud16 => 'Bliksemadres';
|
||||
@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
|
||||
class _TranslationsLoginErrorNl extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteNl extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Label op het invoerveld voor chatberichten
|
||||
@override String get label => 'Schrijf bericht';
|
||||
|
||||
/// Chatinvoerbericht getoond wanneer de gebruiker alleen is ingelogd met pubkey
|
||||
@override String get no_signer => 'Kan geen berichten schrijven met npub login';
|
||||
|
||||
/// Chatinvoerbericht dat wordt weergegeven wanneer de gebruiker is uitgelogd
|
||||
@override String get login => 'Log in om berichten te verzenden';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeNl extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Kop boven de lijst met gebruikers die een badge hebben gekregen
|
||||
@override String get awarded_to => 'Toegekend aan:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidNl extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat raid bericht naar een andere stream
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat invalbericht van een andere stream
|
||||
@override String from({required Object name}) => 'RAID VAN ${name}';
|
||||
|
||||
/// Afteltimer voor automatisch rijden
|
||||
@override String countdown({required Object time}) => 'Overvallen in ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorNl extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorNl._(TranslationsNl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsNl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsNl {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Avatar uploaden';
|
||||
case 'most_zapped_streamers': return 'Meeste Zapped Streamers';
|
||||
case 'no_user_found': return 'Geen gebruiker gevonden';
|
||||
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,
|
||||
one: '1 kijker',
|
||||
other: '${NumberFormat.decimalPattern('nl').format(n)} kijkers',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'GESLOTEN';
|
||||
case 'stream.status.planned': return 'GEPLAND';
|
||||
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_timeout': return ({required Object time}) => 'Time-out loopt af: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' voor '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM BEËINDIGD';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Schrijf bericht';
|
||||
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.badge.awarded_to': return 'Toegekend aan:';
|
||||
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.countdown': return ({required Object time}) => 'Overvallen in ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Doel: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Overblijvend: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETE';
|
||||
case 'button.login': return 'Inloggen';
|
||||
case 'button.logout': return 'Uitloggen';
|
||||
case 'button.edit_profile': return 'Bewerk Profiel';
|
||||
case 'button.follow': return 'Volgen';
|
||||
case 'button.unfollow': return 'Ontvolgen';
|
||||
case 'button.mute': return 'Dempen';
|
||||
case 'button.unmute': return 'Niet langer negeren';
|
||||
case 'button.share': return 'Deel';
|
||||
case 'button.save': return 'Opslaan';
|
||||
case 'button.connect': return 'Maak verbinding met';
|
||||
case 'button.settings': return 'Instellingen';
|
||||
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.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Gepland';
|
||||
case 'stream_list.ended': return 'Beëindigd';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Aangepast bedrag';
|
||||
case 'zap.confirm': return 'Bevestig';
|
||||
case 'zap.comment': return 'Opmerking';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Ongeldig aangepast bedrag';
|
||||
case 'zap.error.no_wallet': return 'Geen bliksemportemonnee geïnstalleerd';
|
||||
case 'zap.error.no_lud16': return 'Geen bliksemadres gevonden';
|
||||
case 'profile.past_streams': return 'Afgelopen Streams';
|
||||
case 'settings.button_profile': return 'Profiel bewerken';
|
||||
case 'settings.button_wallet': return 'Portemonnee-instellingen';
|
||||
case 'settings.profile.display_name': return 'Naam weergeven';
|
||||
case 'settings.profile.about': return 'Over';
|
||||
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.amber': return 'Inloggen met Amber';
|
||||
case 'login.key': return 'Inloggen met sleutel';
|
||||
case 'login.create': return 'Account aanmaken';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_pl.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsPl extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsPl({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.pl,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <pl>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsPl _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsPl $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsPl(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Tekst zachęcający użytkownika do kliknięcia symbolu zastępczego awatara w celu rozpoczęcia przesyłania.
|
||||
@override String get upload_avatar => 'Prześlij awatar';
|
||||
|
||||
/// Przechodzenie nad wymienionymi topowymi streamerami przez zapy
|
||||
@override String get most_zapped_streamers => 'Większość zapped streamerów';
|
||||
|
||||
/// Nie znaleziono użytkownika podczas wyszukiwania
|
||||
@override String get no_user_found => 'Nie znaleziono użytkownika';
|
||||
|
||||
/// Anonimowy użytkownik
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
@override String full_amount_sats({required num n}) => '${NumberFormat.decimalPattern('pl').format(n)} sats';
|
||||
|
||||
/// Liczba widzów strumienia
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pl'))(n,
|
||||
one: '1 przeglądarka',
|
||||
other: '{n:decimalPattern} widzów',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamPl stream = _TranslationsStreamPl._(_root);
|
||||
@override late final _TranslationsGoalPl goal = _TranslationsGoalPl._(_root);
|
||||
@override late final _TranslationsButtonPl button = _TranslationsButtonPl._(_root);
|
||||
@override late final _TranslationsEmbedPl embed = _TranslationsEmbedPl._(_root);
|
||||
|
||||
/// Nagłówki na listach strumieni według typu strumienia na żywo / zakończony / planowany itp.
|
||||
@override late final _TranslationsStreamListPl stream_list = _TranslationsStreamListPl._(_root);
|
||||
|
||||
@override late final _TranslationsZapPl zap = _TranslationsZapPl._(_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 _TranslationsLivePl live = _TranslationsLivePl._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamPl extends TranslationsStreamEn {
|
||||
_TranslationsStreamPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusPl status = _TranslationsStreamStatusPl._(_root);
|
||||
@override String started({required Object timestamp}) => 'Start ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} został uruchomiony!';
|
||||
@override late final _TranslationsStreamChatPl chat = _TranslationsStreamChatPl._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalPl extends TranslationsGoalEn {
|
||||
_TranslationsGoalPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Cel: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Pozostałe: ${amount}';
|
||||
@override String get complete => 'ZAKOŃCZONE';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonPl extends TranslationsButtonEn {
|
||||
_TranslationsButtonPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Tekst przycisku logowania
|
||||
@override String get login => 'Logowanie';
|
||||
|
||||
@override String get logout => 'Wylogowanie';
|
||||
@override String get edit_profile => 'Edytuj profil';
|
||||
|
||||
/// Tekst przycisku dla przycisku śledzenia
|
||||
@override String get follow => 'Śledź';
|
||||
|
||||
/// Tekst przycisku cofnięcia obserwowania
|
||||
@override String get unfollow => 'Nie obserwuj';
|
||||
|
||||
@override String get mute => 'Wyciszenie';
|
||||
@override String get unmute => 'Wyłącz wyciszenie';
|
||||
@override String get share => 'Udział';
|
||||
@override String get save => 'Zapisz';
|
||||
@override String get connect => 'Połączenie';
|
||||
@override String get settings => 'Ustawienia';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedPl extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artykuł autorstwa ${name}';
|
||||
@override String note_by({required Object name}) => 'Uwaga ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Transmisja na żywo przez ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListPl extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Następujący';
|
||||
@override String get live => 'Na żywo';
|
||||
@override String get planned => 'Planowane';
|
||||
@override String get ended => 'Zakończony';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapPl extends TranslationsZapEn {
|
||||
_TranslationsZapPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Kwota niestandardowa';
|
||||
@override String get confirm => 'Potwierdzenie';
|
||||
@override String get comment => 'Komentarz';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorPl error = _TranslationsZapErrorPl._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfilePl extends TranslationsProfileEn {
|
||||
_TranslationsProfilePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Poprzednie strumienie';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginPl extends TranslationsLoginEn {
|
||||
_TranslationsLoginPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Nazwa użytkownika';
|
||||
@override String get amber => 'Zaloguj się za pomocą Amber';
|
||||
@override String get key => 'Logowanie za pomocą klucza';
|
||||
@override String get create => 'Utwórz konto';
|
||||
@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
|
||||
class _TranslationsStreamStatusPl extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'NA ŻYWO';
|
||||
@override String get ended => 'ZAKOŃCZONY';
|
||||
@override String get planned => 'PLANOWANE';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatPl extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CZAT WYŁĄCZONY';
|
||||
@override String disabled_timeout({required Object time}) => 'Upłynął limit czasu: ${time}';
|
||||
|
||||
/// Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' upłynął limit czasu '),
|
||||
user,
|
||||
const TextSpan(text: ' dla '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream zakończył stopkę na dole czatu
|
||||
@override String get ended => 'TRANSMISJA ZAKOŃCZONA';
|
||||
|
||||
/// Wiadomość na czacie pokazująca zapy strumienia
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWritePl write = _TranslationsStreamChatWritePl._(_root);
|
||||
@override late final _TranslationsStreamChatBadgePl badge = _TranslationsStreamChatBadgePl._(_root);
|
||||
@override late final _TranslationsStreamChatRaidPl raid = _TranslationsStreamChatRaidPl._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorPl extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Nieprawidłowa kwota niestandardowa';
|
||||
@override String get no_wallet => 'Brak zainstalowanego portfela Lightning';
|
||||
@override String get no_lud16 => 'Nie znaleziono adresu pioruna';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfilePl extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfilePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Wyświetlana nazwa';
|
||||
@override String get about => 'O';
|
||||
@override String get nip05 => 'Adres Nostr';
|
||||
@override String get lud16 => 'Adres błyskawicy';
|
||||
@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
|
||||
class _TranslationsLoginErrorPl extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWritePl extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWritePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Etykieta w polu wprowadzania wiadomości czatu
|
||||
@override String get label => 'Napisz wiadomość';
|
||||
|
||||
/// Komunikat wejściowy czatu wyświetlany, gdy użytkownik jest zalogowany tylko za pomocą klucza pubkey
|
||||
@override String get no_signer => 'Nie można pisać wiadomości z loginem npub';
|
||||
|
||||
/// Komunikat wejściowy czatu wyświetlany, gdy użytkownik jest wylogowany
|
||||
@override String get login => 'Zaloguj się, aby wysyłać wiadomości';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgePl extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgePl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Nagłówek nad listą użytkowników, którzy otrzymali odznakę
|
||||
@override String get awarded_to => 'Przyznano:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidPl extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Przesyłanie wiadomości na czacie do innego strumienia
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Nalot na czat z innego strumienia
|
||||
@override String from({required Object name}) => 'RAID Z ${name}';
|
||||
|
||||
/// Zegar odliczający czas do automatycznej jazdy
|
||||
@override String countdown({required Object time}) => 'Naloty w ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorPl extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorPl._(TranslationsPl root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPl _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsPl {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Prześlij awatar';
|
||||
case 'most_zapped_streamers': return 'Większość zapped streamerów';
|
||||
case 'no_user_found': return 'Nie znaleziono użytkownika';
|
||||
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,
|
||||
one: '1 przeglądarka',
|
||||
other: '{n:decimalPattern} widzów',
|
||||
);
|
||||
case 'stream.status.live': return 'NA ŻYWO';
|
||||
case 'stream.status.ended': return 'ZAKOŃCZONY';
|
||||
case 'stream.status.planned': return 'PLANOWANE';
|
||||
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_timeout': return ({required Object time}) => 'Upłynął limit czasu: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' upłynął limit czasu '),
|
||||
user,
|
||||
const TextSpan(text: ' dla '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'TRANSMISJA ZAKOŃCZONA';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Napisz wiadomość';
|
||||
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.badge.awarded_to': return 'Przyznano:';
|
||||
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.countdown': return ({required Object time}) => 'Naloty w ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Cel: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Pozostałe: ${amount}';
|
||||
case 'goal.complete': return 'ZAKOŃCZONE';
|
||||
case 'button.login': return 'Logowanie';
|
||||
case 'button.logout': return 'Wylogowanie';
|
||||
case 'button.edit_profile': return 'Edytuj profil';
|
||||
case 'button.follow': return 'Śledź';
|
||||
case 'button.unfollow': return 'Nie obserwuj';
|
||||
case 'button.mute': return 'Wyciszenie';
|
||||
case 'button.unmute': return 'Wyłącz wyciszenie';
|
||||
case 'button.share': return 'Udział';
|
||||
case 'button.save': return 'Zapisz';
|
||||
case 'button.connect': return 'Połączenie';
|
||||
case 'button.settings': return 'Ustawienia';
|
||||
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.live': return 'Na żywo';
|
||||
case 'stream_list.planned': return 'Planowane';
|
||||
case 'stream_list.ended': return 'Zakończony';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Kwota niestandardowa';
|
||||
case 'zap.confirm': return 'Potwierdzenie';
|
||||
case 'zap.comment': return 'Komentarz';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Nieprawidłowa kwota niestandardowa';
|
||||
case 'zap.error.no_wallet': return 'Brak zainstalowanego portfela Lightning';
|
||||
case 'zap.error.no_lud16': return 'Nie znaleziono adresu pioruna';
|
||||
case 'profile.past_streams': return 'Poprzednie strumienie';
|
||||
case 'settings.button_profile': return 'Edytuj profil';
|
||||
case 'settings.button_wallet': return 'Ustawienia portfela';
|
||||
case 'settings.profile.display_name': return 'Wyświetlana nazwa';
|
||||
case 'settings.profile.about': return 'O';
|
||||
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.amber': return 'Zaloguj się za pomocą Amber';
|
||||
case 'login.key': return 'Logowanie za pomocą klucza';
|
||||
case 'login.create': return 'Utwórz konto';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_pt.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsPt extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsPt({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.pt,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <pt>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsPt _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsPt $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsPt(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texto solicitando que o usuário clique no espaço reservado do avatar para iniciar o upload
|
||||
@override String get upload_avatar => 'Carregar Avatar';
|
||||
|
||||
/// Dirigindo-se para as principais serpentinas listadas por zaps
|
||||
@override String get most_zapped_streamers => 'Streamers mais afetados';
|
||||
|
||||
/// Nenhum usuário foi encontrado durante a pesquisa
|
||||
@override String get no_user_found => 'Nenhum usuário encontrado';
|
||||
|
||||
/// Um usuário 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
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('pt'))(n,
|
||||
one: '1 visualizador',
|
||||
other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamPt stream = _TranslationsStreamPt._(_root);
|
||||
@override late final _TranslationsGoalPt goal = _TranslationsGoalPt._(_root);
|
||||
@override late final _TranslationsButtonPt button = _TranslationsButtonPt._(_root);
|
||||
@override late final _TranslationsEmbedPt embed = _TranslationsEmbedPt._(_root);
|
||||
|
||||
/// Cabeçalhos nas listas de transmissões por tipo de transmissão ao vivo/terminada/planejada etc.
|
||||
@override late final _TranslationsStreamListPt stream_list = _TranslationsStreamListPt._(_root);
|
||||
|
||||
@override late final _TranslationsZapPt zap = _TranslationsZapPt._(_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 _TranslationsLivePt live = _TranslationsLivePt._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamPt extends TranslationsStreamEn {
|
||||
_TranslationsStreamPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusPt status = _TranslationsStreamStatusPt._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalPt extends TranslationsGoalEn {
|
||||
_TranslationsGoalPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Meta: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Restante: ${amount}';
|
||||
@override String get complete => 'COMPLETO';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonPt extends TranslationsButtonEn {
|
||||
_TranslationsButtonPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Texto do botão para o botão de login
|
||||
@override String get login => 'Entrar';
|
||||
|
||||
@override String get logout => 'Sair';
|
||||
@override String get edit_profile => 'Editar perfil';
|
||||
|
||||
/// Texto do botão para o botão Seguir
|
||||
@override String get follow => 'Seguir';
|
||||
|
||||
/// Texto do botão para o botão deixar de seguir
|
||||
@override String get unfollow => 'Deixar de seguir';
|
||||
|
||||
@override String get mute => 'Silenciar';
|
||||
@override String get unmute => 'Desmutar';
|
||||
@override String get share => 'Compartilhar';
|
||||
@override String get save => 'Salvar';
|
||||
@override String get connect => 'Conectar';
|
||||
@override String get settings => 'Configurações';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedPt extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artigo 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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListPt extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Seguindo';
|
||||
@override String get live => 'Ao vivo';
|
||||
@override String get planned => 'Planejado';
|
||||
@override String get ended => 'Encerrado';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapPt extends TranslationsZapEn {
|
||||
_TranslationsZapPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Valor personalizado';
|
||||
@override String get confirm => 'Confirmar';
|
||||
@override String get comment => 'Comentar';
|
||||
@override String button_zap_ready({required Object amount}) => 'Enviar Zap de ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorPt error = _TranslationsZapErrorPt._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfilePt extends TranslationsProfileEn {
|
||||
_TranslationsProfilePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Transmissões Passadas';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginPt extends TranslationsLoginEn {
|
||||
_TranslationsLoginPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Nome de usuário';
|
||||
@override String get amber => 'Faça login com o Amber';
|
||||
@override String get key => 'Login com chave';
|
||||
@override String get create => 'Criar Conta';
|
||||
@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
|
||||
class _TranslationsStreamStatusPt extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'AO VIVO';
|
||||
@override String get ended => 'FINALIZADO';
|
||||
@override String get planned => 'PLANEJADO';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatPt extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'BATE-PAPO DESATIVADO';
|
||||
@override String disabled_timeout({required Object time}) => 'O tempo limite expira: ${time}';
|
||||
|
||||
/// Mensagem de bate-papo mostrando eventos de tempo limite
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' Tempo esgotado '),
|
||||
user,
|
||||
const TextSpan(text: ' para '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// O rodapé do fluxo terminou na parte inferior do bate-papo
|
||||
@override String get ended => 'TRANSMISSÃO ENCERRADA';
|
||||
|
||||
/// Mensagem de bate-papo mostrando zaps de fluxo
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapeou '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWritePt write = _TranslationsStreamChatWritePt._(_root);
|
||||
@override late final _TranslationsStreamChatBadgePt badge = _TranslationsStreamChatBadgePt._(_root);
|
||||
@override late final _TranslationsStreamChatRaidPt raid = _TranslationsStreamChatRaidPt._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorPt extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Valor personalizado inválido';
|
||||
@override String get no_wallet => 'Nenhuma carteira lightning instalada';
|
||||
@override String get no_lud16 => 'Nenhum endereço de raio encontrado';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfilePt extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfilePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Nome de exibição';
|
||||
@override String get about => 'Sobre';
|
||||
@override String get nip05 => 'Endereço Nostr';
|
||||
@override String get lud16 => 'Endereço para relâmpagos';
|
||||
@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
|
||||
class _TranslationsLoginErrorPt extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWritePt extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWritePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Rótulo na caixa de entrada da mensagem de bate-papo
|
||||
@override String get label => 'Escrever mensagem';
|
||||
|
||||
/// Mensagem de entrada de bate-papo exibida quando o usuário está conectado apenas com a pubkey
|
||||
@override String get no_signer => 'Não é possível escrever mensagens com o login do npub';
|
||||
|
||||
/// Mensagem de entrada de chat exibida quando o usuário está desconectado
|
||||
@override String get login => 'Faça login para enviar mensagens';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgePt extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgePt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Cabeçalho sobre a lista de usuários que receberam um emblema
|
||||
@override String get awarded_to => 'Prêmio concedido a:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidPt extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Mensagem de invasão de bate-papo para outro fluxo
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Mensagem de invasão de bate-papo de outro fluxo
|
||||
@override String from({required Object name}) => 'RAID DE ${name}';
|
||||
|
||||
/// Cronômetro de contagem regressiva para o ataque automático
|
||||
@override String countdown({required Object time}) => 'Incursões em ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorPt extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorPt._(TranslationsPt root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsPt _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsPt {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Carregar Avatar';
|
||||
case 'most_zapped_streamers': return 'Streamers mais afetados';
|
||||
case 'no_user_found': return 'Nenhum usuário encontrado';
|
||||
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,
|
||||
one: '1 visualizador',
|
||||
other: '${NumberFormat.decimalPattern('pt').format(n)} espectadores',
|
||||
);
|
||||
case 'stream.status.live': return 'AO VIVO';
|
||||
case 'stream.status.ended': return 'FINALIZADO';
|
||||
case 'stream.status.planned': return 'PLANEJADO';
|
||||
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_timeout': return ({required Object time}) => 'O tempo limite expira: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' Tempo esgotado '),
|
||||
user,
|
||||
const TextSpan(text: ' para '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'TRANSMISSÃO ENCERRADA';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapeou '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
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.login': return 'Faça login para enviar mensagens';
|
||||
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.from': return ({required Object name}) => 'RAID DE ${name}';
|
||||
case 'stream.chat.raid.countdown': return ({required Object time}) => 'Incursões em ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Meta: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Restante: ${amount}';
|
||||
case 'goal.complete': return 'COMPLETO';
|
||||
case 'button.login': return 'Entrar';
|
||||
case 'button.logout': return 'Sair';
|
||||
case 'button.edit_profile': return 'Editar perfil';
|
||||
case 'button.follow': return 'Seguir';
|
||||
case 'button.unfollow': return 'Deixar de seguir';
|
||||
case 'button.mute': return 'Silenciar';
|
||||
case 'button.unmute': return 'Desmutar';
|
||||
case 'button.share': return 'Compartilhar';
|
||||
case 'button.save': return 'Salvar';
|
||||
case 'button.connect': return 'Conectar';
|
||||
case 'button.settings': return 'Configurações';
|
||||
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.live': return 'Ao vivo';
|
||||
case 'stream_list.planned': return 'Planejado';
|
||||
case 'stream_list.ended': return 'Encerrado';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Valor personalizado';
|
||||
case 'zap.confirm': return 'Confirmar';
|
||||
case 'zap.comment': return 'Comentar';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Enviar Zap de ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Valor personalizado inválido';
|
||||
case 'zap.error.no_wallet': return 'Nenhuma carteira lightning instalada';
|
||||
case 'zap.error.no_lud16': return 'Nenhum endereço de raio encontrado';
|
||||
case 'profile.past_streams': return 'Transmissões Passadas';
|
||||
case 'settings.button_profile': return 'Editar perfil';
|
||||
case 'settings.button_wallet': return 'Configurações da carteira';
|
||||
case 'settings.profile.display_name': return 'Nome de exibição';
|
||||
case 'settings.profile.about': return 'Sobre';
|
||||
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.amber': return 'Faça login com o Amber';
|
||||
case 'login.key': return 'Login com chave';
|
||||
case 'login.create': return 'Criar Conta';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_ro.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsRo extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsRo({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.ro,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <ro>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsRo _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsRo $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsRo(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Text care solicită utilizatorului să atingă marcajul avatar pentru a începe încărcarea
|
||||
@override String get upload_avatar => 'Încărcați Avatar';
|
||||
|
||||
/// Cap peste streamers de top enumerate de zaps
|
||||
@override String get most_zapped_streamers => 'Cele mai multe Streamers Zapped';
|
||||
|
||||
/// Nu s-a găsit niciun utilizator la căutare
|
||||
@override String get no_user_found => 'Niciun utilizator găsit';
|
||||
|
||||
/// Un utilizator anonim
|
||||
@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
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('ro'))(n,
|
||||
one: '1 vizualizator',
|
||||
other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamRo stream = _TranslationsStreamRo._(_root);
|
||||
@override late final _TranslationsGoalRo goal = _TranslationsGoalRo._(_root);
|
||||
@override late final _TranslationsButtonRo button = _TranslationsButtonRo._(_root);
|
||||
@override late final _TranslationsEmbedRo embed = _TranslationsEmbedRo._(_root);
|
||||
|
||||
/// Rubrici pe listele de fluxuri în funcție de tipul fluxului în direct/terminat/planificat etc.
|
||||
@override late final _TranslationsStreamListRo stream_list = _TranslationsStreamListRo._(_root);
|
||||
|
||||
@override late final _TranslationsZapRo zap = _TranslationsZapRo._(_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 _TranslationsLiveRo live = _TranslationsLiveRo._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamRo extends TranslationsStreamEn {
|
||||
_TranslationsStreamRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusRo status = _TranslationsStreamStatusRo._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalRo extends TranslationsGoalEn {
|
||||
_TranslationsGoalRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Obiectiv: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Rămase: ${amount}';
|
||||
@override String get complete => 'COMPLET';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonRo extends TranslationsButtonEn {
|
||||
_TranslationsButtonRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Textul butonului pentru butonul de conectare
|
||||
@override String get login => 'Autentificare';
|
||||
|
||||
@override String get logout => 'Ieșire';
|
||||
@override String get edit_profile => 'Editare profil';
|
||||
|
||||
/// Textul butonului pentru butonul de urmărire
|
||||
@override String get follow => 'Urmați';
|
||||
|
||||
/// Textul butonului pentru butonul unfollow
|
||||
@override String get unfollow => 'Unfollow';
|
||||
|
||||
@override String get mute => 'Mut';
|
||||
@override String get unmute => 'Dezactivați';
|
||||
@override String get share => 'Share';
|
||||
@override String get save => 'Salvați';
|
||||
@override String get connect => 'Conectare';
|
||||
@override String get settings => 'Setări';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedRo extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Articol de ${name}';
|
||||
@override String note_by({required Object name}) => 'Notă de la ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Transmisiune live prin ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListRo extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'În urma';
|
||||
@override String get live => 'În direct';
|
||||
@override String get planned => 'Planificate';
|
||||
@override String get ended => 'Încheiat';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapRo extends TranslationsZapEn {
|
||||
_TranslationsZapRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Sumă personalizată';
|
||||
@override String get confirm => 'Confirmați';
|
||||
@override String get comment => 'Comentariu';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorRo error = _TranslationsZapErrorRo._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileRo extends TranslationsProfileEn {
|
||||
_TranslationsProfileRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Fluxuri trecute';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginRo extends TranslationsLoginEn {
|
||||
_TranslationsLoginRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Nume utilizator';
|
||||
@override String get amber => 'Conectați-vă cu Amber';
|
||||
@override String get key => 'Autentificare cu cheie';
|
||||
@override String get create => 'Creare cont';
|
||||
@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
|
||||
class _TranslationsStreamStatusRo extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'ÎN DIRECT';
|
||||
@override String get ended => 'TERMINAT';
|
||||
@override String get planned => 'PLANIFICATE';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatRo extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT DEZACTIVAT';
|
||||
@override String disabled_timeout({required Object time}) => 'Timpul expiră: ${time}';
|
||||
|
||||
/// Mesaj de chat care afișează evenimentele de timeout
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' Timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' pentru '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Stream a încheiat footer-ul în partea de jos a chat-ului
|
||||
@override String get ended => 'STREAM ÎNCHEIAT';
|
||||
|
||||
/// Mesaj de chat care arată zapsuri de flux
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteRo write = _TranslationsStreamChatWriteRo._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeRo badge = _TranslationsStreamChatBadgeRo._(_root);
|
||||
@override late final _TranslationsStreamChatRaidRo raid = _TranslationsStreamChatRaidRo._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorRo extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Sumă personalizată invalidă';
|
||||
@override String get no_wallet => 'Nu este instalat niciun portofel Lightning';
|
||||
@override String get no_lud16 => 'Nu a fost găsită nicio adresă de fulgere';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileRo extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Nume afișat';
|
||||
@override String get about => 'Despre';
|
||||
@override String get nip05 => 'Adresa Nostr';
|
||||
@override String get lud16 => 'Adresa fulgerului';
|
||||
@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
|
||||
class _TranslationsLoginErrorRo extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteRo extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Etichetă pe caseta de introducere a mesajului de chat
|
||||
@override String get label => 'Scrieți mesajul';
|
||||
|
||||
/// Mesajul de intrare în chat afișat atunci când utilizatorul este conectat doar cu pubkey
|
||||
@override String get no_signer => 'Nu se pot scrie mesaje cu autentificarea npub';
|
||||
|
||||
/// Mesajul de intrare în chat afișat atunci când utilizatorul este deconectat
|
||||
@override String get login => 'Vă rugăm să vă autentificați pentru a trimite mesaje';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeRo extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Antet peste lista de utilizatori care au primit o insignă
|
||||
@override String get awarded_to => 'Premiat pentru:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidRo extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chat mesaj raid la un alt flux
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chat raid mesaj din alt flux
|
||||
@override String from({required Object name}) => 'RAID DE LA ${name}';
|
||||
|
||||
/// Cronometru cu numărătoare inversă pentru auto-raid
|
||||
@override String countdown({required Object time}) => 'Raiduri în ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorRo extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorRo._(TranslationsRo root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRo _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsRo {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Încărcați Avatar';
|
||||
case 'most_zapped_streamers': return 'Cele mai multe Streamers Zapped';
|
||||
case 'no_user_found': return 'Niciun utilizator găsit';
|
||||
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,
|
||||
one: '1 vizualizator',
|
||||
other: '${NumberFormat.decimalPattern('ro').format(n)} telespectatori',
|
||||
);
|
||||
case 'stream.status.live': return 'ÎN DIRECT';
|
||||
case 'stream.status.ended': return 'TERMINAT';
|
||||
case 'stream.status.planned': return 'PLANIFICATE';
|
||||
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_timeout': return ({required Object time}) => 'Timpul expiră: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' Timed out '),
|
||||
user,
|
||||
const TextSpan(text: ' pentru '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM ÎNCHEIAT';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Scrieți mesajul';
|
||||
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.badge.awarded_to': return 'Premiat pentru:';
|
||||
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.countdown': return ({required Object time}) => 'Raiduri în ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Obiectiv: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Rămase: ${amount}';
|
||||
case 'goal.complete': return 'COMPLET';
|
||||
case 'button.login': return 'Autentificare';
|
||||
case 'button.logout': return 'Ieșire';
|
||||
case 'button.edit_profile': return 'Editare profil';
|
||||
case 'button.follow': return 'Urmați';
|
||||
case 'button.unfollow': return 'Unfollow';
|
||||
case 'button.mute': return 'Mut';
|
||||
case 'button.unmute': return 'Dezactivați';
|
||||
case 'button.share': return 'Share';
|
||||
case 'button.save': return 'Salvați';
|
||||
case 'button.connect': return 'Conectare';
|
||||
case 'button.settings': return 'Setări';
|
||||
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.live': return 'În direct';
|
||||
case 'stream_list.planned': return 'Planificate';
|
||||
case 'stream_list.ended': return 'Încheiat';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Sumă personalizată';
|
||||
case 'zap.confirm': return 'Confirmați';
|
||||
case 'zap.comment': return 'Comentariu';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Sumă personalizată invalidă';
|
||||
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 'profile.past_streams': return 'Fluxuri trecute';
|
||||
case 'settings.button_profile': return 'Editare profil';
|
||||
case 'settings.button_wallet': return 'Setări portofel';
|
||||
case 'settings.profile.display_name': return 'Nume afișat';
|
||||
case 'settings.profile.about': return 'Despre';
|
||||
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.amber': return 'Conectați-vă cu Amber';
|
||||
case 'login.key': return 'Autentificare cu cheie';
|
||||
case 'login.create': return 'Creare cont';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_ru.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsRu extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsRu({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.ru,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <ru>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsRu _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsRu $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsRu(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Текст, побуждающий пользователя нажать кнопку с изображением аватара, чтобы начать загрузку
|
||||
@override String get upload_avatar => 'Загрузить аватар';
|
||||
|
||||
/// Направляясь по перечисленным верхним стримерам с помощью запс
|
||||
@override String get most_zapped_streamers => 'Самые прыткие стримеры';
|
||||
|
||||
/// Пользователь не найден при поиске
|
||||
@override String get no_user_found => 'Пользователь не найден';
|
||||
|
||||
/// Анонимный пользователь
|
||||
@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,
|
||||
one: '1 зритель',
|
||||
other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamRu stream = _TranslationsStreamRu._(_root);
|
||||
@override late final _TranslationsGoalRu goal = _TranslationsGoalRu._(_root);
|
||||
@override late final _TranslationsButtonRu button = _TranslationsButtonRu._(_root);
|
||||
@override late final _TranslationsEmbedRu embed = _TranslationsEmbedRu._(_root);
|
||||
|
||||
/// Заголовки в списках потоков по типу потока - живой/законченный/запланированный и т. д.
|
||||
@override late final _TranslationsStreamListRu stream_list = _TranslationsStreamListRu._(_root);
|
||||
|
||||
@override late final _TranslationsZapRu zap = _TranslationsZapRu._(_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 _TranslationsLiveRu live = _TranslationsLiveRu._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamRu extends TranslationsStreamEn {
|
||||
_TranslationsStreamRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusRu status = _TranslationsStreamStatusRu._(_root);
|
||||
@override String started({required Object timestamp}) => 'Начало ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} запустился!';
|
||||
@override late final _TranslationsStreamChatRu chat = _TranslationsStreamChatRu._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalRu extends TranslationsGoalEn {
|
||||
_TranslationsGoalRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Цель: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Осталось: ${amount}';
|
||||
@override String get complete => 'КОМПЛЕКТ';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonRu extends TranslationsButtonEn {
|
||||
_TranslationsButtonRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Текст кнопки для входа в систему
|
||||
@override String get login => 'Логин';
|
||||
|
||||
@override String get logout => 'Выйти';
|
||||
@override String get edit_profile => 'Редактировать профиль';
|
||||
|
||||
/// Текст кнопки для кнопки следования
|
||||
@override String get follow => 'Подписаться';
|
||||
|
||||
/// Текст кнопки для кнопки "Развернуть
|
||||
@override String get unfollow => 'Отписаться';
|
||||
|
||||
@override String get mute => 'Заглушить';
|
||||
@override String get unmute => 'Включить уведомления';
|
||||
@override String get share => 'Поделиться';
|
||||
@override String get save => 'Сохранить';
|
||||
@override String get connect => 'Подключайтесь';
|
||||
@override String get settings => 'Настройки';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedRu extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Статья ${name}';
|
||||
@override String note_by({required Object name}) => 'Заметка на сайте ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Прямая трансляция: ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListRu extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Подписки';
|
||||
@override String get live => 'Прямой эфир';
|
||||
@override String get planned => 'Запланировано';
|
||||
@override String get ended => 'Завершено';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapRu extends TranslationsZapEn {
|
||||
_TranslationsZapRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Запнуть (${name}';
|
||||
@override String get custom_amount => 'Пользовательская сумма';
|
||||
@override String get confirm => 'Подтвердить';
|
||||
@override String get comment => 'Комментарий';
|
||||
@override String button_zap_ready({required Object amount}) => 'Запнуть ${amount} сат';
|
||||
@override String get button_zap => 'Зап';
|
||||
@override String get button_open_wallet => 'Открыть в кошельке';
|
||||
@override String get button_connect_wallet => 'Подключить кошелек';
|
||||
@override String get copy => 'Скопировано в буфер обмена';
|
||||
@override late final _TranslationsZapErrorRu error = _TranslationsZapErrorRu._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileRu extends TranslationsProfileEn {
|
||||
_TranslationsProfileRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Предыдущие трансляции';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginRu extends TranslationsLoginEn {
|
||||
_TranslationsLoginRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Имя пользователя';
|
||||
@override String get amber => 'Войти с помощью Amber';
|
||||
@override String get key => 'Вход в систему с помощью ключа';
|
||||
@override String get create => 'Создать аккаунт';
|
||||
@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
|
||||
class _TranslationsStreamStatusRu extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'КОНЕЦ';
|
||||
@override String get planned => 'ПЛАНИРУЕМЫЙ';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatRu extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'ЧАТ ОТКЛЮЧЕН';
|
||||
@override String disabled_timeout({required Object time}) => 'Таймаут истекает: ${time}';
|
||||
|
||||
/// Сообщение в чате, показывающее события по тайм-ауту
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' тайм-аут '),
|
||||
user,
|
||||
const TextSpan(text: ' для '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Поток закончился в нижней части чата
|
||||
@override String get ended => 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
||||
|
||||
/// Сообщение в чате, отображающее потоковые зазоры
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' запнул '),
|
||||
amount,
|
||||
const TextSpan(text: ' сат'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteRu write = _TranslationsStreamChatWriteRu._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeRu badge = _TranslationsStreamChatBadgeRu._(_root);
|
||||
@override late final _TranslationsStreamChatRaidRu raid = _TranslationsStreamChatRaidRu._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorRu extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Недопустимая пользовательская сумма';
|
||||
@override String get no_wallet => 'Кошелек молнии не установлен';
|
||||
@override String get no_lud16 => 'Адрес молнии не найден';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileRu extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Отображаемое имя';
|
||||
@override String get about => 'О сайте';
|
||||
@override String get nip05 => 'Адрес Ностр';
|
||||
@override String get lud16 => 'Адрес молнии';
|
||||
@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
|
||||
class _TranslationsLoginErrorRu extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteRu extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Надпись на поле ввода сообщения чата
|
||||
@override String get label => 'Написать сообщение';
|
||||
|
||||
/// Сообщение о входе в чат, отображаемое при входе пользователя только с pubkey
|
||||
@override String get no_signer => 'Невозможно писать сообщения с логином npub';
|
||||
|
||||
/// Сообщение о входе в чат, отображаемое при выходе пользователя из системы
|
||||
@override String get login => 'Пожалуйста, войдите в систему, чтобы отправлять сообщения';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeRu extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Заголовок над списком пользователей, награжденных значком
|
||||
@override String get awarded_to => 'Награждается:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidRu extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Сообщение о рейде в чате в другой поток
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Сообщение о рейде в чате из другого потока
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Таймер обратного отсчета для автопоездки
|
||||
@override String countdown({required Object time}) => 'Рейды в ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorRu extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorRu._(TranslationsRu root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsRu _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsRu {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Загрузить аватар';
|
||||
case 'most_zapped_streamers': return 'Самые прыткие стримеры';
|
||||
case 'no_user_found': 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,
|
||||
one: '1 зритель',
|
||||
other: '${NumberFormat.decimalPattern('ru').format(n)} зрителей',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'КОНЕЦ';
|
||||
case 'stream.status.planned': return 'ПЛАНИРУЕМЫЙ';
|
||||
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_timeout': return ({required Object time}) => 'Таймаут истекает: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' тайм-аут '),
|
||||
user,
|
||||
const TextSpan(text: ' для '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'ТРАНСЛЯЦИЯ ОКОНЧЕНА';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' запнул '),
|
||||
amount,
|
||||
const TextSpan(text: ' сат'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Написать сообщение';
|
||||
case 'stream.chat.write.no_signer': return 'Невозможно писать сообщения с логином npub';
|
||||
case 'stream.chat.write.login': return 'Пожалуйста, войдите в систему, чтобы отправлять сообщения';
|
||||
case 'stream.chat.badge.awarded_to': return 'Награждается:';
|
||||
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}) => 'Рейды в ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Цель: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Осталось: ${amount}';
|
||||
case 'goal.complete': return 'КОМПЛЕКТ';
|
||||
case 'button.login': return 'Логин';
|
||||
case 'button.logout': return 'Выйти';
|
||||
case 'button.edit_profile': return 'Редактировать профиль';
|
||||
case 'button.follow': return 'Подписаться';
|
||||
case 'button.unfollow': return 'Отписаться';
|
||||
case 'button.mute': return 'Заглушить';
|
||||
case 'button.unmute': return 'Включить уведомления';
|
||||
case 'button.share': return 'Поделиться';
|
||||
case 'button.save': return 'Сохранить';
|
||||
case 'button.connect': return 'Подключайтесь';
|
||||
case 'button.settings': return 'Настройки';
|
||||
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.live': return 'Прямой эфир';
|
||||
case 'stream_list.planned': return 'Запланировано';
|
||||
case 'stream_list.ended': return 'Завершено';
|
||||
case 'zap.title': return ({required Object name}) => 'Запнуть (${name}';
|
||||
case 'zap.custom_amount': return 'Пользовательская сумма';
|
||||
case 'zap.confirm': return 'Подтвердить';
|
||||
case 'zap.comment': return 'Комментарий';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Запнуть ${amount} сат';
|
||||
case 'zap.button_zap': return 'Зап';
|
||||
case 'zap.button_open_wallet': return 'Открыть в кошельке';
|
||||
case 'zap.button_connect_wallet': return 'Подключить кошелек';
|
||||
case 'zap.copy': return 'Скопировано в буфер обмена';
|
||||
case 'zap.error.invalid_custom_amount': return 'Недопустимая пользовательская сумма';
|
||||
case 'zap.error.no_wallet': return 'Кошелек молнии не установлен';
|
||||
case 'zap.error.no_lud16': return 'Адрес молнии не найден';
|
||||
case 'profile.past_streams': return 'Предыдущие трансляции';
|
||||
case 'settings.button_profile': return 'Редактировать профиль';
|
||||
case 'settings.button_wallet': return 'Настройки кошелька';
|
||||
case 'settings.profile.display_name': return 'Отображаемое имя';
|
||||
case 'settings.profile.about': 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.amber': return 'Войти с помощью Amber';
|
||||
case 'login.key': return 'Вход в систему с помощью ключа';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_sv.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsSv extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsSv({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.sv,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <sv>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsSv _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsSv $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsSv(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// 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';
|
||||
|
||||
/// Rubrik över listade topp streamers av zaps
|
||||
@override String get most_zapped_streamers => 'De flest zappade streamers';
|
||||
|
||||
/// Ingen användare hittades vid sökning
|
||||
@override String get no_user_found => 'Ingen användare hittades';
|
||||
|
||||
/// En anonym användare
|
||||
@override String get anon => 'Anno';
|
||||
|
||||
@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,
|
||||
one: '1 tittare',
|
||||
other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamSv stream = _TranslationsStreamSv._(_root);
|
||||
@override late final _TranslationsGoalSv goal = _TranslationsGoalSv._(_root);
|
||||
@override late final _TranslationsButtonSv button = _TranslationsButtonSv._(_root);
|
||||
@override late final _TranslationsEmbedSv embed = _TranslationsEmbedSv._(_root);
|
||||
|
||||
/// Rubriker på strömlistor efter strömtyp live/avslutad/planerad etc.
|
||||
@override late final _TranslationsStreamListSv stream_list = _TranslationsStreamListSv._(_root);
|
||||
|
||||
@override late final _TranslationsZapSv zap = _TranslationsZapSv._(_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 _TranslationsLiveSv live = _TranslationsLiveSv._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamSv extends TranslationsStreamEn {
|
||||
_TranslationsStreamSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusSv status = _TranslationsStreamStatusSv._(_root);
|
||||
@override String started({required Object timestamp}) => 'Startad ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} gick live!';
|
||||
@override late final _TranslationsStreamChatSv chat = _TranslationsStreamChatSv._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalSv extends TranslationsGoalEn {
|
||||
_TranslationsGoalSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Mål: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Kvarvarande: ${amount}';
|
||||
@override String get complete => 'KOMPLETT';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonSv extends TranslationsButtonEn {
|
||||
_TranslationsButtonSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Knapptext för inloggningsknappen
|
||||
@override String get login => 'Logga in';
|
||||
|
||||
@override String get logout => 'Logga ut';
|
||||
@override String get edit_profile => 'Redigera profil';
|
||||
|
||||
/// Knapptext för följ-knappen
|
||||
@override String get follow => 'Följ';
|
||||
|
||||
/// Knapptext för sluta följa knappen
|
||||
@override String get unfollow => 'Sluta följa';
|
||||
|
||||
@override String get mute => 'Tysta';
|
||||
@override String get unmute => 'Avtysta';
|
||||
@override String get share => 'Dela';
|
||||
@override String get save => 'Spara';
|
||||
@override String get connect => 'Anslut';
|
||||
@override String get settings => 'Inställningar';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedSv extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Artikel av ${name}';
|
||||
@override String note_by({required Object name}) => 'Anteckning av ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Direktsändning via ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListSv extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Följer';
|
||||
@override String get live => 'Live';
|
||||
@override String get planned => 'Planerade';
|
||||
@override String get ended => 'Avslutade';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapSv extends TranslationsZapEn {
|
||||
_TranslationsZapSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Anpassat belopp';
|
||||
@override String get confirm => 'Bekräfta';
|
||||
@override String get comment => 'Kommentar';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorSv error = _TranslationsZapErrorSv._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileSv extends TranslationsProfileEn {
|
||||
_TranslationsProfileSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Tidigare streamar';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginSv extends TranslationsLoginEn {
|
||||
_TranslationsLoginSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Användarnamn';
|
||||
@override String get amber => 'Logga in med Amber';
|
||||
@override String get key => 'Logga in med nyckel';
|
||||
@override String get create => 'Skapa konto';
|
||||
@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
|
||||
class _TranslationsStreamStatusSv extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'LIVE';
|
||||
@override String get ended => 'AVSLUTAD';
|
||||
@override String get planned => 'PLANERADE';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatSv extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'CHAT AVSTÄNGD';
|
||||
@override String disabled_timeout({required Object time}) => 'Tidsgränsen går ut: ${time}';
|
||||
|
||||
/// Chattmeddelande som visar timeout-händelser
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' tidsbegränsad '),
|
||||
user,
|
||||
const TextSpan(text: ' för '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Streama slutade sidfot längst ned i chatten
|
||||
@override String get ended => 'STREAM AVSLUTAD';
|
||||
|
||||
/// Chattmeddelande som visar strömavbrott
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteSv write = _TranslationsStreamChatWriteSv._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeSv badge = _TranslationsStreamChatBadgeSv._(_root);
|
||||
@override late final _TranslationsStreamChatRaidSv raid = _TranslationsStreamChatRaidSv._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorSv extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Ogiltigt anpassat belopp';
|
||||
@override String get no_wallet => 'Ingen blixtplånbok installerad';
|
||||
@override String get no_lud16 => 'Ingen blixtadress hittades';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileSv extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Visa namn';
|
||||
@override String get about => 'Om';
|
||||
@override String get nip05 => 'Nostr adress';
|
||||
@override String get lud16 => 'Lightning-adress';
|
||||
@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
|
||||
class _TranslationsLoginErrorSv extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteSv extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Etikett på inmatningsrutan för chattmeddelanden
|
||||
@override String get label => 'Skriv meddelande';
|
||||
|
||||
/// 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 n-pub inloggning';
|
||||
|
||||
/// Chattinmatningsmeddelande som visas när användaren är utloggad
|
||||
@override String get login => 'Logga in för att skicka meddelanden';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeSv extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Rubrik över listan över användare som tilldelas ett märke
|
||||
@override String get awarded_to => 'Tilldelas till:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidSv extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Chatt raid meddelande till en annan ström
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Chatt raid meddelande från en annan ström
|
||||
@override String from({required Object name}) => 'RAID FRÅN ${name}';
|
||||
|
||||
/// Nedräkningstimer för auto- radiering
|
||||
@override String countdown({required Object time}) => 'Radiering i ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorSv extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorSv._(TranslationsSv root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsSv _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsSv {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Ladda upp avatar';
|
||||
case 'most_zapped_streamers': return 'De flest zappade streamers';
|
||||
case 'no_user_found': return 'Ingen användare hittades';
|
||||
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,
|
||||
one: '1 tittare',
|
||||
other: '${NumberFormat.decimalPattern('sv').format(n)} tittare',
|
||||
);
|
||||
case 'stream.status.live': return 'LIVE';
|
||||
case 'stream.status.ended': return 'AVSLUTAD';
|
||||
case 'stream.status.planned': return 'PLANERADE';
|
||||
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_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}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' tidsbegränsad '),
|
||||
user,
|
||||
const TextSpan(text: ' för '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'STREAM AVSLUTAD';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Skriv meddelande';
|
||||
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.badge.awarded_to': return 'Tilldelas till:';
|
||||
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.countdown': return ({required Object time}) => 'Radiering i ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Mål: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Kvarvarande: ${amount}';
|
||||
case 'goal.complete': return 'KOMPLETT';
|
||||
case 'button.login': return 'Logga in';
|
||||
case 'button.logout': return 'Logga ut';
|
||||
case 'button.edit_profile': return 'Redigera profil';
|
||||
case 'button.follow': return 'Följ';
|
||||
case 'button.unfollow': return 'Sluta följa';
|
||||
case 'button.mute': return 'Tysta';
|
||||
case 'button.unmute': return 'Avtysta';
|
||||
case 'button.share': return 'Dela';
|
||||
case 'button.save': return 'Spara';
|
||||
case 'button.connect': return 'Anslut';
|
||||
case 'button.settings': return 'Inställningar';
|
||||
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.live': return 'Live';
|
||||
case 'stream_list.planned': return 'Planerade';
|
||||
case 'stream_list.ended': return 'Avslutade';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Anpassat belopp';
|
||||
case 'zap.confirm': return 'Bekräfta';
|
||||
case 'zap.comment': return 'Kommentar';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.error.invalid_custom_amount': return 'Ogiltigt anpassat belopp';
|
||||
case 'zap.error.no_wallet': return 'Ingen blixtplånbok installerad';
|
||||
case 'zap.error.no_lud16': return 'Ingen blixtadress hittades';
|
||||
case 'profile.past_streams': return 'Tidigare streamar';
|
||||
case 'settings.button_profile': return 'Redigera profil';
|
||||
case 'settings.button_wallet': return 'Inställningar för plånbok';
|
||||
case 'settings.profile.display_name': return 'Visa namn';
|
||||
case 'settings.profile.about': return 'Om';
|
||||
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.amber': return 'Logga in med Amber';
|
||||
case 'login.key': return 'Logga in med nyckel';
|
||||
case 'login.create': return 'Skapa konto';
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
473
lib/i18n/strings_tr.g.dart
Normal file
@ -0,0 +1,473 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsTr extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsTr({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.tr,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <tr>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsTr _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsTr $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsTr(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Kullanıcının yüklemeye başlamak için avatar yer tutucusuna basmasını isteyen metin
|
||||
@override String get upload_avatar => 'Avatar Yükle';
|
||||
|
||||
/// Zaps tarafından listelenen üst flamalar üzerinde ilerliyor
|
||||
@override String get most_zapped_streamers => 'En Çok Zaplanan Flamalar';
|
||||
|
||||
/// Arama yaparken kullanıcı bulunamadı
|
||||
@override String get no_user_found => 'Kullanıcı bulunamadı';
|
||||
|
||||
/// Anonim bir kullanıcı
|
||||
@override String get anon => 'Anon';
|
||||
|
||||
/// Akışı izleyenlerin sayısı
|
||||
@override String viewers({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
||||
one: '1 izleyici',
|
||||
other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamTr stream = _TranslationsStreamTr._(_root);
|
||||
@override late final _TranslationsGoalTr goal = _TranslationsGoalTr._(_root);
|
||||
@override late final _TranslationsButtonTr button = _TranslationsButtonTr._(_root);
|
||||
@override late final _TranslationsEmbedTr embed = _TranslationsEmbedTr._(_root);
|
||||
|
||||
/// Akış türüne göre akış listelerindeki başlıklar canlı/bitmiş/planlanan vb.
|
||||
@override late final _TranslationsStreamListTr stream_list = _TranslationsStreamListTr._(_root);
|
||||
|
||||
@override late final _TranslationsZapTr zap = _TranslationsZapTr._(_root);
|
||||
@override late final _TranslationsProfileTr profile = _TranslationsProfileTr._(_root);
|
||||
@override late final _TranslationsSettingsTr settings = _TranslationsSettingsTr._(_root);
|
||||
@override late final _TranslationsLoginTr login = _TranslationsLoginTr._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamTr extends TranslationsStreamEn {
|
||||
_TranslationsStreamTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusTr status = _TranslationsStreamStatusTr._(_root);
|
||||
@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);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalTr extends TranslationsGoalEn {
|
||||
_TranslationsGoalTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Hedef: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Kalan: ${amount}';
|
||||
@override String get complete => 'TAMAMLANDI';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonTr extends TranslationsButtonEn {
|
||||
_TranslationsButtonTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Oturum açma düğmesi için düğme metni
|
||||
@override String get login => 'Giriş';
|
||||
|
||||
@override String get logout => 'Oturum Kapatma';
|
||||
@override String get edit_profile => 'Profil Düzenle';
|
||||
|
||||
/// Takip et düğmesi için düğme metni
|
||||
@override String get follow => 'Takip et';
|
||||
|
||||
/// Takibi bırak düğmesi için düğme metni
|
||||
@override String get unfollow => 'Takibi bırak';
|
||||
|
||||
@override String get mute => 'Sessiz';
|
||||
@override String get unmute => 'Sesi aç';
|
||||
@override String get share => 'Paylaş';
|
||||
@override String get save => 'Kaydet';
|
||||
@override String get connect => 'Bağlan';
|
||||
@override String get settings => 'Ayarlar';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedTr extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Makale ${name}';
|
||||
@override String note_by({required Object name}) => 'Not: ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Canlı yayın: ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListTr extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Aşağıdaki';
|
||||
@override String get live => 'Canlı';
|
||||
@override String get planned => 'Planlanmış';
|
||||
@override String get ended => 'Bitti';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapTr extends TranslationsZapEn {
|
||||
_TranslationsZapTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Özel Tutar';
|
||||
@override String get confirm => 'Onaylayın';
|
||||
@override String get comment => 'Yorum';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap';
|
||||
@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 late final _TranslationsZapErrorTr error = _TranslationsZapErrorTr._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileTr extends TranslationsProfileEn {
|
||||
_TranslationsProfileTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Geçmiş Akışlar';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginTr extends TranslationsLoginEn {
|
||||
_TranslationsLoginTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Kullanıcı Adı';
|
||||
@override String get amber => 'Amber ile Giriş Yapın';
|
||||
@override String get key => 'Anahtar ile Giriş Yapın';
|
||||
@override String get create => 'Hesap Oluştur';
|
||||
@override late final _TranslationsLoginErrorTr error = _TranslationsLoginErrorTr._(_root);
|
||||
}
|
||||
|
||||
// Path: stream.status
|
||||
class _TranslationsStreamStatusTr extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'CANLI';
|
||||
@override String get ended => 'SONLANDI';
|
||||
@override String get planned => 'PLANLANMIŞ';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatTr extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'SOHBET DEVRE DIŞI';
|
||||
@override String disabled_timeout({required Object time}) => 'Zaman aşımı sona eriyor: ${time}';
|
||||
|
||||
/// Zaman aşımı olaylarını gösteren sohbet mesajı
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' zaman aşımına uğradı '),
|
||||
user,
|
||||
const TextSpan(text: ' '),
|
||||
time,
|
||||
const TextSpan(text: 'için'),
|
||||
]);
|
||||
|
||||
/// Sohbetin alt kısmında akış sona erdi altbilgisi
|
||||
@override String get ended => 'YAYIN SONLANDI';
|
||||
|
||||
/// Akış zaplarını gösteren sohbet mesajı
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteTr write = _TranslationsStreamChatWriteTr._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeTr badge = _TranslationsStreamChatBadgeTr._(_root);
|
||||
@override late final _TranslationsStreamChatRaidTr raid = _TranslationsStreamChatRaidTr._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorTr extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Geçersiz özel tutar';
|
||||
@override String get no_wallet => 'Lightning cüzdan yüklü değil';
|
||||
@override String get no_lud16 => 'Yıldırım adresi bulunamadı';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileTr extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Ekran Adı';
|
||||
@override String get about => 'Hakkında';
|
||||
@override String get nip05 => 'Nostr Adres';
|
||||
@override String get lud16 => 'Yıldırım Adres';
|
||||
@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
|
||||
class _TranslationsLoginErrorTr extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_key => 'Geçersiz anahtar';
|
||||
}
|
||||
|
||||
// Path: stream.chat.write
|
||||
class _TranslationsStreamChatWriteTr extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Sohbet mesajı giriş kutusundaki etiket
|
||||
@override String get label => 'Mesaj yaz';
|
||||
|
||||
/// Kullanıcı yalnızca pubkey ile oturum açtığında gösterilen sohbet giriş mesajı
|
||||
@override String get no_signer => 'Npub girişi ile mesaj yazılamıyor';
|
||||
|
||||
/// Kullanıcı oturumu kapatıldığında gösterilen sohbet giriş mesajı
|
||||
@override String get login => 'Mesaj göndermek için lütfen giriş yapın';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeTr extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Rozet verilen kullanıcıların listesi üzerinde başlık
|
||||
@override String get awarded_to => 'Ödüllendirildi:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidTr extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Başka bir akışa sohbet baskını mesajı
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Başka bir akıştan sohbet baskını mesajı
|
||||
@override String from({required Object name}) => '${name} ADRESINDEN RAID';
|
||||
|
||||
/// Otomatik sürüş için geri sayım sayacı
|
||||
@override String countdown({required Object time}) => '${time}adresinde baskın';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorTr extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorTr._(TranslationsTr root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsTr _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsTr {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Avatar Yükle';
|
||||
case 'most_zapped_streamers': return 'En Çok Zaplanan Flamalar';
|
||||
case 'no_user_found': return 'Kullanıcı bulunamadı';
|
||||
case 'anon': return 'Anon';
|
||||
case 'viewers': return ({required num n}) => (_root.$meta.cardinalResolver ?? PluralResolvers.cardinal('tr'))(n,
|
||||
one: '1 izleyici',
|
||||
other: '${NumberFormat.decimalPattern('tr').format(n)} izleyiciler',
|
||||
);
|
||||
case 'stream.status.live': return 'CANLI';
|
||||
case 'stream.status.ended': return 'SONLANDI';
|
||||
case 'stream.status.planned': return 'PLANLANMIŞ';
|
||||
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_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}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' zaman aşımına uğradı '),
|
||||
user,
|
||||
const TextSpan(text: ' '),
|
||||
time,
|
||||
const TextSpan(text: 'için'),
|
||||
]);
|
||||
case 'stream.chat.ended': return 'YAYIN SONLANDI';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Mesaj yaz';
|
||||
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.badge.awarded_to': return 'Ödüllendirildi:';
|
||||
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.countdown': return ({required Object time}) => '${time}adresinde baskın';
|
||||
case 'goal.title': return ({required Object amount}) => 'Hedef: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Kalan: ${amount}';
|
||||
case 'goal.complete': return 'TAMAMLANDI';
|
||||
case 'button.login': return 'Giriş';
|
||||
case 'button.logout': return 'Oturum Kapatma';
|
||||
case 'button.edit_profile': return 'Profil Düzenle';
|
||||
case 'button.follow': return 'Takip et';
|
||||
case 'button.unfollow': return 'Takibi bırak';
|
||||
case 'button.mute': return 'Sessiz';
|
||||
case 'button.unmute': return 'Sesi aç';
|
||||
case 'button.share': return 'Paylaş';
|
||||
case 'button.save': return 'Kaydet';
|
||||
case 'button.connect': return 'Bağlan';
|
||||
case 'button.settings': return 'Ayarlar';
|
||||
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.live': return 'Canlı';
|
||||
case 'stream_list.planned': return 'Planlanmış';
|
||||
case 'stream_list.ended': return 'Bitti';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Özel Tutar';
|
||||
case 'zap.confirm': return 'Onaylayın';
|
||||
case 'zap.comment': return 'Yorum';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap';
|
||||
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.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_lud16': return 'Yıldırım adresi bulunamadı';
|
||||
case 'profile.past_streams': return 'Geçmiş Akışlar';
|
||||
case 'settings.button_profile': return 'Profil Düzenle';
|
||||
case 'settings.button_wallet': return 'Cüzdan Ayarları';
|
||||
case 'settings.profile.display_name': return 'Ekran Adı';
|
||||
case 'settings.profile.about': return 'Hakkında';
|
||||
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.amber': return 'Amber ile Giriş Yapın';
|
||||
case 'login.key': return 'Anahtar ile Giriş Yapın';
|
||||
case 'login.create': return 'Hesap Oluştur';
|
||||
case 'login.error.invalid_key': return 'Geçersiz anahtar';
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_uk.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsUk extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsUk({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.uk,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <uk>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsUk _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsUk $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsUk(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// Текст, що пропонує користувачеві натиснути на заповнювач аватара, щоб почати завантаження
|
||||
@override String get upload_avatar => 'Завантажити аватар';
|
||||
|
||||
/// Перехід до переліку найкращих стрімерів за запитами
|
||||
@override String get most_zapped_streamers => 'Більшість стримерів, які були під напругою';
|
||||
|
||||
/// Користувача не знайдено при пошуку
|
||||
@override String get no_user_found => 'Користувача не знайдено';
|
||||
|
||||
/// Анонімний користувач
|
||||
@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,
|
||||
one: '1 глядач',
|
||||
other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamUk stream = _TranslationsStreamUk._(_root);
|
||||
@override late final _TranslationsGoalUk goal = _TranslationsGoalUk._(_root);
|
||||
@override late final _TranslationsButtonUk button = _TranslationsButtonUk._(_root);
|
||||
@override late final _TranslationsEmbedUk embed = _TranslationsEmbedUk._(_root);
|
||||
|
||||
/// Заголовки у списках трансляцій за типом трансляції: наживо/закінчилася/запланована тощо.
|
||||
@override late final _TranslationsStreamListUk stream_list = _TranslationsStreamListUk._(_root);
|
||||
|
||||
@override late final _TranslationsZapUk zap = _TranslationsZapUk._(_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 _TranslationsLiveUk live = _TranslationsLiveUk._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamUk extends TranslationsStreamEn {
|
||||
_TranslationsStreamUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusUk status = _TranslationsStreamStatusUk._(_root);
|
||||
@override String started({required Object timestamp}) => 'Запустив ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} запрацював!';
|
||||
@override late final _TranslationsStreamChatUk chat = _TranslationsStreamChatUk._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalUk extends TranslationsGoalEn {
|
||||
_TranslationsGoalUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => 'Мета: ${amount}';
|
||||
@override String remaining({required Object amount}) => 'Залишилося: ${amount}';
|
||||
@override String get complete => 'ЗАВЕРШИТИ';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonUk extends TranslationsButtonEn {
|
||||
_TranslationsButtonUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Текст для кнопки входу в систему
|
||||
@override String get login => 'Логін';
|
||||
|
||||
@override String get logout => 'Вийти з системи';
|
||||
@override String get edit_profile => 'Редагувати профіль';
|
||||
|
||||
/// Текст для кнопки переходу
|
||||
@override String get follow => 'Підпишіться';
|
||||
|
||||
/// Текст для кнопки відписки
|
||||
@override String get unfollow => 'Скасувати відповідь';
|
||||
|
||||
@override String get mute => 'Вимкнути звук.';
|
||||
@override String get unmute => 'Увімкнути звук.';
|
||||
@override String get share => 'Поділіться';
|
||||
@override String get save => 'Зберегти';
|
||||
@override String get connect => 'Підключіться';
|
||||
@override String get settings => 'Налаштування';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedUk extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_by({required Object name}) => 'Стаття за посиланням ${name}';
|
||||
@override String note_by({required Object name}) => 'Примітка ${name}';
|
||||
@override String live_stream_by({required Object name}) => 'Пряма трансляція на ${name}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListUk extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => 'Після того, як';
|
||||
@override String get live => 'Наживо';
|
||||
@override String get planned => 'Заплановано';
|
||||
@override String get ended => 'Закінчилося';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapUk extends TranslationsZapEn {
|
||||
_TranslationsZapUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => 'Zap ${name}';
|
||||
@override String get custom_amount => 'Нестандартна сума';
|
||||
@override String get confirm => 'Підтвердити';
|
||||
@override String get comment => 'Коментар';
|
||||
@override String button_zap_ready({required Object amount}) => 'Zap ${amount} sats';
|
||||
@override String get button_zap => 'Zap!';
|
||||
@override String get button_open_wallet => 'Відкрити в Гаманці';
|
||||
@override String get button_connect_wallet => 'Підключити гаманець';
|
||||
@override String get copy => 'Скопійовано в буфер обміну';
|
||||
@override late final _TranslationsZapErrorUk error = _TranslationsZapErrorUk._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileUk extends TranslationsProfileEn {
|
||||
_TranslationsProfileUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => 'Минулі потоки';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginUk extends TranslationsLoginEn {
|
||||
_TranslationsLoginUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => 'Ім\'я користувача';
|
||||
@override String get amber => 'Увійдіть за допомогою Amber';
|
||||
@override String get key => 'Увійдіть за допомогою ключа';
|
||||
@override String get create => 'Створити обліковий запис';
|
||||
@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
|
||||
class _TranslationsStreamStatusUk extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => 'НАЖИВО';
|
||||
@override String get ended => 'ЗАКІНЧЕНО';
|
||||
@override String get planned => 'ЗАПЛАНОВАНО';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatUk extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => 'ЧАТ ВІДКЛЮЧЕНО';
|
||||
@override String disabled_timeout({required Object time}) => 'Тайм-аут закінчився: ${time}';
|
||||
|
||||
/// Повідомлення в чаті про події тайм-ауту
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' таймінг '),
|
||||
user,
|
||||
const TextSpan(text: ' для '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// Нижній колонтитул кінця потоку внизу чату
|
||||
@override String get ended => 'СТРІМ ЗАКІНЧИВСЯ';
|
||||
|
||||
/// Повідомлення в чаті, що показує затримки потоку
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteUk write = _TranslationsStreamChatWriteUk._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeUk badge = _TranslationsStreamChatBadgeUk._(_root);
|
||||
@override late final _TranslationsStreamChatRaidUk raid = _TranslationsStreamChatRaidUk._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorUk extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => 'Неправильна сума замовлення';
|
||||
@override String get no_wallet => 'Не встановлено гаманець-блискавку';
|
||||
@override String get no_lud16 => 'Адреса блискавки не знайдена';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileUk extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => 'Ім\'я користувача';
|
||||
@override String get about => 'Про';
|
||||
@override String get nip05 => 'Nostr Адреса';
|
||||
@override String get lud16 => 'Блискавична адреса';
|
||||
@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
|
||||
class _TranslationsLoginErrorUk extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteUk extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Мітка у вікні введення повідомлення чату
|
||||
@override String get label => 'Написати повідомлення';
|
||||
|
||||
/// Повідомлення в чаті, що відображається, коли користувач увійшов до системи лише з ключем pubkey
|
||||
@override String get no_signer => 'Неможливо писати повідомлення з логіном npub';
|
||||
|
||||
/// Повідомлення для введення в чаті, що відображається, коли користувач вийшов з системи
|
||||
@override String get login => 'Будь ласка, авторизуйтесь, щоб надсилати повідомлення';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeUk extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Над списком користувачів, яким присвоєно бейдж
|
||||
@override String get awarded_to => 'Нагороджується:';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidUk extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// Повідомлення про рейд чату в інший потік
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// Повідомлення про наліт на чат з іншого потоку
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// Таймер зворотного відліку для авторейду
|
||||
@override String countdown({required Object time}) => 'Рейд у ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorUk extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorUk._(TranslationsUk root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsUk _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsUk {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return 'Завантажити аватар';
|
||||
case 'most_zapped_streamers': return 'Більшість стримерів, які були під напругою';
|
||||
case 'no_user_found': 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,
|
||||
one: '1 глядач',
|
||||
other: '${NumberFormat.decimalPattern('uk').format(n)} глядачів',
|
||||
);
|
||||
case 'stream.status.live': return 'НАЖИВО';
|
||||
case 'stream.status.ended': return 'ЗАКІНЧЕНО';
|
||||
case 'stream.status.planned': return 'ЗАПЛАНОВАНО';
|
||||
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_timeout': return ({required Object time}) => 'Тайм-аут закінчився: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' таймінг '),
|
||||
user,
|
||||
const TextSpan(text: ' для '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return 'СТРІМ ЗАКІНЧИВСЯ';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' zapped '),
|
||||
amount,
|
||||
const TextSpan(text: ' sats'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return 'Написати повідомлення';
|
||||
case 'stream.chat.write.no_signer': return 'Неможливо писати повідомлення з логіном npub';
|
||||
case 'stream.chat.write.login': return 'Будь ласка, авторизуйтесь, щоб надсилати повідомлення';
|
||||
case 'stream.chat.badge.awarded_to': return 'Нагороджується:';
|
||||
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}) => 'Рейд у ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => 'Мета: ${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => 'Залишилося: ${amount}';
|
||||
case 'goal.complete': return 'ЗАВЕРШИТИ';
|
||||
case 'button.login': return 'Логін';
|
||||
case 'button.logout': return 'Вийти з системи';
|
||||
case 'button.edit_profile': return 'Редагувати профіль';
|
||||
case 'button.follow': return 'Підпишіться';
|
||||
case 'button.unfollow': return 'Скасувати відповідь';
|
||||
case 'button.mute': return 'Вимкнути звук.';
|
||||
case 'button.unmute': return 'Увімкнути звук.';
|
||||
case 'button.share': return 'Поділіться';
|
||||
case 'button.save': return 'Зберегти';
|
||||
case 'button.connect': return 'Підключіться';
|
||||
case 'button.settings': return 'Налаштування';
|
||||
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.live': return 'Наживо';
|
||||
case 'stream_list.planned': return 'Заплановано';
|
||||
case 'stream_list.ended': return 'Закінчилося';
|
||||
case 'zap.title': return ({required Object name}) => 'Zap ${name}';
|
||||
case 'zap.custom_amount': return 'Нестандартна сума';
|
||||
case 'zap.confirm': return 'Підтвердити';
|
||||
case 'zap.comment': return 'Коментар';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => 'Zap ${amount} sats';
|
||||
case 'zap.button_zap': return 'Zap!';
|
||||
case 'zap.button_open_wallet': return 'Відкрити в Гаманці';
|
||||
case 'zap.button_connect_wallet': return 'Підключити гаманець';
|
||||
case 'zap.copy': return 'Скопійовано в буфер обміну';
|
||||
case 'zap.error.invalid_custom_amount': return 'Неправильна сума замовлення';
|
||||
case 'zap.error.no_wallet': return 'Не встановлено гаманець-блискавку';
|
||||
case 'zap.error.no_lud16': return 'Адреса блискавки не знайдена';
|
||||
case 'profile.past_streams': return 'Минулі потоки';
|
||||
case 'settings.button_profile': return 'Редагувати профіль';
|
||||
case 'settings.button_wallet': return 'Налаштування гаманця';
|
||||
case 'settings.profile.display_name': return 'Ім\'я користувача';
|
||||
case 'settings.profile.about': 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.amber': return 'Увійдіть за допомогою Amber';
|
||||
case 'login.key': return 'Увійдіть за допомогою ключа';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
532
lib/i18n/strings_zh.g.dart
Normal file
@ -0,0 +1,532 @@
|
||||
///
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'strings.g.dart';
|
||||
|
||||
// Path: <root>
|
||||
class TranslationsZh extends Translations {
|
||||
/// You can call this constructor and build your own translation instance of this locale.
|
||||
/// Constructing via the enum [AppLocale.build] is preferred.
|
||||
TranslationsZh({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.zh,
|
||||
overrides: overrides ?? {},
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
),
|
||||
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
|
||||
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
|
||||
$meta.setFlatMapFunction(_flatMapFunction);
|
||||
}
|
||||
|
||||
/// Metadata for the translations of <zh>.
|
||||
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
||||
|
||||
/// Access flat map
|
||||
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
|
||||
|
||||
late final TranslationsZh _root = this; // ignore: unused_field
|
||||
|
||||
@override
|
||||
TranslationsZh $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsZh(meta: meta ?? this.$meta);
|
||||
|
||||
// Translations
|
||||
|
||||
/// 提示使用者點擊頭像占位符開始上傳的文字
|
||||
@override String get upload_avatar => '上傳頭像';
|
||||
|
||||
/// ヘッドランドから列されている頂幡からずった
|
||||
@override String get most_zapped_streamers => '最多被擊中的溪流';
|
||||
|
||||
/// 搜尋時未找到使用者
|
||||
@override String get no_user_found => '未找到使用者';
|
||||
|
||||
/// 匿名使用者
|
||||
@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,
|
||||
one: '1 個檢視器',
|
||||
other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
|
||||
);
|
||||
|
||||
@override late final _TranslationsStreamZh stream = _TranslationsStreamZh._(_root);
|
||||
@override late final _TranslationsGoalZh goal = _TranslationsGoalZh._(_root);
|
||||
@override late final _TranslationsButtonZh button = _TranslationsButtonZh._(_root);
|
||||
@override late final _TranslationsEmbedZh embed = _TranslationsEmbedZh._(_root);
|
||||
|
||||
/// 串流清單上的標題依串流類型為現場/結束/計劃中等。
|
||||
@override late final _TranslationsStreamListZh stream_list = _TranslationsStreamListZh._(_root);
|
||||
|
||||
@override late final _TranslationsZapZh zap = _TranslationsZapZh._(_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 _TranslationsLiveZh live = _TranslationsLiveZh._(_root);
|
||||
}
|
||||
|
||||
// Path: stream
|
||||
class _TranslationsStreamZh extends TranslationsStreamEn {
|
||||
_TranslationsStreamZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override late final _TranslationsStreamStatusZh status = _TranslationsStreamStatusZh._(_root);
|
||||
@override String started({required Object timestamp}) => '開始 ${timestamp}';
|
||||
@override String notification({required Object name}) => '${name} 已啟用!';
|
||||
@override late final _TranslationsStreamChatZh chat = _TranslationsStreamChatZh._(_root);
|
||||
}
|
||||
|
||||
// Path: goal
|
||||
class _TranslationsGoalZh extends TranslationsGoalEn {
|
||||
_TranslationsGoalZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object amount}) => '目標:${amount}';
|
||||
@override String remaining({required Object amount}) => '剩餘: ${amount}';
|
||||
@override String get complete => '完成';
|
||||
}
|
||||
|
||||
// Path: button
|
||||
class _TranslationsButtonZh extends TranslationsButtonEn {
|
||||
_TranslationsButtonZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 登入按鈕的按鈕文字
|
||||
@override String get login => '登錄';
|
||||
|
||||
@override String get logout => '登出';
|
||||
@override String get edit_profile => '編輯個人檔案';
|
||||
|
||||
/// 跟蹤按鈕的按鈕文字
|
||||
@override String get follow => '關注';
|
||||
|
||||
/// 取消關注按鈕的按鈕文字
|
||||
@override String get unfollow => '取消關注';
|
||||
|
||||
@override String get mute => '靜音';
|
||||
@override String get unmute => '解除静音';
|
||||
@override String get share => '分享';
|
||||
@override String get save => '保存';
|
||||
@override String get connect => '連接';
|
||||
@override String get settings => '設定';
|
||||
}
|
||||
|
||||
// Path: embed
|
||||
class _TranslationsEmbedZh extends TranslationsEmbedEn {
|
||||
_TranslationsEmbedZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String article_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}';
|
||||
}
|
||||
|
||||
// Path: stream_list
|
||||
class _TranslationsStreamListZh extends TranslationsStreamListEn {
|
||||
_TranslationsStreamListZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get following => '已關注';
|
||||
@override String get live => '直播';
|
||||
@override String get planned => '已計畫';
|
||||
@override String get ended => '已結束';
|
||||
}
|
||||
|
||||
// Path: zap
|
||||
class _TranslationsZapZh extends TranslationsZapEn {
|
||||
_TranslationsZapZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String title({required Object name}) => '打閃${name}';
|
||||
@override String get custom_amount => '自訂金額';
|
||||
@override String get confirm => '確認';
|
||||
@override String get comment => '評論';
|
||||
@override String button_zap_ready({required Object amount}) => '打閃 ${amount} 聰';
|
||||
@override String get button_zap => '打閃';
|
||||
@override String get button_open_wallet => '在錢包中開啟';
|
||||
@override String get button_connect_wallet => '連接錢包';
|
||||
@override String get copy => '複製到剪貼簿';
|
||||
@override late final _TranslationsZapErrorZh error = _TranslationsZapErrorZh._(_root);
|
||||
}
|
||||
|
||||
// Path: profile
|
||||
class _TranslationsProfileZh extends TranslationsProfileEn {
|
||||
_TranslationsProfileZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get past_streams => '過去的直播';
|
||||
}
|
||||
|
||||
// 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
|
||||
class _TranslationsLoginZh extends TranslationsLoginEn {
|
||||
_TranslationsLoginZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get username => '用戶名';
|
||||
@override String get amber => '使用 Amber 登入';
|
||||
@override String get key => '使用鑰匙登入';
|
||||
@override String get create => '創建帳戶';
|
||||
@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
|
||||
class _TranslationsStreamStatusZh extends TranslationsStreamStatusEn {
|
||||
_TranslationsStreamStatusZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get live => '直播';
|
||||
@override String get ended => '結束';
|
||||
@override String get planned => '計劃';
|
||||
}
|
||||
|
||||
// Path: stream.chat
|
||||
class _TranslationsStreamChatZh extends TranslationsStreamChatEn {
|
||||
_TranslationsStreamChatZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get disabled => '關閉聊天';
|
||||
@override String disabled_timeout({required Object time}) => '超時過期: ${time}';
|
||||
|
||||
/// 顯示逾時事件的聊天訊息
|
||||
@override TextSpan timeout({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' 超時 '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
|
||||
/// 聊天底部的流結束頁尾
|
||||
@override String get ended => '串流結束';
|
||||
|
||||
/// 聊天訊息顯示串流斷點
|
||||
@override TextSpan zap({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' 打閃了 '),
|
||||
amount,
|
||||
const TextSpan(text: ' 聰'),
|
||||
]);
|
||||
|
||||
@override late final _TranslationsStreamChatWriteZh write = _TranslationsStreamChatWriteZh._(_root);
|
||||
@override late final _TranslationsStreamChatBadgeZh badge = _TranslationsStreamChatBadgeZh._(_root);
|
||||
@override late final _TranslationsStreamChatRaidZh raid = _TranslationsStreamChatRaidZh._(_root);
|
||||
}
|
||||
|
||||
// Path: zap.error
|
||||
class _TranslationsZapErrorZh extends TranslationsZapErrorEn {
|
||||
_TranslationsZapErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get invalid_custom_amount => '無效自訂金額';
|
||||
@override String get no_wallet => '未安裝閃電錢夾';
|
||||
@override String get no_lud16 => '未找到閃電地址';
|
||||
}
|
||||
|
||||
// Path: settings.profile
|
||||
class _TranslationsSettingsProfileZh extends TranslationsSettingsProfileEn {
|
||||
_TranslationsSettingsProfileZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get display_name => '顯示名稱';
|
||||
@override String get about => '關於';
|
||||
@override String get nip05 => '地址';
|
||||
@override String get lud16 => '閃電地址';
|
||||
@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
|
||||
class _TranslationsLoginErrorZh extends TranslationsLoginErrorEn {
|
||||
_TranslationsLoginErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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
|
||||
class _TranslationsStreamChatWriteZh extends TranslationsStreamChatWriteEn {
|
||||
_TranslationsStreamChatWriteZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 聊天訊息輸入方塊上的標籤
|
||||
@override String get label => '寫訊息';
|
||||
|
||||
/// 當使用者僅使用 pubkey 登入時,會顯示聊天輸入訊息
|
||||
@override String get no_signer => '無法使用 npub 登入撰寫訊息';
|
||||
|
||||
/// 使用者登出時顯示聊天輸入訊息
|
||||
@override String get login => '請登入以傳送訊息';
|
||||
}
|
||||
|
||||
// Path: stream.chat.badge
|
||||
class _TranslationsStreamChatBadgeZh extends TranslationsStreamChatBadgeEn {
|
||||
_TranslationsStreamChatBadgeZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 被授予徽章的使用者清單上的標題
|
||||
@override String get awarded_to => '頒發給';
|
||||
}
|
||||
|
||||
// Path: stream.chat.raid
|
||||
class _TranslationsStreamChatRaidZh extends TranslationsStreamChatRaidEn {
|
||||
_TranslationsStreamChatRaidZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// 聊天突擊消息到另一個串流
|
||||
@override String to({required Object name}) => 'RAIDING ${name}';
|
||||
|
||||
/// 來自其他串流的聊天突襲訊息
|
||||
@override String from({required Object name}) => 'RAID FROM ${name}';
|
||||
|
||||
/// 自動騎乘倒數計時器
|
||||
@override String countdown({required Object time}) => '突襲 ${time}';
|
||||
}
|
||||
|
||||
// Path: settings.profile.error
|
||||
class _TranslationsSettingsProfileErrorZh extends TranslationsSettingsProfileErrorEn {
|
||||
_TranslationsSettingsProfileErrorZh._(TranslationsZh root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsZh _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@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.
|
||||
/// Only for edge cases! For simple maps, use the map function of this library.
|
||||
extension on TranslationsZh {
|
||||
dynamic _flatMapFunction(String path) {
|
||||
switch (path) {
|
||||
case 'upload_avatar': return '上傳頭像';
|
||||
case 'most_zapped_streamers': return '最多被擊中的溪流';
|
||||
case 'no_user_found': 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,
|
||||
one: '1 個檢視器',
|
||||
other: '${NumberFormat.decimalPattern('zh').format(n)} 觀眾',
|
||||
);
|
||||
case 'stream.status.live': return '直播';
|
||||
case 'stream.status.ended': return '結束';
|
||||
case 'stream.status.planned': return '計劃';
|
||||
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_timeout': return ({required Object time}) => '超時過期: ${time}';
|
||||
case 'stream.chat.timeout': return ({required InlineSpan mod, required InlineSpan user, required InlineSpan time}) => TextSpan(children: [
|
||||
mod,
|
||||
const TextSpan(text: ' 超時 '),
|
||||
user,
|
||||
const TextSpan(text: ' for '),
|
||||
time,
|
||||
]);
|
||||
case 'stream.chat.ended': return '串流結束';
|
||||
case 'stream.chat.zap': return ({required InlineSpan user, required InlineSpan amount}) => TextSpan(children: [
|
||||
user,
|
||||
const TextSpan(text: ' 打閃了 '),
|
||||
amount,
|
||||
const TextSpan(text: ' 聰'),
|
||||
]);
|
||||
case 'stream.chat.write.label': return '寫訊息';
|
||||
case 'stream.chat.write.no_signer': return '無法使用 npub 登入撰寫訊息';
|
||||
case 'stream.chat.write.login': return '請登入以傳送訊息';
|
||||
case 'stream.chat.badge.awarded_to': return '頒發給';
|
||||
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}) => '突襲 ${time}';
|
||||
case 'goal.title': return ({required Object amount}) => '目標:${amount}';
|
||||
case 'goal.remaining': return ({required Object amount}) => '剩餘: ${amount}';
|
||||
case 'goal.complete': return '完成';
|
||||
case 'button.login': return '登錄';
|
||||
case 'button.logout': return '登出';
|
||||
case 'button.edit_profile': return '編輯個人檔案';
|
||||
case 'button.follow': return '關注';
|
||||
case 'button.unfollow': return '取消關注';
|
||||
case 'button.mute': return '靜音';
|
||||
case 'button.unmute': return '解除静音';
|
||||
case 'button.share': return '分享';
|
||||
case 'button.save': return '保存';
|
||||
case 'button.connect': return '連接';
|
||||
case 'button.settings': return '設定';
|
||||
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.live': return '直播';
|
||||
case 'stream_list.planned': return '已計畫';
|
||||
case 'stream_list.ended': return '已結束';
|
||||
case 'zap.title': return ({required Object name}) => '打閃${name}';
|
||||
case 'zap.custom_amount': return '自訂金額';
|
||||
case 'zap.confirm': return '確認';
|
||||
case 'zap.comment': return '評論';
|
||||
case 'zap.button_zap_ready': return ({required Object amount}) => '打閃 ${amount} 聰';
|
||||
case 'zap.button_zap': return '打閃';
|
||||
case 'zap.button_open_wallet': return '在錢包中開啟';
|
||||
case 'zap.button_connect_wallet': return '連接錢包';
|
||||
case 'zap.copy': return '複製到剪貼簿';
|
||||
case 'zap.error.invalid_custom_amount': return '無效自訂金額';
|
||||
case 'zap.error.no_wallet': return '未安裝閃電錢夾';
|
||||
case 'zap.error.no_lud16': return '未找到閃電地址';
|
||||
case 'profile.past_streams': return '過去的直播';
|
||||
case 'settings.button_profile': return '編輯個人資料';
|
||||
case 'settings.button_wallet': return '錢包設定';
|
||||
case 'settings.profile.display_name': return '顯示名稱';
|
||||
case 'settings.profile.about': 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.amber': return '使用 Amber 登入';
|
||||
case 'login.key': return '使用鑰匙登入';
|
||||
case 'login.create': 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
156
lib/i18n/translated/ar.i18n.yaml
Normal file
@ -0,0 +1,156 @@
|
||||
upload_avatar: تحميل الصورة الرمزية
|
||||
"@upload_avatar":
|
||||
description: نص يطالب المستخدم بالضغط على العنصر النائب للصورة الرمزية لبدء التحميل
|
||||
most_zapped_streamers: معظم اللافتات التي يتم بثها
|
||||
"@most_zapped_streamers":
|
||||
description: التوجه فوق اللافتات العلوية المدرجة من قبل zaps
|
||||
no_user_found: لم يتم العثور على مستخدم
|
||||
"@no_user_found":
|
||||
description: لم يتم العثور على مستخدم عند البحث
|
||||
anon: هوية مخفية
|
||||
full_amount_sats: "${n:decimalPattern} دولار ساتس"
|
||||
viewers:
|
||||
one: 1 مشاهد
|
||||
other: "{n:decimalPattern} المشاهدين"
|
||||
"@viewers":
|
||||
description: عدد مشاهدي البث
|
||||
"@anon":
|
||||
description: مستخدم مجهول
|
||||
stream:
|
||||
status:
|
||||
live: بث مباشر
|
||||
ended: انتهى
|
||||
planned: مخطط
|
||||
started: بدأ $timestamp
|
||||
notification: ${name} بدأ البث المباشر!
|
||||
chat:
|
||||
disabled: تم تعطيل الدردشة
|
||||
disabled_timeout: "تنتهي المهلة: $time"
|
||||
timeout(rich): $mod انتهى الوقت $user لـ ${time}
|
||||
"@timeout":
|
||||
description: رسالة دردشة تظهر أحداث المهلة
|
||||
ended: انتهى البث
|
||||
"@ended":
|
||||
description: تيار انتهى التذييل في أسفل الدردشة
|
||||
zap(rich): $user انطلق $amount ساتس
|
||||
"@zap":
|
||||
description: رسالة الدردشة التي تُظهر البث المباشر
|
||||
write:
|
||||
label: اكتب رسالة
|
||||
"@label":
|
||||
description: التسمية على مربع إدخال رسالة الدردشة
|
||||
no_signer: لا يمكن كتابة الرسائل باستخدام تسجيل الدخول إلى npub
|
||||
"@no_signer":
|
||||
description: تظهر رسالة إدخال الدردشة عندما يقوم المستخدم بتسجيل الدخول باستخدام
|
||||
مفتاح الحانة فقط
|
||||
login: الرجاء تسجيل الدخول لإرسال الرسائل
|
||||
"@login":
|
||||
description: تظهر رسالة إدخال الدردشة عند تسجيل خروج المستخدم من المحادثة
|
||||
badge:
|
||||
awarded_to: مُنحت الجائزة لـ
|
||||
"@awarded_to":
|
||||
description: العنوان فوق قائمة المستخدمين الذين حصلوا على شارة
|
||||
raid:
|
||||
to: التصفح $name
|
||||
"@to":
|
||||
description: رسالة غارة الدردشة إلى دفق آخر
|
||||
from: RAID من $name
|
||||
"@from":
|
||||
description: رسالة غارة الدردشة من دفق آخر
|
||||
countdown: الإغارة في $time
|
||||
"@countdown":
|
||||
description: مؤقت العد التنازلي للقيادة التلقائية
|
||||
goal:
|
||||
title: "الهدف: $amount"
|
||||
remaining: "المتبقي: $amount"
|
||||
complete: مكتمل
|
||||
button:
|
||||
login: تسجيل الدخول
|
||||
logout: تسجيل الخروج
|
||||
edit_profile: تعديل الملف الشخصي
|
||||
"@login":
|
||||
description: نص الزر الخاص بزر تسجيل الدخول
|
||||
follow: متابعة
|
||||
"@follow":
|
||||
description: نص الزر الخاص بزر المتابعة
|
||||
unfollow: الغاء المتابعة
|
||||
"@unfollow":
|
||||
description: نص الزر لزر إلغاء المتابعة
|
||||
mute: كتم
|
||||
unmute: رفع الكتم
|
||||
share: مشاركة
|
||||
save: حفظ
|
||||
connect: الاتصال
|
||||
settings: الإعدادات
|
||||
embed:
|
||||
article_by: مقال بقلم $name
|
||||
note_by: ملاحظة من $name
|
||||
live_stream_by: بث مباشر من $name
|
||||
stream_list:
|
||||
following: المتابَعون
|
||||
live: بث مباشر
|
||||
planned: مخطط
|
||||
ended: انتهى
|
||||
"@stream_list":
|
||||
description: العناوين في قوائم البث حسب نوع البث المباشر/المُنتهي/المخطط له وما إلى ذلك.
|
||||
zap:
|
||||
title: زاب $name
|
||||
custom_amount: المبلغ المخصص
|
||||
confirm: تأكيد
|
||||
comment: تعليق
|
||||
button_zap_ready: أومض $amount ساتوشي
|
||||
button_zap: زاب
|
||||
button_open_wallet: فتح في المحفظة
|
||||
button_connect_wallet: توصيل المحفظة
|
||||
copy: نسخ إلى الحافظة
|
||||
error:
|
||||
invalid_custom_amount: مبلغ مخصص غير صالح
|
||||
no_wallet: لا توجد محفظة برق مثبتة
|
||||
no_lud16: لم يتم العثور على عنوان البرق
|
||||
profile:
|
||||
past_streams: التدفقات السابقة
|
||||
settings:
|
||||
button_profile: تعديل الملف الشخصي
|
||||
button_wallet: إعدادات المحفظة
|
||||
profile:
|
||||
display_name: اسم العرض
|
||||
about: نبذة عن
|
||||
nip05: عنوان نوستر
|
||||
lud16: عنوان البرق
|
||||
error:
|
||||
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:
|
||||
username: اسم المستخدم
|
||||
amber: تسجيل الدخول مع آمبر
|
||||
key: تسجيل الدخول بالمفتاح
|
||||
create: إنشاء حساب
|
||||
error:
|
||||
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: فشل بدء البث فشل، يرجى التحقق من رصيدك
|
157
lib/i18n/translated/cs.i18n.yaml
Normal file
@ -0,0 +1,157 @@
|
||||
upload_avatar: Nahrát avatar
|
||||
"@upload_avatar":
|
||||
description: Text vyzývající uživatele, aby stiskl zástupný symbol avatara pro
|
||||
zahájení nahrávání
|
||||
most_zapped_streamers: Nejvíce zapnutých streamerů
|
||||
"@most_zapped_streamers":
|
||||
description: Směřování přes uvedené horní streamery podle zaps
|
||||
no_user_found: Nebyl nalezen žádný uživatel
|
||||
"@no_user_found":
|
||||
description: Při vyhledávání nebyl nalezen žádný uživatel
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 divák
|
||||
other: ${n:decimalPattern} diváků
|
||||
"@viewers":
|
||||
description: Počet diváků streamu
|
||||
"@anon":
|
||||
description: Anonymní uživatel
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: KONEC
|
||||
planned: PLÁNOVANÉ
|
||||
started: Založeno $timestamp
|
||||
notification: ${name} byl spuštěn!
|
||||
chat:
|
||||
disabled: CHAT ZRUŠEN
|
||||
disabled_timeout: "Časový limit vyprší: $time"
|
||||
timeout(rich): $mod vypršel čas $user pro ${time}
|
||||
"@timeout":
|
||||
description: Zpráva chatu zobrazující události časového limitu
|
||||
ended: STREAM UKONČEN
|
||||
"@ended":
|
||||
description: Zápatí v dolní části chatu ukončilo stream
|
||||
zap(rich): $user Zapped $amount sats
|
||||
"@zap":
|
||||
description: Zpráva chatu zobrazující proud zaps
|
||||
write:
|
||||
label: Napište zprávu
|
||||
"@label":
|
||||
description: Popisek na vstupním poli zprávy chatu
|
||||
no_signer: Nelze psát zprávy s přihlášením npub
|
||||
"@no_signer":
|
||||
description: Vstupní zpráva chatu se zobrazí, když je uživatel přihlášen pouze
|
||||
pomocí pubkey
|
||||
login: Pro odesílání zpráv se prosím přihlaste
|
||||
"@login":
|
||||
description: Vstupní zpráva chatu zobrazená při odhlášení uživatele
|
||||
badge:
|
||||
awarded_to: "Uděleno:"
|
||||
"@awarded_to":
|
||||
description: Záhlaví nad seznamem uživatelů, kterým byl udělen odznak
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Zpráva o nájezdu chatu do jiného proudu
|
||||
from: RAID Z $name
|
||||
"@from":
|
||||
description: Zpráva o nájezdu chatu z jiného proudu
|
||||
countdown: Nájezdy na $time
|
||||
"@countdown":
|
||||
description: Časovač odpočítávání pro automatický nájezd
|
||||
goal:
|
||||
title: "Cíl: $amount"
|
||||
remaining: "Zbývá: $amount"
|
||||
complete: KOMPLETNÍ
|
||||
button:
|
||||
login: Přihlášení
|
||||
logout: Odhlášení
|
||||
edit_profile: Upravit profil
|
||||
"@login":
|
||||
description: Text tlačítka pro přihlašovací tlačítko
|
||||
follow: Sledujte
|
||||
"@follow":
|
||||
description: Text tlačítka pro tlačítko sledovat
|
||||
unfollow: Zrušit sledování
|
||||
"@unfollow":
|
||||
description: Text tlačítka pro zrušení sledování
|
||||
mute: Ztlumit
|
||||
unmute: Zrušit ztlumení
|
||||
share: Sdílet
|
||||
save: Uložit
|
||||
connect: Připojení
|
||||
settings: Nastavení
|
||||
embed:
|
||||
article_by: Článek na $name
|
||||
note_by: Poznámka $name
|
||||
live_stream_by: Přímý přenos na adrese $name
|
||||
stream_list:
|
||||
following: Po
|
||||
live: Živě
|
||||
planned: Plánované
|
||||
ended: Ukončeno
|
||||
"@stream_list":
|
||||
description: Nadpisy v seznamech proudů podle typu proudu živě/konec/plánovaně atd.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Vlastní částka
|
||||
confirm: Potvrďte
|
||||
comment: "Komentář:"
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Otevřít v peněžence
|
||||
button_connect_wallet: Připojení peněženky
|
||||
copy: Zkopírováno do schránky
|
||||
error:
|
||||
invalid_custom_amount: Neplatná vlastní částka
|
||||
no_wallet: Není nainstalována blesková peněženka
|
||||
no_lud16: Nebyla nalezena žádná adresa blesku
|
||||
profile:
|
||||
past_streams: Minulé proudy
|
||||
settings:
|
||||
button_profile: Upravit profil
|
||||
button_wallet: Nastavení peněženky
|
||||
profile:
|
||||
display_name: Zobrazení názvu
|
||||
about: O stránkách
|
||||
nip05: Adresa Nostr
|
||||
lud16: Adresa blesku
|
||||
error:
|
||||
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:
|
||||
username: Uživatelské jméno
|
||||
amber: Přihlášení pomocí Amber
|
||||
key: Přihlášení pomocí klíče
|
||||
create: Vytvořit účet
|
||||
error:
|
||||
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
|
157
lib/i18n/translated/da.i18n.yaml
Normal file
@ -0,0 +1,157 @@
|
||||
upload_avatar: Upload avatar
|
||||
"@upload_avatar":
|
||||
description: Tekst, der beder brugeren om at trykke på avatar-pladsholderen for
|
||||
at begynde at uploade
|
||||
most_zapped_streamers: De fleste zappede streamere
|
||||
"@most_zapped_streamers":
|
||||
description: På vej over listede topstreamere af zaps
|
||||
no_user_found: Ingen bruger fundet
|
||||
"@no_user_found":
|
||||
description: Ingen bruger fundet ved søgning
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 seer
|
||||
other: ${n:decimalPattern} seere
|
||||
"@viewers":
|
||||
description: Antal seere af streamingen
|
||||
"@anon":
|
||||
description: En anonym bruger
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: AFSLUTTET
|
||||
planned: PLANLAGT
|
||||
started: Startet $timestamp
|
||||
notification: ${name} gik live!
|
||||
chat:
|
||||
disabled: CHAT DEAKTIVERET
|
||||
disabled_timeout: "Timeout udløber: $time"
|
||||
timeout(rich): $mod udløbet $user for ${time}
|
||||
"@timeout":
|
||||
description: Chatbesked, der viser timeout-hændelser
|
||||
ended: STREAM AFSLUTTET
|
||||
"@ended":
|
||||
description: Stream afsluttede footer i bunden af chatten
|
||||
zap(rich): $user zappet $amount sats
|
||||
"@zap":
|
||||
description: Chatbesked, der viser stream-zaps
|
||||
write:
|
||||
label: Skriv en besked
|
||||
"@label":
|
||||
description: Label på chatbeskedens inputfelt
|
||||
no_signer: Kan ikke skrive beskeder med npub-login
|
||||
"@no_signer":
|
||||
description: Chat-inputmeddelelse vises, når brugeren kun er logget ind med pubkey
|
||||
login: Log ind for at sende beskeder
|
||||
"@login":
|
||||
description: Chat-inputmeddelelse vises, når brugeren er logget ud
|
||||
badge:
|
||||
awarded_to: "Tildelt til:"
|
||||
"@awarded_to":
|
||||
description: Overskrift over liste over brugere, der har fået tildelt et badge
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Chat raid-besked til en anden stream
|
||||
from: RAID FRA $name
|
||||
"@from":
|
||||
description: Chat raid-besked fra en anden stream
|
||||
countdown: Raiding i $time
|
||||
"@countdown":
|
||||
description: Nedtællingstimer til auto-raiding
|
||||
goal:
|
||||
title: "Mål: $amount"
|
||||
remaining: "Resterende: $amount"
|
||||
complete: KOMPLET
|
||||
button:
|
||||
login: Login
|
||||
logout: Log ud
|
||||
edit_profile: Rediger profil
|
||||
"@login":
|
||||
description: Knaptekst til login-knappen
|
||||
follow: Følg med
|
||||
"@follow":
|
||||
description: Knaptekst til følg-knappen
|
||||
unfollow: Ikke følge
|
||||
"@unfollow":
|
||||
description: Knaptekst til unfollow-knappen
|
||||
mute: Dæmpet
|
||||
unmute: Slå lyden fra
|
||||
share: Del
|
||||
save: Gemme
|
||||
connect: Opret forbindelse
|
||||
settings: Indstillinger
|
||||
embed:
|
||||
article_by: Artikel af $name
|
||||
note_by: Note fra $name
|
||||
live_stream_by: Livestream på $name
|
||||
stream_list:
|
||||
following: Efterfølgende
|
||||
live: Live
|
||||
planned: Planlagt
|
||||
ended: Afsluttet
|
||||
"@stream_list":
|
||||
description: Overskrifter på streaminglister efter streamingtype
|
||||
live/afsluttet/planlagt osv.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Brugerdefineret beløb
|
||||
confirm: Bekræft
|
||||
comment: Kommentar
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Åbn i tegnebogen
|
||||
button_connect_wallet: Forbind tegnebog
|
||||
copy: Kopieret til udklipsholder
|
||||
error:
|
||||
invalid_custom_amount: Ugyldigt brugerdefineret beløb
|
||||
no_wallet: Ingen lightning wallet installeret
|
||||
no_lud16: Ingen lyn-adresse fundet
|
||||
profile:
|
||||
past_streams: Tidligere strømme
|
||||
settings:
|
||||
button_profile: Rediger profil
|
||||
button_wallet: Indstillinger for tegnebog
|
||||
profile:
|
||||
display_name: Vis navn
|
||||
about: Omkring
|
||||
nip05: Nostr-adresse
|
||||
lud16: Adresse for lynnedslag
|
||||
error:
|
||||
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:
|
||||
username: Brugernavn
|
||||
amber: Log ind med Amber
|
||||
key: Login med nøgle
|
||||
create: Opret konto
|
||||
error:
|
||||
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
|
159
lib/i18n/translated/de.i18n.yaml
Normal file
@ -0,0 +1,159 @@
|
||||
upload_avatar: Avatar hochladen
|
||||
"@upload_avatar":
|
||||
description: Text, der den Benutzer auffordert, auf den Avatar-Platzhalter zu
|
||||
klicken, um den Upload zu starten
|
||||
most_zapped_streamers: Meistgezappte Streamer
|
||||
"@most_zapped_streamers":
|
||||
description: Überschrift über gelistete Top-Streamer nach Zaps
|
||||
no_user_found: Kein Benutzer gefunden
|
||||
"@no_user_found":
|
||||
description: Kein Benutzer bei der Suche gefunden
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 Zuschauer
|
||||
other: ${n:decimalPattern} Zuschauer
|
||||
"@viewers":
|
||||
description: Anzahl der Zuschauer des Streams
|
||||
"@anon":
|
||||
description: Ein anonymer Benutzer
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: BEENDET
|
||||
planned: GEPLANT
|
||||
started: Gestartet $timestamp
|
||||
notification: ${name} ging live!
|
||||
chat:
|
||||
disabled: CHAT DEAKTIVIERT
|
||||
disabled_timeout: "Timeout läuft ab: $time"
|
||||
timeout(rich): $mod gibt $user einen Timeout für ${time}
|
||||
"@timeout":
|
||||
description: Chat-Nachricht mit Timeout-Ereignissen
|
||||
ended: STREAM BEENDET
|
||||
"@ended":
|
||||
description: Stream beendet Fußzeile am Ende des Chats
|
||||
zap(rich): $user hat $amount sats gezappt
|
||||
"@zap":
|
||||
description: Chat-Nachricht mit Stream-Zaps
|
||||
write:
|
||||
label: Nachricht schreiben
|
||||
"@label":
|
||||
description: Beschriftung des Eingabefeldes für Chatnachrichten
|
||||
no_signer: Mit npub-Login können keine Nachrichten geschrieben werden
|
||||
"@no_signer":
|
||||
description: Chat-Eingabemeldung wird angezeigt, wenn der Benutzer nur mit
|
||||
Pubkey eingeloggt ist
|
||||
login: Bitte anmelden, um Nachrichten zu senden
|
||||
"@login":
|
||||
description: Chat-Eingabemeldung wird angezeigt, wenn der Benutzer abgemeldet ist
|
||||
badge:
|
||||
awarded_to: "Verliehen an:"
|
||||
"@awarded_to":
|
||||
description: Überschrift über der Liste der Benutzer, die ein Abzeichen erhalten
|
||||
haben
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Chat-Überfallnachricht an einen anderen Stream
|
||||
from: RAID VON $name
|
||||
"@from":
|
||||
description: Chat-Raid-Nachricht aus einem anderen Stream
|
||||
countdown: Raubzüge auf $time
|
||||
"@countdown":
|
||||
description: Countdown-Timer für automatisches Reiten
|
||||
goal:
|
||||
title: "Ziel: $amount"
|
||||
remaining: "Verbleibend: $amount"
|
||||
complete: COMPLETE
|
||||
button:
|
||||
login: Anmelden
|
||||
logout: Abmelden
|
||||
edit_profile: Profil anpassen
|
||||
"@login":
|
||||
description: Schaltflächentext für die Anmeldeschaltfläche
|
||||
follow: Folgen
|
||||
"@follow":
|
||||
description: Schaltflächentext für die Schaltfläche "Folgen
|
||||
unfollow: Entfolgen
|
||||
"@unfollow":
|
||||
description: Schaltflächentext für die "Unfollow"-Schaltfläche
|
||||
mute: Stummschalten
|
||||
unmute: Entstummen
|
||||
share: Teilen
|
||||
save: Speichern
|
||||
connect: Verbinden Sie
|
||||
settings: Einstellungen
|
||||
embed:
|
||||
article_by: Artikel von $name
|
||||
note_by: Note von $name
|
||||
live_stream_by: Live-Stream von $name
|
||||
stream_list:
|
||||
following: Folge ich
|
||||
live: Live
|
||||
planned: Geplant
|
||||
ended: Beendet
|
||||
"@stream_list":
|
||||
description: Überschriften auf Stream-Listen nach Stream-Typ live/beendet/geplant usw.
|
||||
zap:
|
||||
title: $name zappen
|
||||
custom_amount: Benutzerdefinierter Betrag
|
||||
confirm: Bestätigen
|
||||
comment: Kommentar
|
||||
button_zap_ready: $amount sats zappen
|
||||
button_zap: Zap
|
||||
button_open_wallet: In Brieftasche öffnen
|
||||
button_connect_wallet: Brieftasche verbinden
|
||||
copy: In die Zwischenablage kopiert
|
||||
error:
|
||||
invalid_custom_amount: Ungültiger benutzerdefinierter Betrag
|
||||
no_wallet: Keine Lightning-Brieftasche installiert
|
||||
no_lud16: Keine Blitzadresse gefunden
|
||||
profile:
|
||||
past_streams: Vergangene Streams
|
||||
settings:
|
||||
button_profile: Profil bearbeiten
|
||||
button_wallet: Wallet-Einstellungen
|
||||
profile:
|
||||
display_name: Name anzeigen
|
||||
about: Über
|
||||
nip05: Nostr-Adresse
|
||||
lud16: Blitz-Adresse
|
||||
error:
|
||||
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:
|
||||
username: Benutzername
|
||||
amber: Anmeldung mit Amber
|
||||
key: Anmeldung mit Schlüssel
|
||||
create: Konto erstellen
|
||||
error:
|
||||
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
|
160
lib/i18n/translated/el.i18n.yaml
Normal file
@ -0,0 +1,160 @@
|
||||
upload_avatar: Ανέβασμα Avatar
|
||||
"@upload_avatar":
|
||||
description: Κείμενο που προτρέπει τον χρήστη να πατήσει το εικονίδιο avatar για
|
||||
να ξεκινήσει το ανέβασμα
|
||||
most_zapped_streamers: Τα περισσότερα Zapped Streamers
|
||||
"@most_zapped_streamers":
|
||||
description: Επικεφαλής πάνω από τα αναφερόμενα κορυφαία streamers από zaps
|
||||
no_user_found: Δεν βρέθηκε χρήστης
|
||||
"@no_user_found":
|
||||
description: Δεν βρέθηκε χρήστης κατά την αναζήτηση
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 θεατής
|
||||
other: ${n:decimalPattern} θεατές
|
||||
"@viewers":
|
||||
description: Αριθμός θεατών της ροής
|
||||
"@anon":
|
||||
description: Ένας ανώνυμος χρήστης
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: ENDED
|
||||
planned: ΣΧΕΔΙΑΣΜΟΣ
|
||||
started: Ξεκίνησε $timestamp
|
||||
notification: ${name} βγήκε ζωντανά!
|
||||
chat:
|
||||
disabled: ΑΠΕΝΕΡΓΟΠΟΙΗΜΈΝΗ ΣΥΝΟΜΙΛΊΑ
|
||||
disabled_timeout: "Το χρονικό όριο λήγει: $time"
|
||||
timeout(rich): $mod χρονομετρημένη λήξη $user για ${time}
|
||||
"@timeout":
|
||||
description: Μήνυμα συνομιλίας που εμφανίζει συμβάντα timeout
|
||||
ended: STREAM ΤΕΛΕΙΩΣΕ
|
||||
"@ended":
|
||||
description: Η ροή τελείωσε το υποσέλιδο στο κάτω μέρος της συνομιλίας
|
||||
zap(rich): $user zapped $amount sats
|
||||
"@zap":
|
||||
description: Μήνυμα συνομιλίας που δείχνει ροή ροής zaps
|
||||
write:
|
||||
label: Γράψτε μήνυμα
|
||||
"@label":
|
||||
description: Ετικέτα στο πλαίσιο εισαγωγής μηνύματος συνομιλίας
|
||||
no_signer: Δεν μπορείτε να γράψετε μηνύματα με σύνδεση στο npub
|
||||
"@no_signer":
|
||||
description: Μήνυμα εισόδου συνομιλίας που εμφανίζεται όταν ο χρήστης είναι
|
||||
συνδεδεμένος μόνο με το κλειδί pubkey
|
||||
login: Παρακαλώ συνδεθείτε για να στείλετε μηνύματα
|
||||
"@login":
|
||||
description: Μήνυμα εισόδου συνομιλίας που εμφανίζεται όταν ο χρήστης έχει
|
||||
αποσυνδεθεί
|
||||
badge:
|
||||
awarded_to: "Απονέμεται σε:"
|
||||
"@awarded_to":
|
||||
description: Επικεφαλίδα πάνω από τη λίστα των χρηστών στους οποίους έχει
|
||||
απονεμηθεί ένα σήμα
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Μήνυμα επιδρομής συνομιλίας σε άλλη ροή
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: Μήνυμα επιδρομής συνομιλίας από άλλη ροή
|
||||
countdown: Επιδρομές στο $time
|
||||
"@countdown":
|
||||
description: Χρονοδιακόπτης αντίστροφης μέτρησης για αυτόματη ιππασία
|
||||
goal:
|
||||
title: "Στόχος: $amount"
|
||||
remaining: "Υπόλοιπο: $amount"
|
||||
complete: ΠΛΗΡΗΣ
|
||||
button:
|
||||
login: Σύνδεση
|
||||
logout: Αποσύνδεση
|
||||
edit_profile: Επεξεργασία προφίλ
|
||||
"@login":
|
||||
description: Κείμενο κουμπιού για το κουμπί σύνδεσης
|
||||
follow: Ακολουθήστε το
|
||||
"@follow":
|
||||
description: Κείμενο κουμπιού για το κουμπί follow
|
||||
unfollow: Ακολουθήστε το
|
||||
"@unfollow":
|
||||
description: Κείμενο κουμπιού για το κουμπί unfollow
|
||||
mute: Σίγαση
|
||||
unmute: Αποσυνδέστε τη φωνή σας από το
|
||||
share: Μοιραστείτε το
|
||||
save: Αποθήκευση
|
||||
connect: Συνδέστε το
|
||||
settings: Ρυθμίσεις
|
||||
embed:
|
||||
article_by: Άρθρο από $name
|
||||
note_by: Σημείωση του $name
|
||||
live_stream_by: Ζωντανή μετάδοση από το $name
|
||||
stream_list:
|
||||
following: Ακολουθώντας το
|
||||
live: Ζωντανό
|
||||
planned: Προγραμματισμένο
|
||||
ended: Τελείωσε
|
||||
"@stream_list":
|
||||
description: Επικεφαλίδες στις λίστες ροής ανά τύπο ροής
|
||||
ζωντανή/τελειωμένη/προγραμματισμένη κ.λπ.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Προσαρμοσμένο ποσό
|
||||
confirm: Επιβεβαίωση
|
||||
comment: Σχόλιο
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Άνοιγμα στο πορτοφόλι
|
||||
button_connect_wallet: Connect Wallet
|
||||
copy: Αντιγραφή στο πρόχειρο
|
||||
error:
|
||||
invalid_custom_amount: Μη έγκυρο προσαρμοσμένο ποσό
|
||||
no_wallet: Δεν έχει εγκατασταθεί πορτοφόλι αστραπής
|
||||
no_lud16: Δεν βρέθηκε διεύθυνση κεραυνού
|
||||
profile:
|
||||
past_streams: Προηγούμενα ρεύματα
|
||||
settings:
|
||||
button_profile: Επεξεργασία προφίλ
|
||||
button_wallet: Ρυθμίσεις πορτοφολιού
|
||||
profile:
|
||||
display_name: Όνομα οθόνης
|
||||
about: Σχετικά με το
|
||||
nip05: Διεύθυνση Nostr
|
||||
lud16: Διεύθυνση Lightning
|
||||
error:
|
||||
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:
|
||||
username: Όνομα χρήστη
|
||||
amber: Σύνδεση με Amber
|
||||
key: Σύνδεση με κλειδί
|
||||
create: Δημιουργία λογαριασμού
|
||||
error:
|
||||
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: Η εκκίνηση της ροής απέτυχε, παρακαλούμε ελέγξτε το υπόλοιπό σας
|
157
lib/i18n/translated/en.i18n.yaml
Normal file
@ -0,0 +1,157 @@
|
||||
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
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 viewer
|
||||
other: ${n:decimalPattern} viewers
|
||||
"@viewers":
|
||||
description: Number of viewers of the stream
|
||||
"@anon":
|
||||
description: An anonymous user
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: ENDED
|
||||
planned: PLANNED
|
||||
started: Started $timestamp
|
||||
notification: ${name} went live!
|
||||
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
|
||||
error:
|
||||
load_failed: Failed to load stream from ${url}
|
||||
goal:
|
||||
title: "Goal: $amount"
|
||||
remaining: "Remaining: $amount"
|
||||
complete: COMPLETE
|
||||
button:
|
||||
login: Login
|
||||
logout: Logout
|
||||
edit_profile: Edit Profile
|
||||
"@login":
|
||||
description: Button text for the login button
|
||||
follow: Follow
|
||||
"@follow":
|
||||
description: Button text for the follow button
|
||||
unfollow: Unfollow
|
||||
"@unfollow":
|
||||
description: Button text for the unfollow button
|
||||
mute: Mute
|
||||
unmute: Unmute
|
||||
share: Share
|
||||
save: Save
|
||||
connect: Connect
|
||||
settings: Settings
|
||||
embed:
|
||||
article_by: Article by ${name}
|
||||
note_by: Note by $name
|
||||
live_stream_by: Live stream by ${name}
|
||||
stream_list:
|
||||
following: Following
|
||||
live: Live
|
||||
planned: Planned
|
||||
ended: Ended
|
||||
"@stream_list":
|
||||
description: Headings on stream lists by stream type live/ended/planned etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Custom Amount
|
||||
confirm: Confirm
|
||||
comment: Comment
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Open in Wallet
|
||||
button_connect_wallet: Connect Wallet
|
||||
copy: Copied to clipboard
|
||||
error:
|
||||
invalid_custom_amount: Invalid custom amount
|
||||
no_wallet: No lightning wallet installed
|
||||
no_lud16: No lightning address found
|
||||
profile:
|
||||
past_streams: Past Streams
|
||||
settings:
|
||||
button_profile: Edit Profile
|
||||
button_wallet: Wallet Settings
|
||||
profile:
|
||||
display_name: Display Name
|
||||
about: About
|
||||
nip05: Nostr Address
|
||||
lud16: Lightning Address
|
||||
error:
|
||||
logged_out: Cant edit profile when logged out
|
||||
wallet:
|
||||
connect_wallet: Connect Wallet (NWC 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:
|
||||
username: Username
|
||||
amber: Login with Amber
|
||||
key: Login with Key
|
||||
create: Create Account
|
||||
error:
|
||||
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
|
160
lib/i18n/translated/es.i18n.yaml
Normal file
@ -0,0 +1,160 @@
|
||||
upload_avatar: Subir avatar
|
||||
"@upload_avatar":
|
||||
description: Texto que indica al usuario que pulse el marcador de avatar para
|
||||
iniciar la carga
|
||||
most_zapped_streamers: Serpentinas más derribadas
|
||||
"@most_zapped_streamers":
|
||||
description: Encabezando streamers superiores listados por zaps
|
||||
no_user_found: No se ha encontrado ningún usuario
|
||||
"@no_user_found":
|
||||
description: No se ha encontrado ningún usuario al realizar la búsqueda
|
||||
anon: Anónimo
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 espectador
|
||||
other: ${n:decimalPattern} espectadores
|
||||
"@viewers":
|
||||
description: Número de espectadores del flujo
|
||||
"@anon":
|
||||
description: Un usuario anónimo
|
||||
stream:
|
||||
status:
|
||||
live: EN VIVO
|
||||
ended: FIN
|
||||
planned: PLANIFICADO
|
||||
started: Comenzó $timestamp
|
||||
notification: ${name} ¡se ha puesto en marcha!
|
||||
chat:
|
||||
disabled: CHAT DESHABILITADO
|
||||
disabled_timeout: "El tiempo de espera expira: $time"
|
||||
timeout(rich): $mod timed out $user para ${time}
|
||||
"@timeout":
|
||||
description: Mensaje de chat que muestra los eventos de tiempo de espera
|
||||
ended: STREAM FINED
|
||||
"@ended":
|
||||
description: Stream finalizó en la parte inferior del chat
|
||||
zap(rich): $user zapearon $amount sats
|
||||
"@zap":
|
||||
description: Mensaje de chat que muestra zaps de flujo
|
||||
write:
|
||||
label: Escribir mensaje
|
||||
"@label":
|
||||
description: Etiqueta del cuadro de entrada de mensajes de chat
|
||||
no_signer: No se pueden escribir mensajes con el login npub
|
||||
"@no_signer":
|
||||
description: Mensaje de entrada en el chat que se muestra cuando el usuario está
|
||||
conectado sólo con pubkey
|
||||
login: Inicie sesión para enviar mensajes
|
||||
"@login":
|
||||
description: Mensaje de entrada al chat que se muestra cuando el usuario cierra
|
||||
la sesión
|
||||
badge:
|
||||
awarded_to: "Concedido a:"
|
||||
"@awarded_to":
|
||||
description: Encabezamiento de la lista de usuarios a los que se ha concedido
|
||||
una insignia
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Mensaje de raid de chat a otro flujo
|
||||
from: RAID DESDE $name
|
||||
"@from":
|
||||
description: Mensaje de incursión en el chat desde otro flujo
|
||||
countdown: Incursiones en $time
|
||||
"@countdown":
|
||||
description: Temporizador de cuenta atrás para auto-raiding
|
||||
goal:
|
||||
title: "Objetivo: $amount"
|
||||
remaining: "Resto: $amount"
|
||||
complete: COMPLETAR
|
||||
button:
|
||||
login: Iniciar Sesión
|
||||
logout: Cerrar sesión
|
||||
edit_profile: Editar Perfil
|
||||
"@login":
|
||||
description: Texto del botón de inicio de sesión
|
||||
follow: Seguir
|
||||
"@follow":
|
||||
description: Texto del botón de seguimiento
|
||||
unfollow: Dejar de seguir
|
||||
"@unfollow":
|
||||
description: Texto del botón "Dejar de seguir
|
||||
mute: Silenciar
|
||||
unmute: Dejar de silenciar
|
||||
share: Compartir
|
||||
save: Guardar
|
||||
connect: Conectar
|
||||
settings: Ajustes
|
||||
embed:
|
||||
article_by: Artículo de $name
|
||||
note_by: Nota de $name
|
||||
live_stream_by: Transmisión en directo por $name
|
||||
stream_list:
|
||||
following: Siguiendo
|
||||
live: En directo
|
||||
planned: Planificado
|
||||
ended: Finalizado
|
||||
"@stream_list":
|
||||
description: Encabezamientos en las listas de flujos por tipo de flujo en
|
||||
directo/finalizado/planificado, etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Importe personalizado
|
||||
confirm: Confirmar
|
||||
comment: Comentario
|
||||
button_zap_ready: Zapear $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Abrir en cartera
|
||||
button_connect_wallet: Billetera Connect
|
||||
copy: Copiado al portapapeles
|
||||
error:
|
||||
invalid_custom_amount: Importe personalizado no válido
|
||||
no_wallet: Sin monedero relámpago instalado
|
||||
no_lud16: No se ha encontrado ninguna dirección de rayos
|
||||
profile:
|
||||
past_streams: Transmisiones anteriores
|
||||
settings:
|
||||
button_profile: Editar perfil
|
||||
button_wallet: Configuración de la cartera
|
||||
profile:
|
||||
display_name: Mostrar nombre
|
||||
about: Acerca de
|
||||
nip05: Dirección Nostr
|
||||
lud16: Dirección del rayo
|
||||
error:
|
||||
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:
|
||||
username: Usuario
|
||||
amber: Iniciar sesión con Amber
|
||||
key: Inicio de sesión con clave
|
||||
create: Crear una cuenta
|
||||
error:
|
||||
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
|
159
lib/i18n/translated/fi.i18n.yaml
Normal file
@ -0,0 +1,159 @@
|
||||
upload_avatar: Lataa avatar
|
||||
"@upload_avatar":
|
||||
description: Teksti, joka kehottaa käyttäjää painamaan avatar-merkkiä
|
||||
aloittaakseen lataamisen.
|
||||
most_zapped_streamers: Eniten Zapped Streamers
|
||||
"@most_zapped_streamers":
|
||||
description: Päällekkäin lueteltujen alkuun streamers by zaps
|
||||
no_user_found: Käyttäjää ei löytynyt
|
||||
"@no_user_found":
|
||||
description: Käyttäjää ei löytynyt haun yhteydessä
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 katsoja
|
||||
other: ${n:decimalPattern} katsojat
|
||||
"@viewers":
|
||||
description: Streamin katsojien määrä
|
||||
"@anon":
|
||||
description: Nimetön käyttäjä
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: ENDED
|
||||
planned: SUUNNITELTU
|
||||
started: Aloitettu $timestamp
|
||||
notification: ${name} meni suoraksi!
|
||||
chat:
|
||||
disabled: CHAT POISTETTU KÄYTÖSTÄ
|
||||
disabled_timeout: "Aikakatkaisu päättyy: $time"
|
||||
timeout(rich): $mod ajastettu $user for ${time}
|
||||
"@timeout":
|
||||
description: Chat-viesti, joka näyttää aikakatkaisutapahtumat
|
||||
ended: STREAM PÄÄTTYNYT
|
||||
"@ended":
|
||||
description: Virta päättyi alatunnisteen alareunaan chatissa
|
||||
zap(rich): $user zappasi $amount satsia
|
||||
"@zap":
|
||||
description: Chat-viestin näyttäminen stream zaps
|
||||
write:
|
||||
label: Kirjoita viesti
|
||||
"@label":
|
||||
description: Chat-viestin syöttöruudun tarra
|
||||
no_signer: Ei voi kirjoittaa viestejä npub-kirjautumisella
|
||||
"@no_signer":
|
||||
description: Chat-syöttöviesti näytetään, kun käyttäjä on kirjautunut sisään
|
||||
vain pubkey-avaimella.
|
||||
login: Kirjaudu sisään lähettääksesi viestejä
|
||||
"@login":
|
||||
description: Chat-syötteen viesti näytetään, kun käyttäjä on kirjautunut ulos.
|
||||
badge:
|
||||
awarded_to: "Myönnetty:"
|
||||
"@awarded_to":
|
||||
description: Merkin saaneiden käyttäjien luettelon otsikko
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Chat-viesti toiseen streamiin
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: Chat raid viesti toisesta virrasta
|
||||
countdown: Ryöstöretket osoitteessa $time
|
||||
"@countdown":
|
||||
description: Lähtölaskenta ajastin automaattista ratsastusta varten
|
||||
goal:
|
||||
title: "Tavoite: $amount"
|
||||
remaining: "Jäljellä: $amount"
|
||||
complete: TÄYDELLINEN
|
||||
button:
|
||||
login: Kirjaudu sisään
|
||||
logout: Kirjaudu ulos
|
||||
edit_profile: Muokkaa profiilia
|
||||
"@login":
|
||||
description: Kirjautumispainikkeen teksti
|
||||
follow: Seuraa
|
||||
"@follow":
|
||||
description: Seuraa-painikkeen painikkeen teksti
|
||||
unfollow: Älä seuraa
|
||||
"@unfollow":
|
||||
description: Seuraa-painikkeen teksti
|
||||
mute: Mykistä
|
||||
unmute: Poista mykistys
|
||||
share: Jaa
|
||||
save: Tallenna
|
||||
connect: Yhdistä
|
||||
settings: Asetukset
|
||||
embed:
|
||||
article_by: Artikkeli $name
|
||||
note_by: Viesti lähettäjältä $name
|
||||
live_stream_by: Suora lähetys osoitteessa $name
|
||||
stream_list:
|
||||
following: Seuraa
|
||||
live: Live
|
||||
planned: Suunniteltu
|
||||
ended: Päättynyt
|
||||
"@stream_list":
|
||||
description: Stream-luetteloiden otsikot stream-tyypeittäin
|
||||
live/päättynyt/suunniteltu jne.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Mukautettu määrä
|
||||
confirm: Vahvista
|
||||
comment: Kommentoi
|
||||
button_zap_ready: Zap $amount satsia
|
||||
button_zap: Zap
|
||||
button_open_wallet: Avaa lompakossa
|
||||
button_connect_wallet: Yhdistä lompakko
|
||||
copy: Kopioitu leikepöydälle
|
||||
error:
|
||||
invalid_custom_amount: Virheellinen mukautettu määrä
|
||||
no_wallet: Ei asennettua salamalompakkoa
|
||||
no_lud16: Salamaosoitetta ei löytynyt
|
||||
profile:
|
||||
past_streams: Aikaisemmat lähetykset
|
||||
settings:
|
||||
button_profile: Muokkaa profiilia
|
||||
button_wallet: Lompakon asetukset
|
||||
profile:
|
||||
display_name: Näytön nimi
|
||||
about: Tietoja
|
||||
nip05: Nostr Osoite
|
||||
lud16: Salama osoite
|
||||
error:
|
||||
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:
|
||||
username: Käyttäjätunnus
|
||||
amber: Kirjaudu sisään Amber kanssa
|
||||
key: Kirjaudu sisään avaimella
|
||||
create: Luo tili
|
||||
error:
|
||||
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
|
158
lib/i18n/translated/fr.i18n.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
upload_avatar: Télécharger l'avatar
|
||||
"@upload_avatar":
|
||||
description: Texte invitant l'utilisateur à cliquer sur l'espace réservé à
|
||||
l'avatar pour commencer le téléchargement
|
||||
most_zapped_streamers: Les Streamers les plus zappés
|
||||
"@most_zapped_streamers":
|
||||
description: Les têtes d'affiche sont listées par zaps.
|
||||
no_user_found: Aucun utilisateur trouvé
|
||||
"@no_user_found":
|
||||
description: Aucun utilisateur n'a été trouvé lors de la recherche
|
||||
anon: Anonyme
|
||||
full_amount_sats: "${n:decimalPattern} sats"
|
||||
viewers:
|
||||
one: 1 téléspectateur
|
||||
other: "${n:decimalPattern} téléspectateurs"
|
||||
"@viewers":
|
||||
description: Nombre de spectateurs du flux
|
||||
"@anon":
|
||||
description: Un utilisateur anonyme
|
||||
stream:
|
||||
status:
|
||||
live: VIVRE
|
||||
ended: FINI
|
||||
planned: PRÉVU
|
||||
started: Commencé à $timestamp
|
||||
notification: ${name} est en ligne !
|
||||
chat:
|
||||
disabled: CHAT DISABLED
|
||||
disabled_timeout: "Le délai expire : $time"
|
||||
timeout(rich): $mod $user a expiré dans le temps pour ${time}
|
||||
"@timeout":
|
||||
description: Message de chat indiquant les événements de dépassement de délai
|
||||
ended: STREAM ENDED
|
||||
"@ended":
|
||||
description: Stream ended footer at bottom of chat
|
||||
zap(rich): $user a zappé $amount sats
|
||||
"@zap":
|
||||
description: Message de chat montrant des zaps de flux
|
||||
write:
|
||||
label: Message écrit
|
||||
"@label":
|
||||
description: Étiquette sur la boîte de saisie du message de chat
|
||||
no_signer: Impossible d'écrire des messages avec le login npub
|
||||
"@no_signer":
|
||||
description: Message d'entrée du chat affiché lorsque l'utilisateur n'est
|
||||
connecté qu'avec pubkey
|
||||
login: Veuillez vous connecter pour envoyer des messages
|
||||
"@login":
|
||||
description: Message d'entrée du chat affiché lorsque l'utilisateur est déconnecté
|
||||
badge:
|
||||
awarded_to: "Attribué à :"
|
||||
"@awarded_to":
|
||||
description: Titre sur la liste des utilisateurs qui ont reçu un badge
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Message de raid par chat vers un autre flux
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: Message de raid sur le chat à partir d'un autre flux
|
||||
countdown: Raid sur $time
|
||||
"@countdown":
|
||||
description: Compte à rebours pour l'auto-raid
|
||||
goal:
|
||||
title: "Objectif : $amount"
|
||||
remaining: "Reste : $amount"
|
||||
complete: COMPLET
|
||||
button:
|
||||
login: Se Connecter
|
||||
logout: Se déconnecter
|
||||
edit_profile: Modifier le Profil
|
||||
"@login":
|
||||
description: Texte du bouton de connexion
|
||||
follow: Suivre
|
||||
"@follow":
|
||||
description: Texte du bouton de suivi
|
||||
unfollow: Ne plus suivre
|
||||
"@unfollow":
|
||||
description: Texte du bouton pour le bouton "unfollow
|
||||
mute: Muet
|
||||
unmute: Retirer sourdine
|
||||
share: Partager
|
||||
save: Sauvegarder
|
||||
connect: Connecter
|
||||
settings: Paramètres
|
||||
embed:
|
||||
article_by: Article par $name
|
||||
note_by: Note par $name
|
||||
live_stream_by: Retransmission en direct sur $name
|
||||
stream_list:
|
||||
following: Abonnements
|
||||
live: En direct
|
||||
planned: Planifié
|
||||
ended: Terminé
|
||||
"@stream_list":
|
||||
description: Rubriques sur les listes de flux par type de flux en direct/fini/prévu, etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Montant personnalisé
|
||||
confirm: Confirmer
|
||||
comment: Commenter
|
||||
button_zap_ready: Zapper $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Ouvrir dans le portefeuille
|
||||
button_connect_wallet: Connecter le portefeuille
|
||||
copy: Copié dans le presse-papiers
|
||||
error:
|
||||
invalid_custom_amount: Montant personnalisé non valide
|
||||
no_wallet: Pas de porte-monnaie électronique installé
|
||||
no_lud16: Pas d'adresse éclair trouvée
|
||||
profile:
|
||||
past_streams: Streams passés
|
||||
settings:
|
||||
button_profile: Modifier le profil
|
||||
button_wallet: Paramètres du portefeuille
|
||||
profile:
|
||||
display_name: Nom d'affichage
|
||||
about: A propos de
|
||||
nip05: Nostr Adresse
|
||||
lud16: Adresse de la foudre
|
||||
error:
|
||||
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:
|
||||
username: Nom d’utilisateur
|
||||
amber: Se connecter avec Amber
|
||||
key: Connexion avec la clé
|
||||
create: Créer un Compte
|
||||
error:
|
||||
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
|
136
lib/i18n/translated/hu.i18n.yaml
Normal file
@ -0,0 +1,136 @@
|
||||
upload_avatar: Avatár feltöltése
|
||||
"@upload_avatar":
|
||||
description: Szöveg, amely arra kéri a felhasználót, hogy a feltöltés
|
||||
megkezdéséhez nyomja meg az avatar helyőrzőt
|
||||
most_zapped_streamers: A legtöbb Zapped Streamers
|
||||
"@most_zapped_streamers":
|
||||
description: Irány a felsorolt top streamerek fölött zaps által
|
||||
no_user_found: Nem talált felhasználó
|
||||
"@no_user_found":
|
||||
description: Kereséskor nem talált felhasználó
|
||||
anon: Névtelen
|
||||
viewers:
|
||||
one: 1 néző
|
||||
other: ${n:decimalPattern} nézők
|
||||
"@viewers":
|
||||
description: A stream nézőinek száma
|
||||
"@anon":
|
||||
description: Egy névtelen felhasználó
|
||||
stream:
|
||||
status:
|
||||
live: ÉLŐ
|
||||
ended: ENDED
|
||||
planned: TERVEZETT
|
||||
started: Elindult $timestamp
|
||||
notification: ${name} elindult!
|
||||
chat:
|
||||
disabled: CHAT KIKAPCSOLVA
|
||||
disabled_timeout: "Az időkorlát lejár: $time"
|
||||
timeout(rich): $mod időzített $user a ${time}számára
|
||||
"@timeout":
|
||||
description: Chat üzenet az időkorlátos események megjelenítésével
|
||||
ended: STREAM MEGSZÜNTETETT
|
||||
"@ended":
|
||||
description: A stream véget ért lábléc a chat alján
|
||||
zap(rich): $user zap-elt $amount sats
|
||||
"@zap":
|
||||
description: Csevegőüzenet, amely stream zapokat mutat
|
||||
write:
|
||||
label: Üzenet írása
|
||||
"@label":
|
||||
description: Címke a csevegőüzenet beviteli mezőjén
|
||||
no_signer: Nem tud üzeneteket írni az npub bejelentkezéssel
|
||||
"@no_signer":
|
||||
description: A csevegés bemeneti üzenete megjelenik, ha a felhasználó csak
|
||||
pubkey-vel van bejelentkezve
|
||||
login: Kérjük, jelentkezzen be az üzenetek küldéséhez
|
||||
"@login":
|
||||
description: A felhasználó kijelentkezésekor megjelenő csevegési beviteli üzenet
|
||||
badge:
|
||||
awarded_to: "Elnyerte:"
|
||||
"@awarded_to":
|
||||
description: Fejléc a jelvényt kapott felhasználók listája fölött
|
||||
raid:
|
||||
to: RAIDING ${name}
|
||||
"@to":
|
||||
description: Chat raid üzenet egy másik folyamba
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: Chat raid üzenet egy másik folyamból
|
||||
countdown: Raiding a ${time} oldalon
|
||||
"@countdown":
|
||||
description: Visszaszámláló időzítő az automatikus lovagláshoz
|
||||
goal:
|
||||
title: "Cél: $amount"
|
||||
remaining: "Maradék: $amount"
|
||||
complete: TELJES
|
||||
button:
|
||||
login: Bejelentkezés
|
||||
logout: Kijelentkezés
|
||||
edit_profile: Profil szerkesztése
|
||||
"@login":
|
||||
description: A bejelentkezési gomb szövege
|
||||
follow: Követés
|
||||
"@follow":
|
||||
description: A követés gomb szövege
|
||||
unfollow: Követés megszüntetése
|
||||
"@unfollow":
|
||||
description: A követés megszüntetése gomb szövege
|
||||
mute: Némítás
|
||||
unmute: Némítás visszavonása
|
||||
share: Megosztás
|
||||
save: Mentés
|
||||
connect: Csatlakozás
|
||||
settings: Beállítások
|
||||
embed:
|
||||
article_by: Cikk ${name}
|
||||
note_by: $name bejegyzése
|
||||
live_stream_by: Élő közvetítés a ${name} oldalon
|
||||
stream_list:
|
||||
following: Követettek bejegyzései
|
||||
live: Élő
|
||||
planned: Tervezett
|
||||
ended: Véget ért
|
||||
"@stream_list":
|
||||
description: A stream-listák címsorai stream-típusonként élő/befejezett/tervezett stb.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Egyéni összeg
|
||||
confirm: Megerősítés
|
||||
comment: Hozzászólás
|
||||
button_zap_ready: Zap $amount satoshi
|
||||
button_zap: Zap
|
||||
button_open_wallet: Megnyitás a pénztárcában
|
||||
button_connect_wallet: Connect Wallet
|
||||
copy: Vágólapra másolva
|
||||
error:
|
||||
invalid_custom_amount: Érvénytelen egyéni összeg
|
||||
no_wallet: Nincs telepített villám tárca
|
||||
no_lud16: Nem talált villámcím
|
||||
profile:
|
||||
past_streams: Múltbeli Streamek
|
||||
settings:
|
||||
button_profile: Profil szerkesztése
|
||||
button_wallet: Pénztárca beállítások
|
||||
profile:
|
||||
display_name: Megjelenített név
|
||||
about: A oldalról
|
||||
nip05: Nostr cím
|
||||
lud16: Villám cím
|
||||
error:
|
||||
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:
|
||||
username: Felhasználónév
|
||||
amber: Bejelentkezés Amber segítségével
|
||||
key: Bejelentkezés kulccsal
|
||||
create: Fiók Létrehozása
|
||||
error:
|
||||
invalid_key: Érvénytelen kulcs
|
158
lib/i18n/translated/it.i18n.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
upload_avatar: Carica Avatar
|
||||
"@upload_avatar":
|
||||
description: Testo che richiede all'utente di premere il segnaposto dell'avatar
|
||||
per iniziare il caricamento
|
||||
most_zapped_streamers: Il maggior numero di streamer bloccati
|
||||
"@most_zapped_streamers":
|
||||
description: Direzione sopra elencata top streamers da zaps
|
||||
no_user_found: Nessun utente trovato
|
||||
"@no_user_found":
|
||||
description: Nessun utente trovato durante la ricerca
|
||||
anon: Anonimo
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 spettatore
|
||||
other: ${n:decimalPattern} spettatori
|
||||
"@viewers":
|
||||
description: Numero di spettatori del flusso
|
||||
"@anon":
|
||||
description: Un utente anonimo
|
||||
stream:
|
||||
status:
|
||||
live: IN DIRETTA
|
||||
ended: FINE
|
||||
planned: PREVISTO
|
||||
started: Avviato $timestamp
|
||||
notification: ${name} è andato in onda!
|
||||
chat:
|
||||
disabled: CHAT DISABILITATA
|
||||
disabled_timeout: "Il timeout scade: $time"
|
||||
timeout(rich): $mod time out $user per ${time}
|
||||
"@timeout":
|
||||
description: Messaggio di chat che mostra gli eventi di timeout
|
||||
ended: STREAM ENDED
|
||||
"@ended":
|
||||
description: Il flusso si è concluso con un piè di pagina in fondo alla chat
|
||||
zap(rich): $user ha effettuato uno zap di $amount sats
|
||||
"@zap":
|
||||
description: Messaggio di chat che mostra gli zap del flusso
|
||||
write:
|
||||
label: Scrivi il messaggio
|
||||
"@label":
|
||||
description: Etichetta della casella di immissione del messaggio di chat
|
||||
no_signer: Impossibile scrivere messaggi con il login npub
|
||||
"@no_signer":
|
||||
description: Messaggio di ingresso alla chat mostrato quando l'utente è connesso
|
||||
solo con la pubkey
|
||||
login: Effettuare il login per inviare messaggi
|
||||
"@login":
|
||||
description: Messaggio di input della chat mostrato quando l'utente è disconnesso
|
||||
badge:
|
||||
awarded_to: "Assegnato a:"
|
||||
"@awarded_to":
|
||||
description: Intestazione dell'elenco degli utenti a cui è stato assegnato un badge
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Messaggio di chat raid in un altro flusso
|
||||
from: RAID DA $name
|
||||
"@from":
|
||||
description: Messaggio di chat raid da un altro flusso
|
||||
countdown: Raid in $time
|
||||
"@countdown":
|
||||
description: Timer per il conto alla rovescia per l'auto-raid
|
||||
goal:
|
||||
title: "Obiettivo: $amount"
|
||||
remaining: "Restante: $amount"
|
||||
complete: COMPLETO
|
||||
button:
|
||||
login: Login
|
||||
logout: Logout
|
||||
edit_profile: Modifica profilo
|
||||
"@login":
|
||||
description: Testo del pulsante per il pulsante di accesso
|
||||
follow: Segui
|
||||
"@follow":
|
||||
description: Testo del pulsante per il pulsante Segui
|
||||
unfollow: Smetti di seguire
|
||||
"@unfollow":
|
||||
description: Testo del pulsante per il pulsante unfollow
|
||||
mute: Silenzia
|
||||
unmute: Riattiva
|
||||
share: Condividi
|
||||
save: Salva
|
||||
connect: Collegare
|
||||
settings: Impostazioni
|
||||
embed:
|
||||
article_by: Articolo di $name
|
||||
note_by: Nota di $name
|
||||
live_stream_by: Streaming in diretta da $name
|
||||
stream_list:
|
||||
following: Seguiti
|
||||
live: Dal vivo
|
||||
planned: Pianificato
|
||||
ended: Terminato
|
||||
"@stream_list":
|
||||
description: Titoli sugli elenchi dei flussi per tipo di flusso
|
||||
live/finito/pianificato ecc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Importo personalizzato
|
||||
confirm: Conferma
|
||||
comment: Commenta
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Aprire nel portafoglio
|
||||
button_connect_wallet: Portafoglio Connect
|
||||
copy: Copiato negli appunti
|
||||
error:
|
||||
invalid_custom_amount: Importo personalizzato non valido
|
||||
no_wallet: Nessun portafoglio Lightning installato
|
||||
no_lud16: Nessun indirizzo di fulmine trovato
|
||||
profile:
|
||||
past_streams: Flussi passati
|
||||
settings:
|
||||
button_profile: Modifica profilo
|
||||
button_wallet: Impostazioni del portafoglio
|
||||
profile:
|
||||
display_name: Nome visualizzato
|
||||
about: Circa
|
||||
nip05: Indirizzo
|
||||
lud16: Indirizzo del fulmine
|
||||
error:
|
||||
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:
|
||||
username: Nome utente
|
||||
amber: Accesso con Amber
|
||||
key: Accesso con chiave
|
||||
create: Crea un account
|
||||
error:
|
||||
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
|
155
lib/i18n/translated/ja.i18n.yaml
Normal file
@ -0,0 +1,155 @@
|
||||
upload_avatar: 画像アップロード
|
||||
"@upload_avatar":
|
||||
description: アバターのプレースホルダーを押してアップロードを開始するよう促すテキスト
|
||||
most_zapped_streamers: 最もザッピングされたストリーマー
|
||||
"@most_zapped_streamers":
|
||||
description: ザップによるリストの上のストリーマーに向かう
|
||||
no_user_found: ユーザーが見つかりません
|
||||
"@no_user_found":
|
||||
description: 検索してもユーザーが見つからない
|
||||
anon: 匿名
|
||||
full_amount_sats: "${n:decimalPattern} サッツ"
|
||||
viewers:
|
||||
one: 1 視聴者
|
||||
other: ${n:decimalPattern} 人が視聴中
|
||||
"@viewers":
|
||||
description: ストリームの視聴者数
|
||||
"@anon":
|
||||
description: 匿名ユーザー
|
||||
stream:
|
||||
status:
|
||||
live: ライブ
|
||||
ended: 終了
|
||||
planned: 予定
|
||||
started: $timestamp を開始
|
||||
notification: ${name} がライブを開始した!
|
||||
chat:
|
||||
disabled: チャット無効
|
||||
disabled_timeout: タイムアウト: $time
|
||||
timeout(rich): $mod タイムアウト $user for ${time}
|
||||
"@timeout":
|
||||
description: タイムアウトイベントを表示するチャットメッセージ
|
||||
ended: 配信終了
|
||||
"@ended":
|
||||
description: チャットの下にストリーム終了のフッター
|
||||
zap(rich): $user が $amount sats をザップしました
|
||||
"@zap":
|
||||
description: ストリームのザッピングを表示するチャットメッセージ
|
||||
write:
|
||||
label: メッセージを書く
|
||||
"@label":
|
||||
description: チャットメッセージ入力ボックスのラベル
|
||||
no_signer: npubログインでメッセージが書けない
|
||||
"@no_signer":
|
||||
description: ユーザーがpubkeyのみでログインしている場合に表示されるチャット入力メッセージ
|
||||
login: メッセージを送信するにはログインしてください
|
||||
"@login":
|
||||
description: ログアウト時に表示されるチャット入力メッセージ
|
||||
badge:
|
||||
awarded_to: 受賞者
|
||||
"@awarded_to":
|
||||
description: バッジを授与されたユーザーのリスト上の見出し
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: 別のストリームへのチャット襲撃メッセージ
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: 他のストリームからのチャット襲撃メッセージ
|
||||
countdown: $timeにおける襲撃
|
||||
"@countdown":
|
||||
description: 自動騎乗のカウントダウン・タイマー
|
||||
goal:
|
||||
title: 目標額: $amount
|
||||
remaining: 残り: $amount
|
||||
complete: 完了
|
||||
button:
|
||||
login: ログイン
|
||||
logout: ログアウト
|
||||
edit_profile: プロフィールを編集
|
||||
"@login":
|
||||
description: ログインボタンのテキスト
|
||||
follow: フォロー
|
||||
"@follow":
|
||||
description: フォローボタンのテキスト
|
||||
unfollow: フォロー解除
|
||||
"@unfollow":
|
||||
description: フォロー解除ボタンのテキスト
|
||||
mute: ミュート
|
||||
unmute: ミュート解除
|
||||
share: 共有
|
||||
save: 保存
|
||||
connect: 接続
|
||||
settings: 設定
|
||||
embed:
|
||||
article_by: 記事: $name
|
||||
note_by: $name の投稿
|
||||
live_stream_by: ライブ・ストリーム $name
|
||||
stream_list:
|
||||
following: フォロー中
|
||||
live: ライブ配信中
|
||||
planned: 予定あり
|
||||
ended: 終了しました
|
||||
"@stream_list":
|
||||
description: ライブ/終了/予定など、ストリーム・タイプ別のストリーム・リストの見出し。
|
||||
zap:
|
||||
title: $name をザップ
|
||||
custom_amount: カスタム金額
|
||||
confirm: 確認
|
||||
comment: コメント
|
||||
button_zap_ready: $amount satsをザップする
|
||||
button_zap: ザップ
|
||||
button_open_wallet: ウォレットで開く
|
||||
button_connect_wallet: コネクトウォレット
|
||||
copy: クリップボードにコピー
|
||||
error:
|
||||
invalid_custom_amount: 無効なカスタム金額
|
||||
no_wallet: Lightningウォレット未装着
|
||||
no_lud16: 雷アドレスが見つかりません
|
||||
profile:
|
||||
past_streams: 過去の配信
|
||||
settings:
|
||||
button_profile: プロフィール編集
|
||||
button_wallet: ウォレットの設定
|
||||
profile:
|
||||
display_name: 表示名
|
||||
about: について
|
||||
nip05: 住所
|
||||
lud16: ライトニングアドレス
|
||||
error:
|
||||
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:
|
||||
username: ユーザー名
|
||||
amber: 琥珀でログイン
|
||||
key: キーでログイン
|
||||
create: アカウントを作成する
|
||||
error:
|
||||
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: ストリームの開始に失敗しました。
|
155
lib/i18n/translated/ko.i18n.yaml
Normal file
@ -0,0 +1,155 @@
|
||||
upload_avatar: 아바타 업로드
|
||||
"@upload_avatar":
|
||||
description: 아바타 플레이스홀더를 눌러 업로드를 시작하라는 메시지를 표시하는 텍스트
|
||||
most_zapped_streamers: 가장 많이 재핑된 스트리머
|
||||
"@most_zapped_streamers":
|
||||
description: 나열된 상위 스트리머를 잽별로 살펴보기
|
||||
no_user_found: 사용자를 찾을 수 없습니다.
|
||||
"@no_user_found":
|
||||
description: 검색 시 사용자를 찾을 수 없음
|
||||
anon: Anon
|
||||
full_amount_sats: "${n:decimalPattern} sats"
|
||||
viewers:
|
||||
one: 시청자 1명
|
||||
other: "{n:decimalPattern} 시청자"
|
||||
"@viewers":
|
||||
description: 스트림 시청자 수
|
||||
"@anon":
|
||||
description: 익명 사용자
|
||||
stream:
|
||||
status:
|
||||
live: 라이브
|
||||
ended: 종료
|
||||
planned: 계획된
|
||||
started: 시작 $timestamp
|
||||
notification: ${name} 라이브가 시작되었습니다!
|
||||
chat:
|
||||
disabled: 채팅 사용 안 함
|
||||
disabled_timeout: "시간 초과가 만료되었습니다: $time"
|
||||
timeout(rich): $mod 시간 초과됨 $user ${time}
|
||||
"@timeout":
|
||||
description: 시간 초과 이벤트를 표시하는 채팅 메시지
|
||||
ended: 스트림 종료
|
||||
"@ended":
|
||||
description: 채팅 하단의 스트림 종료 푸터
|
||||
zap(rich): $user ZAPP $amount SATS
|
||||
"@zap":
|
||||
description: 채팅 메시지 스트림 끊김 표시
|
||||
write:
|
||||
label: 메시지 작성
|
||||
"@label":
|
||||
description: 채팅 메시지 입력 상자의 라벨
|
||||
no_signer: npub 로그인으로 메시지를 작성할 수 없습니다.
|
||||
"@no_signer":
|
||||
description: 사용자가 공개 키로만 로그인한 경우에 표시되는 채팅 입력 메시지
|
||||
login: 메시지를 보내려면 로그인하세요.
|
||||
"@login":
|
||||
description: 사용자가 로그아웃할 때 표시되는 채팅 입력 메시지
|
||||
badge:
|
||||
awarded_to: 수상 대상
|
||||
"@awarded_to":
|
||||
description: 배지를 받은 사용자 목록으로 이동하기
|
||||
raid:
|
||||
to: RAIDing $name
|
||||
"@to":
|
||||
description: 다른 스트림으로 채팅 레이드 메시지 보내기
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: 다른 스트림의 채팅 레이드 메시지
|
||||
countdown: $time에서 레이드
|
||||
"@countdown":
|
||||
description: 자동 레이드를 위한 카운트다운 타이머
|
||||
goal:
|
||||
title: "목표: $amount"
|
||||
remaining: "남음: $amount"
|
||||
complete: 완료
|
||||
button:
|
||||
login: 로그인
|
||||
logout: 로그아웃
|
||||
edit_profile: 프로필 수정
|
||||
"@login":
|
||||
description: 로그인 버튼의 버튼 텍스트
|
||||
follow: 팔로우
|
||||
"@follow":
|
||||
description: 팔로우 버튼의 버튼 텍스트
|
||||
unfollow: 언팔로우
|
||||
"@unfollow":
|
||||
description: 언팔로우 버튼의 버튼 텍스트
|
||||
mute: 뮤트
|
||||
unmute: 뮤트 해제
|
||||
share: 공유
|
||||
save: 저장
|
||||
connect: 연결
|
||||
settings: 설정
|
||||
embed:
|
||||
article_by: "작성자: $name"
|
||||
note_by: "노트 작성됨: $name"
|
||||
live_stream_by: "라이브 스트리밍: $name"
|
||||
stream_list:
|
||||
following: 팔로잉
|
||||
live: 라이브
|
||||
planned: 계획된
|
||||
ended: 종료됨
|
||||
"@stream_list":
|
||||
description: 실시간/종료/예정 등 스트림 유형별로 스트림 목록의 제목을 표시합니다.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: 사용자 지정 금액
|
||||
confirm: 확인
|
||||
comment: 댓글
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: 지갑에서 열기
|
||||
button_connect_wallet: 지갑 연결
|
||||
copy: 클립보드에 복사
|
||||
error:
|
||||
invalid_custom_amount: 잘못된 사용자 지정 금액
|
||||
no_wallet: 라이트닝 월렛이 설치되지 않았습니다.
|
||||
no_lud16: 번개 주소를 찾을 수 없습니다.
|
||||
profile:
|
||||
past_streams: 과거 스트림
|
||||
settings:
|
||||
button_profile: 프로필 수정
|
||||
button_wallet: 지갑 설정
|
||||
profile:
|
||||
display_name: 표시 이름
|
||||
about: 정보
|
||||
nip05: 노스트르 주소
|
||||
lud16: 라이트닝 주소
|
||||
error:
|
||||
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:
|
||||
username: 사용자 이름
|
||||
amber: Amber로 로그인
|
||||
key: 키로 로그인
|
||||
create: 계정 만들기
|
||||
error:
|
||||
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: 스트림 시작에 실패했습니다. 잔액을 확인해 주세요.
|
158
lib/i18n/translated/nl.i18n.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
upload_avatar: Avatar uploaden
|
||||
"@upload_avatar":
|
||||
description: Tekst die de gebruiker vraagt om op de avatar-plaatshouder te
|
||||
klikken om te beginnen met uploaden
|
||||
most_zapped_streamers: Meeste Zapped Streamers
|
||||
"@most_zapped_streamers":
|
||||
description: Koers over beursgenoteerde topstreamers door zaps
|
||||
no_user_found: Geen gebruiker gevonden
|
||||
"@no_user_found":
|
||||
description: Geen gebruiker gevonden bij het zoeken
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 kijker
|
||||
other: ${n:decimalPattern} kijkers
|
||||
"@viewers":
|
||||
description: Aantal kijkers van de stream
|
||||
"@anon":
|
||||
description: Een anonieme gebruiker
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: GESLOTEN
|
||||
planned: GEPLAND
|
||||
started: Begonnen met $timestamp
|
||||
notification: ${name} ging live!
|
||||
chat:
|
||||
disabled: CHAT UITGESCHAKELD
|
||||
disabled_timeout: "Time-out loopt af: $time"
|
||||
timeout(rich): $mod timed out $user voor ${time}
|
||||
"@timeout":
|
||||
description: Chatbericht met time-outgebeurtenissen
|
||||
ended: STREAM BEËINDIGD
|
||||
"@ended":
|
||||
description: Voettekst einde stream onderaan chat
|
||||
zap(rich): $user zapped $amount sats
|
||||
"@zap":
|
||||
description: Chatbericht met stream zaps
|
||||
write:
|
||||
label: Schrijf bericht
|
||||
"@label":
|
||||
description: Label op het invoerveld voor chatberichten
|
||||
no_signer: Kan geen berichten schrijven met npub login
|
||||
"@no_signer":
|
||||
description: Chatinvoerbericht getoond wanneer de gebruiker alleen is ingelogd
|
||||
met pubkey
|
||||
login: Log in om berichten te verzenden
|
||||
"@login":
|
||||
description: Chatinvoerbericht dat wordt weergegeven wanneer de gebruiker is
|
||||
uitgelogd
|
||||
badge:
|
||||
awarded_to: "Toegekend aan:"
|
||||
"@awarded_to":
|
||||
description: Kop boven de lijst met gebruikers die een badge hebben gekregen
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Chat raid bericht naar een andere stream
|
||||
from: RAID VAN $name
|
||||
"@from":
|
||||
description: Chat invalbericht van een andere stream
|
||||
countdown: Overvallen in $time
|
||||
"@countdown":
|
||||
description: Afteltimer voor automatisch rijden
|
||||
goal:
|
||||
title: "Doel: $amount"
|
||||
remaining: "Overblijvend: $amount"
|
||||
complete: COMPLETE
|
||||
button:
|
||||
login: Inloggen
|
||||
logout: Uitloggen
|
||||
edit_profile: Bewerk Profiel
|
||||
"@login":
|
||||
description: Knoptekst voor de aanmeldknop
|
||||
follow: Volgen
|
||||
"@follow":
|
||||
description: Knoptekst voor de volgknop
|
||||
unfollow: Ontvolgen
|
||||
"@unfollow":
|
||||
description: Knoptekst voor de knop Ontvolgen
|
||||
mute: Dempen
|
||||
unmute: Niet langer negeren
|
||||
share: Deel
|
||||
save: Opslaan
|
||||
connect: Maak verbinding met
|
||||
settings: Instellingen
|
||||
embed:
|
||||
article_by: Artikel door $name
|
||||
note_by: Opmerking door $name
|
||||
live_stream_by: Live stream via $name
|
||||
stream_list:
|
||||
following: Volgt
|
||||
live: Live
|
||||
planned: Gepland
|
||||
ended: Beëindigd
|
||||
"@stream_list":
|
||||
description: Rubrieken op streamlijsten per streamtype live/beëindigd/gepland etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Aangepast bedrag
|
||||
confirm: Bevestig
|
||||
comment: Opmerking
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Openen in portefeuille
|
||||
button_connect_wallet: Portemonnee aansluiten
|
||||
copy: Gekopieerd naar klembord
|
||||
error:
|
||||
invalid_custom_amount: Ongeldig aangepast bedrag
|
||||
no_wallet: Geen bliksemportemonnee geïnstalleerd
|
||||
no_lud16: Geen bliksemadres gevonden
|
||||
profile:
|
||||
past_streams: Afgelopen Streams
|
||||
settings:
|
||||
button_profile: Profiel bewerken
|
||||
button_wallet: Portemonnee-instellingen
|
||||
profile:
|
||||
display_name: Naam weergeven
|
||||
about: Over
|
||||
nip05: Nostr Adres
|
||||
lud16: Bliksemadres
|
||||
error:
|
||||
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:
|
||||
username: Gebruikersnaam
|
||||
amber: Inloggen met Amber
|
||||
key: Inloggen met sleutel
|
||||
create: Account aanmaken
|
||||
error:
|
||||
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
|
158
lib/i18n/translated/pl.i18n.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
upload_avatar: Prześlij awatar
|
||||
"@upload_avatar":
|
||||
description: Tekst zachęcający użytkownika do kliknięcia symbolu zastępczego
|
||||
awatara w celu rozpoczęcia przesyłania.
|
||||
most_zapped_streamers: Większość zapped streamerów
|
||||
"@most_zapped_streamers":
|
||||
description: Przechodzenie nad wymienionymi topowymi streamerami przez zapy
|
||||
no_user_found: Nie znaleziono użytkownika
|
||||
"@no_user_found":
|
||||
description: Nie znaleziono użytkownika podczas wyszukiwania
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 przeglądarka
|
||||
other: "{n:decimalPattern} widzów"
|
||||
"@viewers":
|
||||
description: Liczba widzów strumienia
|
||||
"@anon":
|
||||
description: Anonimowy użytkownik
|
||||
stream:
|
||||
status:
|
||||
live: NA ŻYWO
|
||||
ended: ZAKOŃCZONY
|
||||
planned: PLANOWANE
|
||||
started: Start $timestamp
|
||||
notification: ${name} został uruchomiony!
|
||||
chat:
|
||||
disabled: CZAT WYŁĄCZONY
|
||||
disabled_timeout: "Upłynął limit czasu: $time"
|
||||
timeout(rich): $mod upłynął limit czasu $user dla ${time}
|
||||
"@timeout":
|
||||
description: Komunikat czatu pokazujący zdarzenia przekroczenia limitu czasu
|
||||
ended: TRANSMISJA ZAKOŃCZONA
|
||||
"@ended":
|
||||
description: Stream zakończył stopkę na dole czatu
|
||||
zap(rich): $user zapped $amount sats
|
||||
"@zap":
|
||||
description: Wiadomość na czacie pokazująca zapy strumienia
|
||||
write:
|
||||
label: Napisz wiadomość
|
||||
"@label":
|
||||
description: Etykieta w polu wprowadzania wiadomości czatu
|
||||
no_signer: Nie można pisać wiadomości z loginem npub
|
||||
"@no_signer":
|
||||
description: Komunikat wejściowy czatu wyświetlany, gdy użytkownik jest
|
||||
zalogowany tylko za pomocą klucza pubkey
|
||||
login: Zaloguj się, aby wysyłać wiadomości
|
||||
"@login":
|
||||
description: Komunikat wejściowy czatu wyświetlany, gdy użytkownik jest wylogowany
|
||||
badge:
|
||||
awarded_to: "Przyznano:"
|
||||
"@awarded_to":
|
||||
description: Nagłówek nad listą użytkowników, którzy otrzymali odznakę
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Przesyłanie wiadomości na czacie do innego strumienia
|
||||
from: RAID Z $name
|
||||
"@from":
|
||||
description: Nalot na czat z innego strumienia
|
||||
countdown: Naloty w $time
|
||||
"@countdown":
|
||||
description: Zegar odliczający czas do automatycznej jazdy
|
||||
goal:
|
||||
title: "Cel: $amount"
|
||||
remaining: "Pozostałe: $amount"
|
||||
complete: ZAKOŃCZONE
|
||||
button:
|
||||
login: Logowanie
|
||||
logout: Wylogowanie
|
||||
edit_profile: Edytuj profil
|
||||
"@login":
|
||||
description: Tekst przycisku logowania
|
||||
follow: Śledź
|
||||
"@follow":
|
||||
description: Tekst przycisku dla przycisku śledzenia
|
||||
unfollow: Nie obserwuj
|
||||
"@unfollow":
|
||||
description: Tekst przycisku cofnięcia obserwowania
|
||||
mute: Wyciszenie
|
||||
unmute: Wyłącz wyciszenie
|
||||
share: Udział
|
||||
save: Zapisz
|
||||
connect: Połączenie
|
||||
settings: Ustawienia
|
||||
embed:
|
||||
article_by: Artykuł autorstwa $name
|
||||
note_by: Uwaga $name
|
||||
live_stream_by: Transmisja na żywo przez $name
|
||||
stream_list:
|
||||
following: Następujący
|
||||
live: Na żywo
|
||||
planned: Planowane
|
||||
ended: Zakończony
|
||||
"@stream_list":
|
||||
description: Nagłówki na listach strumieni według typu strumienia na żywo /
|
||||
zakończony / planowany itp.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Kwota niestandardowa
|
||||
confirm: Potwierdzenie
|
||||
comment: Komentarz
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Otwórz w portfelu
|
||||
button_connect_wallet: Connect Wallet
|
||||
copy: Skopiowane do schowka
|
||||
error:
|
||||
invalid_custom_amount: Nieprawidłowa kwota niestandardowa
|
||||
no_wallet: Brak zainstalowanego portfela Lightning
|
||||
no_lud16: Nie znaleziono adresu pioruna
|
||||
profile:
|
||||
past_streams: Poprzednie strumienie
|
||||
settings:
|
||||
button_profile: Edytuj profil
|
||||
button_wallet: Ustawienia portfela
|
||||
profile:
|
||||
display_name: Wyświetlana nazwa
|
||||
about: O
|
||||
nip05: Adres Nostr
|
||||
lud16: Adres błyskawicy
|
||||
error:
|
||||
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:
|
||||
username: Nazwa użytkownika
|
||||
amber: Zaloguj się za pomocą Amber
|
||||
key: Logowanie za pomocą klucza
|
||||
create: Utwórz konto
|
||||
error:
|
||||
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
|
158
lib/i18n/translated/pt.i18n.yaml
Normal file
@ -0,0 +1,158 @@
|
||||
upload_avatar: Carregar Avatar
|
||||
"@upload_avatar":
|
||||
description: Texto solicitando que o usuário clique no espaço reservado do
|
||||
avatar para iniciar o upload
|
||||
most_zapped_streamers: Streamers mais afetados
|
||||
"@most_zapped_streamers":
|
||||
description: Dirigindo-se para as principais serpentinas listadas por zaps
|
||||
no_user_found: Nenhum usuário encontrado
|
||||
"@no_user_found":
|
||||
description: Nenhum usuário foi encontrado durante a pesquisa
|
||||
anon: Anônimo
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 visualizador
|
||||
other: ${n:decimalPattern} espectadores
|
||||
"@viewers":
|
||||
description: Número de espectadores da transmissão
|
||||
"@anon":
|
||||
description: Um usuário anônimo
|
||||
stream:
|
||||
status:
|
||||
live: AO VIVO
|
||||
ended: FINALIZADO
|
||||
planned: PLANEJADO
|
||||
started: Iniciado em $timestamp
|
||||
notification: ${name} foi ao ar!
|
||||
chat:
|
||||
disabled: BATE-PAPO DESATIVADO
|
||||
disabled_timeout: "O tempo limite expira: $time"
|
||||
timeout(rich): $mod Tempo esgotado $user para ${time}
|
||||
"@timeout":
|
||||
description: Mensagem de bate-papo mostrando eventos de tempo limite
|
||||
ended: TRANSMISSÃO ENCERRADA
|
||||
"@ended":
|
||||
description: O rodapé do fluxo terminou na parte inferior do bate-papo
|
||||
zap(rich): $user zapeou $amount sats
|
||||
"@zap":
|
||||
description: Mensagem de bate-papo mostrando zaps de fluxo
|
||||
write:
|
||||
label: Escrever mensagem
|
||||
"@label":
|
||||
description: Rótulo na caixa de entrada da mensagem de bate-papo
|
||||
no_signer: Não é possível escrever mensagens com o login do npub
|
||||
"@no_signer":
|
||||
description: Mensagem de entrada de bate-papo exibida quando o usuário está
|
||||
conectado apenas com a pubkey
|
||||
login: Faça login para enviar mensagens
|
||||
"@login":
|
||||
description: Mensagem de entrada de chat exibida quando o usuário está desconectado
|
||||
badge:
|
||||
awarded_to: "Prêmio concedido a:"
|
||||
"@awarded_to":
|
||||
description: Cabeçalho sobre a lista de usuários que receberam um emblema
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Mensagem de invasão de bate-papo para outro fluxo
|
||||
from: RAID DE $name
|
||||
"@from":
|
||||
description: Mensagem de invasão de bate-papo de outro fluxo
|
||||
countdown: Incursões em $time
|
||||
"@countdown":
|
||||
description: Cronômetro de contagem regressiva para o ataque automático
|
||||
goal:
|
||||
title: "Meta: $amount"
|
||||
remaining: "Restante: $amount"
|
||||
complete: COMPLETO
|
||||
button:
|
||||
login: Entrar
|
||||
logout: Sair
|
||||
edit_profile: Editar perfil
|
||||
"@login":
|
||||
description: Texto do botão para o botão de login
|
||||
follow: Seguir
|
||||
"@follow":
|
||||
description: Texto do botão para o botão Seguir
|
||||
unfollow: Deixar de seguir
|
||||
"@unfollow":
|
||||
description: Texto do botão para o botão deixar de seguir
|
||||
mute: Silenciar
|
||||
unmute: Desmutar
|
||||
share: Compartilhar
|
||||
save: Salvar
|
||||
connect: Conectar
|
||||
settings: Configurações
|
||||
embed:
|
||||
article_by: Artigo de $name
|
||||
note_by: Nota de $name
|
||||
live_stream_by: Transmissão ao vivo pelo site $name
|
||||
stream_list:
|
||||
following: Seguindo
|
||||
live: Ao vivo
|
||||
planned: Planejado
|
||||
ended: Encerrado
|
||||
"@stream_list":
|
||||
description: Cabeçalhos nas listas de transmissões por tipo de transmissão ao
|
||||
vivo/terminada/planejada etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Valor personalizado
|
||||
confirm: Confirmar
|
||||
comment: Comentar
|
||||
button_zap_ready: Enviar Zap de $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Abrir na carteira
|
||||
button_connect_wallet: Conectar carteira
|
||||
copy: Copiado para a área de transferência
|
||||
error:
|
||||
invalid_custom_amount: Valor personalizado inválido
|
||||
no_wallet: Nenhuma carteira lightning instalada
|
||||
no_lud16: Nenhum endereço de raio encontrado
|
||||
profile:
|
||||
past_streams: Transmissões Passadas
|
||||
settings:
|
||||
button_profile: Editar perfil
|
||||
button_wallet: Configurações da carteira
|
||||
profile:
|
||||
display_name: Nome de exibição
|
||||
about: Sobre
|
||||
nip05: Endereço Nostr
|
||||
lud16: Endereço para relâmpagos
|
||||
error:
|
||||
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:
|
||||
username: Nome de usuário
|
||||
amber: Faça login com o Amber
|
||||
key: Login com chave
|
||||
create: Criar Conta
|
||||
error:
|
||||
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
|
159
lib/i18n/translated/ro.i18n.yaml
Normal file
@ -0,0 +1,159 @@
|
||||
upload_avatar: Încărcați Avatar
|
||||
"@upload_avatar":
|
||||
description: Text care solicită utilizatorului să atingă marcajul avatar pentru
|
||||
a începe încărcarea
|
||||
most_zapped_streamers: Cele mai multe Streamers Zapped
|
||||
"@most_zapped_streamers":
|
||||
description: Cap peste streamers de top enumerate de zaps
|
||||
no_user_found: Niciun utilizator găsit
|
||||
"@no_user_found":
|
||||
description: Nu s-a găsit niciun utilizator la căutare
|
||||
anon: Anon
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 vizualizator
|
||||
other: ${n:decimalPattern} telespectatori
|
||||
"@viewers":
|
||||
description: Numărul de telespectatori ai fluxului
|
||||
"@anon":
|
||||
description: Un utilizator anonim
|
||||
stream:
|
||||
status:
|
||||
live: ÎN DIRECT
|
||||
ended: TERMINAT
|
||||
planned: PLANIFICATE
|
||||
started: A început $timestamp
|
||||
notification: ${name} a intrat în direct!
|
||||
chat:
|
||||
disabled: CHAT DEZACTIVAT
|
||||
disabled_timeout: "Timpul expiră: $time"
|
||||
timeout(rich): $mod Timed out $user pentru ${time}
|
||||
"@timeout":
|
||||
description: Mesaj de chat care afișează evenimentele de timeout
|
||||
ended: STREAM ÎNCHEIAT
|
||||
"@ended":
|
||||
description: Stream a încheiat footer-ul în partea de jos a chat-ului
|
||||
zap(rich): $user zapped $amount sats
|
||||
"@zap":
|
||||
description: Mesaj de chat care arată zapsuri de flux
|
||||
write:
|
||||
label: Scrieți mesajul
|
||||
"@label":
|
||||
description: Etichetă pe caseta de introducere a mesajului de chat
|
||||
no_signer: Nu se pot scrie mesaje cu autentificarea npub
|
||||
"@no_signer":
|
||||
description: Mesajul de intrare în chat afișat atunci când utilizatorul este
|
||||
conectat doar cu pubkey
|
||||
login: Vă rugăm să vă autentificați pentru a trimite mesaje
|
||||
"@login":
|
||||
description: Mesajul de intrare în chat afișat atunci când utilizatorul este
|
||||
deconectat
|
||||
badge:
|
||||
awarded_to: "Premiat pentru:"
|
||||
"@awarded_to":
|
||||
description: Antet peste lista de utilizatori care au primit o insignă
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Chat mesaj raid la un alt flux
|
||||
from: RAID DE LA $name
|
||||
"@from":
|
||||
description: Chat raid mesaj din alt flux
|
||||
countdown: Raiduri în $time
|
||||
"@countdown":
|
||||
description: Cronometru cu numărătoare inversă pentru auto-raid
|
||||
goal:
|
||||
title: "Obiectiv: $amount"
|
||||
remaining: "Rămase: $amount"
|
||||
complete: COMPLET
|
||||
button:
|
||||
login: Autentificare
|
||||
logout: Ieșire
|
||||
edit_profile: Editare profil
|
||||
"@login":
|
||||
description: Textul butonului pentru butonul de conectare
|
||||
follow: Urmați
|
||||
"@follow":
|
||||
description: Textul butonului pentru butonul de urmărire
|
||||
unfollow: Unfollow
|
||||
"@unfollow":
|
||||
description: Textul butonului pentru butonul unfollow
|
||||
mute: Mut
|
||||
unmute: Dezactivați
|
||||
share: Share
|
||||
save: Salvați
|
||||
connect: Conectare
|
||||
settings: Setări
|
||||
embed:
|
||||
article_by: Articol de $name
|
||||
note_by: Notă de la $name
|
||||
live_stream_by: Transmisiune live prin $name
|
||||
stream_list:
|
||||
following: În urma
|
||||
live: În direct
|
||||
planned: Planificate
|
||||
ended: Încheiat
|
||||
"@stream_list":
|
||||
description: Rubrici pe listele de fluxuri în funcție de tipul fluxului în
|
||||
direct/terminat/planificat etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Sumă personalizată
|
||||
confirm: Confirmați
|
||||
comment: Comentariu
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Deschide în portofel
|
||||
button_connect_wallet: Conectați portofelul
|
||||
copy: Copiat în clipboard
|
||||
error:
|
||||
invalid_custom_amount: Sumă personalizată invalidă
|
||||
no_wallet: Nu este instalat niciun portofel Lightning
|
||||
no_lud16: Nu a fost găsită nicio adresă de fulgere
|
||||
profile:
|
||||
past_streams: Fluxuri trecute
|
||||
settings:
|
||||
button_profile: Editare profil
|
||||
button_wallet: Setări portofel
|
||||
profile:
|
||||
display_name: Nume afișat
|
||||
about: Despre
|
||||
nip05: Adresa Nostr
|
||||
lud16: Adresa fulgerului
|
||||
error:
|
||||
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:
|
||||
username: Nume utilizator
|
||||
amber: Conectați-vă cu Amber
|
||||
key: Autentificare cu cheie
|
||||
create: Creare cont
|
||||
error:
|
||||
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
|
160
lib/i18n/translated/ru.i18n.yaml
Normal file
@ -0,0 +1,160 @@
|
||||
upload_avatar: Загрузить аватар
|
||||
"@upload_avatar":
|
||||
description: Текст, побуждающий пользователя нажать кнопку с изображением
|
||||
аватара, чтобы начать загрузку
|
||||
most_zapped_streamers: Самые прыткие стримеры
|
||||
"@most_zapped_streamers":
|
||||
description: Направляясь по перечисленным верхним стримерам с помощью запс
|
||||
no_user_found: Пользователь не найден
|
||||
"@no_user_found":
|
||||
description: Пользователь не найден при поиске
|
||||
anon: Аноним
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 зритель
|
||||
other: ${n:decimalPattern} зрителей
|
||||
"@viewers":
|
||||
description: Количество зрителей потока
|
||||
"@anon":
|
||||
description: Анонимный пользователь
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: КОНЕЦ
|
||||
planned: ПЛАНИРУЕМЫЙ
|
||||
started: Начало $timestamp
|
||||
notification: ${name} запустился!
|
||||
chat:
|
||||
disabled: ЧАТ ОТКЛЮЧЕН
|
||||
disabled_timeout: "Таймаут истекает: $time"
|
||||
timeout(rich): $mod тайм-аут $user для ${time}
|
||||
"@timeout":
|
||||
description: Сообщение в чате, показывающее события по тайм-ауту
|
||||
ended: ТРАНСЛЯЦИЯ ОКОНЧЕНА
|
||||
"@ended":
|
||||
description: Поток закончился в нижней части чата
|
||||
zap(rich): $user запнул $amount сат
|
||||
"@zap":
|
||||
description: Сообщение в чате, отображающее потоковые зазоры
|
||||
write:
|
||||
label: Написать сообщение
|
||||
"@label":
|
||||
description: Надпись на поле ввода сообщения чата
|
||||
no_signer: Невозможно писать сообщения с логином npub
|
||||
"@no_signer":
|
||||
description: Сообщение о входе в чат, отображаемое при входе пользователя только
|
||||
с pubkey
|
||||
login: Пожалуйста, войдите в систему, чтобы отправлять сообщения
|
||||
"@login":
|
||||
description: Сообщение о входе в чат, отображаемое при выходе пользователя из
|
||||
системы
|
||||
badge:
|
||||
awarded_to: "Награждается:"
|
||||
"@awarded_to":
|
||||
description: Заголовок над списком пользователей, награжденных значком
|
||||
raid:
|
||||
to: RAIDING $name
|
||||
"@to":
|
||||
description: Сообщение о рейде в чате в другой поток
|
||||
from: RAID FROM $name
|
||||
"@from":
|
||||
description: Сообщение о рейде в чате из другого потока
|
||||
countdown: Рейды в $time
|
||||
"@countdown":
|
||||
description: Таймер обратного отсчета для автопоездки
|
||||
goal:
|
||||
title: "Цель: $amount"
|
||||
remaining: "Осталось: $amount"
|
||||
complete: КОМПЛЕКТ
|
||||
button:
|
||||
login: Логин
|
||||
logout: Выйти
|
||||
edit_profile: Редактировать профиль
|
||||
"@login":
|
||||
description: Текст кнопки для входа в систему
|
||||
follow: Подписаться
|
||||
"@follow":
|
||||
description: Текст кнопки для кнопки следования
|
||||
unfollow: Отписаться
|
||||
"@unfollow":
|
||||
description: Текст кнопки для кнопки "Развернуть
|
||||
mute: Заглушить
|
||||
unmute: Включить уведомления
|
||||
share: Поделиться
|
||||
save: Сохранить
|
||||
connect: Подключайтесь
|
||||
settings: Настройки
|
||||
embed:
|
||||
article_by: Статья $name
|
||||
note_by: Заметка на сайте $name
|
||||
live_stream_by: "Прямая трансляция: $name"
|
||||
stream_list:
|
||||
following: Подписки
|
||||
live: Прямой эфир
|
||||
planned: Запланировано
|
||||
ended: Завершено
|
||||
"@stream_list":
|
||||
description: Заголовки в списках потоков по типу потока -
|
||||
живой/законченный/запланированный и т. д.
|
||||
zap:
|
||||
title: Запнуть ($name
|
||||
custom_amount: Пользовательская сумма
|
||||
confirm: Подтвердить
|
||||
comment: Комментарий
|
||||
button_zap_ready: Запнуть $amount сат
|
||||
button_zap: Зап
|
||||
button_open_wallet: Открыть в кошельке
|
||||
button_connect_wallet: Подключить кошелек
|
||||
copy: Скопировано в буфер обмена
|
||||
error:
|
||||
invalid_custom_amount: Недопустимая пользовательская сумма
|
||||
no_wallet: Кошелек молнии не установлен
|
||||
no_lud16: Адрес молнии не найден
|
||||
profile:
|
||||
past_streams: Предыдущие трансляции
|
||||
settings:
|
||||
button_profile: Редактировать профиль
|
||||
button_wallet: Настройки кошелька
|
||||
profile:
|
||||
display_name: Отображаемое имя
|
||||
about: О сайте
|
||||
nip05: Адрес Ностр
|
||||
lud16: Адрес молнии
|
||||
error:
|
||||
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:
|
||||
username: Имя пользователя
|
||||
amber: Войти с помощью Amber
|
||||
key: Вход в систему с помощью ключа
|
||||
create: Создать аккаунт
|
||||
error:
|
||||
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: Запуск потока не удался, пожалуйста, проверьте баланс
|
157
lib/i18n/translated/sv.i18n.yaml
Normal file
@ -0,0 +1,157 @@
|
||||
upload_avatar: Ladda upp avatar
|
||||
"@upload_avatar":
|
||||
description: Text som uppmanar användaren att trycka på avatar platshållaren för
|
||||
att påbörja uppladdningen
|
||||
most_zapped_streamers: De flest zappade streamers
|
||||
"@most_zapped_streamers":
|
||||
description: Rubrik över listade topp streamers av zaps
|
||||
no_user_found: Ingen användare hittades
|
||||
"@no_user_found":
|
||||
description: Ingen användare hittades vid sökning
|
||||
anon: Anno
|
||||
full_amount_sats: ${n:decimalPattern} sats
|
||||
viewers:
|
||||
one: 1 tittare
|
||||
other: ${n:decimalPattern} tittare
|
||||
"@viewers":
|
||||
description: Antal tittare på strömmingen
|
||||
"@anon":
|
||||
description: En anonym användare
|
||||
stream:
|
||||
status:
|
||||
live: LIVE
|
||||
ended: AVSLUTAD
|
||||
planned: PLANERADE
|
||||
started: Startad $timestamp
|
||||
notification: ${name} gick live!
|
||||
chat:
|
||||
disabled: CHAT AVSTÄNGD
|
||||
disabled_timeout: "Tidsgränsen går ut: $time"
|
||||
timeout(rich): $mod tidsbegränsad $user för ${time}
|
||||
"@timeout":
|
||||
description: Chattmeddelande som visar timeout-händelser
|
||||
ended: STREAM AVSLUTAD
|
||||
"@ended":
|
||||
description: Streama slutade sidfot längst ned i chatten
|
||||
zap(rich): $user zapped $amount sats
|
||||
"@zap":
|
||||
description: Chattmeddelande som visar strömavbrott
|
||||
write:
|
||||
label: Skriv meddelande
|
||||
"@label":
|
||||
description: Etikett på inmatningsrutan för chattmeddelanden
|
||||
no_signer: Det går inte att skriva meddelanden med n-pub inloggning
|
||||
"@no_signer":
|
||||
description: Chattinmatningsmeddelande som visas när användaren endast är
|
||||
inloggad med publik nyckel
|
||||
login: Logga in för att skicka meddelanden
|
||||
"@login":
|
||||
description: Chattinmatningsmeddelande som visas när användaren är utloggad
|
||||
badge:
|
||||
awarded_to: "Tilldelas till:"
|
||||
"@awarded_to":
|
||||
description: Rubrik över listan över användare som tilldelas ett märke
|
||||
raid:
|
||||
to: RAIDING ${name}
|
||||
"@to":
|
||||
description: Chatt raid meddelande till en annan ström
|
||||
from: RAID FRÅN ${name}
|
||||
"@from":
|
||||
description: Chatt raid meddelande från en annan ström
|
||||
countdown: Radiering i ${time}
|
||||
"@countdown":
|
||||
description: Nedräkningstimer för auto- radiering
|
||||
goal:
|
||||
title: "Mål: $amount"
|
||||
remaining: "Kvarvarande: $amount"
|
||||
complete: KOMPLETT
|
||||
button:
|
||||
login: Logga in
|
||||
logout: Logga ut
|
||||
edit_profile: Redigera profil
|
||||
"@login":
|
||||
description: Knapptext för inloggningsknappen
|
||||
follow: Följ
|
||||
"@follow":
|
||||
description: Knapptext för följ-knappen
|
||||
unfollow: Sluta följa
|
||||
"@unfollow":
|
||||
description: Knapptext för sluta följa knappen
|
||||
mute: Tysta
|
||||
unmute: Avtysta
|
||||
share: Dela
|
||||
save: Spara
|
||||
connect: Anslut
|
||||
settings: Inställningar
|
||||
embed:
|
||||
article_by: Artikel av ${name}
|
||||
note_by: Anteckning av $name
|
||||
live_stream_by: Direktsändning via ${name}
|
||||
stream_list:
|
||||
following: Följer
|
||||
live: Live
|
||||
planned: Planerade
|
||||
ended: Avslutade
|
||||
"@stream_list":
|
||||
description: Rubriker på strömlistor efter strömtyp live/avslutad/planerad etc.
|
||||
zap:
|
||||
title: Zap $name
|
||||
custom_amount: Anpassat belopp
|
||||
confirm: Bekräfta
|
||||
comment: Kommentar
|
||||
button_zap_ready: Zap $amount sats
|
||||
button_zap: Zap
|
||||
button_open_wallet: Öppna i plånboken
|
||||
button_connect_wallet: Anslut plånbok
|
||||
copy: Kopieras till urklipp
|
||||
error:
|
||||
invalid_custom_amount: Ogiltigt anpassat belopp
|
||||
no_wallet: Ingen blixtplånbok installerad
|
||||
no_lud16: Ingen blixtadress hittades
|
||||
profile:
|
||||
past_streams: Tidigare streamar
|
||||
settings:
|
||||
button_profile: Redigera profil
|
||||
button_wallet: Inställningar för plånbok
|
||||
profile:
|
||||
display_name: Visa namn
|
||||
about: Om
|
||||
nip05: Nostr adress
|
||||
lud16: Lightning-adress
|
||||
error:
|
||||
logged_out: Kan inte redigera profil när jag är utloggad
|
||||
wallet:
|
||||
connect_wallet: Anslut plånbok (NWC nostr+walletconnect://)
|
||||
disconnect_wallet: Koppla bort plånboken
|
||||
connect_1tap: 1-tryck anslutning
|
||||
paste: Klistra in URL
|
||||
balance: Balans
|
||||
name: Plånbok
|
||||
error:
|
||||
logged_out: Kan inte ansluta plånbok när du är utloggad
|
||||
nwc_auth_event_not_found: Inget autentiseringshändelse för plånbok hittades
|
||||
login:
|
||||
username: Användarnamn
|
||||
amber: Logga in med Amber
|
||||
key: Logga in med nyckel
|
||||
create: Skapa konto
|
||||
error:
|
||||
invalid_key: Ogiltig nyckel
|
||||
live:
|
||||
start: GÅ DIREKT
|
||||
configure_stream: Konfigurera ström
|
||||
endpoint: Slutpunkt
|
||||
accept_tos: Acceptera TOS
|
||||
balance_left:
|
||||
zero: ∞
|
||||
other: ~${time}
|
||||
title: Titel
|
||||
summary: Sammanfattning
|
||||
image: Omslagsbild
|
||||
tags: Etiketter
|
||||
nsfw: NSFW-innehåll
|
||||
nsfw_description: Markera här om denna stream innehåller nakenhet eller pornografiskt innehåll.
|
||||
error:
|
||||
failed: Strömmen misslyckades
|
||||
connection_error: Anslutningsfel
|
||||
start_failed: Stream start misslyckades, vänligen kontrollera ditt saldo
|