Merge branch 'develop' into feature/bca/room_upgrade

This commit is contained in:
Benoit Marty 2021-07-05 16:01:27 +02:00
commit b285bd0359
45 changed files with 375 additions and 170 deletions

View File

@ -1,3 +1,20 @@
Changes in Element 1.1.12 (2021-07-05)
======================================
Features ✨
----------
- Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling. ([#3545](https://github.com/vector-im/element-android/issues/3545))
- Implements new design for Jump to unread and quick fix visibility issues. ([#3547](https://github.com/vector-im/element-android/issues/3547))
Bugfixes 🐛
----------
- Fix some issues with timeline cache invalidation and visibility. ([#3542](https://github.com/vector-im/element-android/issues/3542))
- Fix call invite processed after call is ended because of fastlane mode. ([#3564](https://github.com/vector-im/element-android/issues/3564))
- Fix crash after video call. ([#3577](https://github.com/vector-im/element-android/issues/3577))
- Fix crash out of memory ([#3583](https://github.com/vector-im/element-android/issues/3583))
- CryptoStore migration has to be object to avoid crash ([#3605](https://github.com/vector-im/element-android/issues/3605))
Changes in Element v1.1.11 (2021-06-22)
=======================================

View File

@ -55,7 +55,7 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.5.0'
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation "androidx.recyclerview:recyclerview:1.2.1"

View File

@ -12,7 +12,7 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.1'
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.gms:google-services:4.3.8'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'

View File

@ -1 +0,0 @@
Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling.

View File

@ -1 +0,0 @@
Implements new design for Jump to unread and quick fix visibility issues.

View File

@ -1 +0,0 @@
Fix call invite processed after call is ended because of fastlane mode.

View File

@ -1 +0,0 @@
Fix crash after video call.

View File

@ -0,0 +1,2 @@
Hlavní změny v této verzi: beta podpora pro Spaces. Komprimace videa před odesláním.
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.7

View File

@ -0,0 +1,2 @@
Hlavní změny v této verzi: vylepšení pro Spaces
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.8

View File

@ -0,0 +1,2 @@
Hlavní změny v této verzi: doplněna podpora pro síť gitter.im
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.9

View File

@ -0,0 +1,2 @@
Main changes in this version: theme and style update and fix a crash after video call
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.12

View File

@ -0,0 +1,2 @@
Principaux changements pour cette version : prise en charge des espaces en bêta. Compression des vidéos avant envoi.
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.7

View File

@ -0,0 +1,2 @@
Principaux changements pour cette version : amélioration des espaces.
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.8

View File

@ -0,0 +1,2 @@
Principaux changements pour cette version : ajout de la prise en charge de gitter.im
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.9

View File

@ -1,30 +1,39 @@
Element est une nouvelle application de messagerie et de collaboration qui :
Element est à la fois une messagerie sécurisée et une application de collaboration en équipe, idéale pour les conversations de groupe en télétravail. Cette application utilise le chiffrement de bout en bout. Elle permet de mettre en place des téléconférences vidéo, du partage de fichier et des appels vocaux.
1. Vous permet de préserver votre vie privée
2. Vous permet de communiquer avec nimporte qui sur réseau Matrix, et plus encore grâce aux intégrations dautres applications telles que Slack ou Discord
3. Vous protège de la publicité et de la collecte de données
4. Vous protège grâce au chiffrement de bout-à-bout et à la signature croisée pour authentifier les autres utilisateurs
<b>Les fonctionnalités dElement incluent :</b>
- Outils de communication en ligne avancés
- Communication dentreprise sécurisée par le chiffrement de bout en bout des messages, même pour les travailleurs à distance
- Messagerie décentralisée basée sur le framework open source Matrix
- Partage sécurisé de fichiers avec chiffrement des données lors de la gestion de projet
- Conversations vidéo par voix sur IP et partage décran
- Intégration facile avec vos outils de collaboration, de gestion de projet, services de VoIP et autres applications de messagerie
Element est complètement différente des autres applications de messagerie et de collaboration puisque lapplication est décentralisée et open-source.
Element est complètement différente des autres applications de messagerie et de collaboration. Elle sappuie sur Matrix, un réseau ouvert de communication décentralisée. Elle permet lauto-hébergement pour que ses utilisateurs restent le plus en contrôle possible de leurs données et leurs messages.
Element vous permet dhéberger vous-même ou de choisir un hôte vous permettant dassurer votre vie privée, la propriété et le contrôle de vos données et de vos conversations. Cela vous donne accès à un réseau ouvert. Vous nêtes donc pas condamné à parler à dautres utilisateurs dElement seulement. Et c'est très sécurisé.
<b>Confidentialité et messagerie chiffrée</b>
Element vous protège des publicités non désirées, du minage de données et des prisons dorées. Elle protègé vos données et vos communications vocales grâce au chiffrement de bout en bout et à la vérification de signature croisée entre appareils.
Element peut faire tout ça car elle est basée sur Matrix, le protocole standard pour la communication ouverte et décentralisée.
Element vous donne la main sur votre confidentialité en vous permettant de communiquer de manière sécurisée avec tout le réseau Matrix ou dautres applications de communication dentreprise au travers dintégrations dapplications comme Slack.
Element vous donne le contrôle en vous laissant choisir qui héberge vos conversations. Depuis l'application Element, vous pouvez choisir votre hôte de différentes manières :
<b>Element peut être auto-hébergé</b>
Pour une meilleure souveraineté sur vos données et conversations, Element peut être auto-hébergé ou vous pouvez choisir votre hôte Matrix - la norme open source pour les communications décentralisées. Element garantit votre confidentialité, conformité aux normes de sécurité, tout en proposant une intégration souple.
1. Créer un compte gratuit sur le serveur public matrix.org hébergé par les développeurs de Matrix, ou choisir parmi les milliers de serveurs public hébergés par des bénévoles
2. Héberger vous-même votre compte en installant un serveur sur votre propre machine
3. Créer un compte sur un serveur personnalisé en souscrivant sur la plateforme d'hébergement « Element Matrix Services » (EMS)
<b>Vos données vous appartiennent</b>
Vous décidez où stocker vos données et messages. Aucun risque de minage de données où daccès par des tierce parties.
<b>Pourquoi choisir Element ?</b>
Element vous place aux commandes de différente manières :
1. Inscrivez vous sur le serveur public matrix.org hébergé par les développeurs de Matrix ou choisissez parmi des milliers de serveurs publics hébergés par des bénévoles
2. Auto-hébergez votre compte sur un serveur de votre proper infrastructure informatique
3. Inscrivez vous à la plateforme dhébergement Element Matrix Services
<b>VOS DONNÉES VOUS APPARTIENNENT</b> : vous décidez où stocker vos données et messages. Ils vous appartiennent et vous les maîtrisez. Aucune multinationale ne viendra extraire vos données pour les envoyer au plus offrant.
<b>Messagerie et collaboration ouvertes</b>
Vous pouvez discuter avec tout le réseau Matrix, que vos interlocuteurs utilisent Element, une autre application Matrix, ou même sils utilisent une application complètement différente.
<b>MESSAGERIE ET COLLABORATION OUVERTES</b> : vous pouvez discuter avec tout le réseau Matrix, quils utilisent Element ou une autre application Matrix, même sils utilisent une autre plateforme de messagerie telle que Slack, IRC ou XMPP.
<b>Ultra sécurisé</b>
Chiffrement de bout en bout (seules les personnes dans la conversation peuvent déchiffrer les messages) et vérification de signature croisée entre appareils.
<b>ULTRA SÉCURISÉ</b> : chiffrement de bout en bout (seuls les membres dune conversation peuvent déchiffrer les messages), et signature croisée pour vérifier les appareils de vos interlocuteurs.
<b>Communication et intégration parfaites</b>
Messagerie instantannée, appels audio et vidéo, partage de fichier, partage décran et bien dautres intégrations, bots et widgets. Lancez des salons, des communautés, restez en contact et menez vos projets à bien.
<b>TOUTES VOS COMMUNICATIONS</b> : messagerie, appels audio et vidéo, partage de fichier, partage décran et un grand nombre dintégrations, robots et widgets. Participez à des salons, des communautés, restez en contact et faites avancer vos projets.
<b>PARTOUT AVEC VOUS</b> : votre historique reste synchronisé entre tous vos appareils et sur le web sur https://element.io/app.
<b>Reprenez où vous vous êtes arrêté</b>
Restez en contact où que vous soyez grâce à lhistorique des messages synchronisé entre tous vos appareils et sur le web sur https://app.element.io

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=a9e356a21595348b6f04b024ed0b08ac8aea6b2ac37e6c0ef58e51549cd7b9cb
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip
distributionSha256Sum=9bb8bc05f562f2d42bdf1ba8db62f6b6fa1c3bf6c392228802cc7cb0578fe7e0
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -9,7 +9,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:10.6.0"
classpath "io.realm:realm-gradle-plugin:10.6.1"
}
}
@ -121,7 +121,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
implementation "androidx.appcompat:appcompat:1.3.0"
implementation "androidx.core:core-ktx:1.5.0"
implementation "androidx.core:core-ktx:1.6.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
@ -175,24 +175,24 @@ dependencies {
testImplementation 'org.robolectric:robolectric:4.5.1'
//testImplementation 'org.robolectric:shadows-support-v4:3.0'
// Note: version sticks to 1.9.2 due to https://github.com/mockk/mockk/issues/281
testImplementation 'io.mockk:mockk:1.11.0'
testImplementation 'io.mockk:mockk:1.12.0'
testImplementation 'org.amshove.kluent:kluent-android:1.67'
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
// Plant Timber tree for test
testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestImplementation 'androidx.test:core:1.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
androidTestImplementation 'androidx.test:core:1.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'org.amshove.kluent:kluent-android:1.65'
androidTestImplementation 'io.mockk:mockk-android:1.11.0'
androidTestImplementation 'io.mockk:mockk-android:1.12.0'
androidTestImplementation "androidx.arch.core:core-testing:$arch_version"
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
// Plant Timber tree for test
androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
androidTestUtil 'androidx.test:orchestrator:1.3.0'
androidTestUtil 'androidx.test:orchestrator:1.4.0'
}

View File

@ -112,7 +112,6 @@ internal abstract class CryptoModule {
@SessionScope
fun providesRealmConfiguration(@SessionFilesDirectory directory: File,
@UserMd5 userMd5: String,
realmCryptoStoreMigration: RealmCryptoStoreMigration,
realmKeysUtils: RealmKeysUtils): RealmConfiguration {
return RealmConfiguration.Builder()
.directory(directory)
@ -123,7 +122,7 @@ internal abstract class CryptoModule {
.modules(RealmCryptoStoreModule())
.allowWritesOnUiThread(true)
.schemaVersion(RealmCryptoStoreMigration.CRYPTO_STORE_SCHEMA_VERSION)
.migration(realmCryptoStoreMigration)
.migration(RealmCryptoStoreMigration)
.build()
}

View File

@ -18,6 +18,9 @@ package org.matrix.android.sdk.internal.crypto.store.db
import com.squareup.moshi.Moshi
import com.squareup.moshi.Types
import io.realm.DynamicRealm
import io.realm.RealmMigration
import io.realm.RealmObjectSchema
import org.matrix.android.sdk.api.extensions.tryOrNull
import org.matrix.android.sdk.api.util.JsonDict
import org.matrix.android.sdk.internal.crypto.model.MXDeviceInfo
@ -35,29 +38,24 @@ import org.matrix.android.sdk.internal.crypto.store.db.model.KeysBackupDataEntit
import org.matrix.android.sdk.internal.crypto.store.db.model.MyDeviceLastSeenInfoEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.OlmInboundGroupSessionEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.OlmSessionEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.OutboundGroupSessionInfoEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.OutgoingGossipingRequestEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.SharedSessionEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.TrustLevelEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.UserEntityFields
import org.matrix.android.sdk.internal.crypto.store.db.model.WithHeldSessionEntityFields
import org.matrix.android.sdk.internal.di.MoshiProvider
import org.matrix.android.sdk.internal.di.SerializeNulls
import io.realm.DynamicRealm
import io.realm.RealmMigration
import io.realm.RealmObjectSchema
import org.matrix.android.sdk.internal.crypto.store.db.model.OutboundGroupSessionInfoEntityFields
import org.matrix.androidsdk.crypto.data.MXOlmInboundGroupSession2
import timber.log.Timber
import javax.inject.Inject
import org.matrix.androidsdk.crypto.data.MXDeviceInfo as LegacyMXDeviceInfo
internal class RealmCryptoStoreMigration @Inject constructor(private val crossSigningKeysMapper: CrossSigningKeysMapper) : RealmMigration {
internal object RealmCryptoStoreMigration : RealmMigration {
companion object {
// 0, 1, 2: legacy Riot-Android
// 3: migrate to RiotX schema
// 4, 5, 6, 7, 8, 9: migrations from RiotX (which was previously 1, 2, 3, 4, 5, 6)
const val CRYPTO_STORE_SCHEMA_VERSION = 12L
}
// 0, 1, 2: legacy Riot-Android
// 3: migrate to RiotX schema
// 4, 5, 6, 7, 8, 9: migrations from RiotX (which was previously 1, 2, 3, 4, 5, 6)
const val CRYPTO_STORE_SCHEMA_VERSION = 12L
private fun RealmObjectSchema.addFieldIfNotExists(fieldName: String, fieldType: Class<*>): RealmObjectSchema {
if (!hasField(fieldName)) {
@ -384,6 +382,8 @@ internal class RealmCryptoStoreMigration @Inject constructor(private val crossSi
private fun migrateTo7(realm: DynamicRealm) {
Timber.d("Step 6 -> 7")
Timber.d("Updating KeyInfoEntity table")
val crossSigningKeysMapper = CrossSigningKeysMapper(MoshiProvider.providesMoshi())
val keyInfoEntities = realm.where("KeyInfoEntity").findAll()
try {
keyInfoEntities.forEach {

View File

@ -19,9 +19,10 @@ package org.matrix.android.sdk.internal.database
import io.realm.DynamicRealm
import io.realm.FieldAttribute
import io.realm.RealmMigration
import org.matrix.android.sdk.api.session.room.model.VersioningState
import org.matrix.android.sdk.api.session.events.model.EventType
import org.matrix.android.sdk.api.session.room.model.Membership
import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesContent
import org.matrix.android.sdk.api.session.room.model.VersioningState
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
import org.matrix.android.sdk.api.session.room.model.tag.RoomTag
import org.matrix.android.sdk.internal.database.model.CurrentStateEventEntityFields
@ -40,14 +41,12 @@ import org.matrix.android.sdk.internal.database.model.SpaceChildSummaryEntityFie
import org.matrix.android.sdk.internal.database.model.SpaceParentSummaryEntityFields
import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields
import org.matrix.android.sdk.internal.di.MoshiProvider
import org.matrix.android.sdk.internal.query.process
import timber.log.Timber
import javax.inject.Inject
class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
internal object RealmSessionStoreMigration : RealmMigration {
companion object {
const val SESSION_STORE_SCHEMA_VERSION = 15L
}
const val SESSION_STORE_SCHEMA_VERSION = 16L
override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) {
Timber.v("Migrating Realm Session from $oldVersion to $newVersion")
@ -67,6 +66,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
if (oldVersion <= 12) migrateTo13(realm)
if (oldVersion <= 13) migrateTo14(realm)
if (oldVersion <= 14) migrateTo15(realm)
if (oldVersion <= 15) migrateTo16(realm)
}
private fun migrateTo1(realm: DynamicRealm) {
@ -293,7 +293,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
Timber.d("Step 13 -> 14")
val roomAccountDataSchema = realm.schema.create("RoomAccountDataEntity")
.addField(RoomAccountDataEntityFields.CONTENT_STR, String::class.java)
.addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED)
.addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED)
realm.schema.get("RoomEntity")
?.addRealmListField(RoomEntityFields.ACCOUNT_DATA.`$`, roomAccountDataSchema)
@ -310,6 +310,19 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
private fun migrateTo15(realm: DynamicRealm) {
Timber.d("Step 14 -> 15")
// fix issue with flattenParentIds on DM that kept growing with duplicate
// so we reset it, will be updated next sync
realm.where("RoomSummaryEntity")
.process(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.activeMemberships())
.equalTo(RoomSummaryEntityFields.IS_DIRECT, true)
.findAll()
.onEach {
it.setString(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, null)
}
}
private fun migrateTo16(realm: DynamicRealm) {
Timber.d("Step 15 -> 16")
realm.schema.get("HomeServerCapabilitiesEntity")
?.addField(HomeServerCapabilitiesEntityFields.ROOM_VERSIONS_JSON, String::class.java)
?.transform { obj ->

View File

@ -43,7 +43,6 @@ internal class SessionRealmConfigurationFactory @Inject constructor(
@SessionFilesDirectory val directory: File,
@SessionId val sessionId: String,
@UserMd5 val userMd5: String,
val migration: RealmSessionStoreMigration,
context: Context) {
// Keep legacy preferences name for compatibility reason
@ -72,7 +71,7 @@ internal class SessionRealmConfigurationFactory @Inject constructor(
.allowWritesOnUiThread(true)
.modules(SessionRealmModule())
.schemaVersion(RealmSessionStoreMigration.SESSION_STORE_SCHEMA_VERSION)
.migration(migration)
.migration(RealmSessionStoreMigration)
.build()
// Try creating a realm instance and if it succeeds we can clear the flag

View File

@ -42,7 +42,6 @@ import org.matrix.android.sdk.internal.legacy.riot.HomeServerConnectionConfig as
internal class DefaultLegacySessionImporter @Inject constructor(
private val context: Context,
private val sessionParamsStore: SessionParamsStore,
private val realmCryptoStoreMigration: RealmCryptoStoreMigration,
private val realmKeysUtils: RealmKeysUtils
) : LegacySessionImporter {
@ -172,7 +171,7 @@ internal class DefaultLegacySessionImporter @Inject constructor(
.name("crypto_store.realm")
.modules(RealmCryptoStoreModule())
.schemaVersion(RealmCryptoStoreMigration.CRYPTO_STORE_SCHEMA_VERSION)
.migration(realmCryptoStoreMigration)
.migration(RealmCryptoStoreMigration)
.build()
Timber.d("Migration: copy DB to encrypted DB")

View File

@ -60,7 +60,6 @@ internal abstract class IdentityModule {
@SessionScope
fun providesIdentityRealmConfiguration(realmKeysUtils: RealmKeysUtils,
@SessionFilesDirectory directory: File,
migration: RealmIdentityStoreMigration,
@UserMd5 userMd5: String): RealmConfiguration {
return RealmConfiguration.Builder()
.directory(directory)
@ -69,7 +68,7 @@ internal abstract class IdentityModule {
realmKeysUtils.configureEncryption(this, SessionModule.getKeyAlias(userMd5))
}
.schemaVersion(RealmIdentityStoreMigration.IDENTITY_STORE_SCHEMA_VERSION)
.migration(migration)
.migration(RealmIdentityStoreMigration)
.allowWritesOnUiThread(true)
.modules(IdentityRealmModule())
.build()

View File

@ -19,13 +19,10 @@ package org.matrix.android.sdk.internal.session.identity.db
import io.realm.DynamicRealm
import io.realm.RealmMigration
import timber.log.Timber
import javax.inject.Inject
internal class RealmIdentityStoreMigration @Inject constructor() : RealmMigration {
internal object RealmIdentityStoreMigration : RealmMigration {
companion object {
const val IDENTITY_STORE_SCHEMA_VERSION = 1L
}
const val IDENTITY_STORE_SCHEMA_VERSION = 1L
override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) {
Timber.v("Migrating Realm Identity from $oldVersion to $newVersion")

View File

@ -199,7 +199,6 @@ internal class RoomSummaryUpdater @Inject constructor(
measureTimeMillis {
val lookupMap = realm.where(RoomSummaryEntity::class.java)
.process(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.activeMemberships())
.equalTo(RoomSummaryEntityFields.IS_DIRECT, false)
// we order by roomID to be consistent when breaking parent/child cycles
.sort(RoomSummaryEntityFields.ROOM_ID)
.findAll().map {

View File

@ -14,7 +14,7 @@ kapt {
// Note: 2 digits max for each value
ext.versionMajor = 1
ext.versionMinor = 1
ext.versionPatch = 12
ext.versionPatch = 13
static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct'
@ -246,6 +246,11 @@ android {
productFlavors {
gplay {
apply plugin: 'com.google.gms.google-services'
afterEvaluate {
tasks.matching { it.name.contains("GoogleServices") && !it.name.contains("Gplay") }*.enabled = false
}
dimension "store"
isDefault = true
versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}"
@ -316,7 +321,7 @@ dependencies {
// Tests
def kluent_version = '1.67'
def androidxTest_version = '1.3.0'
def androidxTest_version = '1.4.0'
def espresso_version = '3.3.0'
implementation project(":matrix-sdk-android")
@ -336,7 +341,7 @@ dependencies {
implementation "androidx.fragment:fragment-ktx:$fragment_version"
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.sharetarget:sharetarget:1.1.0"
implementation 'androidx.core:core-ktx:1.5.0'
implementation 'androidx.core:core-ktx:1.6.0'
implementation "androidx.media:media:1.3.1"
implementation "androidx.transition:transition:1.4.1"
@ -506,7 +511,3 @@ dependencies {
exclude group: 'org.jetbrains.kotlin'
}
}
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Gplay")) {
apply plugin: 'com.google.gms.google-services'
}

View File

@ -41,7 +41,7 @@ fun SearchView.withoutLeftMargin() {
}
fun EditText.hidePassword() {
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
}
fun View.getMeasurements(): Pair<Int, Int> {

View File

@ -39,13 +39,13 @@ import im.vector.app.features.home.room.detail.UnreadState
import im.vector.app.features.home.room.detail.timeline.factory.MergedHeaderItemFactory
import im.vector.app.features.home.room.detail.timeline.factory.ReadReceiptsItemFactory
import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactory
import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactoryParams
import im.vector.app.features.home.room.detail.timeline.helper.ContentDownloadStateTrackerBinder
import im.vector.app.features.home.room.detail.timeline.helper.ContentUploadStateTrackerBinder
import im.vector.app.features.home.room.detail.timeline.helper.TimelineControllerInterceptorHelper
import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventDiffUtilCallback
import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventVisibilityHelper
import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventVisibilityStateChangedListener
import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactoryParams
import im.vector.app.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider
import im.vector.app.features.home.room.detail.timeline.item.AbsMessageItem
import im.vector.app.features.home.room.detail.timeline.item.BasedMergedItem
@ -163,10 +163,19 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
override fun onChanged(position: Int, count: Int, payload: Any?) {
synchronized(modelCache) {
assertUpdateCallbacksAllowed()
(position until (position + count)).forEach {
(position until position + count).forEach {
// Invalidate cache
modelCache[it] = null
}
// Also invalidate the first previous displayable event if
// it's sent by the same user so we are sure we have up to date information.
val invalidatedSenderId: String? = currentSnapshot.getOrNull(position)?.senderInfo?.userId
val prevDisplayableEventIndex = currentSnapshot.subList(0, position).indexOfLast {
timelineEventVisibilityHelper.shouldShowEvent(it, eventIdToHighlight)
}
if (prevDisplayableEventIndex != -1 && currentSnapshot[prevDisplayableEventIndex].senderInfo.userId == invalidatedSenderId) {
modelCache[prevDisplayableEventIndex] = null
}
requestModelBuild()
}
}
@ -340,10 +349,14 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
val event = currentSnapshot[position]
val nextEvent = currentSnapshot.nextOrNull(position)
val prevEvent = currentSnapshot.prevOrNull(position)
val nextDisplayableEvent = currentSnapshot.subList(position + 1, currentSnapshot.size).firstOrNull {
timelineEventVisibilityHelper.shouldShowEvent(it, eventIdToHighlight)
}
val params = TimelineItemFactoryParams(
event = event,
prevEvent = prevEvent,
nextEvent = nextEvent,
nextDisplayableEvent = nextDisplayableEvent,
highlightedEventId = eventIdToHighlight,
lastSentEventIdWithoutReadReceipts = lastSentEventWithoutReadReceipts,
callback = callback

View File

@ -23,6 +23,7 @@ data class TimelineItemFactoryParams(
val event: TimelineEvent,
val prevEvent: TimelineEvent? = null,
val nextEvent: TimelineEvent? = null,
val nextDisplayableEvent: TimelineEvent? = null,
val highlightedEventId: String? = null,
val lastSentEventIdWithoutReadReceipts: String? = null,
val callback: TimelineEventController.Callback? = null

View File

@ -50,27 +50,28 @@ import javax.inject.Inject
class MessageInformationDataFactory @Inject constructor(private val session: Session,
private val roomSummariesHolder: RoomSummariesHolder,
private val dateFormatter: VectorDateFormatter,
private val visibilityHelper: TimelineEventVisibilityHelper,
private val vectorPreferences: VectorPreferences) {
fun create(params: TimelineItemFactoryParams): MessageInformationData {
val event = params.event
val nextEvent = params.nextEvent
val nextDisplayableEvent = params.nextDisplayableEvent
val eventId = event.eventId
val date = event.root.localDateTime()
val nextDate = nextEvent?.root?.localDateTime()
val nextDate = nextDisplayableEvent?.root?.localDateTime()
val addDaySeparator = date.toLocalDate() != nextDate?.toLocalDate()
val isNextMessageReceivedMoreThanOneHourAgo = nextDate?.isBefore(date.minusMinutes(60))
?: false
val showInformation =
addDaySeparator
|| event.senderInfo.avatarUrl != nextEvent?.senderInfo?.avatarUrl
|| event.senderInfo.disambiguatedDisplayName != nextEvent?.senderInfo?.disambiguatedDisplayName
|| nextEvent.root.getClearType() !in listOf(EventType.MESSAGE, EventType.STICKER, EventType.ENCRYPTED)
|| event.senderInfo.avatarUrl != nextDisplayableEvent?.senderInfo?.avatarUrl
|| event.senderInfo.disambiguatedDisplayName != nextDisplayableEvent?.senderInfo?.disambiguatedDisplayName
|| nextDisplayableEvent.root.getClearType() !in listOf(EventType.MESSAGE, EventType.STICKER, EventType.ENCRYPTED)
|| isNextMessageReceivedMoreThanOneHourAgo
|| isTileTypeMessage(nextEvent)
|| nextEvent.isEdition()
|| isTileTypeMessage(nextDisplayableEvent)
|| nextDisplayableEvent.isEdition()
val time = dateFormatter.format(event.root.originServerTs, DateFormatKind.MESSAGE_SIMPLE)
val e2eDecoration = getE2EDecoration(event)

View File

@ -2859,4 +2859,9 @@
<string name="directory_add_a_new_server_prompt">Zadejte název nového serveru, který chcete prozkoumat.</string>
<string name="directory_add_a_new_server">Přidat nový server</string>
<string name="directory_your_server">Váš server</string>
<string name="continue_anyway">Přesto pokračovat</string>
<string name="teammate_spaces_might_not_join">V současné době se lidé nemohou připojit k soukromým místnostem, které jste vytvořili.
\n
\nV rámci beta verze to zlepšíme, ale jen jsme vás chtěli informovat.</string>
<string name="teammate_spaces_arent_quite_ready">Prostory pro spolupracovníky nejsou ještě zcela připravené, ale přesto je můžete vyzkoušet</string>
</resources>

View File

@ -511,7 +511,7 @@
<string name="preview">Vorschau</string>
<string name="reject">Ablehnen</string>
<!-- Room -->
<string name="room_jump_to_first_unread">Zur ersten ungelesenen Nachricht springen.</string>
<string name="room_jump_to_first_unread">Zur ersten ungelesenen Nachricht</string>
<!-- Room Preview -->
<string name="room_preview_invitation_format">Du wurdest von %s in diesen Raum eingeladen</string>
<string name="room_preview_unlinked_email_warning">Diese Einladung wurde an %s gesendet, welche nicht mit diesem Konto verknüpft ist.
@ -650,9 +650,9 @@
<string name="settings_enable_all_notif">Benachrichtigungen für diesen Account aktivieren</string>
<string name="settings_enable_this_device">Benachrichtigungen für diese Sitzung aktivieren</string>
<string name="settings_turn_screen_on">Bildschirm für 3 Sekunden aktivieren</string>
<string name="settings_messages_in_one_to_one">Nachrichten in direkten Chats</string>
<string name="settings_messages_in_group_chat">Nachrichten in Gruppen-Chats</string>
<string name="settings_invited_to_room">Wenn ich in einen Raum eingeladen werde</string>
<string name="settings_messages_in_one_to_one">Direktnachrichten</string>
<string name="settings_messages_in_group_chat">Gruppenchats</string>
<string name="settings_invited_to_room">Einladungen</string>
<string name="settings_call_invitations">Anrufe</string>
<string name="settings_messages_sent_by_bot">Nachrichten von Bots</string>
<string name="settings_background_sync">Hintergrundsynchronisierung</string>
@ -741,7 +741,7 @@
<string name="room_settings_room_read_history_rules_pref_dialog_title">Wer kann den Chatverlauf lesen?</string>
<string name="room_settings_room_access_rules_pref_dialog_title">Wer kann auf diesen Raum zugreifen?</string>
<!-- Room settings, access and visibility : WHO CAN READ HISTORY? (read rule) -->
<string name="room_settings_read_history_entry_anyone">Jede*r</string>
<string name="room_settings_read_history_entry_anyone">Alle</string>
<string name="room_settings_read_history_entry_members_only_option_time_shared">Nur Mitglieder (ab dem Zeitpunkt, an dem diese Option ausgewählt wurde)</string>
<string name="room_settings_read_history_entry_members_only_invited">Nur Mitglieder (ab dem Zeitpunkt, an dem sie eingeladen wurden)</string>
<string name="room_settings_read_history_entry_members_only_joined">Nur Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind)</string>
@ -797,7 +797,7 @@
<string name="encryption_information_device_key">Sitzungsschlüssel</string>
<string name="encryption_information_verification">Verifizierungsstatus</string>
<string name="encryption_information_ed25519_fingerprint">Ed25519-Fingerabdruck</string>
<string name="encryption_export_e2e_room_keys">Ende-zu-Ende-Verschlüsselungs-Raumschlüssel exportieren</string>
<string name="encryption_export_e2e_room_keys">Ende-zu-Ende-Raumschlüssel exportieren</string>
<string name="encryption_export_room_keys">Raumschlüssel exportieren</string>
<string name="encryption_export_room_keys_summary">Schlüssel in lokale Datei exportieren</string>
<string name="encryption_export_export">Exportieren</string>
@ -805,7 +805,7 @@
<string name="passphrase_confirm_passphrase">Passphrase bestätigen</string>
<string name="encryption_export_saved_as">Die Ende-zu-Ende-Raumschlüssel wurden in \'%s\' gespeichert.
\n
\nAchtung: Diese Datei wird vielleicht gelöscht, wenn die App deinstalliert wird.</string>
\nWarnung: Diese Datei wird möglicherweise gelöscht, wenn die App deinstalliert wird.</string>
<string name="encryption_import_e2e_room_keys">Ende-zu-Ende-Raumschlüssel importieren</string>
<string name="encryption_import_room_keys">Raumschlüssel importieren</string>
<string name="encryption_import_room_keys_summary">Schlüssel aus lokaler Datei importieren</string>
@ -877,7 +877,7 @@
<string name="widget_integration_no_permission_in_room">Du hast keine Berechtigung, diese Aktion in diesem Raum auszuführen.</string>
<string name="widget_integration_missing_room_id">Anfrage beinhaltet keine Raum-ID.</string>
<string name="widget_integration_room_not_visible">Raum %s ist nicht sichtbar.</string>
<string name="room_add_matrix_apps">Matrix-Apps hinzufügen</string>
<string name="room_add_matrix_apps">Integrationen hinzufügen</string>
<string name="settings_notification_ringtone">Benachrichtigungston</string>
<string name="widget_integration_failed_to_send_request">Anfrage konnte nicht gesendet werden.</string>
<string name="widget_integration_missing_user_id">Anfrage enthält keine user_id.</string>
@ -887,7 +887,7 @@
<string name="notification_sync_in_progress">Synchronisiere…</string>
<string name="notification_listening_for_events">Auf Ereignisse lauschen</string>
<string name="settings_containing_my_display_name">Nachrichten mit meinem Anzeigenamen</string>
<string name="settings_containing_my_user_name">Nachrichten, die meinen Benutzernamen enthalten</string>
<string name="settings_containing_my_user_name">Nachrichten mit meinen Benutzernamen</string>
<string name="you_added_a_new_device">Du hast die neue Sitzung \'%s\' hinzugefügt, die jetzt Verschlüsselungs-Schlüssel anfordert.</string>
<string name="your_unverified_device_requesting">Deine bislang nicht verifiziertes Sitzung \'%s\' fordert Verschlüsselungs-Schlüssel an.</string>
<string name="start_verification">Verifizierung beginnen</string>
@ -1028,7 +1028,7 @@
\n
\nMöchtest du welche hinzufügen\?</string>
<string name="settings_deactivate_account_section">Account deaktivieren</string>
<string name="settings_deactivate_my_account">Deaktiviere meinen Account</string>
<string name="settings_deactivate_my_account">Meinen Account deaktivieren</string>
<string name="settings_opt_in_of_analytics">Sende Analysedaten</string>
<string name="template_settings_opt_in_of_analytics_summary">${app_name} sammelt anonyme Analysedaten um uns zu helfen, die App zu verbessern.</string>
<string name="template_settings_opt_in_of_analytics_prompt">Bitte aktive Analysedaten um uns zu helfen ${app_name} zu verbessern.</string>
@ -1150,11 +1150,11 @@
<string name="room_participants_action_kick">Entfernen</string>
<string name="reason_hint">Grund</string>
<string name="settings_inline_url_preview_summary">Linkvorschau im Chat aktivieren, falls dein Home-Server diese Funktion unterstützt.</string>
<string name="settings_send_typing_notifs">Sende Schreibbenachrichtigungen</string>
<string name="settings_send_typing_notifs">Schreibbenachrichtigungen senden</string>
<string name="settings_send_typing_notifs_summary">Lasse andere Benutzer wissen, dass du tippst.</string>
<string name="settings_send_markdown">Markdown-Formatierung</string>
<string name="settings_send_markdown_summary">Formatiere Nachrichten mittels Markdown-Syntax, bevor sie gesendet werden. Dies erlaubt erweiterte Formatierungen, etwa Sternchen (*) um kursiven Text anzuzeigen.</string>
<string name="settings_show_read_receipts">Zeige Lesebestätigungen</string>
<string name="settings_send_markdown_summary">Formatiere Nachrichten mittels Markdown-Syntax, bevor sie gesendet werden. Dies erlaubt erweiterte Formatierungen wie Sternchen (*), um kursiven Text anzuzeigen.</string>
<string name="settings_show_read_receipts">Lesebestätigungen zeigen</string>
<string name="settings_show_read_receipts_summary">Klicke auf die Lesebestätigungen für eine detailliertere Liste.</string>
<string name="settings_show_join_leave_messages_summary">Einladungen, Kicks und Banns bleiben unberührt.</string>
<string name="settings_password">Passwort</string>
@ -1223,7 +1223,7 @@
<string name="settings_troubleshoot_test_bg_restricted_quickfix">Einschränkungen deaktivieren</string>
<string name="settings_troubleshoot_test_battery_title">Batterieoptimierung</string>
<string name="template_settings_troubleshoot_test_battery_success">${app_name} wird nicht von Batterieoptimierungen beeinflusst.</string>
<string name="settings_notification_troubleshoot">Fehler bei Benachrichtigungen finden</string>
<string name="settings_notification_troubleshoot">Benachrichtigungsprobleme finden</string>
<string name="settings_troubleshoot_diagnostic">Diagnose von Fehlern</string>
<string name="settings_troubleshoot_diagnostic_success_status">Basisdiagnose ist OK. Wenn du immer noch keine Benachrichtigungen bekommst, sende bitte einen Fehlerbericht, um uns beim Nachforschen zu helfen.</string>
<string name="settings_troubleshoot_test_play_services_title">Prüfung der Play-Dienste</string>
@ -1254,8 +1254,8 @@
<string name="settings_troubleshoot_test_fcm_failed_account_missing_quick_fix">Konto hinzufügen</string>
<string name="settings_noisy_notifications_preferences">Laute Benachrichtigungen einstellen</string>
<string name="settings_call_notifications_preferences">Anrufbenachrichtigung einstellen</string>
<string name="settings_silent_notifications_preferences">Lautlose Benachrichtigungen einstellen</string>
<string name="settings_system_preferences_summary">Wähle LED-Farbe, Vibration, Ton…</string>
<string name="settings_silent_notifications_preferences">Stumme Benachrichtigungen einstellen</string>
<string name="settings_system_preferences_summary">LED-Farbe, Vibration, Ton usw. wählen</string>
<string name="notification_silent">Stumm</string>
<string name="passphrase_empty_error_message">Bitte eine Passphrase eingeben</string>
<string name="passphrase_passphrase_too_weak">Passphrase ist zu schwach</string>
@ -1391,7 +1391,7 @@
<string name="auth_login_sso">Mit Single-Sign-On anmelden</string>
<string name="login_error_unknown_host">Diese URL ist nicht erreichbar, bitte prüfen</string>
<string name="login_error_ssl_handshake">Dein Gerät nutzt eine veraltetes TLS-Sicherheitsprotokoll, das anfällig für Angriffe ist. Zu deiner Sicherheit wirst du nicht in der Lage sein, dich zu verbinden</string>
<string name="settings_send_message_with_enter">Schicke Nachricht mit Eingabetaste</string>
<string name="settings_send_message_with_enter">Nachricht mit Eingabetaste senden</string>
<string name="settings_send_message_with_enter_summary">Eingabetaste der Bildschirmtastatur schickt die Nachricht ab, statt einen Zeilenumbruch zu erzeugen</string>
<string name="settings_change_password_submit">Passwort aktualisieren</string>
<string name="settings_fail_to_update_password_invalid_current_password">Das Passwort ist ungültig</string>
@ -1569,7 +1569,7 @@
<string name="room_filtering_footer_title">Kannst du nicht finden, wonach du suchst\?</string>
<string name="room_filtering_footer_create_new_room">Erstelle einen neuen Raum</string>
<string name="room_directory_search_hint">Name oder ID (#beispiel:matrix.org)</string>
<string name="labs_swipe_to_reply_in_timeline">Aktiviere Wischen, um in der Zeitleiste zu antworten</string>
<string name="labs_swipe_to_reply_in_timeline">Wischen, um in der Zeitleiste zu antworten</string>
<string name="direct_room_no_known_users">Kein Ergebnis gefunden. Verwende \'Mit Matrix-ID hinzufügen\', um auf dem Server zu suchen.</string>
<string name="direct_room_start_search">Beginne mit der Eingabe, um Ergebnisse zu erhalten</string>
<string name="direct_room_filter_hint">Filtern nach Benutzername oder ID…</string>
@ -1638,7 +1638,7 @@
<string name="settings_integrations">Integrationen</string>
<string name="settings_integrations_summary">Benutze einen Integrations-Manager um Bots, Brücken, Widgets und Sticker-Pakete zu verwalten.
\nIntegrations-Manager erhalten Konfigurationsdaten und können Widgets verändern, Raum-Einladungen senden und in deinem Namen Berechtigungslevel setzen.</string>
<string name="settings_integration_allow">Erlaube Integrationen</string>
<string name="settings_integration_allow">Integrationen erlauben</string>
<string name="room_widget_activity_title">Widget</string>
<string name="room_widget_permission_title">Widget laden</string>
<string name="room_widget_permission_added_by">Dieses Widget wurde hinzugefügt von:</string>
@ -1659,7 +1659,7 @@
<string name="room_widget_webview_access_microphone">Mikrofon benutzen</string>
<string name="room_widget_webview_read_protected_media">Lese DRM-geschützte Medien</string>
<string name="settings_background_fdroid_sync_mode_disabled_description">Du wirst nicht über eingehende Nachrichten benachrichtigt, wenn die App im Hintergrund ist.</string>
<string name="settings_discovery_manage">Verwalte deine Erkennungseinstellungen.</string>
<string name="settings_discovery_manage">Erkennungseinstellungen verwalten.</string>
<string name="room_widget_revoke_access">Zugriff für mich zurückziehen</string>
<string name="push_gateway_item_device_name">Sitzungsname:</string>
<string name="push_gateway_item_format">Format:</string>
@ -1989,7 +1989,7 @@
\nSchlüssel sind nicht vertrauenswürdig</string>
<string name="encryption_information_dg_xsigning_disabled">Cross-Signing ist nicht aktiviert</string>
<string name="settings_active_sessions_list">Aktive Sitzungen</string>
<string name="settings_active_sessions_show_all">Zeige alle Sitzungen</string>
<string name="settings_active_sessions_show_all">Alle Sitzungen anzeigen</string>
<string name="settings_active_sessions_manage">Sitzungen verwalten</string>
<string name="settings_active_sessions_signout_device">Diese Sitzung abmelden</string>
<string name="settings_failed_to_get_crypto_device_info">Keine kryptografischen Informationen verfügbar</string>
@ -2101,8 +2101,8 @@
<string name="bootstrap_crosssigning_save_usb">Speichere ihn auf einem USB-Stick oder auf einem Sicherungslaufwerk</string>
<string name="error_failed_to_import_keys">Import der Schlüssel fehlgeschlagen</string>
<string name="settings_notification_configuration">Benachrichtigungskonfiguration</string>
<string name="settings_messages_at_room">Nachrichten, die @raum enthalten</string>
<string name="settings_messages_in_e2e_group_chat">Verschlüsselte Nachrichten in Gruppenchats</string>
<string name="settings_messages_at_room">Nachrichten mit \"@room\"</string>
<string name="settings_messages_in_e2e_group_chat">Verschlüsselte Gruppenchats</string>
<string name="settings_notification_advanced_summary">Setze die Benachrichtigungspräferenz abhängig vom Ereignistyp</string>
<string name="command_description_plain">Sendet eine Nachricht als einfachen Text, ohne sie als Markdown zu interpretieren</string>
<string name="auth_invalid_login_param_space_in_password">Inkorrekter Benutzername und/oder Passwort. Das eingegebene Passwort beginnt oder endet mit Leerzeichen, bitte kontrolliere es.</string>
@ -2113,7 +2113,7 @@
<string name="bootstrap_crosssigning_save_cloud">Kopier es in deinen persönlichen Cloud-Speicher</string>
<string name="encryption_not_enabled">Verschlüsselung ist nicht aktiviert</string>
<string name="auth_flow_not_supported">Dies kann nicht von einem mobilen Gerät erfolgen</string>
<string name="settings_when_rooms_are_upgraded">Wenn Räume verbessert werden</string>
<string name="settings_when_rooms_are_upgraded">Raumupgrades</string>
<string name="encryption_enabled">Verschlüsselung aktiviert</string>
<string name="encryption_enabled_tile_description">Nachrichten in diesem Raum sind Ende-zu-Ende-verschlüsselt. Erfahre mehr &amp; verifiziere Benutzer in deren Profil.</string>
<string name="encryption_unknown_algorithm_tile_description">Die Verschlüsselung in diesem Raum wird nicht unterstützt</string>
@ -2123,7 +2123,7 @@
<string name="room_created_summary_item">%s hat den Raum erstellt und konfiguriert.</string>
<string name="qr_code_scanned_self_verif_notice">Fast geschafft! Zeigt das andere Gerät das gleiche Schild an\?</string>
<string name="qr_code_scanned_verif_waiting_notice">Fast geschafft! Warte auf Bestätigung…</string>
<string name="settings_messages_in_e2e_one_to_one">Verschlüsselte Nachrichten in 1:1 Chats</string>
<string name="settings_messages_in_e2e_one_to_one">Verschlüsselte Direktnachrichten</string>
<string name="room_message_placeholder">Nachricht…</string>
<string name="security_prompt_text">Verifiziere dich &amp; andere, um eure Chats zu schützen</string>
<string name="bootstrap_enter_recovery">Gib zum Fortfahren deinen %s ein</string>
@ -2150,7 +2150,7 @@
<string name="bootstrap_migration_use_recovery_key">nutze deinen Schlüsselbackup-Wiederherstellungsschlüssel</string>
<string name="bootstrap_migration_with_passphrase_helper_with_link">Wenn du dein Schlüsselbackup-Passwort nicht weißt, kannst du %s.</string>
<string name="bootstrap_migration_backup_recovery_key">Schlüsselbackup-Wiederherstellungsschlüssel</string>
<string name="settings_security_prevent_screenshots_title">Verhindere Screenshots innerhalb der Anwendung</string>
<string name="settings_security_prevent_screenshots_title">Screenshots innerhalb der Anwendung verhindern</string>
<string name="settings_security_prevent_screenshots_summary">Das Aktivieren dieser Einstellung setzt das FLAG_SECURE in allen Aktivitäten. Starte die Anwendung neu, damit die Änderung wirksam wird.</string>
<string name="media_file_added_to_gallery">Datei wurde der Galerie hinzugefügt</string>
<string name="error_adding_media_file_to_gallery">Datei konnte nicht zur Galerie hinzugefügt werden</string>
@ -2381,7 +2381,7 @@
<string name="settings_security_pin_code_title">Aktiviere PIN</string>
<string name="settings_security_pin_code_summary">Wenn du deine PIN zurücksetzen möchtest, tippe \"PIN vergessen\" um dich abzumelden und sie anschließend zurückzusetzen.</string>
<string name="auth_pin_confirm_to_disable_title">Bestätige PIN um die PIN zu deaktivieren</string>
<string name="settings_call_show_confirmation_dialog_title">Verhindere versehentliche Anrufe</string>
<string name="settings_call_show_confirmation_dialog_title">Versehentliche Anrufe verhindern</string>
<string name="settings_call_show_confirmation_dialog_summary">Bitte um Bestätigung, bevor du einen Anruf tätigst</string>
<string name="bottom_sheet_setup_secure_backup_submit">Einrichten</string>
<string name="no_permissions_to_start_conf_call">Dir fehlt die Berechtigung in diesem Raum eine Konferenz zu starten</string>
@ -2397,7 +2397,7 @@
<item quantity="one">%1$d/%2$d Schlüssel erfolgreich importiert.</item>
<item quantity="other">%1$d/%2$d Schlüssel erfolgreich importiert.</item>
</plurals>
<string name="room_manage_integrations">Verwalte Integrationen</string>
<string name="room_manage_integrations">Integrationen verwalten</string>
<string name="room_no_active_widgets">Keine aktiven Widgets</string>
<string name="create_room_federation_error">Der Raum wurde erstellt, aber manche Einladungen wurden aus folgendem Grund nicht versendet:
\n
@ -2456,7 +2456,7 @@
<string name="settings_security_pin_code_use_biometrics_summary_on">Aktiviere Gerät-spezifische Biometrie wie Fingerabdrücke und Gesichtserkennung.</string>
<string name="settings_security_pin_code_use_biometrics_title">Biometrie aktivieren</string>
<string name="settings_security_application_protection_screen_title">Schutz konfigurieren</string>
<string name="settings_security_application_protection_title">Zugriff schützen</string>
<string name="settings_security_application_protection_title">Zugriffsschutz</string>
<string name="settings_security_application_protection_summary">Schütze den Zugriff mit PIN und Biometrie.</string>
<plurals name="secure_backup_reset_devices_you_can_verify">
<item quantity="one">Zeigen das Gerät, mit dem du jetzt überprüfen kannst</item>
@ -2556,7 +2556,7 @@
<string name="template_invite_friends_text">Hey, schreibe mit mir auf ${app_name}: %s</string>
<string name="invite_friends">Freunde einladen</string>
<string name="add_people">Leute hinzufügen</string>
<string name="topic_prefix">"Thema "</string>
<string name="topic_prefix">"Thema: "</string>
<string name="add_a_topic_link_text">Füge ein Thema hinzu</string>
<string name="room_created_summary_no_topic_creation_text">%s, um zu zeigen um was es in diesem Raum geht.</string>
<string name="this_is_the_beginning_of_dm">Das ist der Anfang deiner Direktnachrichten mit %s.</string>
@ -2579,7 +2579,7 @@
<string name="room_preview_not_found">Der Raum ist gerade nicht zugänglich.
\nVersuche es später nochmal, oder bitte einen Raum-Admin um Hilfe.</string>
<string name="room_alias_published_alias_add_manually">Eine neue Adresse veröffentlichen</string>
<string name="room_alias_published_alias_subtitle">Mit einer öffentlichen Adresse kann jede*r mit jedem Server deinem Raum beitreten. Um eine Adresse zu veröffentlichen, muss sie zuerst als lokale Adresse gesetzt sein.</string>
<string name="room_alias_published_alias_subtitle">Mit einer öffentlichen Adresse kann jeder den Raum betreten. Um eine Adresse zu veröffentlichen, muss sie zuerst als lokale Adresse gesetzt sein.</string>
<string name="room_alias_publish_to_directory">Diesen Raum im Verzeichnis von %1$s veröffentlichen\?</string>
<string name="room_alias_unpublish_confirmation">Die Adresse \"%1$s\" nicht mehr veröffentlichen\?</string>
<string name="room_alias_action_unpublish">Diese Adresse nicht mehr veröffentlichen</string>
@ -2629,7 +2629,7 @@
<string name="settings_show_emoji_keyboard_summary">Knopf zum Nachrichteneditor hinzufügen, der die Emoji-Tastatur öffnet</string>
<string name="settings_show_emoji_keyboard">Emoji-Tastatur anzeigen</string>
<string name="settings_chat_effects_description">Nutze /confetti Kommando oder sende Nachrichten, die ❄️ oder 🎉 enthalten</string>
<string name="settings_chat_effects_title">Chat-Effekte zeigen</string>
<string name="settings_chat_effects_title">Chateffekte</string>
<string name="room_permissions_change_topic">Thema ändern</string>
<string name="room_permissions_upgrade_the_room">Raum aktualisieren</string>
<string name="room_permissions_notice">Rollen, die zum Ändern verschiedener Teile des Raums erforderlich sind, auswählen</string>
@ -2642,8 +2642,8 @@
<string name="failed_to_initialize_cross_signing">Cross-Signing konnte nicht eingerichtet werden</string>
<string name="error_unauthorized">Nicht autorisierte, fehlende gültige Authentifizierungsdaten</string>
<string name="call_transfer_users_tab_title">Nutzer</string>
<string name="call_transfer_failure">Beim Übertragen des Anrufs ist ein Fehler aufgetreten</string>
<string name="call_transfer_title">Übertragen</string>
<string name="call_transfer_failure">Beim Weiterleiten des Anrufs ist ein Fehler aufgetreten</string>
<string name="call_transfer_title">Weiterleiten</string>
<string name="call_transfer_connect_action">Verbinden</string>
<plurals name="call_one_active_and_other_paused">
<item quantity="one">1 aktiver Anruf (%1$s) · 1 pausierter Anruf</item>
@ -2735,7 +2735,7 @@
<string name="event_status_failed_messages_warning">Senden der Nachricht gescheitert</string>
<string name="event_status_a11y_sending">Wird gesendet</string>
<string name="event_status_sent_message">Nachricht gesendet</string>
<string name="call_transfer_consult_first">Zuerst nachfragen</string>
<string name="call_transfer_consult_first">Zuerst anfragen</string>
<string name="space_type_private">Privat</string>
<string name="space_type_public">Öffentlich</string>
<string name="create_spaces_you_can_change_later">Du kannst dies später ändern</string>
@ -2755,9 +2755,9 @@
<string name="invite_just_to_this_room_desc">Diese werden kein Teil von %s sein</string>
<string name="share_space_link_message">Tritt meinem Space %1$s %2$s bei</string>
<string name="suggested_rooms_pills_on_empty_header">Willkommen zu %1$s, %2$s.</string>
<string name="labs_use_restricted_join_rule_desc">Warnung benötigt Server Unterstützung und eine experimentelle Raumversion</string>
<string name="labs_use_restricted_join_rule_desc">Warnung: benötigt Server-Unterstützung und eine experimentelle Raumversion</string>
<string name="labs_use_restricted_join_rule">Experimenteller Space - Zugangsbeschränkter Raum.</string>
<string name="spaces_beta_welcome_to_spaces_desc">Mit Spaces hast du die Möglichkeit Personen und Räume zu gruppieren.</string>
<string name="spaces_beta_welcome_to_spaces_desc">Mit Spaces kannst du Personen und Räume zu gruppieren.</string>
<string name="spaces_beta_welcome_to_spaces">Sag hallo zu Spaces!</string>
<string name="space_add_existing_rooms">Füge bereits existierende Räume und Spaces hinzu</string>
<string name="skip_for_now">Vorübergehend überspringen</string>
@ -2791,7 +2791,7 @@
<string name="create_spaces_me_and_teammates">Meine Teamkameraden und ich</string>
<string name="create_spaces_organise_rooms">Ein privater Space um deine Räume zu organisieren</string>
<string name="create_spaces_join_info_help">Um einem bereits existierenden Space beizutreten, benötigst du eine Einladung.</string>
<string name="create_spaces_type_header">Wir haben Spaces entwickelt, damit ihr eure vielen Räume besser organisieren könnt.</string>
<string name="create_spaces_type_header">Wir haben Spaces entwickelt, damit ihr eure Räume besser organisieren könnt</string>
<string name="your_private_space">Dein privater Space</string>
<string name="your_public_space">Dein öffentlicher Space</string>
<string name="command_description_join_space">Betrete einen Space mit der angegebenen ID</string>
@ -2866,4 +2866,11 @@
<string name="send_feedback_space_title">Spaces Feedback</string>
<string name="directory_add_a_new_server_error_already_added">Dieser Server ist schon in der Liste vorhanden</string>
<string name="directory_add_a_new_server_error">Server oder Raumliste kann nicht gefunden werden</string>
<string name="teammate_spaces_might_not_join">Momentan kann es sein, dass einige Leute deinen privaten Räumen nicht beitreten können.
\n
\nDies werden wir demnächst als Teil der Beta verbessern, wir wollten aber sicherstellen, dass du bescheid weißt.</string>
<string name="teammate_spaces_arent_quite_ready">Team-Spaces sind noch nicht fertig entwickelt, du kannst sie aber schon testen</string>
<string name="continue_anyway">Trotzdem fortfahren</string>
<string name="call_transfer_consulting_with">Bei %1$s anfragen</string>
<string name="call_transfer_transfer_to_title">Zu %1$s weiterleiten</string>
</resources>

View File

@ -2806,4 +2806,9 @@
<string name="directory_add_a_new_server_prompt">Sisesta serveri nimi, mille sisu sa soovid uurida.</string>
<string name="directory_add_a_new_server">Lisa uus server</string>
<string name="directory_your_server">Sinu server</string>
<string name="teammate_spaces_arent_quite_ready">Kaasteeliste kogukonnakeskused pole veel päris valmis, aga sa võid neid juba proovida</string>
<string name="continue_anyway">Jätka ikkagi</string>
<string name="teammate_spaces_might_not_join">Hetkel teiste kasutajate liitumine sinu poolt tehtud privaatsete jututubadega ei pruugi õnnestuda.
\n
\nKuna tegemist on beetaversiooniga, siis me veel parandame seda funktsionaalsust, aga lihtsalt tahtsime sind teavitada.</string>
</resources>

View File

@ -2813,4 +2813,9 @@
<string name="directory_add_a_new_server">Ajouter un nouveau serveur</string>
<string name="directory_your_server">Votre serveur</string>
<string name="call_transfer_consulting_with">Consultation de %1$s</string>
<string name="teammate_spaces_might_not_join">Pour linstant, vos coéquipiers pourraient ne pas pouvoir rejoindre les salons privés que vous créez.
\n
\nNous allons améliorer ceci dans la bêta, mais nous voulions vous en faire part.</string>
<string name="teammate_spaces_arent_quite_ready">Les espaces pour les équipes ne sont pas tout à fait prêts, mais vous pouvez quand même les essayer</string>
<string name="continue_anyway">Poursuivre malgré tout</string>
</resources>

View File

@ -630,4 +630,39 @@
<string name="room_settings_room_access_public_title">Iepenbier</string>
<string name="room_settings_room_access_entry_knock">Eltsenien kin by disse keamer oankopje, leden kinne don akseptearje as ôfslaan</string>
<string name="room_settings_room_access_entry_anyone_with_link_including_guest">Eltsenien dyt in link nei disse keamer hat, sels gasten</string>
<string name="no_ignored_users">Do hast gjin brûkers negearre</string>
<string name="settings_ignored_users">Negearre brûkers</string>
<string name="preference_voice_and_video">Stim &amp; Fideo</string>
<string name="settings_advanced_settings">Avansearre ynstellingen</string>
<string name="login_server_other_text">Oanpaste en avansearre ynstellingen</string>
<string name="settings_troubleshoot_test_fcm_failed_account_missing_quick_fix">Akkount Tafoegje</string>
<string name="settings_troubleshoot_test_bing_settings_title">Oanpaste Ynstellingen.</string>
<string name="settings_troubleshoot_test_device_settings_quickfix">Ynskeakelje</string>
<string name="settings_troubleshoot_test_account_settings_quickfix">Ynskeakelje</string>
<string name="settings_troubleshoot_test_account_settings_success">Notifikaasjes binne ynskeakele foar dyn akkount.</string>
<string name="settings_troubleshoot_test_account_settings_title">Akkount Ynstellingen.</string>
<string name="open_settings">Ynstellingen Iepenje</string>
<string name="settings_troubleshoot_test_system_settings_success">Notifikaasjes binne ynskeakele yn de systeem ynstellingen.</string>
<string name="settings_troubleshoot_test_system_settings_title">Systeem Ynstellingen.</string>
<string name="settings_troubleshoot_diagnostic_run_button_title">Tests Útfiere</string>
<string name="settings_phone_numbers">Telefoannûmers</string>
<string name="settings_emails">E-mailadressen</string>
<string name="settings_add_3pid_confirm_password_title">Wachtwurd befêstigje</string>
<string name="settings_app_info_link_summary">Applikaasje informaasje yn de systeem ynstellingen sjen litte.</string>
<string name="settings_app_info_link_title">Applikaasje informaasje</string>
<string name="settings_add_phone_number">Telefoannûmer tafoegje</string>
<string name="settings_phone_number_empty">Der is gjin telefoannûmer tafoege oan syn akkount</string>
<string name="settings_add_email_address">E-mailadres tafoegje</string>
<string name="settings_email_address">Email</string>
<string name="room_sliding_menu_settings">Ynstellingen</string>
<string name="room_settings_leave_conversation">Petear Ferlitte</string>
<string name="room_settings_direct_chat">Direkt Petear</string>
<string name="room_settings_all_messages">Alle berjochten</string>
<string name="room_settings_all_messages_noisy">Alle berjochten (lûd)</string>
<string name="room_details_settings">Ynstellingen</string>
<string name="room_permissions_change_settings">Ynstellingen feroarje</string>
<string name="room_settings_permissions_title">Keamer rjochten</string>
<string name="notice_room_server_acl_updated_title_by_you">Do hast de tsjinner ACLs foar dizze keamer feroare.</string>
<string name="notice_room_server_acl_updated_title">%s hat de tsjinner ACLs foar dizze keamer feroare.</string>
<string name="notice_avatar_url_changed_by_you">Do hast dyn profyl ôfbylding feroare</string>
</resources>

View File

@ -2811,4 +2811,9 @@ Ha nem te állítottad be a visszaállítási metódust, akkor egy támadó pró
<string name="directory_add_a_new_server_prompt">Add meg a felfedezni kívánt új szerver nevét.</string>
<string name="directory_add_a_new_server">Új szerver hozzáadása</string>
<string name="directory_your_server">Matrix szervered</string>
<string name="teammate_spaces_might_not_join">Az emberek jelen pillanatban nem fognak tudni csatlakozni egyetlen olyan privát szobához sem amit készítettél.
\n
\nEzt folyamatosan fejlesztjük a béta program keretében, csak szerettünk volna tájékoztatni róla.</string>
<string name="teammate_spaces_arent_quite_ready">A csoporttárs terek még nem igazán vannak készen de már tehetsz velük egy próbát</string>
<string name="continue_anyway">Mindenképpen folytatás</string>
</resources>

View File

@ -1430,10 +1430,7 @@
\nNome sessione: %1$s
\nUltimo accesso: %2$s
\nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta.</string>
<string name="your_unverified_device_requesting_with_info">Una sessione non verificata sta chiedendo le chiavi crittografiche.
\nNome sessione: %1$s
\nUltimo accesso: %2$s
\nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta.</string>
<string name="your_unverified_device_requesting_with_info">Una sessione non verificata sta chiedendo le chiavi crittografiche.\nNome sessione: %1$s\nUltimo accesso: %2$s\nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta.</string>
<string name="start_verification_short_label">Verifica</string>
<string name="share_without_verifying_short_label">Condividi</string>
<string name="key_share_request">Richiesta condivisione chiavi crittografiche</string>
@ -1897,12 +1894,7 @@
<string name="verify_user_sas_emoji_security_tip">Per avere la massima certezza effettuate l\'operazione tramite un mezzo di comunicazione già fidato oppure fatelo di persona.</string>
<string name="verification_green_shield">Il badge verde garantisce che l\'identità dell\'utente è verificata. Verifica tutti gli utenti in una stanza per assicurarti che sia sicura.</string>
<string name="verification_conclusion_not_secure">Non sicuro</string>
<string name="verification_conclusion_compromised">Uno dei seguenti potrebbe essere compromesso:
\n
\n - Il tuo Home Server
\n - L\'Home Server al quale è connesso l\'utente che stai verificando
\n - La tua connessione internet o quella dell\'altro utente
\n - Il tuo dispositivo o quello dell\'altro utente</string>
<string name="verification_conclusion_compromised">Uno dei seguenti potrebbe essere compromesso:\n\n - Il tuo Home Server\n - L\'Home Server al quale è connesso l\'utente che stai verificando\n - La tua connessione internet o quella dell\'altro utente\n - Il tuo dispositivo o quello dell\'altro utente</string>
<string name="sent_a_video">Video.</string>
<string name="sent_an_image">Immagine.</string>
<string name="sent_an_audio_file">Audio</string>
@ -2868,4 +2860,9 @@
<string name="directory_add_a_new_server_prompt">Inserisci il nome di un nuovo server che vuoi esplorare.</string>
<string name="directory_add_a_new_server">Aggiungi un nuovo server</string>
<string name="directory_your_server">Il tuo server</string>
<string name="teammate_spaces_might_not_join">Al momento le persone potrebbero non poter entrare nelle stanze private che crei.
\n
\nMiglioreremo questa cosa come parte della beta, ma volevamo almeno fartelo sapere.</string>
<string name="teammate_spaces_arent_quite_ready">Gli spazi dei compagni non sono ancora pronti del tutto, ma puoi comunque provarli</string>
<string name="continue_anyway">Continua comunque</string>
</resources>

View File

@ -140,7 +140,7 @@
<string name="ssl_remain_offline">Ignorer</string>
<string name="room_details_people">Folk</string>
<string name="room_details_files">Filer</string>
<string name="room_details_settings">Instillinger</string>
<string name="room_details_settings">Innstillinger</string>
<string name="room_details_people_present_group_name">BLE MED</string>
<string name="room_event_action_cancel_upload">Avbryt opplastning</string>
<string name="room_event_action_cancel_download">Avbryt nedlasting</string>
@ -318,7 +318,7 @@
<string name="attachment_type_audio">Lyd</string>
<string name="attachment_type_gallery">Galleri</string>
<string name="room_list_quick_actions_notifications_mute">Demp</string>
<string name="room_list_quick_actions_settings">Instillinger</string>
<string name="room_list_quick_actions_settings">Innstillinger</string>
<string name="login_server_modular_learn_more">Lær mer</string>
<string name="login_server_other_title">Annet</string>
<string name="login_continue">Fortsett</string>
@ -349,7 +349,7 @@
<string name="soft_logout_signin_title">Logg på</string>
<string name="soft_logout_signin_submit">Logg på</string>
<string name="soft_logout_signin_password_hint">Passord</string>
<string name="settings">Instillinger</string>
<string name="settings">Innstillinger</string>
<string name="devices_current_device">Gjeldende økt</string>
<string name="command_description_shrug">Føyer til ¯\\_(ツ)_/¯ på en råtekstmelding</string>
<string name="sent_a_video">Video.</string>
@ -897,13 +897,13 @@
<string name="auth_recaptcha_message">Denne hjemmetjeneren vil vite om du er en robot</string>
<string name="auth_threepid_warning_message">Registrering med e-post og telefonummer samtidig fungerer ikke enda. Bare telefonummeret kommer til å bli registrert.
\n
\nDu kan legge e-postadressen din til i instillinger.</string>
<string name="auth_use_server_options">Bruk egendefinerte tjenerinstillinger (avansert)</string>
\nDu kan legge e-postadressen din til i innstillinger.</string>
<string name="auth_use_server_options">Bruk egendefinerte tjenerinnstillinger (avansert)</string>
<string name="call_failed_no_connection_description">Klarte ikke å starte en sanntidskopling.
\nVennligst be hjemmetjeneradministratoren din om å sette opp en TURN server så samtaler blir mer stabile.</string>
<string name="call_failed_no_ice_description">Vennligst be administratoren for hjemmetjeneren din (%1$s) til å sette opp en TURN tjener for at telefonsamtaler skal fungere ordentlig.
\n
\nAlternativt kan du prøve å bruke den offentlige tjeneren på %2$s, men dette vil ikke være like stabilt, og det vil dele IP-adressen din med den serveren. Du kan styre dette i instillinger.</string>
\nAlternativt kan du prøve å bruke den offentlige tjeneren på %2$s, men dette vil ikke være like stabilt, og det vil dele IP-adressen din med den serveren. Du kan styre dette i innstillinger.</string>
<string name="login_error_login_email_not_yet">E-postkoblingen som ikke er klikket på ennå</string>
<string name="login_error_user_in_use">Dette brukernavnet er allerede brukt</string>
<string name="login_error_not_json">Inneholdt ikke gyldig JSON</string>

View File

@ -1477,4 +1477,66 @@
<string name="notice_room_created">%1$s heeft de kamer aangemaakt</string>
<string name="notice_room_invite_no_invitee_by_you">Jouw uitnodiging</string>
<string name="summary_you_sent_image">Je hebt een afbeelding gestuurd.</string>
<string name="notice_room_ban_with_reason_by_you">U heeft %1$s verbannen. Reden: %2$s</string>
<string name="notice_room_unban_with_reason_by_you">U heeft de verbanning van %1$s opgeheven. Reden: %2$s</string>
<string name="notice_room_kick_with_reason_by_you">U heeft %1$s eruit getrapt. Reden: %2$s</string>
<string name="notice_room_reject_with_reason_by_you">U heeft de uitnodiging geweigerd. Reden: %1$s</string>
<string name="notice_direct_room_leave_with_reason_by_you">U bent vertrokken. Reden: %1$s</string>
<string name="notice_direct_room_leave_with_reason">%1$s is vertrokken. Reden: %2$s</string>
<string name="notice_room_leave_with_reason_by_you">U heeft de ruimte verlaten. Reden: %1$s</string>
<string name="notice_direct_room_join_with_reason_by_you">U heeft zich aangesloten. Reden: %1$s</string>
<string name="notice_direct_room_join_with_reason">%1$s heeft zich aangesloten. Reden: %2$s</string>
<string name="notice_room_join_with_reason_by_you">U heeft zich aangesloten bij de kamer. Reden: %1$s</string>
<plurals name="room_displayname_four_and_more_members">
<item quantity="one">%1$s, %2$s, %3$s en %4$d andere</item>
<item quantity="other">%1$s, %2$s, %3$s en %4$d anderen</item>
</plurals>
<string name="room_displayname_4_members">%1$s, %2$s, %3$s en %4$s</string>
<string name="room_displayname_3_members">%1$s, %2$s en %3$s</string>
<string name="notice_power_level_diff">%1$s van %2$s naar %3$s</string>
<string name="notice_power_level_changed">%1$s heeft het machtigingsniveau van %2$s aangepast.</string>
<string name="notice_power_level_changed_by_you">U heeft het machtigingsniveau van %1$s aangepast.</string>
<string name="power_level_custom_no_value">Speciaal</string>
<string name="power_level_custom">Speciaal (%1$d)</string>
<string name="power_level_default">Standaardlid</string>
<string name="power_level_admin">Beheerder</string>
<string name="notice_widget_jitsi_modified_by_you">U heeft de videoconferentie aangepast</string>
<string name="notice_widget_jitsi_modified">Videoconferentie aangepast door %1$s</string>
<string name="notice_widget_jitsi_removed_by_you">U heeft de videoconferentie beëindigd</string>
<string name="notice_widget_jitsi_removed">Videoconferentie beëindigd door %1$s</string>
<string name="notice_widget_jitsi_added_by_you">U heeft een videoconferentie gestart</string>
<string name="notice_widget_jitsi_added">Videoconferentie gestart door %1$s</string>
<string name="notice_widget_modified_by_you">U heeft de widget %1$s aangepast</string>
<string name="notice_widget_modified">%1$s heeft de widget %2$s aangepast</string>
<string name="notice_widget_removed_by_you">U heeft de widget %1$s verwijderd</string>
<string name="notice_widget_removed">%1$s heeft de widget %2$s verwijderd</string>
<string name="notice_widget_added_by_you">U heeft de widget %1$s toegevoegd</string>
<string name="notice_widget_added">%1$s heeft de widget %2$s toegevoegd</string>
<string name="notice_room_third_party_registered_invite_by_you">U heeft de uitnodiging voor %1$s geaccepteerd</string>
<string name="notice_direct_room_third_party_revoked_invite_by_you">U heeft de uitnodiging voor %1$s ingetrokken</string>
<string name="notice_direct_room_third_party_revoked_invite">%1$s heeft de uitnodiging voor %2$s ingetrokken</string>
<string name="notice_room_third_party_revoked_invite_by_you">U heeft de uitnodiging voor %1$s ingetrokken om zich bij de kamer aan te sluiten</string>
<string name="notice_room_third_party_invite_by_you">U heeft een uitnodiging gestuurd naar %1$s om zich bij de kamer aan te sluiten</string>
<string name="notice_room_avatar_removed_by_you">U heeft de kameravatar verwijderd</string>
<string name="notice_room_avatar_removed">%1$s heeft de kameravatar verwijderd</string>
<string name="notice_room_topic_removed_by_you">U heeft het kameronderwerp verwijderd</string>
<string name="notice_room_name_removed_by_you">U heeft de kamernaam verwijderd</string>
<string name="notice_room_update_by_you">U heeft de ruimte geüpgradet.</string>
<string name="notice_call_candidates_by_you">U verstuurde data om het gesprek op te zetten.</string>
<string name="notice_call_candidates">%s verstuurde data om het gesprek op te zetten.</string>
<string name="notice_placed_voice_call_by_you">U heeft een audiogesprek geopend.</string>
<string name="notice_placed_video_call_by_you">U heeft een videogesprek geopend.</string>
<string name="notice_room_name_changed_by_you">U heeft de ruimtenaam veranderd naar: %1$s</string>
<string name="notice_room_avatar_changed_by_you">U heeft de ruimteavatar aangepast</string>
<string name="notice_room_avatar_changed">%1$s heeft de ruimteavatar aangepast</string>
<string name="notice_room_topic_changed_by_you">U heeft het onderwerp gewijzigd naar: %1$s</string>
<string name="notice_display_name_removed_by_you">U heeft uw weergavenaam verwijderd (voorheen %1$s)</string>
<string name="notice_room_withdraw_by_you">U heeft de uitnodiging van %1$s ingetrokken</string>
<string name="notice_room_ban_by_you">U heeft %1$s verbannen</string>
<string name="notice_room_unban_by_you">U heeft de verbanning van %1$s opgeheven</string>
<string name="notice_room_kick_by_you">U heeft %1$s eruit getrapt</string>
<string name="notice_direct_room_join_by_you">U sloot zich aan</string>
<string name="notice_direct_room_join">%1$s sluit aan</string>
<string name="notice_room_join_by_you">Je hebt de kamer betreden</string>
<string name="summary_you_sent_sticker">Je hebt een sticker verzonden.</string>
</resources>

View File

@ -313,8 +313,8 @@
<string name="invite">Convidar</string>
<!-- actions -->
<string name="action_sign_out">Fazer signout</string>
<string name="action_voice_call">Chamada de Voz</string>
<string name="action_video_call">Chamada de Vídeo</string>
<string name="action_voice_call">Chamar por Voz</string>
<string name="action_video_call">Chamar por Vídeo</string>
<string name="action_global_search">Pesquisa global</string>
<string name="action_mark_all_as_read">Marcar tudo como lido</string>
<string name="action_historical">Histórico</string>
@ -359,7 +359,7 @@
<string name="send_bug_report_include_crash_logs">Enviar crash logs</string>
<string name="send_bug_report_include_screenshot">Enviar screenshot</string>
<string name="send_bug_report">Reportar bug</string>
<string name="send_bug_report_description">Por favor descreva o bug. O que você fez\? O que você esperava que acontecese\? O que aconteceu na verdade\?</string>
<string name="send_bug_report_description">Por favor descreva o bug. O que você fez\? O que você esperava que acontecesse\? O que na verdade aconteceu\?</string>
<string name="send_bug_report_placeholder">Descreva seu problema aqui</string>
<string name="send_bug_report_logs_description">A fim de diagnosticar problemas, logs deste cliente vão ser enviados com este reporte de bug. Este reporte de bug, incluindo os logs e o screenshot, não será visível publicamente. Se você prefere somente enviar o texto acima, por favor desmarque:</string>
<string name="send_bug_report_alert_message">Você parece estar agitando o telefone em frustração. Você gostaria de abrir a tela de reporte de bug\?</string>
@ -429,7 +429,7 @@
<string name="auth_reset_password_error_unauthorized">Falha para verificar endereço de email: assegure-se que clicou no link no email</string>
<string name="auth_reset_password_success_message">Sua senha tem sido resettada.
\n
\nVocê tem sido feito logout de todas as sessões e não vai mais receber notificações push. Para reativar notificações, faça re-login em cada dispositivo.</string>
\nVocê tem sido feito logout de todas as sessões e não vai mais receber notificações push. Para re-ativar notificações, re-faça login em cada dispositivo.</string>
<!-- Login Screen -->
<string name="login_error_must_start_http">URL deve começar com http[s]://</string>
<string name="login_error_network_error">Incapaz de fazer login: Erro de rede</string>
@ -640,7 +640,7 @@
<string name="room_sliding_menu_version">Versão</string>
<string name="room_sliding_menu_term_and_conditions">Termos &amp; condições</string>
<string name="room_sliding_menu_third_party_notices">Notas de terceiros</string>
<string name="room_sliding_menu_copyright">Direito de autor</string>
<string name="room_sliding_menu_copyright">Copyright</string>
<string name="room_sliding_menu_privacy_policy">Política de privacidade</string>
<!-- Vector Settings -->
<string name="settings_profile_picture">Imagem de Perfil</string>
@ -667,7 +667,7 @@
<string name="settings_olm_version">versão de olm</string>
<string name="settings_app_term_conditions">Termos &amp; condições</string>
<string name="settings_third_party_notices">Notas de terceiros</string>
<string name="settings_copyright">Direitos de autor</string>
<string name="settings_copyright">Copyright</string>
<string name="settings_privacy_policy">Política de privacidade</string>
<string name="settings_clear_cache">Limpar cache</string>
<!--string name="settings_room_privacy_label">Privacidade</string-->
@ -894,7 +894,7 @@
<string name="groups_list">Lista de Grupos</string>
<string name="call">Chamar</string>
<string name="room_participants_ban_prompt_msg">Banir usuária(o) vai expulsá-la(o) desta sala e preveni-la(o) de se juntar de novo.</string>
<string name="room_settings_all_messages_noisy">Todas as mensagens (barulhentas)</string>
<string name="room_settings_all_messages_noisy">Todas as mensagens (barulhento)</string>
<string name="room_settings_all_messages">Todas as mensagens</string>
<string name="room_settings_mention_only">Menções somente</string>
<string name="room_settings_mute">Mudo</string>
@ -1015,7 +1015,7 @@
<string name="receipt_avatar">Avatar de recibo</string>
<string name="notice_avatar">Avatar de nota</string>
<string name="avatar">Avatar</string>
<string name="send_bug_report_rage_shake">Agite com raiva para reportar bug</string>
<string name="send_bug_report_rage_shake">Agitar com raiva para reportar bug</string>
<string name="settings_notification_privacy_normal">Normal</string>
<string name="settings_notification_privacy_reduced">Privacidade reduzida</string>
<string name="settings_notification_privacy_need_permission">O app precisa de permissão para rodar no background</string>
@ -1077,7 +1077,7 @@
<string name="startup_notification_privacy_title">Privacidade de Notificação</string>
<string name="template_startup_notification_privacy_message">${app_name} pode rodar no background para gerenciar suas notificações seguramente e privadamente. Isto pode afetar uso de bateria.</string>
<string name="startup_notification_privacy_button_grant">Conceder permissão</string>
<string name="startup_notification_privacy_button_other">Escolha um outra opção</string>
<string name="startup_notification_privacy_button_other">Escolher uma outra opção</string>
<string name="settings_opt_in_of_analytics">Enviar dados de analítica</string>
<string name="template_settings_opt_in_of_analytics_summary">${app_name} coleta analítica anônima para nos permitir melhorar o aplicativo.</string>
<string name="template_settings_opt_in_of_analytics_prompt">Por favor ative analítica para nos ajudar a melhorar ${app_name}.</string>
@ -1203,7 +1203,7 @@
<string name="settings_send_typing_notifs">Enviar notificações de digitação</string>
<string name="settings_send_typing_notifs_summary">Deixar outras(os) usuárias(os) saberem que você está digitando.</string>
<string name="settings_show_read_receipts">Mostrar recibos de leitura</string>
<string name="settings_show_read_receipts_summary">Clicar nos recibos de leitura para uma lista detalhada.</string>
<string name="settings_show_read_receipts_summary">Clique nos recibos de leitura para uma lista detalhada.</string>
<string name="settings_show_join_leave_messages">Mostrar eventos de juntar-se e sair</string>
<string name="settings_show_join_leave_messages_summary">Convites, expulsões e bans são desafetados.</string>
<string name="settings_show_avatar_display_name_changes_messages">Mostrar eventos de conta</string>
@ -1358,7 +1358,7 @@
<string name="room_participants_unban_title">Desbanir usuária(o)</string>
<string name="room_participants_unban_prompt_msg">Desbanir usuária(o) vai permitir-lhe se juntar à sala de novo.</string>
<string name="settings_add_3pid_confirm_password_title">Confirme sua senha</string>
<string name="template_settings_add_3pid_flow_not_supported">Você não pode fazer isto de ${app_name} celular</string>
<string name="template_settings_add_3pid_flow_not_supported">Você não pode fazer isto desde ${app_name} mobile</string>
<string name="settings_add_3pid_authentication_needed">Autenticação é requerida</string>
<string name="settings_notification_privacy_no_background_sync">O app <b>não</b> precisa de se conectar ao ServidorCasa no background, isto deveria reduzir uso de bateria</string>
<string name="settings_background_fdroid_sync_mode">Modo Sinc no Background</string>
@ -1387,7 +1387,7 @@
<string name="reset_secure_backup_title">Gere uma nova Chave de Segurança ou defina uma nova Frase de Segurança para seu backup existente.</string>
<string name="reset_secure_backup_warning">Isto vai substituir sua Chave ou Frase atual.</string>
<string name="settings_discovery_category">Descoberta</string>
<string name="settings_discovery_manage">Gerencie suas configurações de descoberta.</string>
<string name="settings_discovery_manage">Gerenciar suas configurações de descoberta.</string>
<string name="settings_data_save_mode_summary">Modo de economia de dados aplica um filtro específico para que atualizações de presença e notificações de digitação sejam filtradas fora.</string>
<string name="settings_integration_allow">Permitir integrações</string>
<string name="settings_integration_manager">Gerenciador de Integração</string>
@ -1600,9 +1600,9 @@
<string name="sas_incoming_verification_request_dialog">Você recebeu uma requisição de verificação entrante.</string>
<string name="sas_view_request_action">Visualizar requisição</string>
<string name="sas_waiting_for_partner">Esperando por parceira(o) confirmar…</string>
<string name="sas_verified">Verificada!</string>
<string name="sas_verified">Verificada(o)!</string>
<string name="sas_verified_successful">Você tem confirmado esta sessão com sucesso.</string>
<string name="sas_verified_successful_description">Mensagens seguras com esta(e) usuária(o) estão encriptadas ponta-a-ponta e não são capazes de ser lidas por terceiros.</string>
<string name="sas_verified_successful_description">Mensagens seguras com esta(e) usuária(o) são encriptadas ponta-a-ponta e não são capazes de ser lidas por terceiros.</string>
<string name="sas_got_it">Entendido</string>
<string name="sas_verifying_keys">Nada aparecendo\? Não todos os clientes suportam verificação interativa ainda. Use verificação legado.</string>
<string name="sas_legacy_verification_button_title">Usar verificação legado.</string>
@ -1637,10 +1637,10 @@
<string name="invited_by">Convidada(o) por %s</string>
<string name="room_list_catchup_empty_title">Você está em dia!</string>
<string name="room_list_catchup_empty_body">Você não tem mais nenhuma mensagem não-lida</string>
<string name="room_list_catchup_welcome_title">Boas-vindas!</string>
<string name="room_list_catchup_welcome_title">Boas-vindas a casa!</string>
<string name="room_list_catchup_welcome_body">Fique em dia com suas mensagens não-lidas aqui</string>
<string name="room_list_people_empty_title">Conversas</string>
<string name="room_list_people_empty_body">Suas conversas de mensagem direta vai ser exibidas aqui. Toque no + à direita fundo para começar algumas.</string>
<string name="room_list_people_empty_body">Suas conversas de mensagem direta vão ser exibidas aqui. Toque no + à direita fundo para começar algumas.</string>
<string name="room_list_rooms_empty_title">Salas</string>
<string name="room_list_rooms_empty_body">Suas salas vão ser exibidas aqui. Toque no + à direita fundo para encontrar umas existentes ou começar algumas propriamente suas.</string>
<string name="title_activity_emoji_reaction_picker">Reações</string>
@ -1669,7 +1669,7 @@
<string name="create_room_title">Nova Sala</string>
<string name="create_room_action_create">CRIAR</string>
<string name="create_room_name_hint">Nome</string>
<string name="create_room_public_title">Público</string>
<string name="create_room_public_title">Pública</string>
<string name="create_room_public_description">Qualquer pessoa vai ser capaz de se juntar a esta sala</string>
<string name="create_room_directory_title">Diretório de Salas</string>
<string name="create_room_directory_description">Publicar esta sala no diretório de salas</string>
@ -1816,7 +1816,7 @@
\nPor favor permita acesso no próximo pop-up para ser capaz de exportar suas chaves manualmente.</string>
<string name="no_network_indicator">Não há nenhuma conexão de rede no momento</string>
<string name="message_ignore_user">Ignorar usuária(o)</string>
<string name="room_list_quick_actions_notifications_all_noisy">Todas as mensagens (barulhentas)</string>
<string name="room_list_quick_actions_notifications_all_noisy">Todas as mensagens (barulhento)</string>
<string name="room_list_quick_actions_notifications_all">Todas as mensagens</string>
<string name="room_list_quick_actions_notifications_mentions">Menções somente</string>
<string name="room_list_quick_actions_notifications_mute">Mutar</string>
@ -1840,13 +1840,13 @@
<string name="login_splash_text1">Faça chat com pessoas diretamente ou em grupos</string>
<string name="login_splash_text2">Mantenha conversas privadas com encriptação</string>
<string name="login_splash_text3">Extenda &amp; personalize sua experiência</string>
<string name="login_splash_submit">Comece agora</string>
<string name="login_splash_submit">Começar agora</string>
<string name="login_server_title">Selecione um servidor</string>
<string name="login_server_text">Assim como email, contas têm uma casa, embora você pode falar com qualquer pessoa</string>
<string name="login_server_matrix_org_text">Junte-se a milhões de graça no maior servidor público</string>
<string name="login_server_modular_text">Hospedagem premium para organizações</string>
<string name="login_server_modular_learn_more">Saiba mais</string>
<string name="login_server_other_title">Outros</string>
<string name="login_server_other_title">Outro</string>
<string name="login_server_other_text">Configurações personalizadas &amp; avançadas</string>
<string name="login_continue">Continuar</string>
<string name="login_connect_to">Conectar-se a %1$s</string>
@ -1943,7 +1943,7 @@
<string name="login_signin_matrix_id_error_invalid_matrix_id">Este não é um identificador de usuária(o) válido. Formato esperado: \'@usuarix:servidorcasa.org\'</string>
<string name="autodiscover_well_known_error">Incapaz de encontrar um servidorcasa válido. Por favor cheque seu identificador</string>
<string name="seen_by">Vista por</string>
<string name="signed_out_title">Você fez signout</string>
<string name="signed_out_title">Você está com signout feito</string>
<string name="signed_out_notice">Pode ser devido a várias razões:
\n
\n• Você tem mudado sua senha numa outra sessão.
@ -1952,7 +1952,7 @@
\n
\n• O/a administrador(a) de seu servidor tem invalidado seu acesso por razão de segurança.</string>
<string name="signed_out_submit">Fazer signin de novo</string>
<string name="soft_logout_title">Você fez signout</string>
<string name="soft_logout_title">Você está com signout feito</string>
<string name="soft_logout_signin_title">Fazer signin</string>
<string name="soft_logout_signin_notice">A/o admin de seu servidorcasa (%1$s) fez seu signout de sua conta %2$s (%3$s).</string>
<string name="soft_logout_signin_e2e_warning_notice">Faça signin para recuperar chaves de encriptação armazenadas exclusivamente neste dispositivo. Você precisa delas para ler todas suas mensagens seguras em qualquer dispositivo.</string>
@ -1995,7 +1995,7 @@
<string name="verification_sas_match">Eles correspondem</string>
<string name="verification_sas_do_not_match">Eles não correspondem</string>
<string name="verify_user_sas_emoji_help_text">Verifique esta(e) usuária(o) ao confirmar que os seguintes emoji únicos aparecem na tela dela(e), na mesma ordem.</string>
<string name="verify_user_sas_emoji_security_tip">Para máxima segurança, use um outro meio de comunicação confiado ou faça isto em pessoa.</string>
<string name="verify_user_sas_emoji_security_tip">Para segurança ótima, use um outro meio de comunicação confiado ou faça isto em pessoa.</string>
<string name="verification_green_shield">Procure pelo escudo verde para assegurar que um/uma usuário(a) é confiado. Confie em todos(as) os/as usuários(as) numa sala para assegurar que a sala é segura.</string>
<string name="verification_conclusion_not_secure">Não seguro</string>
<string name="verification_conclusion_compromised">Um dos seguintes pode estar comprometido:
@ -2010,7 +2010,7 @@
<string name="sent_a_file">Arquivo</string>
<string name="send_a_sticker">Sticker</string>
<string name="verification_request_waiting">Esperando…</string>
<string name="verification_request_other_cancelled">%s cancelado</string>
<string name="verification_request_other_cancelled">%s cancelou</string>
<string name="verification_request_you_cancelled">Você cancelou</string>
<string name="verification_request_other_accepted">%s aceitou</string>
<string name="verification_request_you_accepted">Você aceitou</string>
@ -2036,7 +2036,7 @@
<string name="room_profile_not_encrypted_subtitle">Mensagens nesta sala não são encriptadas ponta-a-ponta.</string>
<string name="room_profile_encrypted_subtitle">Mensagens nesta sala são encriptadas ponta-a-ponta.
\n
\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipente têm as chaves únicas para os destrancar.</string>
\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipente têm as chaves únicas para as destrancar.</string>
<string name="room_profile_section_security">Segurança</string>
<string name="room_profile_section_security_learn_more">Saiba mais</string>
<string name="room_profile_section_more">Mais</string>
@ -2109,7 +2109,7 @@
<string name="complete_security">Completar Segurança</string>
<string name="verification_open_other_to_verify">Use uma sessão existente para verificar esta aqui, garantindo-lhe acesso a mensagens encriptadas.</string>
<string name="verification_profile_verify">Verificar</string>
<string name="verification_profile_verified">Verificada</string>
<string name="verification_profile_verified">Verificada(o)</string>
<string name="verification_profile_warning">Aviso</string>
<string name="room_member_profile_failed_to_get_devices">Falha para obter sessões</string>
<string name="room_member_profile_sessions_section_title">Sessões</string>
@ -2207,7 +2207,7 @@
<string name="bootstrap_crosssigning_progress_key_backup">Configurando Backup de Chave</string>
<string name="bootstrap_cross_signing_success">Suas %2$s &amp; %1$s estão agora definidas.
\n
\nMantenha-as seguras! Você vai precisar delas para destrancar mensagens encriptadas e informação segura se você perder todas as suas sessões ativas.</string>
\nMantenha-as seguras! Você vai precisar delas para destrancar mensagens encriptadas e informação segura se você perder todas suas sessões ativas.</string>
<string name="bootstrap_crosssigning_print_it">Imprima-a e armazene-a em algum lugar seguro</string>
<string name="bootstrap_crosssigning_save_usb">Salve-a em uma chave USB ou drive de backup</string>
<string name="bootstrap_crosssigning_save_cloud">Copie-a para seu armazenamento nuvem pessoal</string>
@ -2361,7 +2361,7 @@
<string name="crypto_error_withheld_generic">Você não pode acessar esta mensagem porque o/a enviador(a) propositalmente não enviou as chaves</string>
<string name="notice_crypto_unable_to_decrypt_merged">Esperando por histórico de encriptação</string>
<string name="disclaimer_title">Riot agora é Element!</string>
<string name="disclaimer_content">Nós estamos animados em anunciar que nós mudamos de nome! Seu app está atualizado e o signin está feito a sua conta.</string>
<string name="disclaimer_content">Nós estamos animados em anunciar que nós temos mudado de nome! Seu app está atualizado e você está com signin feito a sua conta.</string>
<string name="disclaimer_negative_button">ENTENDI</string>
<string name="disclaimer_positive_button">SABER MAIS</string>
<string name="save_recovery_key_chooser_hint">Salvar chave de recuperação em</string>
@ -2475,7 +2475,7 @@
<string name="direct_room_profile_section_more_settings">Configurações</string>
<string name="direct_room_profile_encrypted_subtitle">Mensagens aqui são encriptadas ponta-a-ponta.
\n
\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipiente têm as chaves únicas para os destrancar.</string>
\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipiente têm as chaves únicas para as destrancar.</string>
<string name="direct_room_profile_not_encrypted_subtitle">Mensagens aqui não são encriptadas ponta-a-ponta.</string>
<string name="login_error_outdated_homeserver_warning_content">Este servidorcasa está rodando uma versão antiga. Peça à/ao admin de seu servidorcasa para fazer upgrade. Você pode continuar, mas algumas funcionalidades podem não funcionar corretamente.</string>
<string name="settings_labs_show_complete_history_in_encrypted_room">Mostrar histórico completo em salas encriptadas</string>
@ -2510,7 +2510,7 @@
<string name="rotate_and_crop_screen_title">Rotar e recortar</string>
<string name="create_room_settings_section">Configurações de sala</string>
<string name="create_room_topic_hint">Tópico</string>
<string name="create_room_topic_section">Tópico da sala (opcional)</string>
<string name="create_room_topic_section">Tópico de sala (opcional)</string>
<string name="create_room_name_section">Nome de sala</string>
<string name="send_bug_report_include_key_share_history">Enviar histórico de requisições de compartilhamento de chaves</string>
<string name="no_more_results">Mais nenhum resultado</string>
@ -2519,7 +2519,7 @@
<string name="show_advanced">Mostrar avançadas</string>
<string name="hide_advanced">Esconder avançadas</string>
<string name="matrix_to_card_title">Link Matrix</string>
<string name="room_created_summary_no_topic_creation_text">%s para deixar pessoas sabendo do que esta sala se trata.</string>
<string name="room_created_summary_no_topic_creation_text">%s para deixar pessoas saberem do que esta sala se trata.</string>
<string name="create_room_alias_empty">Por favor proveja um endereço de sala</string>
<string name="direct_room_user_list_recent_title">Recente</string>
<string name="qr_code_not_scanned">QR code não scannado!</string>
@ -2876,4 +2876,9 @@
<item quantity="one">Enviar vídeo com o tamanho original</item>
<item quantity="other">Enviar vídeos com o tamanho original</item>
</plurals>
<string name="teammate_spaces_might_not_join">No momento pessoas podem não ser capaz de se juntar a quaisquer salas privadas que você fizer.
\n
\nNós vamos melhorar isto como parte da beta, mas só queríamos deixar você saber.</string>
<string name="teammate_spaces_arent_quite_ready">Espaços de colegas de trabalho não estão bem prontos mas você ainda pode dar-lhes uma tentativa</string>
<string name="continue_anyway">Continuar Mesmo Assim</string>
</resources>

View File

@ -2796,4 +2796,9 @@
<string name="directory_add_a_new_server_prompt">Jepni emrin e e një shërbyesi të ri që doni të eksploroni.</string>
<string name="directory_add_a_new_server">Shtoni shërbyes të ri</string>
<string name="directory_your_server">Shërbyesi juaj</string>
<string name="teammate_spaces_might_not_join">Hëpërhë, personat mund të mos jenë në gjendje të hyjnë në çfarëdo dhome private që krijoni.
\n
\nDo ta përmirësojmë këtë punë, si pjesë e versionit beta, thjesht donim tua bënim të ditur.</string>
<string name="teammate_spaces_arent_quite_ready">Hapësirat për anëtarë ekipi ende sjanë tërësisht gati, por mund ti provoni</string>
<string name="continue_anyway">Vazhdo, Sido Qoftë</string>
</resources>

View File

@ -2806,4 +2806,9 @@
<string name="directory_add_a_new_server_prompt">Ange namnet för en ny server du vill utforska.</string>
<string name="directory_add_a_new_server">Lägg till en ny server</string>
<string name="directory_your_server">Din server</string>
<string name="teammate_spaces_might_not_join">För tillfället så kan folk kanske inte gå med i privata rum som du skapar.
\n
\nVi kommer att förbättra detta som en del av betan, men ville låta dig veta.</string>
<string name="teammate_spaces_arent_quite_ready">Lagkamratsutrymmen är inte riktigt färdiga men du kan ändå testa dem</string>
<string name="continue_anyway">Fortsätt ändå</string>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -2763,4 +2763,9 @@
<string name="directory_add_a_new_server_prompt">输入你想要探索的新服务器的名称。</string>
<string name="directory_add_a_new_server">添加一个新的服务器</string>
<string name="directory_your_server">你的服务器</string>
<string name="teammate_spaces_might_not_join">眼下,人们可能无法加入您设置的任何私人房间。
\n
\n作为测试版的一部分我们将对此进行改进只是想让你知道。</string>
<string name="teammate_spaces_arent_quite_ready">队友空间还没有完全准备好,但你仍然可以尝试一下</string>
<string name="continue_anyway">不论如何继续</string>
</resources>

View File

@ -2753,4 +2753,9 @@
<string name="directory_add_a_new_server_prompt">輸入您想要探索的新伺服器名稱。</string>
<string name="directory_add_a_new_server">加入新的伺服器</string>
<string name="directory_your_server">您的伺服器</string>
<string name="teammate_spaces_might_not_join">目前,人們可能無法加入您開啟的任何私人聊天室。
\n
\n作為測試版的一部分我們會對此進行改善但想先讓您知道。</string>
<string name="teammate_spaces_arent_quite_ready">隊友空間還沒有完全準備好,但您仍可以試試看</string>
<string name="continue_anyway">無論如何都要繼續</string>
</resources>