trunk #2
94
.drone.yml
|
@ -8,7 +8,7 @@ clone:
|
|||
|
||||
steps:
|
||||
- name: clone
|
||||
image: cirrusci/flutter:2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
environment:
|
||||
buildbot_key_b64:
|
||||
from_secret: buildbot_key_b64
|
||||
|
@ -24,14 +24,14 @@ steps:
|
|||
- git checkout $DRONE_COMMIT
|
||||
|
||||
- name: fetch
|
||||
image: cirrusci/flutter:2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
volumes:
|
||||
- name: deps
|
||||
path: /root/.pub-cache
|
||||
commands:
|
||||
- ./fetch-tor.sh
|
||||
- echo `git describe --tags --abbrev=1` > VERSION
|
||||
- echo `date +%G-%m-%d-%H-%M` > BUILDDATE
|
||||
- echo `git log -1 --format=%cd --date=format:%G-%m-%d-%H-%M` > COMMIT_DATE
|
||||
- flutter pub get
|
||||
- mkdir deploy
|
||||
- ./fetch-libcwtch-go.sh
|
||||
|
@ -47,12 +47,12 @@ steps:
|
|||
# #Todo: fix all the lint errors and add `-set_exit_status` above to enforce linting
|
||||
|
||||
- name: build-linux
|
||||
image: openpriv/flutter-desktop:linux-fstable-2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
volumes:
|
||||
- name: deps
|
||||
path: /root/.pub-cache
|
||||
commands:
|
||||
- flutter build linux --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat BUILDDATE`
|
||||
- flutter build linux --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat COMMIT_DATE`
|
||||
- linux/package-release.sh
|
||||
- mkdir -p deploy/cwtch
|
||||
- cp -r build/linux/x64/release/bundle/* deploy/cwtch
|
||||
|
@ -60,8 +60,17 @@ steps:
|
|||
- tar -czf cwtch-`cat ../VERSION`.tar.gz cwtch
|
||||
- rm -r cwtch
|
||||
|
||||
- name: linux-ui-tests
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
volumes:
|
||||
- name: deps
|
||||
path: /root/.pub-cache
|
||||
commands:
|
||||
# Run 01_general, 02_global_settings, and 04_profile_mgmt features...
|
||||
- ./run-tests-headless.sh "01_general|02_global_settings|04_profile_mgmt"
|
||||
|
||||
- name: test-build-android
|
||||
image: cirrusci/flutter:2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
when:
|
||||
event: pull_request
|
||||
volumes:
|
||||
|
@ -71,7 +80,7 @@ steps:
|
|||
- flutter build apk --debug
|
||||
|
||||
- name: build-android
|
||||
image: cirrusci/flutter:2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
when:
|
||||
event: push
|
||||
environment:
|
||||
|
@ -86,16 +95,16 @@ steps:
|
|||
- echo $upload_jks_file_b64 > upload-keystore.jks.b64
|
||||
- base64 -i --decode upload-keystore.jks.b64 > android/app/upload-keystore.jks
|
||||
- sed -i "s/%jks-password%/$upload_jks_pass/g" android/key.properties
|
||||
- flutter build appbundle --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat BUILDDATE`
|
||||
- flutter build appbundle --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat COMMIT_DATE`
|
||||
# cant do debug for final release, this is just a stop gap
|
||||
- flutter build apk --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat BUILDDATE`
|
||||
- flutter build apk --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat COMMIT_DATE`
|
||||
# or build apk --split-per-abi ?
|
||||
- cp build/app/outputs/bundle/release/app-release.aab deploy/
|
||||
- cp build/app/outputs/apk/release/app-release.apk deploy/
|
||||
- cp build/app/outputs/bundle/release/app-release.aab deploy/cwtch-`cat VERSION`.aab
|
||||
- cp build/app/outputs/apk/release/app-release.apk deploy/cwtch-`cat VERSION`.apk
|
||||
#- cp build/app/outputs/flutter-apk/app-debug.apk deploy/android
|
||||
|
||||
- name: widget-tests
|
||||
image: cirrusci/flutter:2.8.0
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.7.1
|
||||
volumes:
|
||||
- name: deps
|
||||
path: /root/.pub-cache
|
||||
|
@ -118,27 +127,16 @@ steps:
|
|||
- echo $BUILDFILES_KEY > ~/id_rsab64
|
||||
- base64 -d ~/id_rsab64 > ~/id_rsa
|
||||
- chmod 400 ~/id_rsa
|
||||
- export DIR=flwtch-`cat BUILDDATE`-`cat VERSION`
|
||||
- export DIR=flwtch-`cat COMMIT_DATE`-`cat VERSION`
|
||||
- mv deploy $DIR
|
||||
- cp -r coverage/html $DIR/coverage-tests
|
||||
- cp -r test/failures $DIR/test-failures || true
|
||||
- cd $DIR
|
||||
- find . -type f -exec sha256sum {} \; > ./../sha256s.txt
|
||||
- mv ./../sha256s.txt .
|
||||
- find . -type f -exec sha512sum {} \; > ./../sha512s.txt
|
||||
- mv ./../sha512s.txt .
|
||||
- cd ..
|
||||
- scp -r -o StrictHostKeyChecking=no -i ~/id_rsa $DIR buildfiles@build.openprivacy.ca:/home/buildfiles/buildfiles/
|
||||
|
||||
- name: notify-email
|
||||
image: drillster/drone-email
|
||||
pull: if-not-exists
|
||||
settings:
|
||||
host: build.openprivacy.ca
|
||||
port: 25
|
||||
skip_verify: true
|
||||
from: drone@openprivacy.ca
|
||||
when:
|
||||
status: [ failure ]
|
||||
|
||||
- name: notify-gogs
|
||||
image: openpriv/drone-gogs
|
||||
pull: if-not-exists
|
||||
|
@ -177,7 +175,7 @@ clone:
|
|||
|
||||
steps:
|
||||
- name: clone
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-2.8.1
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-3.7.1
|
||||
environment:
|
||||
buildbot_key_b64:
|
||||
from_secret: buildbot_key_b64
|
||||
|
@ -195,21 +193,21 @@ steps:
|
|||
- git checkout $Env:DRONE_COMMIT
|
||||
|
||||
- name: fetch
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-2.8.1
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-3.7.1
|
||||
commands:
|
||||
- git describe --tags --abbrev=1 > VERSION
|
||||
- powershell -command "Get-Date -Format 'yyyy-MM-dd-HH-mm'" > BUILDDATE
|
||||
- git log -1 --format=%cd --date=format:'%Y-%m-%d-%H-%M' > COMMIT_DATE
|
||||
- .\fetch-tor-win.ps1
|
||||
- .\fetch-libcwtch-go.ps1
|
||||
|
||||
- name: build-windows
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-2.8.1
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-3.7.1
|
||||
commands:
|
||||
- flutter pub get
|
||||
- $Env:version += type .\VERSION
|
||||
- $Env:builddate += type .\BUILDDATE
|
||||
- $Env:commitdate += type .\COMMIT_DATE
|
||||
- $Env:releasedir = "build\\windows\\runner\\Release\\"
|
||||
- flutter build windows --dart-define BUILD_VER=$Env:version --dart-define BUILD_DATE=$Env:builddate
|
||||
- flutter build windows --dart-define BUILD_VER=$Env:version --dart-define BUILD_DATE=$Env:commitdate
|
||||
- copy windows\libCwtch.dll $Env:releasedir
|
||||
# flutter hasn't worked out it's packaging of required dll's so we have to resort to this manual nonsense
|
||||
# https://github.com/google/flutter-desktop-embedding/issues/587
|
||||
|
@ -229,38 +227,38 @@ steps:
|
|||
status: [ success ]
|
||||
environment:
|
||||
pfx:
|
||||
from_secret: pfx
|
||||
from_secret: pfx2022_b64
|
||||
pfx_pass:
|
||||
from_secret: pfx_pass
|
||||
commands:
|
||||
- $Env:version += type .\VERSION
|
||||
- $Env:builddate += type .\BUILDDATE
|
||||
- $Env:commitdate += type .\COMMIT_DATE
|
||||
- $Env:releasedir = "build\\windows\\runner\\Release\\"
|
||||
- $Env:zip = 'cwtch-' + $Env:version + '.zip'
|
||||
- $Env:zipsha = $Env:zip + '.sha512'
|
||||
- $Env:msix = 'cwtch-install-' + $Env:version + '.msix'
|
||||
- $Env:msixsha = $Env:msix + '.sha512'
|
||||
- $Env:buildname = 'flwtch-win-' + $Env:builddate + '-' + $Env:version
|
||||
- $Env:zipsha = $Env:zip + '.sha512.txt'
|
||||
- $Env:buildname = 'flwtch-' + $Env:commitdate + '-' + $Env:version
|
||||
- $Env:builddir = $Env:buildname
|
||||
- echo $Env:pfx > codesign.pfx.b64
|
||||
- certutil -decode codesign.pfx.b64 codesign.pfx
|
||||
- signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com $Env:releasedir\cwtch.exe
|
||||
- signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com $Env:releasedir\libCwtch.dll
|
||||
- signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com $Env:releasedir\flutter_windows.dll
|
||||
- copy windows\runner\resources\knot_128.ico $Env:releasedir\cwtch.ico
|
||||
- makensis windows\nsis\cwtch-installer.nsi
|
||||
- move windows\nsis\cwtch-installer.exe cwtch-installer.exe
|
||||
- signtool sign /v /fd sha256 /a /f codesign.pfx /p $Env:pfx_pass /tr http://timestamp.digicert.com cwtch-installer.exe
|
||||
- powershell -command "(Get-FileHash cwtch-installer.exe -Algorithm sha512).Hash" > cwtch-installer.sha512
|
||||
- powershell -command "(Get-FileHash cwtch-installer.exe -Algorithm sha512).Hash" > cwtch-installer.sha512.txt
|
||||
- mkdir deploy
|
||||
- mkdir deploy\$Env:builddir
|
||||
- move $Env:releasedir $Env:builddir
|
||||
- powershell -command "Compress-Archive -Path $Env:builddir -DestinationPath cwtch.zip"
|
||||
- powershell -command "(Get-FileHash cwtch.zip -Algorithm sha512).Hash" > $Env:zipsha
|
||||
- move cwtch-installer.exe deploy\$Env:builddir\cwtch-installer.exe
|
||||
- move cwtch-installer.exe deploy\$Env:builddir\cwtch-installer-$Env:version.exe
|
||||
- move cwtch.zip deploy\$Env:builddir\$Env:zip
|
||||
- move *.sha512 deploy\$Env:builddir
|
||||
- move *.sha512.txt deploy\$Env:builddir
|
||||
|
||||
- name: deploy-windows
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-2.8.1
|
||||
image: openpriv/flutter-desktop:windows-sdk30-fstable-3.7.1
|
||||
when:
|
||||
event: push
|
||||
status: [ success ]
|
||||
|
@ -317,7 +315,7 @@ steps:
|
|||
commands:
|
||||
- ./fetch-tor-macos.sh
|
||||
- echo `git describe --tags --abbrev=1` > VERSION
|
||||
- echo `date +%G-%m-%d-%H-%M` > BUILDDATE
|
||||
- echo `git log -1 --format=%cd --date=format:%G-%m-%d-%H-%M` > COMMIT_DATE
|
||||
- export PATH=$PATH:/Users/Dan/development/flutter/bin
|
||||
- flutter pub get
|
||||
- mkdir deploy
|
||||
|
@ -330,11 +328,11 @@ steps:
|
|||
- export GEM_HOME=$HOME/.gem
|
||||
- export PATH=$GEM_HOME/ruby/2.6.0/bin:$PATH
|
||||
- flutter config --enable-macos-desktop
|
||||
- flutter build macos --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat BUILDDATE`
|
||||
- flutter build macos --dart-define BUILD_VER=`cat VERSION` --dart-define BUILD_DATE=`cat COMMIT_DATE`
|
||||
- export PATH=$PATH:/usr/local/bin #create-dmg
|
||||
- macos/package-release.sh
|
||||
- mkdir -p deploy
|
||||
- mv Cwtch.dmg deploy
|
||||
- mv Cwtch.dmg deploy/Cwtch-`cat VERSION`.dmg
|
||||
|
||||
- name: deploy-buildfiles
|
||||
environment:
|
||||
|
@ -347,11 +345,11 @@ steps:
|
|||
- echo $BUILDFILES_KEY > ~/id_rsab64
|
||||
- base64 -d ~/id_rsab64 > ~/id_rsa
|
||||
- chmod 400 ~/id_rsa
|
||||
- export DIR=flwtch-macos-`cat BUILDDATE`-`cat VERSION`
|
||||
- export DIR=flwtch-`cat COMMIT_DATE`-`cat VERSION`
|
||||
- mv deploy $DIR
|
||||
- cd $DIR
|
||||
- find . -type f -exec shasum -a 512 {} \; > ./../sha512s.txt
|
||||
- mv ./../sha512s.txt .
|
||||
- find . -type f -exec shasum -a 512 {} \; > ./../Cwtch.dmg.sha512.txt
|
||||
- mv ./../Cwtch.dmg.sha512.txt .
|
||||
- cd ..
|
||||
- scp -r -o StrictHostKeyChecking=no -i ~/id_rsa $DIR buildfiles@build.openprivacy.ca:/home/buildfiles/buildfiles/
|
||||
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
package.json
|
||||
package-lock.json
|
||||
libCwtch*
|
||||
cwtch.aar
|
||||
node_modules
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
|
@ -40,10 +45,32 @@ app.*.symbols
|
|||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Tor
|
||||
*data-dir*
|
||||
|
||||
# Test Artificats
|
||||
*.log
|
||||
flutter_gherkin
|
||||
run-tests.env
|
||||
report.json
|
||||
package.
|
||||
|
||||
# Compiled Libs
|
||||
linux/tor
|
||||
linux/libCwtch.so
|
||||
android/cwtch/cwtch.aar
|
||||
android/app/src/main/jniLibs/*/libtor.so
|
||||
*.dylib
|
||||
integration_test/gherkin_suite_test.g.dart
|
||||
integration_test/gherkin_suite_test.dart
|
||||
integration_test/gherkin/
|
||||
integration_test/CustomSteps.md
|
||||
analysis_options.yaml
|
||||
integration_test/env/default/tor
|
||||
integration_test/env/temp*
|
||||
linux/Tor
|
||||
linux/tor.tar.gz
|
||||
|
||||
coverage
|
||||
test/failures
|
||||
.gradle
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
2022-04-21-19-14-1.7.1
|
|
@ -1 +1 @@
|
|||
2022-04-21-23-14-1.7.1
|
||||
2023-04-05-19-46-v0.0.3-13-gb7a4bc2
|
|
@ -65,7 +65,7 @@ To build a release version and load normal profiles, use `build-release.sh X` in
|
|||
### Building on MacOS
|
||||
|
||||
- Cocaopods is required, you may need to `gem install cocaopods -v 1.9.3`
|
||||
- copy `libCwtch.dylib` into the root folder, or run `fetch-libcwtch-go-macos.sh` to download it
|
||||
- copy `libCwtch.x64.dylib` and `libCwtch.arm/dylib` into the root folder, or run `fetch-libcwtch-go-macos.sh` to download it
|
||||
- run `fetch-tor-macos.sh` to fetch Tor or Download and install Tor Browser and `cp -r /Applications/Tor\ Browser.app/Contents/MacOS/Tor ./macos/`
|
||||
- `flutter build macos`
|
||||
- optional: launch cwtch-ui release build with `./build/macos/Build/Products/Release/Cwtch.app/Contents/MacOS/Cwtch`
|
||||
|
|
|
@ -33,7 +33,7 @@ if (keystorePropertiesFile.exists()) {
|
|||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
compileSdkVersion 33
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
|
@ -42,15 +42,23 @@ android {
|
|||
|
||||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
|
||||
// For some reason we get Error: LottieAnimationView must extend android.view.View
|
||||
// Given the newer gradle build...I'm not sure why, but it does impact functionality at all
|
||||
// there is no information about this error and the command output suggests including the
|
||||
// following:
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "im.cwtch.flwtch"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 30
|
||||
targetSdkVersion 31
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
@ -89,17 +97,27 @@ dependencies {
|
|||
implementation project(':cwtch')
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2"
|
||||
implementation "com.airbnb.android:lottie:4.2.1"
|
||||
implementation "com.airbnb.android:lottie:5.2.0"
|
||||
implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
|
||||
implementation "com.android.support.constraint:constraint-layout:2.0.4"
|
||||
|
||||
// Test Dependencies
|
||||
testImplementation 'junit:junit:4.12'
|
||||
|
||||
// https://developer.android.com/jetpack/androidx/releases/test/#1.2.0
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
|
||||
// WorkManager
|
||||
|
||||
// (Java only)
|
||||
//implementation("androidx.work:work-runtime:$work_version")
|
||||
|
||||
// Kotlin + coroutines
|
||||
implementation("androidx.work:work-runtime-ktx:2.5.0")
|
||||
// 2022.06: upgraded from 2.5 to 2.7 for android 12
|
||||
// err: "requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent"
|
||||
// as per https://github.com/flutter/flutter/issues/93609
|
||||
implementation 'androidx.work:work-runtime-ktx:2.7.0'
|
||||
|
||||
// optional - RxJava2 support
|
||||
//implementation("androidx.work:work-rxjava2:$work_version")
|
||||
|
@ -117,5 +135,5 @@ dependencies {
|
|||
|
||||
// needed to prevent a ListenableFuture dependency conflict/bug
|
||||
// see https://github.com/google/ExoPlayer/issues/7905#issuecomment-692637059
|
||||
implementation 'com.google.guava:guava:any'
|
||||
implementation "com.google.guava:guava:31.0.1-android"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package im.cwtch.flwtch;
|
||||
|
||||
import androidx.test.rule.ActivityTestRule;
|
||||
import dev.flutter.plugins.integration_test.FlutterTestRunner;
|
||||
import org.junit.Rule;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@RunWith(FlutterTestRunner.class)
|
||||
public class MainActivityTest {
|
||||
@Rule
|
||||
public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class, true, false);
|
||||
}
|
|
@ -16,7 +16,8 @@
|
|||
android:theme="@style/NormalTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:exported="true">
|
||||
<!-- 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
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
// Generated file.
|
||||
//
|
||||
// If you wish to remove Flutter's multidex support, delete this entire file.
|
||||
//
|
||||
// Modifications to this file should be done in a copy under a different name
|
||||
// as this file may be regenerated.
|
||||
|
||||
package io.flutter.app;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.multidex.MultiDex;
|
||||
|
||||
/**
|
||||
* Extension of {@link io.flutter.app.FlutterApplication}, adding multidex support.
|
||||
* Extension of {@link android.app.Application}, adding multidex support.
|
||||
*/
|
||||
public class FlutterMultiDexApplication extends FlutterApplication {
|
||||
public class FlutterMultiDexApplication extends Application {
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void attachBaseContext(Context base) {
|
||||
|
|
|
@ -1,25 +1,27 @@
|
|||
package im.cwtch.flwtch
|
||||
|
||||
import android.app.*
|
||||
import android.os.Environment
|
||||
import android.app.Notification
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.BitmapFactory
|
||||
import android.graphics.Color
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import androidx.work.*
|
||||
import androidx.work.CoroutineWorker
|
||||
import androidx.work.ForegroundInfo
|
||||
import androidx.work.WorkerParameters
|
||||
import cwtch.Cwtch
|
||||
import io.flutter.FlutterInjector
|
||||
import org.json.JSONObject
|
||||
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.nio.file.StandardCopyOption
|
||||
import android.net.Uri
|
||||
|
||||
class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
||||
CoroutineWorker(context, parameters) {
|
||||
|
@ -82,6 +84,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
|||
|
||||
Log.i(TAG, "startCwtch success, starting coroutine AppbusEvent loop...")
|
||||
val downloadIDs = mutableMapOf<String, Int>()
|
||||
var flags = PendingIntent.FLAG_UPDATE_CURRENT
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
flags = flags or PendingIntent.FLAG_IMMUTABLE
|
||||
}
|
||||
while (true) {
|
||||
try {
|
||||
val evt = MainActivity.AppbusEvent(Cwtch.getAppBusEvent())
|
||||
|
@ -109,12 +115,11 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
|||
intent.action = Intent.ACTION_RUN
|
||||
intent.putExtra("EventType", "NotificationClicked")
|
||||
}
|
||||
|
||||
val newNotification = NotificationCompat.Builder(applicationContext, channelId)
|
||||
.setContentTitle("Cwtch")
|
||||
.setContentText(notificationSimple ?: "New Message")
|
||||
.setSmallIcon(R.mipmap.knott_transparent)
|
||||
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT))
|
||||
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, flags))
|
||||
.setAutoCancel(true)
|
||||
.build()
|
||||
|
||||
|
@ -147,7 +152,7 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
|||
?: "New Message From %1").replace("%1", data.getString("Nick")))
|
||||
.setLargeIcon(BitmapFactory.decodeStream(fh))
|
||||
.setSmallIcon(R.mipmap.knott_transparent)
|
||||
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT))
|
||||
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, flags))
|
||||
.setAutoCancel(true)
|
||||
.build()
|
||||
|
||||
|
@ -265,6 +270,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
|||
intent.action = Intent.ACTION_RUN
|
||||
intent.putExtra("EventType", "ShutdownClicked")
|
||||
}
|
||||
var flags = PendingIntent.FLAG_UPDATE_CURRENT
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
flags = flags or PendingIntent.FLAG_IMMUTABLE
|
||||
}
|
||||
|
||||
val notification = NotificationCompat.Builder(applicationContext, channelId)
|
||||
.setContentTitle(title)
|
||||
|
@ -274,7 +283,7 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
|
|||
.setOngoing(true)
|
||||
// Add the cancel action to the notification which can
|
||||
// be used to cancel the worker
|
||||
.addAction(android.R.drawable.ic_delete, cancel, PendingIntent.getActivity(applicationContext, 2, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT))
|
||||
.addAction(android.R.drawable.ic_delete, cancel, PendingIntent.getActivity(applicationContext, 2, cancelIntent, flags))
|
||||
.build()
|
||||
|
||||
return ForegroundInfo(101, notification)
|
||||
|
|
|
@ -68,7 +68,8 @@ class MainActivity: FlutterActivity() {
|
|||
private val PROFILE_EXPORT_REQUEST_CODE = 236
|
||||
private val REQUEST_DOZE_WHITELISTING_CODE:Int = 9
|
||||
private var dlToProfile = ""
|
||||
private var dlToHandle = ""
|
||||
private var dlManifestPath = ""
|
||||
private var dlToHandle = 0
|
||||
private var dlToFileKey = ""
|
||||
private var exportFromPath = ""
|
||||
|
||||
|
@ -127,39 +128,45 @@ class MainActivity: FlutterActivity() {
|
|||
|
||||
if (requestCode == FILEPICKER_REQUEST_CODE) {
|
||||
val filePath = intent!!.getData().toString();
|
||||
val manifestPath = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(this.dlToFileKey).toString();
|
||||
Log.d("MainActivity:FILEPICKER_REQUEST_CODE", "DownloadableFileCreated");
|
||||
handleCwtch(MethodCall("DownloadFile", mapOf(
|
||||
"ProfileOnion" to this.dlToProfile,
|
||||
"handle" to this.dlToHandle,
|
||||
"conversation" to this.dlToHandle.toInt(),
|
||||
"filepath" to filePath,
|
||||
"manifestpath" to manifestPath,
|
||||
"manifestpath" to this.dlManifestPath,
|
||||
"filekey" to this.dlToFileKey
|
||||
)), ErrorLogResult(""));//placeholder; this Result is never actually invoked
|
||||
} else if (requestCode == PREVIEW_EXPORT_REQUEST_CODE) {
|
||||
val targetPath = intent!!.getData().toString()
|
||||
val sourcePath = Paths.get(this.exportFromPath);
|
||||
val targetUri = Uri.parse(targetPath);
|
||||
val os = this.applicationContext.getContentResolver().openOutputStream(targetUri);
|
||||
val bytesWritten = Files.copy(sourcePath, os);
|
||||
Log.d("MainActivity:PREVIEW_EXPORT", "copied " + bytesWritten.toString() + " bytes");
|
||||
if (bytesWritten != 0L) {
|
||||
os?.flush();
|
||||
os?.close();
|
||||
//Files.delete(sourcePath);
|
||||
try {
|
||||
val sourcePath = Paths.get(this.exportFromPath);
|
||||
val targetUri = intent!!.getData();
|
||||
val os = this.applicationContext.getContentResolver().openOutputStream(targetUri!!);
|
||||
val bytesWritten = Files.copy(sourcePath, os);
|
||||
Log.d("MainActivity:PREVIEW_EXPORT", "copied " + bytesWritten.toString() + " bytes");
|
||||
if (bytesWritten != 0L) {
|
||||
os?.flush();
|
||||
os?.close();
|
||||
//Files.delete(sourcePath);
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.d("MainActivity:PREVIEW_EXPORT FAILED", e.toString());
|
||||
}
|
||||
} else if (requestCode == PROFILE_EXPORT_REQUEST_CODE ) {
|
||||
val targetPath = intent!!.getData().toString()
|
||||
val srcFile = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(this.exportFromPath).toString();
|
||||
Log.i("MainActivity:PREVIEW_EXPORT", "exporting previewed file " + srcFile);
|
||||
val sourcePath = Paths.get(srcFile);
|
||||
val targetUri = Uri.parse(targetPath);
|
||||
val os = this.applicationContext.getContentResolver().openOutputStream(targetUri);
|
||||
val bytesWritten = Files.copy(sourcePath, os);
|
||||
Log.d("MainActivity:PREVIEW_EXPORT", "copied " + bytesWritten.toString() + " bytes");
|
||||
if (bytesWritten != 0L) {
|
||||
os?.flush();
|
||||
os?.close();
|
||||
//Files.delete(sourcePath);
|
||||
Log.i("MainActivity:EXPORT_PROFILE", "exporting profile: " + srcFile);
|
||||
try {
|
||||
val sourcePath = Paths.get(srcFile);
|
||||
val targetUri = intent!!.getData();
|
||||
val os = this.applicationContext.getContentResolver().openOutputStream(targetUri!!);
|
||||
val bytesWritten = Files.copy(sourcePath, os);
|
||||
Log.d("MainActivity:EXPORT_PROFILE", "copied " + bytesWritten.toString() + " bytes");
|
||||
if (bytesWritten != 0L) {
|
||||
os?.flush();
|
||||
os?.close();
|
||||
//Files.delete(sourcePath);
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.d("MainActivity:EXPORT_PROFILE FAILED", e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -222,7 +229,7 @@ class MainActivity: FlutterActivity() {
|
|||
var method = call.method
|
||||
// todo change usage patern to match that in FlwtchWorker
|
||||
// Unsafe for anything using int args, causes access time attempt to cast to string which will fail
|
||||
val argmap: Map<String, String> = call.arguments as Map<String, String>
|
||||
val argmap: Map<String, String> = call.arguments as Map<String,String>
|
||||
|
||||
// the frontend calls Start every time it fires up, but we don't want to *actually* call Cwtch.Start()
|
||||
// in case the ForegroundService is still running. in both cases, however, we *do* want to re-register
|
||||
|
@ -249,7 +256,8 @@ class MainActivity: FlutterActivity() {
|
|||
}
|
||||
"CreateDownloadableFile" -> {
|
||||
this.dlToProfile = argmap["ProfileOnion"] ?: ""
|
||||
this.dlToHandle = argmap["handle"] ?: ""
|
||||
this.dlToHandle = call.argument("conversation")!!
|
||||
this.dlManifestPath = argmap["manifestpath"] ?: ""
|
||||
val suggestedName = argmap["filename"] ?: "filename.ext"
|
||||
this.dlToFileKey = argmap["filekey"] ?: ""
|
||||
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
||||
|
@ -280,6 +288,12 @@ class MainActivity: FlutterActivity() {
|
|||
startActivityForResult(intent, PREVIEW_EXPORT_REQUEST_CODE)
|
||||
}
|
||||
"ExportProfile" -> {
|
||||
|
||||
val profileOnion: String = call.argument("ProfileOnion") ?: ""
|
||||
val file: String = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(call.argument("file") ?: "").toString()
|
||||
Log.i("FlwtchWorker", "constructing exported file " + file);
|
||||
Cwtch.exportProfile(profileOnion,file)
|
||||
|
||||
this.exportFromPath = argmap["file"] ?: ""
|
||||
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
||||
addCategory(Intent.CATEGORY_OPENABLE)
|
||||
|
@ -310,9 +324,10 @@ class MainActivity: FlutterActivity() {
|
|||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val target: Int = call.argument("target") ?: 0
|
||||
result.success(Cwtch.sendInvitation(profile, conversation.toLong(), target.toLong()))
|
||||
result.success(Cwtch.sendInviteMessage(profile, conversation.toLong(), target.toLong()))
|
||||
return
|
||||
}
|
||||
|
||||
"ShareFile" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
|
@ -321,15 +336,45 @@ class MainActivity: FlutterActivity() {
|
|||
return
|
||||
}
|
||||
|
||||
"GetSharedFiles" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
result.success(Cwtch.getSharedFiles(profile, conversation.toLong()))
|
||||
return
|
||||
}
|
||||
|
||||
"RestartSharing" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val filepath: String = call.argument("filekey") ?: ""
|
||||
result.success(Cwtch.restartFileShare(profile, filepath))
|
||||
return
|
||||
}
|
||||
|
||||
"StopSharing" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val filepath: String = call.argument("filekey") ?: ""
|
||||
result.success(Cwtch.stopFileShare(profile, filepath))
|
||||
return
|
||||
}
|
||||
|
||||
"CreateProfile" -> {
|
||||
val nick: String = call.argument("nick") ?: ""
|
||||
val pass: String = call.argument("pass") ?: ""
|
||||
Cwtch.createProfile(nick, pass)
|
||||
val autostart: Boolean = call.argument("autostart") ?: true
|
||||
Cwtch.createProfile(nick, pass, autostart)
|
||||
}
|
||||
"LoadProfiles" -> {
|
||||
val pass: String = call.argument("pass") ?: ""
|
||||
Cwtch.loadProfiles(pass)
|
||||
}
|
||||
"ActivatePeerEngine" -> {
|
||||
val profile: String = call.argument("profile") ?: ""
|
||||
Cwtch.activatePeerEngine(profile)
|
||||
}
|
||||
"DeactivatePeerEngine" -> {
|
||||
val profile: String = call.argument("profile") ?: ""
|
||||
Cwtch.deactivatePeerEngine(profile)
|
||||
}
|
||||
"ChangePassword" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val pass: String = call.argument("OldPass") ?: ""
|
||||
|
@ -337,25 +382,18 @@ class MainActivity: FlutterActivity() {
|
|||
val passNew2: String = call.argument("NewPassAgain") ?: ""
|
||||
Cwtch.changePassword(profile, pass, passNew, passNew2)
|
||||
}
|
||||
"GetMessage" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val indexI: Int = call.argument("index") ?: 0
|
||||
result.success(Cwtch.getMessage(profile, conversation.toLong(), indexI.toLong()))
|
||||
return
|
||||
}
|
||||
"GetMessageByID" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val id: Int = call.argument("id") ?: 0
|
||||
result.success(Cwtch.getMessageByID(profile, conversation.toLong(), id.toLong()))
|
||||
result.success(Cwtch.getMessageById(profile, conversation.toLong(), id.toLong()))
|
||||
return
|
||||
}
|
||||
"GetMessageByContentHash" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val contentHash: String = call.argument("contentHash") ?: ""
|
||||
result.success(Cwtch.getMessagesByContentHash(profile, conversation.toLong(), contentHash))
|
||||
result.success(Cwtch.getMessageByContentHash(profile, conversation.toLong(), contentHash))
|
||||
return
|
||||
}
|
||||
"SetMessageAttribute" -> {
|
||||
|
@ -365,7 +403,7 @@ class MainActivity: FlutterActivity() {
|
|||
val midx: Int = call.argument("Message") ?: 0
|
||||
val key: String = call.argument("key") ?: ""
|
||||
val value: String = call.argument("value") ?: ""
|
||||
Cwtch.setMessageAttribute(profile, conversation.toLong(), channel.toLong(), midx.toLong(), key, value)
|
||||
Cwtch.updateMessageAttribute(profile, conversation.toLong(), channel.toLong(), midx.toLong(), key, value)
|
||||
}
|
||||
"AcceptConversation" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
|
@ -375,15 +413,16 @@ class MainActivity: FlutterActivity() {
|
|||
"BlockContact" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
Cwtch.blockContact(profile, conversation.toLong())
|
||||
Cwtch.blockConversation(profile, conversation.toLong())
|
||||
}
|
||||
"UnblockContact" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
Cwtch.unblockContact(profile, conversation.toLong())
|
||||
Cwtch.unblockConversation(profile, conversation.toLong())
|
||||
}
|
||||
|
||||
"DownloadFile" -> {
|
||||
Log.d("MainActivity.kt", "Cwtch Download File Called...")
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val filepath: String = call.argument("filepath") ?: ""
|
||||
|
@ -391,7 +430,7 @@ class MainActivity: FlutterActivity() {
|
|||
val filekey: String = call.argument("filekey") ?: ""
|
||||
// FIXME: Prevent spurious calls by Intent
|
||||
if (profile != "") {
|
||||
Cwtch.downloadFile(profile, conversation.toLong(), filepath, manifestpath, filekey)
|
||||
Cwtch.downloadFileDefaultLimit(profile, conversation.toLong(), filepath, manifestpath, filekey)
|
||||
}
|
||||
}
|
||||
"CheckDownloadStatus" -> {
|
||||
|
@ -405,14 +444,9 @@ class MainActivity: FlutterActivity() {
|
|||
val fileKey: String = call.argument("fileKey") ?: ""
|
||||
Cwtch.verifyOrResumeDownload(profile, conversation.toLong(), fileKey)
|
||||
}
|
||||
"SendProfileEvent" -> {
|
||||
val onion: String= call.argument("onion") ?: ""
|
||||
val jsonEvent: String = call.argument("jsonEvent") ?: ""
|
||||
Cwtch.sendProfileEvent(onion, jsonEvent)
|
||||
}
|
||||
"SendAppEvent" -> {
|
||||
val jsonEvent: String = call.argument("jsonEvent") ?: ""
|
||||
Cwtch.sendAppEvent(jsonEvent)
|
||||
"UpdateSettings" -> {
|
||||
val json: String = call.argument("json") ?: ""
|
||||
Cwtch.updateSettings(json)
|
||||
}
|
||||
"ResetTor" -> {
|
||||
Cwtch.resetTor()
|
||||
|
@ -420,13 +454,13 @@ class MainActivity: FlutterActivity() {
|
|||
"ImportBundle" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val bundle: String = call.argument("bundle") ?: ""
|
||||
Cwtch.importBundle(profile, bundle)
|
||||
result.success(Cwtch.importBundle(profile, bundle))
|
||||
}
|
||||
"CreateGroup" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val server: String = call.argument("server") ?: ""
|
||||
val groupName: String = call.argument("groupName") ?: ""
|
||||
Cwtch.createGroup(profile, server, groupName)
|
||||
Cwtch.startGroup(profile, server, groupName)
|
||||
}
|
||||
"DeleteProfile" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
|
@ -441,7 +475,7 @@ class MainActivity: FlutterActivity() {
|
|||
"DeleteConversation" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
Cwtch.deleteContact(profile, conversation.toLong())
|
||||
Cwtch.deleteConversation(profile, conversation.toLong())
|
||||
}
|
||||
"SetProfileAttribute" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
|
@ -449,6 +483,17 @@ class MainActivity: FlutterActivity() {
|
|||
val v: String = call.argument("Val") ?: ""
|
||||
Cwtch.setProfileAttribute(profile, key, v)
|
||||
}
|
||||
"GetProfileAttribute" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val key: String = call.argument("Key") ?: ""
|
||||
Data.Builder().putString("result", Cwtch.getProfileAttribute(profile, key)).build()
|
||||
}
|
||||
"GetConversationAttribute" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
val key: String = call.argument("Key") ?: ""
|
||||
Data.Builder().putString("result", Cwtch.getConversationAttribute(profile, conversation.toLong(), key)).build()
|
||||
}
|
||||
"SetConversationAttribute" -> {
|
||||
val profile: String = call.argument("ProfileOnion") ?: ""
|
||||
val conversation: Int = call.argument("conversation") ?: 0
|
||||
|
@ -456,50 +501,6 @@ class MainActivity: FlutterActivity() {
|
|||
val v: String = call.argument("Val") ?: ""
|
||||
Cwtch.setConversationAttribute(profile, conversation.toLong(), key, v)
|
||||
}
|
||||
"LoadServers" -> {
|
||||
val password: String = call.argument("Password") ?: ""
|
||||
Cwtch.loadServers(password)
|
||||
}
|
||||
"CreateServer" -> {
|
||||
val password: String = call.argument("Password") ?: ""
|
||||
val desc: String = call.argument("Description") ?: ""
|
||||
val autostart: Boolean = call.argument("Autostart") ?: false
|
||||
Cwtch.createServer(password, desc, autostart)
|
||||
}
|
||||
"DeleteServer" -> {
|
||||
val serverOnion: String = call.argument("ServerOnion") ?: ""
|
||||
val password: String = call.argument("Password") ?: ""
|
||||
Cwtch.deleteServer(serverOnion, password)
|
||||
}
|
||||
"LaunchServers" -> {
|
||||
Cwtch.launchServers()
|
||||
}
|
||||
"LaunchServer" -> {
|
||||
val serverOnion: String = call.argument("ServerOnion") ?: ""
|
||||
Cwtch.launchServer(serverOnion)
|
||||
}
|
||||
"StopServer" -> {
|
||||
val serverOnion: String = call.argument("ServerOnion") ?: ""
|
||||
Cwtch.stopServer(serverOnion)
|
||||
}
|
||||
"StopServers" -> {
|
||||
Cwtch.stopServers()
|
||||
}
|
||||
"DestroyServers" -> {
|
||||
Cwtch.destroyServers()
|
||||
}
|
||||
"SetServerAttribute" -> {
|
||||
val serverOnion: String = call.argument("ServerOnion") ?: ""
|
||||
val key: String = call.argument("Key") ?: ""
|
||||
val v: String = call.argument("Val") ?: ""
|
||||
Cwtch.setServerAttribute(serverOnion, key, v)
|
||||
}
|
||||
"ExportProfile" -> {
|
||||
val profileOnion: String = call.argument("ProfileOnion") ?: ""
|
||||
val file: String = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(call.argument("file") ?: "").toString()
|
||||
Log.i("FlwtchWorker", "constructing exported file " + file);
|
||||
Cwtch.exportProfile(profileOnion,file)
|
||||
}
|
||||
"ImportProfile" -> {
|
||||
val file: String = call.argument("file") ?: ""
|
||||
val pass: String = call.argument("pass") ?: ""
|
||||
|
@ -536,10 +537,15 @@ class MainActivity: FlutterActivity() {
|
|||
Log.i("MainActivity.kt", "onResume")
|
||||
if (myReceiver == null) {
|
||||
Log.i("MainActivity.kt", "onResume registering local broadcast receiver / event bus forwarder")
|
||||
val mc = MethodChannel(flutterEngine?.dartExecutor?.binaryMessenger, CWTCH_EVENTBUS)
|
||||
val filter = IntentFilter("im.cwtch.flwtch.broadcast.SERVICE_EVENT_BUS")
|
||||
myReceiver = MyBroadcastReceiver(mc)
|
||||
LocalBroadcastManager.getInstance(applicationContext).registerReceiver(myReceiver!!, filter)
|
||||
val bm = flutterEngine?.dartExecutor?.binaryMessenger;
|
||||
if (bm != null) {
|
||||
val mc = MethodChannel(bm, CWTCH_EVENTBUS)
|
||||
|
||||
val filter = IntentFilter("im.cwtch.flwtch.broadcast.SERVICE_EVENT_BUS")
|
||||
myReceiver = MyBroadcastReceiver(mc)
|
||||
LocalBroadcastManager.getInstance(applicationContext)
|
||||
.registerReceiver(myReceiver!!, filter)
|
||||
}
|
||||
}
|
||||
|
||||
// ReconnectCwtchForeground which will resync counters and settings...
|
||||
|
@ -558,6 +564,7 @@ class MainActivity: FlutterActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
Log.i("MainActivity.kt", "onDestroy - cancelling all WORKER_TAG and pruning old work")
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
app:lottie_autoPlay="true"
|
||||
app:lottie_rawRes="@raw/cwtch_animated_logo_op"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_speed="1.00" />
|
||||
app:lottie_speed="1.00"
|
||||
app:lottie_enableMergePathsForKitKatAndAbove="true" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,5 +1,5 @@
|
|||
buildscript {
|
||||
ext.kotlin_version = '1.3.50'
|
||||
ext.kotlin_version = '1.6.21'
|
||||
repositories {
|
||||
google()
|
||||
// jCenter() no longer exists... https://blog.gradle.org/jcenter-shutdown
|
||||
|
@ -7,7 +7,7 @@ buildscript {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.4'
|
||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#Fri Jun 23 08:50:38 CEST 2017
|
||||
#Mon Jun 20 10:33:21 PDT 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 381 KiB |
After Width: | Height: | Size: 204 KiB |
After Width: | Height: | Size: 346 KiB |
After Width: | Height: | Size: 177 KiB |
|
@ -0,0 +1,16 @@
|
|||
Cwtch (/kʊtʃ/ - a Welsh word roughly translating to “a hug that creates a safe place”) is a decentralized,
|
||||
privacy-preserving, multi-party messaging protocol that can be used to build metadata resistant applications.
|
||||
|
||||
- Decentralized and Open: There is no “Cwtch service” or “Cwtch network”. Participants in Cwtch
|
||||
can host their own safe spaces, or lend their infrastructure to others seeking a safe space.
|
||||
The Cwtch protocol is open, and anyone is free to build bots, services and user interfaces and
|
||||
integrate and interact with Cwtch.
|
||||
|
||||
- Privacy Preserving: All communication in Cwtch is end-to-end encrypted and takes place over Tor v3
|
||||
onion services.
|
||||
|
||||
- Metadata Resistant: Cwtch has been designed such that no information is exchanged or available to
|
||||
anyone without their explicit consent, including on-the-wire messages and protocol metadata.
|
||||
|
||||
For more information on how Cwtch works and a guide to metadata resistant communication please
|
||||
checkout the Cwtch Handbook: https://docs.cwtch.im/
|
|
@ -0,0 +1 @@
|
|||
Metadata resistant privacy platform designed to help you resist surveillance
|
|
@ -0,0 +1 @@
|
|||
Cwtch
|
|
@ -0,0 +1 @@
|
|||
https://cwtch.im/cwtch-explainer.mp4
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
VERSION=`cat LIBCWTCH-GO-MACOS.version`
|
||||
VERSION=`cat LIBCWTCH-GO.version`
|
||||
echo $VERSION
|
||||
|
||||
curl https://build.openprivacy.ca/files/libCwtch-go-macos-$VERSION/libCwtch.dylib --output libCwtch.dylib
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-autobindings-$VERSION/macos/libCwtch.x64.dylib --output libCwtch.x64.dylib
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-autobindings-$VERSION/macos/libCwtch.arm64.dylib --output libCwtch.arm64.dylib
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
$Env:VERSION = type LIBCWTCH-GO.version
|
||||
echo $Env:VERSION
|
||||
|
||||
Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-go-$Env:VERSION/libCwtch.dll -OutFile windows/libCwtch.dll
|
||||
# This should automatically fail on error...
|
||||
Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-autobindings-$Env:VERSION/windows/libCwtch.dll -OutFile windows/libCwtch.dll
|
||||
|
||||
#Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-go-$Env:VERSION/cwtch.aar -OutFile android/cwtch/cwtch.aar
|
||||
#Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-go-$Env:VERSION/libCwtch.so -Outfile linux/libCwtch.so
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
VERSION=`cat LIBCWTCH-GO.version`
|
||||
echo $VERSION
|
||||
|
||||
wget https://build.openprivacy.ca/files/libCwtch-go-$VERSION/cwtch.aar -O android/cwtch/cwtch.aar
|
||||
wget https://build.openprivacy.ca/files/libCwtch-go-$VERSION/libCwtch.so -O linux/libCwtch.so
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-autobindings-$VERSION/android/cwtch.aar --output android/cwtch/cwtch.aar
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-autobindings-$VERSION/linux/libCwtch.so --output linux/libCwtch.so
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd macos
|
||||
curl https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-macos-0.4.6.7.tar.gz --output tor.tar.gz
|
||||
curl https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-macos-0.4.7.8.tar.gz --output tor.tar.gz
|
||||
tar -xzf tor.tar.gz
|
||||
chmod a+x Tor/tor.real
|
||||
cd ..
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Invoke-WebRequest -Uri https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-win64-0.4.6.9.zip -OutFile tor.zip
|
||||
Invoke-WebRequest -Uri https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-win64-0.4.7.8.zip -OutFile tor.zip
|
||||
|
||||
if ((Get-FileHash tor.zip -Algorithm sha512).Hash -ne 'bd99de56ef5ef9516410783ce48d52311093b26e718bf3d0a94efbd754d1cf2d12543f096139d9c289985349d26ee89b2308be5927fa1b410ff4f7f3129d6830' ) { Write-Error 'tor.zip sha512sum mismatch' }
|
||||
if ((Get-FileHash tor.zip -Algorithm sha512).Hash -ne '5b8f900a37f6e90d7a945b3903d769383c7478042cb43b2105d2374186e1a536f1a4758a2823d1d5be71d53a81dcfd8243293e04f82812d355983df322823cf4' ) { Write-Error 'tor.zip sha512sum mismatch' }
|
||||
|
||||
Expand-Archive -Path tor.zip -DestinationPath Tor
|
||||
|
|
10
fetch-tor.sh
|
@ -1,12 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.5.9-linux-x86_64 -O linux/tor
|
||||
chmod a+x linux/tor
|
||||
cd linux
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.7.8-linux-x86_64.tar.gz -O tor.tar.gz
|
||||
tar -xzf tor.tar.gz
|
||||
cd ..
|
||||
|
||||
mkdir -p android/app/src/main/jniLibs/arm64-v8a
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.6.9-arm64 -O android/app/src/main/jniLibs/arm64-v8a/libtor.so
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.7.10-arm64 -O android/app/src/main/jniLibs/arm64-v8a/libtor.so
|
||||
chmod a+x android/app/src/main/jniLibs/arm64-v8a/libtor.so
|
||||
|
||||
mkdir -p android/app/src/main/jniLibs/armeabi-v7a
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.6.9-arm7 -O android/app/src/main/jniLibs/armeabi-v7a/libtor.so
|
||||
wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.7.10-arm7 -O android/app/src/main/jniLibs/armeabi-v7a/libtor.so
|
||||
chmod a+x android/app/src/main/jniLibs/armeabi-v7a/libtor.so
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
// This is a basic Flutter integration test.
|
||||
//
|
||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
||||
// utility that Flutter provides. For example, you can send tap and scroll
|
||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
||||
// tree, read text, and verify that the values of widget properties are correct.
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
|
||||
import 'package:cwtch/main_test.dart' as app;
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
_testMain();
|
||||
}
|
||||
|
||||
void _testMain() {
|
||||
testWidgets('Blocked message rejection test', (WidgetTester tester) async {
|
||||
final String testerProfile = "mr roboto";
|
||||
final String blockedProfile = "rudey";
|
||||
|
||||
// start the app and render a few frames
|
||||
app.main();
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
//await tester.pumpAndSettle();
|
||||
|
||||
for (var i = 0; i < 30; i++) {
|
||||
print("$i pump");
|
||||
await tester.pump();
|
||||
}
|
||||
|
||||
// log in to a profile with a blocked contact
|
||||
await tester.tap(find.text(testerProfile));
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
expect(find.byIcon(Icons.block), findsOneWidget);
|
||||
|
||||
// use the debug control to inject a message from the contact
|
||||
await tester.tap(find.byIcon(Icons.bug_report));
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
|
||||
|
||||
// screenshot test
|
||||
print(Directory.current);
|
||||
//Directory.current = "/home/erinn/AndroidStudioProjects/flwtch/integration_test";
|
||||
await expectLater(find.byKey(Key('app')), matchesGoldenFile('blockedcontact.png'));
|
||||
// any active message badges?
|
||||
expect(find.text('1'), findsNothing);
|
||||
});
|
||||
}
|
Before Width: | Height: | Size: 18 KiB |
|
@ -1,411 +0,0 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
|
@ -1,58 +0,0 @@
|
|||
# Tor state file last generated on 2022-02-04 13:53:23 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 675 1
|
||||
CircuitBuildTimeBin 825 1
|
||||
CircuitBuildTimeBin 875 1
|
||||
CircuitBuildTimeBin 925 1
|
||||
CircuitBuildTimeBin 975 1
|
||||
CircuitBuildTimeBin 1075 1
|
||||
CircuitBuildTimeBin 1125 2
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1225 9
|
||||
CircuitBuildTimeBin 1275 21
|
||||
CircuitBuildTimeBin 1325 7
|
||||
CircuitBuildTimeBin 1375 6
|
||||
CircuitBuildTimeBin 1425 9
|
||||
CircuitBuildTimeBin 1475 2
|
||||
CircuitBuildTimeBin 1525 6
|
||||
CircuitBuildTimeBin 1575 4
|
||||
CircuitBuildTimeBin 1625 4
|
||||
CircuitBuildTimeBin 1675 13
|
||||
CircuitBuildTimeBin 1725 3
|
||||
CircuitBuildTimeBin 1775 1
|
||||
CircuitBuildTimeBin 1875 1
|
||||
CircuitBuildTimeBin 1925 1
|
||||
CircuitBuildTimeBin 1975 3
|
||||
CircuitBuildTimeBin 2025 1
|
||||
CircuitBuildTimeBin 2075 2
|
||||
CircuitBuildTimeBin 2275 1
|
||||
CircuitBuildTimeBin 2325 1
|
||||
CircuitBuildTimeBin 2575 1
|
||||
CircuitBuildTimeBin 2725 1
|
||||
CircuitBuildTimeBin 2775 2
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=BD4C647508162F59CB44E4DFC1C2B2B8A9387CCA nickname=regar42 sampled_on=2022-01-27T11:01:16 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-25T23:44:41 confirmed_idx=2 pb_use_attempts=78.000000 pb_use_successes=78.000000 pb_circ_attempts=102.000000 pb_circ_successes=100.000000 pb_successful_circuits_closed=100.000000 pb_timeouts=1.000000
|
||||
Guard in=default rsa_id=AADD84AF8D3C24F492D9EC1E08360D1C7CD5730D nickname=axeTorC sampled_on=2022-01-28T04:55:37 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-04T01:41:15 confirmed_idx=0 pb_use_attempts=1.000000 pb_use_successes=1.000000 pb_circ_attempts=1.000000 pb_circ_successes=1.000000 pb_successful_circuits_closed=1.000000
|
||||
Guard in=default rsa_id=F7B8A4B5F16ECDF6CA626F96F4E3C219D1A664EC nickname=kerneloopsRelay sampled_on=2022-01-26T16:41:28 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-24T18:55:06 confirmed_idx=1
|
||||
Guard in=default rsa_id=274A1DC6210E91827CDF40DC0E95E4A3CA929A08 nickname=AllanonTor sampled_on=2022-01-26T18:56:19 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=891FB8477529A6B2894B7A3129402E0FD5DD281F nickname=hers sampled_on=2022-01-31T03:58:06 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=898B2FBA56F3707B72A0B97CC492CBB466D9D707 nickname=julianrelay sampled_on=2022-01-30T07:22:54 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=84A9473665250B752B621892834E71EECBD610FF nickname=flyingcubetech sampled_on=2022-01-24T19:47:40 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=7DFC30D7EAAEF6E74B081EC0291757E9414A8C06 nickname=TorRelay1337 sampled_on=2022-01-27T01:43:00 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=A5E42F1A3AFA948A7F2FDB1954A4CF6C6489D418 nickname=bauruine sampled_on=2022-01-31T11:16:43 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F9AEA07ACE06E8E7D55E10FFBAE037E8C833FA93 nickname=DTFNODE46 sampled_on=2022-01-24T22:18:09 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3910C5CA0CC5AFE22C709DF471A2B5B6B4AEDC98 nickname=criticalcat sampled_on=2022-01-25T22:53:24 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=FD449127D30D8F5D124653D9EF736EDF4A12B4DC nickname=lw sampled_on=2022-02-01T00:36:22 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0E2EEC125A6AC8D5EBF5DB36B776A3DA5510E7A0 nickname=Nako sampled_on=2022-02-04T00:40:19 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2C7C9294CFA7AAFB3D25B72DEAED242E96927F03 nickname=ChomelesDEnetcup sampled_on=2022-01-30T05:51:02 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=916DC3199F639168CD20AEC4D45969268E807699 nickname=defcon777 sampled_on=2022-01-27T11:01:04 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=A6C3B64EC8EE20D77987EBC5E894CA6CCE4B5295 nickname=OwlRelay sampled_on=2022-01-30T19:20:11 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=6FB33CCBEF5135AFA3D6D33CE030F96728EDD70C nickname=MDMIT1 sampled_on=2022-01-31T16:49:37 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=85703987A509438D96E22AD367E99FF295E089AF nickname=gbtUSicebeer09b sampled_on=2022-02-03T22:13:49 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=BA053C72E476C1EB9D05237D0D6A289C18FBE8E7 nickname=straDEicebeer02b sampled_on=2022-01-24T08:18:24 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=225A8EA367DF3073433E0A845DDDA26D2357E4C6 nickname=Manureva sampled_on=2022-01-29T21:39:31 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:53:23
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 108
|
|
@ -1,3 +0,0 @@
|
|||
SocksPort 9667 OnionTrafficOnly
|
||||
ControlPort 9668
|
||||
HashedControlPassword 16:501107AD0642A3C66029D6A37845E976D5F55B4DED7C4A43CC044638A5
|
|
@ -1,411 +0,0 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
|
@ -1,39 +0,0 @@
|
|||
# Tor state file last generated on 2022-02-04 13:57:02 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 875 1
|
||||
CircuitBuildTimeBin 1025 1
|
||||
CircuitBuildTimeBin 1125 1
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1275 1
|
||||
CircuitBuildTimeBin 1475 1
|
||||
CircuitBuildTimeBin 1875 1
|
||||
CircuitBuildTimeBin 1925 1
|
||||
CircuitBuildTimeBin 2025 1
|
||||
CircuitBuildTimeBin 2375 1
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=D70A5E01EC14D078164D5E587608949F85FD771B nickname=leaders2 sampled_on=2022-01-30T18:34:14 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T06:04:33 confirmed_idx=1 pb_circ_attempts=13.000000 pb_circ_successes=10.000000 pb_successful_circuits_closed=10.000000 pb_timeouts=1.000000
|
||||
Guard in=default rsa_id=598C8E4E92D8D7750991D23F6776EE92EC1A00C1 nickname=Unnamed sampled_on=2022-02-01T01:24:07 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-29T15:09:32 confirmed_idx=2
|
||||
Guard in=default rsa_id=013ABAED8F4CDB677BE0B5212E4B2583B86035EE nickname=b0rken sampled_on=2022-01-27T22:32:07 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-03T10:23:27 confirmed_idx=0
|
||||
Guard in=default rsa_id=66DFC51E724E38DDCB3AB67DDF4C0BB0F1F49C0B nickname=Seccom04 sampled_on=2022-01-26T06:52:32 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=9400AF52EC2929DA41E6DDD3B684F23643BC316C nickname=BM03 sampled_on=2022-01-30T16:35:42 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=DD0C8EEC5CA402A9FA4478F10C31A440F71F6885 nickname=chaosDelroth sampled_on=2022-01-31T18:30:35 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=6055FE90C18DD4B2593A9D0E02DDC4D68E9BA62E nickname=elects2 sampled_on=2022-01-29T10:24:36 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=79233E8202A0EE755B39BC24BE80939C023B3FCD nickname=m83fr2 sampled_on=2022-02-01T17:58:48 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=C4BDBFD1049EE1D4F6977C42485F94CD5F97BA92 nickname=lenin sampled_on=2022-01-29T15:57:51 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=876C5AC1D2811E650AD4C78B77841C1ACB3B0088 nickname=whoUSicebeer05b sampled_on=2022-01-29T15:26:49 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=FF8B7CAD5F508972509D79F933FB24D2F524AB75 nickname=einNettesRelay sampled_on=2022-02-02T09:24:01 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=BFB14B9ADF1F19E59258CAE7FCDBAAC9937B7B10 nickname=Yggdrasil sampled_on=2022-02-02T13:42:48 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=ACBD72F9395DE8DE293D37CCF7733F1BE23EDA53 nickname=hopUSicebeer7b sampled_on=2022-02-02T18:42:20 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F79370BA46ADC03CC10866924EE4A3C470BAFE93 nickname=skankhunt42de4 sampled_on=2022-01-25T11:00:17 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=C1939D36649DE98A202429631D8EFC70128D5F5F nickname=rinderwahnRelay10L sampled_on=2022-01-26T01:10:26 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3BC258C20BBB8094C12DA7CB982B36D1502FAC3C nickname=Assange041us sampled_on=2022-01-31T23:57:37 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=B2242163F681F77F93190663AC5F696ACF76C4FD nickname=torexit42 sampled_on=2022-02-03T12:50:47 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=1F953ACBFB9F44CE38543B7E9C0E0BE1BDC7E941 nickname=bauruine sampled_on=2022-01-24T00:30:24 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F00C8B7589FEE52BE84387CDB422C1F1386979C0 nickname=JennyRelay sampled_on=2022-01-30T03:59:39 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CD39C258265B25EAA4ABA4FDCB2DF98104CAA362 nickname=normaray sampled_on=2022-01-30T09:12:11 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:57:02
|
||||
MinutesSinceUserActivity 3
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 10
|
|
@ -1,3 +0,0 @@
|
|||
SocksPort 9735 OnionTrafficOnly
|
||||
ControlPort 9736
|
||||
HashedControlPassword 16:178423CBFA6B25BD608424EE12A1FACF5D36FF43215636A5917F8D64DF
|
|
@ -1,411 +0,0 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
|
@ -1,35 +0,0 @@
|
|||
# Tor state file last generated on 2022-02-04 13:58:29 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 1075 1
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1325 1
|
||||
CircuitBuildTimeBin 1675 1
|
||||
CircuitBuildTimeBin 2125 2
|
||||
CircuitBuildTimeBin 2175 1
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=73283C4DEBC01D3E4A5FD1BB1F2B50D927379F59 nickname=rinderwahnRelay29L sampled_on=2022-01-31T13:54:49 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-26T00:18:13 confirmed_idx=2 pb_circ_attempts=7.000000 pb_circ_successes=7.000000 pb_successful_circuits_closed=7.000000
|
||||
Guard in=default rsa_id=955F15325D6F3E3350EA8A70EB5C49C5BF95C5A0 nickname=XTOMDUS sampled_on=2022-01-31T07:54:08 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-01T08:12:17 confirmed_idx=1
|
||||
Guard in=default rsa_id=82DA9678A0BAE60087AA68A3E1D6E6A2C4246D6D nickname=Ichotolot63 sampled_on=2022-02-03T05:29:22 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T08:46:50 confirmed_idx=0
|
||||
Guard in=default rsa_id=77A3ADC5D455778B53C2803761916DFB7DA0A790 nickname=redvader sampled_on=2022-02-02T15:23:39 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2096BCFEBB95A1134F39FCF8CEB076FF41A2B48B nickname=freja sampled_on=2022-02-03T19:51:55 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=AE4FAE2EB5DC5D078458F0FCBF2B37F5D73F0868 nickname=sinkrlogin sampled_on=2022-01-24T19:30:40 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=680F212ADE23311C658CC560DAF80DB42FEB85DF nickname=a9 sampled_on=2022-01-28T12:54:55 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3D5D6178C44537E3692853B344385F6572A55767 nickname=TorZabehlice sampled_on=2022-01-31T02:57:52 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CEDB8AB22915097A3A14F63F28E1E43F86CBECC0 nickname=knight sampled_on=2022-01-26T09:02:31 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0B555940D37DC849728841C0B290074E1A1BDCA8 nickname=TORro sampled_on=2022-01-26T04:11:45 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2A6D9EAE2FB319486C5E3BF5CC0F83F06B73CE0F nickname=clicker1 sampled_on=2022-01-28T16:27:29 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=7B3535760987464C8B5686F203B6EBE767C0873E nickname=Hydra69 sampled_on=2022-01-25T23:46:36 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0F0F690AF1D32C7C3C72C543836625628887BA85 nickname=Hydra57 sampled_on=2022-01-24T15:26:39 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=AC2275831607A95CD8B939C3B8DC466CCF48E2B9 nickname=notsorelay sampled_on=2022-01-25T04:52:58 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=38F732DD349A2E59078434651162A2F4201934A5 nickname=mixminion sampled_on=2022-01-25T18:16:12 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2F844B6701E6C614240214489A99DF607F43C5B0 nickname=3totalrecovery3 sampled_on=2022-01-31T01:50:15 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=EBE718E1A49EE229071702964F8DB1F318075FF8 nickname=fluxe4 sampled_on=2022-01-24T07:17:01 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=8118F4C0E60C84A453ACCD1641F3A7328CBE6280 nickname=wilfong sampled_on=2022-02-01T10:05:37 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2AA5F598F9A1812F01CD99E3B59BB87362ED7438 nickname=setsun sampled_on=2022-02-01T12:40:07 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CF6A6080091BB210AA3892FEFE2F6A396DA08DF3 nickname=cryzrelay01 sampled_on=2022-02-01T11:05:41 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:58:29
|
||||
MinutesSinceUserActivity 1
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 7
|
|
@ -1,3 +0,0 @@
|
|||
SocksPort 9982 OnionTrafficOnly
|
||||
ControlPort 9983
|
||||
HashedControlPassword 16:D95A03E7895DC6A2605B7AF7E28AB1E24D813742A0E86A2818C7179CE6
|
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB |
|
@ -1,11 +1,9 @@
|
|||
@env:clean
|
||||
Feature: Splash screen displays and then closes
|
||||
Scenario: splash screen appears
|
||||
Then I expect the widget 'SplashView' to be present within 1 second
|
||||
Scenario: splash screen completes
|
||||
Then I expect the widget 'SplashView' to be present within 10 seconds
|
||||
Then I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
||||
Scenario: first-run of cwtch creates expected files and folders
|
||||
Given I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
||||
# first-run of cwtch creates expected files and folders
|
||||
Then I expect the folder 'integration_test/env/temp' to exist
|
||||
And I expect the folder 'integration_test/env/temp/dev' to exist
|
||||
And I expect the file 'integration_test/env/temp/dev/SALT' to exist
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
@env:persist
|
||||
Feature: Settings pane opens and can save settings persistently
|
||||
Scenario: Open the Settings pane
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
Then I expect the text 'Cwtch Settings' to be present
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the 'OpenSettingsView' button
|
||||
And I wait until the text 'Cwtch Settings' is present
|
||||
And I take a screenshot
|
||||
|
||||
Scenario: Change every setting (except Language)
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
When I tap the widget that contains the text "Use Light Themes"
|
||||
#And I choose option 3 from the "DropdownTheme" dropdown
|
||||
#When I tap the "DropdownTheme" button
|
||||
#And I tap the first "ddi_mermaid" element
|
||||
#And I tap the element that contains the text "Mermaid"
|
||||
#And I tap the element that contains the text "Mermaid" within the "DropdownTheme"
|
||||
And I tap the widget that contains the text "Block Unknown Contacts"
|
||||
And I tap the widget that contains the text "Streamer/Presentation Mode"
|
||||
And I tap the widget that contains the text "Enable Experiments"
|
||||
Then I wait until the text 'Enable Group Chat' is present
|
||||
And I tap the widget that contains the text "Enable Group Chat"
|
||||
And I tap the widget that contains the text "Hosting Servers"
|
||||
And I tap the widget that contains the text "File Sharing"
|
||||
Then I wait until the text 'Image Previews and Profile Pictures' is present
|
||||
And I tap the widget that contains the text "Image Previews and Profile Pictures"
|
||||
And I wait until the text 'Download Folder' is present
|
||||
And I fill the "DownloadFolderPicker" field with "/this/is/a/test"
|
||||
And I tap the widget that contains the text "Enable Clickable Links"
|
||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||
|
@ -35,8 +35,9 @@ Feature: Settings pane opens and can save settings persistently
|
|||
And I expect the switch that contains the text "Enable Clickable Links" to be checked
|
||||
|
||||
Scenario: When the app is reloaded, settings from the previous scenario have persisted
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
|
||||
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
Feature: Tor initializes correctly
|
||||
Scenario: Check the Tor version
|
||||
Given I tap the icon with type "TorIcon"
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the icon with type "TorIcon"
|
||||
Then I expect the Tor version to be present
|
||||
And I expect the string 'Online' to be present within 60 seconds
|
||||
And I expect the string 'Online' to be present within 120 seconds
|
||||
|
||||
Scenario: Reset Tor
|
||||
Given I tap the icon with type "TorIcon"
|
||||
Then I expect the string 'Online' to be present within 60 seconds
|
||||
Then I tap the button with text "Reset"
|
||||
Then I expect the text "Online" to be absent
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the icon with type "TorIcon"
|
||||
Then I expect the string 'Online' to be present within 120 seconds
|
||||
Then I tap the button that contains the text "Reset"
|
||||
Then I expect the text "Online" to be absent within 5 seconds
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
Feature: Shutdown Cwtch button works correctly
|
||||
Scenario: Clicking 'Shutdown Cwtch' shuts down Cwtch
|
||||
Given I tap the button with tooltip 'Shutdown Cwtch'
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the button with tooltip 'Shutdown Cwtch'
|
||||
Then I expect the text 'Shutdown Cwtch?' to be present
|
||||
#this also kills the testing framework sadly. will have to find a workaround
|
||||
#And I tap the button that contains the text 'Shutdown Cwtch'
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
Feature: Global 'language' setting
|
||||
Scenario: Change the language to French and back
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I wait until the text 'Language' is present
|
||||
Then I expect the text 'Language' to be present
|
||||
And I expect the text 'Langue' to be absent
|
||||
When I tap the widget that contains the text "English"
|
||||
And I tap the widget that contains the text "Frances"
|
||||
Then I expect the text 'Langue' to be present
|
||||
When I tap the dropdown button that contains the text "English"
|
||||
And I wait until the text 'French' is present
|
||||
And I tap the dropdown button that contains the text "French"
|
||||
And I wait until the text 'Langue' is present
|
||||
And I expect the text 'Language' to be absent
|
||||
When I tap the widget that contains the text "Français"
|
||||
And I tap the widget that contains the text "Anglais"
|
||||
Then I expect the text 'Language' to be present
|
||||
And I scroll the dropdown list "languagelist" by -10
|
||||
And I tap the dropdown button that contains the text "Anglais"
|
||||
And I wait until the text 'Language' is present
|
||||
And I expect the text 'Langue' to be absent
|
|
@ -1,10 +1,13 @@
|
|||
Feature: Global 'Theme' setting
|
||||
Scenario: Change the theme to Mermaid
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
When I tap the "DropdownTheme" button
|
||||
And I tap the element that contains the text "Mermaid"
|
||||
And I wait until the text 'Mermaid' is present
|
||||
And I tap the dropdown button that contains the text "Mermaid"
|
||||
Scenario: Change the theme to Light Mode
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I tap the widget that contains the text "Theme"
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
And I tap the widget that contains the text "Use Light Themes"
|
|
@ -3,18 +3,21 @@ Feature: Block unknown contacts setting
|
|||
Scenario: Carol adds Alice but Alice doesn't see it because Block Unknowns is enabled
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait until the text "Block Unknown Contacts" is present
|
||||
When I tap the widget that contains the text "Block Unknown Contacts"
|
||||
Then I expect the switch that contains the text "Block Unknown Contacts" to be checked
|
||||
Given I tap the back button
|
||||
Then I tap the back button
|
||||
And I wait until the tooltip "Online" is present
|
||||
And I wait until the text "Carol" is present
|
||||
And I tap the button that contains the text "Carol"
|
||||
And I wait until the text "Conversations" is present
|
||||
And I tap the button with tooltip "Add a new contact or conversation"
|
||||
And I tap the button that contains the text "Add contact"
|
||||
And I wait until the text "Paste a cwtch address" is present
|
||||
When I fill the "txtAddP2P" field with "vbmmsbx3rhndpfz6t3jkrd7m3yu62xzrldxkdgsw4rsehiwuw3tmo7yd"
|
||||
And I wait for 1 second
|
||||
And I take a screenshot
|
||||
And I wait for 3 seconds
|
||||
And I tap the back button
|
||||
And I wait until the text "Alice" is present
|
||||
And I wait until the tooltip "Online" is present
|
||||
And I tap the button that contains the text "Alice"
|
||||
And I wait for 20 seconds
|
||||
Then I expect the text "yxj2pvhozedflp4g7yitpqkeho63maaffi2qgsj3e6s2fbmosuuas2qd" to be absent
|
|
@ -5,7 +5,7 @@ Feature: Streamer mode
|
|||
And I wait until the text "vbmmsbx3rhndpfz6t3jkrd7m3yu62xzrldxkdgsw4rsehiwuw3tmo7yd" is present
|
||||
And I wait until the text "pjurzypqui3dnpxj6aemk6cqz22yx6zfr5lq4jzu7muwe2yyx2zrnzyd" is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I wait until the text "Streamer/Presentation Mode" is present
|
||||
And I tap the widget that contains the text "Streamer/Presentation Mode"
|
||||
Then I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
|
||||
When I tap the back button
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
Feature: Basic Profile Management
|
||||
Scenario: Error on Creating a Profile without a Display Name
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the button with tooltip "Add new profile"
|
||||
Then I expect the text 'Display Name' to be present
|
||||
And I tap a button with tooltip "Add new profile"
|
||||
And I tap the "addNewProfileActual" button
|
||||
And I wait until the text 'Display Name' is present
|
||||
And I expect the text 'New Password' to be present
|
||||
And I expect the text 'Please enter a display name' to be absent
|
||||
Then I tap the "button" widget with label "Add new profile"
|
||||
|
@ -12,12 +13,13 @@ Feature: Basic Profile Management
|
|||
|
||||
Scenario: Create Unencrypted Profile
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the button with tooltip "Add new profile"
|
||||
Then I expect the text 'Display Name' to be present
|
||||
And I tap a button with tooltip "Add new profile"
|
||||
And I tap the "addNewProfileActual" button
|
||||
And I wait until the text 'Display Name' is present
|
||||
And I expect the text 'New Password' to be present
|
||||
And I take a screenshot
|
||||
Then I tap the "passwordCheckBox" widget
|
||||
And I expect the text 'New Password' to be absent
|
||||
And I expect the text 'New Password' to be absent within 2 seconds
|
||||
And I take a screenshot
|
||||
Then I fill the "displayNameFormElement" field with "Alice (Unencrypted)"
|
||||
Then I tap the "button" widget with label "Add new profile"
|
||||
|
@ -33,8 +35,9 @@ Feature: Basic Profile Management
|
|||
|
||||
Scenario: Create Encrypted Profile
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the button with tooltip "Add new profile"
|
||||
Then I expect the text 'Display Name' to be present
|
||||
And I tap a button with tooltip "Add new profile"
|
||||
And I tap the "addNewProfileActual" button
|
||||
And I wait until the text 'Display Name' is present
|
||||
And I expect the text 'New Password' to be present
|
||||
And I take a screenshot
|
||||
Then I fill the "displayNameFormElement" field with "Alice (Encrypted)"
|
||||
|
@ -51,7 +54,7 @@ Feature: Basic Profile Management
|
|||
Scenario: Load an Encrypted Profile by Unlocking it with a Password
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Then I expect the text 'Enter a password to view your profiles' to be absent
|
||||
And I tap the button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
And I tap a button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
Then I expect the text 'Enter a password to view your profiles' to be present
|
||||
When I fill the "unlockPasswordProfileElement" field with "password1"
|
||||
And I tap the "button" widget with label "Unlock"
|
||||
|
@ -60,7 +63,7 @@ Feature: Basic Profile Management
|
|||
Scenario: Load an Encrypted Profile by Unlocking it with a Password and Change the Name
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Then I expect the text 'Enter a password to view your profiles' to be absent
|
||||
And I tap the button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
And I tap a button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
Then I expect the text 'Enter a password to view your profiles' to be present
|
||||
When I fill the "unlockPasswordProfileElement" field with "password1"
|
||||
And I tap the "button" widget with label "Unlock"
|
||||
|
@ -75,7 +78,7 @@ Feature: Basic Profile Management
|
|||
Scenario: Delete an Encrypted Profile
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Then I expect the text 'Enter a password to view your profiles' to be absent
|
||||
And I tap the button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
And I tap a button with tooltip "Unlock encrypted profiles by entering their password."
|
||||
Then I expect the text 'Enter a password to view your profiles' to be present
|
||||
When I fill the "unlockPasswordProfileElement" field with "password1"
|
||||
And I tap the "button" widget with label "Unlock"
|
||||
|
@ -83,8 +86,9 @@ Feature: Basic Profile Management
|
|||
And I take a screenshot
|
||||
When I tap the "IconButton" widget with tooltip "Edit Profile Carol (Encrypted)"
|
||||
Then I expect the text 'Display Name' to be present
|
||||
Then I fill the "currentPasswordFormElement" field with "password1"
|
||||
When I tap the button that contains the text "Delete"
|
||||
Then I expect the text "Really Delete Profile" to be present
|
||||
Then I wait for 2 seconds
|
||||
When I tap the "button" widget with label "Really Delete Profile"
|
||||
And I wait until the widget with type 'ProfileMgrView' is present
|
||||
Then I expect a "ProfileRow" widget with text "Carol (Encrypted)" to be absent
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'dart:io';
|
|||
import 'package:cwtch/main.dart' as app;
|
||||
import 'package:glob/glob.dart';
|
||||
|
||||
import 'gherkin_suite_test.dart';
|
||||
import 'hooks/env.dart';
|
||||
import 'steps/chat.dart';
|
||||
import 'steps/files.dart';
|
||||
|
@ -18,10 +19,11 @@ import 'steps/text.dart';
|
|||
import 'steps/utils.dart';
|
||||
|
||||
part 'gherkin_suite_test.g.dart';
|
||||
|
||||
const REPLACED_BY_SCRIPT = <String>['integration_test/features/**.feature'];
|
||||
|
||||
@GherkinTestSuite(executionOrder: ExecutionOrder.alphabetical, featurePaths: REPLACED_BY_SCRIPT)
|
||||
void main() {
|
||||
void main() async {
|
||||
final params = [
|
||||
SwitchStateParameter(),
|
||||
];
|
||||
|
@ -50,51 +52,57 @@ void main() {
|
|||
// text
|
||||
TorVersionPresent(),
|
||||
TooltipTap(),
|
||||
TooltipTapAny(),
|
||||
// files
|
||||
FolderExists(),
|
||||
FileExists(),
|
||||
];
|
||||
|
||||
var sb = StringBuffer();
|
||||
sb..writeln("## Custom Parameters\n")
|
||||
..writeln("| name | pattern |")
|
||||
..writeln("| --- | --- |");
|
||||
sb
|
||||
..writeln("## Custom Parameters\n")
|
||||
..writeln("| name | pattern |")
|
||||
..writeln("| --- | --- |");
|
||||
for (var i in params) {
|
||||
sb..write("| ")..write(i.identifier)..write(" | ")..write(i.pattern.toString().replaceFirst("RegExp: pattern=","").replaceFirst(" flags=i","").replaceAll("|", "|"))..writeln(" |");
|
||||
sb
|
||||
..write("| ")
|
||||
..write(i.identifier)
|
||||
..write(" | ")
|
||||
..write(i.pattern.toString().replaceFirst("RegExp: pattern=", "").replaceFirst(" flags=i", "").replaceAll("|", "|"))
|
||||
..writeln(" |");
|
||||
}
|
||||
sb..writeln("\n## Custom steps\n")
|
||||
..writeln("| pattern |")
|
||||
..writeln("| --- |");
|
||||
sb
|
||||
..writeln("\n## Custom steps\n")
|
||||
..writeln("| pattern |")
|
||||
..writeln("| --- |");
|
||||
for (var i in steps) {
|
||||
sb.writeln(i.pattern.toString().replaceFirst("RegExp: pattern=", "| ").replaceFirst(" flags=", " |").replaceAll("|", "|"));
|
||||
}
|
||||
var f = File("integration_test/CustomSteps.md");
|
||||
f.writeAsString(sb.toString());
|
||||
|
||||
executeTestSuite(
|
||||
FlutterTestConfiguration.DEFAULT([])
|
||||
..reporters = [
|
||||
StdoutReporter(MessageLevel.error)
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
ProgressReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
TestRunSummaryReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
JsonReporter(
|
||||
writeReport: (_, __) => Future<void>.value(),
|
||||
),
|
||||
]
|
||||
..customStepParameterDefinitions = [
|
||||
SwitchStateParameter(),
|
||||
]
|
||||
..stepDefinitions = steps
|
||||
..hooks = [
|
||||
ResetCwtchEnvironment(),
|
||||
AttachScreenshotOnFailedStepHook(),
|
||||
],
|
||||
(World world) => app.main(),
|
||||
await executeTestSuite(
|
||||
configuration: FlutterTestConfiguration(
|
||||
reporters: [
|
||||
StdoutReporter(MessageLevel.verbose)
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
ProgressReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
TestRunSummaryReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
JsonReporter(),
|
||||
],
|
||||
customStepParameterDefinitions: [
|
||||
SwitchStateParameter(),
|
||||
],
|
||||
stepDefinitions: steps,
|
||||
hooks: [
|
||||
ResetCwtchEnvironment(),
|
||||
AttachScreenshotOnFailedStepHook(),
|
||||
]),
|
||||
appMainFunction: (World world) => app.main(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ class ResetCwtchEnvironment extends Hook {
|
|||
Future<void> onBeforeRun(TestConfiguration config) async {
|
||||
// initialize @env:persist
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
await Process.run("cp", ["-R", "integration_test/env/persist", "integration_test/env/temp-persist"]);
|
||||
|
||||
return super.onBeforeRun(config);
|
||||
|
@ -17,32 +18,55 @@ class ResetCwtchEnvironment extends Hook {
|
|||
|
||||
@override
|
||||
Future<void> onAfterRun(TestConfiguration config) async {
|
||||
// Clean up After a Test Run...
|
||||
print("clean up environments after run...");
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
return super.onAfterRun(config);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> onBeforeScenario(TestConfiguration config, String scenario, Iterable<Tag> tags) async {
|
||||
if (tags.any((t) => t.name == "@env:persist")) {
|
||||
await Process.run("mv", ["integration_test/env/temp-persist", "integration_test/env/temp"]);
|
||||
return Process.run("rm", ["-rf", "integration_test/env/temp"]).then((value) {
|
||||
return Process.run("mv",
|
||||
["integration_test/env/temp-persist", "integration_test/env/temp"])
|
||||
.then((value) {
|
||||
print("copied persist!");
|
||||
return super.onBeforeScenario(config, scenario, tags);
|
||||
});
|
||||
});
|
||||
} else if (tags.any((t) => t.name == "@env:aliceandbob1")) {
|
||||
await Process.run("cp", ["-R", "integration_test/env/aliceandbob1", "integration_test/env/temp"]);
|
||||
return Process.run("rm", ["-rf", "integration_test/env/temp"]).then((value) {
|
||||
return Process.run("cp", [
|
||||
"-R",
|
||||
"integration_test/env/aliceandbob1",
|
||||
"integration_test/env/temp"
|
||||
]).then((value) {
|
||||
print("copied aliceandbob!");
|
||||
return super.onBeforeScenario(config, scenario, tags);
|
||||
});
|
||||
});
|
||||
} else if (!(tags.any((t) => t.name == "@env:clean"))) {
|
||||
// use the default environment if no @env: tag specified
|
||||
await Process.run("cp", ["-R", "integration_test/env/default", "integration_test/env/temp"]);
|
||||
} else {
|
||||
print("no environment initialized");
|
||||
return Process.run("rm", ["-rf", "integration_test/env/temp"]).then((value) {
|
||||
return Process.run("cp",
|
||||
["-R", "integration_test/env/default", "integration_test/env/temp"])
|
||||
.then((value) {
|
||||
print("copied clean!");
|
||||
return super.onBeforeScenario(config, scenario, tags);
|
||||
});
|
||||
});
|
||||
}
|
||||
print("potentially dirty environment initialized - clean not specified");
|
||||
return super.onBeforeScenario(config, scenario, tags);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags) async {
|
||||
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags, {bool passed = true}) async {
|
||||
if (tags.any((t) => t.name == "@env:persist")) {
|
||||
await Process.run("mv", ["integration_test/env/temp", "integration_test/env/temp-persist"]);
|
||||
} else {
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
}
|
||||
return super.onAfterScenario(config, scenario, tags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,28 +15,20 @@ import 'overrides.dart';
|
|||
|
||||
StepDefinitionGeneric ExpectReply() {
|
||||
return given3<String, String, int, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
||||
(originalMessage, responseMessage, seconds, context) async {
|
||||
RegExp(r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
||||
(originalMessage, responseMessage, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
||||
context.world.appDriver.findBy(originalMessage, FindType.text)
|
||||
)
|
||||
) && await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
||||
context.world.appDriver.findBy(responseMessage, FindType.text)
|
||||
));
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(originalMessage, FindType.text))) &&
|
||||
await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(responseMessage, FindType.text)));
|
||||
},
|
||||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,8 @@ import 'package:gherkin/gherkin.dart';
|
|||
|
||||
StepDefinitionGeneric FolderExists() {
|
||||
return then1<String, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect the folder {string} to exist'),
|
||||
(input1, context) async {
|
||||
RegExp(r'I expect the folder {string} to exist'),
|
||||
(input1, context) async {
|
||||
context.expect(Directory(input1).existsSync(), true);
|
||||
},
|
||||
);
|
||||
|
@ -14,10 +13,9 @@ StepDefinitionGeneric FolderExists() {
|
|||
|
||||
StepDefinitionGeneric FileExists() {
|
||||
return then1<String, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect the file {string} to exist'),
|
||||
(input1, context) async {
|
||||
RegExp(r'I expect the file {string} to exist'),
|
||||
(input1, context) async {
|
||||
context.expect(File(input1).existsSync(), true);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,16 +11,16 @@ enum SwitchState { checked, unchecked }
|
|||
class SwitchStateParameter extends CustomParameter<SwitchState> {
|
||||
SwitchStateParameter()
|
||||
: super("toggle", RegExp(r"(checked|unchecked)", caseSensitive: false), (s) {
|
||||
switch (s.toLowerCase()) {
|
||||
case "checked":
|
||||
return SwitchState.checked;
|
||||
case "unchecked":
|
||||
return SwitchState.unchecked;
|
||||
}
|
||||
});
|
||||
switch (s.toLowerCase()) {
|
||||
case "checked":
|
||||
return SwitchState.checked;
|
||||
case "unchecked":
|
||||
return SwitchState.unchecked;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
class CheckSwitchState extends Given2WithWorld<String,SwitchState,FlutterWorld> {
|
||||
class CheckSwitchState extends Given2WithWorld<String, SwitchState, FlutterWorld> {
|
||||
@override
|
||||
Future<void> executeStep(String input1, SwitchState state) async {
|
||||
final switch1 = world.appDriver.findBy(input1, FindType.key);
|
||||
|
@ -38,9 +38,8 @@ class CheckSwitchState extends Given2WithWorld<String,SwitchState,FlutterWorld>
|
|||
|
||||
StepDefinitionGeneric CheckSwitchStateWithText() {
|
||||
return then2<String, SwitchState, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect the switch that contains the text {string} to be {toggle}'),
|
||||
(input1, state, context) async {
|
||||
RegExp(r'I expect the switch that contains the text {string} to be {toggle}'),
|
||||
(input1, state, context) async {
|
||||
final textFinder = context.world.appDriver.findBy(input1, FindType.text);
|
||||
await context.world.appDriver.scrollIntoView(textFinder);
|
||||
final switchTypeFinder = context.world.appDriver.findBy(SwitchListTile, FindType.type);
|
||||
|
@ -53,9 +52,8 @@ StepDefinitionGeneric CheckSwitchStateWithText() {
|
|||
|
||||
StepDefinitionGeneric DropdownChoose() {
|
||||
return then2<int, String, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I choose option {int} from the {string} dropdown'),
|
||||
(idx, input1, context) async {
|
||||
RegExp(r'I choose option {int} from the {string} dropdown'),
|
||||
(idx, input1, context) async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
final ddFinder = context.world.appDriver.findBy(input1, FindType.key);
|
||||
await context.world.appDriver.scrollIntoView(ddFinder);
|
||||
|
@ -78,4 +76,3 @@ StepDefinitionGeneric DropdownChoose() {
|
|||
},
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,11 +30,9 @@ StepDefinitionGeneric TapWidgetWithType() {
|
|||
StepDefinitionGeneric TapWidgetWithLabel() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} widget with label {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
|
@ -47,11 +45,9 @@ StepDefinitionGeneric TapWidgetWithLabel() {
|
|||
StepDefinitionGeneric TapWidgetWithTooltip() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} widget with tooltip {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.tooltip),
|
||||
firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver
|
||||
.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.tooltip), firstMatchOnly: true);
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
@ -62,11 +58,9 @@ StepDefinitionGeneric TapWidgetWithTooltip() {
|
|||
StepDefinitionGeneric ExpectWidgetWithText() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I expect a {string} widget with text {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.isPresent(finder);
|
||||
|
@ -78,11 +72,9 @@ StepDefinitionGeneric ExpectWidgetWithText() {
|
|||
StepDefinitionGeneric AbsentWidgetWithText() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I expect a {string} widget with text {string} to be absent$'),
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.isAbsent(finder);
|
||||
|
@ -91,15 +83,11 @@ StepDefinitionGeneric AbsentWidgetWithText() {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
StepDefinitionGeneric TapButtonWithText() {
|
||||
return given1<String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} (?:button|element|label|icon|field|text|widget)$'),
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(Flwtch, FindType.type),
|
||||
context.world.appDriver.findBy(input1, FindType.key),
|
||||
firstMatchOnly: true);
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(context.world.appDriver.findBy(Flwtch, FindType.type), context.world.appDriver.findBy(input1, FindType.key), firstMatchOnly: true);
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
@ -110,18 +98,18 @@ StepDefinitionGeneric TapButtonWithText() {
|
|||
StepDefinitionGeneric WaitUntilTypeExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the (?:button|element|label|icon|field|text|widget) with type {string} is {existence}',
|
||||
(ofType, existence, context) async {
|
||||
(ofType, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
)
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
);
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
|
@ -130,11 +118,10 @@ StepDefinitionGeneric WaitUntilTypeExists() {
|
|||
|
||||
StepDefinitionGeneric ExpectTextToBePresent() {
|
||||
return given2<String, int, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect the string {string} to be present within {int} second(s)$'),
|
||||
(key, seconds, context) async {
|
||||
RegExp(r'I expect the string {string} to be present within {int} second(s)$'),
|
||||
(key, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return context.world.appDriver.isPresent(
|
||||
|
@ -144,94 +131,85 @@ StepDefinitionGeneric ExpectTextToBePresent() {
|
|||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric ExpectWidgetWithTextWithin() {
|
||||
return given3<String, String, int, FlutterWorld>(
|
||||
RegExp(
|
||||
r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
||||
(widgetType, text, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
RegExp(r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
||||
(widgetType, text, seconds, context) async {
|
||||
await () async {
|
||||
var result = false;
|
||||
while (!result) {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text)
|
||||
),
|
||||
result = await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type), context.world.appDriver.findBy(text, FindType.text)),
|
||||
);
|
||||
},
|
||||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
}
|
||||
}()
|
||||
.timeout(Duration(seconds: 120));
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric WaitUntilTextExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the text {string} is {existence}',
|
||||
(text, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
(text, existence, context) async {
|
||||
await () async {
|
||||
var result = false;
|
||||
while (!result) {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return existence == Existence.absent
|
||||
result = await (existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
)
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
);
|
||||
},
|
||||
timeout: Duration(seconds: 120),
|
||||
);
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
));
|
||||
}
|
||||
}()
|
||||
.timeout(Duration(seconds: 120));
|
||||
},
|
||||
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric WaitUntilTooltipExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the tooltip {string} is {existence}',
|
||||
(ofType, existence, context) async {
|
||||
(ofType, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
)
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
);
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
);
|
||||
},
|
||||
timeout: Duration(seconds: 120),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
mixin _SwipeHelper
|
||||
on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||
mixin _SwipeHelper on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||
Future<void> swipeOnFinder(
|
||||
dynamic finder,
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
) async {
|
||||
dynamic finder,
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
) async {
|
||||
if (direction == SwipeDirection.left || direction == SwipeDirection.right) {
|
||||
final offset =
|
||||
direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
||||
final offset = direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
||||
await world.appDriver.scroll(
|
||||
finder,
|
||||
dx: offset.toDouble(),
|
||||
|
@ -239,8 +217,7 @@ on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
|||
timeout: timeout,
|
||||
);
|
||||
} else {
|
||||
final offset =
|
||||
direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
||||
final offset = direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
||||
|
||||
await world.appDriver.scroll(
|
||||
finder,
|
||||
|
@ -251,26 +228,21 @@ on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
|||
}
|
||||
}
|
||||
}
|
||||
class SwipeOnType
|
||||
extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld>
|
||||
with _SwipeHelper {
|
||||
|
||||
class SwipeOnType extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> with _SwipeHelper {
|
||||
@override
|
||||
Future<void> executeStep(
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
String typeOf,
|
||||
String text,
|
||||
) async {
|
||||
final finder = this.world.appDriver.findByDescendant(
|
||||
this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type),
|
||||
this.world.appDriver.findBy(text, FindType.text)
|
||||
);
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
String typeOf,
|
||||
String text,
|
||||
) async {
|
||||
final finder = this.world.appDriver.findByDescendant(this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type), this.world.appDriver.findBy(text, FindType.text));
|
||||
await swipeOnFinder(finder, direction, swipeAmount);
|
||||
}
|
||||
|
||||
@override
|
||||
RegExp get pattern => RegExp(
|
||||
r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
||||
RegExp get pattern => RegExp(r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
||||
}
|
||||
|
||||
Type widgetTypeByName(String input1) {
|
||||
|
@ -284,12 +256,12 @@ Type widgetTypeByName(String input1) {
|
|||
case "TorIcon":
|
||||
return TorIcon;
|
||||
case "button":
|
||||
return ElevatedButton;
|
||||
return ElevatedButton;
|
||||
case "IconButton":
|
||||
return IconButton;
|
||||
case "ProfileRow":
|
||||
return ProfileRow;
|
||||
return ProfileRow;
|
||||
default:
|
||||
throw("Unknown type $input1. add to integration_test/features/overrides.dart");
|
||||
throw ("Unknown type $input1. add to integration_test/features/overrides.dart");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,46 +4,52 @@ import 'package:flutter_gherkin/flutter_gherkin.dart';
|
|||
import 'package:gherkin/gherkin.dart';
|
||||
|
||||
StepDefinitionGeneric TooltipTap() {
|
||||
return given1<String, FlutterWorld>(
|
||||
RegExp(r'I tap the button with tooltip {string}'),
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
}
|
||||
);
|
||||
return given1<String, FlutterWorld>(RegExp(r'I tap the button with tooltip {string}'), (input1, context) async {
|
||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
});
|
||||
}
|
||||
|
||||
StepDefinitionGeneric TooltipTapAny() {
|
||||
return given1<String, FlutterWorld>(RegExp(r'I tap a button with tooltip {string}'), (input1, context) async {
|
||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip).first;
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
});
|
||||
}
|
||||
|
||||
StepDefinitionGeneric TorVersionPresent() {
|
||||
return given<FlutterWorld>(
|
||||
RegExp(r'I expect the Tor version to be present$'),
|
||||
(context) async {
|
||||
String versionString = "";
|
||||
final file = File('fetch-tor.sh');
|
||||
Stream<String> lines = file.openRead()
|
||||
.transform(utf8.decoder)
|
||||
.transform(LineSplitter());
|
||||
try {
|
||||
await for (var line in lines) {
|
||||
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
||||
versionString = line.substring(81, 88);
|
||||
break;
|
||||
}
|
||||
}
|
||||
print('File is now closed.');
|
||||
} catch (e) {
|
||||
print('Error: $e');
|
||||
(context) async {
|
||||
String versionString = "";
|
||||
final file = File('fetch-tor.sh');
|
||||
Stream<String> lines = file.openRead().transform(utf8.decoder).transform(LineSplitter());
|
||||
try {
|
||||
await for (var line in lines) {
|
||||
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
||||
versionString = line.substring(81, 88);
|
||||
break;
|
||||
}
|
||||
if (versionString == "") {
|
||||
context.expect(versionString, "#.#.#", reason: "error reading version string from fetch-tor.sh");
|
||||
return;
|
||||
}
|
||||
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
||||
context.reporter.message("test!!!", MessageLevel.info);
|
||||
print("looking for version string $versionString");
|
||||
final finder = context.world.appDriver.findBy(versionString, FindType.text,);
|
||||
final isP = await context.world.appDriver.isPresent(finder);
|
||||
context.expect(isP, true);
|
||||
}
|
||||
print('File is now closed.');
|
||||
} catch (e) {
|
||||
print('Error: $e');
|
||||
}
|
||||
if (versionString == "") {
|
||||
context.expect(versionString, "#.#.#", reason: "error reading version string from fetch-tor.sh");
|
||||
return;
|
||||
}
|
||||
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
||||
//context.reporter.message("test!!!", MessageLevel.info);
|
||||
print("looking for version string $versionString");
|
||||
final finder = context.world.appDriver.findBy(
|
||||
versionString,
|
||||
FindType.text,
|
||||
);
|
||||
final isP = await context.world.appDriver.isPresent(finder);
|
||||
context.expect(isP, true);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,14 +4,16 @@ import 'package:gherkin/gherkin.dart';
|
|||
|
||||
StepDefinitionGeneric TakeScreenshot() {
|
||||
return then<FlutterWorld>(
|
||||
RegExp(
|
||||
r'I take a screenshot'),
|
||||
(context) async {
|
||||
RegExp(r'I take a screenshot'),
|
||||
(context) async {
|
||||
try {
|
||||
final bytes = await context.world.appDriver.screenshot();
|
||||
final screenshotData = base64Encode(bytes);
|
||||
print("EMBEDDING SCREENSHOT....");
|
||||
print("$screenshotData");
|
||||
context.world.attach(screenshotData, 'image/png', 'And I take a screenshot');
|
||||
} catch (e, st) {
|
||||
print("FAILED TO EMBED??? $e $st");
|
||||
context.world.attach('Failed to take screenshot\n$e\n$st', 'text/plain');
|
||||
}
|
||||
},
|
||||
|
|
|
@ -10,7 +10,8 @@ class EnvironmentConfig {
|
|||
|
||||
static void debugLog(String log) {
|
||||
if (EnvironmentConfig.BUILD_VER == dev_version) {
|
||||
print(log);
|
||||
String datetime = DateTime.now().toIso8601String();
|
||||
print("$datetime $log");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,13 @@ abstract class Cwtch {
|
|||
Future<void> ReconnectCwtchForeground();
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateProfile(String nick, String pass);
|
||||
void CreateProfile(String nick, String pass, bool autostart);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void ActivatePeerEngine(String profile);
|
||||
// ignore: non_constant_identifier_names
|
||||
void DeactivatePeerEngine(String profile);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void LoadProfiles(String pass);
|
||||
// ignore: non_constant_identifier_names
|
||||
|
@ -26,12 +32,7 @@ abstract class Cwtch {
|
|||
|
||||
// ignore: non_constant_identifier_names
|
||||
void ResetTor();
|
||||
|
||||
// todo: remove these
|
||||
// ignore: non_constant_identifier_names
|
||||
void SendProfileEvent(String onion, String jsonEvent);
|
||||
// ignore: non_constant_identifier_names
|
||||
void SendAppEvent(String jsonEvent);
|
||||
void UpdateSettings(String json);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void AcceptContact(String profileOnion, int contactHandle);
|
||||
|
@ -59,11 +60,21 @@ abstract class Cwtch {
|
|||
|
||||
// ignore: non_constant_identifier_names
|
||||
Future<dynamic> ShareFile(String profile, int handle, String filepath);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
Future<dynamic> GetSharedFiles(String profile, int handle);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void RestartSharing(String profile, String filekey);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void StopSharing(String profile, String filekey);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void DownloadFile(String profile, int handle, String filepath, String manifestpath, String filekey);
|
||||
// android-only
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateDownloadableFile(String profile, int handle, String filenameSuggestion, String filekey);
|
||||
void CreateDownloadableFile(String profile, int handle, String filenameSuggestion, String filekey, String manifestPath);
|
||||
// ignore: non_constant_identifier_names
|
||||
void CheckDownloadStatus(String profile, String fileKey);
|
||||
// ignore: non_constant_identifier_names
|
||||
|
@ -81,12 +92,15 @@ abstract class Cwtch {
|
|||
void CreateGroup(String profile, String server, String groupName);
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void ImportBundle(String profile, String bundle);
|
||||
Future<dynamic> ImportBundle(String profile, String bundle);
|
||||
// ignore: non_constant_identifier_names
|
||||
void SetProfileAttribute(String profile, String key, String val);
|
||||
String? GetProfileAttribute(String profile, String key);
|
||||
// ignore: non_constant_identifier_names
|
||||
void SetConversationAttribute(String profile, int conversation, String key, String val);
|
||||
// ignore: non_constant_identifier_names
|
||||
String? GetConversationAttribute(String profile, int identifier, String s);
|
||||
// ignore: non_constant_identifier_names
|
||||
void SetMessageAttribute(String profile, int conversation, int channel, int message, String key, String val);
|
||||
// ignore: non_constant_identifier_names
|
||||
void LoadServers(String password);
|
||||
|
@ -111,7 +125,7 @@ abstract class Cwtch {
|
|||
Future<void> Shutdown();
|
||||
|
||||
// non-ffi
|
||||
String defaultDownloadPath();
|
||||
String? defaultDownloadPath();
|
||||
|
||||
bool isL10nInit();
|
||||
|
||||
|
@ -120,4 +134,11 @@ abstract class Cwtch {
|
|||
void dispose();
|
||||
|
||||
Future<dynamic> GetDebugInfo();
|
||||
|
||||
bool IsServersCompiled();
|
||||
|
||||
Future<String> SummarizeConversation(String profile, int conversation);
|
||||
Future<String> TranslateMessage(String profile, int conversation, int message, String language);
|
||||
|
||||
bool IsBlodeuweddSupported();
|
||||
}
|
||||
|
|
|
@ -30,14 +30,15 @@ class CwtchNotifier {
|
|||
late NotificationsManager notificationManager;
|
||||
late AppState appState;
|
||||
late ServerListState serverListState;
|
||||
late FlwtchState flwtchState;
|
||||
|
||||
String? notificationSimple;
|
||||
String? notificationConversationInfo;
|
||||
|
||||
SeenMessageCallback? seenMessageCallback;
|
||||
|
||||
CwtchNotifier(
|
||||
ProfileListState pcn, Settings settingsCN, ErrorHandler errorCN, TorStatus torStatusCN, NotificationsManager notificationManagerP, AppState appStateCN, ServerListState serverListStateCN) {
|
||||
CwtchNotifier(ProfileListState pcn, Settings settingsCN, ErrorHandler errorCN, TorStatus torStatusCN, NotificationsManager notificationManagerP, AppState appStateCN,
|
||||
ServerListState serverListStateCN, FlwtchState flwtchStateCN) {
|
||||
profileCN = pcn;
|
||||
settings = settingsCN;
|
||||
error = errorCN;
|
||||
|
@ -45,6 +46,7 @@ class CwtchNotifier {
|
|||
notificationManager = notificationManagerP;
|
||||
appState = appStateCN;
|
||||
serverListState = serverListStateCN;
|
||||
flwtchState = flwtchStateCN;
|
||||
}
|
||||
|
||||
void l10nInit(String notificationSimple, String notificationConversationInfo) {
|
||||
|
@ -70,9 +72,23 @@ class CwtchNotifier {
|
|||
if (data["Online"] == null) {
|
||||
break;
|
||||
}
|
||||
EnvironmentConfig.debugLog("NewPeer $data");
|
||||
// EnvironmentConfig.debugLog("NewPeer $data");
|
||||
// if tag != v1-defaultPassword then it is either encrypted OR it is an unencrypted account created during pre-beta...
|
||||
profileCN.add(data["Identity"], data["name"], data["picture"], data["defaultPicture"], data["ContactsJson"], data["ServerList"], data["Online"] == "true", data["tag"] != "v1-defaultPassword");
|
||||
profileCN.add(data["Identity"], data["name"], data["picture"], data["defaultPicture"], data["ContactsJson"], data["ServerList"], data["Online"] == "true", data["autostart"] == "true",
|
||||
data["tag"] != "v1-defaultPassword");
|
||||
|
||||
// Update Profile Attributes
|
||||
profileCN.getProfile(data["Identity"])?.setAttribute(0, flwtchState.cwtch.GetProfileAttribute(data["Identity"], "profile.profile-attribute-1"));
|
||||
profileCN.getProfile(data["Identity"])?.setAttribute(1, flwtchState.cwtch.GetProfileAttribute(data["Identity"], "profile.profile-attribute-2"));
|
||||
profileCN.getProfile(data["Identity"])?.setAttribute(2, flwtchState.cwtch.GetProfileAttribute(data["Identity"], "profile.profile-attribute-3"));
|
||||
profileCN.getProfile(data["Identity"])?.setAvailabilityStatus(flwtchState.cwtch.GetProfileAttribute(data["Identity"], "profile.profile-status") ?? "");
|
||||
profileCN.getProfile(data["Identity"])?.contactList.contacts.forEach((contact) {
|
||||
contact.setAttribute(0, flwtchState.cwtch.GetConversationAttribute(data["Identity"], contact.identifier, "public.profile.profile-attribute-1"));
|
||||
contact.setAttribute(1, flwtchState.cwtch.GetConversationAttribute(data["Identity"], contact.identifier, "public.profile.profile-attribute-2"));
|
||||
contact.setAttribute(2, flwtchState.cwtch.GetConversationAttribute(data["Identity"], contact.identifier, "public.profile.profile-attribute-3"));
|
||||
contact.setAvailabilityStatus(flwtchState.cwtch.GetConversationAttribute(data["Identity"], contact.identifier, "public.profile.profile-status") ?? "");
|
||||
});
|
||||
|
||||
break;
|
||||
case "ContactCreated":
|
||||
EnvironmentConfig.debugLog("ContactCreated $data");
|
||||
|
@ -290,6 +306,10 @@ class CwtchNotifier {
|
|||
profileCN.getProfile(data["ProfileOnion"])?.downloadSetPathForSender(filekey, data["Data"]);
|
||||
}
|
||||
}
|
||||
} else if (data["Key"].toString().startsWith("public.profile.profile-attribute")) {
|
||||
// ignore these events...
|
||||
} else if (data["Key"].toString().startsWith("public.profile.profile-status")) {
|
||||
profileCN.getProfile(data["ProfileOnion"])?.setAvailabilityStatus(data["Data"]);
|
||||
} else {
|
||||
EnvironmentConfig.debugLog("unhandled set attribute event: ${data['Key']}");
|
||||
}
|
||||
|
@ -309,6 +329,18 @@ class CwtchNotifier {
|
|||
case "UpdateServerInfo":
|
||||
profileCN.getProfile(data["ProfileOnion"])?.replaceServers(data["ServerList"]);
|
||||
break;
|
||||
case "TokenManagerInfo":
|
||||
try {
|
||||
List<dynamic> associatedGroups = jsonDecode(data["Data"]);
|
||||
int count = int.parse(data["ServerTokenCount"]);
|
||||
associatedGroups.forEach((identifier) {
|
||||
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(int.parse(identifier.toString()))!.antispamTickets = count;
|
||||
});
|
||||
EnvironmentConfig.debugLog("update server token count for ${associatedGroups}, $count");
|
||||
} catch (e) {
|
||||
// No tokens in data...
|
||||
}
|
||||
break;
|
||||
case "NewGroup":
|
||||
String invite = data["GroupInvite"].toString();
|
||||
if (invite.startsWith("torv3")) {
|
||||
|
@ -364,6 +396,30 @@ class CwtchNotifier {
|
|||
profileCN.getProfile(data["ProfileOnion"])?.waitForDownloadComplete(contact.identifier, fileKey);
|
||||
}
|
||||
}
|
||||
} else if (data['Path'] == "profile.profile-attribute-1" || data['Path'] == "profile.profile-attribute-2" || data['Path'] == "profile.profile-attribute-3") {
|
||||
if (data["Exists"] == "true") {
|
||||
var contact = profileCN.getProfile(data["ProfileOnion"])?.contactList.findContact(data["RemotePeer"]);
|
||||
if (contact != null) {
|
||||
switch (data['Path']) {
|
||||
case "profile.profile-attribute-1":
|
||||
contact.setAttribute(0, data["Data"]);
|
||||
break;
|
||||
case "profile.profile-attribute-2":
|
||||
contact.setAttribute(1, data["Data"]);
|
||||
break;
|
||||
case "profile.profile-attribute-3":
|
||||
contact.setAttribute(2, data["Data"]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (data['Path'] == "profile.profile-status") {
|
||||
if (data["Exists"] == "true") {
|
||||
var contact = profileCN.getProfile(data["ProfileOnion"])?.contactList.findContact(data["RemotePeer"]);
|
||||
if (contact != null) {
|
||||
contact.setAvailabilityStatus(data['Data']);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
EnvironmentConfig.debugLog("unhandled ret val event: ${data['Path']}");
|
||||
}
|
||||
|
@ -395,6 +451,16 @@ class CwtchNotifier {
|
|||
case "DoneStorageMigration":
|
||||
appState.SetModalState(ModalState.none);
|
||||
break;
|
||||
case "BlodeuweddSummary":
|
||||
var identifier = int.parse(data["ConversationID"]);
|
||||
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier)?.updateSummaryEvent(data["Summary"]);
|
||||
break;
|
||||
case "BlodeuweddTranslation":
|
||||
var identifier = int.parse(data["ConversationID"]);
|
||||
var mid = int.parse(data["Index"]);
|
||||
EnvironmentConfig.debugLog("received translation event: $identifier $mid $data");
|
||||
profileCN.getProfile(data["ProfileOnion"])?.contactList.getContact(identifier)?.updateTranslationEvent(mid, data["Translation"]);
|
||||
break;
|
||||
case "ACNInfo":
|
||||
var key = data["Key"];
|
||||
var handle = data["Handle"];
|
||||
|
|
|
@ -29,6 +29,7 @@ typedef FreeFn = void Function(Pointer<Utf8>);
|
|||
|
||||
typedef void_from_string_string_function = Void Function(Pointer<Utf8>, Int32, Pointer<Utf8>, Int32);
|
||||
typedef VoidFromStringStringFn = void Function(Pointer<Utf8>, int, Pointer<Utf8>, int);
|
||||
typedef VoidFromStringFn = void Function(Pointer<Utf8>, int);
|
||||
|
||||
typedef void_from_string_string_string_function = Void Function(Pointer<Utf8>, Int32, Pointer<Utf8>, Int32, Pointer<Utf8>, Int32);
|
||||
typedef VoidFromStringStringStringFn = void Function(Pointer<Utf8>, int, Pointer<Utf8>, int, Pointer<Utf8>, int);
|
||||
|
@ -68,6 +69,22 @@ typedef GetJsonBlobFromStrIntStrFn = Pointer<Utf8> Function(Pointer<Utf8>, int,
|
|||
typedef get_json_blob_from_str_str_int_function = Pointer<Utf8> Function(Pointer<Utf8>, Int32, Pointer<Utf8>, Int32, Int32);
|
||||
typedef GetJsonBlobFromStrStrIntFn = Pointer<Utf8> Function(Pointer<Utf8>, int, Pointer<Utf8>, int, int);
|
||||
|
||||
typedef get_json_blob_from_str_int_function = Pointer<Utf8> Function(Pointer<Utf8>, Int32, Int32);
|
||||
typedef GetJsonBlobFromStrIntFn = Pointer<Utf8> Function(Pointer<Utf8>, int, int);
|
||||
|
||||
typedef get_json_blob_from_str_str_function = Pointer<Utf8> Function(Pointer<Utf8>, Int32, Pointer<Utf8>, Int32);
|
||||
typedef GetJsonBlobFromStrStrFn = Pointer<Utf8> Function(Pointer<Utf8>, int, Pointer<Utf8>, int);
|
||||
|
||||
typedef get_json_blob_from_str_int_int_str_function = Pointer<Utf8> Function(Pointer<Utf8>, Int32, Int32, Int32, Pointer<Utf8>, Int32);
|
||||
typedef GetJsonBlobFromStrIntIntStrFn = Pointer<Utf8> Function(
|
||||
Pointer<Utf8>,
|
||||
int,
|
||||
int,
|
||||
int,
|
||||
Pointer<Utf8>,
|
||||
int,
|
||||
);
|
||||
|
||||
typedef get_json_blob_from_str_int_int_function = Pointer<Utf8> Function(Pointer<Utf8>, Int32, Int32, Int32);
|
||||
typedef GetJsonBlobFromStrIntIntFn = Pointer<Utf8> Function(Pointer<Utf8>, int, int, int);
|
||||
|
||||
|
@ -120,8 +137,11 @@ class CwtchFfi implements Cwtch {
|
|||
} else if (Platform.isLinux) {
|
||||
return "libCwtch.so";
|
||||
} else if (Platform.isMacOS) {
|
||||
print(dirname(Platform.script.path));
|
||||
return "libCwtch.dylib";
|
||||
if (Abi.current() == Abi.macosX64) {
|
||||
return "libCwtch.x64.dylib";
|
||||
} else {
|
||||
return "libCwtch.arm64.dylib";
|
||||
}
|
||||
} else {
|
||||
return UNSUPPORTED_OS;
|
||||
}
|
||||
|
@ -146,15 +166,21 @@ class CwtchFfi implements Cwtch {
|
|||
Map<String, String> envVars = Platform.environment;
|
||||
String cwtchDir = "";
|
||||
if (Platform.isLinux) {
|
||||
cwtchDir = envVars['CWTCH_HOME'] ?? path.join(envVars['HOME']!, ".cwtch");
|
||||
if (await File("linux/tor").exists()) {
|
||||
bundledTor = "linux/tor";
|
||||
} else if (await File("lib/tor").exists()) {
|
||||
bundledTor = "lib/tor";
|
||||
} else if (await File(path.join(home, ".local/lib/cwtch/tor")).exists()) {
|
||||
bundledTor = path.join(home, ".local/lib/cwtch/tor");
|
||||
} else if (await File("/usr/lib/cwtch/tor").exists()) {
|
||||
bundledTor = "/usr/lib/cwtch/tor";
|
||||
home = envVars['HOME'] ?? "";
|
||||
if (EnvironmentConfig.TEST_MODE) {
|
||||
cwtchDir = envVars['CWTCH_HOME']!;
|
||||
} else {
|
||||
cwtchDir = envVars['CWTCH_HOME'] ?? path.join(envVars['HOME']!, ".cwtch");
|
||||
}
|
||||
|
||||
if (await File("linux/Tor/tor").exists()) {
|
||||
bundledTor = "linux/Tor/tor";
|
||||
} else if (await File("lib/Tor/tor").exists()) {
|
||||
bundledTor = "lib/Tor/tor";
|
||||
} else if (await File(path.join(home, ".local/lib/cwtch/Tor/tor")).exists()) {
|
||||
bundledTor = path.join(home, ".local/lib/cwtch/Tor/tor");
|
||||
} else if (await File("/usr/lib/cwtch/Tor/tor").exists()) {
|
||||
bundledTor = "/usr/lib/cwtch/Tor/tor";
|
||||
} else {
|
||||
bundledTor = "tor";
|
||||
}
|
||||
|
@ -283,17 +309,35 @@ class CwtchFfi implements Cwtch {
|
|||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateProfile(String nick, String pass) {
|
||||
var createProfileC = library.lookup<NativeFunction<void_from_string_string_function>>("c_CreateProfile");
|
||||
void CreateProfile(String nick, String pass, bool autostart) {
|
||||
var createProfileC = library.lookup<NativeFunction<void_from_string_string_byte_function>>("c_CreateProfile");
|
||||
// ignore: non_constant_identifier_names
|
||||
final CreateProfile = createProfileC.asFunction<VoidFromStringStringFn>();
|
||||
final CreateProfile = createProfileC.asFunction<VoidFromStringStringByteFn>();
|
||||
final utf8nick = nick.toNativeUtf8();
|
||||
final ut8pass = pass.toNativeUtf8();
|
||||
CreateProfile(utf8nick, utf8nick.length, ut8pass, ut8pass.length);
|
||||
CreateProfile(utf8nick, utf8nick.length, ut8pass, ut8pass.length, autostart ? 1 : 0);
|
||||
malloc.free(utf8nick);
|
||||
malloc.free(ut8pass);
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void ActivatePeerEngine(String profile) {
|
||||
var activatePeerEngineC = library.lookup<NativeFunction<string_to_void_function>>("c_ActivatePeerEngine");
|
||||
final ActivatePeerEngine = activatePeerEngineC.asFunction<StringFn>();
|
||||
final ut8profile = profile.toNativeUtf8();
|
||||
ActivatePeerEngine(ut8profile, ut8profile.length);
|
||||
malloc.free(ut8profile);
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void DeactivatePeerEngine(String profile) {
|
||||
var deactivatePeerEngineC = library.lookup<NativeFunction<string_to_void_function>>("c_DeactivatePeerEngine");
|
||||
final DeactivatePeerEngine = deactivatePeerEngineC.asFunction<StringFn>();
|
||||
final ut8profile = profile.toNativeUtf8();
|
||||
DeactivatePeerEngine(ut8profile, ut8profile.length);
|
||||
malloc.free(ut8profile);
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void LoadProfiles(String pass) {
|
||||
var loadProfileC = library.lookup<NativeFunction<string_to_void_function>>("c_LoadProfiles");
|
||||
|
@ -331,30 +375,6 @@ class CwtchFfi implements Cwtch {
|
|||
return jsonMessage;
|
||||
}
|
||||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void SendProfileEvent(String onion, String json) {
|
||||
var sendAppBusEvent = library.lookup<NativeFunction<string_string_to_void_function>>("c_SendProfileEvent");
|
||||
// ignore: non_constant_identifier_names
|
||||
final SendAppBusEvent = sendAppBusEvent.asFunction<StringStringFn>();
|
||||
final utf8onion = onion.toNativeUtf8();
|
||||
final utf8json = json.toNativeUtf8();
|
||||
SendAppBusEvent(utf8onion, utf8onion.length, utf8json, utf8json.length);
|
||||
malloc.free(utf8onion);
|
||||
malloc.free(utf8json);
|
||||
}
|
||||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void SendAppEvent(String json) {
|
||||
var sendAppBusEvent = library.lookup<NativeFunction<string_to_void_function>>("c_SendAppEvent");
|
||||
// ignore: non_constant_identifier_names
|
||||
final SendAppBusEvent = sendAppBusEvent.asFunction<StringFn>();
|
||||
final utf8json = json.toNativeUtf8();
|
||||
SendAppBusEvent(utf8json, utf8json.length);
|
||||
malloc.free(utf8json);
|
||||
}
|
||||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void AcceptContact(String profileOnion, int contactHandle) {
|
||||
|
@ -407,7 +427,7 @@ class CwtchFfi implements Cwtch {
|
|||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
Future<dynamic> SendInvitation(String profileOnion, int contactHandle, int target) async {
|
||||
var sendInvitation = library.lookup<NativeFunction<get_json_blob_from_str_int_int_function>>("c_SendInvitation");
|
||||
var sendInvitation = library.lookup<NativeFunction<get_json_blob_from_str_int_int_function>>("c_SendInviteMessage");
|
||||
// ignore: non_constant_identifier_names
|
||||
final SendInvitation = sendInvitation.asFunction<GetJsonBlobFromStrIntIntFn>();
|
||||
final u1 = profileOnion.toNativeUtf8();
|
||||
|
@ -437,7 +457,7 @@ class CwtchFfi implements Cwtch {
|
|||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void DownloadFile(String profileOnion, int contactHandle, String filepath, String manifestpath, String filekey) {
|
||||
var dlFile = library.lookup<NativeFunction<void_from_string_int_string_string_string_function>>("c_DownloadFile");
|
||||
var dlFile = library.lookup<NativeFunction<void_from_string_int_string_string_string_function>>("c_DownloadFileDefaultLimit");
|
||||
// ignore: non_constant_identifier_names
|
||||
final DownloadFile = dlFile.asFunction<VoidFromStringIntStringStringStringFn>();
|
||||
final u1 = profileOnion.toNativeUtf8();
|
||||
|
@ -453,7 +473,7 @@ class CwtchFfi implements Cwtch {
|
|||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateDownloadableFile(String profileOnion, int contactHandle, String filenameSuggestion, String filekey) {
|
||||
void CreateDownloadableFile(String profileOnion, int contactHandle, String filenameSuggestion, String filekey, String manifestPath) {
|
||||
// android only - do nothing
|
||||
}
|
||||
|
||||
|
@ -499,26 +519,29 @@ class CwtchFfi implements Cwtch {
|
|||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void ImportBundle(String profileOnion, String bundle) {
|
||||
var importBundle = library.lookup<NativeFunction<string_string_to_void_function>>("c_ImportBundle");
|
||||
Future<dynamic> ImportBundle(String profileOnion, String bundle) async {
|
||||
var importBundle = library.lookup<NativeFunction<string_string_to_string_function>>("c_ImportBundle");
|
||||
// ignore: non_constant_identifier_names
|
||||
final ImportBundle = importBundle.asFunction<VoidFromStringStringFn>();
|
||||
final ImportBundle = importBundle.asFunction<StringFromStringStringFn>();
|
||||
final u1 = profileOnion.toNativeUtf8();
|
||||
final u2 = bundle.toNativeUtf8();
|
||||
ImportBundle(u1, u1.length, u2, u2.length);
|
||||
Pointer<Utf8> responsePtr = ImportBundle(u1, u1.length, u2, u2.length);
|
||||
String response = responsePtr.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(responsePtr);
|
||||
malloc.free(u1);
|
||||
malloc.free(u2);
|
||||
return response;
|
||||
}
|
||||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateGroup(String profileOnion, String server, String groupName) {
|
||||
var createGroup = library.lookup<NativeFunction<void_from_string_string_string_function>>("c_CreateGroup");
|
||||
var createGroup = library.lookup<NativeFunction<void_from_string_string_string_function>>("c_StartGroup");
|
||||
// ignore: non_constant_identifier_names
|
||||
final CreateGroup = createGroup.asFunction<VoidFromStringStringStringFn>();
|
||||
final u1 = profileOnion.toNativeUtf8();
|
||||
final u2 = server.toNativeUtf8();
|
||||
final u3 = groupName.toNativeUtf8();
|
||||
final u3 = server.toNativeUtf8();
|
||||
final u2 = groupName.toNativeUtf8();
|
||||
CreateGroup(u1, u1.length, u2, u2.length, u3, u3.length);
|
||||
|
||||
malloc.free(u1);
|
||||
|
@ -594,7 +617,7 @@ class CwtchFfi implements Cwtch {
|
|||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void SetMessageAttribute(String profile, int conversation, int channel, int message, String key, String val) {
|
||||
var setMessageAttribute = library.lookup<NativeFunction<void_from_string_int_int_int_string_string_function>>("c_SetMessageAttribute");
|
||||
var setMessageAttribute = library.lookup<NativeFunction<void_from_string_int_int_int_string_string_function>>("c_UpdateMessageAttribute");
|
||||
// ignore: non_constant_identifier_names
|
||||
final SetMessageAttribute = setMessageAttribute.asFunction<VoidFromStringIntIntIntStringStringFn>();
|
||||
final u1 = profile.toNativeUtf8();
|
||||
|
@ -729,7 +752,7 @@ class CwtchFfi implements Cwtch {
|
|||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
Future GetMessageByContentHash(String profile, int handle, String contentHash) async {
|
||||
var getMessagesByContentHashC = library.lookup<NativeFunction<get_json_blob_from_str_int_string_function>>("c_GetMessagesByContentHash");
|
||||
var getMessagesByContentHashC = library.lookup<NativeFunction<get_json_blob_from_str_int_string_function>>("c_GetMessageByContentHash");
|
||||
// ignore: non_constant_identifier_names
|
||||
final GetMessagesByContentHash = getMessagesByContentHashC.asFunction<GetJsonBlobFromStrIntStringFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
|
@ -753,9 +776,13 @@ class CwtchFfi implements Cwtch {
|
|||
}
|
||||
|
||||
@override
|
||||
String defaultDownloadPath() {
|
||||
String? defaultDownloadPath() {
|
||||
Map<String, String> envVars = Platform.environment;
|
||||
return path.join(envVars[Platform.isWindows ? 'UserProfile' : 'HOME']!, "Downloads");
|
||||
String nominalPath = path.join(envVars[Platform.isWindows ? 'UserProfile' : 'HOME']!, "Downloads");
|
||||
if (Directory(nominalPath).existsSync() == false) {
|
||||
return Directory.current.path;
|
||||
}
|
||||
return nominalPath;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -838,4 +865,154 @@ class CwtchFfi implements Cwtch {
|
|||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(result);
|
||||
return debugResult;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> GetSharedFiles(String profile, int handle) async {
|
||||
var getSharedFiles = library.lookup<NativeFunction<get_json_blob_from_str_int_function>>("c_GetSharedFiles");
|
||||
final GetSharedFiles = getSharedFiles.asFunction<GetJsonBlobFromStrIntFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
Pointer<Utf8> jsonMessageBytes = GetSharedFiles(utf8profile, utf8profile.length, handle);
|
||||
String jsonMessage = jsonMessageBytes.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(jsonMessageBytes);
|
||||
malloc.free(utf8profile);
|
||||
return jsonMessage;
|
||||
}
|
||||
|
||||
@override
|
||||
void RestartSharing(String profile, String filekey) {
|
||||
var restartSharingC = library.lookup<NativeFunction<void_from_string_string_function>>("c_RestartSharing");
|
||||
// ignore: non_constant_identifier_names
|
||||
final RestartSharing = restartSharingC.asFunction<VoidFromStringStringFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
final ut8filekey = filekey.toNativeUtf8();
|
||||
RestartSharing(utf8profile, utf8profile.length, ut8filekey, ut8filekey.length);
|
||||
malloc.free(utf8profile);
|
||||
malloc.free(ut8filekey);
|
||||
}
|
||||
|
||||
@override
|
||||
void StopSharing(String profile, String filekey) {
|
||||
var stopSharingC = library.lookup<NativeFunction<void_from_string_string_function>>("c_StopSharing");
|
||||
// ignore: non_constant_identifier_names
|
||||
final StopSharing = stopSharingC.asFunction<VoidFromStringStringFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
final ut8filekey = filekey.toNativeUtf8();
|
||||
StopSharing(utf8profile, utf8profile.length, ut8filekey, ut8filekey.length);
|
||||
malloc.free(utf8profile);
|
||||
malloc.free(ut8filekey);
|
||||
}
|
||||
|
||||
@override
|
||||
void UpdateSettings(String json) {
|
||||
var updateSettings = library.lookup<NativeFunction<string_to_void_function>>("c_UpdateSettings");
|
||||
// ignore: non_constant_identifier_names
|
||||
final UpdateSettingsFn = updateSettings.asFunction<VoidFromStringFn>();
|
||||
final u1 = json.toNativeUtf8();
|
||||
UpdateSettingsFn(u1, u1.length);
|
||||
malloc.free(u1);
|
||||
}
|
||||
|
||||
@override
|
||||
bool IsServersCompiled() {
|
||||
return library.providesSymbol("c_LoadServers");
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> SummarizeConversation(String profile, int conversation) async {
|
||||
if (!library.providesSymbol("c_Summarize")) {
|
||||
return Future.value("");
|
||||
}
|
||||
var summarize = library.lookup<NativeFunction<get_json_blob_from_str_int_function>>("c_Summarize");
|
||||
// ignore: non_constant_identifier_names
|
||||
final SummarizeFn = summarize.asFunction<GetJsonBlobFromStrIntFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
Pointer<Utf8> jsonMessageBytes = SummarizeFn(utf8profile, utf8profile.length, conversation);
|
||||
String jsonMessage = jsonMessageBytes.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(jsonMessageBytes);
|
||||
malloc.free(utf8profile);
|
||||
return jsonMessage;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> TranslateMessage(String profile, int conversation, int message, String language) async {
|
||||
if (!library.providesSymbol("c_Translate")) {
|
||||
return Future.value("");
|
||||
}
|
||||
var translate = library.lookup<NativeFunction<get_json_blob_from_str_int_int_str_function>>("c_Translate");
|
||||
// ignore: non_constant_identifier_names
|
||||
final TranslateFn = translate.asFunction<GetJsonBlobFromStrIntIntStrFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
final utf8lang = language.toNativeUtf8();
|
||||
Pointer<Utf8> jsonMessageBytes = TranslateFn(
|
||||
utf8profile,
|
||||
utf8profile.length,
|
||||
conversation,
|
||||
message,
|
||||
utf8lang,
|
||||
utf8lang.length,
|
||||
);
|
||||
String jsonMessage = jsonMessageBytes.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(jsonMessageBytes);
|
||||
malloc.free(utf8profile);
|
||||
malloc.free(utf8lang);
|
||||
return jsonMessage;
|
||||
}
|
||||
|
||||
@override
|
||||
bool IsBlodeuweddSupported() {
|
||||
if (library.providesSymbol("c_Translate")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
String? GetProfileAttribute(String profile, String key) {
|
||||
var getProfileAttributeC = library.lookup<NativeFunction<get_json_blob_from_str_str_function>>("c_GetProfileAttribute");
|
||||
// ignore: non_constant_identifier_names
|
||||
final GetProfileAttribute = getProfileAttributeC.asFunction<GetJsonBlobFromStrStrFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
final utf8key = key.toNativeUtf8();
|
||||
Pointer<Utf8> jsonMessageBytes = GetProfileAttribute(utf8profile, utf8profile.length, utf8key, utf8key.length);
|
||||
String jsonMessage = jsonMessageBytes.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(jsonMessageBytes);
|
||||
malloc.free(utf8profile);
|
||||
malloc.free(utf8key);
|
||||
|
||||
try {
|
||||
dynamic attributeResult = json.decode(jsonMessage);
|
||||
if (attributeResult["Exists"]) {
|
||||
return attributeResult["Value"];
|
||||
}
|
||||
} catch (e) {
|
||||
EnvironmentConfig.debugLog("error getting profile attribute: $e");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@override
|
||||
String? GetConversationAttribute(String profile, int conversation, String key) {
|
||||
var getConversationAttributeC = library.lookup<NativeFunction<get_json_blob_from_str_int_string_function>>("c_GetConversationAttribute");
|
||||
// ignore: non_constant_identifier_names
|
||||
final GetConversationAttribute = getConversationAttributeC.asFunction<GetJsonBlobFromStrIntStringFn>();
|
||||
final utf8profile = profile.toNativeUtf8();
|
||||
final utf8key = key.toNativeUtf8();
|
||||
Pointer<Utf8> jsonMessageBytes = GetConversationAttribute(utf8profile, utf8profile.length, conversation, utf8key, utf8key.length);
|
||||
String jsonMessage = jsonMessageBytes.toDartString();
|
||||
_UnsafeFreePointerAnyUseOfThisFunctionMustBeDoubleApproved(jsonMessageBytes);
|
||||
malloc.free(utf8profile);
|
||||
malloc.free(utf8key);
|
||||
|
||||
try {
|
||||
dynamic attributeResult = json.decode(jsonMessage);
|
||||
if (attributeResult["Exists"]) {
|
||||
return attributeResult["Value"];
|
||||
}
|
||||
} catch (e) {
|
||||
EnvironmentConfig.debugLog("error getting profile attribute: $e");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,8 +71,18 @@ class CwtchGomobile implements Cwtch {
|
|||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateProfile(String nick, String pass) {
|
||||
cwtchPlatform.invokeMethod("CreateProfile", {"nick": nick, "pass": pass});
|
||||
void CreateProfile(String nick, String pass, bool autostart) {
|
||||
cwtchPlatform.invokeMethod("CreateProfile", {"nick": nick, "pass": pass, "autostart": autostart});
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void ActivatePeerEngine(String profile) {
|
||||
cwtchPlatform.invokeMethod("ActivatePeerEngine", {"profile": profile});
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void DeactivatePeerEngine(String profile) {
|
||||
cwtchPlatform.invokeMethod("DeactivatePeerEngine", {"profile": profile});
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
|
@ -158,8 +168,9 @@ class CwtchGomobile implements Cwtch {
|
|||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
void CreateDownloadableFile(String profileOnion, int conversation, String filenameSuggestion, String filekey) {
|
||||
cwtchPlatform.invokeMethod("CreateDownloadableFile", {"ProfileOnion": profileOnion, "conversation": conversation, "filename": filenameSuggestion, "filekey": filekey});
|
||||
void CreateDownloadableFile(String profileOnion, int conversation, String filenameSuggestion, String filekey, String manifestpath) {
|
||||
cwtchPlatform
|
||||
.invokeMethod("CreateDownloadableFile", {"ProfileOnion": profileOnion, "conversation": conversation, "manifestpath": manifestpath, "filename": filenameSuggestion, "filekey": filekey});
|
||||
}
|
||||
|
||||
// ignore: non_constant_identifier_names
|
||||
|
@ -190,8 +201,8 @@ class CwtchGomobile implements Cwtch {
|
|||
|
||||
@override
|
||||
// ignore: non_constant_identifier_names
|
||||
void ImportBundle(String profileOnion, String bundle) {
|
||||
cwtchPlatform.invokeMethod("ImportBundle", {"ProfileOnion": profileOnion, "bundle": bundle});
|
||||
Future<dynamic> ImportBundle(String profileOnion, String bundle) {
|
||||
return cwtchPlatform.invokeMethod("ImportBundle", {"ProfileOnion": profileOnion, "bundle": bundle});
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -294,7 +305,7 @@ class CwtchGomobile implements Cwtch {
|
|||
}
|
||||
|
||||
@override
|
||||
String defaultDownloadPath() {
|
||||
String? defaultDownloadPath() {
|
||||
return this.androidHomeDirectoryStr;
|
||||
}
|
||||
|
||||
|
@ -333,4 +344,66 @@ class CwtchGomobile implements Cwtch {
|
|||
// we don't implement it
|
||||
return Future.value("{}");
|
||||
}
|
||||
|
||||
@override
|
||||
Future GetSharedFiles(String profile, int handle) {
|
||||
return cwtchPlatform.invokeMethod("GetSharedFiles", {"ProfileOnion": profile, "conversation": handle});
|
||||
}
|
||||
|
||||
@override
|
||||
void RestartSharing(String profile, String filekey) {
|
||||
cwtchPlatform.invokeMethod("RestartSharing", {"ProfileOnion": profile, "filekey": filekey});
|
||||
}
|
||||
|
||||
@override
|
||||
void StopSharing(String profile, String filekey) {
|
||||
cwtchPlatform.invokeMethod("StopSharing", {"ProfileOnion": profile, "filekey": filekey});
|
||||
}
|
||||
|
||||
@override
|
||||
void UpdateSettings(String json) {
|
||||
cwtchPlatform.invokeMethod("UpdateSettings", {"json": json});
|
||||
}
|
||||
|
||||
@override
|
||||
bool IsServersCompiled() {
|
||||
// never for android builds...
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> SummarizeConversation(String profile, int conversation) {
|
||||
// TODO: implement SummarizeConversation
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> TranslateMessage(String profile, int conversation, int message, String language) {
|
||||
// TODO: implement TranslateMessage
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
bool IsBlodeuweddSupported() {
|
||||
// Blodeuwedd is not currently supported on lower end devices.
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
String? GetProfileAttribute(String profile, String key) {
|
||||
dynamic attributeResult = cwtchPlatform.invokeMethod("GetProfileAttribute", {"ProfileOnion": profile, "key": key});
|
||||
if (attributeResult["Exists"]) {
|
||||
return attributeResult["Value"];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@override
|
||||
String? GetConversationAttribute(String profile, int conversation, String key) {
|
||||
dynamic attributeResult = cwtchPlatform.invokeMethod("GetProfileAttribute", {"ProfileOnion": profile, "conversation": conversation, "key": key});
|
||||
if (attributeResult["Exists"]) {
|
||||
return attributeResult["Value"];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/// Flutter icons CwtchIcons
|
||||
/// Copyright (C) 2021 by Open Privacy Research Society via fluttericon.com, fontello.com
|
||||
/// Flutter icons Cwtch
|
||||
/// Copyright (C) 2021-2022 by Open Privacy Research Society
|
||||
/// This font was generated by FlutterIcon.com, which is derived from Fontello.
|
||||
///
|
||||
/// To use this font, place it in your fonts/ directory and include the
|
||||
|
@ -7,9 +7,9 @@
|
|||
///
|
||||
/// flutter:
|
||||
/// fonts:
|
||||
/// - family: CwtchIcons
|
||||
/// - family: Cwtch
|
||||
/// fonts:
|
||||
/// - asset: assets/fonts/CwtchIcons.ttf
|
||||
/// - asset: fonts/Cwtch.ttf
|
||||
///
|
||||
///
|
||||
///
|
||||
|
@ -18,103 +18,112 @@ import 'package:flutter/widgets.dart';
|
|||
class CwtchIcons {
|
||||
CwtchIcons._();
|
||||
|
||||
static const _kFontFam = 'CwtchIcons';
|
||||
static const _kFontFam = 'Cwtch';
|
||||
static const String? _kFontPkg = null;
|
||||
|
||||
static const IconData arrow_back_24px = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData attach_file_24px = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_peer = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_unknown = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_24px = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData brightness_5_24px = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData camera_alt_24px = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData change_language = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData change_theme = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_bubble_empty_24px = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_bubble_24px = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_seetings_24px = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData check_24px = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chevron_left_24px = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData clear_24px = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData content_copy_24px = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData create_group = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData cwtch_knott = IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dark_mode_24px = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData delete_24px = IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_24px = IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData drag_indicator_24px = IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData edit_24px = IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData enable_experiments = IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData enable_groups = IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_closed = IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_open = IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_24dp = IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_broken = IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_brokenhalf = IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_malformed = IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_sad = IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData group_add_24px = IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData group_settings_24px = IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData groups_24px = IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData info_24px = IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData join_group = IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData list_black_24dp = IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData lock_open_24px = IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData lock_24px = IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData maps_ugc_24px = IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData menu_24px = IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData message_24px = IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData mood_24px = IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData more_vert_24px = IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData negative_heart_24px = IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_off = IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_on = IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_waiting = IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData peer_history = IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData peer_settings_24px = IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_add_alt_1_24px = IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_add_24px = IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_24px = IconData(0xe835, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData push_pin_black_24dp = IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData push_pin_24px = IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData search_24px = IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData send_24px = IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData settings_24px = IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_4_bar_24px = IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_alt_24px = IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_connected_no_internet_4_bar_24px = IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_off_24px = IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData swap_horiz_24px = IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_disabled_24px = IconData(0xe840, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_problem_24px = IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_24px = IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_01 = IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_02 = IconData(0xe844, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_03 = IconData(0xe845, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData toggle_on_24px = IconData(0xe846, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData vpn_key_24px = IconData(0xe847, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_blocked = IconData(0xe848, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px = IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_lines = IconData(0xe84a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_lines_thin___blocked = IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_user = IconData(0xe84c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_circle_24px = IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_group = IconData(0xe84e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_peer = IconData(0xe84f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_24px = IconData(0xe850, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData address_copy_2 = IconData(0xe852, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData address = IconData(0xe856, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData streamer_bunnymask = IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData streamer_ghost = IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData cancel_schedule_send_black_24dp = IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData more_horiz_black_24dp = IconData(0xe85e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_black_add_24dp = IconData(0xe85f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_black_24dp = IconData(0xe860, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData info_black_24dp = IconData(0xe861, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData accept_unknown = IconData(0xe862, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_closed_1 = IconData(0xe863, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_open_1 = IconData(0xe864, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData send_invite = IconData(0xe888, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData leave_group = IconData(0xe88a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData leave_chat = IconData(0xe88b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_blocked = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_lines = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_lines_thin___blocked = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData account_circle_24px_user = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_circle_24px = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_group = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_peer = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData add_24px = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData address = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData address_copy = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData alternate_email_black_24dp = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData arrow_back_24px = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData attach_file_24px = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData attached_file = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_peer = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_unknown = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData block_24px = IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData brightness_5_24px = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData camera_alt_24px = IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData cancel_schedule_send_black_24dp = IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData change_language = IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData change_theme = IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_bubble_empty_24px = IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_bubble_24px = IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chat_seetings_24px = IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData check_24px = IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData chevron_left_24px = IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData clear_24px = IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData content_copy_24px = IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData copy_address = IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData create_group = IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData cwtch_knott = IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dark_mode_24px = IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData delete_24px = IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_black_24dp = IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_black_add_24dp = IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData dns_24px = IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData drag_indicator_24px = IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData edit_24px = IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData enable_experiments = IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData enable_groups = IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_closed = IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData eye_open = IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_24dp = IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_broken = IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_brokenhalf = IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_malformed = IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData favorite_black_24dp_sad = IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData folder_black_24dp = IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData group_add_24px = IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData group_settings_24px = IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData groups_24px = IconData(0xe835, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData image_black_24dp = IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData info_black_24dp = IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData info_24px = IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData join_group = IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData leave_chat = IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData leave_group = IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData link_ = IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData list_black_24dp = IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData lock_open_24px = IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData lock_24px = IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData maps_ugc_24px = IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData menu_24px = IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData message_24px = IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData mood_24px = IconData(0xe844, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData more_horiz_black_24dp = IconData(0xe845, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData more_vert_24px = IconData(0xe846, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData negative_heart_24px = IconData(0xe848, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_off = IconData(0xe849, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_on = IconData(0xe84a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData onion_waiting = IconData(0xe84b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData peer_history = IconData(0xe84c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData peer_settings_24px = IconData(0xe84d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_add_alt_1_24px = IconData(0xe84e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_add_24px = IconData(0xe84f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData person_24px = IconData(0xe850, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData push_pin_black_24dp = IconData(0xe852, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData push_pin_24px = IconData(0xe853, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData search_24px = IconData(0xe855, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData send_invite = IconData(0xe856, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData send_24px = IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData settings_24px = IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_4_bar_24px = IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_alt_24px = IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_connected_no_internet_4_bar_24px = IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData signal_cellular_off_24px = IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData streamer_bunnymask = IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData streamer_ghost = IconData(0xe85e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData swap_horiz_24px = IconData(0xe85f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_disabled_24px = IconData(0xe860, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_problem_24px = IconData(0xe861, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData sync_24px = IconData(0xe862, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_01 = IconData(0xe863, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_02 = IconData(0xe864, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData syncing_03 = IconData(0xe865, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData toggle_on_24px = IconData(0xe866, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData vpn_key_24px = IconData(0xe867, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData accept_unknown = IconData(0xe868, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData view_replies = IconData(0xe869, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData anti_spam_2 = IconData(0xe86b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData manage_files = IconData(0xe86c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData attached_file_2 = IconData(0xe86d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
static const IconData anti_spam_3 = IconData(0xe86e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
|
||||
}
|
||||
|
|
|
@ -5,23 +5,14 @@ class ErrorHandler extends ChangeNotifier {
|
|||
static const String successErrorType = "success";
|
||||
|
||||
// Add Contact Specific Errors...
|
||||
static const String addContactErrorPrefix = "addcontact";
|
||||
static const String changePasswordErrorPrefix = "changepassword";
|
||||
static const String invalidImportStringErrorType = "invalid_import_string";
|
||||
static const String contactAlreadyExistsErrorType = "contact_already_exists";
|
||||
bool invalidImportStringError = false;
|
||||
bool contactAlreadyExistsError = false;
|
||||
bool explicitAddContactSuccess = false;
|
||||
|
||||
// ChangePassword
|
||||
bool changePasswordError = false;
|
||||
bool explicitChangePasswordSuccess = false;
|
||||
|
||||
// Import Bundle Specific Errors
|
||||
static const String importBundleErrorPrefix = "importBundle";
|
||||
bool importBundleError = false;
|
||||
bool importBundleSuccess = false;
|
||||
|
||||
static const String deleteProfileErrorPrefix = "deleteprofile";
|
||||
bool deleteProfileError = false;
|
||||
bool deleteProfileSuccess = false;
|
||||
|
@ -31,13 +22,6 @@ class ErrorHandler extends ChangeNotifier {
|
|||
bool deletedServerSuccess = false;
|
||||
|
||||
reset() {
|
||||
invalidImportStringError = false;
|
||||
contactAlreadyExistsError = false;
|
||||
explicitAddContactSuccess = false;
|
||||
|
||||
importBundleError = false;
|
||||
importBundleSuccess = false;
|
||||
|
||||
deleteProfileError = false;
|
||||
deleteProfileSuccess = false;
|
||||
|
||||
|
@ -57,12 +41,6 @@ class ErrorHandler extends ChangeNotifier {
|
|||
String errorType = parts[1];
|
||||
|
||||
switch (prefix) {
|
||||
case addContactErrorPrefix:
|
||||
handleAddContactError(errorType);
|
||||
break;
|
||||
case importBundleErrorPrefix:
|
||||
handleImportBundleError(errorType);
|
||||
break;
|
||||
case deleteProfileErrorPrefix:
|
||||
handleDeleteProfileError(errorType);
|
||||
break;
|
||||
|
@ -76,41 +54,6 @@ class ErrorHandler extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
handleAddContactError(String errorType) {
|
||||
// Reset add contact errors
|
||||
invalidImportStringError = false;
|
||||
contactAlreadyExistsError = false;
|
||||
explicitAddContactSuccess = false;
|
||||
|
||||
switch (errorType) {
|
||||
case invalidImportStringErrorType:
|
||||
invalidImportStringError = true;
|
||||
break;
|
||||
case contactAlreadyExistsErrorType:
|
||||
contactAlreadyExistsError = true;
|
||||
break;
|
||||
case successErrorType:
|
||||
explicitAddContactSuccess = true;
|
||||
importBundleSuccess = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
handleImportBundleError(String errorType) {
|
||||
// Reset add contact errors
|
||||
importBundleError = false;
|
||||
importBundleSuccess = false;
|
||||
|
||||
switch (errorType) {
|
||||
case successErrorType:
|
||||
importBundleSuccess = true;
|
||||
break;
|
||||
default:
|
||||
importBundleError = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
handleDeleteProfileError(String errorType) {
|
||||
// Reset add contact errors
|
||||
deleteProfileError = false;
|
||||
|
|
|
@ -312,6 +312,182 @@ class MaterialLocalizationLu extends MaterialLocalizations {
|
|||
@override
|
||||
String get viewLicensesButtonLabel => 'LIZENZEN ANZEIGEN';
|
||||
|
||||
// ***** NEW *****
|
||||
|
||||
@override
|
||||
String get keyboardKeyAlt => 'Alt';
|
||||
|
||||
@override
|
||||
String get keyboardKeyAltGraph => 'AltGr';
|
||||
|
||||
@override
|
||||
String get keyboardKeyBackspace => 'Backspace';
|
||||
|
||||
@override
|
||||
String get keyboardKeyCapsLock => 'Caps Lock';
|
||||
|
||||
@override
|
||||
String get keyboardKeyChannelDown => 'Kanal Erof';
|
||||
|
||||
@override
|
||||
String get keyboardKeyChannelUp => 'Kanal Up';
|
||||
|
||||
@override
|
||||
String get keyboardKeyControl => 'Ctrl';
|
||||
|
||||
@override
|
||||
String get keyboardKeyDelete => 'Del';
|
||||
|
||||
@override
|
||||
String get keyboardKeyEisu => 'Eisū';
|
||||
|
||||
@override
|
||||
String get keyboardKeyEject => 'Eject';
|
||||
|
||||
@override
|
||||
String get keyboardKeyEnd => 'End';
|
||||
|
||||
@override
|
||||
String get keyboardKeyEscape => 'Esc';
|
||||
|
||||
@override
|
||||
String get keyboardKeyFn => 'Fn';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHangulMode => 'Hangul Mode';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHanjaMode => 'Hanja Mode';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHankaku => 'Hankaku';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHiragana => 'Hiragana';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHiraganaKatakana => 'Hiragana Katakana';
|
||||
|
||||
@override
|
||||
String get keyboardKeyHome => 'Home';
|
||||
|
||||
@override
|
||||
String get keyboardKeyInsert => 'Insert';
|
||||
|
||||
@override
|
||||
String get keyboardKeyKanaMode => 'Kana Mode';
|
||||
|
||||
@override
|
||||
String get keyboardKeyKanjiMode => 'Kanji Mode';
|
||||
|
||||
@override
|
||||
String get keyboardKeyKatakana => 'Katakana';
|
||||
|
||||
@override
|
||||
String get keyboardKeyMeta => 'Meta';
|
||||
|
||||
@override
|
||||
String get keyboardKeyMetaMacOs => 'Command';
|
||||
|
||||
@override
|
||||
String get keyboardKeyMetaWindows => 'Win';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumLock => 'Num Lock';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad0 => 'Num 0';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad1 => 'Num 1';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad2 => 'Num 2';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad3 => 'Num 3';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad4 => 'Num 4';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad5 => 'Num 5';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad6 => 'Num 6';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad7 => 'Num 7';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad8 => 'Num 8';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpad9 => 'Num 9';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadAdd => 'Num +';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadComma => 'Num ,';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadDecimal => 'Num .';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadDivide => 'Num /';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadEnter => 'Num Enter';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadEqual => 'Num =';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadMultiply => 'Num *';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadParenLeft => 'Num (';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadParenRight => 'Num )';
|
||||
|
||||
@override
|
||||
String get keyboardKeyNumpadSubtract => 'Num -';
|
||||
|
||||
@override
|
||||
String get keyboardKeyPageDown => 'PgDown';
|
||||
|
||||
@override
|
||||
String get keyboardKeyPageUp => 'PgUp';
|
||||
|
||||
@override
|
||||
String get keyboardKeyPower => 'Power';
|
||||
|
||||
@override
|
||||
String get keyboardKeyPowerOff => 'Power Off';
|
||||
|
||||
@override
|
||||
String get keyboardKeyPrintScreen => 'Print Screen';
|
||||
|
||||
@override
|
||||
String get keyboardKeyRomaji => 'Romaji';
|
||||
|
||||
@override
|
||||
String get keyboardKeyScrollLock => 'Scroll Lock';
|
||||
|
||||
@override
|
||||
String get keyboardKeySelect => 'Select';
|
||||
|
||||
@override
|
||||
String get keyboardKeySpace => 'Spasie';
|
||||
|
||||
@override
|
||||
String get keyboardKeyZenkaku => 'Zenkaku';
|
||||
|
||||
@override
|
||||
String get keyboardKeyZenkakuHankaku => 'Zenkaku Hankaku';
|
||||
|
||||
@override
|
||||
String aboutListTileTitle(String applicationName) {
|
||||
return aboutListTileTitleRaw.replaceFirst("$applicationName", applicationName);
|
||||
|
@ -442,4 +618,8 @@ class MaterialLocalizationLu extends MaterialLocalizations {
|
|||
// TODO: implement timeOfDayFormat
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
// TODO: implement menuBarMenuLabel
|
||||
String get menuBarMenuLabel => throw UnimplementedError();
|
||||
}
|
||||
|
|
|
@ -1,14 +1,80 @@
|
|||
{
|
||||
"@@locale": "cy",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Tyrceg \/ Türk",
|
||||
"localeIt": "Eidaleg \/ Italiana",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Almaeneg \/ Deutsch",
|
||||
"localePt": "Portiwgaleg \/ Portuguesa",
|
||||
"localeRo": "Rwmaneg \/ Română",
|
||||
"localeEl": "Groeg \/ Ελληνικά",
|
||||
"localeLb": "Lwcsembwrg \/ Lëtzebuergesch",
|
||||
"localeRU": "Rwsieg \/ Русский",
|
||||
"localeCy": "Cymraeg \/ Cymraeg",
|
||||
"localePl": "Pwylaidd \/ Polski",
|
||||
"localeFr": "Ffrangeg \/ Français",
|
||||
"localeEs": "Sbaeneg \/ Español",
|
||||
"localeNo": "Norwyaidd \/ Norsk",
|
||||
"localeDa": "Daneg \/ Dansk",
|
||||
"localeEn": "Saesneg \/ English",
|
||||
"tooltipBoldText": "Beiddgar",
|
||||
"tooltipCode": "Cod \/ Monospace",
|
||||
"exportProfileTooltip": "Gwneud copi wrth gefn o'r proffil hwn i ffeil wedi'i hamgryptio. Gellir mewngludo'r ffeil wedi'i hamgryptio i ap Cwtch arall.",
|
||||
"settingAndroidPowerExemption": "Android Anwybyddu Optimeiddio Batri",
|
||||
"messageFormattingDescription": "Galluogi fformatio testun cyfoethog mewn negeseuon wedi'u harddangos e.e. **beiddgar** a *italig*",
|
||||
"tooltipBackToMessageEditing": "Yn ôl i Olygu Negeseuon",
|
||||
"clickableLinksWarning": "Bydd agor yr URL hwn yn lansio cais y tu allan i Cwtch a gall ddatgelu metadata neu beryglu diogelwch Cwtch fel arall. Dim ond agor URLs gan bobl rydych chi'n ymddiried ynddyn nhw. Ydych chi'n siŵr eich bod am barhau?",
|
||||
"settingsAndroidPowerReenablePopup": "Does dim modd ail-alluogi Optimeiddio Batri o fewn Cwtch. Ewch i Android \/ Gosodiadau \/ Apps \/ Cwtch \/ Batri a gosod Defnydd i 'Optimized'",
|
||||
"tooltipItalicize": "Italig",
|
||||
"tooltipSuperscript": "Uwchysgrif",
|
||||
"settingAndroidPowerExemptionDescription": "Dewisol: Gofynnwch i Android eithrio Cwtch rhag rheoli pŵer optimized. Bydd hyn yn arwain at well sefydlogrwydd ar draul mwy o ddefnydd o fatri.",
|
||||
"successfullyImportedProfile": "Proffil wedi'i Fewngludo'n Llwyddiannus: %profile",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Mae'r nodwedd hon yn gofyn i'r Arbrawf Grwpiau gael ei alluogi mewn Gosodiadau",
|
||||
"tooltipPreviewFormatting": "Rhagolwg Fformatio Negeseuon",
|
||||
"clickableLinkError": "Gwall wrth geisio agor URL",
|
||||
"importProfileTooltip": "Defnyddiwch gopi wrth gefn Cwtch wedi'i amgryptio i gyflwyno proffil a grëwyd mewn achos arall o Cwtch.",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"tooltipSubscript": "Is-sgript",
|
||||
"settingImagePreviewsDescription": "Bydd delweddau a Lluniau Proffil yn cael eu lawrlwytho a'u rhagolwg yn awtomatig. Rydym yn argymell nad ydych yn galluogi'r Arbrawf hwn os ydych yn defnyddio Cwtch gyda chysylltiadau diymwad.",
|
||||
"formattingExperiment": "Fformatio Neges",
|
||||
"clickableLinkOpen": "Agor URL",
|
||||
"clickableLinksCopy": "Copïo URL",
|
||||
|
@ -17,19 +83,8 @@
|
|||
"importProfile": "Proffil Mewnforio",
|
||||
"exportProfile": "Proffil Allforio",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Cannot re-enable Battery Optimization from within Cwtch. Please go to Android \/ Settings \/ Apps \/ Cwtch \/ Battery and set Usage to 'Optimized'",
|
||||
"settingAndroidPowerExemptionDescription": "Optional: Request Android to exempt Cwtch from optimized power management. This will result in better stability at the cost of greater battery use.",
|
||||
"settingAndroidPowerExemption": "Android Ignore Battery Optimizations",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "This feature requires the Groups Experiment to be enabled in Settings",
|
||||
"messageFormattingDescription": "Enable rich text formatting in displayed messages e.g. **bold** and *italic*",
|
||||
"clickableLinkError": "Error encountered while attempting to open URL",
|
||||
"clickableLinksWarning": "Opening this URL will launch an application outside of Cwtch and may reveal metadata or otherwise compromise the security of Cwtch. Only open URLs from people you trust. Are you sure you want to continue?",
|
||||
"successfullyImportedProfile": "Successfully Imported Profile: %profile",
|
||||
"importProfileTooltip": "Use an encrypted Cwtch backup to bring in a profile created in another instance of Cwtch.",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"deleteConfirmLabel": "Teipiwch DILEU i gadarnhau",
|
||||
"deleteConfirmText": "DILEU",
|
||||
"localeDa": "Daneg",
|
||||
"successfullAddedContact": "Wedi llwyddo i ychwanegu: ",
|
||||
"serverMetricsLabel": "Metrigau Gweinydd",
|
||||
"manageKnownServersLong": "Rheoli Gweinyddwyr Hysbys",
|
||||
|
@ -51,7 +106,6 @@
|
|||
"torSettingsCustomControlPortDescription": "Defnyddiwch borthladd wedi'i deilwra ar gyfer cysylltiadau rheoli i'r dirprwy Tor",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Defnyddiwch Ffurfweddiad Gwasanaeth Custom Tor (torrc)",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Pan fydd ffeiliau'n cael eu llwytho i lawr yn awtomatig (ee ffeiliau delwedd, pan fydd rhagolygon delwedd yn cael eu galluogi) mae angen lleoliad rhagosodedig i lawrlwytho'r ffeiliau iddo.",
|
||||
"settingImagePreviewsDescription": "Bydd delweddau'n cael eu lawrlwytho a'u rhagolwg yn awtomatig. Sylwch y gall rhagolygon delwedd yn aml arwain at wendidau diogelwch, ac ni ddylech alluogi'r Arbrawf hwn os ydych yn defnyddio Cwtch gyda chysylltiadau di-ymddiried. Mae lluniau proffil wedi'u cynllunio ar gyfer Cwtch 1.6.",
|
||||
"deleteServerConfirmBtn": "Mewn gwirionedd dileu gweinydd",
|
||||
"deleteServerSuccess": "Wedi dileu gweinydd yn llwyddiannus",
|
||||
"enterServerPassword": "Rhowch gyfrinair i ddatgloi gweinydd",
|
||||
|
@ -107,7 +161,6 @@
|
|||
"serverConnectionsLabel": "Cysylltiad",
|
||||
"torSettingsEnableCache": "Cache Consensws Tor",
|
||||
"notificationPolicyDefaultAll": "Diofyn Pawb",
|
||||
"localeCy": "Cymraeg",
|
||||
"tooltipRemoveThisQuotedMessage": "Dileu'r neges a ddyfynnwyd.",
|
||||
"settingUIColumnDouble14Ratio": "Dwbl (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Dwbl (1:2)",
|
||||
|
@ -162,7 +215,6 @@
|
|||
"themeNameCwtch": "Cwtch",
|
||||
"leaveConversation": "Gadael y Sgwrs Hon",
|
||||
"notificationNewMessageFromGroup": "Neges newydd mewn grŵp!",
|
||||
"localePl": "Pwylaidd",
|
||||
"plainServerDescription": "Rydym yn argymell eich bod yn diogelu eich proffiliau Cwtch gyda chyfrinair. Os nad ydych yn gosod cyfrinair ar y proffil hwn yna mae'n bosibl y bydd unrhyw un sydd â mynediad i'r ddyfais hon yn gallu cyrchu gwybodaeth am y proffil hwn, gan gynnwys cysylltiadau, negeseuon ac allweddi cryptograffig sensitif.",
|
||||
"encryptedServerDescription": "Mae amgryptio proffil gyda chyfrinair yn ei amddiffyn rhag pobl eraill a allai ddefnyddio'r ddyfais hon hefyd. Ni ellir dadgryptio, arddangos na chyrchu proffiliau wedi'u hamgryptio nes bod y cyfrinair cywir wedi'i fewnbynnu i'w datgloi.",
|
||||
"fieldDescriptionLabel": "Disgrifiad",
|
||||
|
@ -175,10 +227,6 @@
|
|||
"notificationContentContactInfo": "Gwybodaeth am Sgyrsiau",
|
||||
"newMessageNotificationSimple": "Neges Newydd",
|
||||
"newMessageNotificationConversationInfo": "Neges Newydd gan %1",
|
||||
"localeRo": "Romanaidd",
|
||||
"localeLb": "Lwcsembwrgaidd",
|
||||
"localeEl": "Groegaidd",
|
||||
"localeNo": "Norwyaidd",
|
||||
"retrievingManifestMessage": "Wrthi'n nôl gwybodaeth ffeil...",
|
||||
"streamerModeLabel": "Streamer Cyflwyno",
|
||||
"blockUnknownConnectionsEnabledDescription": "Mae cysylltiadau o gysylltiadau anhysbys wedi'u rhwystro. Gallwch newid hyn mewn Gosodiadau",
|
||||
|
@ -261,7 +309,6 @@
|
|||
"displayNameTooltip": "Rhowch enw arddangos",
|
||||
"importLocalServerButton": "Mewngludo %1",
|
||||
"newMessagesLabel": "Negeseuon Newydd",
|
||||
"localeRU": "Rwsaidd",
|
||||
"descriptionFileSharing": "Mae'r arbrawf rhannu ffeiliau yn caniatáu i chi anfon a derbyn ffeiliau o gysylltiadau a grwpiau Cwtch. Sylwer y bydd rhannu ffeil gyda grŵp yn arwain at aelodau o'r grŵp hwnnw yn cysylltu â chi'n uniongyrchol dros Cwtch i'w lawrlwytho.",
|
||||
"titleManageProfilesShort": "Proffiliau",
|
||||
"settingFileSharing": "Rhannu Ffeiliau",
|
||||
|
@ -291,8 +338,6 @@
|
|||
"accepted": "Derbyniwyd!",
|
||||
"newPassword": "Cyfrinair Newydd",
|
||||
"yesLeave": "Ydw, Gadael Y Sgwrs Hon",
|
||||
"localeIt": "Eidaleg",
|
||||
"localeEs": "Espanol",
|
||||
"builddate": "Adeiladwyd ar: % 2",
|
||||
"version": "Fersiwn %1",
|
||||
"versionTor": "Fersiwn %1 gyda rhwygo %2",
|
||||
|
@ -302,10 +347,6 @@
|
|||
"settingTheme": "Defnyddio Themâu Golau",
|
||||
"largeTextLabel": "Mawr",
|
||||
"settingInterfaceZoom": "Lefel Chwyddo",
|
||||
"localeDe": "Deutsche",
|
||||
"localePt": "Portuguesa",
|
||||
"localeFr": "Frances",
|
||||
"localeEn": "Saesneg",
|
||||
"settingLanguage": "Laith",
|
||||
"password": "Cyfrinair",
|
||||
"addNewProfileBtn": "Ychwanegu proffil newydd",
|
||||
|
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "da",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Tyrkisk \/ Türk",
|
||||
"localeIt": "Italiensk \/ Italiano",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Tysk \/ Deutsch",
|
||||
"localeEn": "Engelsk \/ English",
|
||||
"localeFr": "Fransk \/ Français",
|
||||
"localePt": "Portugisisk \/ Portuguesa",
|
||||
"localeEs": "Spansk \/ Español",
|
||||
"localePl": "Polsk \/ Polski",
|
||||
"localeRU": "Russisk \/ Русский",
|
||||
"localeDa": "Danish \/ Dansk",
|
||||
"localeCy": "Walisisk \/ Cymraeg",
|
||||
"localeEl": "Greek \/ Ελληνικά",
|
||||
"localeNo": "Norsk \/ Norsk",
|
||||
"localeLb": "Luxembourgske \/ Lëtzebuergesch",
|
||||
"localeRo": "Rumænsk \/ Română",
|
||||
"settingImagePreviewsDescription": "Billeder vil automatisk blive hentet og vist. Vær opmærksom på at visning af billeder ofte fører til sikkerhedsmæssige sårbarheder og at du ikke bør aktivere dette eksperiment hvis du bruger Cwtch med kontakter du ikke har tillid til. Profilbilleder er planlagt til Cwtch 1.6.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -31,12 +87,6 @@
|
|||
"profileOnionLabel": "Send denne adresse til personer du ønsker forbindelse med",
|
||||
"saveBtn": "Gem",
|
||||
"deleteBtn": "Slet",
|
||||
"localeCy": "Walisisk",
|
||||
"localeDa": "Dansk",
|
||||
"localeEl": "Græsk",
|
||||
"localeNo": "Norsk",
|
||||
"localeLb": "Luxembourgisk",
|
||||
"localeRo": "Romænsk",
|
||||
"newMessageNotificationConversationInfo": "Ny Besked Fra %1",
|
||||
"newMessageNotificationSimple": "Ny Besked",
|
||||
"notificationContentContactInfo": "Samtaleinformation",
|
||||
|
@ -90,7 +140,6 @@
|
|||
"themeNameWitch": "Witch",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Download Folder",
|
||||
"settingImagePreviewsDescription": "Billeder vil automatisk blive hentet og vist. Vær opmærksom på at visning af billeder ofte fører til sikkerhedsmæssige sårbarheder og at du ikke bør aktivere dette eksperiment hvis du bruger Cwtch med kontakter du ikke har tillid til. Profilbilleder er planlagt til Cwtch 1.6.",
|
||||
"settingImagePreviews": "Automatisk billedvisning og profilbilleder",
|
||||
"experimentClickableLinksDescription": "Click-bare links eksperiment, der tillader dig at udveksle URL'er i samtaler",
|
||||
"enableExperimentClickableLinks": "Aktiver Click-bare Links",
|
||||
|
@ -107,7 +156,6 @@
|
|||
"importLocalServerSelectText": "Vælg lokal Server",
|
||||
"importLocalServerLabel": "Importer en lokalt administreret server",
|
||||
"newMessagesLabel": "Nye Beskeder",
|
||||
"localeRU": "Russisk",
|
||||
"copyServerKeys": "Kopier nøgler",
|
||||
"verfiyResumeButton": "Verificer\/genoptag",
|
||||
"fileCheckingStatus": "Kontroller download status",
|
||||
|
@ -167,7 +215,6 @@
|
|||
"settingUIColumnSingle": "Enkelt",
|
||||
"settingUIColumnLandscape": "UI Kolonner i landskabstilstand",
|
||||
"settingUIColumnPortrait": "UI Kolonner i portrættilstand",
|
||||
"localePl": "Polsk",
|
||||
"tooltipRemoveThisQuotedMessage": "Fjern citeret meddelelse.",
|
||||
"tooltipReplyToThisMessage": "Besvar denne meddelelse",
|
||||
"tooltipRejectContactRequest": "Afvis denne kontaktforespørgsel",
|
||||
|
@ -221,8 +268,6 @@
|
|||
"conversationSettings": "Samtaleindstillinger",
|
||||
"enterCurrentPasswordForDelete": "Indtast venligst nuværende password for at slette denne profil.",
|
||||
"enableGroups": "Aktiver Gruppe Chat",
|
||||
"localeIt": "Italiensk",
|
||||
"localeEs": "Spansk",
|
||||
"todoPlaceholder": "Todo...",
|
||||
"addNewItem": "Tilføj et nyt element til listen",
|
||||
"addListItem": "Tilføj en ny liste",
|
||||
|
@ -244,10 +289,6 @@
|
|||
"settingTheme": "Brug lyst tema",
|
||||
"largeTextLabel": "Stor",
|
||||
"settingInterfaceZoom": "Zoom niveau",
|
||||
"localeDe": "Tysk",
|
||||
"localePt": "Portugisisk",
|
||||
"localeFr": "Fransk",
|
||||
"localeEn": "Engelsk",
|
||||
"settingLanguage": "Sprog",
|
||||
"blockUnknownLabel": "Blokér ukendte kontakter",
|
||||
"zoomLabel": "Interface zoom (påvirker mest tekst- og knap-størrelser)",
|
||||
|
|
|
@ -1,343 +1,384 @@
|
|||
{
|
||||
"@@locale": "de",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Die Akku Optimierungen können nicht innerhalb von Cwtch wieder aktiviert werden. Bitte gehe zu Android \/ Einstellungen \/ Apps \/ Cwtch \/ Akku und setze die Akku Nutzung auf 'Optimiert'",
|
||||
"settingAndroidPowerExemptionDescription": "Optional: Fordere Android auf, Cwtch von der optimierten Energieverwaltung auszunehmen. Dies wird zu einer besseren Stabilität auf Kosten eines höheren Batterieverbrauchs führen.",
|
||||
"settingAndroidPowerExemption": "Android Ignoriere Akku Optimierungen",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Dieses Feature benötigt die Aktivierung der experimentellen Gruppen in den Einstellungen",
|
||||
"messageFormattingDescription": "Aktiviere Richtext Formatierung in den angezeigten Nachrichten z.B. **fett** und *kursiv*",
|
||||
"formattingExperiment": "Nachrichten Formatierung",
|
||||
"clickableLinkError": "Auf Fehler gelaufen beim Versuch die URL zu öffnen",
|
||||
"clickableLinksCopy": "URL kopieren",
|
||||
"clickableLinkOpen": "URL öffnen",
|
||||
"clickableLinksWarning": "Das Öffnen dieser URL wird eine Anwendung außerhalb von Cwtch starten und könnte Metadaten enthüllen oder anderweitig die Sicherheit von Cwtch gefährden. Öffne nur URLs von Personen denen Du vertraust. Bist Du sicher, dass Du fortfahren möchtest?",
|
||||
"shuttingDownApp": "Herunterfahren...",
|
||||
"successfullyImportedProfile": "Profil erfolgreich importiert: %profile",
|
||||
"failedToImportProfile": "Fehler beim Import des Profils",
|
||||
"importProfileTooltip": "Benutze ein verschlüsseltes Cwtch Backup um ein in einer anderen Cwtch Instanz erzeugtes Profil zu aktivieren.",
|
||||
"importProfile": "Profil importieren",
|
||||
"exportProfileTooltip": "Backup des Profils in eine verschlüsselte Datei. Die verschlüsselte Datei kann in eine andere Cwtch App importiert werden.",
|
||||
"exportProfile": "Profil exportieren",
|
||||
"conversationNotificationPolicySettingLabel": "Unterhaltungs-Benachrichtungs-Einstellung",
|
||||
"settingsGroupExperiments": "experimentelle Funktionen",
|
||||
"notificationPolicySettingDescription": "Voreinstellungen der Benachrichtigungsverhaltens",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Überschreiben der Tor Einstellung. Achtung: gefährlich! Mache das nur, wenn Du weisst, was du machst.",
|
||||
"torSettingsCustomSocksPortDescription": "Verwende einen eigenen Port für Datenverbindungen zum Tor-Proxy",
|
||||
"torSettingsEnabledAdvancedDescription": "Einen existierenden Tor-Service auf Ihrem System, oder Parameter des Cwtch Tor Services anpassen.",
|
||||
"msgAddToAccept": "Füge dieses Konto zu Deinen Kontakten hinzu, um diese Datei zu akzeptieren.",
|
||||
"msgConfirmSend": "Möchtest Du diese Datei wirklich senden",
|
||||
"storageMigrationModalMessage": "Profile werden auf das neue Storage-Format migriert. Das kann ein paar Minuten dauern...",
|
||||
"loadingCwtch": "Lade Cwtch...",
|
||||
"themeNameMidnight": "Mitternacht",
|
||||
"themeNameMermaid": "Meerjungfrau",
|
||||
"themeNamePumpkin": "Kürbis",
|
||||
"themeNameGhost": "Geist",
|
||||
"themeNameVampire": "Vampir",
|
||||
"themeNameWitch": "Hexe",
|
||||
"settingImagePreviewsDescription": "Bilder werden automatisch heruntergeladen und eine Voransicht erstellt. Voransichten können die Sicherheit gefährden. Du solltest diese experimentelle Einstellung bei nicht vertrauenswürdigen Kontakten nicht aktivieren. Profilbilder sind für Cwtch Version 1.6 geplant.",
|
||||
"displayNameTooltip": "Einen Anzeigenamen eingeben",
|
||||
"fileCheckingStatus": "Überprüfung des Download Status",
|
||||
"plainServerDescription": "Wir empfehlen, dass Du deine Cwtch-Server mit einem Passwort schützst. Wenn Du auf diesem Server kein Kennwort festlegst, kann jeder, der Zugang zu diesem Gerät hat, auf Informationen über diesen Server zugreifen, einschließlich sensibler kryptografischer Schlüssel.",
|
||||
"enterCurrentPasswordForDeleteServer": "Das aktuelle Passwort um den Server zu entfernen",
|
||||
"settingServersDescription": "Das experimentelle server hosting ermöglicht das Hosting und die Verwaltung von Cwtch Servern",
|
||||
"settingServers": "Server hosten",
|
||||
"serversManagerTitleLong": "Deine Server",
|
||||
"serverAutostartDescription": "Legt fest, ob die Anwendung den Server beim Start automatisch starten soll",
|
||||
"descriptionFileSharing": "Der experimentelle Datei Austausch erlaubt Dir Dateien an Cwtch Kontakte oder Gruppen zu senden und zu empfangen. Hinweis, das Teilen einer Datei in einer Gruppe führt dazu, dass alle Mitglieder der Gruppe sich direkt mit Dir über Cwtch verbinden um die Datei herunter zu laden.",
|
||||
"messageFileOffered": "Kontakt möchte Dir eine Datei senden",
|
||||
"messageFileSent": "Du hast eine Datei gesendet",
|
||||
"messageEnableFileSharing": "Aktiviere den experimentellen Dateiaustusch um diese Nachricht zu sehen.",
|
||||
"retrievingManifestMessage": "Dateiinformation wird geladen...",
|
||||
"descriptionStreamerMode": "Wenn aktiviert, macht diese Option die App vom Aussehen her privater für Streaming oder Präsenation, z.B. werden Profile und Kontaktadressen ausgeblendet",
|
||||
"streamerModeLabel": "Streamer\/Präsentationsmodus",
|
||||
"blockUnknownConnectionsEnabledDescription": "Verbindungen von unbekannten Kontakten sind blockiert. Du kannst dies in Einstellungen ändern",
|
||||
"placeholderEnterMessage": "Schreibe eine Nachricht...",
|
||||
"plainProfileDescription": "Wir empfehlen, dass Du Deine Cwtch-Profile mit einem Passwort schützst. Wenn Du kein Passwort für dieses Profil festlegst, kann jeder, der Zugang zu diesem Gerät hat, auf Informationen über dieses Profil zugreifen, einschließlich Kontakte, Nachrichten und sensible kryptographische Schlüssel.",
|
||||
"encryptedProfileDescription": "Das Verschlüsseln eines Profils mit einem Passwort schützt es vor anderen Personen, die ebenfalls dieses Gerät benutzten könnten. Verschlüsselte Profile können nicht entschlüsselt, angezeigt und benutzt werden bis das korrekte Passwort zum Entsperren eingegeben wurde.",
|
||||
"settingUIColumnOptionSame": "Gleich wie bei den Hochformat Einstellung",
|
||||
"settingUIColumnPortrait": "UI Spalten im Hochformat",
|
||||
"groupInviteSettingsWarning": "Du wurdest eingeladen einer Gruppe beizutreten! Bitte aktiviere die experimentelle Gruppenchat Funktion in den Einstellungen, um diese Einladung anzusehen.",
|
||||
"debugLog": "Konsolendebuglogging aktivieren",
|
||||
"descriptionBlockUnknownConnections": "Falls aktiviert, wird diese Einstellung alle Verbindungen von Cwtch Usern automatisch schliessen, wenn sie nicht in deinen Kontakten sind.",
|
||||
"tooltipOpenSettings": "Öffne das Einstellungsmenü",
|
||||
"localeIt": "Italienisch",
|
||||
"localeEs": "Spanisch",
|
||||
"builddate": "Erstelldatum: %2",
|
||||
"experimentsEnabled": "Experimentelle Funktionen aktiviert",
|
||||
"localeDe": "Deutsch",
|
||||
"localePt": "Portugiesisch",
|
||||
"localeFr": "Französisch",
|
||||
"localeEn": "Englisch",
|
||||
"zoomLabel": "Benutzeroberflächen-Zoom (betrifft hauptsächlich Text- und Button-Größen)",
|
||||
"profileOnionLabel": "Diese Adresse an Kontakte senden, mit denen Sie sich verbinden möchten",
|
||||
"acknowledgedLabel": "Bestätigt",
|
||||
"deleteConfirmLabel": "Gib LÖSCHEN ein, um zu bestätigen",
|
||||
"localeDa": "Dänisch",
|
||||
"localeCy": "Walisisch",
|
||||
"pasteAddressToAddContact": "Cwtch Adresse, Einladung oder Schlüssel hier hinzufügen, um eine neue Konversation hinzuzufügen",
|
||||
"titlePlaceholder": "Titel...",
|
||||
"peerName": "Name",
|
||||
"addPeerTab": "Einen Kontakt hinzufügen",
|
||||
"createGroupBtn": "Erstellen",
|
||||
"defaultGroupName": "Tolle Gruppe",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeSk": "Slowakisch \/ Slovák",
|
||||
"localeKo": "Koreanisch \/ 한국어",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"profileEnabled": "Aktivieren",
|
||||
"profileAutostartDescription": "Legt fest, ob das Profil beim Starten automatisch gestartet wird",
|
||||
"profileEnabledDescription": "Starten oder Stoppen des Profils",
|
||||
"acquiringTicketsFromServer": "Antispam-Herausforderung meistern",
|
||||
"acquiredTicketsFromServer": "Antispam-Herausforderung abgeschlossen",
|
||||
"shareProfileMenuTooltop": "Profil teilen über...",
|
||||
"localeNl": "Niederländisch \/ Nederlands",
|
||||
"localePtBr": "Brasilianisches Portugiesisch \/ Português do Brasil",
|
||||
"shareMenuQRCode": "QR-Code anzeigen",
|
||||
"enableExperimentQRCode": "QR-Codes",
|
||||
"experimentQRCodeDescription": "QR-Code-Unterstützung ermöglicht den Austausch von Daten (z. B. Profilidentität) über QR-Codes",
|
||||
"localeIt": "Italienisch \/ Italiano",
|
||||
"errorDownloadDirectoryDoesNotExist": "Die Dateifreigabe kann nicht aktiviert werden, da der Download-Ordner nicht festgelegt wurde oder auf einen nicht vorhandenen Ordner festgelegt ist.",
|
||||
"localeTr": "Türkisch \/ Türk",
|
||||
"viewReplies": "Antworten auf diese Nachricht anzeigen",
|
||||
"manageSharedFiles": "Freigegebene Dateien verwalten",
|
||||
"tooltipPinConversation": "Konversation oben in \"Konversationen\" anheften",
|
||||
"tooltipUnpinConversation": "Anheften der Konversation oben in \"Konversationen\" aufheben",
|
||||
"messageNoReplies": "Es gibt keine Antworten auf diese Nachricht.",
|
||||
"stopSharingFile": "Beenden der Dateifreigabe",
|
||||
"restartFileShare": "Freigabe der Datei starten",
|
||||
"replyingTo": "Antwort auf %1",
|
||||
"fileDownloadUnavailable": "Diese Datei steht nicht zum Download zur Verfügung. Der Absender hat möglicherweise das Herunterladen dieser Datei deaktiviert.",
|
||||
"headingReplies": "Antworten",
|
||||
"localeEn": "Englisch \/ English",
|
||||
"localePl": "Polnisch \/ Polski",
|
||||
"localeRo": "Rumänisch \/ Română",
|
||||
"localeNo": "Norwegisch \/ Norsk",
|
||||
"localeLb": "Luxemburgisch \/ Lëtzebuergesch",
|
||||
"localeEl": "Griechisch\/ Ελληνικά",
|
||||
"localeEs": "Spanisch \/ Español",
|
||||
"localeRU": "Russisch \/ Русский",
|
||||
"localeDa": "Dänisch \/ Dansk",
|
||||
"localeFr": "Französisch \/ Français",
|
||||
"localeCy": "Walisisch \/ Cymraeg",
|
||||
"localePt": "Portugiesisch \/ Portuguesa",
|
||||
"settingImagePreviewsDescription": "Bilder und Profil-Bilder werden automatisch heruntergeladen und es wird eine Voransicht erstellt. Du solltest diese experimentelle Einstellung bei nicht vertrauenswürdigen Kontakten nicht aktivieren.",
|
||||
"localeDe": "Deutsch \/ Deutsch",
|
||||
"serverLabel": "Server",
|
||||
"createGroupTitle": "Gruppe erstellen",
|
||||
"torSettingsCustomControlPort": "Benutzerdefinierter Kontrollport",
|
||||
"torSettingsCustomControlPortDescription": "Verwende einen eigenen Port für Kontrollverbindungen zum Tor-Proxy",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Verwende eine eigene Tor-Service-Konfiguration (torrc)",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Wenn Dateien automatisch heruntergeladen werden (z.B. Bilder, wenn Voransichten aktiviert ist), muss ein Ordner für Downloads eingestellt werden.",
|
||||
"torSettingsEnableCache": "Tor Konsensus zwischenspeichern",
|
||||
"torSettingsEnabledCacheDescription": "Zwischenspeichern des aktuell heruntergeladenen Tor-Konsenses, um ihn beim nächsten Öffnen von Cwtch wieder zu verwenden. Dies ermöglicht einen schnelleren Start von Tor. Wenn deaktiviert, löscht Cwtch die zwischengespeicherten Daten beim Starten.",
|
||||
"tooltipSelectACustomProfileImage": "Auswählen eines benutzerdefinierten Profilbilds",
|
||||
"notificationPolicyMute": "Stummschalten",
|
||||
"notificationPolicyOptIn": "Teilnahme zustimmen",
|
||||
"notificationPolicyDefaultAll": "Alle Einstellungen zurücksetzen",
|
||||
"conversationNotificationPolicyDefault": "Einstellung zurücksetzen",
|
||||
"conversationNotificationPolicyOptIn": "Teilnahme zustimmen",
|
||||
"notificationPolicySettingLabel": "Benachrichtigung Einstellungen",
|
||||
"notificationContentSettingLabel": "Inhalt der Benachrichtigung",
|
||||
"conversationNotificationPolicySettingDescription": "Steuerung des Benachrichtigungsverhaltens für diese Konversation",
|
||||
"notificationContentContactInfo": "Konversationsinformationen",
|
||||
"notificationContentSettingDescription": "Steuert den Inhalt von Gesprächsbenachrichtigungen",
|
||||
"settingsGroupAppearance": "Aussehen",
|
||||
"notificationContentSimpleEvent": "Einfaches Ereignis",
|
||||
"addPeer": "Kontakt hinzufügen",
|
||||
"peerNotOnline": "Kontakt ist offline. Die Applikation kann momentan nicht verwendet werden.",
|
||||
"peerBlockedMessage": "Kontakt ist blockiert",
|
||||
"peerOfflineMessage": "Anderer Kontakt ist offline, Nachrichten können derzeit nicht zugestellt werden",
|
||||
"blockBtn": "Kontakt blockieren",
|
||||
"savePeerHistory": "Verlauf speichern",
|
||||
"savePeerHistoryDescription": "Legt fest, ob ein mit dem anderen Nutzer verknüpfter Verlauf gelöscht werden soll.",
|
||||
"dontSavePeerHistory": "Verlauf löschen",
|
||||
"unblockBtn": "Kontakt entsperren",
|
||||
"editProfile": "Profil bearbeiten",
|
||||
"blockUnknownLabel": "Unbekannte Kontakte blockieren",
|
||||
"networkStatusConnecting": "Verbindung mit Netzwerk und Kontakten...",
|
||||
"settingTheme": "Helles Farbschema benutzen",
|
||||
"localeLb": "Luxemburgisch",
|
||||
"localeNo": "Norwegisch",
|
||||
"localeEl": "Griechisch",
|
||||
"settingGroupBehaviour": "Verhalten",
|
||||
"conversationNotificationPolicyNever": "Niemals",
|
||||
"labelTorNetwork": "Tor Netzwerk",
|
||||
"descriptionACNCircuitInfo": "Detailinformationen über den Pfad der anonymisierten Kommunikationsnetzwerkes, der für diese Unterhaltung verwendet wurde.",
|
||||
"labelACNCircuitInfo": "ACN Circuit Information",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Wählen Sie einen anderen Ordner für Downloads.",
|
||||
"torSettingsErrorSettingPort": "Port Nummer muss zwischen 1 und 65535 sein",
|
||||
"torSettingsCustomSocksPort": "Spezieller SOCKS Port",
|
||||
"torSettingsEnabledAdvanced": "Erweiterte Tor Konfiguration aktivieren",
|
||||
"btnSendFile": "Datei senden",
|
||||
"msgFileTooBig": "Dateigröße darf nicht größer als 10 GB sein",
|
||||
"themeColorLabel": "Farbthema",
|
||||
"themeNameNeon2": "Neon2",
|
||||
"themeNameNeon1": "Neon1",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Download Ordner",
|
||||
"settingImagePreviews": "Bild Voransichten und Profil Bilder",
|
||||
"experimentClickableLinksDescription": "Experimentelle Hyperlinks erlauben Ihnen auf URLs in Mitteilungen zu klicken.",
|
||||
"enableExperimentClickableLinks": "Klickbare Hyperlinks aktivieren",
|
||||
"serverConnectionsLabel": "Verbindung",
|
||||
"serverTotalMessagesLabel": "Anzahl Mitteilungen",
|
||||
"serverMetricsLabel": "Server Metriken",
|
||||
"manageKnownServersShort": "Server",
|
||||
"manageKnownServersLong": "Bekannte Server verwalten",
|
||||
"manageKnownServersButton": "Bekannte Server verwalten",
|
||||
"fieldDescriptionLabel": "Beschreibung",
|
||||
"groupsOnThisServerLabel": "Gruppen auf dem Server",
|
||||
"importLocalServerButton": "Importieren %1",
|
||||
"importLocalServerSelectText": "Lokalen Server auswählen",
|
||||
"importLocalServerLabel": "Lokalen Server auswählen",
|
||||
"newMessagesLabel": "Neue Nachrichten",
|
||||
"localeRU": "Russisch",
|
||||
"copyServerKeys": "Schlüssel kopieren",
|
||||
"verfiyResumeButton": "Verifizierung\/abschließen",
|
||||
"fileInterrupted": "Unterbrochen",
|
||||
"fileSavedTo": "Gespeichert unter",
|
||||
"encryptedServerDescription": "Das Verschlüsseln eines Servers mit einem Passwort schützt vor anderen Benutzern auf diesem Gerät. Verschlüsselte Server können nicht entschlüsselt, dargestellt oder verbunden werden, bis das korrekte Passwort eingegeben wurde.",
|
||||
"deleteServerConfirmBtn": "Wirklich den Server entfernen",
|
||||
"deleteServerSuccess": "Server erfolgreich entfernt",
|
||||
"copyAddress": "Adresse kopieren",
|
||||
"enterServerPassword": "Passwort um Server zu entsperren",
|
||||
"unlockProfileTip": "Bitte entsperren oder erstellen Sie ein Profil um zu starten!",
|
||||
"unlockServerTip": "Bitte entsperren oder erstellen Sie einen Server um zu starten!",
|
||||
"addServerTooltip": "Neuen Server hinzufügen",
|
||||
"serversManagerTitleShort": "Server",
|
||||
"saveServerButton": "Server sichern",
|
||||
"serverAutostartLabel": "Autostart",
|
||||
"serverEnabledDescription": "Server starten oder stoppen",
|
||||
"serverEnabled": "Server aktivieren",
|
||||
"serverDescriptionDescription": "Beschreibung für Server, diese Informationen wird nicht geteilt.",
|
||||
"serverDescriptionLabel": "Server Beschreibung",
|
||||
"serverAddress": "Server Adresse",
|
||||
"editServerTitle": "Server editieren",
|
||||
"addServerTitle": "Server hinzufügen",
|
||||
"titleManageProfilesShort": "Profile",
|
||||
"settingFileSharing": "Dateien gemeinsam nutzen",
|
||||
"tooltipSendFile": "Datei senden",
|
||||
"labelFilesize": "Dateigröße",
|
||||
"labelFilename": "Dateiname",
|
||||
"openFolderButton": "Ordner öffnen",
|
||||
"archiveConversation": "Diese Unterhaltung archivieren",
|
||||
"showMessageButton": "Nachricht anzeigen",
|
||||
"blockedMessageMessage": "Diese Nachticht ist von einem blockierten Profil.",
|
||||
"addContactConfirm": "Kontakt hinzufügen %1",
|
||||
"addContact": "Kontakt hinzufügen",
|
||||
"contactGoto": "Zur Unterhaltung mit %1",
|
||||
"settingUIColumnDouble14Ratio": "Doppelt (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Doppelt (1:2)",
|
||||
"settingUIColumnSingle": "Einfach",
|
||||
"settingUIColumnLandscape": "UI Spalten im Querformat",
|
||||
"localePl": "Polnisch",
|
||||
"tooltipRemoveThisQuotedMessage": "Zitierte Nachricht entfernen.",
|
||||
"tooltipReplyToThisMessage": "Auf diese Nachricht antworten",
|
||||
"tooltipRejectContactRequest": "Kontaktanfrage ablehnen",
|
||||
"tooltipAcceptContactRequest": "Kontaktanfrage annehmen.",
|
||||
"deleteBtn": "Löschen",
|
||||
"saveBtn": "Speichern",
|
||||
"membershipDescription": "Unten steht eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Möglicherweise enthält diese Benutzerzliste nicht alle, die Zugang zur Gruppe haben.",
|
||||
"newMessageNotificationConversationInfo": "Neue Nachricht von %1",
|
||||
"newMessageNotificationSimple": "Neue Nachricht",
|
||||
"localeRo": "Rumänisch",
|
||||
"downloadFileButton": "Herunterladen",
|
||||
"malformedMessage": "Fehlerhafte Nachricht",
|
||||
"contactSuggestion": "Dieser Kontaktvorschlag ist für: ",
|
||||
"descriptionExperimentsGroups": "Mit experimentellen Gruppen kann Cwtch über nicht vertrauenswürdige Serverinfrastruktur die Kommunikation mit mehr als einem Kontakt vereinfachen.",
|
||||
"descriptionExperiments": "Experimentelle Cwtch Features sind optionale, opt-in Features für die andere Privatsphärenaspekte berücksichtigt werden als bei traditionellen 1:1 metadatenresistenten Chats, wie z. B. Gruppennachrichten, Bots usw.",
|
||||
"networkStatusDisconnected": "Vom Internet getrennt, überprüfe deine Verbindung",
|
||||
"yourServers": "Deine Server",
|
||||
"yourProfiles": "Deine Profile",
|
||||
"enterProfilePassword": "Gib ein Passwort ein, um deine Profile anzuzeigen",
|
||||
"notificationNewMessageFromGroup": "Neue Nachricht in einer Gruppe!",
|
||||
"notificationNewMessageFromPeer": "Neue Nachricht von einem Kontakt!",
|
||||
"tooltipHidePassword": "Password verstecken",
|
||||
"tooltipShowPassword": "Password anzeigen",
|
||||
"shutdownCwtchAction": "Cwtch schliessen",
|
||||
"shutdownCwtchDialog": "Bist du sicher, dass du Cwtch schliessen möchtest? Alle Verbindungen werden geschlossen und die App wird beendet.",
|
||||
"shutdownCwtchDialogTitle": "Cwtch schliessen?",
|
||||
"shutdownCwtchTooltip": "Cwtch schliessen",
|
||||
"profileDeleteSuccess": "Profil erfolgreich gelöscht",
|
||||
"torNetworkStatus": "Tor Netzwerkstatus",
|
||||
"addContactFirst": "Wähle einen Kontakt oder füge ihn hinzu, um einen Chat zu starten.",
|
||||
"createProfileToBegin": "Bitte erstelle oder entsperre ein Profil um loszulegen",
|
||||
"nickChangeSuccess": "Profilename erfolgreich geändert",
|
||||
"addServerFirst": "Du musst einen Server hinzufügen, bevor du eine Gruppe erstellen kannst",
|
||||
"deleteProfileSuccess": "Erfolgreich Profil gelöscht",
|
||||
"sendInvite": "Versende Kontakt- oder Gruppeneinladung",
|
||||
"sendMessage": "Nachricht senden",
|
||||
"cancel": "Abbrechen",
|
||||
"resetTor": "Zurücksetzen",
|
||||
"torStatus": "Tor Status",
|
||||
"torVersion": "Tor Version",
|
||||
"sendAnInvitation": "Du hast eine Einladung geschickt für: ",
|
||||
"rejected": "Abgelehnt!",
|
||||
"accepted": "Angenommen!",
|
||||
"chatHistoryDefault": "Diese Unterhaltung wird gelöscht sobald Cwtch geschlossen wird! Der Nachrichtenverlauf für jede Unterhaltung kann im Einstellungsmenü oben rechts geändert werden.",
|
||||
"newPassword": "Neues Passwort",
|
||||
"yesLeave": "Ja, diese Unterhaltung beenden",
|
||||
"reallyLeaveThisGroupPrompt": "Bist du sicher, dass du diese Unterhaltung beenden möchtest? Alle Nachrichten und Attribute werden gelöscht.",
|
||||
"leaveConversation": "Unterhaltung beenden",
|
||||
"inviteToGroup": "Du wurdest eingeladen einer Gruppe beizutreten:",
|
||||
"titleManageServers": "Server verwalten",
|
||||
"successfullAddedContact": "Erfolgreich hinzugefügt",
|
||||
"titleManageProfiles": "Cwtch Profile verwalten",
|
||||
"tooltipUnlockProfiles": "Entsperre verschlüsselte Profile durch Eingabe des Passworts.",
|
||||
"titleManageContacts": "Unterhaltungen",
|
||||
"tooltipAddContact": "Neuen Kontakt oder Unterhaltung hinzufügen",
|
||||
"contactAlreadyExists": "Kontakt existiert bereits",
|
||||
"invalidImportString": "Ungültiger Importstring",
|
||||
"conversationSettings": "Unterhaltungseinstellungen",
|
||||
"enterCurrentPasswordForDelete": "Bitte gib das aktuelle Passwort ein, um diese Profil zu löschen.",
|
||||
"enableGroups": "Gruppenchat aktivieren",
|
||||
"passwordErrorEmpty": "Passwort darf nicht leer sein",
|
||||
"currentPasswordLabel": "aktuelles Passwort",
|
||||
"yourDisplayName": "Dein Anzeigename",
|
||||
"displayNameLabel": "Angezeigename",
|
||||
"dmTooltip": "Klicken, um Direktnachricht zu senden",
|
||||
"searchList": "Liste durchsuchen",
|
||||
"update": "Update",
|
||||
"viewServerInfo": "Serverinfo",
|
||||
"serverNotSynced": "Neue Nachrichten abrufen (Dies kann eine Weile dauern...)",
|
||||
"serverSynced": "synchronisiert",
|
||||
"todoPlaceholder": "noch zu erledigen",
|
||||
"addListItem": "Liste hinzufügen",
|
||||
"addNewItem": "Ein neues Element zur Liste hinzufügen",
|
||||
"defaultGroupName": "Fantastische Gruppe",
|
||||
"createGroupBtn": "Erstellen",
|
||||
"profileOnionLabel": "Sende diese Adresse an Personen, mit denen Du in Kontakt treten möchtest",
|
||||
"addPeerTab": "Einen Kontakt hinzufügen",
|
||||
"createGroupTab": "Eine Gruppe erstellen",
|
||||
"joinGroupTab": "Einer Gruppe beitreten",
|
||||
"peerAddress": "Adresse",
|
||||
"joinGroupTab": "Einer Gruppe beitreten",
|
||||
"server": "Server",
|
||||
"invitation": "Einladung",
|
||||
"peerName": "Name",
|
||||
"groupAddr": "Adresse",
|
||||
"createGroup": "Gruppe erstellen",
|
||||
"invitation": "Einladung",
|
||||
"addPeer": "Kontakt hinzufügen",
|
||||
"joinGroup": "Gruppe beitreten",
|
||||
"blocked": "Blockiert",
|
||||
"createGroup": "Gruppe erstellen",
|
||||
"newBulletinLabel": "Neue Bekanntmachung",
|
||||
"titlePlaceholder": "Titel...",
|
||||
"postNewBulletinLabel": "Neue Bekanntmachung veröffentlichen",
|
||||
"pasteAddressToAddContact": "Füge hier eine cwtch-Adresse, eine Einladung oder ein Schlüsselpaket ein, um eine neue Unterhaltung hinzuzufügen",
|
||||
"search": "Suche...",
|
||||
"blocked": "Blockiert",
|
||||
"invitationLabel": "Einladung",
|
||||
"serverInfo": "Server-Informationen",
|
||||
"serverConnectivityConnected": "Server verbunden",
|
||||
"serverConnectivityDisconnected": "Server getrennt",
|
||||
"serverNotSynced": "Neue Nachrichten synchronisieren (dies kann einige Zeit dauern)...",
|
||||
"serverSynced": "Synchronisiert",
|
||||
"groupNameLabel": "Gruppenname",
|
||||
"viewServerInfo": "Server-Info",
|
||||
"inviteToGroupLabel": "Zur Gruppe einladen",
|
||||
"saveBtn": "Speichern",
|
||||
"deleteBtn": "Löschen",
|
||||
"inviteBtn": "Einladen",
|
||||
"update": "Update",
|
||||
"peerNotOnline": "Der Kontakt ist offline. Anwendungen können im Moment nicht verwendet werden.",
|
||||
"searchList": "Liste durchsuchen",
|
||||
"addListItemBtn": "Element hinzufügen",
|
||||
"addProfileTitle": "Neues Profil hinzufügen",
|
||||
"membershipDescription": "Nachfolgend findest Du eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Diese Liste gibt möglicherweise nicht alle Benutzer wieder, die Zugang zu der Gruppe haben.",
|
||||
"dmTooltip": "Klicken für Direktnachricht",
|
||||
"couldNotSendMsgError": "Diese Nachricht konnte nicht gesendet werden",
|
||||
"acknowledgedLabel": "Bestätigt",
|
||||
"peerBlockedMessage": "Kontakt ist blockiert",
|
||||
"pendingLabel": "Anhängig",
|
||||
"peerOfflineMessage": "Kontakt ist offline, Nachrichten können im Moment nicht zugestellt werden",
|
||||
"copyBtn": "Kopieren",
|
||||
"acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen zu",
|
||||
"newGroupBtn": "Neue Gruppe erstellen",
|
||||
"acceptGroupBtn": "Annehmen",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Ablehnen",
|
||||
"listsBtn": "Listen",
|
||||
"puzzleGameBtn": "Puzzlespiel",
|
||||
"bulletinsBtn": "Bekanntmachungen",
|
||||
"addressLabel": "Adresse",
|
||||
"copiedToClipboardNotification": "In die Zwischenablage kopiert",
|
||||
"displayNameLabel": "Anzeigename",
|
||||
"blockBtn": "Kontakt blockieren",
|
||||
"savePeerHistory": "Verlauf speichern",
|
||||
"savePeerHistoryDescription": "Legt fest, ob der mit dem Kontakt verbundene Verlauf gelöscht werden soll.",
|
||||
"dontSavePeerHistory": "Verlauf löschen",
|
||||
"unblockBtn": "Kontakt entsperren",
|
||||
"editProfileTitle": "Profil bearbeiten",
|
||||
"addProfileTitle": "Neues Profil hinzufügen",
|
||||
"profileName": "Anzeigename",
|
||||
"defaultProfileName": "Alice",
|
||||
"editProfile": "Profil bearbeiten",
|
||||
"newProfile": "Neues Profil",
|
||||
"radioUsePassword": "Passwort",
|
||||
"radioNoPassword": "Unverschlüsselt (kein Passwort)",
|
||||
"noPasswordWarning": "Wenn für dieses Konto kein Passwort verwendet wird, bedeutet dies, dass alle lokal gespeicherten Daten nicht verschlüsselt werden.",
|
||||
"yourDisplayName": "Dein Anzeigename",
|
||||
"currentPasswordLabel": "Aktuelles Passwort",
|
||||
"password2Label": "Passwort erneut eingeben",
|
||||
"password1Label": "Passwort",
|
||||
"passwordErrorEmpty": "Passwort darf nicht leer sein",
|
||||
"createProfileBtn": "Profil erstellen",
|
||||
"passwordErrorMatch": "Passwörter stimmen nicht überein",
|
||||
"saveProfileBtn": "Profil speichern",
|
||||
"passwordChangeError": "Fehler beim Ändern des Passworts: Eingegebenes Passwort abgelehnt",
|
||||
"deleteConfirmLabel": "Gib LÖSCHEN ein, um zu bestätigen",
|
||||
"deleteProfileBtn": "Profil löschen",
|
||||
"deleteConfirmText": "LÖSCHEN",
|
||||
"deleteProfileConfirmBtn": "Profil wirklich löschen",
|
||||
"addNewProfileBtn": "Neues Profil hinzufügen",
|
||||
"newConnectionPaneTitle": "Neue Verbindung",
|
||||
"password1Label": "Passwort",
|
||||
"password2Label": "Passwort erneut eingeben",
|
||||
"createProfileBtn": "Profil speichern",
|
||||
"saveProfileBtn": "Profil speichern",
|
||||
"passwordErrorMatch": "Passwörter stimmen nicht überein",
|
||||
"passwordChangeError": "Fehler beim Ändern des Passworts: Das Passwort wurde abgelehnt",
|
||||
"deleteConfirmText": "LÖSCHEN",
|
||||
"password": "Passwort",
|
||||
"enterProfilePassword": "Gib ein Passwort ein, um deine Profile anzuzeigen",
|
||||
"error0ProfilesLoadedForPassword": "0 Profile mit diesem Passwort geladen",
|
||||
"yourProfiles": "Deine Profile",
|
||||
"yourServers": "Deine Server",
|
||||
"unlock": "Entsperren",
|
||||
"versionBuilddate": "Version: %1 Aufgebaut auf: %2",
|
||||
"cwtchSettingsTitle": "Cwtch Einstellungen",
|
||||
"versionBuilddate": "Version: %1 Erstellt am: %2",
|
||||
"settingLanguage": "Sprache",
|
||||
"settingInterfaceZoom": "Zoomstufe",
|
||||
"themeLight": "Licht",
|
||||
"themeDark": "Dunkel",
|
||||
"versionTor": "Version %1 mit tor %2",
|
||||
"version": "Version %1",
|
||||
"loadingTor": "Tor wird geladen...",
|
||||
"viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen",
|
||||
"networkStatusAttemptingTor": "Versuche, eine Verbindung mit dem Tor-Netzwerk herzustellen",
|
||||
"networkStatusOnline": "Online",
|
||||
"smallTextLabel": "Klein",
|
||||
"defaultScalingText": "defaultmäßige Textgröße (Skalierungsfaktor:",
|
||||
"largeTextLabel": "Groß",
|
||||
"cwtchSettingsTitle": "Cwtch Einstellungen",
|
||||
"copiedToClipboardNotification": "in die Zwischenablage kopiert",
|
||||
"addressLabel": "Adresse",
|
||||
"puzzleGameBtn": "Puzzlespiel",
|
||||
"bulletinsBtn": "Meldungen",
|
||||
"listsBtn": "Listen",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Ablehnen",
|
||||
"acceptGroupBtn": "Annehmen",
|
||||
"acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen",
|
||||
"newGroupBtn": "Neue Gruppe anlegen",
|
||||
"copyBtn": "Kopieren",
|
||||
"pendingLabel": "Bestätigung ausstehend",
|
||||
"couldNotSendMsgError": "Nachricht konnte nicht gesendet werden",
|
||||
"inviteBtn": "Einladen",
|
||||
"inviteToGroupLabel": "In die Gruppe einladen",
|
||||
"groupNameLabel": "Gruppenname",
|
||||
"invitationLabel": "Einladung",
|
||||
"serverLabel": "Server",
|
||||
"postNewBulletinLabel": "Neue Meldung veröffentlichen",
|
||||
"newBulletinLabel": "Neue Meldung"
|
||||
"themeLight": "Hell",
|
||||
"settingTheme": "Helles Farbschema benutzen",
|
||||
"themeDark": "Dunkel",
|
||||
"experimentsEnabled": "Experimentelle Funktionen aktivieren",
|
||||
"version": "Version %1",
|
||||
"versionTor": "Version %1 mit Tor %2",
|
||||
"builddate": "Erstellt am: %2",
|
||||
"defaultScalingText": "Text in Standardgröße (Skalierungsfaktor:",
|
||||
"smallTextLabel": "Klein",
|
||||
"viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen",
|
||||
"loadingTor": "Tor wird geladen...",
|
||||
"networkStatusDisconnected": "Verbindung zum Internet unterbrochen, überprüfe Deine Verbindung",
|
||||
"networkStatusAttemptingTor": "Versuch, eine Verbindung zum Tor-Netzwerk herzustellen",
|
||||
"networkStatusConnecting": "Verbindung mit Netzwerk und Kontakten...",
|
||||
"networkStatusOnline": "Online",
|
||||
"newConnectionPaneTitle": "Neue Verbindung",
|
||||
"addNewItem": "Hinzufügen eines neuen Elements zur Liste",
|
||||
"addListItem": "Hinzufügen eines neuen Listenelements",
|
||||
"todoPlaceholder": "noch zu erledigen...",
|
||||
"enterCurrentPasswordForDelete": "Bitte gib das aktuelle Passwort ein, um dieses Profil zu löschen.",
|
||||
"enableGroups": "Gruppenchat aktivieren",
|
||||
"conversationSettings": "Konversationseinstellungen",
|
||||
"invalidImportString": "Ungültige Importzeichenfolge",
|
||||
"tooltipOpenSettings": "Öffne das Einstellungsmenü",
|
||||
"contactAlreadyExists": "Kontakt existiert bereits",
|
||||
"titleManageContacts": "Konversationen",
|
||||
"tooltipAddContact": "Neuen Kontakt oder Unterhaltung hinzufügen",
|
||||
"tooltipUnlockProfiles": "Entsperre verschlüsselte Profile durch Eingabe des Passworts.",
|
||||
"titleManageProfiles": "Cwtch Profile verwalten",
|
||||
"descriptionExperiments": "Bei den Cwtch-Experimenten handelt es sich um optionale Opt-in-Funktionen, die Cwtch um zusätzliche Funktionen erweitern, bei denen der Datenschutz anders berücksichtigt werden kann als beim traditionellen 1:1-Chat mit Metadaten, z. B. Gruppenchat, Bot-Integration usw.",
|
||||
"descriptionExperimentsGroups": "Das Experiment Gruppen ermöglicht es Cwtch, sich mit einer nicht vertrauenswürdigen Serverinfrastruktur zu verbinden, um die Kommunikation mit mehr als einem Kontakt zu erleichtern.",
|
||||
"descriptionBlockUnknownConnections": "Wenn diese Option aktiviert ist, werden Verbindungen von Cwtch-Benutzern, die nicht zu Deiner Kontaktliste hinzugefügt wurden, automatisch geschlossen.",
|
||||
"successfullAddedContact": "Erfolgreich hinzugefügt",
|
||||
"titleManageServers": "Server verwalten",
|
||||
"inviteToGroup": "Du wurdest eingeladen einer Gruppe beizutreten:",
|
||||
"reallyLeaveThisGroupPrompt": "Bist du sicher, dass du diese Konversation verlassen möchtest? Alle Nachrichten und Attribute werden gelöscht.",
|
||||
"leaveConversation": "Diese Konversation verlassen",
|
||||
"yesLeave": "Ja, diese Konversation verlassen",
|
||||
"newPassword": "Neues Passwort",
|
||||
"chatHistoryDefault": "Diese Konversation wird gelöscht, wenn Cwtch geschlossen wird! Der Nachrichtenverlauf kann für jedes Gespräch über das Menü Einstellungen oben rechts aktiviert werden.",
|
||||
"accepted": "Angenommen!",
|
||||
"rejected": "Abgelehnt!",
|
||||
"contactSuggestion": "Dies ist ein Kontaktvorschlag für: ",
|
||||
"sendAnInvitation": "Du hast eine Einladung geschickt für: ",
|
||||
"torStatus": "Tor-Status",
|
||||
"torVersion": "Tor-Version",
|
||||
"resetTor": "Zurücksetzen",
|
||||
"sendMessage": "Nachricht senden",
|
||||
"cancel": "Abbrechen",
|
||||
"sendInvite": "Sende eine Kontakt- oder Gruppeneinladung",
|
||||
"addServerFirst": "Du musst einen Server hinzufügen, bevor du eine Gruppe erstellen kannst",
|
||||
"deleteProfileSuccess": "Erfolgreich Profil gelöscht",
|
||||
"nickChangeSuccess": "Profilename erfolgreich geändert",
|
||||
"createProfileToBegin": "Bitte erstelle oder entsperre ein Profil, um zu beginnen",
|
||||
"addContactFirst": "Füge einen Kontakt hinzu oder wähle einen aus, um den Chat zu beginnen.",
|
||||
"debugLog": "Aktivieren der Konsolendebugprotokollierung",
|
||||
"torNetworkStatus": "Tor Netzwerkstatus",
|
||||
"profileDeleteSuccess": "Profil erfolgreich gelöscht",
|
||||
"malformedMessage": "Fehlerhafte Nachricht",
|
||||
"shutdownCwtchTooltip": "Cwtch herunterfahren",
|
||||
"shutdownCwtchDialog": "Bist Du sicher, dass Du Cwtch herunterfahren möchtest? Damit werden alle Verbindungen geschlossen und die Anwendung beendet.",
|
||||
"shutdownCwtchDialogTitle": "Cwtch herunterfahren?",
|
||||
"shutdownCwtchAction": "Cwtch herunterfahren",
|
||||
"groupInviteSettingsWarning": "Sie wurden eingeladen, einer Gruppe beizutreten! Bitte aktiviere das Gruppenchat-Experiment in den Einstellungen, um diese Einladung anzuzeigen.",
|
||||
"tooltipShowPassword": "Password anzeigen",
|
||||
"notificationNewMessageFromPeer": "Neue Nachricht von einem Kontakt!",
|
||||
"tooltipHidePassword": "Passwort verbergen",
|
||||
"notificationNewMessageFromGroup": "Neue Nachricht in einer Gruppe!",
|
||||
"tooltipAcceptContactRequest": "Akzeptiere diese Kontaktanfrage.",
|
||||
"tooltipRejectContactRequest": "Diese Kontaktanfrage ablehnen",
|
||||
"tooltipReplyToThisMessage": "Auf diese Nachricht antworten",
|
||||
"tooltipRemoveThisQuotedMessage": "Zitierte Nachricht entfernen.",
|
||||
"settingUIColumnLandscape": "UI-Spalten im Querformat",
|
||||
"settingUIColumnPortrait": "UI-Spalten im Hochformat",
|
||||
"settingUIColumnDouble12Ratio": "Doppelt (1:2)",
|
||||
"settingUIColumnSingle": "Einzeln",
|
||||
"settingUIColumnDouble14Ratio": "Doppelt (1:4)",
|
||||
"settingUIColumnOptionSame": "Identisch mit der Hochformat-Einstellung",
|
||||
"contactGoto": "Zur Unterhaltung mit %1 wechseln",
|
||||
"zoomLabel": "Benutzeroberflächen-Zoom (betrifft hauptsächlich Text- und Button-Größen)",
|
||||
"blockUnknownLabel": "Unbekannte Kontakte blockieren",
|
||||
"addContact": "Kontakt hinzufügen",
|
||||
"addContactConfirm": "Kontakt hinzufügen %1",
|
||||
"encryptedProfileDescription": "Das Verschlüsseln eines Profils mit einem Passwort schützt es vor anderen Personen, die ebenfalls dieses Gerät benutzten könnten. Verschlüsselte Profile können nicht entschlüsselt, angezeigt und benutzt werden bis das korrekte Passwort zum Entsperren eingegeben wurde.",
|
||||
"plainProfileDescription": "Wir empfehlen, dass Du Deine Cwtch-Profile mit einem Passwort schützst. Wenn Du kein Passwort für dieses Profil festlegst, kann jeder, der Zugang zu diesem Gerät hat, auf Informationen über dieses Profil zugreifen, einschließlich Kontakte, Nachrichten und sensible kryptographische Schlüssel.",
|
||||
"placeholderEnterMessage": "Gib eine Nachricht ein...",
|
||||
"blockedMessageMessage": "Diese Nachricht stammt von einem Profil, das Du blockiert hast.",
|
||||
"showMessageButton": "Nachricht anzeigen",
|
||||
"blockUnknownConnectionsEnabledDescription": "Verbindungen von unbekannten Kontakten werden blockiert. Du kannst dies in den Einstellungen ändern.",
|
||||
"archiveConversation": "Archiviere diese Konversation",
|
||||
"streamerModeLabel": "Streamer\/Präsentationsmodus",
|
||||
"descriptionStreamerMode": "Wenn diese Option aktiviert ist, wird die App für das Streaming oder die Präsentation optisch privater gestaltet, indem z. B. Profil- und Kontaktadressen ausgeblendet werden.",
|
||||
"retrievingManifestMessage": "Dateiinformationen werden abgerufen...",
|
||||
"openFolderButton": "Ordner öffnen",
|
||||
"downloadFileButton": "Herunterladen",
|
||||
"labelFilesize": "Größe",
|
||||
"labelFilename": "Dateiname",
|
||||
"messageEnableFileSharing": "Aktiviere das Dateifreigabe-Experiment, um diese Nachricht anzuzeigen.",
|
||||
"messageFileSent": "Du hast eine Datei gesendet",
|
||||
"messageFileOffered": "Kontakt bietet an, Dir eine Datei zu schicken",
|
||||
"tooltipSendFile": "Datei senden",
|
||||
"settingFileSharing": "Gemeinsame Nutzung von Dateien",
|
||||
"descriptionFileSharing": "Mit dem Dateifreigabe-Experiment kannst Du Dateien von Cwtch-Kontakten und -Gruppen senden und empfangen. Beachte, dass das Teilen einer Datei mit einer Gruppe dazu führt, dass sich die Mitglieder dieser Gruppe direkt mit Dir über Cwtch verbinden, um die Datei herunterzuladen.",
|
||||
"titleManageProfilesShort": "Profile",
|
||||
"addServerTitle": "Server hinzufügen",
|
||||
"editServerTitle": "Server bearbeiten",
|
||||
"serverAddress": "Server-Adresse",
|
||||
"serverDescriptionLabel": "Server-Beschreibung",
|
||||
"serverDescriptionDescription": "Deine Beschreibung des Servers ist nur für die persönliche Verwaltung bestimmt und wird nicht weitergegeben.",
|
||||
"serverEnabled": "Server aktiviert",
|
||||
"serverEnabledDescription": "Server starten oder stoppen",
|
||||
"serverAutostartLabel": "Autostart",
|
||||
"serverAutostartDescription": "Legt fest, ob die Anwendung den Server beim Start automatisch starten soll",
|
||||
"saveServerButton": "Server sichern",
|
||||
"serversManagerTitleLong": "Von Dir gehostete Server",
|
||||
"serversManagerTitleShort": "Server",
|
||||
"addServerTooltip": "Neuen Server hinzufügen",
|
||||
"unlockServerTip": "Bitte entsperre oder erstelle einen Server, um zu beginnen!",
|
||||
"unlockProfileTip": "Bitte erstelle oder entsperre ein Profil, um zu beginnen!",
|
||||
"enterServerPassword": "Passwort um Server zu entsperren",
|
||||
"settingServers": "Server hosten",
|
||||
"settingServersDescription": "Das Experiment \"Hosting-Server\" ermöglicht das Hosting und die Verwaltung von Cwtch-Servern",
|
||||
"copyAddress": "Adresse kopieren",
|
||||
"enterCurrentPasswordForDeleteServer": "Bitte gib das aktuelle Passwort ein, um diesen Server zu löschen",
|
||||
"deleteServerSuccess": "Server erfolgreich gelöscht",
|
||||
"deleteServerConfirmBtn": "Server wirklich löschen",
|
||||
"plainServerDescription": "Wir empfehlen, dass du deinen Cwtch-Server mit einem Passwort schützst. Wenn Du diesen Server nicht mit einem Kennwort versiehst, kann jeder, der Zugang zu diesem Gerät hat, auf Informationen über diesen Server zugreifen, einschließlich sensibler kryptografischer Schlüssel.",
|
||||
"encryptedServerDescription": "Das Verschlüsseln eines Servers mit einem Kennwort schützt ihn vor anderen Personen, die dieses Gerät ebenfalls benutzen könnten. Verschlüsselte Server können nicht entschlüsselt, angezeigt oder aufgerufen werden, bis das richtige Kennwort eingegeben wird, um sie zu entsperren.",
|
||||
"fileSavedTo": "Gesichert in",
|
||||
"fileInterrupted": "Unterbrochen",
|
||||
"fileCheckingStatus": "Überprüfen des Download-Status",
|
||||
"verfiyResumeButton": "Überprüfen\/Fortsetzen",
|
||||
"copyServerKeys": "Schlüssel kopieren",
|
||||
"newMessagesLabel": "Neue Nachrichten",
|
||||
"importLocalServerLabel": "Importieren eines lokal gehosteten Servers",
|
||||
"importLocalServerSelectText": "Lokalen Server auswählen",
|
||||
"importLocalServerButton": "%1 importieren",
|
||||
"groupsOnThisServerLabel": "Gruppen, in denen ich bin, werden auf diesem Server gehostet",
|
||||
"fieldDescriptionLabel": "Beschreibung",
|
||||
"manageKnownServersButton": "Bekannte Server verwalten",
|
||||
"displayNameTooltip": "Bitte gib einen Anzeigenamen ein",
|
||||
"manageKnownServersLong": "Bekannte Server verwalten",
|
||||
"manageKnownServersShort": "Server",
|
||||
"serverMetricsLabel": "Server-Metriken",
|
||||
"serverTotalMessagesLabel": "Nachrichten insgesamt",
|
||||
"serverConnectionsLabel": "Verbindung",
|
||||
"enableExperimentClickableLinks": "Anklickbare Links aktivieren",
|
||||
"experimentClickableLinksDescription": "Das Experiment mit anklickbaren Links ermöglicht es dir, auf URLs zu klicken, die in Nachrichten geteilt werden",
|
||||
"settingImagePreviews": "Bild Voransichten und Profil Bilder",
|
||||
"settingDownloadFolder": "Download Ordner",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameWitch": "Hexe",
|
||||
"themeNameVampire": "Vampir",
|
||||
"themeNameGhost": "Geist",
|
||||
"themeNamePumpkin": "Kürbis",
|
||||
"themeNameMidnight": "Mitternacht",
|
||||
"themeNameMermaid": "Meerjungfrau",
|
||||
"themeNameNeon1": "Neon1",
|
||||
"themeColorLabel": "Farbthema",
|
||||
"themeNameNeon2": "Neon2",
|
||||
"loadingCwtch": "Lade Cwtch...",
|
||||
"storageMigrationModalMessage": "Profile in ein neues Speicherformat migrieren. Das kann ein paar Minuten dauern...",
|
||||
"msgFileTooBig": "Dateigröße darf nicht größer als 10 GB sein",
|
||||
"msgConfirmSend": "Möchtest Du diese Datei wirklich senden",
|
||||
"btnSendFile": "Datei senden",
|
||||
"msgAddToAccept": "Füge dieses Konto zu Deinen Kontakten hinzu, um diese Datei zu akzeptieren.",
|
||||
"torSettingsEnabledAdvanced": "Erweiterte Tor-Konfiguration aktivieren",
|
||||
"torSettingsEnabledAdvancedDescription": "Verwende einen bestehenden Tor-Dienst auf deinem System oder ändere die Parameter des Cwtch Tor Services",
|
||||
"torSettingsCustomSocksPort": "Benutzerdefinierter SOCKS-Port",
|
||||
"torSettingsCustomSocksPortDescription": "Verwende einen eigenen Port für Datenverbindungen zum Tor-Proxy",
|
||||
"torSettingsCustomControlPort": "Benutzerdefinierter Kontrollport",
|
||||
"torSettingsCustomControlPortDescription": "Verwende einen eigenen Port für Kontrollverbindungen zum Tor-Proxy",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Verwende eine eigene Tor-Service-Konfiguration (torrc)",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Überschreibe die Standard-Tor-Konfiguration. Warnung: Dies könnte gefährlich sein. Schalte dies nur ein, wenn Du weißt, was Du machst.",
|
||||
"torSettingsErrorSettingPort": "Port Nummer muss zwischen 1 und 65535 liegen",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Wenn Dateien automatisch heruntergeladen werden (z. B. Bilddateien, wenn die Bildvorschau aktiviert ist), wird ein Standardspeicherort benötigt, an den die Dateien heruntergeladen werden.",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Durchsuchen, um einen anderen Standardordner für heruntergeladene Dateien auszuwählen.",
|
||||
"labelACNCircuitInfo": "ACN Circuit Information",
|
||||
"descriptionACNCircuitInfo": "Ausführliche Informationen über den Pfad, den das anonyme Kommunikationsnetzwerk verwendet, um eine Verbindung mit dieser Konversation herzustellen.",
|
||||
"labelTorNetwork": "Tor Netzwerk",
|
||||
"torSettingsEnableCache": "Tor Konsensus zwischenspeichern",
|
||||
"torSettingsEnabledCacheDescription": "Zwischenspeichern des aktuell heruntergeladenen Tor-Konsenses, um ihn beim nächsten Öffnen von Cwtch wiederzuverwenden. Dies ermöglicht einen schnelleren Start von Tor. Wenn deaktiviert, löscht Cwtch die zwischengespeicherten Daten beim Starten.",
|
||||
"tooltipSelectACustomProfileImage": "Auswählen eines benutzerdefinierten Profilbilds",
|
||||
"notificationPolicyMute": "Stummschalten",
|
||||
"notificationPolicyOptIn": "Annehmen",
|
||||
"notificationPolicyDefaultAll": "Standard Alle",
|
||||
"conversationNotificationPolicyDefault": "Standard",
|
||||
"conversationNotificationPolicyOptIn": "Annehmen",
|
||||
"notificationPolicySettingLabel": "Benachrichtigungsrichtlinie",
|
||||
"conversationNotificationPolicyNever": "Niemals",
|
||||
"notificationPolicySettingDescription": "Steuert das standardmäßige Benachrichtigungsverhalten der Anwendungsbenachrichtigungsverhalten",
|
||||
"notificationContentSettingLabel": "Inhalt der Benachrichtigung",
|
||||
"notificationContentSettingDescription": "Steuert den Inhalt von Konversationsbenachrichtigungen",
|
||||
"settingGroupBehaviour": "Verhalten",
|
||||
"settingsGroupAppearance": "Aussehen",
|
||||
"settingsGroupExperiments": "Experimente",
|
||||
"conversationNotificationPolicySettingLabel": "Richtlinie für Konversationsbenachrichtigungen",
|
||||
"conversationNotificationPolicySettingDescription": "Steuerung des Benachrichtigungsverhaltens für diese Konversation",
|
||||
"notificationContentSimpleEvent": "Einfaches Ereignis",
|
||||
"notificationContentContactInfo": "Informationen zur Konversationseinstellungen",
|
||||
"newMessageNotificationSimple": "Neue Nachricht",
|
||||
"newMessageNotificationConversationInfo": "Neue Nachricht von %1",
|
||||
"exportProfile": "Profil exportieren",
|
||||
"exportProfileTooltip": "Sichern des Profils in eine verschlüsselte Datei. Die verschlüsselte Datei kann in eine andere Cwtch App importiert werden.",
|
||||
"importProfile": "Profil importieren",
|
||||
"importProfileTooltip": "Benutze ein verschlüsseltes Cwtch Backup, um ein in einer anderen Cwtch Instanz erzeugtes Profil zu aktivieren.",
|
||||
"failedToImportProfile": "Fehler beim Import des Profils",
|
||||
"successfullyImportedProfile": "Profil erfolgreich importiert: %profile",
|
||||
"shuttingDownApp": "Herunterfahren ...",
|
||||
"clickableLinksWarning": "Das Öffnen dieser URL wird eine Anwendung außerhalb von Cwtch starten und könnte Metadaten enthüllen oder anderweitig die Sicherheit von Cwtch gefährden. Öffne nur URLs von Personen, denen Du vertraust. Bist Du sicher, dass Du fortfahren möchtest?",
|
||||
"clickableLinkOpen": "URL öffnen",
|
||||
"clickableLinksCopy": "URL kopieren",
|
||||
"clickableLinkError": "Beim Versuch, die URL zu öffnen, ist ein Fehler aufgetreten",
|
||||
"formattingExperiment": "Formatierung von Nachrichtenbearbeitung",
|
||||
"messageFormattingDescription": "Aktiviere Richtext Formatierung in den angezeigten Nachrichten z.B. **fett** und *kursiv*",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Für diese Funktion muss das Gruppen-Experiment in den Einstellungen aktiviert sein.",
|
||||
"settingAndroidPowerExemption": "Ignoriere Android Akku-Optimierungen",
|
||||
"settingAndroidPowerExemptionDescription": "Optional: Fordere Android auf, Cwtch von der optimierten Energieverwaltung auszunehmen. Dies wird zu einer besseren Stabilität auf Kosten eines höheren Batterieverbrauchs führen.",
|
||||
"settingsAndroidPowerReenablePopup": "Die Akku-Optimierung kann in Cwtch nicht wieder aktiviert werden. Bitte gehe zu Android \/ Einstellungen \/ Apps \/ Cwtch \/ Batterie und setze die Nutzung auf \"Optimiert\".",
|
||||
"okButton": "OK",
|
||||
"tooltipBoldText": "Fett",
|
||||
"tooltipBackToMessageEditing": "Zurück zu Nachrichtenbearbeitung",
|
||||
"tooltipItalicize": "Kursiv",
|
||||
"tooltipSuperscript": "Hochgestellt",
|
||||
"tooltipSubscript": "Tiefgestellt",
|
||||
"tooltipStrikethrough": "Durchgestrichen",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipPreviewFormatting": "Vorschau Nachrichtenformatierung"
|
||||
}
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "el",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Τουρκικά \/ Türk",
|
||||
"localeIt": "Italian \/ Italiano",
|
||||
"localeCy": "Ουαλικά \/ Cymraeg",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Γερμανός \/ Deutsch",
|
||||
"localeEn": "English \/ English",
|
||||
"localeLb": "Λουξεμβουργιανά",
|
||||
"localeNo": "Νορβηγικά",
|
||||
"localeEl": "Ελληνικά",
|
||||
"localePl": "Polish \/ Polski",
|
||||
"localeRo": "Ρουμανικά",
|
||||
"localeRU": "Ρωσικά",
|
||||
"localeEs": "Spanish \/ Español",
|
||||
"localeDa": "Δανικά",
|
||||
"localePt": "Portuguese \/ Portuguesa",
|
||||
"localeFr": "French \/ Français",
|
||||
"settingImagePreviewsDescription": "Θα γίνει αυτόματη λήψη και προεπισκόπηση των εικόνων. Λάβετε υπόψη ότι οι προεπισκοπήσεις εικόνων μπορεί συχνά να οδηγήσουν σε ευπάθειες ασφαλείας και δεν θα πρέπει να ενεργοποιήσετε αυτό το πείραμα εάν χρησιμοποιείτε το Cwtch με μη αξιόπιστες επαφές. Οι φωτογραφίες προφίλ έχουν προγραμματιστεί για το Cwtch 1.6.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -27,8 +83,6 @@
|
|||
"importProfile": "Import Profile",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"exportProfile": "Export Profile",
|
||||
"localeCy": "Ουαλικά",
|
||||
"localeDa": "Δανικά",
|
||||
"server": "Διακομιστής",
|
||||
"peerName": "Όνομα",
|
||||
"peerAddress": "Διεύθυνση",
|
||||
|
@ -73,7 +127,6 @@
|
|||
"fileCheckingStatus": "Έλεγχος κατάστασης λήψης",
|
||||
"verfiyResumeButton": "Επαλήθευση\/συνέχιση",
|
||||
"copyServerKeys": "Αντιγραφή κλειδιών",
|
||||
"localeRU": "Ρωσικά",
|
||||
"newMessagesLabel": "Νέα μηνύματα",
|
||||
"importLocalServerLabel": "Εισαγωγή ενός τοπικά φιλοξενούμενου διακομιστή",
|
||||
"importLocalServerSelectText": "Επιλογή τοπικού διακομιστή",
|
||||
|
@ -88,7 +141,6 @@
|
|||
"fileSharingSettingsDownloadFolderTooltip": "Επιλέξετε έναν διαφορετικό προεπιλεγμένο φάκελο για τα αρχεία που έχουν ληφθεί.",
|
||||
"torSettingsEnableCache": "Αποθήκευση Tor Consensus",
|
||||
"settingImagePreviews": "Προεπισκοπήσεις εικόνων και εικόνες προφίλ",
|
||||
"settingImagePreviewsDescription": "Θα γίνει αυτόματη λήψη και προεπισκόπηση των εικόνων. Λάβετε υπόψη ότι οι προεπισκοπήσεις εικόνων μπορεί συχνά να οδηγήσουν σε ευπάθειες ασφαλείας και δεν θα πρέπει να ενεργοποιήσετε αυτό το πείραμα εάν χρησιμοποιείτε το Cwtch με μη αξιόπιστες επαφές. Οι φωτογραφίες προφίλ έχουν προγραμματιστεί για το Cwtch 1.6.",
|
||||
"settingDownloadFolder": "Φάκελος Λήψης",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameNeon1": "Neon1",
|
||||
|
@ -109,10 +161,6 @@
|
|||
"notificationContentContactInfo": "Πληροφορίες συνομιλίας",
|
||||
"newMessageNotificationSimple": "Νέο μήνυμα",
|
||||
"newMessageNotificationConversationInfo": "Νέο μήνυμα από %1",
|
||||
"localeRo": "Ρουμανικά",
|
||||
"localeLb": "Λουξεμβουργιανά",
|
||||
"localeNo": "Νορβηγικά",
|
||||
"localeEl": "Ελληνικά",
|
||||
"notificationContentSimpleEvent": "Plain Event",
|
||||
"conversationNotificationPolicySettingDescription": "Control notification behaviour for this conversation",
|
||||
"conversationNotificationPolicySettingLabel": "Conversation Notification Policy",
|
||||
|
@ -172,7 +220,6 @@
|
|||
"settingUIColumnSingle": "Single",
|
||||
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
|
||||
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
|
||||
"localePl": "Polish",
|
||||
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
|
||||
"tooltipReplyToThisMessage": "Reply to this message",
|
||||
"tooltipRejectContactRequest": "Reject this contact request",
|
||||
|
@ -225,8 +272,6 @@
|
|||
"invalidImportString": "Invalid import string",
|
||||
"enterCurrentPasswordForDelete": "Please enter current password to delete this profile.",
|
||||
"enableGroups": "Enable Group Chat",
|
||||
"localeIt": "Italiana",
|
||||
"localeEs": "Espanol",
|
||||
"todoPlaceholder": "Todo...",
|
||||
"addNewItem": "Add a new item to the list",
|
||||
"addListItem": "Add a New List Item",
|
||||
|
@ -248,10 +293,6 @@
|
|||
"settingTheme": "Use Light Themes",
|
||||
"largeTextLabel": "Large",
|
||||
"settingInterfaceZoom": "Zoom level",
|
||||
"localeDe": "Deutsche",
|
||||
"localePt": "Portuguesa",
|
||||
"localeFr": "Frances",
|
||||
"localeEn": "English",
|
||||
"settingLanguage": "Language",
|
||||
"blockUnknownLabel": "Block Unknown Contacts",
|
||||
"zoomLabel": "Interface zoom (mostly affects text and button sizes)",
|
||||
|
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "en",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeIt": "Italian \/ Italiano",
|
||||
"localeTr": "Turkish \/ Türk",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "German \/ Deutsch",
|
||||
"localeEn": "English \/ English",
|
||||
"localeLb": "Luxembourgish \/ Lëtzebuergesch",
|
||||
"localeNo": "Norwegian \/ Norsk",
|
||||
"localeEl": "Greek \/ Ελληνικά",
|
||||
"localePl": "Polish \/ Polski",
|
||||
"localeRo": "Romanian \/ Română",
|
||||
"localeRU": "Russian \/ Русский",
|
||||
"localeEs": "Spanish \/ Español",
|
||||
"localeDa": "Danish \/ Dansk",
|
||||
"localePt": "Portuguese \/ Portuguesa",
|
||||
"localeFr": "French \/ Français",
|
||||
"localeCy": "Welsh \/ Cymraeg",
|
||||
"settingImagePreviewsDescription": "Images and Profile Pictures will be downloaded and previewed automatically. We recommend that you do not enable this Experiment if you use Cwtch with untrusted contacts.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -27,13 +83,7 @@
|
|||
"importProfile": "Import Profile",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"exportProfile": "Export Profile",
|
||||
"localeDa": "Danish",
|
||||
"localeCy": "Welsh",
|
||||
"localeEl": "Greek",
|
||||
"localeNo": "Norwegian",
|
||||
"localeLb": "Luxembourgish",
|
||||
"conversationNotificationPolicySettingDescription": "Control notification behaviour for this conversation",
|
||||
"localeRo": "Romanian",
|
||||
"newMessageNotificationConversationInfo": "New Message From %1",
|
||||
"newMessageNotificationSimple": "New Message",
|
||||
"notificationContentContactInfo": "Conversation Information",
|
||||
|
@ -88,7 +138,6 @@
|
|||
"themeNameWitch": "Witch",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Download Folder",
|
||||
"settingImagePreviewsDescription": "Images will be downloaded and previewed automatically. Please note that image previews can often lead to security vulnerabilities, and you should not enable this Experiment if you use Cwtch with untrusted contacts. Profile pictures are planned for Cwtch 1.6.",
|
||||
"settingImagePreviews": "Image Previews and Profile Pictures",
|
||||
"experimentClickableLinksDescription": "The clickable links experiment allows you to click on URLs shared in messages",
|
||||
"enableExperimentClickableLinks": "Enable Clickable Links",
|
||||
|
@ -106,7 +155,6 @@
|
|||
"importLocalServerLabel": "Import a locally hosted server",
|
||||
"savePeerHistoryDescription": "Determines whether to delete any history associated with the contact.",
|
||||
"newMessagesLabel": "New Messages",
|
||||
"localeRU": "Russian",
|
||||
"copyServerKeys": "Copy keys",
|
||||
"verfiyResumeButton": "Verify\/resume",
|
||||
"fileCheckingStatus": "Checking download status",
|
||||
|
@ -178,7 +226,6 @@
|
|||
"settingUIColumnSingle": "Single",
|
||||
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
|
||||
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
|
||||
"localePl": "Polish",
|
||||
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
|
||||
"tooltipReplyToThisMessage": "Reply to this message",
|
||||
"tooltipRejectContactRequest": "Reject this contact request",
|
||||
|
@ -235,8 +282,6 @@
|
|||
"enterCurrentPasswordForDelete": "Please enter current password to delete this profile.",
|
||||
"enableGroups": "Enable Group Chat",
|
||||
"experimentsEnabled": "Enable Experiments",
|
||||
"localeIt": "Italiana",
|
||||
"localeEs": "Espanol",
|
||||
"addListItem": "Add a New List Item",
|
||||
"addNewItem": "Add a new item to the list",
|
||||
"todoPlaceholder": "Todo...",
|
||||
|
@ -255,10 +300,6 @@
|
|||
"themeLight": "Light",
|
||||
"largeTextLabel": "Large",
|
||||
"settingInterfaceZoom": "Zoom level",
|
||||
"localeDe": "Deutsche",
|
||||
"localePt": "Portuguesa",
|
||||
"localeFr": "Frances",
|
||||
"localeEn": "English",
|
||||
"settingLanguage": "Language",
|
||||
"zoomLabel": "Interface zoom (mostly affects text and button sizes)",
|
||||
"versionBuilddate": "Version: %1 Built on: %2",
|
||||
|
|
|
@ -1,33 +1,90 @@
|
|||
{
|
||||
"@@locale": "es",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"tooltipPinConversation": "Fija la conversación en la parte superior de \"Conversaciones\"",
|
||||
"errorDownloadDirectoryDoesNotExist": "No se puede habilitar el uso compartido de archivos porque la carpeta de descarga no se ha configurado o se configuró en una carpeta que no existe.",
|
||||
"acquiringTicketsFromServer": "Realizando Desafío Antispam",
|
||||
"acquiredTicketsFromServer": "Desafío Antispam Completado",
|
||||
"tooltipUnpinConversation": "Desenganchar la conversación de la parte superior de \"Conversaciones\"",
|
||||
"manageSharedFiles": "Administrar Archivos Compartidos",
|
||||
"stopSharingFile": "Dejar de compartir archivos",
|
||||
"restartFileShare": "Comenzar a compartir archivos",
|
||||
"viewReplies": "Ver respuestas a este mensaje",
|
||||
"headingReplies": "Respuestas",
|
||||
"messageNoReplies": "No hay respuestas a este mensaje.",
|
||||
"fileDownloadUnavailable": "Parece que este archivo no está disponible para descargar. Es posible que el remitente haya desactivado las descargas de este archivo.",
|
||||
"replyingTo": "Respondiendo a %1",
|
||||
"localeTr": "Turco \/ Türk",
|
||||
"localeIt": "Italiano \/ Italiano",
|
||||
"localeDe": "Alemán \/ Deutsch",
|
||||
"settingImagePreviewsDescription": "Las imágenes se descargarán y visualizarán automáticamente. Ten en cuenta que las previsualizaciones pueden generar vulnerabilidades de seguridad, no deberías habilitar este experimento si usas Cwtch con contactos que no son de confianza. Las imágenes de perfil están planeadas para Cwtch 1.6.",
|
||||
"tooltipBackToMessageEditing": "Volver a Edición de mensajes",
|
||||
"tooltipSubscript": "Subíndice",
|
||||
"tooltipPreviewFormatting": "Vista previa del formato del mensaje",
|
||||
"tooltipBoldText": "Negrita",
|
||||
"tooltipItalicize": "Itálico",
|
||||
"tooltipSuperscript": "Superíndice",
|
||||
"tooltipCode": "Código \/ Monoespaciado",
|
||||
"exportProfileTooltip": "Haga una copia de seguridad de este perfil en un archivo cifrado. El archivo cifrado puede ser importado en otra aplicación Cwtch.",
|
||||
"tooltipStrikethrough": "Tachado",
|
||||
"settingAndroidPowerExemption": "Android ignora las optimizaciones de batería",
|
||||
"messageFormattingDescription": "Habilitar el formato de texto enriquecido en los mensajes mostrados, por ejemplo, **negrita** y *cursiva*.",
|
||||
"clickableLinksWarning": "Abrir esta URL lanzará una aplicación fuera de Cwtch que puede revelar metadatos o comprometer la seguridad de Cwtch. Solo abra URLs de personas confiables. ¿Desea continuar?",
|
||||
"settingsAndroidPowerReenablePopup": "No se puede habilitar la optimización desde Cwtch. Vaya a Android \/ Configuración \/ Aplicaciones \/ Cwtch \/ Batería y configure Uso a \"Optimizado\"",
|
||||
"settingAndroidPowerExemptionDescription": "Opcional: Solicite a Android eximir a Cwtch de la administración de energía optimizada. Esto resultará en mejor estabilidad a costa de mayor uso de batería.",
|
||||
"successfullyImportedProfile": "Perfil importado correctamente:",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Esta función requiere que el experimento de grupos esté habilitado en Configuración",
|
||||
"clickableLinkError": "Se encontró un error al abrir la URL",
|
||||
"importProfileTooltip": "Usar una copia de seguridad cifrada de Cwtch para incorporar un perfil creado en otra instancia de Cwtch.",
|
||||
"chatHistoryDefault": "Esta conversación será eliminada cuando se cierre Cwtch! El historial de mensajes puede habilitarse en cada conversación usando el menú de Configuración en la parte superior derecha.",
|
||||
"torSettingsEnabledCacheDescription": "Almacena en caché el consenso de Tor actual para re usar la próxima vez que Cwtch se abra. Esto permitirá que Tor inicie más rápido. Cuando se desactiva, Cwtch eliminará los datos almacenados en caché al iniciarse.",
|
||||
"exportProfile": "Exportar Perfil",
|
||||
"importProfile": "Importar Perfil",
|
||||
"failedToImportProfile": "Error Importando Perfil",
|
||||
"shuttingDownApp": "Cerrando...",
|
||||
"clickableLinkOpen": "Abrir URL",
|
||||
"clickableLinksCopy": "Copiar URL",
|
||||
"formattingExperiment": "Formato de Mensajes",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Cannot re-enable Battery Optimization from within Cwtch. Please go to Android \/ Settings \/ Apps \/ Cwtch \/ Battery and set Usage to 'Optimized'",
|
||||
"settingAndroidPowerExemptionDescription": "Optional: Request Android to exempt Cwtch from optimized power management. This will result in better stability at the cost of greater battery use.",
|
||||
"settingAndroidPowerExemption": "Android Ignore Battery Optimizations",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "This feature requires the Groups Experiment to be enabled in Settings",
|
||||
"messageFormattingDescription": "Enable rich text formatting in displayed messages e.g. **bold** and *italic*",
|
||||
"formattingExperiment": "Message Formatting",
|
||||
"clickableLinkError": "Error encountered while attempting to open URL",
|
||||
"clickableLinksCopy": "Copy URL",
|
||||
"clickableLinkOpen": "Open URL",
|
||||
"clickableLinksWarning": "Opening this URL will launch an application outside of Cwtch and may reveal metadata or otherwise compromise the security of Cwtch. Only open URLs from people you trust. Are you sure you want to continue?",
|
||||
"shuttingDownApp": "Shutting down...",
|
||||
"successfullyImportedProfile": "Successfully Imported Profile: %profile",
|
||||
"failedToImportProfile": "Error Importing Profile",
|
||||
"importProfileTooltip": "Use an encrypted Cwtch backup to bring in a profile created in another instance of Cwtch.",
|
||||
"importProfile": "Import Profile",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"exportProfile": "Export Profile",
|
||||
"localeDa": "Danés",
|
||||
"localeFr": "Francés \/ Français",
|
||||
"localePt": "Portugués \/ Portuguesa",
|
||||
"localeEs": "Español \/ Español",
|
||||
"localeRU": "Ruso \/ Русский",
|
||||
"localePl": "Polaco \/ Polski",
|
||||
"localeLb": "Luxemburgués \/ Lëtzebuergesch",
|
||||
"localeEn": "Inglés \/ English",
|
||||
"localeDa": "Danés \/ Dansk",
|
||||
"localeCy": "Galés \/ Cymraeg",
|
||||
"localeNo": "Noruego \/ Norsk",
|
||||
"localeEl": "Griego \/ Ελληνικά",
|
||||
"localeRo": "Rumano \/ Română",
|
||||
"groupInviteSettingsWarning": "¡Has recibido una invitación para unirte a un grupo! Por favor habilita el experimento de chat grupal en Configuración para ver esta invitación",
|
||||
"plainServerDescription": "Te recomendamos que protejas tus servidores de Cwtch con una contraseña. Si no estableces una contraseña en este servidor, cualquiera que tenga acceso a este dispositivo podrá acceder a la información sobre este servidor incluyendo claves criptográficas confidenciales",
|
||||
"encryptedServerDescription": "Cifrar un servidor con una contraseña lo protege de otras personas que puedan usar este dispositivo. Los servidores cifrados no se pueden descifrar, mostrar ni acceder hasta que se ingrese la contraseña correcta para desbloquearlos",
|
||||
|
@ -40,9 +97,7 @@
|
|||
"cancel": "Cancelar",
|
||||
"torStatus": "Estado de Tor",
|
||||
"torVersion": "Versión de Tor",
|
||||
"settingImagePreviewsDescription": "Las imágenes se descargarán y visualizarán automáticamente. Ten en cuenta que las previsualizaciones pueden generar vulnerabilidades de seguridad, no deberías habilitar este experimento si usas Cwtch con contactos que no son de confianza. Las imágenes de perfil están planeadas para Cwtch 1.6.",
|
||||
"descriptionStreamerMode": "Si está activada, esta opción hace que la aplicación sea más privada visualmente para transmitir o presentar, por ejemplo, ocultando direcciones de perfil y contacto.",
|
||||
"localeCy": "Galés",
|
||||
"blockUnknownConnectionsEnabledDescription": "Las conexiones de contactos desconocidos están bloqueadas. Puedes cambiar esto en la Configuración",
|
||||
"streamerModeLabel": "Modo Streamer\/Presentación",
|
||||
"deleteProfileSuccess": "Perfil eliminado correctamente",
|
||||
|
@ -113,7 +168,6 @@
|
|||
"fileCheckingStatus": "Comprobación del estado de la descarga",
|
||||
"verfiyResumeButton": "Verificar\/reanudar",
|
||||
"copyServerKeys": "Copiar claves",
|
||||
"localeRU": "Ruso",
|
||||
"newMessagesLabel": "Nuevos Mensajes",
|
||||
"importLocalServerLabel": "Importar un servidor alojado localmente",
|
||||
"importLocalServerSelectText": "Seleccionar el servidor local",
|
||||
|
@ -142,15 +196,10 @@
|
|||
"descriptionACNCircuitInfo": "Información detallada sobre la ruta que la red de comunicación anónima está utilizando para conectarse a esta conversación.",
|
||||
"torSettingsCustomSocksPort": "Puerto SOCKS personalizado",
|
||||
"labelTorNetwork": "Red Tor",
|
||||
"torSettingsEnabledCacheDescription": "Almacena en caché el consenso de Tor actual para reusar la próxima vez que Cwtch se abra. Esto permitirá que Tor inicie más rápido. Cuando se desactiva, Cwtch eliminará los datos almacenados en caché al iniciarse.",
|
||||
"notificationPolicyMute": "Silenciar",
|
||||
"notificationContentContactInfo": "Información de la conversación",
|
||||
"newMessageNotificationSimple": "Nuevo Mensaje",
|
||||
"newMessageNotificationConversationInfo": "Nuevo mensaje de %1",
|
||||
"localeRo": "Rumano",
|
||||
"localeLb": "Luxemburgués",
|
||||
"localeNo": "Noruego",
|
||||
"localeEl": "Griego",
|
||||
"notificationPolicyDefaultAll": "Todas predeterminadas",
|
||||
"notificationContentSimpleEvent": "Evento simple",
|
||||
"conversationNotificationPolicyDefault": "Predeterminado",
|
||||
|
@ -175,7 +224,6 @@
|
|||
"settingUIColumnSingle": "Sencillo",
|
||||
"settingUIColumnLandscape": "Columnas de la interfaz en modo horizontal",
|
||||
"settingUIColumnPortrait": "Columnas de la interfaz en modo vertical",
|
||||
"localePl": "Polaco",
|
||||
"tooltipRemoveThisQuotedMessage": "Remover el mensaje citado",
|
||||
"tooltipReplyToThisMessage": "Responder a este mensaje",
|
||||
"tooltipRejectContactRequest": "Rechazar esta solicitud de contacto",
|
||||
|
@ -197,7 +245,6 @@
|
|||
"contactSuggestion": "Esta es una sugerencia de contacto para:",
|
||||
"rejected": "¡Rechazado!",
|
||||
"accepted": "¡Aceptado!",
|
||||
"chatHistoryDefault": "Esta conversación será eliminada cuando se cierre Cwtch! El historial de mensajes puede habilitarse en cada conversación usando el menú de Configuración en la parte superior derecha. ",
|
||||
"yesLeave": "Si, Salir de Esta Conversación",
|
||||
"newPassword": "Nueva Contraseña",
|
||||
"reallyLeaveThisGroupPrompt": "¿Estás seguro de que quieres salir de esta conversación?",
|
||||
|
@ -247,9 +294,6 @@
|
|||
"themeDark": "Oscuro",
|
||||
"smallTextLabel": "Pequeño",
|
||||
"builddate": "Basado en: %2",
|
||||
"localeDe": "Alemán",
|
||||
"localePt": "Portugués",
|
||||
"localeFr": "Francés",
|
||||
"addListItem": "Añadir un nuevo elemento a la lista",
|
||||
"joinGroupTab": "Únete a un grupo",
|
||||
"viewGroupMembershipTooltip": "Ver membresía del grupo",
|
||||
|
@ -258,14 +302,12 @@
|
|||
"chatBtn": "Chat",
|
||||
"password": "Contraseña",
|
||||
"enterProfilePassword": "Ingresa tu contraseña para ver tus perfiles",
|
||||
"localeIt": "Italiano",
|
||||
"acknowledgedLabel": "Reconocido",
|
||||
"defaultProfileName": "Alicia",
|
||||
"versionBuilddate": "Versión: %1 Basado en %2",
|
||||
"zoomLabel": "Zoom de la interfaz (afecta principalmente el tamaño del texto y de los botones)",
|
||||
"themeLight": "Claro",
|
||||
"versionTor": "Versión %1 con tor %2",
|
||||
"localeEs": "Español",
|
||||
"networkStatusOnline": "En línea",
|
||||
"newConnectionPaneTitle": "Nueva conexión",
|
||||
"addNewItem": "Añadir un nuevo elemento a la lista",
|
||||
|
@ -335,7 +377,6 @@
|
|||
"unlock": "Desbloquear",
|
||||
"cwtchSettingsTitle": "Configuración de Cwtch",
|
||||
"settingLanguage": "Idioma",
|
||||
"localeEn": "Inglés",
|
||||
"settingInterfaceZoom": "Nivel de zoom",
|
||||
"largeTextLabel": "Grande",
|
||||
"version": "Versión %1",
|
||||
|
|
|
@ -1,14 +1,70 @@
|
|||
{
|
||||
"@@locale": "fr",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"shareProfileMenuTooltop": "Partager le profil via...",
|
||||
"shareMenuQRCode": "Afficher le QR code",
|
||||
"localePtBr": "Portugais du Brésil \/ Português do Brasil",
|
||||
"localeNl": "néerlandais \/ néerlandais",
|
||||
"experimentQRCodeDescription": "La prise en charge des QR codes permet de partager des données (telles que l'identité du profil) par des QR codes \n",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"acquiringTicketsFromServer": "Réaliser un défi anti-spam",
|
||||
"acquiredTicketsFromServer": "Défi anti-spam terminé",
|
||||
"errorDownloadDirectoryDoesNotExist": "Le partage de fichiers ne peut pas être activé car le dossier de téléchargement n'a pas été défini ou est défini sur un dossier qui n'existe pas.",
|
||||
"localeIt": "italien \/ italien",
|
||||
"localeTr": "Turc \/ Türk",
|
||||
"tooltipPinConversation": "Épingler la conversation en haut de «Conversations»",
|
||||
"tooltipUnpinConversation": "Détacher la conversation du haut de «Conversations»",
|
||||
"viewReplies": "Voir les réponses à ce message",
|
||||
"stopSharingFile": "Arrêter le partage de fichiers",
|
||||
"restartFileShare": "Démarrer le partage de fichiers",
|
||||
"replyingTo": "Répondre à %1",
|
||||
"messageNoReplies": "Il n'y a pas de réponses à ce message.",
|
||||
"manageSharedFiles": "Gérer les fichiers partagés",
|
||||
"headingReplies": "Réponses",
|
||||
"fileDownloadUnavailable": "Ce fichier semble indisponible pour le téléchargement. L'expéditeur a peut-être désactivé les téléchargements pour ce fichier.",
|
||||
"localeDe": "Allemand \/ Deutsch",
|
||||
"localeDa": "Danois \/ Dansk",
|
||||
"localePt": "Portugais \/ Portuguesa",
|
||||
"localeCy": "Gallois \/ Cymraeg",
|
||||
"localeEl": "Grec \/ Ελληνικά",
|
||||
"localeRU": "Russe \/ Русский",
|
||||
"localeLb": "Luxembourgeois \/ Lëtzebuergesch",
|
||||
"localePl": "Polonais \/ Polski",
|
||||
"localeEs": "Espagnol \/ Español",
|
||||
"localeRo": "Roumain \/ Română",
|
||||
"localeFr": "Français \/ Français",
|
||||
"localeNo": "Norvégien \/ Norsk",
|
||||
"localeEn": "Anglais \/ English",
|
||||
"settingImagePreviewsDescription": "Les images et les photos de profil seront téléchargées et prévisualisées automatiquement. Nous vous recommandons de ne pas activer cette expérience si vous utilisez Cwtch avec des contacts non fiables.",
|
||||
"tooltipSuperscript": "Exposant",
|
||||
"tooltipSubscript": "Indice",
|
||||
"tooltipStrikethrough": "Barré",
|
||||
"tooltipPreviewFormatting": "Aperçu de la mise en forme du message",
|
||||
"tooltipItalicize": "Italique",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"tooltipBoldText": "Gras",
|
||||
"tooltipBackToMessageEditing": "Retour à l'édition des messages",
|
||||
"acceptGroupBtn": "Accepter",
|
||||
"settingAndroidPowerExemptionDescription": "Android applique par défaut un profil de gestion de l'énergie \"optimisé\" aux applications, ce qui peut entraîner leur arrêt ou leur suppression. Demandez à Android d'exempter Cwtch de ce profil pour une meilleure stabilité mais une plus grande consommation d'énergie.",
|
||||
"settingsAndroidPowerReenablePopup": "Impossible de réactiver l'optimisation de la batterie à partir de Cwtch. Veuillez aller dans Android \/ Paramètres \/ Apps \/ Cwtch \/ Batterie et régler l'utilisation sur 'Optimisé'.",
|
||||
|
@ -38,12 +94,7 @@
|
|||
"encryptedProfileDescription": "Le chiffrement d'un profil à l'aide d'un mot de passe le protège des autres personnes susceptibles d'utiliser également cet appareil. Les profils chiffrés ne peuvent pas être déchiffrés, affichés ou accessibles tant que le mot de passe correct n'a pas été saisi pour les déverrouiller.",
|
||||
"notificationContentSimpleEvent": "Événement ordinaire",
|
||||
"placeholderEnterMessage": "Saisissez un message",
|
||||
"localeDa": "Danois",
|
||||
"localeCy": "Gallois",
|
||||
"conversationNotificationPolicySettingDescription": "Contrôler le comportement de notification de cette conversation",
|
||||
"localeEl": "Grec",
|
||||
"localeNo": "Norvégien",
|
||||
"localeLb": "Luxembourgeois",
|
||||
"notificationPolicySettingDescription": "Contrôle le comportement de notification d'application par défaut",
|
||||
"notificationContentSettingDescription": "Contrôle le contenu des notifications de conversation",
|
||||
"conversationNotificationPolicySettingLabel": "Politique de notification des conversations",
|
||||
|
@ -62,7 +113,6 @@
|
|||
"settingsGroupExperiments": "Expériences",
|
||||
"newMessageNotificationConversationInfo": "Nouveau message d'%1",
|
||||
"newMessageNotificationSimple": "Nouveau message",
|
||||
"localeRo": "Roumain",
|
||||
"editProfile": "Modifier le profil",
|
||||
"settingTheme": "Utilisez des thèmes clairs",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Utiliser une configuration personnalisée du service Tor (torrc)",
|
||||
|
@ -98,7 +148,6 @@
|
|||
"themeNameGhost": "Fantôme",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeColorLabel": "Thème de couleur",
|
||||
"settingImagePreviewsDescription": "Les images seront téléchargées et prévisualisées automatiquement. Veuillez noter que la prévisualisation des images peut souvent conduire à des failles de sécurité, et vous ne devriez pas activer cette expérience si vous utilisez Cwtch avec des contacts non fiables. Les images de profil sont prévues pour Cwtch 1.6.",
|
||||
"settingImagePreviews": "Aperçu des images et photos de profil",
|
||||
"settingDownloadFolder": "Dossier de téléchargement",
|
||||
"enableExperimentClickableLinks": "Activer les liens cliquables",
|
||||
|
@ -115,7 +164,6 @@
|
|||
"fieldDescriptionLabel": "Description",
|
||||
"savePeerHistoryDescription": "Détermine s'il faut ou non supprimer tout historique associé au contact.",
|
||||
"newMessagesLabel": "Nouveaux messages",
|
||||
"localeRU": "Russe",
|
||||
"copyServerKeys": "Copier les clés",
|
||||
"verfiyResumeButton": "Vérifier\/reprendre",
|
||||
"fileSavedTo": "Enregistré dans",
|
||||
|
@ -184,7 +232,6 @@
|
|||
"settingUIColumnSingle": "Simple",
|
||||
"settingUIColumnLandscape": "Colonnes de l'interface utilisateur en mode paysage",
|
||||
"settingUIColumnPortrait": "Colonnes de l'interface utilisateur en mode portrait",
|
||||
"localePl": "Polonais",
|
||||
"tooltipReplyToThisMessage": "Répondre à ce message",
|
||||
"tooltipRemoveThisQuotedMessage": "Supprimer le message cité.",
|
||||
"deleteProfileConfirmBtn": "Supprimer vraiment le profil ?",
|
||||
|
@ -196,7 +243,6 @@
|
|||
"deleteBtn": "Effacer",
|
||||
"acknowledgedLabel": "Accusé de réception",
|
||||
"zoomLabel": "Zoom de l'interface (affecte principalement la taille du texte et des boutons)",
|
||||
"localeIt": "Italien",
|
||||
"versionTor": "Version %1 avec tor %2",
|
||||
"version": "Version %1",
|
||||
"builddate": "Construit le : %2",
|
||||
|
@ -204,7 +250,6 @@
|
|||
"tooltipAcceptContactRequest": "Acceptez cette demande de contact.",
|
||||
"tooltipRejectContactRequest": "Refuser cette demande de contact",
|
||||
"addNewItem": "Ajouter un nouvel élément à la liste",
|
||||
"localeEs": "Espagnol",
|
||||
"todoPlaceholder": "À faire...",
|
||||
"pasteAddressToAddContact": "Collez une adresse cwtch, une invitation ou un ensemble de clés ici pour ajouter une nouvelle conversation",
|
||||
"addListItem": "Ajouter un nouvel élément de liste",
|
||||
|
@ -249,10 +294,6 @@
|
|||
"yourServers": "Vos serveurs",
|
||||
"unlock": "Déverrouiller",
|
||||
"settingLanguage": "Langue",
|
||||
"localeEn": "Anglais",
|
||||
"localeFr": "Français",
|
||||
"localePt": "Portugais",
|
||||
"localeDe": "Allemand",
|
||||
"settingInterfaceZoom": "Niveau de zoom",
|
||||
"themeLight": "Clair",
|
||||
"themeDark": "Sombre",
|
||||
|
|
|
@ -1,14 +1,70 @@
|
|||
{
|
||||
"@@locale": "it",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"tooltipPinConversation": "Aggiungi la conversazione in cima alla lista \"Conversazioni\"",
|
||||
"tooltipUnpinConversation": "Rimuovi la conversazione dalla cima della lista \"Conversazioni\"",
|
||||
"errorDownloadDirectoryDoesNotExist": "La condivisione file non può essere abilitata perché la destinazione dei download non è stata impostata o è impostata su una cartella che non esiste.",
|
||||
"acquiringTicketsFromServer": "Esecuzione dell'operazione antispam",
|
||||
"acquiredTicketsFromServer": "Operazione antispam completata",
|
||||
"shareProfileMenuTooltop": "Condividi il profilo tramite...",
|
||||
"shareMenuQRCode": "Mostra il codice QR",
|
||||
"enableExperimentQRCode": "Codici QR",
|
||||
"experimentQRCodeDescription": "Il supporto del codice QR consente la condivisione di dati (come l'identità del profilo) tramite codici QR",
|
||||
"localeTr": "Turco \/ Türk",
|
||||
"localeIt": "Italiano \/ Italiano",
|
||||
"fileDownloadUnavailable": "Questo file non sembra disponibile per il download. Il mittente potrebbe aver disabilitato i download per questo file.",
|
||||
"headingReplies": "Risposte",
|
||||
"manageSharedFiles": "Gestisci file condivisi",
|
||||
"messageNoReplies": "Non ci sono risposte a questo messaggio.",
|
||||
"replyingTo": "Risposta a %1",
|
||||
"restartFileShare": "Avvia la condivisione del file",
|
||||
"stopSharingFile": "Interrompi la condivisione del file",
|
||||
"viewReplies": "Visualizza le risposte a questo messaggio",
|
||||
"localeDe": "Tedesco \/ Deutsch",
|
||||
"settingImagePreviewsDescription": "Le immagini e le immagini del profilo verranno scaricate e visualizzate in anteprima automaticamente. Ti consigliamo di non abilitare questo esperimento se usi Cwtch con contatti non attendibili.",
|
||||
"localeNo": "Norvegese \/ Norsk",
|
||||
"localeCy": "Gallese \/ Cymraeg",
|
||||
"localeFr": "Francese \/ Français",
|
||||
"localePl": "Polacco \/ Polski",
|
||||
"localePt": "Portoghese \/ Portuguesa",
|
||||
"localeDa": "Danese \/ Dansk",
|
||||
"localeEn": "Inglese \/ English",
|
||||
"localeRo": "Rumeno \/ Română",
|
||||
"localeEl": "Greco \/ Ελληνικά",
|
||||
"localeLb": "Lussemburghese \/ Lëtzebuergesch",
|
||||
"localeEs": "Spagnolo \/ Español",
|
||||
"localeRU": "Russo \/ Русский",
|
||||
"tooltipCode": "Codice \/ Monospazio",
|
||||
"tooltipPreviewFormatting": "Anteprima della formattazione del messaggio",
|
||||
"tooltipStrikethrough": "Barrato",
|
||||
"tooltipSubscript": "Pedice",
|
||||
"tooltipSuperscript": "Apice",
|
||||
"tooltipItalicize": "Corsivo",
|
||||
"tooltipBackToMessageEditing": "Torna a Modifica del messaggio",
|
||||
"tooltipBoldText": "Grassetto",
|
||||
"settingsAndroidPowerReenablePopup": "Impossibile riattivare l'ottimizzazione della batteria dall'interno di Cwtch. Vai su Android \/ Impostazioni \/ Apps \/ Cwtch \/ Informazioni App \/ (Utilizzo) Batteria e imposta su 'Ottimizzato'.",
|
||||
"puzzleGameBtn": "Gioco di puzzle",
|
||||
"editProfileTitle": "Modifica il profilo",
|
||||
|
@ -41,8 +97,6 @@
|
|||
"clickableLinksCopy": "Copiare l'URL",
|
||||
"clickableLinkOpen": "Aprire l'URL",
|
||||
"formattingExperiment": "Formattazione dei messaggi",
|
||||
"localeDa": "Danese",
|
||||
"localeCy": "Gallese",
|
||||
"settingTheme": "Usa Temi Leggeri",
|
||||
"editProfile": "Modifica il profilo",
|
||||
"labelTorNetwork": "Rete tor",
|
||||
|
@ -89,10 +143,6 @@
|
|||
"settingsGroupExperiments": "Esperimenti",
|
||||
"conversationNotificationPolicySettingLabel": "Criteri di notifica delle conversazioni",
|
||||
"conversationNotificationPolicySettingDescription": "Controlla il comportamento delle notifiche per questa conversazione",
|
||||
"localeRo": "Rumeno",
|
||||
"localeLb": "Lussemburghese",
|
||||
"localeNo": "Norvegese",
|
||||
"localeEl": "Greco",
|
||||
"serverNotSynced": "Sincronizzazione Nuovi Messaggi (L'operazione può richiedere del tempo)...",
|
||||
"blockUnknownLabel": "Blocca Contatti Sconosciuti",
|
||||
"addPeer": "Aggiungi Contatto",
|
||||
|
@ -155,7 +205,6 @@
|
|||
"serverConnectionsLabel": "Connessione",
|
||||
"experimentClickableLinksDescription": "L'esperimento dei link cliccabili permette di cliccare sugli URL condivisi nei messaggi",
|
||||
"settingImagePreviews": "Anteprime delle immagini e immagini del profilo",
|
||||
"settingImagePreviewsDescription": "Le immagini verranno scaricate e visualizzate in anteprima automaticamente. Tieni presente che le anteprime delle immagini possono spesso portare a vulnerabilità di sicurezza e non dovresti abilitare questo esperimento se usi Cwtch con contatti non attendibili. Le immagini del profilo sono previste per Cwtch 1.6.",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameWitch": "Strega",
|
||||
"themeNameVampire": "Vampiro",
|
||||
|
@ -180,7 +229,6 @@
|
|||
"titleManageProfilesShort": "Profili",
|
||||
"tooltipReplyToThisMessage": "Rispondi a questo messaggio",
|
||||
"tooltipRemoveThisQuotedMessage": "Rimuovi il messaggio citato.",
|
||||
"localePl": "Polacco",
|
||||
"settingUIColumnPortrait": "Colonne dell'interfaccia utente in modalità verticale",
|
||||
"settingUIColumnLandscape": "Colonne dell'interfaccia utente in modalità orizzontale",
|
||||
"settingUIColumnSingle": "Singola",
|
||||
|
@ -219,7 +267,6 @@
|
|||
"fileCheckingStatus": "Controllo dello stato del download",
|
||||
"verfiyResumeButton": "Verifica\/riprendi",
|
||||
"copyServerKeys": "Copia chiavi",
|
||||
"localeRU": "Russo",
|
||||
"messageFileOffered": "Il contatto offre l'invio di un file",
|
||||
"tooltipSendFile": "Invia file",
|
||||
"settingFileSharing": "Condivisione file",
|
||||
|
@ -264,12 +311,6 @@
|
|||
"versionTor": "Versione %1 con tor %2",
|
||||
"version": "Versione %1",
|
||||
"builddate": "Costruito il: %2",
|
||||
"localeEn": "Inglese",
|
||||
"localeIt": "Italiano",
|
||||
"localeEs": "Spagnolo",
|
||||
"localeDe": "Tedesco",
|
||||
"localePt": "Portoghese",
|
||||
"localeFr": "Francese",
|
||||
"serverLabel": "Server",
|
||||
"createGroupBtn": "Crea",
|
||||
"createGroupTab": "Crea un gruppo",
|
||||
|
|
|
@ -0,0 +1,384 @@
|
|||
{
|
||||
"@@locale": "ko",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd (블러드웨드) 어시스턴트",
|
||||
"blodeuweddDescription": "Blodeuwedd (불러드웨드) 어시스턴트는 로컬에서 호스팅되는 언어 모델을 통한 대화 내용 요약 및 메시지 번역과 같은 Cwtch에 새로운 기능을 추가합니다.",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddTranslate": "메시지 번역",
|
||||
"blodeuweddProcessing": "Blodeuwedd 처리 중...",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"labelACNCircuitInfo": "ACN 회로 정보",
|
||||
"clickableLinksWarning": "이 URL을 열면 Cwtch 외부에서 응용 프로그램이 시작되고 메타데이터가 노출되거나 Cwtch의 보안이 손상될 수 있습니다. 신뢰할 수 있는 사용자의 URL만 엽니다. 계속하시겠습니까?",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "이 기능을 사용하려면 설정에서 그룹 실험을 사용하도록 설정해야 합니다.",
|
||||
"loadingCwtch": "Cwtch 로드 중...",
|
||||
"msgConfirmSend": "보내시겠습니까?",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "사용자 지정 Tor 서비스 구성(torrc) 사용",
|
||||
"tooltipSelectACustomProfileImage": "사용자 정의 프로필 이미지 선택",
|
||||
"exportProfileTooltip": "이 프로필을 암호화된 파일에 백업하십시오. 암호화된 파일을 다른 Cwtch 앱으로 가져올 수 있습니다.",
|
||||
"settingAndroidPowerExemption": "안드로이드는 배터리 최적화를 무시합니다.",
|
||||
"deleteServerSuccess": "서버를 성공적으로 삭제했습니다.",
|
||||
"localeRU": "러시아어 \/ Русский",
|
||||
"newMessagesLabel": "새로운 메시지",
|
||||
"themeNameCwtch": "Cwtch (크치)",
|
||||
"torSettingsErrorSettingPort": "포트 번호는 1에서 65535 사이여야 합니다.",
|
||||
"labelTorNetwork": "토르 네트워크",
|
||||
"notificationPolicyOptIn": "옵트인",
|
||||
"conversationNotificationPolicyOptIn": "옵트인",
|
||||
"settingGroupBehaviour": "행동",
|
||||
"settingsGroupExperiments": "실험",
|
||||
"importProfileTooltip": "암호화된 Cwtch 백업을 사용하여 다른 Cwtch 인스턴스에서 생성된 프로필을 가져옵니다.",
|
||||
"conversationNotificationPolicyNever": "절대",
|
||||
"settingAndroidPowerExemptionDescription": "선택 사항: 최적화된 전원 관리에서 Cwtch를 제외하도록 Android에 요청합니다. 이것은 더 많은 배터리 사용 비용으로 더 나은 안정성을 가져올 것입니다.",
|
||||
"tooltipPreviewFormatting": "메시지 형식 미리 보기",
|
||||
"formattingExperiment": "메시지 형식",
|
||||
"settingsAndroidPowerReenablePopup": "Cwtch 내에서 배터리 최적화를 다시 활성화할 수 없습니다. Android \/ 설정 \/ 앱 \/ Cwtch \/ 배터리로 이동하여 사용량을 '최적화'로 설정하십시오.",
|
||||
"tooltipBackToMessageEditing": "메시지 편집으로 돌아가기",
|
||||
"tooltipSubscript": "아래 첨자",
|
||||
"tooltipSuperscript": "위 첨자",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"notificationContentContactInfo": "대화 정보",
|
||||
"newMessageNotificationConversationInfo": "%1의 새로운 메시지",
|
||||
"localePl": "폴란드어 \/ Polski",
|
||||
"addContact": "Add contact",
|
||||
"addContactConfirm": "Add contact %1",
|
||||
"downloadFileButton": "다운로드",
|
||||
"labelFilesize": "크기",
|
||||
"messageFileSent": "파일을 보냈습니다.",
|
||||
"tooltipSendFile": "파일 보내기",
|
||||
"addServerTitle": "서버 추가",
|
||||
"serverAddress": "서버 주소",
|
||||
"serverAutostartLabel": "자동 시작",
|
||||
"serversManagerTitleLong": "호스팅하는 서버",
|
||||
"serversManagerTitleShort": "서버",
|
||||
"addServerTooltip": "새 서버 추가",
|
||||
"settingServers": "서버 호스팅",
|
||||
"copyAddress": "주소 복사",
|
||||
"importLocalServerButton": "%1 가져오기",
|
||||
"manageKnownServersButton": "서버 관리",
|
||||
"manageKnownServersLong": "알려진 서버 관리",
|
||||
"serverMetricsLabel": "서버 지표",
|
||||
"manageKnownServersShort": "서버",
|
||||
"serverConnectionsLabel": "연결",
|
||||
"themeNamePumpkin": "호박",
|
||||
"themeNameNeon1": "네온1",
|
||||
"themeNameNeon2": "네온2",
|
||||
"themeColorLabel": "색상 테마",
|
||||
"btnSendFile": "파일 보내기",
|
||||
"msgFileTooBig": "파일 크기는 10GB를 초과할 수 없습니다.",
|
||||
"localeRo": "루마니아어 \/ Română",
|
||||
"localeLb": "룩셈부르크어 \/ Lëtzebuergesch",
|
||||
"localeNo": "노르웨이어 \/ Norsk",
|
||||
"localeEl": "그리스어 \/ Ελληνικά",
|
||||
"localeDa": "덴마크어 \/ Dansk",
|
||||
"localeCy": "웨일스어 \/ Cymraeg",
|
||||
"newMessageNotificationSimple": "새로운 메시지",
|
||||
"exportProfile": "프로필 내보내기",
|
||||
"importProfile": "프로필 가져오기",
|
||||
"failedToImportProfile": "프로필 가져오기 오류",
|
||||
"successfullyImportedProfile": "프로필을 성공적으로 가져왔습니다: %profile",
|
||||
"shuttingDownApp": "종료...",
|
||||
"clickableLinkError": "URL을 여는 동안 오류가 발생했습니다.",
|
||||
"clickableLinkOpen": "URL 열기",
|
||||
"clickableLinksCopy": "URL 복사",
|
||||
"okButton": "확인",
|
||||
"manageSharedFiles": "공유 파일 관리",
|
||||
"stopSharingFile": "파일 공유 중지",
|
||||
"restartFileShare": "파일 공유 시작",
|
||||
"messageNoReplies": "이 메시지에 대한 답장이 없습니다.",
|
||||
"headingReplies": "답장",
|
||||
"viewReplies": "이 메시지에 대한 답장 보기",
|
||||
"fileDownloadUnavailable": "이 파일은 다운로드할 수 없는 것 같습니다. 보낸 사람이 이 파일에 대한 다운로드를 비활성화했을 가망이 있습니다.",
|
||||
"tooltipUnpinConversation": "'대화' 상단에서 고정 해제",
|
||||
"tooltipPinConversation": "'대화' 상단에 고정",
|
||||
"localeTr": "터키어 \/ Türk",
|
||||
"errorDownloadDirectoryDoesNotExist": "다운로드 폴더가 설정되지 않았거나 존재하지 않는 폴더로 설정되어 있으므로 파일 공유를 사용할 수 없습니다.",
|
||||
"acquiringTicketsFromServer": "안티스팸 챌린지 수행",
|
||||
"acquiredTicketsFromServer": "안티스팸 챌린지 완료",
|
||||
"shareProfileMenuTooltop": "다음을 통해 프로필 공유...",
|
||||
"shareMenuQRCode": "QR 코드 표시",
|
||||
"enableExperimentQRCode": "QR 코드",
|
||||
"experimentQRCodeDescription": "QR 코드 지원으로 데이터(예: 프로필 ID)를 공유할 수 있습니다.",
|
||||
"localeSk": "슬로바키아어 \/ Slovák",
|
||||
"localePtBr": "브라질 포르투갈어 \/ Português do Brasil",
|
||||
"localeNl": "네덜란드어 \/ Dutch",
|
||||
"profileAutostartDescription": "시작 시 프로필이 자동으로 시작되는지 여부를 제어합니다.",
|
||||
"profileAutostartLabel": "자동 시작",
|
||||
"profileEnabled": "허락",
|
||||
"profileEnabledDescription": "프로필 시각 또는 중지",
|
||||
"replyingTo": "%1에 회신",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBoldText": "Bold",
|
||||
"messageFormattingDescription": "Enable rich text formatting in displayed messages e.g. **bold** and *italic*",
|
||||
"notificationContentSimpleEvent": "Plain Event",
|
||||
"conversationNotificationPolicySettingDescription": "Control notification behaviour for this conversation",
|
||||
"conversationNotificationPolicySettingLabel": "Conversation Notification Policy",
|
||||
"settingsGroupAppearance": "Appearance",
|
||||
"notificationContentSettingDescription": "Controls the contents of conversation notifications",
|
||||
"notificationPolicySettingDescription": "Controls the default application notification behaviour",
|
||||
"notificationContentSettingLabel": "Notification Content",
|
||||
"notificationPolicySettingLabel": "Notification Policy",
|
||||
"conversationNotificationPolicyDefault": "Default",
|
||||
"notificationPolicyDefaultAll": "Default All",
|
||||
"notificationPolicyMute": "Mute",
|
||||
"torSettingsEnabledCacheDescription": "Cache the current downloaded Tor consensus to reuse next time Cwtch is opened. This will allow Tor to start faster. When disabled, Cwtch will purge cached data on start up.",
|
||||
"torSettingsEnableCache": "Cache Tor Consensus",
|
||||
"descriptionACNCircuitInfo": "In depth information about the path that the anonymous communication network is using to connect to this conversation.",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Browse to select a different default folder for downloaded files.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "When files are downloaded automatically (e.g. image files, when image previews are enabled) a default location to download the files to is needed.",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
|
||||
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
|
||||
"torSettingsCustomControlPort": "Custom Control Port",
|
||||
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
|
||||
"torSettingsCustomSocksPort": "Custom SOCKS Port",
|
||||
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
|
||||
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
|
||||
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
|
||||
"storageMigrationModalMessage": "Migrating profiles to new storage format. This could take a few minutes...",
|
||||
"themeNameMidnight": "Midnight",
|
||||
"themeNameMermaid": "Mermaid",
|
||||
"themeNameGhost": "Ghost",
|
||||
"themeNameVampire": "Vampire",
|
||||
"themeNameWitch": "Witch",
|
||||
"settingDownloadFolder": "Download Folder",
|
||||
"settingImagePreviewsDescription": "Images and Profile Pictures will be downloaded and previewed automatically. We recommend that you do not enable this Experiment if you use Cwtch with untrusted contacts.",
|
||||
"settingImagePreviews": "Image Previews and Profile Pictures",
|
||||
"experimentClickableLinksDescription": "The clickable links experiment allows you to click on URLs shared in messages",
|
||||
"enableExperimentClickableLinks": "Enable Clickable Links",
|
||||
"serverTotalMessagesLabel": "Total Messages",
|
||||
"displayNameTooltip": "Please enter a display name",
|
||||
"fieldDescriptionLabel": "Description",
|
||||
"groupsOnThisServerLabel": "Groups I am in hosted on this server",
|
||||
"importLocalServerSelectText": "Select Local Server",
|
||||
"importLocalServerLabel": "Import a locally hosted server",
|
||||
"copyServerKeys": "Copy keys",
|
||||
"verfiyResumeButton": "Verify\/resume",
|
||||
"fileCheckingStatus": "Checking download status",
|
||||
"fileInterrupted": "Interrupted",
|
||||
"fileSavedTo": "Saved to",
|
||||
"encryptedServerDescription": "Encrypting a server with a password protects it from other people who may also use this device. Encrypted servers cannot be decrypted, displayed or accessed until the correct password is entered to unlock them.",
|
||||
"plainServerDescription": "We recommend that you protect your Cwtch servers with a password. If you do not set a password on this server then anyone who has access to this device may be able to access information about this server, including sensitive cryptographic keys.",
|
||||
"deleteServerConfirmBtn": "Really delete server",
|
||||
"enterCurrentPasswordForDeleteServer": "Please enter current password to delete this server",
|
||||
"settingServersDescription": "The hosting servers experiment enables hosting and managing Cwtch servers",
|
||||
"enterServerPassword": "Enter password to unlock server",
|
||||
"unlockProfileTip": "Please create or unlock a profile to begin!",
|
||||
"unlockServerTip": "Please create or unlock a server to begin!",
|
||||
"saveServerButton": "Save Server",
|
||||
"serverAutostartDescription": "Controls if the application will automatically launch the server on start",
|
||||
"serverEnabledDescription": "Start or stop the server",
|
||||
"serverEnabled": "Server Enabled",
|
||||
"serverDescriptionDescription": "Your description of the server for personal management use only, will never be shared",
|
||||
"serverDescriptionLabel": "Server Description",
|
||||
"editServerTitle": "Edit Server",
|
||||
"titleManageProfilesShort": "Profiles",
|
||||
"descriptionFileSharing": "The file sharing experiment allows you to send and receive files from Cwtch contacts and groups. Note that sharing a file with a group will result in members of that group connecting with you directly over Cwtch to download it.",
|
||||
"settingFileSharing": "File Sharing",
|
||||
"messageFileOffered": "Contact is offering to send you a file",
|
||||
"messageEnableFileSharing": "Enable the file sharing experiment to view this message.",
|
||||
"labelFilename": "Filename",
|
||||
"openFolderButton": "Open Folder",
|
||||
"retrievingManifestMessage": "Retrieving file information...",
|
||||
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for streaming or presenting with, for example, hiding profile and contact addresses",
|
||||
"streamerModeLabel": "Streamer\/Presentation Mode",
|
||||
"archiveConversation": "Archive this Conversation",
|
||||
"blockUnknownConnectionsEnabledDescription": "Connections from unknown contacts are blocked. You can change this in Settings",
|
||||
"showMessageButton": "Show Message",
|
||||
"blockedMessageMessage": "This message is from a profile you have blocked.",
|
||||
"placeholderEnterMessage": "Type a message...",
|
||||
"plainProfileDescription": "We recommend that you protect your Cwtch profiles with a password. If you do not set a password on this profile then anyone who has access to this device may be able to access information about this profile, including contacts, messages and sensitive cryptographic keys.",
|
||||
"encryptedProfileDescription": "Encrypting a profile with a password protects it from other people who may also use this device. Encrypted profiles cannot be decrypted, displayed or accessed until the correct password is entered to unlock them.",
|
||||
"contactGoto": "Go to conversation with %1",
|
||||
"settingUIColumnOptionSame": "Same as portrait mode setting",
|
||||
"settingUIColumnDouble14Ratio": "Double (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Double (1:2)",
|
||||
"settingUIColumnSingle": "Single",
|
||||
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
|
||||
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
|
||||
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
|
||||
"tooltipReplyToThisMessage": "Reply to this message",
|
||||
"tooltipRejectContactRequest": "Reject this contact request",
|
||||
"tooltipAcceptContactRequest": "Accept this contact request.",
|
||||
"notificationNewMessageFromGroup": "New message in a group!",
|
||||
"notificationNewMessageFromPeer": "New message from a contact!",
|
||||
"tooltipHidePassword": "Hide Password",
|
||||
"tooltipShowPassword": "Show Password",
|
||||
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
|
||||
"shutdownCwtchAction": "Shutdown Cwtch",
|
||||
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
|
||||
"shutdownCwtchDialogTitle": "Shutdown Cwtch?",
|
||||
"shutdownCwtchTooltip": "Shutdown Cwtch",
|
||||
"malformedMessage": "Malformed message",
|
||||
"profileDeleteSuccess": "Successfully deleted profile",
|
||||
"debugLog": "Turn on console debug logging",
|
||||
"torNetworkStatus": "Tor network status",
|
||||
"addContactFirst": "Add or pick a contact to begin chatting.",
|
||||
"createProfileToBegin": "Please create or unlock a profile to begin",
|
||||
"nickChangeSuccess": "Profile nickname changed successfully",
|
||||
"addServerFirst": "You need to add a server before you can create a group",
|
||||
"deleteProfileSuccess": "Successfully deleted profile",
|
||||
"sendInvite": "Send a contact or group invite",
|
||||
"sendMessage": "Send Message",
|
||||
"cancel": "Cancel",
|
||||
"resetTor": "Reset",
|
||||
"torStatus": "Tor Status",
|
||||
"torVersion": "Tor Version",
|
||||
"sendAnInvitation": "You sent an invitation for: ",
|
||||
"contactSuggestion": "This is a contact suggestion for: ",
|
||||
"rejected": "Rejected!",
|
||||
"accepted": "Accepted!",
|
||||
"chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.",
|
||||
"newPassword": "New Password",
|
||||
"yesLeave": "Yes, Leave This Conversation",
|
||||
"reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.",
|
||||
"leaveConversation": "Leave This Conversation",
|
||||
"inviteToGroup": "You have been invited to join a group:",
|
||||
"titleManageServers": "Manage Servers",
|
||||
"successfullAddedContact": "Successfully added ",
|
||||
"descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.",
|
||||
"descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.",
|
||||
"descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.",
|
||||
"titleManageProfiles": "Manage Cwtch Profiles",
|
||||
"tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.",
|
||||
"titleManageContacts": "Conversations",
|
||||
"tooltipAddContact": "Add a new contact or conversation",
|
||||
"tooltipOpenSettings": "Open the settings pane",
|
||||
"contactAlreadyExists": "Contact Already Exists",
|
||||
"invalidImportString": "Invalid import string",
|
||||
"conversationSettings": "Conversation Settings",
|
||||
"enterCurrentPasswordForDelete": "Please enter current password to delete this profile.",
|
||||
"enableGroups": "Enable Group Chat",
|
||||
"localeIt": "Italian \/ Italiano",
|
||||
"localeEs": "Spanish \/ Español",
|
||||
"todoPlaceholder": "Todo...",
|
||||
"addNewItem": "Add a new item to the list",
|
||||
"addListItem": "Add a New List Item",
|
||||
"newConnectionPaneTitle": "New Connection",
|
||||
"networkStatusOnline": "Online",
|
||||
"networkStatusConnecting": "Connecting to network and contacts...",
|
||||
"networkStatusAttemptingTor": "Attempting to connect to Tor network",
|
||||
"networkStatusDisconnected": "Disconnected from the internet, check your connection",
|
||||
"viewGroupMembershipTooltip": "View Group Membership",
|
||||
"loadingTor": "Loading tor...",
|
||||
"smallTextLabel": "Small",
|
||||
"defaultScalingText": "Default size text (scale factor:",
|
||||
"builddate": "Built on: %2",
|
||||
"version": "Version %1",
|
||||
"versionTor": "Version %1 with tor %2",
|
||||
"experimentsEnabled": "Enable Experiments",
|
||||
"themeDark": "Dark",
|
||||
"themeLight": "Light",
|
||||
"settingTheme": "Use Light Themes",
|
||||
"largeTextLabel": "Large",
|
||||
"settingInterfaceZoom": "Zoom level",
|
||||
"localeDe": "German \/ Deutsch",
|
||||
"localePt": "Portuguese \/ Portuguesa",
|
||||
"localeFr": "French \/ Français",
|
||||
"localeEn": "English \/ English",
|
||||
"settingLanguage": "Language",
|
||||
"blockUnknownLabel": "Block Unknown Contacts",
|
||||
"zoomLabel": "Interface zoom (mostly affects text and button sizes)",
|
||||
"versionBuilddate": "Version: %1 Built on: %2",
|
||||
"cwtchSettingsTitle": "Cwtch Settings",
|
||||
"unlock": "Unlock",
|
||||
"yourServers": "Your Servers",
|
||||
"yourProfiles": "Your Profiles",
|
||||
"error0ProfilesLoadedForPassword": "0 profiles loaded with that password",
|
||||
"password": "Password",
|
||||
"enterProfilePassword": "Enter a password to view your profiles",
|
||||
"addNewProfileBtn": "Add new profile",
|
||||
"deleteConfirmText": "DELETE",
|
||||
"deleteProfileConfirmBtn": "Really Delete Profile",
|
||||
"deleteConfirmLabel": "Type DELETE to confirm",
|
||||
"deleteProfileBtn": "Delete Profile",
|
||||
"passwordChangeError": "Error changing password: Supplied password rejected",
|
||||
"passwordErrorMatch": "Passwords do not match",
|
||||
"saveProfileBtn": "Save Profile",
|
||||
"createProfileBtn": "Create Profile",
|
||||
"passwordErrorEmpty": "Password cannot be empty",
|
||||
"password2Label": "Reenter password",
|
||||
"password1Label": "Password",
|
||||
"currentPasswordLabel": "Current Password",
|
||||
"yourDisplayName": "Your Display Name",
|
||||
"profileOnionLabel": "Send this address to contacts you want to connect with",
|
||||
"noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted",
|
||||
"radioNoPassword": "Unencrypted (No password)",
|
||||
"radioUsePassword": "Password",
|
||||
"editProfile": "Edit Profile",
|
||||
"newProfile": "New Profile",
|
||||
"defaultProfileName": "Alice",
|
||||
"profileName": "Display name",
|
||||
"editProfileTitle": "Edit Profile",
|
||||
"addProfileTitle": "Add new profile",
|
||||
"deleteBtn": "Delete",
|
||||
"unblockBtn": "Unblock Contact",
|
||||
"dontSavePeerHistory": "Delete History",
|
||||
"savePeerHistoryDescription": "Determines whether to delete any history associated with the contact.",
|
||||
"savePeerHistory": "Save History",
|
||||
"blockBtn": "Block Contact",
|
||||
"saveBtn": "Save",
|
||||
"displayNameLabel": "Display Name",
|
||||
"copiedToClipboardNotification": "Copied to Clipboard",
|
||||
"addressLabel": "Address",
|
||||
"puzzleGameBtn": "Puzzle Game",
|
||||
"bulletinsBtn": "Bulletins",
|
||||
"listsBtn": "Lists",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Reject",
|
||||
"acceptGroupBtn": "Accept",
|
||||
"acceptGroupInviteLabel": "Do you want to accept the invitation to",
|
||||
"newGroupBtn": "Create new group",
|
||||
"copyBtn": "Copy",
|
||||
"peerOfflineMessage": "Contact is offline, messages can't be delivered right now",
|
||||
"peerBlockedMessage": "Contact is blocked",
|
||||
"pendingLabel": "Pending",
|
||||
"acknowledgedLabel": "Acknowledged",
|
||||
"couldNotSendMsgError": "Could not send this message",
|
||||
"dmTooltip": "Click to DM",
|
||||
"membershipDescription": "Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.",
|
||||
"addListItemBtn": "Add Item",
|
||||
"peerNotOnline": "Contact is offline. Applications cannot be used right now.",
|
||||
"searchList": "Search List",
|
||||
"update": "Update",
|
||||
"inviteBtn": "Invite",
|
||||
"inviteToGroupLabel": "Invite to group",
|
||||
"groupNameLabel": "Group Name",
|
||||
"viewServerInfo": "Server Info",
|
||||
"serverNotSynced": "Syncing New Messages (This can take some time)...",
|
||||
"serverSynced": "Synced",
|
||||
"serverConnectivityDisconnected": "Server Disconnected",
|
||||
"serverConnectivityConnected": "Server Connected",
|
||||
"serverInfo": "Server Information",
|
||||
"invitationLabel": "Invitation",
|
||||
"serverLabel": "Server",
|
||||
"search": "Search...",
|
||||
"blocked": "Blocked",
|
||||
"pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation",
|
||||
"titlePlaceholder": "title...",
|
||||
"postNewBulletinLabel": "Post new bulletin",
|
||||
"newBulletinLabel": "New Bulletin",
|
||||
"joinGroup": "Join group",
|
||||
"createGroup": "Create group",
|
||||
"addPeer": "Add Contact",
|
||||
"groupAddr": "Address",
|
||||
"invitation": "Invitation",
|
||||
"server": "Server",
|
||||
"peerName": "Name",
|
||||
"peerAddress": "Address",
|
||||
"joinGroupTab": "Join a group",
|
||||
"createGroupTab": "Create a group",
|
||||
"addPeerTab": "Add a contact",
|
||||
"createGroupBtn": "Create",
|
||||
"defaultGroupName": "Awesome Group",
|
||||
"createGroupTitle": "Create Group"
|
||||
}
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "lb",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Tierkesch \/ Türk",
|
||||
"localeIt": "Italienesch",
|
||||
"localeEn": "Englesch \/ English",
|
||||
"localeFr": "Franséisch \/ Français",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Däitsch \/ Deutsch",
|
||||
"localeLb": "Lëtzebuergesch",
|
||||
"localeNo": "Norwegesch",
|
||||
"localeEl": "Griichesch",
|
||||
"localePl": "Polish \/ Polski",
|
||||
"localeRo": "Rumänesch",
|
||||
"localeRU": "Russesch",
|
||||
"localeEs": "Spuenesch",
|
||||
"localeDa": "Dänesch",
|
||||
"localePt": "Portugisesch",
|
||||
"localeCy": "Waliser",
|
||||
"settingImagePreviewsDescription": "Images and Profile Pictures will be downloaded and previewed automatically. We recommend that you do not enable this Experiment if you use Cwtch with untrusted contacts.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -33,8 +89,6 @@
|
|||
"titleManageServers": "Server managen",
|
||||
"titleManageProfiles": "Meng Profiller managen",
|
||||
"titleManageContacts": "Konversatiounen",
|
||||
"localeIt": "Italienesch",
|
||||
"localeEs": "Spuenesch",
|
||||
"todoPlaceholder": "Todo...",
|
||||
"networkStatusOnline": "Online",
|
||||
"smallTextLabel": "Kleng",
|
||||
|
@ -45,10 +99,6 @@
|
|||
"largeTextLabel": "Grouss",
|
||||
"themeDark": "Donkel",
|
||||
"themeLight": "Hell",
|
||||
"localeDe": "Däitsch",
|
||||
"localePt": "Portugisesch",
|
||||
"localeFr": "Franséisch",
|
||||
"localeEn": "Englesch",
|
||||
"settingLanguage": "Sprooch",
|
||||
"versionBuilddate": "Versioun: %1 Opgebaut op: %2",
|
||||
"cwtchSettingsTitle": "Cwtch Astellungen",
|
||||
|
@ -101,7 +151,6 @@
|
|||
"inviteBtn": "Alueden",
|
||||
"groupNameLabel": "Gruppennumm",
|
||||
"viewServerInfo": "Server Info",
|
||||
"localeRU": "Russesch",
|
||||
"settingDownloadFolder": "Download Dossier",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameWitch": "Witch",
|
||||
|
@ -112,8 +161,6 @@
|
|||
"themeNameMidnight": "Midnight",
|
||||
"themeNameNeon1": "Neon 1",
|
||||
"themeNameNeon2": "Neon 2",
|
||||
"localeCy": "Waliser",
|
||||
"localeDa": "Dänesch",
|
||||
"serverSynced": "Synchroniséiert",
|
||||
"serverConnectivityDisconnected": "Server getrennt",
|
||||
"serverConnectivityConnected": "Server verbonnen",
|
||||
|
@ -173,10 +220,6 @@
|
|||
"notificationContentContactInfo": "Konversatiouns Informatiounen",
|
||||
"newMessageNotificationSimple": "Neie Message",
|
||||
"newMessageNotificationConversationInfo": "Neie Message vun %1",
|
||||
"localeRo": "Rumänesch",
|
||||
"localeLb": "Lëtzebuergesch",
|
||||
"localeNo": "Norwegesch",
|
||||
"localeEl": "Griichesch",
|
||||
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
|
||||
"torSettingsCustomSocksPort": "Custom SOCKS Port",
|
||||
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
|
||||
|
@ -188,7 +231,6 @@
|
|||
"storageMigrationModalMessage": "Migrating profiles to new storage format. This could take a few minutes...",
|
||||
"loadingCwtch": "Loading Cwtch...",
|
||||
"themeColorLabel": "Color Theme",
|
||||
"settingImagePreviewsDescription": "Images will be downloaded and previewed automatically. Please note that image previews can often lead to security vulnerabilities, and you should not enable this Experiment if you use Cwtch with untrusted contacts. Profile pictures are planned for Cwtch 1.6.",
|
||||
"settingImagePreviews": "Image Previews and Profile Pictures",
|
||||
"experimentClickableLinksDescription": "The clickable links experiment allows you to click on URLs shared in messages",
|
||||
"enableExperimentClickableLinks": "Enable Clickable Links",
|
||||
|
@ -264,7 +306,6 @@
|
|||
"settingUIColumnSingle": "Single",
|
||||
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
|
||||
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
|
||||
"localePl": "Polish",
|
||||
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
|
||||
"tooltipReplyToThisMessage": "Reply to this message",
|
||||
"tooltipRejectContactRequest": "Reject this contact request",
|
||||
|
|
|
@ -0,0 +1,384 @@
|
|||
{
|
||||
"@@locale": "nl",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"profileAutostartDescription": "Regelt of het profiel automatisch wordt gestart bij het opstarten",
|
||||
"profileAutostartLabel": "Automatisch starten",
|
||||
"profileEnabled": "Inschakelen",
|
||||
"profileEnabledDescription": "Start of stop het profiel",
|
||||
"localeSk": "Slowaaks \/ Slovák",
|
||||
"localePtBr": "Braziliaans Portugees \/ Português do Brasil",
|
||||
"acquiredTicketsFromServer": "Anti-spam uitdaging voltooid",
|
||||
"acquiringTicketsFromServer": "Anti-spam uitdaging uitvoeren",
|
||||
"acknowledgedLabel": "Erkend",
|
||||
"descriptionFileSharing": "Het experiment met het delen van bestanden staat u toe om bestanden van Cwtch-contactpersonen en groepen te verzenden en te ontvangen. Merk op dat het delen van een bestand met een groep tot gevolg zal hebben dat leden van die groep direct via Cwtch verbinding met je maken om het bestand te downloaden.",
|
||||
"descriptionExperimentsGroups": "Het groepsexperiment staat Cwtch toe verbinding te maken met onvertrouwde serverinfrastructuur om communicatie met meer dan één contact te vergemakkelijken.",
|
||||
"notificationPolicyDefaultAll": "Standaard Alle",
|
||||
"conversationNotificationPolicyOptIn": "Opt-In",
|
||||
"settingAndroidPowerExemption": "Android negeer batterij-optimalisaties",
|
||||
"experimentQRCodeDescription": "Ondersteuning voor QR-codes maakt het delen van gegevens (zoals profielidentiteit) via QR-codes mogelijk",
|
||||
"tooltipSelectACustomProfileImage": "Selecteer een zelf ingestelde profielafbeelding",
|
||||
"settingsAndroidPowerReenablePopup": "Batterijoptimalisatie kan niet opnieuw worden ingeschakeld vanuit Cwtch. Ga naar Android \/ Instellingen \/ Apps \/ Cwtch \/ Batterij en stel Gebruik in op 'Geoptimaliseerd'",
|
||||
"settingAndroidPowerExemptionDescription": "Optioneel: Vraag Android om geen geoptimaliseerd energiebeheer te gebruiken voor Cwtch. Dit zal resulteren in een betere stabiliteit ten koste van meer batterijgebruik.",
|
||||
"descriptionExperiments": "Cwtch-experimenten zijn optionele, Opt-In functies die extra functionaliteit toevoegen aan Cwtch die andere privacyoverwegingen kunnen hebben dan traditionele 1: 1 metadata-resistente chat, bijvoorbeeld groepschat, botintegratie enz.",
|
||||
"plainProfileDescription": "We raden aan je Cwtch-profielen te beveiligen met een wachtwoord. Als je geen wachtwoord instelt op dit profiel heeft iedereen die toegang heeft tot dit apparaat mogelijk toegang tot informatie over dit profiel, inclusief gevoelige cryptografische sleutels.",
|
||||
"plainServerDescription": "We raden aan je Cwtch-servers te beveiligen met een wachtwoord. Als je geen wachtwoord instelt op deze server heeft iedereen die toegang heeft tot dit apparaat mogelijk toegang tot informatie over deze server, inclusief gevoelige cryptografische sleutels.",
|
||||
"descriptionStreamerMode": "Wanneer ingeschakeld, maakt deze optie de app visueel meer privé voor streaming of presentatie door bijvoorbeeld profiel- en contactadressen te verbergen",
|
||||
"encryptedProfileDescription": "Het versleutelen van een profiel met een wachtwoord beschermt deze tegen andere mensen die dit apparaat kunnen gebruiken. Versleutelde profielen kunnen niet worden ontsleuteld, weergegeven of geopend totdat het juiste wachtwoord is ingevoerd om ze te ontgrendelen.",
|
||||
"groupInviteSettingsWarning": "Je bent uitgenodigd om lid te worden van een groep! Schakel het Groepschat-experiment in Instellingen in om deze uitnodiging te bekijken.",
|
||||
"descriptionBlockUnknownConnections": "Wanneer ingeschakeld, zal deze optie automatisch verbindingen sluiten van Cwtch gebruikers die niet aan je contactlijst zijn toegevoegd.",
|
||||
"chatHistoryDefault": "Dit gesprek wordt verwijderd wanneer Cwtch wordt gesloten! Berichtgeschiedenis kan per gesprek worden ingeschakeld via het menu Instellingen rechtsboven.",
|
||||
"encryptedServerDescription": "Het versleutelen van een server met een wachtwoord beschermt deze tegen andere mensen die dit apparaat kunnen gebruiken. Versleutelde servers kunnen niet worden ontsleuteld, weergegeven of geopend totdat het juiste wachtwoord is ingevoerd om ze te ontgrendelen.",
|
||||
"settingImagePreviewsDescription": "Afbeeldingen en profielfoto's worden automatisch gedownload en voorvertongingen gemaakt. We raden u aan dit experiment niet in te schakelen als je Cwtch gebruikt met niet-vertrouwde contacten.",
|
||||
"torSettingsEnabledCacheDescription": "Cache de huidige gedownloade Tor-consensus om deze de volgende keer dat Cwtch wordt geopend opnieuw te gebruiken. Hierdoor kan Tor sneller starten. Indien uitgeschakeld, zal Cwtch de gegevens in de cache opschonen bij het opstarten.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Wanneer bestanden automatisch worden gedownload (bijv. afbeedingen, wanneer voorvertoningen van afbeeldingen zijn ingeschakeld), is een standaardlocatie nodig om de bestanden naar te downloaden.",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Overschrijf de standaard tor-configuratie. Waarschuwing: dit kan gevaarlijk zijn. Zet dit alleen aan als je weet wat je doet.",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Gebruik een zelf ingestelde Tor-serviceconfiguratie (torrc)",
|
||||
"descriptionACNCircuitInfo": "Uitgebreide informatie over het pad dat het anonieme communicatienetwerk gebruikt om verbinding te maken met dit gesprek.",
|
||||
"conversationNotificationPolicySettingDescription": "Meldingsgedrag voor dit gesprek beheren",
|
||||
"notificationContentSimpleEvent": "Generieke melding",
|
||||
"exportProfileTooltip": "Maak een back-up van dit profiel naar een versleuteld bestand. Het versleutelde bestand kan in een andere Cwtch-app worden geïmporteerd.",
|
||||
"blockUnknownConnectionsEnabledDescription": "Verbindingen van onbekende contacten worden geblokkeerd. Je kunt dit wijzigen in Instellingen",
|
||||
"messageEnableFileSharing": "Schakel het experiment voor het delen van bestanden in om dit bericht te bekijken.",
|
||||
"serverAutostartDescription": "Bepaalt of de applicatie de server automatisch start bij het opstarten",
|
||||
"serverDescriptionDescription": "Je beschrijving van de server alleen voor persoonlijk beheer, zal nooit worden gedeeld",
|
||||
"membershipDescription": "Hieronder staat een lijst met gebruikers die berichten naar de groep hebben gestuurd. Deze lijst bevat mogelijk niet alle gebruikers die toegang hebben tot de groep.",
|
||||
"defaultScalingText": "Standaardtekstgrootte (schaalfactor:",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Bladeren om een andere standaardmap voor gedownloade bestanden te selecteren.",
|
||||
"fileDownloadUnavailable": "Dit bestand lijkt niet beschikbaar om te downloaden. Het kan zijn dat de verzender downlaoden voor dit bestand heeft uitgeschakeld.",
|
||||
"errorDownloadDirectoryDoesNotExist": "Bestanden delen kan niet worden ingeschakeld omdat de downloadmap niet is ingesteld of is ingesteld op een map die niet bestaat.",
|
||||
"settingTheme": "Lichte thema's gebruiken",
|
||||
"noPasswordWarning": "Het niet gebruiken van een wachtwoord voor dit account betekent dat alle lokaal opgeslagen gegevens niet worden versleuteld",
|
||||
"savePeerHistoryDescription": "Bepaalt of geschiedenis gekoppeld aan de contactpersoon moet worden verwijderd.",
|
||||
"dmTooltip": "Klik voor DM",
|
||||
"debugLog": "Zet console debug logging aan",
|
||||
"addContactFirst": "Voeg een contact toe of kies een contact om te beginnen met chatten.",
|
||||
"experimentClickableLinksDescription": "Het klikbare links experiment maakt het mogelijk op URLs te klikken in berichten",
|
||||
"enableExperimentClickableLinks": "Klikbare links inschakelen",
|
||||
"groupsOnThisServerLabel": "Groepen waarin ik zit gehost op deze server",
|
||||
"displayNameTooltip": "Voer een weergavenaam in",
|
||||
"tooltipBackToMessageEditing": "Terug naar bericht bewerken",
|
||||
"editServerTitle": "Server bewerken",
|
||||
"editProfile": "Bewerk profiel",
|
||||
"manageKnownServersButton": "Beheer bekende servers",
|
||||
"manageKnownServersLong": "Beheer bekende servers",
|
||||
"themeNameVampire": "Vampier",
|
||||
"sendAnInvitation": "Je hebt een uitnodiging gestuurd voor: ",
|
||||
"contactSuggestion": "Dit is een contactsuggestie voor: ",
|
||||
"successfullAddedContact": "Succesvol toegevoegd ",
|
||||
"saveProfileBtn": "Profiel opslaan",
|
||||
"deleteProfileBtn": "Verwijder profiel",
|
||||
"clickableLinksWarning": "Het openen van deze URL zal een toepassing buiten Cwtch opstarten en kan metadata onthullen of anderszins de beveiliging van Cwtch in gevaar brengen. Open alleen URL's van mensen die je vertrouwt. Weet je zeker dat je door wilt gaan?",
|
||||
"clickableLinkError": "Fout opgetreden bij het openen van URL",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Voor deze functie moet het Groepen experiment zijn ingeschakeld in Instellingen",
|
||||
"formattingExperiment": "Berichtopmaak",
|
||||
"successfullyImportedProfile": "Profiel succesvol geïmporteerd: %profile",
|
||||
"failedToImportProfile": "Fout bij importeren profiel",
|
||||
"notificationContentContactInfo": "Gespreksinformatie",
|
||||
"notificationPolicySettingLabel": "Beleid voor meldingen",
|
||||
"conversationNotificationPolicySettingLabel": "Beleid voor gespreksmeldingen",
|
||||
"notificationContentSettingDescription": "Regelt de inhoud van gespreksmeldingen",
|
||||
"notificationPolicySettingDescription": "Regelt het standaard meldingsgedrag van de applicatie",
|
||||
"notificationContentSettingLabel": "Inhoud van meldingen",
|
||||
"notificationPolicyOptIn": "Opt In",
|
||||
"torSettingsErrorSettingPort": "Poortnummer moet liggen tussen 1 en 65535",
|
||||
"storageMigrationModalMessage": "Profielen migreren naar een nieuw opslagformaat. Dit kan een paar minuten duren...",
|
||||
"settingImagePreviews": "Voorvertoningen van afbeeldingen en profielfoto's",
|
||||
"settingUIColumnPortrait": "UI-kolommen in portret modus",
|
||||
"settingUIColumnOptionSame": "Zelfde als portret modus instelling",
|
||||
"settingUIColumnLandscape": "UI-kolommen in liggende modus",
|
||||
"tooltipRemoveThisQuotedMessage": "Verwijder geciteerd bericht.",
|
||||
"tooltipReplyToThisMessage": "Reageer op dit bericht",
|
||||
"shutdownCwtchDialog": "Weet je zeker dat je Cwtch wilt afsluiten? Alle verbindingen en de applicatie worden gesloten.",
|
||||
"malformedMessage": "Misvormd bericht",
|
||||
"profileDeleteSuccess": "Profiel succesvol verwijderd",
|
||||
"importProfileTooltip": "Gebruik een versleutelde Cwtch backup om een profiel binnen te halen dat in een andere instantie van Cwtch is aangemaakt.",
|
||||
"unlockProfileTip": "Maak of ontgrendel een profiel om te beginnen!",
|
||||
"unlockServerTip": "Maak of ontgrendel een server om te beginnen!",
|
||||
"createProfileToBegin": "Maak of ontgrendel een profiel om te beginnen",
|
||||
"addServerFirst": "Je moet een server toevoegen voordat je een groep kunt aanmaken",
|
||||
"createProfileBtn": "Profiel aanmaken",
|
||||
"tooltipUnlockProfiles": "Ontgrendel versleutelde profielen door hun wachtwoord in te voeren.",
|
||||
"addNewItem": "Voeg een nieuw item toe aan de lijst",
|
||||
"addListItem": "Een nieuw lijstitem toevoegen",
|
||||
"peerOfflineMessage": "Contact is offline, berichten kunnen nu niet worden afgeleverd",
|
||||
"acceptGroupInviteLabel": "Wil je de uitnodiging accepteren voor",
|
||||
"profileOnionLabel": "Stuur dit adres naar contacten waarmee je in contact wilt komen",
|
||||
"password2Label": "Wachtwoord opnieuw invoeren",
|
||||
"nickChangeSuccess": "Profielnaam succesvol gewijzigd",
|
||||
"inviteToGroup": "Je bent uitgenodigd om lid te worden van een groep:",
|
||||
"messageFormattingDescription": "Rijke tekstopmaak in getoonde berichten inschakelen, bijv. **vetgedrukt** en *cursief*",
|
||||
"labelACNCircuitInfo": "ACN circuitinfo",
|
||||
"torSettingsCustomControlPortDescription": "Gebruik zelf ingestelde poort voor controleverbindingen naar de Tor proxy",
|
||||
"torSettingsCustomControlPort": "Zelf ingestelde control port",
|
||||
"torSettingsCustomSocksPortDescription": "Gebruik een zelf ingestelde poort voor dataverbindingen naar de Tor proxy",
|
||||
"torSettingsCustomSocksPort": "Zelf ingesltelde SOCKS-poort",
|
||||
"torSettingsEnabledAdvancedDescription": "Gebruik een bestaande Tor-service op je systeem of wijzig de parameters van de Cwtch Tor-service",
|
||||
"torSettingsEnabledAdvanced": "Geavanceerde Tor-configuratie inschakelen",
|
||||
"msgAddToAccept": "Voeg dit account toe aan je contacten om dit bestand te accepteren.",
|
||||
"msgConfirmSend": "Weet je zeker dat je wilt verzenden",
|
||||
"msgFileTooBig": "Bestanden mogen niet groter zijn dan 10 GB",
|
||||
"settingDownloadFolder": "Map downloaden",
|
||||
"importLocalServerSelectText": "Selecteer lokale server",
|
||||
"importLocalServerLabel": "Lokaal gehoste server importeren",
|
||||
"verfiyResumeButton": "Verifiëren\/hervatten",
|
||||
"fileCheckingStatus": "Downloadstatus controleren",
|
||||
"fileInterrupted": "Onderbroken",
|
||||
"fileSavedTo": "Opgeslagen in",
|
||||
"deleteServerConfirmBtn": "Server echt verwijderen",
|
||||
"deleteServerSuccess": "Server succesvol verwijderd",
|
||||
"enterCurrentPasswordForDeleteServer": "Voer huidige wachtwoord in om deze server te verwijderen",
|
||||
"settingServersDescription": "Het servers hosten experiment maakt het mogelijk Cwtch-servers te hosten en te beheren",
|
||||
"settingServers": "Servers hosten",
|
||||
"enterServerPassword": "Voer wachtwoord in om server te ontgrendelen",
|
||||
"serversManagerTitleLong": "Servers die je host",
|
||||
"serverAutostartLabel": "Automatisch starten",
|
||||
"serverEnabled": "Server ingeschakeld",
|
||||
"messageFileOffered": "Contact biedt aan om je een bestand te sturen",
|
||||
"contactGoto": "Ga naar gesprek met %1",
|
||||
"tooltipOpenSettings": "Open het instellingenpaneel",
|
||||
"titleManageProfiles": "Cwtch profielen beheren",
|
||||
"passwordChangeError": "Fout bij wijzigen wachtwoord: opgegeven wachtwoord geweigerd",
|
||||
"passwordErrorEmpty": "Wachtwoord mag niet leeg zijn",
|
||||
"peerNotOnline": "Contact is offline. De toepassingen kunnen op dit moment niet worden gebruikt.",
|
||||
"manageSharedFiles": "Gedeelde bestanden beheren",
|
||||
"tooltipPreviewFormatting": "Voorbeeld van berichtopmaak bekijken",
|
||||
"tooltipItalicize": "Cursief",
|
||||
"okButton": "Oké",
|
||||
"tooltipBoldText": "Vetgedrukt",
|
||||
"shareProfileMenuTooltop": "Profiel delen via...",
|
||||
"tooltipUnpinConversation": "Gesprek bovenaan 'Gesprekken' losmaken",
|
||||
"tooltipPinConversation": "Gesprek bovenaan 'Gesprekken' vastprikken",
|
||||
"replyingTo": "Reageren op %1",
|
||||
"viewReplies": "Reacties op dit bericht bekijken",
|
||||
"messageNoReplies": "Er zijn geen reacties op dit bericht.",
|
||||
"stopSharingFile": "Stop delen bestand",
|
||||
"restartFileShare": "Start delen bestand",
|
||||
"shuttingDownApp": "Afsluiten...",
|
||||
"importProfile": "Profiel importeren",
|
||||
"exportProfile": "Profiel exporteren",
|
||||
"localeDa": "Deens \/ Dansk",
|
||||
"localeCy": "Welsh \/ Cymraeg",
|
||||
"rejected": "Geweigerd!",
|
||||
"tooltipRejectContactRequest": "Weiger dit contactverzoek",
|
||||
"tooltipAcceptContactRequest": "Accepteer dit contactverzoek.",
|
||||
"notificationNewMessageFromGroup": "Nieuw bericht in een groep!",
|
||||
"notificationNewMessageFromPeer": "Nieuw bericht van een contact!",
|
||||
"accepted": "Geaccepteerd!",
|
||||
"reallyLeaveThisGroupPrompt": "Weet je zeker dat je dit gesprek wilt verlaten? Alle berichten en attributen worden verwijderd.",
|
||||
"yesLeave": "Ja, verlaat dit gesprek",
|
||||
"leaveConversation": "Verlaat dit gesprek",
|
||||
"titleManageServers": "Servers beheren",
|
||||
"invalidImportString": "Ongeldige import string",
|
||||
"enterCurrentPasswordForDelete": "Voer huidige wachtwoord in om dit profiel te verwijderen.",
|
||||
"enableGroups": "Groepschat inschakelen",
|
||||
"networkStatusConnecting": "Verbinding maken met netwerk en contacten...",
|
||||
"networkStatusAttemptingTor": "Proberen verbinding te maken met het Tor-netwerk",
|
||||
"networkStatusDisconnected": "Verbinding met internet verbroken, controleer je verbinding",
|
||||
"viewGroupMembershipTooltip": "Groepslidmaatschap weergeven",
|
||||
"zoomLabel": "Interface zoom (beïnvloedt vooral de grootte van tekst en knoppen)",
|
||||
"error0ProfilesLoadedForPassword": "0 profielen geladen met dat wachtwoord",
|
||||
"enterProfilePassword": "Voer een wachtwoord in om je profielen te bekijken",
|
||||
"addNewProfileBtn": "Nieuw profiel toevoegen",
|
||||
"deleteProfileConfirmBtn": "Profiel echt verwijderen",
|
||||
"deleteConfirmLabel": "Typ VERWIJDEREN om te bevestigen",
|
||||
"couldNotSendMsgError": "Kan bericht niet verzenden",
|
||||
"retrievingManifestMessage": "Bestandsinformatie ophalen...",
|
||||
"streamerModeLabel": "Streamer-\/presentatiemodus",
|
||||
"archiveConversation": "Archiveer dit gesprek",
|
||||
"blockedMessageMessage": "Dit bericht is van een profiel dat je hebt geblokkeerd.",
|
||||
"placeholderEnterMessage": "Type een bericht...",
|
||||
"deleteProfileSuccess": "Profiel succesvol verwijderd",
|
||||
"sendInvite": "Een contact- of groepsuitnodiging verzenden",
|
||||
"sendMessage": "Bericht versturen",
|
||||
"resetTor": "Resetten",
|
||||
"tooltipAddContact": "Een nieuw contact of gesprek toevoegen",
|
||||
"contactAlreadyExists": "Contact bestaat al",
|
||||
"conversationSettings": "Gespreksinstellingen",
|
||||
"settingFileSharing": "Bestanden delen",
|
||||
"messageFileSent": "Je hebt een bestand verzonden",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Doorhalen",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"localeNl": "Nederlands \/ Dutch",
|
||||
"pendingLabel": "In afwachting",
|
||||
"builddate": "Gebouwd op: %2",
|
||||
"versionTor": "Versie %1 met tor %2",
|
||||
"blockUnknownLabel": "Blokkeer onbekende contacten",
|
||||
"versionBuilddate": "Versie: %1 Gebouwd op: %2",
|
||||
"defaultProfileName": "Alice",
|
||||
"update": "Update",
|
||||
"viewServerInfo": "Serverinfo",
|
||||
"serverNotSynced": "Nieuwe berichten synchroniseren (dit kan even duren)...",
|
||||
"serverConnectivityDisconnected": "Server verbinding verbroken",
|
||||
"pasteAddressToAddContact": "Plak hier een cwtch adres, uitnodiging of sleutelbundel om een nieuw gesprek toe te voegen",
|
||||
"todoPlaceholder": "Todo...",
|
||||
"experimentsEnabled": "Experimenten inschakelen",
|
||||
"settingInterfaceZoom": "Zoomniveau",
|
||||
"yourDisplayName": "Jouw weergavenaam",
|
||||
"profileName": "Weergavenaam",
|
||||
"addProfileTitle": "Nieuw profiel toevoegen",
|
||||
"editProfileTitle": "Bewerk profiel",
|
||||
"copiedToClipboardNotification": "Gekopieerd naar klembord",
|
||||
"puzzleGameBtn": "Puzzelspel",
|
||||
"bulletinsBtn": "Bulletins",
|
||||
"addListItemBtn": "Item toevoegen",
|
||||
"searchList": "Zoeklijst",
|
||||
"postNewBulletinLabel": "Nieuw bulletin plaatsen",
|
||||
"newBulletinLabel": "Nieuw bulletin",
|
||||
"joinGroupTab": "Lid worden van een groep",
|
||||
"joinGroup": "Lid worden van groep",
|
||||
"settingsGroupExperiments": "Experimenten",
|
||||
"settingsGroupAppearance": "Uiterlijk",
|
||||
"settingGroupBehaviour": "Gedrag",
|
||||
"torSettingsEnableCache": "Cache Tor-consensus",
|
||||
"serverTotalMessagesLabel": "Totaal aantal berichten",
|
||||
"serverMetricsLabel": "Serverstatistieken",
|
||||
"manageKnownServersShort": "Servers",
|
||||
"newMessagesLabel": "Nieuwe berichten",
|
||||
"localeRU": "Russisch \/ Русский",
|
||||
"copyServerKeys": "Sleutels kopiëren",
|
||||
"shutdownCwtchAction": "Cwtch afsluiten",
|
||||
"shutdownCwtchTooltip": "Cwtch afsluiten",
|
||||
"shutdownCwtchDialogTitle": "Cwtch afsluiten?",
|
||||
"serverSynced": "Gesynchroniseerd",
|
||||
"defaultGroupName": "Geweldige groep",
|
||||
"shareMenuQRCode": "Toon QR-code",
|
||||
"localeTr": "Turks \/ Türk",
|
||||
"localeEl": "Grieks \/ Ελληνικά",
|
||||
"localeNo": "Noors \/ Norsk",
|
||||
"localeLb": "Luxemburgs \/ Lëtzebuergesch",
|
||||
"localeRo": "Roemeens \/ Română",
|
||||
"newMessageNotificationConversationInfo": "Nieuw bericht van %1",
|
||||
"newMessageNotificationSimple": "Nieuw bericht",
|
||||
"notificationPolicyMute": "Dempen",
|
||||
"labelTorNetwork": "Tor netwerk",
|
||||
"btnSendFile": "Bestand versturen",
|
||||
"loadingCwtch": "Cwtch laden...",
|
||||
"themeColorLabel": "Kleurenthema",
|
||||
"themeNameNeon2": "Neon2",
|
||||
"themeNameNeon1": "Neon1",
|
||||
"themeNameMidnight": "Middernacht",
|
||||
"themeNameMermaid": "Zeemeermin",
|
||||
"themeNamePumpkin": "Pompoen",
|
||||
"themeNameGhost": "Geest",
|
||||
"themeNameWitch": "Heks",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"serverConnectionsLabel": "Verbinding",
|
||||
"copyAddress": "Adres kopiëren",
|
||||
"saveServerButton": "Server opslaan",
|
||||
"serverEnabledDescription": "Start of stop de server",
|
||||
"serverDescriptionLabel": "Server beschrijving",
|
||||
"serverAddress": "Server adres",
|
||||
"titleManageProfilesShort": "Profielen",
|
||||
"tooltipSendFile": "Verstuur bestand",
|
||||
"labelFilesize": "Grootte",
|
||||
"labelFilename": "Bestandsnaam",
|
||||
"openFolderButton": "Open map",
|
||||
"torNetworkStatus": "Tor netwerk status",
|
||||
"localeDe": "Duits \/ Deutsch",
|
||||
"localePt": "Portugees \/ Portuguesa",
|
||||
"localeFr": "Frans \/ Français",
|
||||
"localeEn": "Engels \/ English",
|
||||
"unlock": "Ontgrendelen",
|
||||
"radioNoPassword": "Onversleuteld (Geen wachtwoord)",
|
||||
"newProfile": "Nieuw profiel",
|
||||
"inviteToGroupLabel": "Uitnodigen voor groep",
|
||||
"newGroupBtn": "Nieuwe groep aanmaken",
|
||||
"createGroupBtn": "Aanmaken",
|
||||
"createGroupTitle": "Groep aanmaken",
|
||||
"unblockBtn": "Contact deblokkeren",
|
||||
"cancel": "Annuleren",
|
||||
"serversManagerTitleShort": "Servers",
|
||||
"showMessageButton": "Toon bericht",
|
||||
"settingUIColumnDouble14Ratio": "Dubbel (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Dubbel (1:2)",
|
||||
"settingUIColumnSingle": "Enkel",
|
||||
"localePl": "Pools \/ Polski",
|
||||
"tooltipHidePassword": "Verberg wachtwoord",
|
||||
"tooltipShowPassword": "Toon wachtwoord",
|
||||
"torStatus": "Tor status",
|
||||
"torVersion": "Tor versie",
|
||||
"newPassword": "Nieuw wachtwoord",
|
||||
"titleManageContacts": "Gesprekken",
|
||||
"localeIt": "Italiaans \/ taliano",
|
||||
"localeEs": "Spaans \/ Español",
|
||||
"newConnectionPaneTitle": "Nieuwe verbinding",
|
||||
"networkStatusOnline": "Online",
|
||||
"loadingTor": "Tor laden...",
|
||||
"smallTextLabel": "Klein",
|
||||
"largeTextLabel": "Groot",
|
||||
"settingLanguage": "Taal",
|
||||
"yourServers": "Jouw servers",
|
||||
"yourProfiles": "Jouw profielen",
|
||||
"password": "Wachtwoord",
|
||||
"passwordErrorMatch": "Wachtwoorden komen niet overeen",
|
||||
"clickableLinksCopy": "Kopieer URL",
|
||||
"clickableLinkOpen": "Open URL",
|
||||
"addServerTooltip": "Nieuwe server toevoegen",
|
||||
"addServerTitle": "Server toevoegen",
|
||||
"importLocalServerButton": "Importeer %1",
|
||||
"headingReplies": "Reacties",
|
||||
"fieldDescriptionLabel": "Beschrijving",
|
||||
"enableExperimentQRCode": "QR-codes",
|
||||
"downloadFileButton": "Download",
|
||||
"deleteConfirmText": "VERWIJDER",
|
||||
"deleteBtn": "Verwijderen",
|
||||
"cwtchSettingsTitle": "Cwtch instellingen",
|
||||
"conversationNotificationPolicyNever": "Nooit",
|
||||
"conversationNotificationPolicyDefault": "Standaard",
|
||||
"addContactConfirm": "Contact %1 toevoegen",
|
||||
"addContact": "Contact toevoegen",
|
||||
"version": "Versie %1",
|
||||
"themeDark": "Donker",
|
||||
"themeLight": "Licht",
|
||||
"currentPasswordLabel": "Huidig wachtwoord",
|
||||
"password1Label": "Wachtwoord",
|
||||
"radioUsePassword": "Wachtwoord",
|
||||
"savePeerHistory": "Geschiedenis opslaan",
|
||||
"dontSavePeerHistory": "Geschiedenis verwijderen",
|
||||
"displayNameLabel": "Weergavenaam",
|
||||
"rejectGroupBtn": "Weigeren",
|
||||
"acceptGroupBtn": "Accepteren",
|
||||
"copyBtn": "Kopieer",
|
||||
"peerBlockedMessage": "Contact is geblokkeerd",
|
||||
"blockBtn": "Blokkeer contact",
|
||||
"saveBtn": "Opslaan",
|
||||
"addressLabel": "Adres",
|
||||
"listsBtn": "Lijsten",
|
||||
"chatBtn": "Chat",
|
||||
"inviteBtn": "Uitnodigen",
|
||||
"groupNameLabel": "Groepsnaam",
|
||||
"serverConnectivityConnected": "Server verbonden",
|
||||
"serverInfo": "Server informatie",
|
||||
"titlePlaceholder": "titel...",
|
||||
"createGroup": "Groep aanmaken",
|
||||
"createGroupTab": "Nieuwe groep",
|
||||
"peerAddress": "Adres",
|
||||
"peerName": "Naam",
|
||||
"blocked": "Geblokkeerd",
|
||||
"search": "Zoeken...",
|
||||
"serverLabel": "Server",
|
||||
"invitationLabel": "Uitnodiging",
|
||||
"addPeer": "Contact toevoegen",
|
||||
"groupAddr": "Adres",
|
||||
"server": "Server",
|
||||
"invitation": "Uitnodiging",
|
||||
"addPeerTab": "Contact toevoegen"
|
||||
}
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "no",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Tyrkisk \/ Türk",
|
||||
"localeIt": "Italiensk",
|
||||
"localeEn": "Engelsk \/ English",
|
||||
"localeFr": "Fransk \/ Français",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Tysk \/ Deutsch",
|
||||
"localeLb": "Luxemburgsk",
|
||||
"localeNo": "Norsk",
|
||||
"localeEl": "Gresk",
|
||||
"localePl": "Polsk",
|
||||
"localeRo": "Rumensk",
|
||||
"localeRU": "Russisk",
|
||||
"localeEs": "Spansk",
|
||||
"localeDa": "Dansk",
|
||||
"localePt": "Portugisisk",
|
||||
"localeCy": "Walisisk",
|
||||
"settingImagePreviewsDescription": "Bilder vil bli lastet ned og forhåndsvist automatisk. Merk at forhåndsvisning av bilder kan medføre en sikkerhetsrisiko og bør ikke tillates dersom du bruker Cwtch med kontakter du ikke stoler på. Profilbilder er planlagt for Cwtch 1.6.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -27,17 +83,11 @@
|
|||
"importProfile": "Import Profile",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"exportProfile": "Export Profile",
|
||||
"localeDa": "Dansk",
|
||||
"localeCy": "Walisisk",
|
||||
"serverLabel": "Tjener",
|
||||
"profileOnionLabel": "Del denne adressen med de du ønsker å kontakte",
|
||||
"copiedToClipboardNotification": "Kopiert til utklippstavle",
|
||||
"saveBtn": "Lagre",
|
||||
"deleteBtn": "Slett",
|
||||
"localeEl": "Gresk",
|
||||
"localeNo": "Norsk",
|
||||
"localeLb": "Luxemburgsk",
|
||||
"localeRo": "Rumensk",
|
||||
"newMessageNotificationConversationInfo": "Ny melding fra %1",
|
||||
"newMessageNotificationSimple": "Ny melding",
|
||||
"notificationContentContactInfo": "Samtaleinformasjon",
|
||||
|
@ -91,7 +141,6 @@
|
|||
"themeNameWitch": "Heks",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Nedlastningsmappe",
|
||||
"settingImagePreviewsDescription": "Bilder vil bli lastet ned og forhåndsvist automatisk. Merk at forhåndsvisning av bilder kan medføre en sikkerhetsrisiko og bør ikke tillates dersom du bruker Cwtch med kontakter du ikke stoler på. Profilbilder er planlagt for Cwtch 1.6.",
|
||||
"settingImagePreviews": "Forhåndsvisning og profilbilder",
|
||||
"experimentClickableLinksDescription": "Forsøket klikkbare lenker lar deg klikke på URLer i meldinger",
|
||||
"enableExperimentClickableLinks": "Tillat klikkbare lenker",
|
||||
|
@ -108,7 +157,6 @@
|
|||
"importLocalServerSelectText": "Velg lokal tjener",
|
||||
"importLocalServerLabel": "Importér en lokal tjener",
|
||||
"newMessagesLabel": "Nye meldinger",
|
||||
"localeRU": "Russisk",
|
||||
"copyServerKeys": "Kopiér nøkler",
|
||||
"verfiyResumeButton": "Bekreft\/fortsett",
|
||||
"fileCheckingStatus": "Tester nedlastningsstatus",
|
||||
|
@ -168,7 +216,6 @@
|
|||
"settingUIColumnSingle": "Enkel",
|
||||
"settingUIColumnLandscape": "UI kolonner i landskapsmodus",
|
||||
"settingUIColumnPortrait": "UI kolonner i portrettmodus",
|
||||
"localePl": "Polsk",
|
||||
"tooltipRemoveThisQuotedMessage": "Fjern sitert melding.",
|
||||
"tooltipReplyToThisMessage": "Svar til denne meldingen",
|
||||
"tooltipRejectContactRequest": "Avvis denne kontaktsforespørselen",
|
||||
|
@ -222,8 +269,6 @@
|
|||
"conversationSettings": "Samtaleinnstillinger",
|
||||
"enterCurrentPasswordForDelete": "Vennligst oppgi tilhørende passord for å slette denne profilen.",
|
||||
"enableGroups": "Aktiver gruppesamtaler",
|
||||
"localeIt": "Italiensk",
|
||||
"localeEs": "Spansk",
|
||||
"todoPlaceholder": "Gjøremål...",
|
||||
"addNewItem": "Legg til nyt lelement til listen",
|
||||
"addListItem": "Legg til nytt listeelement",
|
||||
|
@ -245,10 +290,6 @@
|
|||
"settingTheme": "Velg lyst tema",
|
||||
"largeTextLabel": "Stor",
|
||||
"settingInterfaceZoom": "Zoomnivå",
|
||||
"localeDe": "Tysk",
|
||||
"localePt": "Portugisisk",
|
||||
"localeFr": "Fransk",
|
||||
"localeEn": "Engelsk",
|
||||
"settingLanguage": "Språk",
|
||||
"blockUnknownLabel": "Blokkér ukjente kontakter",
|
||||
"zoomLabel": "Grensesnittsforstørrelse (påvirker tekst og knappestørrelse)",
|
||||
|
|
|
@ -1,14 +1,76 @@
|
|||
{
|
||||
"@@locale": "pl",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Turecki \/ Türk",
|
||||
"localeIt": "Włoski \/ Italiano",
|
||||
"localeEn": "Angielski \/ English",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Niemiecki \/ Deutsch",
|
||||
"serverLabel": "Server",
|
||||
"deleteBtn": "Usuń",
|
||||
"saveBtn": "Zapisz",
|
||||
"editProfile": "Edytuj profil",
|
||||
"tooltipSubscript": "Indeks",
|
||||
"tooltipBackToMessageEditing": "Powrót do edycji wiadomości",
|
||||
"tooltipPreviewFormatting": "Podgląd Formatowanie wiadomości",
|
||||
"tooltipBoldText": "Pogrubiona",
|
||||
"tooltipItalicize": "Kursywa",
|
||||
"profileOnionLabel": "Przekaż ten adres osobom, z którymi chcesz nawiązać kontakt",
|
||||
"tooltipSuperscript": "Superskrypt",
|
||||
"tooltipCode": "Kod \/ Monospace",
|
||||
"settingImagePreviewsDescription": "Obrazy i zdjęcia profilowe będą pobierane i przeglądane automatycznie. Zalecamy, aby nie włączać tego eksperymentu, jeśli używasz Cwtch z niezaufanymi kontaktami.",
|
||||
"localeNo": "Norweski \/ Norsk",
|
||||
"localePt": "Portugalski \/ Portuguesa",
|
||||
"settingTheme": "Użyj motywów świetlnych",
|
||||
"localePl": "Polski \/ Polski",
|
||||
"localeFr": "Francuski \/ Français",
|
||||
"localeDa": "Duński \/ Dansk",
|
||||
"localeCy": "Walijski \/ Cymraeg",
|
||||
"tooltipStrikethrough": "Przekreślenie",
|
||||
"localeLb": "Luksemburski \/ Lëtzebuergesch",
|
||||
"localeEl": "Grecki \/ Ελληνικά",
|
||||
"localeRo": "Rumuński \/ Română",
|
||||
"localeEs": "Hiszpański \/ Español",
|
||||
"localeRU": "Rosyjski \/ Русский",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Nie udało się ponownie włączyć optymalizacji użycia baterii dla Cwtch. Przejdź do Android \/ Ustawienia \/ Aplikacje \/ Cwtch \/ Bateria i ustaw Zużycie na 'Optymalizacja'",
|
||||
"settingAndroidPowerExemptionDescription": "Opcjonalne: wyłącz optymalizację użycia baterii przez Cwtch w systemie Android. Będzie to skutkować lepszą stabilnością w zamian za wyższy pobór energii",
|
||||
|
@ -27,7 +89,6 @@
|
|||
"importProfile": "Importuj profil",
|
||||
"exportProfileTooltip": "Utwórz zaszyfrowany plik z kopią zapasową tego profilu. Zaszyfrowany plik można zaimportować do Cwtch na innym urządzeniu.",
|
||||
"exportProfile": "Eksportuj profil",
|
||||
"localeRo": "Romanian",
|
||||
"newMessageNotificationConversationInfo": "Nowa wiadomość od %1",
|
||||
"newMessageNotificationSimple": "Nowa wiadomość",
|
||||
"notificationContentContactInfo": "Informacje o konwersacji",
|
||||
|
@ -71,22 +132,11 @@
|
|||
"invalidImportString": "Niepoprawny ciąg importu",
|
||||
"enableGroups": "Włącz Grupy",
|
||||
"todoPlaceholder": "Do zrobienia...",
|
||||
"profileOnionLabel": "Send this address to contacts you want to connect with",
|
||||
"copiedToClipboardNotification": "Skopiowano do schowka",
|
||||
"searchList": "Lista wyszukiwania",
|
||||
"serverLabel": "Server",
|
||||
"deleteConfirmLabel": "Wpisz USUŃ aby potwierdzić",
|
||||
"localeLb": "Luksemburski",
|
||||
"localeNo": "Norweski",
|
||||
"localeEl": "Grecki",
|
||||
"localeCy": "Walijski",
|
||||
"localeDa": "Duński",
|
||||
"largeTextLabel": "Duży",
|
||||
"settingInterfaceZoom": "Przybliżenie",
|
||||
"localeDe": "Deutsche",
|
||||
"localePt": "Portuguesa",
|
||||
"localeFr": "Frances",
|
||||
"localeEn": "English",
|
||||
"settingLanguage": "Język",
|
||||
"blockUnknownLabel": "Blokuj nieznajomych",
|
||||
"zoomLabel": "Przybliżenie interfejsu (wpływa głównie na rozmiar tekstu i przycisków)",
|
||||
|
@ -114,19 +164,16 @@
|
|||
"noPasswordWarning": "Brak hasła do konta oznacza, że dane przechowywane na tym urządzeniu nie będą zaszyfrowane",
|
||||
"radioNoPassword": "Niezaszyfrowany (brak hasła)",
|
||||
"radioUsePassword": "Hasło",
|
||||
"editProfile": "Edytuj profil",
|
||||
"newProfile": "Nowy profil",
|
||||
"defaultProfileName": "Nowy profil",
|
||||
"profileName": "Nazwa",
|
||||
"editProfileTitle": "Edytuj profil",
|
||||
"addProfileTitle": "Dodaj nowy profil",
|
||||
"deleteBtn": "Delete",
|
||||
"unblockBtn": "Odblokuj",
|
||||
"dontSavePeerHistory": "Nie",
|
||||
"savePeerHistoryDescription": "Zapisywanie wiadomości",
|
||||
"savePeerHistory": "Tak",
|
||||
"blockBtn": "Zablokuj",
|
||||
"saveBtn": "Save",
|
||||
"displayNameLabel": "Nazwa",
|
||||
"addressLabel": "Adresy",
|
||||
"puzzleGameBtn": "Puzzle",
|
||||
|
@ -195,7 +242,6 @@
|
|||
"themeNameWitch": "Czarownica",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Folder dla pobranych plików",
|
||||
"settingImagePreviewsDescription": "Automatyczne pobieranie i podgląd obrazów. Pamiętaj, że podgląd obrazów jest potencjalną luką w zabezpieczeniach i nie należy używać tej eksperymentalnej funkcjonalności jeśli używasz Cwtch do komunikacji z niezaufanymi osobami. Zdjęcia profilowe są przewidziane na wersję Cwtch 1.6",
|
||||
"settingImagePreviews": "Podgląd zdjęć i zdjęcia profilowe",
|
||||
"experimentClickableLinksDescription": "Klikalne linki (eksperymentalne). Umożliwia klikanie na linki w wiadomościach, aby je otworzyć",
|
||||
"enableExperimentClickableLinks": "Włącz klikalne linki",
|
||||
|
@ -271,8 +317,6 @@
|
|||
"contactAlreadyExists": "Ten znajomy już istnieje",
|
||||
"conversationSettings": "Ustawienia konwersacji",
|
||||
"enterCurrentPasswordForDelete": "Aby usunąć ten profil, wprowadź hasło.",
|
||||
"localeIt": "Italiana",
|
||||
"localeEs": "Espanol",
|
||||
"addNewItem": "Dodaj do listy",
|
||||
"addListItem": "Add a New List Item",
|
||||
"newConnectionPaneTitle": "Nowe połączenie",
|
||||
|
@ -290,7 +334,6 @@
|
|||
"experimentsEnabled": "Włącz funkcje eksperymentalne",
|
||||
"themeDark": "Ciemny",
|
||||
"themeLight": "Jasny",
|
||||
"settingTheme": "Motyw",
|
||||
"titleManageServers": "Zarządzaj serwerami",
|
||||
"newPassword": "Nowe hasło",
|
||||
"torVersion": "Wersja Tor",
|
||||
|
@ -325,8 +368,6 @@
|
|||
"enterServerPassword": "Wprowadź hasło, aby odblokować serwer",
|
||||
"enterCurrentPasswordForDeleteServer": "Wprowadź aktualne hasło, aby usunąć ten serwer",
|
||||
"newMessagesLabel": "Nowe wiadomości",
|
||||
"localePl": "Polski",
|
||||
"localeRU": "Rosyjski",
|
||||
"copyAddress": "Skopiuj adres",
|
||||
"fileSavedTo": "Zapisano do",
|
||||
"verfiyResumeButton": "Zweryfikuj\/wznów",
|
||||
|
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "pt",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Turco \/ Türk",
|
||||
"localeIt": "Italian \/ Italiano",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Alemao \/ Deutsch",
|
||||
"localeEn": "English \/ English",
|
||||
"localeLb": "Luxembourgish \/ Lëtzebuergesch",
|
||||
"localeNo": "Norwegian \/ Norsk",
|
||||
"localeEl": "Greek \/ Ελληνικά",
|
||||
"localePl": "Polish \/ Polski",
|
||||
"localeRo": "Romanian \/ Română",
|
||||
"localeRU": "Russian \/ Русский",
|
||||
"localeEs": "Spanish \/ Español",
|
||||
"localeDa": "Danish \/ Dansk",
|
||||
"localePt": "Portuguese \/ Portuguesa",
|
||||
"localeFr": "French \/ Français",
|
||||
"localeCy": "Welsh \/ Cymraeg",
|
||||
"settingImagePreviewsDescription": "Images and Profile Pictures will be downloaded and previewed automatically. We recommend that you do not enable this Experiment if you use Cwtch with untrusted contacts.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -27,12 +83,6 @@
|
|||
"importProfile": "Import Profile",
|
||||
"exportProfileTooltip": "Backup this profile to an encrypted file. The encrypted file can be imported into another Cwtch app.",
|
||||
"exportProfile": "Export Profile",
|
||||
"localeDa": "Danish",
|
||||
"localeCy": "Welsh",
|
||||
"localeEl": "Greek",
|
||||
"localeNo": "Norwegian",
|
||||
"localeLb": "Luxembourgish",
|
||||
"localeRo": "Romanian",
|
||||
"newMessageNotificationConversationInfo": "New Message From %1",
|
||||
"newMessageNotificationSimple": "New Message",
|
||||
"notificationContentContactInfo": "Conversation Information",
|
||||
|
@ -86,7 +136,6 @@
|
|||
"themeNameWitch": "Witch",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Download Folder",
|
||||
"settingImagePreviewsDescription": "Images will be downloaded and previewed automatically. Please note that image previews can often lead to security vulnerabilities, and you should not enable this Experiment if you use Cwtch with untrusted contacts. Profile pictures are planned for Cwtch 1.6.",
|
||||
"settingImagePreviews": "Image Previews and Profile Pictures",
|
||||
"experimentClickableLinksDescription": "The clickable links experiment allows you to click on URLs shared in messages",
|
||||
"enableExperimentClickableLinks": "Enable Clickable Links",
|
||||
|
@ -103,7 +152,6 @@
|
|||
"importLocalServerSelectText": "Select Local Server",
|
||||
"importLocalServerLabel": "Import a locally hosted server",
|
||||
"newMessagesLabel": "New Messages",
|
||||
"localeRU": "Russian",
|
||||
"copyServerKeys": "Copy keys",
|
||||
"verfiyResumeButton": "Verify\/resume",
|
||||
"fileCheckingStatus": "Checking download status",
|
||||
|
@ -163,7 +211,6 @@
|
|||
"settingUIColumnSingle": "Single",
|
||||
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
|
||||
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
|
||||
"localePl": "Polish",
|
||||
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
|
||||
"tooltipReplyToThisMessage": "Reply to this message",
|
||||
"tooltipRejectContactRequest": "Reject this contact request",
|
||||
|
@ -217,8 +264,6 @@
|
|||
"conversationSettings": "Conversation Settings",
|
||||
"enterCurrentPasswordForDelete": "Please enter current password to delete this profile.",
|
||||
"enableGroups": "Enable Group Chat",
|
||||
"localeIt": "Italiana",
|
||||
"localeEs": "Espanol",
|
||||
"todoPlaceholder": "Afazer…",
|
||||
"addNewItem": "Adicionar novo item à lista",
|
||||
"addListItem": "Adicionar Item à Lista",
|
||||
|
@ -240,10 +285,6 @@
|
|||
"settingTheme": "Use Light Themes",
|
||||
"largeTextLabel": "Grande",
|
||||
"settingInterfaceZoom": "Zoom level",
|
||||
"localeDe": "Deutsche",
|
||||
"localePt": "Portuguesa",
|
||||
"localeFr": "Frances",
|
||||
"localeEn": "English",
|
||||
"settingLanguage": "Language",
|
||||
"blockUnknownLabel": "Block Unknown Contacts",
|
||||
"zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)",
|
||||
|
|
|
@ -0,0 +1,384 @@
|
|||
{
|
||||
"@@locale": "pt_BR",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Português do Brasil \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "O suporte a QR Code permite o compartilhamento de dados (como identidade de perfil) através dos QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Mostrar QR Code",
|
||||
"shareProfileMenuTooltop": "Compartilhar perfil por...",
|
||||
"acquiredTicketsFromServer": "Desafio anti-spam completo",
|
||||
"acquiringTicketsFromServer": "Realizar o desafio anti-spam",
|
||||
"errorDownloadDirectoryDoesNotExist": "O compartilhamento de arquivos não pode ser ativado porque a Pasta de Download não foi definida, ou está definida para uma pasta que não existe.",
|
||||
"localeTr": "Turco \/ Türk",
|
||||
"tooltipUnpinConversation": "Desafixar conversa a partir do topo de \"Conversations\"",
|
||||
"tooltipPinConversation": "Fixar conversa para o topo de \"Conversations\"",
|
||||
"replyingTo": "Responder para %1",
|
||||
"fileDownloadUnavailable": "Este arquivo aparece indisponível para download. O remetente pode ter desativado os downloads para este arquivo.",
|
||||
"messageNoReplies": "Não há respostas para esta mensagem.",
|
||||
"headingReplies": "Respostas",
|
||||
"viewReplies": "Ver respostas para esta mensagem",
|
||||
"restartFileShare": "Iniciar compartilhamento de arquivo",
|
||||
"stopSharingFile": "Parar compartilhamento de arquivo",
|
||||
"manageSharedFiles": "Gerenciar arquivos compartilhados",
|
||||
"tooltipPreviewFormatting": "Pré-visualização da formatação da mensagem",
|
||||
"tooltipCode": "Code \/ Monoespaçado",
|
||||
"tooltipStrikethrough": "Riscado",
|
||||
"tooltipSubscript": "Sobrescrito",
|
||||
"tooltipSuperscript": "Superescrito",
|
||||
"tooltipItalicize": "Itálico",
|
||||
"tooltipBackToMessageEditing": "Voltar a edição de mensagem",
|
||||
"tooltipBoldText": "Negrito",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Não é possível reativar a Otimização da Bateria de dentro da Cwtch. Favor ir para Android \/ Settings \/ Apps \/ Cwtch \/ Battery e definir o uso como 'Otimizado'",
|
||||
"settingAndroidPowerExemptionDescription": "Opcional: Solicite ao Android que isente o Cwtch do gerenciamento otimizado de energia. Isto resultará em melhor estabilidade ao custo de maior uso da bateria.",
|
||||
"settingAndroidPowerExemption": "Ignorar Otimização de Bateria do Android",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Esta característica requer que a experiência de grupo seja habilitada em Configurações",
|
||||
"messageFormattingDescription": "Permitir a formatação de texto rico em mensagens exibidas, por exemplo **negrito** e *itálico*",
|
||||
"formattingExperiment": "Formatação de mensagem",
|
||||
"clickableLinkError": "Erro encontrado durante a tentativa de abrir a URL",
|
||||
"clickableLinksCopy": "Copiar URL",
|
||||
"clickableLinkOpen": "Abrir URL",
|
||||
"clickableLinksWarning": "A abertura deste URL abrirá um aplicativo fora do Cwtch e poderá revelar metadados ou comprometer de outra forma a segurança do Cwtch. Abra somente URLs de pessoas em quem você confia. Você tem certeza de que quer continuar?",
|
||||
"shuttingDownApp": "Desligando...",
|
||||
"successfullyImportedProfile": "Perfil importado com sucesso: %profile",
|
||||
"failedToImportProfile": "Erro ao importar perfil",
|
||||
"importProfileTooltip": "Use um backup criptografado do Cwtch para trazer um perfil criado em outra instância do Cwtch.",
|
||||
"importProfile": "Importar perfil",
|
||||
"exportProfileTooltip": "Faça um backup deste perfil em um arquivo criptografado. O arquivo criptografado pode ser importado para outro aplicativo Cwtch.",
|
||||
"exportProfile": "Exportar Perfil",
|
||||
"localeDa": "Danish \/ Dansk",
|
||||
"localeCy": "Welsh \/ Cymraeg",
|
||||
"localeEl": "Greek \/ Ελληνικά",
|
||||
"localeNo": "Norwegian \/ Norsk",
|
||||
"localeLb": "Luxembourgish \/ Lëtzebuergesch",
|
||||
"localeRo": "Romanian \/ Română",
|
||||
"newMessageNotificationConversationInfo": "Nova mensagem de %1",
|
||||
"newMessageNotificationSimple": "Nova Mensagem",
|
||||
"notificationContentContactInfo": "Informações da Conversa",
|
||||
"notificationContentSimpleEvent": "Evento Simples",
|
||||
"conversationNotificationPolicySettingDescription": "controle de comportamento de notificação para esta conversa",
|
||||
"conversationNotificationPolicySettingLabel": "Política de Notificação de Conversas",
|
||||
"settingsGroupExperiments": "Experimentos",
|
||||
"settingsGroupAppearance": "Aparência",
|
||||
"settingGroupBehaviour": "Comportamento",
|
||||
"notificationContentSettingDescription": "Controla o conteúdo das notificações de conversas",
|
||||
"notificationPolicySettingDescription": "Controla o comportamento padrão de notificação do aplicativo",
|
||||
"notificationContentSettingLabel": "Conteúdo da Notificação",
|
||||
"notificationPolicySettingLabel": "Política de Notificação",
|
||||
"conversationNotificationPolicyNever": "Nunca",
|
||||
"conversationNotificationPolicyOptIn": "Optar por",
|
||||
"conversationNotificationPolicyDefault": "Padrão",
|
||||
"notificationPolicyDefaultAll": "Todos por padrão",
|
||||
"notificationPolicyOptIn": "Optar por",
|
||||
"notificationPolicyMute": "Silenciar",
|
||||
"tooltipSelectACustomProfileImage": "Selecionar uma imagem de perfil personalizada",
|
||||
"torSettingsEnabledCacheDescription": "Mantém em cache os dados atuais do Tor para reutilizar da próxima vez que o Cwtch for aberto. Isto permitirá que o Tor comece mais rápido. Quando desativado, o Cwtch irá eliminar os dados em cache ao iniciar.",
|
||||
"torSettingsEnableCache": "Consenso de Cache do Tor",
|
||||
"labelTorNetwork": "Rede Tor",
|
||||
"descriptionACNCircuitInfo": "Informações detalhadas sobre o caminho que a rede de comunicação anônima está utilizando para se conectar a esta conversa.",
|
||||
"labelACNCircuitInfo": "Informações do Circuito ACN",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Navegue para selecionar uma pasta padrão diferente para arquivos baixados.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Quando os arquivos são baixados automaticamente (por exemplo, prévias de imagem, quando as pré-visualizações de imagem estão habilitadas) é necessário um local padrão para o download destes arquivos.",
|
||||
"torSettingsErrorSettingPort": "O número da porta deve ser entre 1 e 65535",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Substituir a configuração padrão do Tor. Atenção: Isto pode ser perigoso. Só use isto se você souber o que está fazendo.",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Use uma configuração personalizada de serviço do Tor (torrc)",
|
||||
"torSettingsCustomControlPortDescription": "Use uma porta personalizada para conexões de controle para o proxy Tor",
|
||||
"torSettingsCustomControlPort": "Porta de controle personalizada",
|
||||
"torSettingsCustomSocksPortDescription": "Use uma porta personalizada para conexões de dados com o proxy Tor",
|
||||
"torSettingsCustomSocksPort": "Porta SOCKS personalizada",
|
||||
"torSettingsEnabledAdvancedDescription": "Use um serviço Tor existente em seu sistema, ou altere os parâmetros do serviço Cwtch Tor",
|
||||
"torSettingsEnabledAdvanced": "Habilitar configuração avançada do Tor",
|
||||
"msgAddToAccept": "Adicione esta conta a seus contatos para poder aceitar este arquivo.",
|
||||
"btnSendFile": "Enviar arquivo",
|
||||
"msgConfirmSend": "Você tem certeza de que deseja enviar",
|
||||
"msgFileTooBig": "O tamanho do arquivo não pode exceder 10 GB",
|
||||
"storageMigrationModalMessage": "Migração dos perfis para um novo formato de armazenamento. Isto pode levar alguns minutos...",
|
||||
"loadingCwtch": "Carregando o Cwtch...",
|
||||
"themeColorLabel": "Cor do tema",
|
||||
"themeNameNeon2": "Neon2",
|
||||
"themeNameNeon1": "Neon1",
|
||||
"themeNameMidnight": "Meia-noite",
|
||||
"themeNameMermaid": "Sereia",
|
||||
"themeNamePumpkin": "Abóbora",
|
||||
"themeNameGhost": "Fantasma",
|
||||
"themeNameVampire": "Vampiro",
|
||||
"themeNameWitch": "Bruxa",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Pasta para Download",
|
||||
"settingImagePreviewsDescription": "Imagens e Fotos de Perfil serão baixadas e visualizadas automaticamente. Recomendamos que você não ative esta Experiência se usar Cwtch com contatos não confiáveis.",
|
||||
"settingImagePreviews": "Pré-visualização de Imagens e Fotos de Perfil",
|
||||
"experimentClickableLinksDescription": "O experimento de links clicáveis permite que você clique em URLs compartilhadas em mensagens",
|
||||
"enableExperimentClickableLinks": "Habilitar links clicáveis",
|
||||
"serverConnectionsLabel": "Conexão",
|
||||
"serverTotalMessagesLabel": "Total de mensagens",
|
||||
"serverMetricsLabel": "Métricas do servidor",
|
||||
"manageKnownServersShort": "Servidores",
|
||||
"manageKnownServersLong": "Gerenciar Servidores Conhecidos",
|
||||
"displayNameTooltip": "Por favor, digite um nome de exibição",
|
||||
"manageKnownServersButton": "Gerenciar Servidores Conhecidos",
|
||||
"fieldDescriptionLabel": "Descrição",
|
||||
"groupsOnThisServerLabel": "Grupos nos quais estou hospedado neste servidor",
|
||||
"importLocalServerButton": "Importar %1",
|
||||
"importLocalServerSelectText": "Selecione Servidor Local",
|
||||
"importLocalServerLabel": "Importar um servidor hospedado localmente",
|
||||
"newMessagesLabel": "Novas mensagens",
|
||||
"localeRU": "Russian \/ Русский",
|
||||
"copyServerKeys": "Copiar chaves",
|
||||
"verfiyResumeButton": "Verify\/resume",
|
||||
"fileCheckingStatus": "Verificando o status do download",
|
||||
"fileInterrupted": "Interrompido",
|
||||
"fileSavedTo": "Salvar em",
|
||||
"encryptedServerDescription": "Criptografar um servidor com uma senha o protege de outras pessoas que também podem usar este dispositivo. Os servidores criptografados não podem ser descriptografados, exibidos ou acessados até que a senha correta seja inserida para desbloqueá-los.",
|
||||
"plainServerDescription": "Recomendamos que você proteja seus servidores Cwtch com uma senha. Se você não definir uma senha neste servidor, qualquer pessoa que tenha acesso a este dispositivo poderá acessar informações sobre este servidor, incluindo chaves criptográficas sensíveis.",
|
||||
"deleteServerConfirmBtn": "Realmente excluir servidor",
|
||||
"deleteServerSuccess": "Servidor excluído com sucesso",
|
||||
"enterCurrentPasswordForDeleteServer": "Por favor, digite a senha atual para excluir este servidor",
|
||||
"copyAddress": "Copiar endereço",
|
||||
"settingServersDescription": "A experiência com servidores de hospedagem permite hospedar e gerenciar servidores Cwtch",
|
||||
"settingServers": "Servidores Hospedados",
|
||||
"enterServerPassword": "Digite a senha para desbloquear o servidor",
|
||||
"unlockProfileTip": "Por favor, crie ou desbloqueie um perfil para começar!",
|
||||
"unlockServerTip": "Por favor, crie ou desbloqueie um servidor para começar!",
|
||||
"addServerTooltip": "Adicionar novo servidor",
|
||||
"serversManagerTitleShort": "Servidores",
|
||||
"serversManagerTitleLong": "Servidor que você hospeda",
|
||||
"saveServerButton": "Salvar servidor",
|
||||
"serverAutostartDescription": "Controla se o aplicativo iniciará automaticamente o servidor no início",
|
||||
"serverAutostartLabel": "Autoinício",
|
||||
"serverEnabledDescription": "Iniciar ou parar servidor",
|
||||
"serverEnabled": "Servidor ativado",
|
||||
"serverDescriptionDescription": "Sua descrição do servidor é apenas para uso de gerenciamento pessoal, nunca será compartilhada",
|
||||
"serverDescriptionLabel": "Descrição do servidor",
|
||||
"serverAddress": "Endereço do servidor",
|
||||
"editServerTitle": "Editar servidor",
|
||||
"addServerTitle": "Adicionar servidor",
|
||||
"titleManageProfilesShort": "Perfis",
|
||||
"descriptionFileSharing": "O experimento de compartilhamento de arquivos permite enviar e receber arquivos de contatos e grupos do Cwtch. Note que compartilhar um arquivo com um grupo resultará em membros desse grupo conectando-se diretamente com você através do Cwtch para baixá-lo.",
|
||||
"settingFileSharing": "Compartilhar arquivo",
|
||||
"tooltipSendFile": "Mandar arquivo",
|
||||
"messageFileOffered": "Contato está oferecendo mandar um arquivo para você",
|
||||
"messageFileSent": "Você mandou um arquivo",
|
||||
"messageEnableFileSharing": "Habilite o experimento de compartilhamento de arquivos para visualizar esta mensagem.",
|
||||
"labelFilesize": "Tamanho",
|
||||
"labelFilename": "Nome do arquivo",
|
||||
"downloadFileButton": "Download",
|
||||
"openFolderButton": "Abrir pasta",
|
||||
"retrievingManifestMessage": "Obtendo informações do arquivo...",
|
||||
"descriptionStreamerMode": "Se ativada, esta opção torna o aplicativo mais privado visualmente para streaming ou apresentação com, por exemplo, perfil e endereços de contato ocultos.",
|
||||
"streamerModeLabel": "Streamer\/Modo de apresentação",
|
||||
"archiveConversation": "Arquivar esta conversa",
|
||||
"blockUnknownConnectionsEnabledDescription": "As conexões de contatos desconhecidos são bloqueadas. Você pode mudar isto em Configurações",
|
||||
"showMessageButton": "Mostrar mensagem",
|
||||
"blockedMessageMessage": "Esta mensagem é de um perfil que você bloqueou.",
|
||||
"placeholderEnterMessage": "Digitar a mensagem...",
|
||||
"plainProfileDescription": "Recomendamos que você proteja seus perfis Cwtch com uma senha. Se você não definir uma senha neste perfil, qualquer pessoa que tenha acesso a este dispositivo poderá acessar informações sobre este perfil, incluindo contatos, mensagens e chaves criptográficas sensíveis.",
|
||||
"encryptedProfileDescription": "Criptografar um perfil com uma senha o protege de outras pessoas que também podem usar este dispositivo. Os perfis criptografados não podem ser descriptografados, exibidos ou acessados até que a senha correta seja inserida para desbloqueá-los.",
|
||||
"addContactConfirm": "Adicionar contato %1",
|
||||
"addContact": "Adicionar contato",
|
||||
"contactGoto": "Vá para conversa com %1",
|
||||
"settingUIColumnOptionSame": "O mesmo que a configuração do modo retrato",
|
||||
"settingUIColumnDouble14Ratio": "Duplo (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Duplo (1:2)",
|
||||
"settingUIColumnSingle": "Único",
|
||||
"settingUIColumnLandscape": "Colunas da interface em Modo Paisagem",
|
||||
"settingUIColumnPortrait": "Colunas da interface em Modo Retrato",
|
||||
"localePl": "Polish \/ Polski",
|
||||
"tooltipRemoveThisQuotedMessage": "Remover mensagem mencionada",
|
||||
"tooltipReplyToThisMessage": "Responder esta mensagem",
|
||||
"tooltipRejectContactRequest": "Rejeitar pedido de contato",
|
||||
"tooltipAcceptContactRequest": "Aceitar pedido de contato",
|
||||
"notificationNewMessageFromGroup": "Nova mensagem de um grupo!",
|
||||
"notificationNewMessageFromPeer": "Nova mensagem de um contato!",
|
||||
"tooltipHidePassword": "Ocultar Senha",
|
||||
"tooltipShowPassword": "Mostrar Senha",
|
||||
"groupInviteSettingsWarning": "Você foi convidado a fazer parte de um grupo! Por favor, habilite a Experiência de Bate-papo em Grupo em Configurações para ver este convite.",
|
||||
"shutdownCwtchAction": "Desligar Cwtch",
|
||||
"shutdownCwtchDialog": "Você tem certeza que quer encerrar o Cwtch? Isto fechará todas as conexões, e sairá do aplicativo.",
|
||||
"shutdownCwtchDialogTitle": "Desligar o Cwtch?",
|
||||
"shutdownCwtchTooltip": "Desligar o Cwtch",
|
||||
"malformedMessage": "Mensagem malformada",
|
||||
"profileDeleteSuccess": "Perfil deletado com sucesso",
|
||||
"debugLog": "Ative o console de depuração de logs",
|
||||
"torNetworkStatus": "Status da rede Tor",
|
||||
"addContactFirst": "Adicione ou escolha um contato para começar a conversar.",
|
||||
"createProfileToBegin": "Por favor, crie ou desbloqueie um perfil para começar",
|
||||
"nickChangeSuccess": "Nome do perfil alterado com sucesso",
|
||||
"addServerFirst": "Você precisa adicionar um servidor antes de poder criar um grupo",
|
||||
"deleteProfileSuccess": "Perfil deletado com sucesso!",
|
||||
"sendInvite": "Mandar um contato ou convite de grupo",
|
||||
"sendMessage": "Mandar mensagem",
|
||||
"cancel": "Cancelar",
|
||||
"resetTor": "Resetar",
|
||||
"torStatus": "Tor Status",
|
||||
"torVersion": "Versão do Tor",
|
||||
"sendAnInvitation": "Você enviou um convite para: ",
|
||||
"contactSuggestion": "Esta é uma sugestão de contato para: ",
|
||||
"rejected": "Rejeitado!",
|
||||
"accepted": "Aceito!",
|
||||
"chatHistoryDefault": "Esta conversa será excluída quando o Cwtch for encerrado! O histórico de mensagens pode ser habilitado por conversa através do menu Configurações, no canto superior direito.",
|
||||
"newPassword": "Nova senha",
|
||||
"yesLeave": "Sim, deixa esta conversa",
|
||||
"reallyLeaveThisGroupPrompt": "Você tem certeza que quer deixar esta conversa? Todas as mensagens e atributos serão apagados.",
|
||||
"leaveConversation": "Deixar esta conversa",
|
||||
"inviteToGroup": "Você foi convidado a se juntar a um grupo:",
|
||||
"titleManageServers": "Gerenciar Servidores",
|
||||
"successfullAddedContact": "Adicionado com sucesso ",
|
||||
"descriptionBlockUnknownConnections": "Se ativada, esta opção fechará automaticamente as conexões dos usuários Cwtch que não tenham sido adicionadas à sua lista de contatos.",
|
||||
"descriptionExperimentsGroups": "O experimento de grupo permite ao Cwtch conectar-se com uma infra-estrutura de servidor não confiável para facilitar a comunicação com mais de um contato.",
|
||||
"descriptionExperiments": "Os experimentos Cwtch são opcionais, características opt-in que adicionam funcionalidades adicionais ao Cwtch que podem ter considerações de privacidade diferentes das tradicionais conversas resistentes a metadados 1:1, por exemplo, conversas em grupo, integração de bot, etc.",
|
||||
"titleManageProfiles": "Gerencie perfis do Cwtch",
|
||||
"tooltipUnlockProfiles": "Desbloqueie perfis criptografados digitando sua senha.",
|
||||
"titleManageContacts": "Conversas",
|
||||
"tooltipAddContact": "Adicionar novo contato a conversa",
|
||||
"tooltipOpenSettings": "Abra o painel de ajustes",
|
||||
"contactAlreadyExists": "Contato já existe",
|
||||
"invalidImportString": "Importação de string inválido",
|
||||
"conversationSettings": "Configurações da Conversa",
|
||||
"enterCurrentPasswordForDelete": "Por favor entre sua senha atual para deletar este perfil.",
|
||||
"enableGroups": "Ativar chat em grupo",
|
||||
"localeIt": "Italian \/ Italiano",
|
||||
"localeEs": "Spanish \/ Español",
|
||||
"todoPlaceholder": "Afazer…",
|
||||
"addNewItem": "Adicionar novo item à lista",
|
||||
"addListItem": "Adicionar Item à Lista",
|
||||
"newConnectionPaneTitle": "Nova Conexão",
|
||||
"networkStatusOnline": "Online",
|
||||
"networkStatusConnecting": "Conectando à rede e contatos...",
|
||||
"networkStatusAttemptingTor": "Tentando conectar à rede Tor",
|
||||
"networkStatusDisconnected": "Desconectado da internet, confira a sua conexão",
|
||||
"viewGroupMembershipTooltip": "Ver Participação em Grupo",
|
||||
"loadingTor": "Carregando Tor...",
|
||||
"smallTextLabel": "Pequeno",
|
||||
"defaultScalingText": "Texto tamanho padrão (fator de escala: ",
|
||||
"builddate": "Construído em: %2",
|
||||
"version": "Versão %1",
|
||||
"versionTor": "Versão %1 com Tor %2",
|
||||
"experimentsEnabled": "Ativar experimentos",
|
||||
"themeDark": "Escuro",
|
||||
"themeLight": "Claro",
|
||||
"settingTheme": "Use temas claros",
|
||||
"largeTextLabel": "Grande",
|
||||
"settingInterfaceZoom": "Nível de zoom",
|
||||
"localeDe": "Alemao \/ Deutsch",
|
||||
"localePt": "Portuguese \/ Portuguesa",
|
||||
"localeFr": "French \/ Français",
|
||||
"localeEn": "English \/ English",
|
||||
"settingLanguage": "Linguagem",
|
||||
"blockUnknownLabel": "Bloquear Contatos Desconhecidos",
|
||||
"zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)",
|
||||
"versionBuilddate": "Versão: %1 Construído em: %2",
|
||||
"cwtchSettingsTitle": "Configurações do Cwtch",
|
||||
"unlock": "Desbloquear",
|
||||
"yourServers": "Seus servidores",
|
||||
"yourProfiles": "Seus perfis",
|
||||
"error0ProfilesLoadedForPassword": "0 perfis carregados com esta senha",
|
||||
"password": "Senha",
|
||||
"enterProfilePassword": "Coloque uma senha para ver seus perfis",
|
||||
"addNewProfileBtn": "Adicionar novo perfil",
|
||||
"deleteConfirmText": "DELETE",
|
||||
"deleteProfileConfirmBtn": "Realmente deletar o perfil",
|
||||
"deleteConfirmLabel": "digite DELETE para confirmar",
|
||||
"deleteProfileBtn": "Deletar Perfil",
|
||||
"passwordChangeError": "Erro ao mudar a senha: senha fornecida rejeitada",
|
||||
"passwordErrorMatch": "Senhas não são iguais",
|
||||
"saveProfileBtn": "Salvar Perfil",
|
||||
"createProfileBtn": "Criar Perfil",
|
||||
"passwordErrorEmpty": "Senha não pode ser vazia",
|
||||
"password2Label": "Recoloque a senha",
|
||||
"password1Label": "Senha",
|
||||
"currentPasswordLabel": "Senha Atual",
|
||||
"yourDisplayName": "Seu nome de exibição",
|
||||
"profileOnionLabel": "Send this address to contacts you want to connect with",
|
||||
"noPasswordWarning": "Não usar uma senha nesta conta significa que todos os dados armazenados localmente não serão criptografados",
|
||||
"radioNoPassword": "Descriptografado (Sem senha)",
|
||||
"radioUsePassword": "Senha",
|
||||
"editProfile": "Editar Perfil",
|
||||
"newProfile": "Novo Perfil",
|
||||
"defaultProfileName": "Alice",
|
||||
"profileName": "Nome de exibição",
|
||||
"editProfileTitle": "Editar perfil",
|
||||
"addProfileTitle": "Adicionar novo perfil",
|
||||
"deleteBtn": "Delete",
|
||||
"unblockBtn": "Desbloquear Contato",
|
||||
"dontSavePeerHistory": "Deletar histórico",
|
||||
"savePeerHistoryDescription": "Determina se deve excluir algum histórico associado com o contato.",
|
||||
"savePeerHistory": "Salvar histórico",
|
||||
"blockBtn": "Bloquear Contato",
|
||||
"saveBtn": "Save",
|
||||
"displayNameLabel": "Nome de Exibição",
|
||||
"copiedToClipboardNotification": "Copiado",
|
||||
"addressLabel": "Endereço",
|
||||
"puzzleGameBtn": "Jogo de Adivinhação",
|
||||
"bulletinsBtn": "Boletins",
|
||||
"listsBtn": "Listas",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Recusar",
|
||||
"acceptGroupBtn": "Aceitar",
|
||||
"acceptGroupInviteLabel": "Você quer aceitar o convite para",
|
||||
"newGroupBtn": "Criar novo grupo",
|
||||
"copyBtn": "Copiar",
|
||||
"peerOfflineMessage": "Contato está off-line, mensagens não podem ser entregues agora.",
|
||||
"peerBlockedMessage": "Contato está bloquado",
|
||||
"pendingLabel": "Pendente",
|
||||
"acknowledgedLabel": "Confirmada",
|
||||
"couldNotSendMsgError": "Não deu para enviar esta mensagem",
|
||||
"dmTooltip": "Clique para DM",
|
||||
"membershipDescription": "A lista abaixo é de usuários que enviaram mensagens ao grupo. Essa lista pode não refletir todos os usuários que têm acesso ao grupo.",
|
||||
"addListItemBtn": "Adicionar Item",
|
||||
"peerNotOnline": "Contato está off-line. Não pode receber mensagens agora.",
|
||||
"searchList": "Lista de Pesquisa",
|
||||
"update": "Atualizar",
|
||||
"inviteBtn": "Convidar",
|
||||
"inviteToGroupLabel": "Convidar ao grupo",
|
||||
"groupNameLabel": "Nome do Grupo",
|
||||
"viewServerInfo": "Server Info",
|
||||
"serverNotSynced": "Sincronizando novas mensagens (Isto pode levar um tempo)...",
|
||||
"serverSynced": "Sincronizado",
|
||||
"serverConnectivityDisconnected": "Servidor Desconectado",
|
||||
"serverConnectivityConnected": "Servidor Conectado",
|
||||
"serverInfo": "Informação do Servidor",
|
||||
"invitationLabel": "Convite",
|
||||
"serverLabel": "Server",
|
||||
"search": "Pesquisar...",
|
||||
"blocked": "Bloqueado",
|
||||
"pasteAddressToAddContact": "… cole um endereço aqui para adicionar um contato…",
|
||||
"titlePlaceholder": "título…",
|
||||
"postNewBulletinLabel": "Postar novo boletim",
|
||||
"newBulletinLabel": "Novo Boletim",
|
||||
"joinGroup": "Entrar no grupo",
|
||||
"createGroup": "Criar grupo",
|
||||
"addPeer": "Adicionar Contato",
|
||||
"groupAddr": "Endereços",
|
||||
"invitation": "Convite",
|
||||
"server": "Servidor",
|
||||
"peerName": "Nome",
|
||||
"peerAddress": "Endereço",
|
||||
"joinGroupTab": "Juntar-se a um grupo",
|
||||
"createGroupTab": "Criar um grupo",
|
||||
"addPeerTab": "Adicionar um contato",
|
||||
"createGroupBtn": "Criar",
|
||||
"defaultGroupName": "Grupo incrível",
|
||||
"createGroupTitle": "Criar Grupo"
|
||||
}
|
|
@ -1,6 +1,62 @@
|
|||
{
|
||||
"@@locale": "ro",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Turcă \/ Türk",
|
||||
"localeIt": "Italiană",
|
||||
"localeEn": "Engleză \/ English",
|
||||
"localeFr": "Franceză \/ Français",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"localeDe": "Germană",
|
||||
"localeLb": "Luxemburgheză",
|
||||
"localeNo": "Norvegiană",
|
||||
"localeEl": "Greacă",
|
||||
"localePl": "Poloneză",
|
||||
"localeRo": "Română",
|
||||
"localeRU": "Rusă",
|
||||
"localeEs": "Spaniolă",
|
||||
"localeDa": "Daneză",
|
||||
"localePt": "Portugheză",
|
||||
"localeCy": "Velşă",
|
||||
"settingImagePreviewsDescription": "Imaginile vor fi descărcate și previzualizate automat. Vă rugăm să rețineți că previzualizările imaginilor pot duce adesea la vulnerabilități de securitate și nu ar trebui să activați acest Experiment dacă utilizați Cwtch cu contacte care nu sunt de încredere. Imaginile de profil sunt planificate pentru Cwtch 1.6.",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
|
@ -29,13 +85,7 @@
|
|||
"exportProfile": "Export Profile",
|
||||
"deleteProfileConfirmBtn": "Sigur ștergeti profilul",
|
||||
"deleteConfirmLabel": "Tastați ȘTERGE pentru a confirma",
|
||||
"localeDa": "Daneză",
|
||||
"localeCy": "Velşă",
|
||||
"conversationNotificationPolicySettingDescription": "Controlați comportamentul de notificare al acestei conversații",
|
||||
"localeNo": "Norvegiană",
|
||||
"localeEl": "Greacă",
|
||||
"localeLb": "Luxemburgheză",
|
||||
"localeRo": "Română",
|
||||
"createGroupTitle": "Creați un grup",
|
||||
"serverLabel": "Server",
|
||||
"defaultGroupName": "Grup minunat",
|
||||
|
@ -131,10 +181,6 @@
|
|||
"zoomLabel": "Zoomul interfeței (afectează dimensiunile textului și ale butoanelor)",
|
||||
"blockUnknownLabel": "Blocați contactele necunoscute",
|
||||
"settingLanguage": "Limba",
|
||||
"localeEn": "Engleză",
|
||||
"localeFr": "Franceză",
|
||||
"localePt": "Portugheză",
|
||||
"localeDe": "Germană",
|
||||
"settingInterfaceZoom": "Nivelul de zoom",
|
||||
"largeTextLabel": "Mare",
|
||||
"settingTheme": "Utilizați teme luminoase",
|
||||
|
@ -155,8 +201,6 @@
|
|||
"addListItem": "Adăugați o nouă listă",
|
||||
"addNewItem": "Adăugați un nou element în listă",
|
||||
"todoPlaceholder": "În construcție...",
|
||||
"localeEs": "Spaniolă",
|
||||
"localeIt": "Italiană",
|
||||
"enableGroups": "Activează chatul de grup",
|
||||
"enterCurrentPasswordForDelete": "Vă rugăm să introduceți parola actuală pentru a șterge acest profil.",
|
||||
"conversationSettings": "Setările conversației",
|
||||
|
@ -210,7 +254,6 @@
|
|||
"tooltipRejectContactRequest": "Respingeți această cerere de contact",
|
||||
"tooltipReplyToThisMessage": "Răspundeți la acest mesaj",
|
||||
"tooltipRemoveThisQuotedMessage": "Eliminați mesajul citat.",
|
||||
"localePl": "Poloneză",
|
||||
"settingUIColumnPortrait": "Coloane UI în modul Portret",
|
||||
"settingUIColumnLandscape": "Coloane UI în modul Peisaj",
|
||||
"settingUIColumnSingle": "Singur",
|
||||
|
@ -270,7 +313,6 @@
|
|||
"fileCheckingStatus": "Se verifică starea descărcării",
|
||||
"verfiyResumeButton": "Verificați\/reluați",
|
||||
"copyServerKeys": "Copiați cheile",
|
||||
"localeRU": "Rusă",
|
||||
"newMessagesLabel": "Mesaje noi",
|
||||
"importLocalServerLabel": "Importați un server găzduit local",
|
||||
"importLocalServerSelectText": "Selectați Server local",
|
||||
|
@ -287,7 +329,6 @@
|
|||
"enableExperimentClickableLinks": "Activați linkurile pe care se poate da clic",
|
||||
"experimentClickableLinksDescription": "Experimentul cu linkuri pe care se poate da clic vă permite să faceți clic pe adresele URL partajate în mesaje",
|
||||
"settingImagePreviews": "Previzualizări de imagini și poze de profil",
|
||||
"settingImagePreviewsDescription": "Imaginile vor fi descărcate și previzualizate automat. Vă rugăm să rețineți că previzualizările imaginilor pot duce adesea la vulnerabilități de securitate și nu ar trebui să activați acest Experiment dacă utilizați Cwtch cu contacte care nu sunt de încredere. Imaginile de profil sunt planificate pentru Cwtch 1.6.",
|
||||
"settingDownloadFolder": "Fișier de descărcări",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameWitch": "Vrăjitoare",
|
||||
|
|
|
@ -1,14 +1,82 @@
|
|||
{
|
||||
"@@locale": "ru",
|
||||
"@@last_modified": "2022-06-16T18:20:12+02:00",
|
||||
"tooltipPreviewFormatting": "Preview Message Formatting",
|
||||
"tooltipCode": "Code \/ Monospace",
|
||||
"tooltipStrikethrough": "Strikethrough",
|
||||
"tooltipSubscript": "Subscript",
|
||||
"tooltipSuperscript": "Superscript",
|
||||
"tooltipItalicize": "Italic",
|
||||
"tooltipBackToMessageEditing": "Back to Message Editing",
|
||||
"tooltipBoldText": "Bold",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Start or stop the profile",
|
||||
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup",
|
||||
"profileEnabled": "Enable",
|
||||
"profileAutostartLabel": "Autostart",
|
||||
"localePtBr": "Brazilian Portuguese \/ Português do Brasil",
|
||||
"localeNl": "Dutch \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes",
|
||||
"enableExperimentQRCode": "QR Codes",
|
||||
"shareMenuQRCode": "Show QR Code",
|
||||
"shareProfileMenuTooltop": "Share profile via...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Complete",
|
||||
"acquiringTicketsFromServer": "Performing Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Filesharing cannot be enabled because the Download Folder has not been set, or is set to a folder that does not exist.",
|
||||
"localeTr": "Турецкий \/ Türk",
|
||||
"localeIt": "Итальянский \/ Italiano",
|
||||
"tooltipUnpinConversation": "Unpin conversation from the top of \"Conversations\"",
|
||||
"tooltipPinConversation": "Pin conversation to the top of \"Conversations\"",
|
||||
"replyingTo": "Replying to %1",
|
||||
"fileDownloadUnavailable": "This file appears unavailable for download. The sender may have disabled downloads for this file.",
|
||||
"messageNoReplies": "There are no replies to this message.",
|
||||
"headingReplies": "Replies",
|
||||
"viewReplies": "View replies to this message",
|
||||
"restartFileShare": "Start Sharing File",
|
||||
"stopSharingFile": "Stop Sharing File",
|
||||
"manageSharedFiles": "Manage Shared Files",
|
||||
"exportProfile": "Экспорт профиля",
|
||||
"notificationContentContactInfo": "Показать текст сообщения",
|
||||
"notificationContentSimpleEvent": "Без подробностей",
|
||||
"settingsGroupExperiments": "ЭКСПЕРИМЕНТЫ",
|
||||
"settingsGroupAppearance": "НАСТРОЙКИ ОТОБРАЖЕНИЯ",
|
||||
"settingGroupBehaviour": "ПОВЕДЕНИЕ",
|
||||
"notificationContentSettingDescription": "Управление уведомлениями чатов",
|
||||
"conversationNotificationPolicyNever": "Отключить",
|
||||
"notificationPolicyDefaultAll": "По-умолчанию",
|
||||
"descriptionFileSharing": "Данная функция позволяет обмениваться файлами напрямую с контактами и группами в Cwtch. Отправляемый файл будет напрямую скачиваться с вашего устройства через Cwtch, внутри сети Tor",
|
||||
"descriptionExperiments": "Экспериментальные функции Cwtch это необязательные дополнительные функции, которые добавляют некоторые возможности, но не имеют такой же устойчивости к метаданным как если бы вы общались через традиционный чат 1 на 1.",
|
||||
"profileOnionLabel": "Send this address to contacts you want to connect with",
|
||||
"localeDe": "Немецкий \/ Deutsch",
|
||||
"localeDa": "Датский язык \/ Dansk",
|
||||
"settingImagePreviewsDescription": "Автоматическая загрузка изображений. Обратите внимание, что предварительный просмотр изображений часто может использоваться для взлома или деаномизации. Не используйте данную функцию если Вы контактируете с ненадежными контактами.",
|
||||
"localePt": "Португальский язык \/ Portuguesa",
|
||||
"tooltipBackToMessageEditing": "Назад к редактированию сообщений",
|
||||
"tooltipItalicize": "Курсив",
|
||||
"tooltipCode": "Код \/ Монопространство",
|
||||
"localeEn": "Английский \/ English",
|
||||
"localePl": "Польский \/ Polski",
|
||||
"localeNo": "Норвежский \/ Norsk",
|
||||
"tooltipSubscript": "Подстрочный",
|
||||
"tooltipBoldText": "Смелый",
|
||||
"localeCy": "Валлийский \/ Cymraeg",
|
||||
"tooltipSuperscript": "Надстрочный",
|
||||
"localeRo": "Румынский \/ Română",
|
||||
"localeEl": "Греческий \/ Ελληνικά",
|
||||
"localeLb": "Люксембургский \/ Lëtzebuergesch",
|
||||
"tooltipPreviewFormatting": "Предварительный просмотр форматирования сообщений",
|
||||
"tooltipStrikethrough": "Зачеркивание",
|
||||
"localeFr": "Французский \/ Français",
|
||||
"localeEs": "Испанский \/ Español",
|
||||
"localeRU": "Русский \/ Русский",
|
||||
"editProfile": "Изменить профиль",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Невозможно перезапустить функцию оптимазации батарее для Cwtch. Перейдите в настройки Android \/ Настройки \/ Приложения и уведомления \/ Все приложения \/ Cwtch \/ Батарея \/ Эконоимя заряда \/ Отключена",
|
||||
|
@ -27,19 +95,13 @@
|
|||
"importProfileTooltip": "Используйте зашифрованную резервную копию Cwtch, чтобы перенести профиль, созданный на другом устройстве где установлен Cwtch..",
|
||||
"importProfile": "Загрузить профиль",
|
||||
"exportProfileTooltip": "Сделать зашифрованную резервную копию в файл. Его потом потом можно импортировать на других устройствах где установлен Cwtch.",
|
||||
"exportProfile": "Сохранить профиль",
|
||||
"notificationContentContactInfo": "Информация о разговоре",
|
||||
"notificationContentSimpleEvent": "Обычное событие",
|
||||
"conversationNotificationPolicySettingDescription": "Настройка уведомлений",
|
||||
"conversationNotificationPolicySettingLabel": "Настройка уведомлений",
|
||||
"settingsGroupAppearance": "Настройки отображения",
|
||||
"notificationContentSettingDescription": "Управление уведомлениями в данной теме",
|
||||
"notificationPolicySettingDescription": "Настройка уведомлений по-умолчанию",
|
||||
"notificationContentSettingLabel": "Содержимое уведомления",
|
||||
"notificationPolicySettingLabel": "Уведомления",
|
||||
"conversationNotificationPolicyOptIn": "Включить",
|
||||
"conversationNotificationPolicyDefault": "По-умолчанию",
|
||||
"notificationPolicyDefaultAll": "Всё по-умолчанию",
|
||||
"notificationPolicyOptIn": "Включить",
|
||||
"notificationPolicyMute": "Без звука",
|
||||
"tooltipSelectACustomProfileImage": "Сменить изображение профиля",
|
||||
|
@ -60,14 +122,12 @@
|
|||
"torSettingsEnabledAdvanced": "Включить расширенные настройки Tor",
|
||||
"themeColorLabel": "Основной цвет темы",
|
||||
"settingDownloadFolder": "Папка для загрузок",
|
||||
"settingImagePreviewsDescription": "Автоматическая загрузка изображений. Обратите внимание, что предварительный просмотр изображений часто может использоваться для взлома или деаномизации. Не используйте данную функцию если Вы контактируете с ненадежными контактами.",
|
||||
"importLocalServerLabel": "Использовать локальный сервер",
|
||||
"deleteServerConfirmBtn": "Вы точно хотите удалить сервер?",
|
||||
"unlockProfileTip": "Создайте или импортируйте профиль, чтобы начать",
|
||||
"unlockServerTip": "Создайте или импортируйте сервер, чтобы начать",
|
||||
"saveServerButton": "Сохранить",
|
||||
"serverEnabled": "Состояние сервера",
|
||||
"descriptionFileSharing": "Данная функция позволяет обмениваться файлами напрямую с контактами и группами в Cwtch. Отправляемый файл будет напрямую скачиваться с вашего устройства через Cwtch, поверх скрытой сети Tor",
|
||||
"settingUIColumnOptionSame": "Как в портретном режиме",
|
||||
"settingUIColumnSingle": "Один столбец",
|
||||
"createProfileToBegin": "Пожалуйста, создайте или импортируйте профиль, чтобы начать",
|
||||
|
@ -76,23 +136,13 @@
|
|||
"enableGroups": "Групповые чаты",
|
||||
"settingTheme": "Ночной режим",
|
||||
"addNewProfileBtn": "Создать новый профиль",
|
||||
"profileOnionLabel": "Send this address to contacts you want to connect with",
|
||||
"savePeerHistoryDescription": "Определяет политику хранения или удаления сообщений с данным контактом",
|
||||
"savePeerHistory": "Настройка истории",
|
||||
"deleteConfirmLabel": "Введите УДАЛИТЬ, чтобы продолжить",
|
||||
"deleteConfirmText": "УДАЛИТЬ",
|
||||
"localeCy": "Валлийский",
|
||||
"localeDa": "Датский",
|
||||
"localeEl": "Греческий",
|
||||
"localeNo": "Норвежский",
|
||||
"localeLb": "Люксембургский",
|
||||
"settingGroupBehaviour": "Поведение",
|
||||
"settingsGroupExperiments": "Эксперименты",
|
||||
"labelTorNetwork": "Сеть Tor",
|
||||
"conversationNotificationPolicyNever": "Никогда",
|
||||
"newMessageNotificationConversationInfo": "Новое сообщение от %1",
|
||||
"newMessageNotificationSimple": "Новое сообщение",
|
||||
"localeRo": "Румынский",
|
||||
"msgAddToAccept": "Добавьте учетную запись в контакты, чтобы принять этот файл.",
|
||||
"btnSendFile": "Отправить файл",
|
||||
"msgConfirmSend": "Вы уверены, что хотите отправить?",
|
||||
|
@ -109,7 +159,6 @@
|
|||
"resetTor": "Сброс",
|
||||
"descriptionBlockUnknownConnections": "Если включить этот параметр, все соединения от людей, не состоящих в ваших контактах будут отклонены.",
|
||||
"descriptionExperimentsGroups": "Данная экспериментальная функция позволяет создавать группы в Cwtch, чтобы облегчить Вам общение с более чем одним контактом. Для создания групп необходимо включить функцию создания сервера и создать сервер в главном меню программы.",
|
||||
"descriptionExperiments": "Экспериментальные функции Cwtch это необязательные дополнительные функции, которые добавляют некоторые возможности, но не имеют такой же устойчивости к метаданным как если бы вы общались через традиционный чат 1 на 1..",
|
||||
"settingLanguage": "Выбрать язык",
|
||||
"profileName": "Введите имя...",
|
||||
"themeNameNeon2": "Неон2",
|
||||
|
@ -134,7 +183,6 @@
|
|||
"importLocalServerButton": "Импорт %1",
|
||||
"importLocalServerSelectText": "Выбрать локальный сервер",
|
||||
"newMessagesLabel": "Новое сообщение",
|
||||
"localeRU": "Русский",
|
||||
"saveBtn": "Сохранить",
|
||||
"networkStatusOnline": "В сети",
|
||||
"defaultProfileName": "Алиса",
|
||||
|
@ -190,7 +238,6 @@
|
|||
"contactGoto": "Перейти к сообщению от %1",
|
||||
"settingUIColumnDouble14Ratio": "Двойной (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Двойной (1:2)",
|
||||
"localePl": "Польский",
|
||||
"tooltipRemoveThisQuotedMessage": "Удалить цитируемое сообщение.",
|
||||
"tooltipReplyToThisMessage": "Ответить на это сообщение",
|
||||
"tooltipRejectContactRequest": "Отклонить запрос в контакты.",
|
||||
|
@ -236,8 +283,6 @@
|
|||
"invalidImportString": "Недействительная строка импорта",
|
||||
"conversationSettings": "Настройки чата",
|
||||
"enterCurrentPasswordForDelete": "Пожалуйста, введите текущий пароль, чтобы удалить этот профиль.",
|
||||
"localeIt": "Итальянский",
|
||||
"localeEs": "Испанский",
|
||||
"todoPlaceholder": "Выполняю...",
|
||||
"addNewItem": "Добавить новый элемент в список",
|
||||
"addListItem": "Добавить новый элемент",
|
||||
|
@ -257,10 +302,6 @@
|
|||
"themeLight": "Светлая",
|
||||
"largeTextLabel": "Большой",
|
||||
"settingInterfaceZoom": "Уровень масштабирования",
|
||||
"localeDe": "Немецкий",
|
||||
"localePt": "Португальский",
|
||||
"localeFr": "Французский",
|
||||
"localeEn": "Английский",
|
||||
"blockUnknownLabel": "Блокировать неизвестные контакты",
|
||||
"zoomLabel": "Масштаб интерфейса (в основном влияет на размеры текста и кнопок)",
|
||||
"versionBuilddate": "Версия: %1 Сборка от: %2",
|
||||
|
|
|
@ -0,0 +1,384 @@
|
|||
{
|
||||
"@@locale": "sk",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"deleteBtn": " Vymazať",
|
||||
"saveBtn": "Uložiť",
|
||||
"serverLabel": "Server",
|
||||
"profileOnionLabel": "Poslať túto adresu ľuďom s ktorými sa chcete spojiť",
|
||||
"profileAutostartDescription": "Ovláda či bude profil automaticky spustený pri štarte",
|
||||
"profileAutostartLabel": "Spúšťať spoločne zo systémom",
|
||||
"localePtBr": "Brazílska Portugalčina \/ Português do Brasil",
|
||||
"localeNl": "Holandsky \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Kód podpora povoluje zdielanie dát (ako na príklad identitu profilu) pomocou QR Kódou",
|
||||
"enableExperimentQRCode": "QR Kódy",
|
||||
"shareMenuQRCode": "Ukázať QR Kód",
|
||||
"shareProfileMenuTooltop": "Zdielať profil skrz...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Dokončená",
|
||||
"acquiringTicketsFromServer": "Vykonávam Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Zdielanie súborov nemôže byť povolené pretože zložka Stiahnuté nebola vybraná, alebo ukazuje na neexistujúcu zložku.",
|
||||
"localeTr": "Turecky \/ Türk",
|
||||
"tooltipUnpinConversation": "Unpinnúť konverzáciu z vrchu \"Konverzácií\"",
|
||||
"tooltipPinConversation": "Pinnúť konverzáciu na vrchol\"Konverzácií\"",
|
||||
"replyingTo": "Odpovedá %1",
|
||||
"fileDownloadUnavailable": "Zdá sa že súbor je nedostupný. Odosielateľ mohol vypnúť sťahovanie pre tento súbor.",
|
||||
"messageNoReplies": "Pre túto správu sa nenašli žiadne odpovede.",
|
||||
"headingReplies": "Odpovede",
|
||||
"viewReplies": "Zobraziť odpovede pre túto správu",
|
||||
"restartFileShare": "Začať Zdielať Súbor",
|
||||
"stopSharingFile": "Zastaviť Zdielanie Súboru",
|
||||
"manageSharedFiles": "Spravovať Zdielané Súbory",
|
||||
"tooltipPreviewFormatting": "Zobrazovať Formátovanie Správy v Reálnom Čase",
|
||||
"tooltipCode": "Kód \/ Monospace",
|
||||
"tooltipStrikethrough": "Prečiarknuté",
|
||||
"tooltipSubscript": "Index",
|
||||
"tooltipSuperscript": "Horný index",
|
||||
"tooltipItalicize": "Naklonené písmo",
|
||||
"tooltipBackToMessageEditing": "Späť k Editovaniu Správy",
|
||||
"tooltipBoldText": "Hrubé písmo",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Nedokážem vrátiť Optimalizáciu Batérie do pôvodného stavu skrz Cwtch. Prosím choďte do Android \/ Nastavenia \/ Aplikácie\/ Cwtch \/ Batéria a nastavte Využitie na 'Optimalizovať'",
|
||||
"settingAndroidPowerExemptionDescription": "Dobrovoľné: Požiadať Android o neoptimalizovanie energie pre Cwtch. Bude to mať za následok vyššiu spotrebu batérie.",
|
||||
"settingAndroidPowerExemption": "Ignorovanie Optimalizácie Batérie pre Android",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Táto funkcia vyžaduje aby Experiment Skupiny bol povolený v Nastaveniach",
|
||||
"messageFormattingDescription": "Povoliť rozšírené formátovanie textu v zobrazovaných správach. Na príklad: **hrubé** a *naklonené písmo*",
|
||||
"formattingExperiment": "Formátovanie Správy",
|
||||
"clickableLinkError": "Chyba pri otváraní linku",
|
||||
"clickableLinksCopy": "Kopírovať link",
|
||||
"clickableLinkOpen": "Otvoriť link",
|
||||
"clickableLinksWarning": "Otvorením tohoto linku sa spustí aplikácia mimo Cwtch, ktorá môže odhaliť metadáta alebo iným spôsobom ohroziť bezpečnosť Cwtch. Otvárajte linky iba od ľudí ktorým veríte. Ste si istý že chcete pokračovať?",
|
||||
"shuttingDownApp": "Vypínam...",
|
||||
"successfullyImportedProfile": "Úspešne Importovaný Profil: %profile",
|
||||
"failedToImportProfile": "Chyba Pri Importovaní Profilu",
|
||||
"importProfileTooltip": "Použiť šifrovanú Cwtch zálohu pre importovanie profilu vytvoreného na inej instancii Cwtch.",
|
||||
"importProfile": "Importovať Profil",
|
||||
"exportProfileTooltip": "Zálohovať tento profil do šifrovaného súboru. Tento šifrovaný profil môže byť importovaný do inej Cwtch instancie.",
|
||||
"exportProfile": "Exportovať Profil",
|
||||
"localeDa": "Dánsky \/ Dansk",
|
||||
"localeCy": "Velšsky \/ Cymraeg",
|
||||
"localeEl": "Grécky\/ Ελληνικά",
|
||||
"localeNo": "Nórsky \/ Norsk",
|
||||
"localeLb": "Luxembursky \/ Lëtzebuergesch",
|
||||
"localeRo": "Rumunsky \/ Română",
|
||||
"newMessageNotificationConversationInfo": "Nová Správa Od %1",
|
||||
"newMessageNotificationSimple": "Nová Správa",
|
||||
"notificationContentContactInfo": "Informácie o Konverzácii",
|
||||
"notificationContentSimpleEvent": "Obyčajná Udalosť",
|
||||
"conversationNotificationPolicySettingDescription": "Ovládať správanie notifikácií pre túto konverzáciu",
|
||||
"conversationNotificationPolicySettingLabel": "Pravidlá pre notifikácie konverzácií",
|
||||
"settingsGroupExperiments": "Experimenty",
|
||||
"settingsGroupAppearance": "Vzhľad",
|
||||
"settingGroupBehaviour": "Správanie",
|
||||
"notificationContentSettingDescription": "Ovláda obsah notifikácií konverzácie",
|
||||
"notificationPolicySettingDescription": "Ovláda predvolené správanie notifikácií aplikácie",
|
||||
"notificationContentSettingLabel": "Obsah notifikácií",
|
||||
"notificationPolicySettingLabel": "Pravidlá pre notifikácie",
|
||||
"conversationNotificationPolicyNever": "Nikdy",
|
||||
"conversationNotificationPolicyOptIn": "Opt In",
|
||||
"conversationNotificationPolicyDefault": "Predvolené",
|
||||
"notificationPolicyDefaultAll": "Vrátiť Všetko na Predvolené",
|
||||
"notificationPolicyOptIn": "Opt In",
|
||||
"notificationPolicyMute": "Stlmiť konverzáciu",
|
||||
"tooltipSelectACustomProfileImage": "Vybrať Vlastnú Profilovú Fotku",
|
||||
"torSettingsEnabledCacheDescription": "Ukladať aktuálny Tor consensus pre opätovné využitie pri ďalšom otvorení Cwtch. Toto umožní Toru spúštať sa rýchlejšie. Ak je toto nastavenie vypnuté, Cwtch sa zbaví uložených dát pri každom štarte.",
|
||||
"torSettingsEnableCache": "Ukladať Tor Consensus",
|
||||
"labelTorNetwork": "Sieť Tor",
|
||||
"descriptionACNCircuitInfo": "Detailné informácie o ceste ktorú využíva anonymná komunikačná sieť cez ktorú ste pripojený k tejto konverzácii.",
|
||||
"labelACNCircuitInfo": "Informácie o ACN Circuit",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Vybrať inú predvolenú zložku pre stiahnuté súbory.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Keď sú súbory sťahované automaticky (Na príklad: obrázky, ktorých náhľady sú povolené), je potrebná predvolená zložka pre ich Stiahnutie.",
|
||||
"torSettingsErrorSettingPort": "Číslo Portu musí byť medzi 1 a 65535",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Prepísať predvolenú tor konfiguráciu. Pozor: Tento úkon môže byť nebezpečný. Zapnite toto nastavenie iba ak viete čo robíte.",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Použiť vlastnú Konfiguráciu Služby Tor (torrc)",
|
||||
"torSettingsCustomControlPortDescription": "Použiť vlastný port pre ovládanie pripojení k Tor proxy",
|
||||
"torSettingsCustomControlPort": "Iný Control Port",
|
||||
"torSettingsCustomSocksPortDescription": "Použiť iný port pre dátové pripojenia k Tor proxy",
|
||||
"torSettingsCustomSocksPort": "Vlastný SOCKS Port",
|
||||
"torSettingsEnabledAdvancedDescription": "Použiť Tor službu na vašom systéme, alebo zmeniť parametre Cwtch Tor Služby",
|
||||
"torSettingsEnabledAdvanced": "Povoliť Rozšírenú Konfiguráciu Tor",
|
||||
"msgAddToAccept": "Pridajte užívatela do kontaktov aby ste mohli prijať tento súbor.",
|
||||
"btnSendFile": "Odoslať Súbor",
|
||||
"msgConfirmSend": "Ste si istý že chcete poslať",
|
||||
"msgFileTooBig": "Veľkosť súboru nemôže presiahnuť 10 GB",
|
||||
"storageMigrationModalMessage": "Prenášam profily do nového formátu. Môže to potrvať niekoľko minút...",
|
||||
"loadingCwtch": "Načítavam Cwtch...",
|
||||
"themeColorLabel": "Farebný Motív",
|
||||
"themeNameNeon2": "Neón2",
|
||||
"themeNameNeon1": "Neón1",
|
||||
"themeNameMidnight": "Polnoc",
|
||||
"themeNameMermaid": "Morská víla",
|
||||
"themeNamePumpkin": "Tekvica",
|
||||
"themeNameGhost": "Duch",
|
||||
"themeNameVampire": "Upír",
|
||||
"themeNameWitch": "Čarodejnica",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Zložka Stiahnuté",
|
||||
"settingImagePreviewsDescription": "Obrázky a profilovky budú sťahované a zobrazované automaticky. Odporúčame aby ste tento experiment nezapínali v prípade že používate Cwtch s kontaktmi ktorým nedôverujete.",
|
||||
"settingImagePreviews": "Náhľady Obrázkou a Profilové Obrázky",
|
||||
"experimentClickableLinksDescription": "Experiment kliknutie na linky vám dovoluje kliknúť na link zdielaný v správach",
|
||||
"enableExperimentClickableLinks": "Povoliť Kliknutie na Linky",
|
||||
"serverConnectionsLabel": "Spojenie",
|
||||
"serverTotalMessagesLabel": "Všetky Správy",
|
||||
"serverMetricsLabel": "Štatistiky Serveru",
|
||||
"manageKnownServersShort": "Servery",
|
||||
"manageKnownServersLong": "Spravovať Známe Servery",
|
||||
"displayNameTooltip": "Prosím zadajte zobrazované meno",
|
||||
"manageKnownServersButton": "Spravovať Známe Servery",
|
||||
"fieldDescriptionLabel": "Popis",
|
||||
"groupsOnThisServerLabel": "Skupiny ktorých som členom a sú hostované na tomto servery",
|
||||
"importLocalServerButton": "Importovať %1",
|
||||
"importLocalServerSelectText": "Zvoliť Lokálny Server",
|
||||
"importLocalServerLabel": "Importovať lokálne hostovaný server",
|
||||
"newMessagesLabel": "Nové správy",
|
||||
"localeRU": "Rusky \/ Русский",
|
||||
"copyServerKeys": "Kopírovať klúče",
|
||||
"verfiyResumeButton": "Overiť\/Pokračovať",
|
||||
"fileCheckingStatus": "Kontrolujem stav sťahovania",
|
||||
"fileInterrupted": "Prerušené",
|
||||
"fileSavedTo": "Uložené do",
|
||||
"encryptedServerDescription": "Šifrovanie serveru heslom ho chráni pred ostatnými ľuďmi ktorý by mohli toto zariadenie využívať taktiež. Šifrované servery sa nedajú odšifrovať, zobraziť alebo sprístupniť pokiaľ nie je zadané správne heslo.",
|
||||
"plainServerDescription": "Odporúčame aby ste si ochránili Cwtch servery heslom. Ak si na servery nenastavíte heslo, každý s prístupom k tomuto zariadeniu bude schopný vidieť informácie o danom servry, vrátane citlivých kryptografických klúčov.",
|
||||
"deleteServerConfirmBtn": "Vážne vymazať server?",
|
||||
"deleteServerSuccess": "Server bol úspešne vymazaný",
|
||||
"enterCurrentPasswordForDeleteServer": "Prosím zadajte aktuálne heslo pre zmazanie tohoto serveru",
|
||||
"copyAddress": "Kopírovať Adresu",
|
||||
"settingServersDescription": "Experiment hostovanie serverov povoluje hostovanie a správu Cwtch serverov",
|
||||
"settingServers": "Hostujúce Servery",
|
||||
"enterServerPassword": "Zadajte heslo pre odomknutie serveru",
|
||||
"unlockProfileTip": "Na začiatok si prosím vytvorte alebo odomknite profil!",
|
||||
"unlockServerTip": "Prosím vytvorte alebo odomknite server pre začatie!",
|
||||
"addServerTooltip": "Pridať nový server",
|
||||
"serversManagerTitleShort": "Servery",
|
||||
"serversManagerTitleLong": "Servery Ktoré Hostujete",
|
||||
"saveServerButton": "Uložiť Server",
|
||||
"serverAutostartDescription": "Ovláda či aplikácia automaticky spustí server pri štarte",
|
||||
"serverAutostartLabel": "Automaticky spúštať",
|
||||
"serverEnabledDescription": "Spustiť alebo zastaviť server",
|
||||
"serverEnabled": "Server Povolený",
|
||||
"serverDescriptionDescription": "Váš lokálny popis tohoto servera. Nebude nikde zdielaný.",
|
||||
"serverDescriptionLabel": "Popis Servera",
|
||||
"serverAddress": "Adresa Servera",
|
||||
"editServerTitle": "Upraviť Server",
|
||||
"addServerTitle": "Pridať Server",
|
||||
"titleManageProfilesShort": "Profily",
|
||||
"descriptionFileSharing": "Experiment zdielanie súborov vám umožňuje odosielať a príjmať súbory od Cwtch kontaktov a skupín. Majte na pamäti že zdielanie súboru zo skupinou znamená priame spojenie s členmy skupiny, aby súbor mohli stiahnuť.",
|
||||
"settingFileSharing": "Zdielanie Súborov",
|
||||
"tooltipSendFile": "Poslať Súbor",
|
||||
"messageFileOffered": "Kontakt vám chce poslať súbor",
|
||||
"messageFileSent": "Poslali ste súbor",
|
||||
"messageEnableFileSharing": "Povolte experiment zdielanie súborov pre zobrazenie tejto správy.",
|
||||
"labelFilesize": "Veľkosť",
|
||||
"labelFilename": "Meno súboru",
|
||||
"downloadFileButton": "Stiahnuť",
|
||||
"openFolderButton": "Otvoriť Zložku",
|
||||
"retrievingManifestMessage": "Získavam informácie o súbore...",
|
||||
"descriptionStreamerMode": "Po zapnutí toto nastavenie urobí aplikáciu vizuálne súkromejšou. Na príklad: zakrije niektoré položky, ako profil a adresy kontaktov ",
|
||||
"streamerModeLabel": "Streamer\/Prezentačný Mód",
|
||||
"archiveConversation": "Archivovať túto konverzáciu",
|
||||
"blockUnknownConnectionsEnabledDescription": "Spojenia od neznámich kontaktov sú zablokované. Môžete to zmeniť v nastaveniach",
|
||||
"showMessageButton": "Ukázať Správu",
|
||||
"blockedMessageMessage": "Táto správa je od profilu ktorý ste zablokovali.",
|
||||
"placeholderEnterMessage": "Napísať správu...",
|
||||
"plainProfileDescription": "Odporúčame aby ste si ochránili Cwtch profily heslom. Ak si na profile nenastavíte heslo, každý s prístupom k tomuto zariadeniu bude schopný vidieť informácie o danom profile, jeho kontakty, odoslané správy a citlivé kryptografické klúče.",
|
||||
"encryptedProfileDescription": "Šifrovanie profilu heslom ho chráni pred ostatnými ľuďmi ktorí by mohli taktiež používať toto zariadenie. Šifrované profily nemôžu byť dešífrované, zobrazené alebo sprístupnené pokiaľ nie je zadané správne heslo.",
|
||||
"addContactConfirm": "Pridať kontakt %1",
|
||||
"addContact": "Pridať kontakt",
|
||||
"contactGoto": "Prejsť ku konverzácii s %1",
|
||||
"settingUIColumnOptionSame": "Rovnaké ako nastavenie portrétového režimu",
|
||||
"settingUIColumnDouble14Ratio": "Dvojité (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Dvojité(1:2)",
|
||||
"settingUIColumnSingle": "Jeden",
|
||||
"settingUIColumnLandscape": "UI Stĺpiky v Móde na Šírku",
|
||||
"settingUIColumnPortrait": "UI Stĺpiky v Režime na Výšku",
|
||||
"localePl": "Polsky \/ Polski",
|
||||
"tooltipRemoveThisQuotedMessage": "Odstrániť citovanú správu",
|
||||
"tooltipReplyToThisMessage": "Odpovedať na túto správu",
|
||||
"tooltipRejectContactRequest": "Odmietnuť túto žiadosť o kontakt",
|
||||
"tooltipAcceptContactRequest": "Príjmuť túto žiadosť o kontakt.",
|
||||
"notificationNewMessageFromGroup": "Nová správa v skupine!",
|
||||
"notificationNewMessageFromPeer": "Nová správa od kontaktu!",
|
||||
"tooltipHidePassword": "Skryť Heslo",
|
||||
"tooltipShowPassword": "Zobraziť Heslo",
|
||||
"groupInviteSettingsWarning": "Boli ste pozvaný do skupiny! Prosím povolte Experiment Skupinový Chat v Nastaveniach pre zobrazenie tejto Pozvánky.",
|
||||
"shutdownCwtchAction": "Vypnúť Cwtch",
|
||||
"shutdownCwtchDialog": "Ste si istý že chcete vypnúť Cwtch? Všetky spojenia budú ukončené a aplikácia sa zatvory.",
|
||||
"shutdownCwtchDialogTitle": "Vypnúť Cwtch?",
|
||||
"shutdownCwtchTooltip": "Vypnúť Cwtch",
|
||||
"malformedMessage": "Poškodená správa",
|
||||
"profileDeleteSuccess": "Profil bol úspešne vymazaný",
|
||||
"debugLog": "Zapnúť console debug logging",
|
||||
"torNetworkStatus": "Status siete Tor",
|
||||
"addContactFirst": "Pridaje alebo vyberte kontakt pre začatie chatu.",
|
||||
"createProfileToBegin": "Prosím vytvorte alebo odomknite profil",
|
||||
"nickChangeSuccess": "Meno profilu úspešne zmenené",
|
||||
"addServerFirst": "Musíte pridať server pred tým ako môžete vytvoriť skupinu",
|
||||
"deleteProfileSuccess": "Profil úspešne vymazaný",
|
||||
"sendInvite": "Poslať kontakt alebo skupinovú pozvánku",
|
||||
"sendMessage": "Poslať Správu",
|
||||
"cancel": "Zrušiť",
|
||||
"resetTor": "Resetovať",
|
||||
"torStatus": "Tor Status",
|
||||
"torVersion": "Tor Verzia",
|
||||
"sendAnInvitation": "Poslali ste pozvánku k: ",
|
||||
"contactSuggestion": "Toto je návrh kontantu pre:",
|
||||
"rejected": "Zamietnuté!",
|
||||
"accepted": "Akceptované!",
|
||||
"chatHistoryDefault": "Táto konverzácia bude vymazaná po zavretí Cwtch! História správ môže byť povolená pre každý kontakt zvlášť v menu Nastavení v pravom hornom rohu.",
|
||||
"newPassword": "Nové Heslo",
|
||||
"yesLeave": "Áno, Opustiť Túto Konverzáciu",
|
||||
"reallyLeaveThisGroupPrompt": "Ste si istý že chcete opustiť túto konverzáciu? Všetky správy a atribúty budú vymazané.",
|
||||
"leaveConversation": "Opustiť Túto Konverzáciu",
|
||||
"inviteToGroup": "Boli ste pozvaný do skupiny:",
|
||||
"titleManageServers": "Spravovať Servery",
|
||||
"successfullAddedContact": "Úspešne pridané",
|
||||
"descriptionBlockUnknownConnections": "Ak zapnuté, toto nastavenie automaticky zavrie spojenia od Cwtch užívateľov ktorých ste nepridali do listu kontaktov.",
|
||||
"descriptionExperimentsGroups": "Experiment skupiny umožnuje Cwtch spojenie s nedôveryhodnou severovou infraštruktúrou aby mohol naviazať spojenie s viac ako jedným kontaktom.",
|
||||
"descriptionExperiments": "Cwtch experimenty sú dobrovoľné, opt-in funkcie ktoré pridávajú Cwtch funkcionalitu pri ktorej nie je súkromie na prvom mieste, tak ako u 1:1 metadátam odolných chatou. Na príklad: skupinový chat, integrácia botou, atď.",
|
||||
"titleManageProfiles": "Spravovať Cwtch Profily",
|
||||
"tooltipUnlockProfiles": "Otvoriť šifrované profily zadaním ich hesla",
|
||||
"titleManageContacts": "Konverzácie",
|
||||
"tooltipAddContact": "Pridať nový kontakt alebo konverzáciu",
|
||||
"tooltipOpenSettings": "Otvoriť panel nastavení",
|
||||
"contactAlreadyExists": "Kontakt Už Existuje",
|
||||
"invalidImportString": "Nesprávna adresa",
|
||||
"conversationSettings": " Nastavenia Konverzácie",
|
||||
"enterCurrentPasswordForDelete": "Prosím zadajte heslo pre vymazanie profilu.",
|
||||
"enableGroups": "Povoliť Skupinový Chat",
|
||||
"localeIt": "Taliansky \/ Italiano",
|
||||
"localeEs": "Španielsky \/ Español",
|
||||
"todoPlaceholder": "Urobiť neskôr...",
|
||||
"addNewItem": "Pridať novú položku do zoznamu",
|
||||
"addListItem": "Pridať novú položku",
|
||||
"newConnectionPaneTitle": "Nové Spojenie",
|
||||
"networkStatusOnline": "Online",
|
||||
"networkStatusConnecting": "Pripájam sa k sieti a kontaktom...",
|
||||
"networkStatusAttemptingTor": "Pokúšam sa spojiť s Tor sieťou",
|
||||
"networkStatusDisconnected": "Žiadny prístup na internet, skontrolujte vaše spojenie.",
|
||||
"viewGroupMembershipTooltip": "Zobraziť Členstvo v Skupine",
|
||||
"loadingTor": "Načítavam tor...",
|
||||
"smallTextLabel": "Malé",
|
||||
"defaultScalingText": "Predvolená veľkosť textu (mierka):",
|
||||
"builddate": "Vyrobené: %2",
|
||||
"version": "Verzia %1",
|
||||
"versionTor": "Verzia %1 s tor %2",
|
||||
"experimentsEnabled": "Povoliť Experimenty",
|
||||
"themeDark": "Tmavá",
|
||||
"themeLight": "Svetlá",
|
||||
"settingTheme": "Použiť Svetlý Režim",
|
||||
"largeTextLabel": "Veľké",
|
||||
"settingInterfaceZoom": " Úroveň priblíženia",
|
||||
"localeDe": "Nemecky \/ Deutsch",
|
||||
"localePt": "Portugalsky \/ Portuguesa",
|
||||
"localeFr": "Francúzsky \/ Français",
|
||||
"localeEn": "Anglicky \/ English",
|
||||
"settingLanguage": "Jazyk",
|
||||
"blockUnknownLabel": "Zablokovať Neznáme Kontakty",
|
||||
"zoomLabel": "Priblíženie užívateľského prostredia (ovplyvňuje hlavne veľkosť textu a tlačidiel)",
|
||||
"versionBuilddate": "Verzia: %1 Vyrobené: %2",
|
||||
"cwtchSettingsTitle": "Cwtch Nastavenia",
|
||||
"unlock": "Odomknúť",
|
||||
"yourServers": "Vaše Servery",
|
||||
"yourProfiles": "Vaše Profily",
|
||||
"error0ProfilesLoadedForPassword": "0 načítaných profilov s tým heslom",
|
||||
"password": "Heslo",
|
||||
"enterProfilePassword": "Zadajte heslo k zobrazeniu vašich profilov",
|
||||
"addNewProfileBtn": "Pridať nový profil",
|
||||
"deleteConfirmText": "VYMAZAT",
|
||||
"deleteProfileConfirmBtn": "Skutočne Vymazať Profil",
|
||||
"deleteConfirmLabel": "Napíšte VYMAZAT pre potvrdenie",
|
||||
"deleteProfileBtn": "Vymazať Profil",
|
||||
"passwordChangeError": "Chyba pri zmene hesla: Vložené heslo bolo odmietnuté",
|
||||
"passwordErrorMatch": "Heslá sa nezhodujú",
|
||||
"saveProfileBtn": "Uložiť Profil",
|
||||
"createProfileBtn": "Vytvoriť Profil",
|
||||
"passwordErrorEmpty": "Heslo nemôže byť prázdne",
|
||||
"password2Label": "Znovu zadajte heslo",
|
||||
"password1Label": "Heslo",
|
||||
"currentPasswordLabel": "Aktuálne Heslo",
|
||||
"yourDisplayName": "Vaše Zobrazované Meno",
|
||||
"noPasswordWarning": "Nepoužitie hesla na tomto účte znamená, že všetky dáta uložené lokálne nebudú šifrované",
|
||||
"radioNoPassword": "Nešifrované (Žiadne heslo)",
|
||||
"radioUsePassword": "Heslo",
|
||||
"editProfile": "Upraviť Profil",
|
||||
"newProfile": "Nový Profil",
|
||||
"defaultProfileName": "Alice",
|
||||
"profileName": "Zobrazované Meno",
|
||||
"editProfileTitle": "Upraviť Profil",
|
||||
"addProfileTitle": "Pridať nový profil",
|
||||
"unblockBtn": "Odblokovať Kontakt",
|
||||
"dontSavePeerHistory": "Vymazať Históriu",
|
||||
"savePeerHistoryDescription": "Určuje či vymazať všetku históriu spojenú s kontaktom",
|
||||
"savePeerHistory": "Uložiť Históriu",
|
||||
"blockBtn": "Zablokovať Kontakt",
|
||||
"displayNameLabel": "Zobrazované Meno",
|
||||
"copiedToClipboardNotification": "Skopírované do Schránky",
|
||||
"addressLabel": "Adresa",
|
||||
"puzzleGameBtn": "Puzzle Hra",
|
||||
"bulletinsBtn": "Bulletiny",
|
||||
"listsBtn": "Zoznamy",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Odmietnuť",
|
||||
"acceptGroupBtn": "Prijať",
|
||||
"acceptGroupInviteLabel": "Chcete prijať pozvánku do",
|
||||
"newGroupBtn": "Vytvoriť novú skupinu",
|
||||
"copyBtn": "Kopírovať",
|
||||
"peerOfflineMessage": "Kontakt je offline. Správý nemôžu byť doručené",
|
||||
"peerBlockedMessage": "Kontakt je zablokovaný",
|
||||
"pendingLabel": "Čaká sa",
|
||||
"acknowledgedLabel": "Potvrdené",
|
||||
"couldNotSendMsgError": "Správa nemohla byť odoslaná",
|
||||
"dmTooltip": "Klikni pre poslanie priamej správy",
|
||||
"membershipDescription": "Dole je list užívateľov ktorý do skupiny poslali správy. List nemusí zobrazovať všetkých užívateľov ktorý majú ku skupine prístup.",
|
||||
"addListItemBtn": "Pridať Položku",
|
||||
"peerNotOnline": "Kontakt je offline. Aplikácie nemôžu byť momentálne použité.",
|
||||
"searchList": "Hľadať v Zozname",
|
||||
"update": "Aktualizovať",
|
||||
"inviteBtn": "Pozvať",
|
||||
"inviteToGroupLabel": "Pozvať do skupiny",
|
||||
"groupNameLabel": "Meno skupiny",
|
||||
"viewServerInfo": "Informácie o Servery",
|
||||
"serverNotSynced": "Synchronizujem nové správy (Môže to chvíľu trvať)...",
|
||||
"serverSynced": "Synchronizované",
|
||||
"serverConnectivityDisconnected": "Server Odpojený",
|
||||
"serverConnectivityConnected": "Server Pripojený",
|
||||
"serverInfo": "Informácie o Servery",
|
||||
"invitationLabel": "Pozvánka",
|
||||
"search": "Vyhľadať...",
|
||||
"blocked": "Zablokované",
|
||||
"pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation Vložte cwtch adresu, pozvánku alebo key bundle pre pridanie novej konverzácie",
|
||||
"titlePlaceholder": "názov...",
|
||||
"postNewBulletinLabel": "Poslať nový bulletin",
|
||||
"newBulletinLabel": "Nový Bulletin",
|
||||
"joinGroup": "Pripojiť sa k skupine",
|
||||
"createGroup": "Vytvoriť skupinu",
|
||||
"addPeer": "Pridať Kontakt",
|
||||
"groupAddr": "Adresa",
|
||||
"invitation": "Pozvánka",
|
||||
"server": "Server",
|
||||
"peerName": "Meno",
|
||||
"peerAddress": "Adresa",
|
||||
"joinGroupTab": "Pripojiť sa k skupine",
|
||||
"createGroupTab": "Vytvoriť skupinu",
|
||||
"addPeerTab": "Pridať kontakt",
|
||||
"createGroupBtn": " Vytvoriť",
|
||||
"defaultGroupName": "Úžasná Skupina",
|
||||
"createGroupTitle": "Vytvoriť Skupinu",
|
||||
"profileEnabled": "Povoliť",
|
||||
"profileEnabledDescription": "Spustiť alebo zastaviť profil"
|
||||
}
|
|
@ -0,0 +1,384 @@
|
|||
{
|
||||
"@@locale": "tr",
|
||||
"@@last_modified": "2023-04-03T22:39:52+02:00",
|
||||
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ",
|
||||
"profileInfoHint2": "You can add up to 3 fields.",
|
||||
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.",
|
||||
"availabilityStatusTooltip": "Set your availability status.",
|
||||
"availabilityStatusBusy": "Busy",
|
||||
"availabilityStatusAway": "Away",
|
||||
"availabilityStatusAvailable": "Available",
|
||||
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.",
|
||||
"blodeuweddProcessing": "Blodeuwedd is processing...",
|
||||
"blodeuweddTranslate": "Translate Message",
|
||||
"blodeuweddSummarize": "Summarize Conversation",
|
||||
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.",
|
||||
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.",
|
||||
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.",
|
||||
"blodeuweddExperimentEnable": "Blodeuwedd Assistant",
|
||||
"localeKo": "Korean \/ 한국어",
|
||||
"localeSk": "Slovak \/ Slovák",
|
||||
"profileEnabledDescription": "Profili başlat veya durdur",
|
||||
"profileAutostartLabel": "Otomatik başlatma",
|
||||
"profileAutostartDescription": "Profilin başlangıçta otomatik olarak başlatılıp başlatılmayacağını kontrol eder",
|
||||
"profileEnabled": "Etkinleştir",
|
||||
"localePtBr": "Brezilya Portekizcesi \/ Português do Brasil",
|
||||
"experimentQRCodeDescription": "QR Kod desteği profil kimliği gibi verilerin QR Kodla paylaşılmasına olanak tanır",
|
||||
"acquiringTicketsFromServer": "Spame Karşı Sınama",
|
||||
"acquiredTicketsFromServer": "Spame Karşı Sınama Tamamlandı",
|
||||
"shareProfileMenuTooltop": "Profili paylaş...",
|
||||
"shareMenuQRCode": "QR Kodunu Göster",
|
||||
"enableExperimentQRCode": "QR Kodları",
|
||||
"localeNl": "Flemenkçe \/ Dutch",
|
||||
"errorDownloadDirectoryDoesNotExist": "İndirilenler Klasörü ayarlanmadığı veya mevcut olmayan bir klasöre ayarlandığı için dosya paylaşımı etkinleştirilemiyor.",
|
||||
"radioNoPassword": "Şifrelenmemiş (Parola yok)",
|
||||
"msgAddToAccept": "Dosyayı kabul etmek için bu hesabı kişilerinize ekleyin.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Dosyalar (örn. görsel önizlemeleri etkinleştirildiğinde görsel dosyaları) otomatik olarak indirildiğinde, dosyaların indirileceği varsayılan bir konum gereklidir.",
|
||||
"torSettingsEnabledCacheDescription": "İndirilmiş Tor uzlaşmasını Cwtch'un bir sonraki açılışında yeniden kullanmak için önbelleğe alın. Bu Tor'un daha hızlı açılmasını sağlar. Devre dışı bırakıldığında Cwtch açılırken önbelleğe alınmış verileri siler.",
|
||||
"notificationContentSimpleEvent": "Yalın Bildiri",
|
||||
"exportProfileTooltip": "Bu profili şifrelenmiş bir dosyaya yedekle. Şifrelenmiş dosya başka bir Cwtch uygulamasına aktarılabilir.",
|
||||
"importProfileTooltip": "Başka Cwtch oluşumunda oluşturulmuş bir profili içeri aktarmak için şifrelenmiş Cwtch yedeği kullanın.",
|
||||
"clickableLinksWarning": "Bu URL'yi açmak Cwtch dışında bir uygulama başlatacak ve metadatanız teşhir olabilir veya Cwtch'un güvenliği tehlikeye girebilir. Yalnızca güvendiğiniz kişilerden gelen URL'leri açın. Devam etmek istediğinize emin misiniz?",
|
||||
"settingAndroidPowerExemptionDescription": "Opsiyonel: Android'den Cwtch'u optimize edilmiş güç yönetiminden muaf tutmasını isteyin. Bu, daha fazla pil kullanımı pahasına uygulamanın daha stabil çalışmasını sağlayacaktır.",
|
||||
"localeTr": "Türkçe \/ Türkçe",
|
||||
"defaultGroupName": "Muhteşem Grup",
|
||||
"defaultProfileName": "Alice",
|
||||
"localeDe": "Almanca \/ Deutsch",
|
||||
"localePl": "Lehçe \/ Polski",
|
||||
"localeDa": "Danca \/ Dansk",
|
||||
"acceptGroupInviteLabel": "Daveti kabul etmek istiyor musunuz",
|
||||
"pendingLabel": "Beklemede",
|
||||
"chatBtn": "Sohbet",
|
||||
"yourDisplayName": "Kullanıcı Adınız",
|
||||
"localeEn": "İngilizce \/ English",
|
||||
"localeFr": "Fransızca \/ Français",
|
||||
"localePt": "Portekizce \/ Portuguesa",
|
||||
"networkStatusAttemptingTor": "Tor ağına bağlanılıyor",
|
||||
"localeEs": "İspanyolca \/ Español",
|
||||
"localeIt": "İtalyanca \/ Italiano",
|
||||
"debugLog": "Konsol hata ayıklama kaydını başlat",
|
||||
"localeRU": "Rusça \/ Русский",
|
||||
"serverMetricsLabel": "Sunucu Bilgileri",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"themeNameWitch": "Cadı",
|
||||
"themeNameVampire": "Vampir",
|
||||
"themeNameGhost": "Hayalet",
|
||||
"themeNamePumpkin": "Balkabağı",
|
||||
"themeNameMermaid": "Denizkızı",
|
||||
"themeNameMidnight": "Gece",
|
||||
"themeNameNeon1": "Neon1",
|
||||
"themeNameNeon2": "Neon2",
|
||||
"descriptionACNCircuitInfo": "Anonim iletişim ağının (ACN) bu konuşmaya bağlanmak için kullandığı yol hakkında ayrıntılı bilgi.",
|
||||
"tooltipSelectACustomProfileImage": "Profil Resmi Seçin",
|
||||
"notificationPolicyMute": "Sessiz",
|
||||
"localeRo": "Romence \/ Română",
|
||||
"localeLb": "Lüksemburgca \/ Lëtzebuergesch",
|
||||
"localeNo": "Norveççe \/ Norsk",
|
||||
"localeEl": "Yunanca \/ Ελληνικά",
|
||||
"localeCy": "Galce \/ Cymraeg",
|
||||
"notificationPolicyOptIn": "Mümkünse Al",
|
||||
"conversationNotificationPolicyOptIn": "Mümkünse Al",
|
||||
"tooltipCode": "Kod \/ Monospace",
|
||||
"createGroupTitle": "Grup Oluştur",
|
||||
"serverLabel": "Sunucu",
|
||||
"createGroupBtn": "Oluştur",
|
||||
"profileOnionLabel": "Bu adresi bağlantı kurmak istediğiniz insanlara gönderin",
|
||||
"addPeerTab": "Kişi ekle",
|
||||
"createGroupTab": "Grup oluştur",
|
||||
"joinGroupTab": "Gruba katıl",
|
||||
"peerAddress": "Adres",
|
||||
"peerName": "İsim",
|
||||
"server": "Sunucu",
|
||||
"invitation": "Davet",
|
||||
"groupAddr": "Adres",
|
||||
"addPeer": "Kişi Ekle",
|
||||
"createGroup": "Grup oluştur",
|
||||
"joinGroup": "Gruba katıl",
|
||||
"newBulletinLabel": "Yeni Bülten",
|
||||
"postNewBulletinLabel": "Yeni bülten yayınla",
|
||||
"titlePlaceholder": "başlık...",
|
||||
"pasteAddressToAddContact": "Yeni konuşma eklemek için buraya bir cwtch adresi, davetiye veya anahtar paketi yapıştırın",
|
||||
"blocked": "Engelli",
|
||||
"search": "Ara...",
|
||||
"invitationLabel": "Davet",
|
||||
"serverInfo": "Sunucu Bilgileri",
|
||||
"serverConnectivityConnected": "Sunucu Bağlandı",
|
||||
"serverConnectivityDisconnected": "Sunucu Bağlantısı Kesildi",
|
||||
"serverSynced": "Senkronize Edildi",
|
||||
"serverNotSynced": "Yeni Mesajlar Senkronize Oluyor (Biraz zaman alabilir)...",
|
||||
"viewServerInfo": "Sunucu Bilgileri",
|
||||
"groupNameLabel": "Grup İsmi",
|
||||
"saveBtn": "Kaydet",
|
||||
"inviteToGroupLabel": "Gruba davet et",
|
||||
"inviteBtn": "Davet Et",
|
||||
"deleteBtn": "Sil",
|
||||
"update": "Güncelleştir",
|
||||
"searchList": "Listede Ara",
|
||||
"peerNotOnline": "Kişi çevrimdışı. Uygulamalar şu anda kullanılamıyor.",
|
||||
"addListItemBtn": "Öğe Ekle",
|
||||
"membershipDescription": "Aşağıda gruba ileti gönderen kullanıcıların listesi verilmiştir. Bu liste gruba erişimi olan tüm kullanıcıları yansıtmayabilir.",
|
||||
"dmTooltip": "DM için tıklayın",
|
||||
"couldNotSendMsgError": "Mesaj gönderilemedi",
|
||||
"acknowledgedLabel": "Onaylandı",
|
||||
"peerBlockedMessage": "Kişi engelli",
|
||||
"peerOfflineMessage": "Kişi çevrimdışı, mesajlar şu anda iletilemiyor",
|
||||
"copyBtn": "Kopyala",
|
||||
"newGroupBtn": "Yeni grup oluştur",
|
||||
"acceptGroupBtn": "Kabul Et",
|
||||
"rejectGroupBtn": "Reddet",
|
||||
"listsBtn": "Listeler",
|
||||
"bulletinsBtn": "Bültenler",
|
||||
"puzzleGameBtn": "Yapboz",
|
||||
"addressLabel": "Adres",
|
||||
"copiedToClipboardNotification": "Panoya kopyalandı",
|
||||
"displayNameLabel": "Lütfen bir ad girin",
|
||||
"blockBtn": "Kişiyi Engelle",
|
||||
"savePeerHistory": "Geçmişi Kaydet",
|
||||
"savePeerHistoryDescription": "Kişi ile ilgili tüm geçmişin silinip silinmeyeceğini belirler.",
|
||||
"dontSavePeerHistory": "Geçmişi Sil",
|
||||
"unblockBtn": "Kişi Engelini Kaldır",
|
||||
"addProfileTitle": "Yeni profil ekle",
|
||||
"editProfileTitle": "Profili Düzenle",
|
||||
"profileName": "Kullanıcı adı",
|
||||
"newProfile": "Yeni Profil",
|
||||
"editProfile": "Profili Düzenle",
|
||||
"noPasswordWarning": "Bu hesapta parola kullanılmaması yerel olarak depolanan verilerin şifrelenmeyeceği anlamına gelir",
|
||||
"currentPasswordLabel": "Mevcut Parola",
|
||||
"password2Label": "Parolayı yeniden gir",
|
||||
"passwordErrorEmpty": "Parola boş bırakılamaz",
|
||||
"createProfileBtn": "Profil Oluştur",
|
||||
"saveProfileBtn": "Profili Kaydet",
|
||||
"passwordErrorMatch": "Parolalar eşleşmiyor",
|
||||
"passwordChangeError": "Parola değiştirilirken hata oluştu: Verilen parola reddedildi",
|
||||
"deleteProfileBtn": "Profili Sil",
|
||||
"deleteConfirmLabel": "Onaylamak için DELETE yazın",
|
||||
"deleteProfileConfirmBtn": "Profili Gerçekten Sil",
|
||||
"deleteConfirmText": "SİL",
|
||||
"addNewProfileBtn": "Yeni profil ekle",
|
||||
"enterProfilePassword": "Profillerinizi görmek için parolayı girin",
|
||||
"error0ProfilesLoadedForPassword": "Bu parolayla 0 profil yüklendi",
|
||||
"yourProfiles": "Profilleriniz",
|
||||
"yourServers": "Sunucularınız",
|
||||
"unlock": "Kilidi Aç",
|
||||
"cwtchSettingsTitle": "Cwtch Ayarları",
|
||||
"versionBuilddate": "Sürüm: %1 Derlendiği tarih: %2",
|
||||
"zoomLabel": "Arayüz yakınlaştırma (aslen metin ve buton boyutlarını etkiler)",
|
||||
"blockUnknownLabel": "Tanınmayan Kişileri Engelle",
|
||||
"settingLanguage": "Dil",
|
||||
"settingInterfaceZoom": "Yakınlaştırma seviyesi",
|
||||
"largeTextLabel": "Büyük",
|
||||
"settingTheme": "Açık Tema Kullan",
|
||||
"themeLight": "Açık",
|
||||
"themeDark": "Koyu",
|
||||
"experimentsEnabled": "Deneyleri Etkinleştir",
|
||||
"versionTor": "Sürüm %1 ve tor %2",
|
||||
"version": "Sürüm %1",
|
||||
"builddate": "Derlendiği tarih: %2",
|
||||
"defaultScalingText": "Varsayılan metin boyutu (ölçek faktörü: ",
|
||||
"smallTextLabel": "Küçük",
|
||||
"loadingTor": "Tor yükleniyor...",
|
||||
"viewGroupMembershipTooltip": "Grup Üyeliğini Görüntüle",
|
||||
"networkStatusDisconnected": "İnternet bağlantısı kesildi, bağlantınızı kontrol edin",
|
||||
"networkStatusConnecting": "Ağa ve kişilere bağlanıyor...",
|
||||
"networkStatusOnline": "Çevrimiçi",
|
||||
"newConnectionPaneTitle": "Yeni Bağlantı",
|
||||
"addListItem": "Yeni Liste Öğesi Ekle",
|
||||
"addNewItem": "Listeye yeni bir öğe ekle",
|
||||
"todoPlaceholder": "Yapılacaklar...",
|
||||
"enableGroups": "Grup Sohbetini Etkinleştir",
|
||||
"enterCurrentPasswordForDelete": "Profili silmek için parolayı girin.",
|
||||
"conversationSettings": "Sohbet Ayarları",
|
||||
"invalidImportString": "Geçersiz içe aktarma girdisi",
|
||||
"contactAlreadyExists": "Kişi Zaten Ekli",
|
||||
"tooltipOpenSettings": "Ayarlar bölmesini aç",
|
||||
"descriptionExperiments": "Cwtch deneyleri, Cwtch'a grup sohbeti, bot entegrasyonu vb. gibi 1:1 meta veriye dayanıklılıktan farklı gizlilik önceliklerine sahip olabilen işlevler ekleyen opsiyonel özelliklerdir.",
|
||||
"tooltipAddContact": "Yeni bir kişi veya sohbet ekle",
|
||||
"titleManageContacts": "Sohbetler",
|
||||
"tooltipUnlockProfiles": "Parolalarını girerek şifrelenmiş profillerin kilidini açın.",
|
||||
"titleManageProfiles": "Cwtch Profillerini Yönet",
|
||||
"descriptionExperimentsGroups": "Grup deneyi, Cwtch'un birden fazla kişiyle bağlantısını kolaylaştırmak için güvenilmeyen sunucu altyapısına bağlanmasına olanak tanır.",
|
||||
"descriptionBlockUnknownConnections": "Bu seçenek etkinse, kişi listenizde olmayan kullanıcılardan gelen bağlantılar otomatik olarak kapatılır.",
|
||||
"successfullAddedContact": "Başarıyla eklendi",
|
||||
"titleManageServers": "Sunucuları Yönet",
|
||||
"inviteToGroup": "Bir gruba katılma daveti aldınız:",
|
||||
"leaveConversation": "Sohbetten Ayrıl",
|
||||
"reallyLeaveThisGroupPrompt": "Bu görüşmeden ayrılmak istediğinize emin misiniz? Tüm mesajlar silinecek.",
|
||||
"yesLeave": "Evet, Sohbetten Ayrıl",
|
||||
"chatHistoryDefault": "Cwtch kapatıldığında bu konuşma silinecek! Mesaj geçmişi farklı sohbetler için sağ üstteki Ayarlar menüsünden etkinleştirilebilir.",
|
||||
"accepted": "Kabul edildi!",
|
||||
"rejected": "Reddedildi!",
|
||||
"contactSuggestion": "İletişim önerileri: ",
|
||||
"sendAnInvitation": "Bir davetiye gönderdiniz: ",
|
||||
"torVersion": "Tor Sürümü",
|
||||
"torStatus": "Tor Durumu",
|
||||
"resetTor": "Sıfırla",
|
||||
"cancel": "İptal",
|
||||
"sendMessage": "Mesaj Gönder",
|
||||
"sendInvite": "Kişi veya grup daveti gönderme",
|
||||
"deleteProfileSuccess": "Profil başarıyla silindi",
|
||||
"addServerFirst": "Grup oluşturmadan önce sunucu eklemeniz gerekir",
|
||||
"nickChangeSuccess": "Profil kullanıcı adı başarıyla değiştirildi",
|
||||
"createProfileToBegin": "Başlamak için bir profil oluşturun veya kilidini açın",
|
||||
"addContactFirst": "Sohbete başlamak için bir kişi ekleyin veya seçin.",
|
||||
"torNetworkStatus": "Tor ağ durumu",
|
||||
"profileDeleteSuccess": "Profil başarıyla silindi",
|
||||
"malformedMessage": "Hatalı biçimlendirilmiş mesaj",
|
||||
"shutdownCwtchTooltip": "Cwtch'u Kapat",
|
||||
"shutdownCwtchDialogTitle": "Cwtch'u Kapat?",
|
||||
"shutdownCwtchDialog": "Cwtch'i kapatmak istediğinize emin misiniz? Bu tüm bağlantıları kapatacak, ve uygulamadan çıkacaktır.",
|
||||
"shutdownCwtchAction": "Cwtch'u Kapat",
|
||||
"groupInviteSettingsWarning": "Gruba katılma daveti aldınız! Bu Daveti görüntülemek için lütfen Ayarlar'dan Grup Sohbeti Deneyini etkinleştirin.",
|
||||
"tooltipHidePassword": "Parolayı Gizle",
|
||||
"tooltipShowPassword": "Parolayı Göster",
|
||||
"newPassword": "Yeni Parola",
|
||||
"radioUsePassword": "Parola",
|
||||
"password1Label": "Parola",
|
||||
"password": "Parola",
|
||||
"notificationNewMessageFromPeer": "Yeni mesaj!",
|
||||
"notificationNewMessageFromGroup": "Yeni grup mesajı!",
|
||||
"tooltipAcceptContactRequest": "Bağlantı isteğini kabul et",
|
||||
"tooltipRejectContactRequest": "Bağlantı isteğini reddet",
|
||||
"tooltipReplyToThisMessage": "Bu mesajı yanıtla",
|
||||
"tooltipRemoveThisQuotedMessage": "Alıntılanan mesajı kaldır.",
|
||||
"settingUIColumnPortrait": "UI Sütunları Portre Modu",
|
||||
"settingUIColumnLandscape": "UI Sütunları Yatay Modu",
|
||||
"settingUIColumnSingle": "Tek",
|
||||
"settingUIColumnDouble12Ratio": "Çift (1:2)",
|
||||
"settingUIColumnDouble14Ratio": "Çift (1:4)",
|
||||
"settingUIColumnOptionSame": "Portre modu ayarı ile aynı",
|
||||
"contactGoto": "%1 ile olan sohbete git",
|
||||
"addContact": "Kişi ekle",
|
||||
"addContactConfirm": "%1 kişisini ekle",
|
||||
"encryptedProfileDescription": "Bir profili parola ile şifrelemek, profili bu aygıtı kullanabilecek diğer kişilerden korur. Doğru şifre girilene kadar şifrelenmiş profiller görüntülenemez veya erişilemez.",
|
||||
"plainProfileDescription": "Cwtch profillerinizi parola ile korumanızı öneririz. Bir parola belirlemezseniz, bu cihaza erişimi olan herkes kişiler, mesajlar ve kriptografik anahtarlar da dahil olmak üzere hassas bilgilerinize erişebilir.",
|
||||
"placeholderEnterMessage": "Bir mesaj yazın...",
|
||||
"labelFilesize": "Boyut",
|
||||
"blockedMessageMessage": "Bu mesaj blokladığınız bir profilden gönderilmiş",
|
||||
"showMessageButton": "Mesajı Görüntüle",
|
||||
"blockUnknownConnectionsEnabledDescription": "Bilinmeyen kişilerden gelen bağlantılar engelli. Bu özelliği Ayarlar'dan değiştirebilirsiniz",
|
||||
"archiveConversation": "Bu Sohbeti Arşivle",
|
||||
"streamerModeLabel": "Yayıncı\/Sunum Modu",
|
||||
"descriptionStreamerMode": "Bu seçenek etkinleştirildiğinde profiller, iletişim adresleri gibi bilgiler saklanarak uygulama daha gizli hale getirilir.",
|
||||
"retrievingManifestMessage": "Dosya bilgileri alınıyor...",
|
||||
"openFolderButton": "Klasörü Aç",
|
||||
"downloadFileButton": "İndir",
|
||||
"labelFilename": "Dosya Adı",
|
||||
"messageEnableFileSharing": "Bu mesajı görüntüleyebilmek için dosya paylaşma deneyini etkinleştirin.",
|
||||
"settingFileSharing": "Dosya Paylaşma",
|
||||
"messageFileSent": "Bir dosya gönderdiniz",
|
||||
"messageFileOffered": "Kişi size bir dosya göndermek istiyor",
|
||||
"tooltipSendFile": "Dosya Gönder",
|
||||
"descriptionFileSharing": "Dosya paylaşım deneyi, Cwtch kişileri ve gruplarından dosya gönderip almanızı sağlar. Bir dosyayı bir grupla paylaşmanın, o grubun üyelerinin dosyayı indirmek için doğrudan Cwtch üzerinden sizinle bağlantı kurmasıyla sonuçlanacağını unutmayın.",
|
||||
"titleManageProfilesShort": "Profiller",
|
||||
"addServerTitle": "Sunucu Ekle",
|
||||
"editServerTitle": "Sunucuyu Düzenle",
|
||||
"serverAddress": "Sunucu Adresi",
|
||||
"serverDescriptionLabel": "Sunucu Açıklaması",
|
||||
"serverDescriptionDescription": "Kişisel yönetiminiz için sunucu açıklaması, dışarıyla asla paylaşılmayacaktır",
|
||||
"serverEnabled": "Sunucu Etkin",
|
||||
"serverEnabledDescription": "Sunucuyu başlat veya durdur",
|
||||
"serverAutostartLabel": "Otomatik başlatma",
|
||||
"serverAutostartDescription": "Uygulamanın açılışta sunucuyu otomatik olarak başlatıp başlatmayacağını belirler",
|
||||
"saveServerButton": "Sunucuyu Kaydet",
|
||||
"serversManagerTitleLong": "Barındırdığınız Sunucular",
|
||||
"serversManagerTitleShort": "Sunucular",
|
||||
"addServerTooltip": "Yeni sunucu ekle",
|
||||
"unlockServerTip": "Başlamak için bir sunucu oluşturun veya sunucunuzun kilidini açın",
|
||||
"unlockProfileTip": "Başlamak için bir profil oluşturun veya profilinizin kilidini açın",
|
||||
"enterServerPassword": "Sunucuyu açmak için şifre girin",
|
||||
"settingServersDescription": "Sunucu barındırma deneyi Cwtch sunucularını barındırmayı ve yönetmeyi sağlar",
|
||||
"settingServers": "Sunucu Barındırma",
|
||||
"copyAddress": "Adresi Kopyala",
|
||||
"enterCurrentPasswordForDeleteServer": "Lütfen sunucuyu silmek için şifreyi girin",
|
||||
"deleteServerSuccess": "Sunucu başarıyla silindi",
|
||||
"deleteServerConfirmBtn": "Sunucuyu gerçekten sil",
|
||||
"plainServerDescription": "Cwtch sunucularınızı bir parola ile korumanızı öneririz. Bir parola belirlemezseniz, bu cihaza erişimi olan herkes kriptografik anahtarlar da dahil olmak üzere sunucunun hassas bilgilerine erişebilir.",
|
||||
"encryptedServerDescription": "Bir sunucuyu parola ile şifrelemek, sunucuyu bu aygıtı kullanabilecek diğer kişilerden korur. Doğru şifre girilene kadar şifrelenmiş sunucular görüntülenemez veya erişilemez.",
|
||||
"fileSavedTo": "Şuraya kaydedildi",
|
||||
"fileInterrupted": "Kesildi",
|
||||
"fileCheckingStatus": "İndirme durumunu kontrol ediyor",
|
||||
"verfiyResumeButton": "Doğrula\/devam et",
|
||||
"copyServerKeys": "Anahtarları kopyala",
|
||||
"newMessagesLabel": "Yeni Mesajlar",
|
||||
"importLocalServerLabel": "Yerel bir sunucuyu içeri aktar",
|
||||
"importLocalServerSelectText": "Yerel Sunucu Seç",
|
||||
"importLocalServerButton": "%1'i içeri aktar",
|
||||
"groupsOnThisServerLabel": "Bu sunucuda içinde bulunduğum gruplar",
|
||||
"fieldDescriptionLabel": "Açıklama",
|
||||
"manageKnownServersButton": "Bilinen Sunucuları Yönet",
|
||||
"displayNameTooltip": "Lütfen bir ad girin",
|
||||
"manageKnownServersLong": "Bilinen Sunucuları Yönet",
|
||||
"manageKnownServersShort": "Sunucular",
|
||||
"serverTotalMessagesLabel": "Toplam Mesaj",
|
||||
"serverConnectionsLabel": "Bağlantı",
|
||||
"enableExperimentClickableLinks": "Tıklanabilir Linkleri Etkinleştir",
|
||||
"experimentClickableLinksDescription": "Tıklanabilir bağlantılar deneyi, mesajlarda paylaşılan URL'lere tıklamanıza olanak tanır",
|
||||
"settingImagePreviewsDescription": "Görseller ve Profil Resimleri otomatik olarak indirilir ve görüntülenir. Cwtch'u güvenmediğiniz kişilerle iletişim kurmak için kullanıyorsanız bu deneysel özelliği etkinleştirmemenizi öneririz.",
|
||||
"settingDownloadFolder": "İndirilenler Klasörü",
|
||||
"themeColorLabel": "Renk Teması",
|
||||
"loadingCwtch": "Cwtch yükleniyor...",
|
||||
"storageMigrationModalMessage": "Profiller yeni depolama biçimine taşınıyor. Bu işlem birkaç dakika sürebilir...",
|
||||
"msgFileTooBig": "Dosya boyutu 10 GB'ı geçemez",
|
||||
"msgConfirmSend": "Göndermek istediğinize emin misiniz",
|
||||
"btnSendFile": "Dosya Gönder",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Varsayılan tor konfigürasyonunu geçersiz kıl. Uyarı: Bu tehlikeli olabilir. Yalnızca ne yaptığınızı biliyorsanız açın.",
|
||||
"torSettingsEnabledAdvanced": "Gelişmiş Tor Konfigürasyonunu Etkinleştir",
|
||||
"torSettingsUseCustomTorServiceConfiguration": "Özel Tor Hizmeti Konfigürasyonunu (torrc) Kullan",
|
||||
"torSettingsEnabledAdvancedDescription": "Sisteminizde mevcut bir Tor hizmetini kullanın, veya Cwtch Tor Hizmeti'nin parametrelerini değiştirin",
|
||||
"torSettingsCustomSocksPort": "Özel SOCKS Portu",
|
||||
"torSettingsCustomControlPortDescription": "Tor proxy'sine kontrol bağlantıları için özel bir port kullan",
|
||||
"torSettingsCustomSocksPortDescription": "Tor proxy'sine veri bağlantıları için özel bir port kullan",
|
||||
"torSettingsCustomControlPort": "Özel Kontrol Portu",
|
||||
"torSettingsErrorSettingPort": "Port Numarası 1 ile 65535 arasında olmalıdır",
|
||||
"settingImagePreviews": "Görsel Önizlemeleri ve Profil Resimleri",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "İndirilen dosyalara farklı bir varsayılan klasör seçmek için gözat.",
|
||||
"labelACNCircuitInfo": "ACN Ağ Bilgisi",
|
||||
"labelTorNetwork": "Tor Ağı",
|
||||
"torSettingsEnableCache": "Tor Uzlaşmasını Önbelleğe Al",
|
||||
"notificationPolicyDefaultAll": "Tümü Varsayılan",
|
||||
"conversationNotificationPolicyDefault": "Varsayılan",
|
||||
"conversationNotificationPolicyNever": "Asla",
|
||||
"notificationPolicySettingLabel": "Bildirim İlkeleri",
|
||||
"notificationContentSettingLabel": "Bildirim İçeriği",
|
||||
"notificationPolicySettingDescription": "Varsayılan uygulama bildirim davranışını belirler",
|
||||
"notificationContentSettingDescription": "Sohbet bildirimlerinin içeriğini belirler",
|
||||
"tooltipUnpinConversation": "Sohbetin \"Sohbetler\"in üstüne sabitlemesini kaldır",
|
||||
"tooltipPinConversation": "Sohbeti \"Sohbetler\"in üstüne sabitle",
|
||||
"newMessageNotificationConversationInfo": "%1 Sohbetinde Yeni Mesaj",
|
||||
"notificationContentContactInfo": "Sohbet Bilgileri",
|
||||
"conversationNotificationPolicySettingLabel": "Sohbet Bildirim İlkeleri",
|
||||
"conversationNotificationPolicySettingDescription": "Bu sohbet için bildirim ayarlarını kontrol et",
|
||||
"settingGroupBehaviour": "Davranış",
|
||||
"settingsGroupAppearance": "Görünüş",
|
||||
"settingsGroupExperiments": "Deneyler",
|
||||
"newMessageNotificationSimple": "Yeni Mesaj",
|
||||
"exportProfile": "Profili Dışa Aktar",
|
||||
"importProfile": "Profili İçe Aktar",
|
||||
"clickableLinkError": "URL açılmaya çalışılırken hata oluştu",
|
||||
"failedToImportProfile": "Profil İçe Aktarılırken Hata Oluştu",
|
||||
"successfullyImportedProfile": "Profil Başarıyla İçe Aktarıldı: %profile",
|
||||
"shuttingDownApp": "Kapanıyor...",
|
||||
"clickableLinkOpen": "URL'yi aç",
|
||||
"clickableLinksCopy": "URL'yi kopyala",
|
||||
"formattingExperiment": "Mesaj Biçimlendirme",
|
||||
"messageFormattingDescription": "Görüntülenen mesajlarda zengin metin biçimlendirmesini etkinleştirin, örneğin **kalın** ve *italik*",
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Bu özellik Gruplar Özelliği'nin Ayarlar'dan etkinleştirilmesini gerektirir",
|
||||
"settingAndroidPowerExemption": "Android Pil Optimizasyonlarını Yoksay",
|
||||
"settingsAndroidPowerReenablePopup": "Cwtch içinden Pil Optimizasyonu yeniden etkinleştirilemiyor. Lütfen Android \/ Ayarlar \/ Uygulamalar \/ Cwtch \/ Pil sayfasına gidin ve 'Pil Kullanımını Yönet' bölümünün altında 'Optimize edilmiş'e basın",
|
||||
"okButton": "OK",
|
||||
"tooltipBoldText": "Kalın",
|
||||
"tooltipBackToMessageEditing": "Mesaj Düzenlemeye Geri Dön",
|
||||
"tooltipItalicize": "İtalik",
|
||||
"tooltipSuperscript": "Üst Simge",
|
||||
"tooltipSubscript": "Alt Simge",
|
||||
"tooltipStrikethrough": "Üstü Çizili",
|
||||
"tooltipPreviewFormatting": "Mesaj Biçimlendirmesini Önizle",
|
||||
"manageSharedFiles": "Paylaşılan Dosyaları Yönet",
|
||||
"stopSharingFile": "Dosya Paylaşımını Durdur",
|
||||
"restartFileShare": "Dosya Paylaşımını Başlat",
|
||||
"viewReplies": "Mesaja gelen yanıtları görüntüle",
|
||||
"headingReplies": "Yanıtlar",
|
||||
"messageNoReplies": "Bu mesaja yanıt gelmemiş.",
|
||||
"fileDownloadUnavailable": "Bu dosya indirmeye uygun görünmüyor. Gönderen dosyanın indirilmesini engellemiş olabilir.",
|
||||
"replyingTo": "%1 hesabına yanıt veriliyor"
|
||||
}
|