Merge branch 'develop' of github.com:vector-im/element-android into feature/dla/fix_account_notifications_discrepancies

This commit is contained in:
David Langley 2021-07-19 22:08:34 +01:00
commit 89ece22f73
99 changed files with 575 additions and 230 deletions

View file

@ -7,24 +7,24 @@ assignees: bmarty
---
For the example, we are releasing the version 1.1.10
For the example, we are releasing the version 1.1.10. Delete this line and replace 1.1.10 with the version in the issue content.
### Before the release
- [ ] Weblate sync, fix lint issue if any (in a dedicated PR)
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
### Do the release
- [ ] Create release with gitflow, branch name `release/1.1.10`
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
- [ ] Run `./tools/import_emojis.py` and commit the change if any.
- [ ] Run `./tools/import_sas_strings.py` and commit the change if any. If there is no change since a while, ping Travis
- [ ] Check the crashes from the PlayStore
- [ ] Check the rageshake with the current dev version. For instance https://github.com/matrix-org/element-android-rageshakes/labels/1.1.10-dev
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.1.10-dev
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
- [ ] Create an account on matrix.org
- [ ] Run towncrier: `./towncrier --version v1.1.10` (add `--draft` for a preview)
- [ ] Run towncrier: `towncrier --version v1.1.10 --draft` (remove `--draft` do write the file CHANGES.md)
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
- [ ] Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
- [ ] Finish release with gitflow, delete the draft PR

View file

@ -1,3 +1,27 @@
Changes in Element v1.1.13 (2021-07-19)
=======================================
Features ✨
----------
- Remove redundant mimetype (vector-im/element-web#2547) ([#3273](https://github.com/vector-im/element-android/issues/3273))
- Room version capabilities and room upgrade support, better error feedback ([#3551](https://github.com/vector-im/element-android/issues/3551))
- Add retry support in room addresses screen ([#3635](https://github.com/vector-im/element-android/issues/3635))
- Better management of permission requests ([#3667](https://github.com/vector-im/element-android/issues/3667))
Bugfixes 🐛
----------
- Standardise spelling and casing of homeserver, identity server, and integration manager. ([#491](https://github.com/vector-im/element-android/issues/491))
- Perform .well-known request first, even if the entered URL is a valid homeserver base url ([#2843](https://github.com/vector-im/element-android/issues/2843))
- Use different copy for self verification. ([#3624](https://github.com/vector-im/element-android/issues/3624))
- Crash when opening room addresses screen with no internet connection ([#3634](https://github.com/vector-im/element-android/issues/3634))
- Fix unread messages marker being hidden in collapsed membership item ([#3655](https://github.com/vector-im/element-android/issues/3655))
- Ensure reaction emoji picker tabs look fine on small displays ([#3661](https://github.com/vector-im/element-android/issues/3661))
SDK API changes ⚠️
------------------
- RawService.getWellknown() now takes a domain instead of a matrixId as parameter ([#3572](https://github.com/vector-im/element-android/issues/3572))
Changes in Element 1.1.12 (2021-07-05)
======================================

View file

@ -2,25 +2,25 @@ GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.3)
addressable (2.7.0)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.1.1)
aws-partitions (1.462.0)
aws-sdk-core (3.114.0)
aws-partitions (1.479.0)
aws-sdk-core (3.117.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.43.0)
aws-sdk-kms (1.44.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.95.1)
aws-sdk-s3 (1.96.1)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.3)
aws-sigv4 (1.2.4)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.0.3)
@ -35,13 +35,15 @@ GEM
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
emoji_regex (3.2.2)
excon (0.81.0)
faraday (1.4.2)
excon (0.85.0)
faraday (1.5.1)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0.1)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.1)
faraday-patron (~> 1.0)
multipart-post (>= 1.2, < 3)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
@ -50,12 +52,14 @@ GEM
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.1.0)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday_middleware (1.0.0)
faraday (~> 1.0)
fastimage (2.2.3)
fastlane (2.184.0)
fastimage (2.2.4)
fastlane (2.187.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
artifactory (~> 3.0)
@ -94,37 +98,36 @@ GEM
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.4.0)
google-apis-core (~> 0.1)
google-apis-core (0.3.0)
google-apis-androidpublisher_v3 (0.8.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-core (0.4.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.14)
httpclient (>= 2.8.1, < 3.0)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
retriable (>= 2.0, < 4.a)
rexml
signet (~> 0.14)
webrick
google-apis-iamcredentials_v1 (0.4.0)
google-apis-core (~> 0.1)
google-apis-playcustomapp_v1 (0.3.0)
google-apis-core (~> 0.1)
google-apis-storage_v1 (0.4.0)
google-apis-core (~> 0.1)
google-apis-iamcredentials_v1 (0.6.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-playcustomapp_v1 (0.5.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-storage_v1 (0.6.0)
google-apis-core (>= 0.4, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.5.0)
faraday (>= 0.17.3, < 2.0)
google-cloud-errors (1.1.0)
google-cloud-storage (1.31.1)
google-cloud-storage (1.34.1)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.1)
google-cloud-core (~> 1.2)
googleauth (~> 0.9)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (0.16.2)
faraday (>= 0.17.3, < 2.0)
@ -134,7 +137,7 @@ GEM
os (>= 0.9, < 2.0)
signet (~> 0.14)
highline (2.0.3)
http-cookie (1.0.3)
http-cookie (1.0.4)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.4.0)
@ -150,7 +153,7 @@ GEM
os (1.1.1)
plist (3.6.0)
public_suffix (4.0.6)
rake (13.0.3)
rake (13.0.6)
representable (3.1.1)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
@ -158,8 +161,8 @@ GEM
retriable (3.1.2)
rexml (3.2.5)
rouge (2.0.7)
ruby2_keywords (0.0.4)
rubyzip (2.3.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
signet (0.15.0)
addressable (~> 2.3)
@ -184,12 +187,13 @@ GEM
unicode-display_width (1.7.0)
webrick (1.7.0)
word_wrap (1.0.0)
xcodeproj (1.19.0)
xcodeproj (1.20.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)

View file

@ -2,7 +2,7 @@
buildscript {
// Ref: https://kotlinlang.org/releases.html
ext.kotlin_version = '1.5.20'
ext.kotlin_version = '1.5.21'
ext.kotlin_coroutines_version = "1.5.0"
repositories {
google()

View file

@ -1 +0,0 @@
Perform .well-known request first, even if the entered URL is a valid homeserver base url

View file

@ -1 +0,0 @@
Remove redundant mimetype (vector-im/element-web#2547)

View file

@ -1 +0,0 @@
Room version capabilities and room upgrade support, better error feedback

View file

@ -1 +0,0 @@
RawService.getWellknown() now takes a domain instead of a matrixId as parameter

View file

@ -1 +0,0 @@
Use different copy for self verification.

View file

@ -1 +0,0 @@
Crash when opening room addresses screen with no internet connection

View file

@ -1 +0,0 @@
Add retry support in room addresses screen

View file

@ -1 +0,0 @@
Fix unread messages marker being hidden in collapsed membership item

1
changelog.d/3656.bugfix Normal file
View file

@ -0,0 +1 @@
Avoid incomplete downloads in cache

View file

@ -1 +0,0 @@
Ensure reaction emoji picker tabs look fine on small displays

View file

@ -1 +0,0 @@
Better management of permission requests

View file

@ -4,7 +4,7 @@ Issue: #607
PR: #1354
## Introduction
Identity Servers support contact discovery on Matrix by letting people look up Third Party Identifiers to see if the owner has publicly linked them with their Matrix ID.
Identity servers support contact discovery on Matrix by letting people look up Third Party Identifiers to see if the owner has publicly linked them with their Matrix ID.
## Implementation
@ -87,6 +87,6 @@ This screen displays the identity server configuration and the binding of the us
This screen is a form to set a new identity server URL
## Ref:
- https://matrix.org/blog/2019/09/27/privacy-improvements-in-synapse-1-4-and-riot-1-4 is a good summary of the role of an Identity server and the proper way to configure and use it in respect to the privacy and the consent of the user.
- https://matrix.org/blog/2019/09/27/privacy-improvements-in-synapse-1-4-and-riot-1-4 is a good summary of the role of an identity server and the proper way to configure and use it in respect to the privacy and the consent of the user.
- API documentation: https://matrix.org/docs/spec/identity_service/latest
- vector.im TOS: https://vector.im/identity-server-privacy-notice

View file

@ -2,11 +2,11 @@ This document aims to describe how Element android displays notifications to the
# Table of Contents
1. [Prerequisites Knowledge](#prerequisites-knowledge)
* [How does a matrix client get a message from a Home Server?](#how-does-a-matrix-client-get-a-message-from-a-home-server)
* [How does a matrix client get a message from a homeserver?](#how-does-a-matrix-client-get-a-message-from-a-homeserver)
* [How does a mobile app receives push notification?](#how-does-a-mobile-app-receives-push-notification)
* [Push VS Notification](#push-vs-notification)
* [Push in the matrix federated world](#push-in-the-matrix-federated-world)
* [How does the Home Server knows when to notify a client?](#how-does-the-home-server-knows-when-to-notify-a-client)
* [How does the homeserver know when to notify a client?](#how-does-the-homeserver-know-when-to-notify-a-client)
* [Push vs privacy, and mitigation](#push-vs-privacy-and-mitigation)
* [Background processing limitations](#background-processing-limitations)
2. [Element Notification implementations](#element-notification-implementations)
@ -22,9 +22,9 @@ First let's start with some prerequisite knowledge
# Prerequisites Knowledge
## How does a matrix client get a message from a Home Server?
## How does a matrix client get a message from a homeserver?
In order to get messages from a home server, a matrix client need to perform a ``sync`` operation.
In order to get messages from a homeserver, a matrix client need to perform a ``sync`` operation.
`To read events, the intended flow of operation is for clients to first call the /sync API without a since parameter. This returns the most recent message events for each room, as well as the state of the room at the start of the returned timeline. `
@ -90,7 +90,7 @@ That means that Element Android, a matrix client created by New Vector, is using
If you create your own matrix client, you will also need to deploy an instance of a **Push Gateway** with the credentials needed to use FCM for your app.
On registration, a matrix client must tell to it's Home Server what Push Gateway to use.
On registration, a matrix client must tell its homeserver what Push Gateway to use.
See [Sygnal](https://github.com/matrix-org/sygnal/) for a reference implementation.
```
@ -122,13 +122,13 @@ Recommended reading:
* https://matrix.org/docs/spec/client_server/r0.4.0.html#id128
## How does the Home Server knows when to notify a client?
## How does the homeserver know when to notify a client?
This is defined by [**push rules**](https://matrix.org/docs/spec/client_server/r0.4.0.html#push-rules-).
`A push rule is a single rule that states under what conditions an event should be passed onto a push gateway and how the notification should be presented (sound / importance).`
A Home Server can be configured with default rules (for Direct messages, group messages, mentions, etc.. ).
A homeserver can be configured with default rules (for Direct messages, group messages, mentions, etc.. ).
There are different kind of push rules, it can be per room (each new message on this room should be notified), it can also define a pattern that a message should match (when you are mentioned, or key word based).
@ -187,7 +187,7 @@ In background, and depending on wether push is available or not, Element will us
## Push (FCM) received in background
In order to enable Push, Element must first get a push token from the firebase SDK, then register a pusher with this token on the HomeServer.
In order to enable Push, Element must first get a push token from the firebase SDK, then register a pusher with this token on the homeserver.
When a message should be notified to a user, the user's homeserver notifies the registered `push gateway` for Element, that is [sygnal](https://github.com/matrix-org/sygnal) _- The reference implementation for push gateways -_ hosted by matrix.org.
@ -199,7 +199,7 @@ Homeserver ----> Sygnal (configured for Element) ----> FCM ----> Element
The push gateway is configured to only send `(eventId,roomId)` in the push payload (for better [privacy](#push-vs-privacy-and-mitigation)).
Element needs then to synchronise with the user's HomeServer, in order to resolve the event and create a notification.
Element needs then to synchronise with the user's homeserver, in order to resolve the event and create a notification.
As per [Google recommendation](https://android-developers.googleblog.com/2018/09/notifying-your-users-with-fcm.html), Element will then use the WorkManager API in order to trigger a background sync.
@ -217,7 +217,7 @@ Homeserver ----> Sygnal ----> FCM ----> Element
**Possible outcomes**
Upon reception of the FCM push, Element will perform a sync call to the Home Server, during this process it is possible that:
Upon reception of the FCM push, Element will perform a sync call to the homeserver, during this process it is possible that:
* Happy path, the sync is performed, the message resolved and displayed in the notification drawer
* The notified message is not in the sync. Can happen if a lot of things did happen since the push (`gappy sync`)
* The sync generates additional notifications (e.g an encrypted message where the user is mentioned detected locally)

View file

@ -0,0 +1,2 @@
Hlavní změny v této verzi: aktualizace vzhledu a stylu a nové funkce prostorů.
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Hlavní změny v této verzi: aktualizace vzhledu a stylu a nové funkce prostorů (bugfix pro 1.1.10)
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
Hauptänderungen: Design-Update und neue Features für Spaces
Vollständige Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Hauptänderungen: Design-Update und neue Features für Spaces (Bugfix für 1.1.10)
Vollständige Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
Main changes in this version: mainly stability and bugfixes update.
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.13

View file

@ -0,0 +1,2 @@
Põhilised muutused selles versioonis: teemade ja välimuse uuendused ning mõned kogukondade uuendused
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Põhilised muutused selles versioonis: teemade ja välimuse uuendused ning mõned kogukondade uuendused (1.1.10 veaparandus)
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
Főbb változtatások ebben a verzióban: kinézet és stílus frissítések és új funkciók a terekhez
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Főbb változtatások ebben a verzióban: kinézet és stílus frissítések és új funkciók a terekhez (hibajavítás az 1.1.10-hez)
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
Modifiche principali in questa versione: aggiornati tema e stile e nuove funzioni per gli spazi .
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Modifiche principali in questa versione: aggiornati tema e stile e nuove funzioni per gli spazi (bugfix per 1.1.10)
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -1,2 +1,2 @@
Principais mudanças nesta version: suporte beta para Espaços. Comprimir vídeo antes de enviar.
Principais mudanças nesta versão: suporte beta para Espaços. Comprimir vídeo antes de enviar.
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.7

View file

@ -1,2 +1,2 @@
Principais mudanças nesta version: melhoramento para Espaços.
Principais mudanças nesta versão: melhoramento para Espaços.
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.8

View file

@ -1,2 +1,2 @@
Principais mudanças nesta version: adicionar supporte a rede gitter.im.
Principais mudanças nesta versão: adicionar supporte a rede gitter.im.
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.9

View file

@ -0,0 +1,2 @@
Principais mudanças nesta versão: atualização de tema e estilo e novas funcionalidades para espaços.
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Principais mudanças nesta versão: atualização de tema e estilo e novas funcionalidades para espaços (bugfix para 1.1.10)
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
Основні зміни цієї версії: оновлено зовнішній вигляд та нові можливості для просторів
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
Основні зміни цієї версії: оновлено зовнішній вигляд та нові можливості для просторів (bugfix для 1.1.10)
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
此版本的主要变化:主题和样式更新以及空间的新功能。
完整更新日志https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
此版本的主要变化主题和样式更新以及空间的新功能1.1.10 的错误修复)
完整更新日志https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -0,0 +1,2 @@
此版本中的主要變動:佈景主題與樣式更新,以及空間的新功能。
完整的變更紀錄https://github.com/vector-im/element-android/releases/tag/v1.1.10

View file

@ -0,0 +1,2 @@
此版本中的主要變動佈景主題與樣式更新以及空間的新功能1.1.10 的臭蟲修復版本)
完整的變更紀錄https://github.com/vector-im/element-android/releases/tag/v1.1.11

View file

@ -176,7 +176,7 @@ dependencies {
//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.12.0'
testImplementation 'org.amshove.kluent:kluent-android:1.67'
testImplementation 'org.amshove.kluent:kluent-android:1.68'
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
// Plant Timber tree for test
testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
@ -187,7 +187,7 @@ dependencies {
androidTestImplementation 'androidx.test:rules:1.4.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'org.amshove.kluent:kluent-android:1.65'
androidTestImplementation 'org.amshove.kluent:kluent-android:1.68'
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"

View file

@ -78,7 +78,7 @@ class CommonTestHelper(context: Context) {
}
/**
* Create a Home server configuration, with Http connection allowed for test
* Create a homeserver configuration, with Http connection allowed for test
*/
fun createHomeServerConfig(): HomeServerConnectionConfig {
return HomeServerConnectionConfig.Builder()

View file

@ -816,7 +816,7 @@ class KeysBackupTest : InstrumentedTest {
// - Do an e2e backup to the homeserver
mKeysBackupTestHelper.prepareAndCreateKeysBackupData(keysBackup)
// Get key backup version from the home server
// Get key backup version from the homeserver
val keysVersionResult = mTestHelper.doSync<KeysVersionResult?> {
keysBackup.getCurrentVersion(it)
}

View file

@ -17,9 +17,11 @@
package org.matrix.android.sdk.api
import org.matrix.android.sdk.BuildConfig
import timber.log.Timber
/**
* This class contains pattern to match the different Matrix ids
* Ref: https://matrix.org/docs/spec/appendices#identifier-grammar
*/
object MatrixPatterns {
@ -27,7 +29,7 @@ object MatrixPatterns {
private const val DOMAIN_REGEX = ":[A-Z0-9.-]+(:[0-9]{2,5})?"
// regex pattern to find matrix user ids in a string.
// See https://matrix.org/speculator/spec/HEAD/appendices.html#historical-user-ids
// See https://matrix.org/docs/spec/appendices#historical-user-ids
private const val MATRIX_USER_IDENTIFIER_REGEX = "@[A-Z0-9\\x21-\\x39\\x3B-\\x7F]+$DOMAIN_REGEX"
val PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER = MATRIX_USER_IDENTIFIER_REGEX.toRegex(RegexOption.IGNORE_CASE)
@ -173,8 +175,9 @@ object MatrixPatterns {
* - "@bob:domain.org:3455".getDomain() will return "domain.org:3455"
*/
fun String.getDomain(): String {
if (BuildConfig.DEBUG) {
assert(isUserId(this))
if (BuildConfig.DEBUG && !isUserId(this)) {
// They are some invalid userId localpart in the wild, but the domain part should be there anyway
Timber.w("Not a valid user ID: $this")
}
return substringAfter(":")
}

View file

@ -73,14 +73,14 @@ data class HomeServerConnectionConfig(
*/
fun withHomeServerUri(hsUri: Uri): Builder {
if (hsUri.scheme != "http" && hsUri.scheme != "https") {
throw RuntimeException("Invalid home server URI: $hsUri")
throw RuntimeException("Invalid homeserver URI: $hsUri")
}
// ensure trailing /
val hsString = hsUri.toString().ensureTrailingSlash()
homeServerUri = try {
Uri.parse(hsString)
} catch (e: Exception) {
throw RuntimeException("Invalid home server URI: $hsUri")
throw RuntimeException("Invalid homeserver URI: $hsUri")
}
return this
}
@ -138,7 +138,7 @@ data class HomeServerConnectionConfig(
}
/**
* Add an accepted TLS version for TLS connections with the home server.
* Add an accepted TLS version for TLS connections with the homeserver.
*
* @param tlsVersion the tls version to add to the set of TLS versions accepted.
* @return this builder
@ -160,7 +160,7 @@ data class HomeServerConnectionConfig(
}
/**
* Add a TLS cipher suite to the list of accepted TLS connections with the home server.
* Add a TLS cipher suite to the list of accepted TLS connections with the homeserver.
*
* @param tlsCipherSuite the tls cipher suite to add.
* @return this builder

View file

@ -38,7 +38,7 @@ data class RegistrationFlowResponse(
val completedStages: List<String>? = null,
/**
* The session identifier that the client must pass back to the home server, if one is provided,
* The session identifier that the client must pass back to the homeserver, if one is provided,
* in subsequent attempts to authenticate in the same API call.
*/
@Json(name = "session")

View file

@ -28,7 +28,7 @@ import org.matrix.android.sdk.internal.crypto.store.SavedKeyBackupKeyInfo
interface KeysBackupService {
/**
* Retrieve the current version of the backup from the home server
* Retrieve the current version of the backup from the homeserver
*
* It can be different than keysBackupVersion.
* @param callback onSuccess(null) will be called if there is no backup on the server

View file

@ -54,7 +54,7 @@ enum class KeysBackupState {
// Need to check the current backup version on the homeserver
Unknown,
// Checking if backup is enabled on home server
// Checking if backup is enabled on homeserver
CheckingBackUpOnHomeserver,
// Backup has been stopped because a new backup version has been detected on the homeserver

View file

@ -104,7 +104,7 @@ data class Event(
/**
* The `age` value transcoded in a timestamp based on the device clock when the SDK received
* the event from the home server.
* the event from the homeserver.
* Unlike `age`, this value is static.
*/
@Transient

View file

@ -38,7 +38,7 @@ internal class DefaultSessionCreator @Inject constructor(
) : SessionCreator {
/**
* Credentials can affect the homeServerConnectionConfig, override home server url and/or
* Credentials can affect the homeServerConnectionConfig, override homeserver url and/or
* identity server url if provided in the credentials
*/
override suspend fun createSession(credentials: Credentials, homeServerConnectionConfig: HomeServerConnectionConfig): Session {

View file

@ -56,7 +56,7 @@ data class MXDeviceInfo(
val signatures: Map<String, Map<String, String>>? = null,
/*
* Additional data from the home server.
* Additional data from the homeserver.
*/
@Json(name = "unsigned")
val unsigned: JsonDict? = null,

View file

@ -20,7 +20,7 @@ import io.realm.RealmObject
import io.realm.annotations.Index
/**
* Clients can store custom config data for their account on their HomeServer.
* Clients can store custom config data for their account on their homeserver.
* This account data will be synced between different devices and can persist across installations on a particular device.
* Users may only view the account data for their own account.
* The account_data may be either global or scoped to a particular rooms.

View file

@ -41,7 +41,7 @@ public class Credentials {
public String deviceId;
// Optional data that may contain info to override home server and/or identity server
// Optional data that may contain info to override homeserver and/or identity server
public WellKnown wellKnown;
public JSONObject toJson() throws JSONException {

View file

@ -44,7 +44,7 @@ import timber.log.Timber;
*/
public class HomeServerConnectionConfig {
// the home server URI
// the homeserver URI
private Uri mHomeServerUri;
// the jitsi server URI. Can be null
@Nullable
@ -82,7 +82,7 @@ public class HomeServerConnectionConfig {
}
/**
* Update the home server URI.
* Update the homeserver URI.
*
* @param uri the new HS uri
*/
@ -91,7 +91,7 @@ public class HomeServerConnectionConfig {
}
/**
* @return the home server uri
* @return the homeserver uri
*/
public Uri getHomeserverUri() {
return mHomeServerUri;
@ -145,7 +145,7 @@ public class HomeServerConnectionConfig {
public void setCredentials(Credentials credentials) {
mCredentials = credentials;
// Override home server url and/or identity server url if provided
// Override homeserver url and/or identity server url if provided
if (credentials.wellKnown != null) {
if (credentials.wellKnown.homeServer != null) {
String homeServerUrl = credentials.wellKnown.homeServer.baseURL;
@ -200,7 +200,7 @@ public class HomeServerConnectionConfig {
}
/**
* TLS versions accepted for TLS connections with the home server.
* TLS versions accepted for TLS connections with the homeserver.
*/
@Nullable
public List<TlsVersion> getAcceptedTlsVersions() {
@ -208,7 +208,7 @@ public class HomeServerConnectionConfig {
}
/**
* TLS cipher suites accepted for TLS connections with the home server.
* TLS cipher suites accepted for TLS connections with the homeserver.
*/
@Nullable
public List<CipherSuite> getAcceptedTlsCipherSuites() {
@ -426,7 +426,7 @@ public class HomeServerConnectionConfig {
*/
public Builder withHomeServerUri(final Uri homeServerUri) {
if (homeServerUri == null || (!"http".equals(homeServerUri.getScheme()) && !"https".equals(homeServerUri.getScheme()))) {
throw new RuntimeException("Invalid home server URI: " + homeServerUri);
throw new RuntimeException("Invalid homeserver URI: " + homeServerUri);
}
// remove trailing /
@ -435,7 +435,7 @@ public class HomeServerConnectionConfig {
String url = homeServerUri.toString();
mHomeServerConnectionConfig.mHomeServerUri = Uri.parse(url.substring(0, url.length() - 1));
} catch (Exception e) {
throw new RuntimeException("Invalid home server URI: " + homeServerUri);
throw new RuntimeException("Invalid homeserver URI: " + homeServerUri);
}
} else {
mHomeServerConnectionConfig.mHomeServerUri = homeServerUri;
@ -549,7 +549,7 @@ public class HomeServerConnectionConfig {
}
/**
* Add an accepted TLS version for TLS connections with the home server.
* Add an accepted TLS version for TLS connections with the homeserver.
*
* @param tlsVersion the tls version to add to the set of TLS versions accepted.
* @return this builder
@ -577,7 +577,7 @@ public class HomeServerConnectionConfig {
}
/**
* Add a TLS cipher suite to the list of accepted TLS connections with the home server.
* Add a TLS cipher suite to the list of accepted TLS connections with the homeserver.
*
* @param tlsCipherSuite the tls cipher suite to add.
* @return this builder
@ -666,7 +666,7 @@ public class HomeServerConnectionConfig {
public HomeServerConnectionConfig build() {
// Check mandatory parameters
if (mHomeServerConnectionConfig.mHomeServerUri == null) {
throw new RuntimeException("Home server URI not set");
throw new RuntimeException("Homeserver URI not set");
}
return mHomeServerConnectionConfig;

View file

@ -38,7 +38,7 @@ import timber.log.Timber;
public class LoginStorage {
private static final String PREFS_LOGIN = "Vector.LoginStorage";
// multi accounts + home server config
// multi accounts + homeserver config
private static final String PREFS_KEY_CONNECTION_CONFIGS = "PREFS_KEY_CONNECTION_CONFIGS";
private final Context mContext;
@ -49,7 +49,7 @@ public class LoginStorage {
}
/**
* @return the list of home server configurations.
* @return the list of homeserver configurations.
*/
public List<HomeServerConnectionConfig> getCredentialsList() {
SharedPreferences prefs = mContext.getSharedPreferences(PREFS_LOGIN, Context.MODE_PRIVATE);
@ -85,7 +85,7 @@ public class LoginStorage {
/**
* Add a credentials to the credentials list
*
* @param config the home server config to add.
* @param config the homeserver config to add.
*/
public void addCredentials(HomeServerConnectionConfig config) {
if (null != config && config.getCredentials() != null) {
@ -203,4 +203,4 @@ public class LoginStorage {
//Need to commit now because called before forcing an app restart
editor.commit();
}
}
}

View file

@ -33,6 +33,7 @@ import org.matrix.android.sdk.internal.di.SessionDownloadsDirectory
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificateWithProgress
import org.matrix.android.sdk.internal.session.download.DownloadProgressInterceptor.Companion.DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER
import org.matrix.android.sdk.internal.util.MatrixCoroutineDispatchers
import org.matrix.android.sdk.internal.util.file.AtomicFileCreator
import org.matrix.android.sdk.internal.util.md5
import org.matrix.android.sdk.internal.util.writeToFile
import timber.log.Timber
@ -96,6 +97,9 @@ internal class DefaultFileService @Inject constructor(
}
}
var atomicFileDownload: AtomicFileCreator? = null
var atomicFileDecrypt: AtomicFileCreator? = null
if (existingDownload != null) {
// FIXME If the first downloader cancels then we'll unfortunately be cancelled too.
return existingDownload.await()
@ -131,8 +135,11 @@ internal class DefaultFileService @Inject constructor(
Timber.v("Response size ${response.body?.contentLength()} - Stream available: ${!source.exhausted()}")
// Write the file to cache (encrypted version if the file is encrypted)
writeToFile(source.inputStream(), cachedFiles.file)
// Write to a part file first, so if we abort before done, we don't have a broken cached file
val atomicFileCreator = AtomicFileCreator(cachedFiles.file).also { atomicFileDownload = it }
writeToFile(source.inputStream(), atomicFileCreator.partFile)
response.close()
atomicFileCreator.commit()
} else {
Timber.v("## FileService: cache hit for $url")
}
@ -145,8 +152,10 @@ internal class DefaultFileService @Inject constructor(
Timber.v("## FileService: decrypt file")
// Ensure the parent folder exists
cachedFiles.decryptedFile.parentFile?.mkdirs()
// Write to a part file first, so if we abort before done, we don't have a broken cached file
val atomicFileCreator = AtomicFileCreator(cachedFiles.decryptedFile).also { atomicFileDecrypt = it }
val decryptSuccess = cachedFiles.file.inputStream().use { inputStream ->
cachedFiles.decryptedFile.outputStream().buffered().use { outputStream ->
atomicFileCreator.partFile.outputStream().buffered().use { outputStream ->
MXEncryptedAttachments.decryptAttachment(
inputStream,
elementToDecrypt,
@ -154,6 +163,7 @@ internal class DefaultFileService @Inject constructor(
)
}
}
atomicFileCreator.commit()
if (!decryptSuccess) {
throw IllegalStateException("Decryption error")
}
@ -174,6 +184,11 @@ internal class DefaultFileService @Inject constructor(
}
toNotify?.completeWith(result)
result.onFailure {
atomicFileDownload?.cancel()
atomicFileDecrypt?.cancel()
}
return result.getOrThrow()
}

View file

@ -191,7 +191,7 @@ internal class DefaultIdentityService @Inject constructor(
} else {
// Disconnect previous one if any, first, because the token will change.
// In case of error when configuring the new identity server, this is not a big deal,
// we will ask for a new token on the previous Identity server
// we will ask for a new token on the previous identity server
runCatching { identityDisconnectTask.execute(Unit) }
.onFailure { Timber.w(it, "Unable to disconnect identity server") }
@ -241,7 +241,7 @@ internal class DefaultIdentityService @Inject constructor(
override suspend fun getShareStatus(threePids: List<ThreePid>): Map<ThreePid, SharedState> {
// Note: we do not require user consent here, because it is used for emails and phone numbers that the user has already sent
// to the home server, and not emails and phone numbers from the contact book of the user
// to the homeserver, and not emails and phone numbers from the contact book of the user
if (threePids.isEmpty()) {
return emptyMap()

View file

@ -42,7 +42,7 @@ internal interface IdentityAuthAPI {
suspend fun ping()
/**
* Ping v1 will be used to check outdated Identity server
* Ping v1 will be used to check outdated identity server
*/
@GET("_matrix/identity/api/v1")
suspend fun pingV1()

View file

@ -43,8 +43,8 @@ import javax.inject.Inject
/**
* The integration manager allows to
* - Get the Integration Manager that a user has explicitly set for its account (via account data)
* - Get the recommended/preferred Integration Manager list as defined by the HomeServer (via wellknown)
* - Get the integration manager that a user has explicitly set for its account (via account data)
* - Get the recommended/preferred integration manager list as defined by the homeserver (via wellknown)
* - Check if the user has disabled the integration manager feature
* - Allow / Disallow Integration manager (propagated to other riot clients)
*

View file

@ -86,7 +86,7 @@ internal interface ProfileAPI {
suspend fun addMsisdn(@Body body: AddMsisdnBody): AddMsisdnResponse
/**
* Validate Msisdn code (same model than for Identity server API)
* Validate Msisdn code (same model than for identity server API)
*/
@POST
suspend fun validateMsisdn(@Url url: String,

View file

@ -59,7 +59,7 @@ internal class CreateRoomBodyBuilder @Inject constructor(
val invite3pids = params.invite3pids
.takeIf { it.isNotEmpty() }
?.let { invites ->
// This can throw Exception if Identity server is not configured
// This can throw an exception if identity server is not configured
ensureIdentityTokenTask.execute(Unit)
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol()

View file

@ -46,7 +46,7 @@ private const val MAX_RETRY_COUNT = 3
/**
* This class is responsible for sending events in order in each room. It uses the QueuedTask.queueIdentifier to execute tasks sequentially.
* Each send is retried 3 times, if there is no network (e.g if cannot ping home server) it will wait and
* Each send is retried 3 times, if there is no network (e.g if cannot ping homeserver) it will wait and
* periodically test reachability before resume (does not count as a retry)
*
* If the app is killed before all event were sent, on next wakeup the scheduled events will be re posted

View file

@ -42,7 +42,7 @@ import kotlin.concurrent.schedule
/**
* A simple ever running thread unique for that session responsible of sending events in order.
* Each send is retried 3 times, if there is no network (e.g if cannot ping home server) it will wait and
* Each send is retried 3 times, if there is no network (e.g if cannot ping homeserver) it will wait and
* periodically test reachability before resume (does not count as a retry)
*
* If the app is killed before all event were sent, on next wakeup the scheduled events will be re posted

View file

@ -94,7 +94,7 @@ internal class DefaultSyncTask @Inject constructor(
userStore.createOrUpdate(userId)
initialSyncProgressService.startRoot(InitSyncStep.ImportingAccount, 100)
}
// Maybe refresh the home server capabilities data we know
// Maybe refresh the homeserver capabilities data we know
getHomeServerCapabilitiesTask.execute(GetHomeServerCapabilitiesTask.Params(forceRefresh = false))
val readTimeOut = (params.timeout + TIMEOUT_MARGIN).coerceAtLeast(TimeOutInterceptor.DEFAULT_LONG_TIMEOUT)

View file

@ -0,0 +1,42 @@
/*
* Copyright (c) 2021 The Matrix.org Foundation C.I.C.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.matrix.android.sdk.internal.util.file
import timber.log.Timber
import java.io.File
internal class AtomicFileCreator(private val file: File) {
val partFile = File(file.parentFile, "${file.name}.part")
init {
if (file.exists()) {
Timber.w("## AtomicFileCreator: target file ${file.path} exists, it should not happen.")
}
if (partFile.exists()) {
Timber.d("## AtomicFileCreator: discard aborted part file ${partFile.path}")
// No need to delete the file, we will overwrite it
}
}
fun cancel() {
partFile.delete()
}
fun commit() {
partFile.renameTo(file)
}
}

View file

@ -130,7 +130,7 @@ internal class DefaultGetWellknownTask @Inject constructor(
}
/**
* Return true if home server is valid, and (if applicable) if identity server is pingable
* Return true if homeserver is valid, and (if applicable) if identity server is pingable
*/
private suspend fun validateHomeServer(homeServerBaseUrl: String, wellKnown: WellKnown, client: OkHttpClient): WellknownResult {
val capabilitiesAPI = retrofitFactory.create(client, homeServerBaseUrl)
@ -186,7 +186,7 @@ internal class DefaultGetWellknownTask @Inject constructor(
}
/**
* Try to get an identity server URL from a home server URL, using a .wellknown request
* Try to get an identity server URL from a homeserver URL, using a .wellknown request
*/
/*
fun getIdentityServer(homeServerUrl: String, callback: ApiCallback<String?>) {

View file

@ -66,7 +66,7 @@ public class MXDeviceInfo implements Serializable {
public Map<String, Map<String, String>> signatures;
/*
* Additional data from the home server.
* Additional data from the homeserver.
*/
public Map<String, Object> unsigned;
@ -81,4 +81,4 @@ public class MXDeviceInfo implements Serializable {
public MXDeviceInfo() {
mVerified = DEVICE_VERIFICATION_UNKNOWN;
}
}
}

View file

@ -14,7 +14,7 @@ kapt {
// Note: 2 digits max for each value
ext.versionMajor = 1
ext.versionMinor = 1
ext.versionPatch = 13
ext.versionPatch = 14
static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct'
@ -320,7 +320,7 @@ dependencies {
def jjwt_version = '0.11.2'
// Tests
def kluent_version = '1.67'
def kluent_version = '1.68'
def androidxTest_version = '1.4.0'
def espresso_version = '3.4.0'

View file

@ -57,7 +57,7 @@ class RegistrationTest {
onView(withId(R.id.loginSplashSubmit))
.perform(click())
// Check that home server options are shown
// Check that homeserver options are shown
onView(withId(R.id.loginServerTitle))
.check(matches(isDisplayed()))
.check(matches(withText(R.string.login_server_title)))

View file

@ -486,7 +486,7 @@ class UiAllScreensSanityTest {
clickOn(R.string.add_identity_server)
pressBack()
pressBack()
// Home server
// Homeserver
clickOnPreference(R.string.settings_home_server)
pressBack()
// Identity server

View file

@ -30,7 +30,7 @@ object ServerUrlsRepository {
private const val DEFAULT_REFERRER_HOME_SERVER_URL_PREF = "default_referrer_home_server_url"
private const val DEFAULT_REFERRER_IDENTITY_SERVER_URL_PREF = "default_referrer_identity_server_url"
// Keys used to store current home server url and identity url
// Keys used to store current homeserver url and identity url
const val HOME_SERVER_URL_PREF = "home_server_url"
const val IDENTITY_SERVER_URL_PREF = "identity_server_url"
@ -62,7 +62,7 @@ object ServerUrlsRepository {
}
/**
* Return last used home server url, or the default one from referrer or the default one from resources
* Return last used homeserver url, or the default one from referrer or the default one from resources
*/
fun getLastHomeServerUrl(context: Context): String {
val prefs = DefaultSharedPreferences.getInstance(context)
@ -73,12 +73,12 @@ object ServerUrlsRepository {
}
/**
* Return true if url is the default home server url form resources
* Return true if url is the default homeserver url form resources
*/
fun isDefaultHomeServerUrl(context: Context, url: String) = url == getDefaultHomeServerUrl(context)
/**
* Return default home server url from resources
* Return default homeserver url from resources
*/
fun getDefaultHomeServerUrl(context: Context): String = context.getString(R.string.matrix_org_server_url)
}

View file

@ -122,7 +122,7 @@ class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
}
/**
* Start the login screen with identity server and home server pre-filled
* Start the login screen with identity server and homeserver pre-filled
*/
private fun startLoginActivity(uri: Uri) {
navigator.openLogin(

View file

@ -159,7 +159,7 @@ class LoginServerUrlFormFragment @Inject constructor() : AbstractLoginFragment<F
views.loginServerUrlFormClearHistory.isInvisible = state.knownCustomHomeServersUrls.isEmpty()
if (state.loginMode != LoginMode.Unknown) {
// The home server url is valid
// The homeserver url is valid
loginViewModel.handle(LoginAction.PostViewEvent(LoginViewEvents.OnLoginFlowRetrieved))
}
}

View file

@ -567,7 +567,7 @@ class LoginViewModel @AssistedInject constructor(
is WellknownResult.Prompt ->
onWellknownSuccess(action, data, homeServerConnectionConfig)
is WellknownResult.FailPrompt ->
// Relax on IS discovery if home server is valid
// Relax on IS discovery if homeserver is valid
if (data.homeServerUrl != null && data.wellKnown != null) {
onWellknownSuccess(action, WellknownResult.Prompt(data.homeServerUrl!!, null, data.wellKnown!!), homeServerConnectionConfig)
} else {

View file

@ -590,7 +590,7 @@ class LoginViewModel2 @AssistedInject constructor(
is WellknownResult.Prompt ->
onWellknownSuccess(action, data, homeServerConnectionConfig)
is WellknownResult.FailPrompt ->
// Relax on IS discovery if home server is valid
// Relax on IS discovery if homeserver is valid
if (data.homeServerUrl != null && data.wellKnown != null) {
onWellknownSuccess(action, WellknownResult.Prompt(data.homeServerUrl!!, null, data.wellKnown!!), homeServerConnectionConfig)
} else {

View file

@ -22,7 +22,7 @@ package im.vector.app.features.roomdirectory
data class RoomDirectoryData(
/**
* The server name (might be null)
* Set null when the server is the current user's home server.
* Set null when the server is the current user's homeserver.
*/
val homeServer: String? = null,

View file

@ -34,7 +34,7 @@ data class RoomPreviewViewState(
val shouldPeekFromServer: Boolean = false,
/**
* Can be empty when the server is the current user's home server.
* Can be empty when the server is the current user's homeserver.
*/
val homeServers: List<String> = emptyList(),
// Current state of the room in preview

View file

@ -273,7 +273,7 @@ class VectorPreferences @Inject constructor(private val context: Context) {
fun clearPreferences() {
val keysToKeep = HashSet(mKeysToKeepAfterLogout)
// home server urls
// homeserver urls
keysToKeep.add(ServerUrlsRepository.HOME_SERVER_URL_PREF)
keysToKeep.add(ServerUrlsRepository.IDENTITY_SERVER_URL_PREF)

View file

@ -179,7 +179,7 @@ class VectorSettingsGeneralFragment @Inject constructor(
findPreference<VectorPreference>(VectorPreferences.SETTINGS_LOGGED_IN_PREFERENCE_KEY)!!
.summary = session.myUserId
// home server
// homeserver
findPreference<VectorPreference>(VectorPreferences.SETTINGS_HOME_SERVER_PREFERENCE_KEY)!!
.summary = session.sessionParams.homeServerUrl

View file

@ -69,7 +69,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor(
.find { it.ruleId == RuleIds.RULE_ID_DISABLE_ALL }
if (mRuleMaster == null) {
// The home server does not support RULE_ID_DISABLE_ALL, so hide the preference
// The homeserver does not support RULE_ID_DISABLE_ALL, so hide the preference
pref.isVisible = false
return
}

View file

@ -58,7 +58,7 @@ class ConsentWebViewEventListener(activity: VectorBaseActivity<*>,
session.profileApiClient
.displayname(RIOT_BOT_ID, object : MatrixCallback<String>(createRiotBotRoomCallback) {
override fun onSuccess(info: String?) {
// Ok, the Home Server knows riot-Bot, so create a Room with him
// Ok, the homeserver knows riot-Bot, so create a Room with him
session.createDirectMessageRoom(RIOT_BOT_ID, createRiotBotRoomCallback)
}
})

View file

@ -33,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
tools:text="Home Server URL: http://matrix.org" />
tools:text="Homeserver URL: http://matrix.org" />
<TextView
android:id="@+id/ssl_fingerprint_title"
@ -60,4 +60,4 @@
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.core.widget.NestedScrollView>

View file

@ -26,7 +26,7 @@
app:layout_constraintEnd_toStartOf="@id/term_policy_arrow"
app:layout_constraintStart_toEndOf="@id/term_accept_checkbox"
app:layout_constraintTop_toTopOf="parent"
tools:text="Integration Manager" />
tools:text="Integration manager" />
<TextView
android:id="@+id/term_description"
@ -55,4 +55,4 @@
app:tint="?vctr_content_primary"
tools:ignore="MissingPrefix" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -549,7 +549,7 @@
<string name="list_members">Zobrazit členy</string>
<string name="open_chat_header">Otevřít záhlaví</string>
<string name="room_sync_in_progress">Synchronizuji…</string>
<string name="room_jump_to_first_unread">Přejít na první nepřečtenou zprávu.</string>
<string name="room_jump_to_first_unread">Přejít na nepřečtené</string>
<string name="room_preview_try_join_an_unknown_room_default">místnost</string>
<string name="room_creation_title">Nová konverzace</string>
<string name="room_creation_add_member">Přidat člena</string>
@ -2864,4 +2864,8 @@
\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>
<string name="error_failed_to_join_room">Omlouváme se, došlo k chybě během pokusu o přistoupení: %s</string>
<string name="create_space_alias_hint">Adresa prostoru</string>
<string name="space_settings_alias_subtitle">Prohlédnout a spravovat adresy tohoto prostoru.</string>
<string name="space_settings_alias_title">Adresy prostorů</string>
</resources>

View file

@ -34,7 +34,7 @@
<string name="notice_voip_finished">VoIP-Konferenz beendet</string>
<string name="notice_avatar_changed_too">(Profilbild wurde ebenfalls geändert)</string>
<string name="notice_room_name_removed">%1$s hat den Raumnamen entfernt</string>
<string name="notice_room_topic_removed">%1$s hat das Raum-Thema entfernt</string>
<string name="notice_room_topic_removed">%1$s hat das Raumthema entfernt</string>
<string name="notice_profile_change_redacted">%1$s hat das Benutzerprofil aktualisiert %2$s</string>
<string name="notice_room_third_party_invite">%1$s hat eine Einladung an %2$s gesendet</string>
<string name="notice_room_third_party_registered_invite">%1$s hat die Einladung in %2$s akzeptiert</string>
@ -185,8 +185,8 @@
<item quantity="other">Du hast die Raumadressen %1$s hinzugefügt.</item>
</plurals>
<plurals name="notice_room_aliases_removed_by_you">
<item quantity="one">Du hast die Raum-Adresse %1$s vom Raum entfernt.</item>
<item quantity="other">Du hast die Raum-Adressen %1$s vom Raum entfernt.</item>
<item quantity="one">Du hast die Adresse %1$s vom Raum entfernt.</item>
<item quantity="other">Du hast die Adressen %1$s vom Raum entfernt.</item>
</plurals>
<string name="notice_room_aliases_added_and_removed_by_you">Du hast die Raumadressen %1$s hinzugefügt und %2$s entfernt.</string>
<string name="notice_room_canonical_alias_set_by_you">Du hast die Hauptadresse für diesen Raum auf %1$s gesetzt.</string>
@ -463,7 +463,7 @@
<string name="today">Heute</string>
<!-- room info dialog Screen -->
<string name="room_info_room_name">Raumname</string>
<string name="room_info_room_topic">Raum-Thema</string>
<string name="room_info_room_topic">Raumthema</string>
<!-- call string -->
<string name="call_connected">Anruf verbunden</string>
<string name="call_connecting">Verbindungsaufbau…</string>
@ -518,7 +518,7 @@
\nDu kannst dich mit einem anderen Konto anmelden oder diese E-Mail-Adresse zu diesem Konto hinzufügen.</string>
<string name="room_preview_try_join_an_unknown_room">Du möchtest auf %s zugreifen. Möchtest du den Raum betreten, um an der Diskussion teilzunehmen?</string>
<string name="room_preview_try_join_an_unknown_room_default">einen Raum</string>
<string name="room_preview_room_interactions_disabled">Dies ist eine Vorschau dieses Raums. Raum-Interaktionen wurden deaktiviert.</string>
<string name="room_preview_room_interactions_disabled">Das ist die Vorschau des Raums. Interaktionen mit dem Raum sind deaktiviert.</string>
<!-- Chat creation -->
<string name="room_creation_title">Neuer Chat</string>
<string name="room_creation_add_member">Mitglied hinzufügen</string>
@ -543,12 +543,12 @@
<string name="room_participants_action_set_default_power_level">Zum normalen Benutzer herabstufen</string>
<string name="room_participants_action_set_moderator">Zum Moderator machen</string>
<string name="room_participants_action_set_admin">Zum Admin machen</string>
<string name="room_participants_action_ignore">Alle Nachrichten dieses Nutzers verbergen</string>
<string name="room_participants_action_ignore">Blockieren</string>
<string name="room_participants_action_unignore">Alle Nachrichten dieses Nutzers anzeigen</string>
<string name="room_participants_invite_search_another_user">Nutzer-ID, Name oder E-Mail-Adresse</string>
<string name="room_participants_action_mention">Erwähnen</string>
<string name="room_participants_action_devices_list">Sitzungsliste anzeigen</string>
<string name="room_participants_power_level_prompt">Du wirst diese Änderung nicht rückgängig machen können, da der Benutzer dieselbe Berechtigungsstufe wie du erhalten wird.
<string name="room_participants_power_level_prompt">Du wirst diese Änderung nicht rückgängig machen können, da die Person dieselbe Berechtigungsstufe wie du erhalten wird.
\nBist du sicher\?</string>
<string name="room_participants_invite_prompt_msg">"Bist du sicher, dass du %s in diesen Chat einladen willst?"</string>
<!-- invitation -->
@ -587,7 +587,7 @@
<string name="ssl_expected_existing_expl">Das Zertifikat hat sich von einem ursprünglich vertrauenswürdigem Zertifikat in ein nicht vertrauenswürdiges Zertifikat geändert. Eventuell wurde das Zertifikat des Servers erneuert. Bitte erkundige dich beim Server-Administrator, welcher Fingerprint als vertrauenswürdig gilt.</string>
<string name="ssl_only_accept">Akzeptiere das Zertifikat nur dann, wenn der Server-Administrator einen Fingerprint veröffentlicht hat, der mit dem obigen übereinstimmt.</string>
<!-- Room Details -->
<string name="room_details_title">Raum-Details</string>
<string name="room_details_title">Raumdetails</string>
<string name="room_details_people">Personen</string>
<string name="room_details_files">Dateien</string>
<string name="room_details_settings">Einstellungen</string>
@ -603,7 +603,7 @@
<string name="room_event_action_cancel_download">Herunterladen abbrechen</string>
<!-- Search -->
<string name="search_hint">Suchen</string>
<string name="search_members_hint">Raum-Mitglieder filtern</string>
<string name="search_members_hint">Raummitglieder filtern</string>
<string name="search_no_results">Keine Suchergebnisse</string>
<string name="tab_title_search_rooms">RÄUME</string>
<string name="tab_title_search_messages">NACHRICHTEN</string>
@ -645,10 +645,10 @@
<string name="settings_add_email_address">E-Mail-Adresse hinzufügen</string>
<string name="settings_phone_number">Telefonnummer</string>
<string name="settings_add_phone_number">Telefonnummer hinzufügen</string>
<string name="settings_app_info_link_summary">Zeige App-Infos in den Systemeinstellungen.</string>
<string name="settings_app_info_link_summary">Appinfo in den Systemeinstellungen öffnen.</string>
<string name="settings_app_info_link_title">App-Info</string>
<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_enable_all_notif">Benachrichtigungen für diesen Account</string>
<string name="settings_enable_this_device">Benachrichtigungen für diese Sitzung</string>
<string name="settings_turn_screen_on">Bildschirm für 3 Sekunden aktivieren</string>
<string name="settings_messages_in_one_to_one">Direktnachrichten</string>
<string name="settings_messages_in_group_chat">Gruppenchats</string>
@ -727,7 +727,7 @@
<string name="room_settings_room_photo">Raumbild</string>
<string name="room_settings_room_name">Raumname</string>
<string name="room_settings_topic">Thema</string>
<string name="room_settings_room_tag">Raum-Markierung</string>
<string name="room_settings_room_tag">Raummarkierung</string>
<string name="room_settings_tag_pref_dialog_title">Markiert als:</string>
<!-- Room settings: Room tag -->
<string name="room_settings_tag_pref_entry_favourite">Favorit</string>
@ -735,21 +735,21 @@
<string name="room_settings_tag_pref_entry_none">Keine</string>
<!-- room settings : access and visibility -->
<string name="room_settings_category_access_visibility_title">Zugriff und Sichtbarkeit</string>
<string name="room_settings_directory_visibility">Diesen Raum im Raum-Verzeichnis anzeigen</string>
<string name="room_settings_directory_visibility">Diesen Raum im Raumverzeichnis anzeigen</string>
<string name="room_settings_room_access_rules_pref_title">Raumzugriff</string>
<string name="room_settings_room_read_history_rules_pref_title">Lesbarkeit des Chatverlaufs</string>
<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">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>
<string name="room_settings_read_history_entry_members_only_option_time_shared">Nur Mitglieder</string>
<string name="room_settings_read_history_entry_members_only_invited">Nur Mitglieder (ab Einladung)</string>
<string name="room_settings_read_history_entry_members_only_joined">Nur Mitglieder (ab Beitreten)</string>
<!-- Room settings: "Who can access this room?" (access rule) -->
<string name="room_settings_room_access_warning">Um einen Link zu einem Raum erstellen zu können, muss dieser eine Adresse haben.</string>
<string name="room_settings_room_access_entry_only_invited">Nur eingeladene Personen</string>
<string name="room_settings_room_access_entry_anyone_with_link_apart_guest">Alle, die den Raum-Link kennen (ausgenommen Gäste)</string>
<string name="room_settings_room_access_entry_anyone_with_link_including_guest">Alle, die den Raum-Link kennen (auch Gäste)</string>
<string name="room_settings_room_access_entry_anyone_with_link_apart_guest">Alle, die den Raumlink kennen (ausgenommen Gäste)</string>
<string name="room_settings_room_access_entry_anyone_with_link_including_guest">Alle, die den Raumlink kennen (auch Gäste)</string>
<!-- Room settings: banned users -->
<string name="room_settings_banned_users_title">Verbannte Benutzer</string>
<!-- advanced -->
@ -833,7 +833,7 @@
\n
\nUnbekannte Sitzungen:</string>
<!-- directory activity -->
<string name="select_room_directory">Raum-Verzeichnis auswählen</string>
<string name="select_room_directory">Raumverzeichnis auswählen</string>
<string name="directory_server_fail_to_retrieve_server">Der Server kann nicht verfügbar oder überlastet sein</string>
<string name="directory_server_type_homeserver">Gib einen Home-Server ein, um seine öffentlichen Räume aufzulisten</string>
<string name="directory_server_placeholder">Server-Name</string>
@ -865,7 +865,7 @@
<string name="tiny">Sehr klein</string>
<string name="huge">Riesig</string>
<string name="settings_theme">Design</string>
<string name="settings_12_24_timestamps">Zeige Zeitstempel im 12-Stunden-Format</string>
<string name="settings_12_24_timestamps">Zeitstempel im 12-Stunden-Format</string>
<string name="widget_no_power_to_manage">Um Widgets in diesem Raum zu verwalten, ist eine Berechtigung erforderlich</string>
<string name="widget_creation_failure">Widget konnte nicht erstellt werden</string>
<string name="settings_labs_create_conference_with_jitsi">Konferenzgespräche mit Jitsi durchführen</string>
@ -1056,14 +1056,14 @@
<string name="template_e2e_re_request_encryption_key_dialog_content">Bitte öffne ${app_name} auf einem anderen Gerät, das die Nachricht entschlüsseln kann, damit es die Schlüssel an diese Sitzung senden kann.</string>
<string name="lock_screen_hint">Hier tippen…</string>
<string name="option_send_voice">Sprachnachricht senden</string>
<string name="go_on_with">fortfahren mit…</string>
<string name="go_on_with">Öffnen mit…</string>
<string name="error_no_external_application_found">Es wurde keine externe Anwendung gefunden, um diese Aktion auszuführen.</string>
<string name="settings_labs_enable_send_voice">Sende Sprachnachrichten</string>
<string name="error_empty_field_your_password">Bitte gib dein Passwort ein.</string>
<string name="send_bug_report_description_in_english">Schreibe bitte auf Englisch, wenn möglich.</string>
<string name="room_message_placeholder_reply_to_encrypted">Sende verschlüsselte Antwort…</string>
<string name="room_message_placeholder_reply_to_not_encrypted">Sende unverschlüsselte Antwort…</string>
<string name="settings_preview_media_before_sending">Zeige Medien vor dem Senden</string>
<string name="settings_preview_media_before_sending">Medienvorschau vor dem Senden</string>
<string name="settings_without_flair">Du bist aktuell kein Mitglied einer Community.</string>
<string name="settings_labs_keyboard_options_to_send_message">Benutze die Enter-Taste der Tastatur zum Senden</string>
<string name="command_description_emote">Zeigt Aktionen</string>
@ -1074,7 +1074,7 @@
<string name="command_description_invite_user">Lädt Benutzer mit angegebener Kennung in den aktuellen Raum ein</string>
<string name="command_description_join_room">Tritt dem Raum mit angegebenen Alias bei</string>
<string name="command_description_part_room">Verlasse Raum</string>
<string name="command_description_topic">Setzt das Raum-Thema</string>
<string name="command_description_topic">Raumthema ändern</string>
<string name="command_description_kick_user">Kickt Benutzer mit angegebener ID</string>
<string name="command_description_nick">Ändert deinen Anzeigenamen</string>
<string name="command_description_markdown">(De-)Aktiviert Markdown</string>
@ -1129,7 +1129,7 @@
<string name="resource_limit_hard_contact">Bitte %s um diesen Dienst weiter zu nutzen.</string>
<string name="dialog_title_error">Fehler</string>
<string name="settings_lazy_loading_title">Raummitglieder bei Bedarf nachladen</string>
<string name="settings_lazy_loading_description">Verbessere Performanz, indem Raum-Mitglieder erst beim ersten Ansehen geladen werden.</string>
<string name="settings_lazy_loading_description">Verbessere Performance, indem Raummitglieder erst beim ersten Ansehen geladen werden.</string>
<string name="error_lazy_loading_not_supported_by_home_server">Dein Home-Server unterstützt noch nicht das Nachladen von Raummitgliedern. Versuche es später.</string>
<string name="unknown_error">Entschuldige, ein Fehler trat auf</string>
<string name="room_sliding_menu_version_x">Version %s</string>
@ -1138,7 +1138,7 @@
<string name="passphrase_passphrase_does_not_match">Passphrasen stimmen nicht überein</string>
<string name="merged_events_expand">aufklappen</string>
<string name="merged_events_collapse">Zusammenklappen</string>
<string name="settings_info_area_show">Zeige Infobereich</string>
<string name="settings_info_area_show">Infobereich zeigen</string>
<string name="show_info_area_always">Immer</string>
<string name="show_info_area_messages_and_errors">Für Nachrichten und Fehler</string>
<string name="show_info_area_only_errors">Nur für Fehler</string>
@ -1163,8 +1163,8 @@
<string name="command_problem_with_parameters">Das Kommando \"%s\" braucht mehr Parameter oder einige Parameter sind inkorrekt.</string>
<string name="markdown_has_been_enabled">Markdown wurde aktiviert.</string>
<string name="markdown_has_been_disabled">Markdown wurde deaktiviert.</string>
<string name="settings_show_join_leave_messages">Zeige Betreten- und Verlassen-Ereignisse</string>
<string name="settings_show_avatar_display_name_changes_messages">Zeige Konto-Ereignisse</string>
<string name="settings_show_join_leave_messages">Betreten oder Verlassen von Benutzern zeigen</string>
<string name="settings_show_avatar_display_name_changes_messages">Kontoänderungen zeigen</string>
<string name="settings_show_avatar_display_name_changes_messages_summary">Enthält Änderungen des Profilbilds und des Anzeigenamens.</string>
<string name="settings_call_category">Anrufe</string>
<string name="template_settings_call_ringtone_use_app_ringtone">Nutze den Standard-Klingelton von ${app_name} für eingehende Anrufe</string>
@ -1484,7 +1484,7 @@
<string name="message_view_reaction">Reaktionen ansehen</string>
<string name="reactions">Reaktionen</string>
<string name="event_redacted_by_user_reason">Ereignis von Benutzer gelöscht</string>
<string name="event_redacted_by_admin_reason">Ereignis moderiert durch Raum-Administrator</string>
<string name="event_redacted_by_admin_reason">Ereignis durch einen Raum-Administrator moderiert</string>
<string name="last_edited_info_message">Zuletzt bearbeitet von %1$s am %2$s</string>
<string name="create_new_room">Neuen Raum erstellen</string>
<string name="error_no_network">Kein Netzwerk. Bitte überprüfe deine Internetverbindung.</string>
@ -1581,7 +1581,7 @@
<string name="revoke">Widerrufen</string>
<string name="disconnect">Trennen</string>
<string name="people_no_identity_server">Kein Identitätsserver konfiguriert.</string>
<string name="call_failed_no_ice_title">Anruf aufgrund eines falsch konfigurierten Servers fehlgeschlagen</string>
<string name="call_failed_no_ice_title">Anruf aufgrund eines Serverfehlers fehlgeschlagen</string>
<string name="call_failed_no_ice_use_alt">Versuche es mit %s</string>
<string name="call_failed_dont_ask_again">Nicht erneut fragen</string>
<string name="auth_add_email_message_2">Richte eine E-Mail für die Kontowiederherstellung ein. Optional kannst du später einrichten, dass Personen dich über diese Adresse finden.</string>
@ -1636,8 +1636,8 @@
<string name="settings_set_workmanager_delay_summary">%s
\nDie Synchronisierung kann aufgrund deiner Ressourcen (Akku) oder Gerätezustands (schlafend) verschoben werden.</string>
<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_integrations_summary">Benutze einen Integrationsmanager um Bots, Brücken, Widgets und Stickerpakete zu verwalten.
\nIntegrationsmanager erhalten Rauminformationen und können so Widgets verändern, Einladungen senden und in deinem Namen Berechtigungslevel setzen.</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>
@ -1971,7 +1971,7 @@
<string name="room_settings_enable_encryption">Ende-zu-Ende-Verschlüsselung aktivieren…</string>
<string name="room_settings_enable_encryption_warning">Einmal aktiviert kann die Verschlüsselung nicht rückgängig gemacht werden.</string>
<string name="room_settings_enable_encryption_dialog_title">Verschlüsselung aktivieren\?</string>
<string name="room_settings_enable_encryption_dialog_content">Nach der Aktivierung kann die Verschlüsselung für einen Raum nicht deaktiviert werden. In einem verschlüsselten Raum gesendete Nachrichten können vom Server nicht gesehen werden, nur von den Teilnehmenden des Raums. Durch die Verschlüsselung funktionieren viele Bots und Bridges möglicherweise nicht ordnungsgemäß.</string>
<string name="room_settings_enable_encryption_dialog_content">Nach der Aktivierung kann die Verschlüsselung für den Raum nicht deaktiviert werden. Nachrichten können nicht vom Server gesehen werden, nur von den Teilnehmenden des Raums. Möglicherweise funktionieren danach einige Bots und Bridges nicht mehr ordnungsgemäß.</string>
<string name="room_settings_enable_encryption_dialog_submit">Verschlüsselung aktivieren</string>
<string name="verification_request_notice">Um sicher zu gehen, verifiziere %s, indem ein einmaliger Code überprüft wird.</string>
<string name="verification_request_start_notice">Um sicher zu sein, tut dies persönlich oder verwendet einen anderen Kommunikationsweg.</string>
@ -2191,7 +2191,7 @@
<string name="add_members_to_room">Mitglieder hinzufügen</string>
<string name="invite_users_to_room_action_invite">EINLADEN</string>
<string name="inviting_users_to_room">Benutzer werden eingeladen…</string>
<string name="invite_users_to_room_title">Benutzer einladen</string>
<string name="invite_users_to_room_title">Personen einladen</string>
<string name="invitation_sent_to_one_user">Einladung gesendet an %1$s</string>
<string name="invitations_sent_to_two_users">Einladungen gesendet an %1$s und %2$s</string>
<plurals name="invitations_sent_to_one_and_more_users">
@ -2230,7 +2230,7 @@
<string name="room_participants_action_ignore_prompt_msg">Durch das Ignorieren werden für dich alle Nachrichten des Nutzers ausgeblendet.
\n
\nDu kannst die Aktion jederzeit in den allgemeinen Einstellungen rückgängig machen.</string>
<string name="room_participants_action_unignore_title">Ignorieren des Benutzers rückgängig machen</string>
<string name="room_participants_action_unignore_title">Nicht mehr blockieren</string>
<string name="room_participants_action_unignore_prompt_msg">Das Aufheben der Ignorierung wird alle Nachrichten des Benutzers wieder einblenden.</string>
<string name="room_participants_action_cancel_invite_title">Einladung zurückziehen</string>
<string name="room_participants_action_cancel_invite_prompt_msg">Bist du dir sicher, dass du die Einladung für diesen Benutzer zurückziehen möchtest\?</string>
@ -2248,7 +2248,7 @@
<string name="settings_secure_backup_setup">Backup einrichten</string>
<string name="settings_secure_backup_reset">Backup zurücksetzen</string>
<string name="settings_secure_backup_enter_to_setup">Auf diesem Gerät einrichten</string>
<string name="settings_secure_backup_section_info">Absicherung um den Zugriffsverlust auf verschlüsselte Nachrichten &amp; Daten zu verhindern, indem die Schlüssel für die Entschlüsselung auf dem Server gesichert werden.</string>
<string name="settings_secure_backup_section_info">Verlust verschlüsselter Nachrichten &amp; Daten verhindern, indem die Schlüssel für die Entschlüsselung am Server gesichert werden.</string>
<string name="reset_secure_backup_title">Generiere einen neuen Sicherheitsschlüssel oder setze eine neue Sicherheitspassphrase für dein existierendes Backup.</string>
<string name="reset_secure_backup_warning">Dieses wird deinen aktuellen Schlüssel oder deine aktuelle Phrase ersetzen.</string>
<string name="disabled_integration_dialog_title">Integrationen sind deaktiviert</string>
@ -2262,11 +2262,11 @@
<string name="active_widgets_title">Aktive Widgets</string>
<string name="recovery_key_export_saved">Der Sicherheitsschlüssel ist gespeichert worden.</string>
<string name="secure_backup_banner_setup_line1">Backup</string>
<string name="secure_backup_banner_setup_line2">Absicherung gegen den Zugriffsverlust auf verschlüsselte Nachrichten &amp; Daten</string>
<string name="secure_backup_banner_setup_line2">Absicherung gegen den Verlust verschlüsselter Nachrichten</string>
<string name="secure_backup_setup">Richte Backup ein</string>
<string name="event_redacted">Nachricht gelöscht</string>
<string name="settings_show_redacted">Zeige gelöschte Nachrichten</string>
<string name="settings_show_redacted_summary">Zeige einen Platzhalter für gelöschte Nachrichten</string>
<string name="settings_show_redacted">Gelöschte Nachrichten zeigen</string>
<string name="settings_show_redacted_summary">Zeigt einen Platzhalter für gelöschte Nachrichten an</string>
<string name="labs_show_unread_notifications_as_tab">Dedizierten Tab für ungelesene Nachrichten zur Hauptansicht hinzufügen</string>
<string name="settings_discovery_confirm_mail_not_clicked">Wir haben dir eine Bestätigungsmail an %s gesendet. Bitte prüfe deine E-Mails und klicke auf den Bestätigungslink</string>
<string name="settings_text_message_sent_wrong_code">Der Verifizierungscode ist nicht korrekt.</string>
@ -2328,14 +2328,14 @@
<string name="a11y_start_camera">Starte Kamera</string>
<string name="settings_setup_secure_backup">Richte Backup ein</string>
<string name="bottom_sheet_setup_secure_backup_title">Backup</string>
<string name="bottom_sheet_setup_secure_backup_subtitle">Absicherung um den Zugriffsverlust auf verschlüsselte Nachrichten &amp; Daten zu verhindern, indem die Schlüssel für die Entschlüsselung auf dem Server gesichert werden.</string>
<string name="bottom_sheet_setup_secure_backup_security_key_title">Benutze einen Sicherheitsschlüssel</string>
<string name="bottom_sheet_setup_secure_backup_subtitle">Verlust verschlüsselter Nachrichten &amp; Daten verhindern, indem die Schlüssel für die Entschlüsselung am Server gesichert werden.</string>
<string name="bottom_sheet_setup_secure_backup_security_key_title">Sicherheitsschlüssel benutzen</string>
<string name="bottom_sheet_setup_secure_backup_security_key_subtitle">Generiere einen Sicherheitsschlüssel, welcher z.B. in einem Passwortmanager oder in einem Tresor sicher aufbewahrt werden sollte.</string>
<string name="bottom_sheet_setup_secure_backup_security_phrase_title">Benutze Sicherheitsphrase</string>
<string name="bottom_sheet_setup_secure_backup_security_phrase_title">Eine Sicherheitsphrase benutzen</string>
<string name="bottom_sheet_setup_secure_backup_security_phrase_subtitle">Gib eine geheime Phrase ein, die nur du kennst und generiere einen Schlüssel als Backup.</string>
<string name="bottom_sheet_save_your_recovery_key_title">Speichere deinen Sicherheitsschlüssel</string>
<string name="bottom_sheet_save_your_recovery_key_content">Bewahre deinen Sicherheitsschlüssel irgendwo sicher auf, wie z.B. in einem Passwortmanager oder in einem Tresor.</string>
<string name="set_a_security_phrase_title">Setze Sicherheitsphrase</string>
<string name="set_a_security_phrase_title">Sicherheitsphrase setzen</string>
<string name="set_a_security_phrase_notice">Gib eine Sicherheitsphrase ein, welche nur du kennst und deine Daten auf dem Server geheim halten soll.</string>
<string name="set_a_security_phrase_hint">Sicherheitsphrase</string>
<string name="set_a_security_phrase_again_notice">Gib deine Sicherheitsphrase zur Bestätigung erneut ein.</string>
@ -2419,7 +2419,7 @@
<string name="settings_phone_numbers">Telefonnummern</string>
<string name="settings_remove_three_pid_confirmation_content">%s entfernen\?</string>
<string name="error_threepid_auth_failed">Stelle sicher, dass du auf den Link in der E-Mail geklickt hast, die wir dir gesendet haben.</string>
<string name="settings_emails_and_phone_numbers_title">E-Mail-Adressen und Telefonnummern</string>
<string name="settings_emails_and_phone_numbers_title">E-Mail und Telefon</string>
<string name="settings_emails_and_phone_numbers_summary">Verwalte E-Mails und Telefonnummern, die mit deinem Matrix-Konto verknüpft sind</string>
<string name="settings_text_message_sent_hint">Code</string>
<string name="login_msisdn_notice">Verwende das internationale Format (Telefonnummer muss mit \'+\' beginnen)</string>
@ -2430,7 +2430,7 @@
<item quantity="one">%d Sekunde</item>
<item quantity="other">%d Sekunden</item>
</plurals>
<string name="settings_show_room_member_state_events">Zeige Status-Ereignisse der Raum-Mitglieder</string>
<string name="settings_show_room_member_state_events">Status-Ereignisse der Raummitglieder zeigen</string>
<string name="settings_show_room_member_state_events_summary">Bezieht Einladungs-/Beitritts-/Verlassen-/Entfernen-/Verbannen-Ereignisse und Avatar-/Anzeigenamen-Wechsel mit ein.</string>
<string name="sent_a_poll">Umfrage</string>
<string name="sent_a_bot_buttons">Bot-Schaltflächen</string>
@ -2450,8 +2450,8 @@
<string name="search_banned_user_hint">Gebannte Nutzer filtern</string>
<string name="no_permissions_to_start_webrtc_call_in_direct_room">Du bist nicht berechtigt einen Anruf zu starten</string>
<string name="no_permissions_to_start_conf_call_in_direct_room">Du hast keine Berechtigung ein Konferenzgespräch zu starten</string>
<string name="settings_security_pin_code_notifications_summary_on">Zeige Details wie Raumnamen und Nachrichteninhalt.</string>
<string name="settings_security_pin_code_notifications_title">Zeige Inhalt in Benachrichtigungen</string>
<string name="settings_security_pin_code_notifications_summary_on">Details wie Raumnamen und Nachrichteninhalt zeigen.</string>
<string name="settings_security_pin_code_notifications_title">Inhalt in Benachrichtigungen anzeigen</string>
<string name="template_settings_security_pin_code_use_biometrics_summary_off">PIN-Code ist die einzige Möglichkeit ${app_name} zu entsperren.</string>
<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>
@ -2479,7 +2479,7 @@
<string name="login_error_outdated_homeserver_warning_content">Dieser Home-Server läuft mit einer alten Version. Bitte deinen Home-Server-Administrator um eine Aktualisierung. Du kannst fortfahren, aber einige Funktionen funktionieren möglicherweise nicht richtig.</string>
<string name="direct_room_join_rules_invite_by_you">Du hast dies auf Einladungen beschränkt.</string>
<string name="direct_room_join_rules_invite">%1$s hat dies auf Einladungen beschränkt.</string>
<string name="settings_labs_show_complete_history_in_encrypted_room">Zeige vollständigen Verlauf in verschlüsselten Räumen an</string>
<string name="settings_labs_show_complete_history_in_encrypted_room">Vollständigen Verlauf in verschlüsselten Räumen anzeigen</string>
<string name="notification_unread_notified_messages_and_invitation">%1$s und %2$s</string>
<string name="notification_unread_notified_messages_in_room_and_invitation">%1$s in %2$s und %3$s</string>
<plurals name="notification_invitations">
@ -2493,8 +2493,8 @@
<string name="template_settings_security_pin_code_grace_period_summary_off">Bei jedem Öffnen von ${app_name} ist der PIN-Code erforderlich.</string>
<string name="template_settings_security_pin_code_grace_period_summary_on">PIN-Code ist erforderlich, nachdem ${app_name} 2 Minuten lang nicht verwendet wurde.</string>
<string name="settings_security_pin_code_grace_period_title">Fordere PIN nach 2 Minuten an</string>
<string name="settings_security_pin_code_notifications_summary_off">Zeige nur die Anzahl von ungelesenen Nachrichten in einer einfachen Benachrichtigung.</string>
<string name="attachment_type_dialog_title">Bild hinzufügen von</string>
<string name="settings_security_pin_code_notifications_summary_off">Nur die Anzahl ungelesener Nachrichten in der Benachrichtigung zeigen.</string>
<string name="attachment_type_dialog_title">Bild hinzufügen mit</string>
<string name="warning_room_not_created_yet">Der Raum ist noch nicht erstellt. Raumerstellung abbrechen\?</string>
<string name="room_list_quick_actions_low_priority_add">Zu niedrige Priorität hinzufügen</string>
<string name="create_room_topic_hint">Thema</string>
@ -2503,7 +2503,7 @@
<string name="room_list_quick_actions_low_priority_remove">Von niedrige Priorität entfernen</string>
<string name="rotate_and_crop_screen_title">Rotieren und Zuschneiden</string>
<string name="create_room_settings_section">Raumeinstellungen</string>
<string name="create_room_topic_section">Raum-Thema (optional)</string>
<string name="create_room_topic_section">Raumthema (optional)</string>
<string name="create_room_name_section">Raumname</string>
<string name="settings_export_trail">Prüfung exportieren</string>
<string name="room_member_open_or_create_dm">Direktnachricht</string>
@ -2545,7 +2545,7 @@
<string name="settings_security_pin_code_change_pin_summary">Ändere deine aktuelle PIN</string>
<string name="settings_security_pin_code_change_pin_title">PIN ändern</string>
<string name="phone_book_perform_lookup">Suche nach Kontakten auf Matrix</string>
<string name="room_settings_set_avatar">Raum-Bild einrichten</string>
<string name="room_settings_set_avatar">Raumbild einrichten</string>
<string name="identity_server_user_consent_not_provided">Einverständnis wurde nicht abgegeben.</string>
<string name="user_code_info_text">Teile diesen Code mit Leuten, damit sie ihn scannen und mit dir chatten können.</string>
<string name="user_code_share">Meinen Code teilen</string>
@ -2568,7 +2568,7 @@
<string name="create_room_alias_empty">Bitte gib eine Raumadresse an</string>
<string name="create_room_alias_already_in_use">Diese Adresse ist bereits vergeben</string>
<string name="create_room_alias_hint">Raumadresse</string>
<string name="create_room_disable_federation_description">Aktivieren, wenn der Raum nur von Mitgliedern deines Home-Servers zur internen Kommunikation verwendet wird. Das kann später nicht mehr geändert werden.</string>
<string name="create_room_disable_federation_description">Aktivieren, wenn der Raum nur von Mitgliedern deines Homeservers zur internen Kommunikation verwendet wird. Das kann später nicht mehr geändert werden.</string>
<string name="create_room_disable_federation_title">Begrenze Zugang zu diesem Raum (für immer!) auf Mitglieder von %s</string>
<string name="attachment_viewer_item_x_of_y">%1$d von %2$d</string>
<string name="a11y_create_direct_message_by_qr_code">QR-Code scannen, um eine neue Direktnachricht schicken</string>
@ -2597,11 +2597,11 @@
<string name="room_alias_published_other">Andere öffentliche Adressen:</string>
<string name="room_alias_main_address_hint">Hauptadresse</string>
<string name="room_alias_published_alias_main">Das ist die Hauptadresse</string>
<string name="room_permissions_change_room_name">Raum-Name ändern</string>
<string name="room_permissions_change_room_name">Raumname ändern</string>
<string name="room_permissions_change_history_visibility">Sichtbarkeit des Verlaufs ändern</string>
<string name="room_permissions_enable_room_encryption">Raum-Verschlüsselung aktivieren</string>
<string name="room_permissions_change_main_address_for_the_room">Haupt-Adresse des Raums ändern</string>
<string name="room_permissions_change_room_avatar">Raum-Bild ändern</string>
<string name="room_permissions_change_room_avatar">Raumbild ändern</string>
<string name="room_permissions_modify_widgets">Widgets verändern</string>
<string name="room_permissions_notify_everyone">Jeden benachrichtigen</string>
<string name="room_permissions_remove_messages_sent_by_others">Von anderen gesendete Nachrichten entfernen</string>
@ -2612,7 +2612,7 @@
<string name="room_permissions_send_messages">Nachrichten senden</string>
<string name="room_permissions_default_role">Standard Rolle</string>
<string name="room_permissions_title">Berechtigungen</string>
<string name="room_settings_permissions_title">Raum-Berechtigungen</string>
<string name="room_settings_permissions_title">Berechtigungen</string>
<string name="room_permissions_notice_read_only">Du hast nicht die Berechtigung zum Aktualisieren der Rollen, die zum Ändern verschiedener Teile des Raums erforderlich sind</string>
<string name="room_participants_leave_private_warning">Dieser Raum ist nicht öffentlich. Du wirst ihn ohne Einladung nicht wieder betreten können.</string>
<string name="system_theme">Standard-Design</string>
@ -2682,7 +2682,7 @@
<string name="dev_tools_state_event">Status-Events</string>
<string name="dev_tools_send_state_event">Status-Event senden</string>
<string name="dev_tools_send_custom_event">Benutzerdefiniertes Ereignis senden</string>
<string name="dev_tools_explore_room_state">Raum-Status erkunden</string>
<string name="dev_tools_explore_room_state">Raumstatus erkunden</string>
<string name="dev_tools_menu_name">Entwicklerwerkzeuge</string>
<string name="a11y_view_read_receipts">Lesebestätigungen anzeigen</string>
<string name="a11y_rule_notify_off">Nicht benachrichtigen</string>
@ -2714,7 +2714,7 @@
<string name="settings_server_upload_size_title">Datei-Upload-Obergrenze des Servers</string>
<string name="settings_server_version">Serverversion</string>
<string name="settings_server_name">Servername</string>
<string name="room_list_quick_actions_room_settings">Raum-Einstellungen</string>
<string name="room_list_quick_actions_room_settings">Raumeinstellungen</string>
<string name="jitsi_leave_conf_to_join_another_one_content">Derzeitige Konferenz verlassen und zu einer anderen wechseln\?</string>
<string name="room_settings_room_version_title">Raum-Version</string>
<string name="dialog_edit_hint">Neuer Wert</string>
@ -2725,8 +2725,8 @@
<string name="event_status_a11y_sent">Gesendet</string>
<string name="settings_category_room_directory">Raumverzeichnis</string>
<string name="action_switch">Wechseln</string>
<string name="settings_room_directory_show_all_rooms_summary">Zeige alle Räume im Raumverzeichnis, inklusive der Räume mit anstößigen Inhalten.</string>
<string name="settings_room_directory_show_all_rooms">Zeige Räume mit anstößigen Inhalten</string>
<string name="settings_room_directory_show_all_rooms_summary">Alle Räume im Raumverzeichnis anzeigen, inklusive der Räume mit anstößigen Inhalten.</string>
<string name="settings_room_directory_show_all_rooms">Räume mit anstößigen Inhalten zeigen</string>
<string name="event_status_delete_all_failed_dialog_message">Bist du dir sicher, dass du alle nicht gesendeten Nachrichten in diesem Raum löschen willst\?</string>
<string name="event_status_delete_all_failed_dialog_title">Nicht gesendete Nachrichten löschen</string>
<string name="event_status_a11y_failed">Fehlgeschlagen</string>
@ -2751,13 +2751,13 @@
<string name="spaces_header">Spaces</string>
<string name="room_settings_room_access_entry_knock">Jeder kann im Raum anklopfen, Mitglieder können dann zustimmen oder ablehnen</string>
<string name="invite_people_to_your_space_desc">Momentan bist nur du hier. Mit anderen Leuten wird %s noch viel besser.</string>
<string name="invite_to_space_with_name_desc">Diese werden in der Lage sein %s zu durchsuchen</string>
<string name="invite_to_space_with_name_desc">Diese werden in der Lage sein, %s zu durchsuchen</string>
<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">Experimenteller Space - Zugangsbeschränkter Raum.</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_desc">Mit Spaces kannst du Personen und Räume 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>
@ -2779,7 +2779,7 @@
<string name="join_space">Space beitreten</string>
<string name="create_space">Space erzeugen</string>
<string name="invite_just_to_this_room">Nur zu diesem Raum</string>
<string name="invite_to_space_with_name">Zu %s einladen</string>
<string name="invite_to_space_with_name">In Space \"%s\" einladen</string>
<string name="invite_by_link">Link teilen</string>
<string name="invite_by_mxid">Mithilfe eines Benutzernamens einladen</string>
<string name="invite_by_email">Mithilfe einer E-Mail-Adresse einladen</string>
@ -2873,4 +2873,8 @@
<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>
<string name="space_settings_alias_title">Space-Adressen</string>
<string name="space_settings_alias_subtitle">Adressen des Spaces anzeigen und verwalten.</string>
<string name="create_space_alias_hint">Space-Adressen</string>
<string name="error_failed_to_join_room">Beim Versuch %s beizutreten, ist leider ein Fehler aufgetreten</string>
</resources>

View file

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

View file

@ -601,7 +601,7 @@
<string name="preview">Eelvaade</string>
<string name="reject">Hülga</string>
<string name="room_sync_in_progress">Sünkroniseerin…</string>
<string name="room_jump_to_first_unread">Mine esimese lugemata sõnumi juurde.</string>
<string name="room_jump_to_first_unread">Mine lugemata sõnumite juurde</string>
<string name="room_preview_invitation_format">Sa oled kutsutud siia jututuppa %s poolt</string>
<string name="room_preview_unlinked_email_warning">Kutse saadeti %s e-posti aadressile, aga see ei ole seotud antud kasutajakontoga.
\nSa kas peaksid logima sisse teise kontoga või lisama selle e-posti aadressi oma kasutajakontole.</string>
@ -2811,4 +2811,8 @@
<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>
<string name="error_failed_to_join_room">Vabandust, liitumisel tekkis viga: %s</string>
<string name="create_space_alias_hint">Kogukonnakeskuse aadressid</string>
<string name="space_settings_alias_subtitle">Selle kogukonnakeskuse hallatud ja nähtavad aadressid.</string>
<string name="space_settings_alias_title">Kogukonnakeskuse aadressid</string>
</resources>

View file

@ -658,7 +658,7 @@
\n
\nAutorisez-vous laccès à vos contacts à cette fin \?</string>
<string name="permissions_action_not_performed_missing_permissions">Désolé. Laction na pas été réalisée faute dautorisations</string>
<string name="room_jump_to_first_unread">Aller au premier message non lu.</string>
<string name="room_jump_to_first_unread">Aller au premier message non lu</string>
<string name="room_preview_invitation_format">%s vous a invité à rejoindre ce salon</string>
<string name="room_preview_unlinked_email_warning">Cette invitation a été envoyée à %s, qui nest pas associé à ce compte.
\nVous pouvez vous identifier avec un compte différent ou ajouter cette adresse e-mail à votre compte.</string>
@ -2818,4 +2818,8 @@
\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>
<string name="error_failed_to_join_room">Désolé, une erreur est survenue en essayant de rejoindre %s</string>
<string name="create_space_alias_hint">Adresse de lespace</string>
<string name="space_settings_alias_subtitle">Afficher et gérer les adresses de cet espace.</string>
<string name="space_settings_alias_title">Adresse de lespace</string>
</resources>

View file

@ -408,7 +408,7 @@
<string name="join">Csatlakozás</string>
<string name="preview">Előnézet</string>
<string name="reject">Elutasítás</string>
<string name="room_jump_to_first_unread">Ugrás az első olvasatlan üzenethez.</string>
<string name="room_jump_to_first_unread">Ugrás az olvasatlanra</string>
<string name="room_preview_invitation_format">Meg lettél hívva, hogy csatlakozz ehhez a szobához %s által</string>
<string name="title_activity_member_details">Tagok adatai</string>
<string name="forward">Továbbítás</string>
@ -2816,4 +2816,8 @@ Ha nem te állítottad be a visszaállítási metódust, akkor egy támadó pró
\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>
<string name="error_failed_to_join_room">Bocsánat, hiba történt a csatlakozáskor ide: %s</string>
<string name="create_space_alias_hint">Tér cím</string>
<string name="space_settings_alias_subtitle">Tér címek megjelenítése és kezelése.</string>
<string name="space_settings_alias_title">Tér címek</string>
</resources>

View file

@ -510,7 +510,7 @@
<string name="preview">Anteprima</string>
<string name="reject">Rifiuta</string>
<!-- Room -->
<string name="room_jump_to_first_unread">Vai al primo messaggio non letto.</string>
<string name="room_jump_to_first_unread">Vai ai non letti</string>
<!-- Room Preview -->
<string name="room_preview_invitation_format">Sei stato invitato da %s a entrare in questa stanza</string>
<string name="room_preview_unlinked_email_warning">Questo invito è stato spedito a %s, che non è associato a questo account.
@ -2865,4 +2865,8 @@
\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>
<string name="error_failed_to_join_room">Spiacenti, si è verificato un errore tentando di entrare: %s</string>
<string name="create_space_alias_hint">Indirizzo dello spazio</string>
<string name="space_settings_alias_subtitle">Vedi e gestisci gli indirizzi di questo spazio.</string>
<string name="space_settings_alias_title">Indirizzi dello spazio</string>
</resources>

View file

@ -802,17 +802,17 @@ ${app_name}アプリがあなたの電話帳へアクセスすることを許可
<string name="settings_without_flair">あなたは現在どのコミュニティーのメンバーでもありません。</string>
<string name="lock_screen_hint">ここに入力…</string>
<plurals name="notification_unread_notified_messages">
<item quantity="other">%d 個の未読の通知されたメッセージ</item>
<item quantity="other">%d件の通知された未読メッセージ</item>
</plurals>
<plurals name="notification_unread_notified_messages_in_room_msgs">
<item quantity="other">%d 個の未読の通知されたメッセージ</item>
<item quantity="other">%d件の通知された未読メッセージ</item>
</plurals>
<plurals name="notification_unread_notified_messages_in_room_rooms">
<item quantity="other">%d 部屋</item>
<item quantity="other">%d部屋</item>
</plurals>
<string name="notification_unread_notified_messages_in_room">%2$s件 中 %1$s件</string>
<plurals name="active_widgets">
<item quantity="other">%d 個のアクティブなウィジェット</item>
<item quantity="other">%d個のウィジェットが使用中</item>
</plurals>
<string name="widget_integration_missing_parameter">必要な変数が見つかりません。</string>
<string name="widget_integration_invalid_parameter">変数が無効です。</string>
@ -832,10 +832,10 @@ ${app_name}アプリがあなたの電話帳へアクセスすることを許可
<string name="command_description_markdown">Markdown書式の入/切</string>
<string name="command_description_clear_scalar_token">Matrixアプリの管理を修正するには</string>
<plurals name="group_members">
<item quantity="other">%d名</item>
<item quantity="other">%d名の参加者</item>
</plurals>
<plurals name="group_rooms">
<item quantity="other">%d 部屋</item>
<item quantity="other">%d部屋</item>
</plurals>
<string name="receipt_avatar">アバターを読み込み</string>
<string name="dialog_user_consent_content">%1$s ホームサーバを使用し続けるには、利用規約を読み、同意する必要があります。</string>
@ -1610,4 +1610,180 @@ Matrixでのメッセージの可視性は電子メールと同様です。メ
<string name="user_invites_you">%s はあなたを招待しています</string>
<string name="no_permissions_to_start_conf_call">この部屋で電話会議をする権利がありません</string>
<string name="audio_meeting">オーディオミーティングを開始する</string>
<string name="secure_backup_setup">安全バックアップを設定</string>
<string name="keys_backup_banner_update_line2">暗号鍵バックアップで管理</string>
<string name="keys_backup_banner_recover_line2">暗号鍵バックアップを使用</string>
<string name="secure_backup_banner_setup_line2">暗号化されたメッセージ及びデータへのアクセスを喪失しないための安全措置</string>
<string name="keys_backup_banner_setup_line2">暗号鍵のバックアップを開始</string>
<string name="new_recovery_method_popup_was_me">自分でした</string>
<string name="new_recovery_method_popup_description">新しい暗号化されたメッセージの暗号鍵バックアップが検出されました。
\n
\n新しい復元方法を設定しなかった場合、攻撃者がアカウントへアクセスしようとしている可能性があります。アカウントを守るために、設定ですぐにアカウントのパスワードを変更し新しい復元方法を設定してください。</string>
<string name="new_recovery_method_popup_title">新しい暗号鍵バックアップ</string>
<string name="keys_backup_settings_delete_confirm_message">バックアップされた暗号鍵をサーバーから削除しますか?現在の復元鍵を使用して暗号化されたメッセージ履歴を読むことができなくなります。</string>
<string name="keys_backup_settings_delete_confirm_title">バックアップを削除</string>
<string name="keys_backup_settings_checking_backup_state">バックアップの状態を確認中</string>
<string name="keys_backup_settings_delete_backup_error">バックアップの削除に失敗しました(%s</string>
<string name="keys_backup_settings_deleting_backup">バックアップを削除中…</string>
<string name="keys_backup_settings_untrusted_backup">このセッションで暗号鍵バックアップを使用するには、今パスフレーズまたは復元鍵でバックアップを復元してください。</string>
<string name="keys_backup_settings_invalid_signature_from_unverified_device">バックアップは%sという未検証セッションによる不正なしょめいがあります</string>
<string name="keys_backup_settings_invalid_signature_from_verified_device">バックアップは%sという検証されたセッションによる不正な署名があります</string>
<string name="keys_backup_settings_valid_signature_from_unverified_device">バックアップは%sという未検証セッションによる有効な署名があります</string>
<string name="keys_backup_settings_valid_signature_from_verified_device">バックアップは%sという検証されたセッションによる署名があります。</string>
<string name="keys_backup_settings_valid_signature_from_this_device">バックアップはこのセッションによる有効な署名があります。</string>
<string name="keys_backup_settings_signature_from_unknown_device">バックアップは%sというIDの不明のセッションによる署名があります。</string>
<string name="keys_backup_settings_status_not_setup">このセッションでは暗号鍵がバックアップされていません。</string>
<string name="keys_backup_settings_status_ko">このセッションでは暗号鍵のバックアップが無効になっています。</string>
<string name="keys_backup_settings_status_ok">このセッションでは暗号鍵のバックアップが正しく設定されています。</string>
<string name="keys_backup_get_version_error">最新の復号鍵バージョンの取得に失敗しました(%s</string>
<plurals name="keys_backup_restore_success_description_part2">
<item quantity="other">%d個の新しい鍵がこのセッションに追加されました。</item>
</plurals>
<plurals name="keys_backup_restore_success_description_part1">
<item quantity="other">%d個の鍵を含めたバックアップを復元しました。</item>
</plurals>
<string name="keys_backup_restore_success_title">バックアップが復元されました %s</string>
<string name="keys_backup_recovery_code_error_decrypt">この復元鍵ではバックアップを復号できませんでした。正しい復元鍵を入力したことを確認してください。</string>
<string name="keys_backup_recovery_code_empty_error_message">復元鍵を入力してください</string>
<string name="keys_backup_unlock_button">履歴をアンロック</string>
<string name="keys_backup_restoring_importing_keys_waiting_message">鍵をインポート中…</string>
<string name="keys_backup_restoring_downloading_backup_waiting_message">鍵をダウンロード中…</string>
<string name="keys_backup_restoring_computing_key_waiting_message">復元鍵を計算中…</string>
<string name="keys_backup_restoring_waiting_message">バックアップを復元:</string>
<string name="network_error_please_check_and_retry">ネットワークエラー: 接続を確認して再試行してください。</string>
<string name="keys_backup_passphrase_error_decrypt">このパスフレーズではバックアップを復号できませんでした。正しい復元パスフレーズを入力したことを確認してください。</string>
<string name="keys_backup_restore_with_key_helper">復元鍵を喪失しましたか?設定で新しいのを設定できます。</string>
<string name="keys_backup_restore_setup_recovery_key">メッセージの復元</string>
<string name="keys_backup_restore_is_getting_backup_version">バックアップのバージョンを取得中…</string>
<string name="keys_backup_restore_with_passphrase">復元パスフレーズを使用して暗号化されたメッセージ履歴書をアンロックします。</string>
<string name="keys_backup_restore_with_passphrase_helper_with_link">復元パスフレーズをご存知でなければ、%sができます。</string>
<string name="keys_backup_restore_with_recovery_key">復元鍵を使用して暗号化されたメッセージ履歴をアンロックします</string>
<string name="keys_backup_restore_key_enter_hint">復元鍵を入力</string>
<string name="keys_backup_restore_use_recovery_key">復元鍵を使用</string>
<string name="keys_backup_setup_skip_msg">ログアウトしたりこの端末を失くしたりすればメッセージへのアクセスを失う可能性があります。</string>
<string name="keys_backup_setup_skip_title">本当によろしいですか?</string>
<string name="keys_backup_setup_backup_started_message">暗号鍵が現在バックグラウンドでホームサーバーへバックアップされています。初期バックアップは数分かかることがあります。</string>
<string name="keys_backup_setup_backup_started_title">バックアップが開始されました</string>
<string name="unexpected_error">予期せぬエラー</string>
<string name="recovery_key">復元鍵</string>
<string name="keys_backup_setup_step3_generating_key_status">パスフレーズを使用して復元鍵を生成中です。数秒かかることがあります。</string>
<string name="keys_backup_setup_step3_share_intent_chooser_title">復元鍵を共有…</string>
<string name="keys_backup_setup_step3_please_make_copy">コピーをしてください</string>
<string name="keys_backup_setup_override_stop">中止</string>
<string name="keys_backup_setup_override_replace">上書き</string>
<string name="keys_backup_setup_override_backup_prompt_description">違うセッションにより設定された暗号鍵バックアップが既に存在します。既存のバックアップを上書きしますか?</string>
<string name="keys_backup_setup_override_backup_prompt_tile">ホームサーバーには既存のバックアップがあります</string>
<string name="recovery_key_export_saved">復元鍵が保存されました。</string>
<string name="recovery_key_export_saved_as_warning">復号鍵が%sに保存されました。
\n
\n注意: アプリケーションが削除された場合、削除される可能性があります。</string>
<string name="keys_backup_setup_step3_copy_button_title">復号鍵を保存</string>
<string name="keys_backup_setup_step3_button_title_no_passphrase">コピーをしました</string>
<string name="keys_backup_setup_step3_text_line2_no_passphrase">復元鍵はパスワードマネージャーや金庫のような、非常に安全なばしょで保管してください</string>
<string name="keys_backup_setup_step3_text_line2">復元鍵が安全網となります。パスフレーズを忘れた場合でも、暗号化されたメッセージへのアクセスを可能とするのです。
\n復元鍵はパスワードマネージャーや金庫のような、非常に安全な場所で保管してください。</string>
<string name="keys_backup_setup_step3_text_line1">暗号鍵がバックアップ中です。</string>
<string name="keys_backup_setup_step2_skip_button_title">(高度)復元鍵を使用して設定</string>
<string name="keys_backup_setup_step1_recovery_key_alternative">または、復元鍵を使用してバックアップを保護しバックアップを保護できます。復元鍵は安全な場所で保管してください。</string>
<string name="keys_backup_setup_step2_text_description">暗号鍵のコピーを暗号化してホームサーバーに保存します。バックアップを保護するためにパスフレーズを設定してください。
\n
\n最高度のセキュリティのために、アカウントのパスワードと異なることが大切です。</string>
<string name="keys_backup_setup_step2_text_title">パスフレーズを使用してバックアップを保護します。</string>
<string name="keys_backup_setup_step1_description">暗号化が有効な部屋で送信されたメッセージはEnd-to-end暗号化によって保護されます。メッセージを読むための暗号鍵を持っているのは送受信者のみです。
\n
\n暗号鍵を失わないように保護されたバックアップをしてください。</string>
<string name="keys_backup_setup_step1_advanced">(高度)</string>
<string name="keys_backup_setup_step1_title">暗号されたメッセージを絶対に失わないために</string>
<string name="keys_backup_no_session_error">利用可能なMatrixセッションがありません</string>
<string name="template_keys_backup_passphrase_not_empty_error_message">${app_name}による復号鍵の生成を望む場合、パスフレーズを削除してください。</string>
<string name="markdown_has_been_disabled">マークダウンが無効です。</string>
<string name="markdown_has_been_enabled">マークダウンが有効です。</string>
<string name="command_problem_with_parameters">”%s”とのコマンドはいくつかのパラメータが欠けているか不正です。</string>
<string name="settings_labs_enable_send_voice_summary">この機能はメッセージを録音するために第三者のアプリを必要とします。</string>
<string name="you_added_a_new_device_with_info">新しいセッションが暗号鍵を要請しています。
\nセッション名: %1$s
\n最後のオンライン時刻: %2$s
\n新たにログインして新しいセッションを開始しなかった場合、この要求を無視してください。</string>
<string name="your_unverified_device_requesting_with_info">未検証のセッションが暗号鍵を要請しています。
\nセッション名: %1$s
\n最後のオンライン時刻: %2$s
\n新たにログインして新しいセッションを開始しなかった場合、この要求を無視してください。</string>
<string name="key_share_request">暗号鍵共有要請</string>
<string name="settings_labs_native_camera_summary">カスタムカメラ画面の代わりにシステムカメラを使用します。</string>
<string name="room_no_active_widgets">使用中のウィジェットがありません</string>
<string name="room_manage_integrations">インテグレーションを管理</string>
<string name="integration_manager_not_configured">インテグレーション管理者が設定されていません。</string>
<string name="room_widget_webview_read_protected_media">DRM保護されているメディアの読込</string>
<string name="room_widget_webview_access_microphone">マイクの使用</string>
<string name="room_widget_webview_access_camera">カメラの使用</string>
<string name="room_widget_resource_permission_title">このウィジェットは次のリソースの使用を要求します:</string>
<string name="jitsi_leave_conf_to_join_another_one_content">現在の会議から退出しもう一つの会議に参加しますか?</string>
<string name="error_jitsi_join_conf">申し訳ありませんが、ビデオ会議に参加する途中で問題が発生しました</string>
<string name="error_jitsi_not_supported_on_old_device">申し訳ありませんが、古い端末Android OS 6.0以前はJitsiを使用したビデオ会議がサポートされていません</string>
<string name="room_widget_permission_display_name">あなたの表示名</string>
<string name="room_widget_failed_to_load">ウィジェットの読込に失敗しました。
\n%s</string>
<string name="room_widget_reload">ウィジェットを再読込</string>
<string name="room_widget_permission_webview_shared_info_title"></string>
<string name="room_widget_permission_added_by">ウィジェットの追加者:</string>
<string name="notification_inline_reply_failed">**送信に失敗 - 部屋を開いてください</string>
<string name="notification_new_invitation">新しい招待</string>
<string name="notification_unread_notified_messages_and_invitation">%1$sと%2$s</string>
<string name="notification_unread_notified_messages_in_room_and_invitation">%2$sと%3$sに%1$s件のメッセージ</string>
<plurals name="notification_compat_summary_title">
<item quantity="other">%d件の通知</item>
</plurals>
<plurals name="notification_compat_summary_line_for_room">
<item quantity="other">%1$s: %2$d件のメッセージ</item>
</plurals>
<plurals name="notification_invitations">
<item quantity="other">%d件の招待</item>
</plurals>
<string name="directory_add_a_new_server_error_already_added">既にリストに載っているサーバーです</string>
<string name="directory_add_a_new_server_error">サーバーまたはその部屋一覧が見つかりません</string>
<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="encryption_message_recovery">暗号化されたメッセージの復元</string>
<string name="device_name_warning">セッションの公開名は対話中の相手に閲覧できます</string>
<string name="room_settings_room_version_title">部屋のバージョン</string>
<plurals name="room_settings_banned_users_count">
<item quantity="other">banされたユーザー%d人</item>
</plurals>
<string name="room_settings_room_access_restricted_description">この部屋が含まれているスペースの参加者誰でも発見し参加できます。部屋をスペースに追加できるのは部屋の管理者だけです。</string>
<string name="room_settings_room_access_restricted_title">スペース</string>
<string name="room_settings_room_access_public_description">誰でも部屋を発見し参加できます</string>
<string name="room_settings_room_access_public_title">公開</string>
<string name="room_settings_room_access_private_description">参加された人のみが部屋を発見し参加できます</string>
<string name="room_settings_room_access_private_title">プライベート</string>
<string name="room_settings_room_access_entry_unknown">不明のアクセス設定(%s</string>
<string name="room_settings_room_access_entry_knock">誰でもノックができ、メンバーがその参加を承認または拒否できます</string>
<string name="room_alias_publish_to_directory_error">現在の部屋一覧可視性状態を取得できません(%1$s</string>
<string name="room_alias_publish_to_directory">この部屋を%1$sの部屋一覧に公開しますか</string>
<string name="room_alias_action_unpublish">アドレスを非公開にする</string>
<string name="room_alias_action_publish">アドレスを公開</string>
<string name="room_alias_local_address_subtitle">同じホームサーバー(%1$sの他のユーザーがこの部屋を見つけられるようにアドレスを設定できます。</string>
<string name="room_alias_local_address_title">ローカルアドレス</string>
<string name="room_alias_address_hint">新しい公開アドレス(例: #alias:server)</string>
<string name="room_alias_address_empty_can_add">他の公開アドレスはまだありません。以下から追加できます。</string>
<string name="room_alias_address_empty">他の公開アドレスはまだありません。</string>
<string name="room_alias_publish">部屋を%1$sの部屋一覧に公開しますか</string>
<string name="room_alias_unpublish_confirmation">\"%1$s\"を非公開にしますか?</string>
<string name="room_alias_published_alias_add_manually_submit">公開</string>
<string name="room_alias_published_alias_add_manually">手動で新しいアドレスを公開</string>
<string name="room_alias_published_other">他の公開アドレス</string>
<string name="room_alias_published_alias_subtitle">公開されたアドレスを通して、どのサーバーのどのユーザーでもこの部屋に参加できます。アドレスを公開するには、まずローカルアドレスとして設定する必要があります。</string>
<string name="room_alias_published_alias_title">公開アドレス</string>
<string name="room_alias_title">部屋のアドレス</string>
<string name="room_settings_alias_subtitle">部屋のアドレス及び部屋一覧における可視性を管理できます。</string>
<string name="space_settings_alias_subtitle">スペースのアドレスを管理できます。</string>
<string name="space_settings_alias_title">スペースのアドレス</string>
<string name="room_settings_alias_title">部屋のアドレス</string>
<string name="room_settings_guest_access_title">ゲストの参加を許可</string>
<string name="room_settings_room_access_title">部屋へのアクセス</string>
<string name="room_settings_room_read_history_dialog_subtitle">発信履歴閲覧権限の変更は今後送信されるメッセージにのみ適用されます。既存履歴の表示は影響されません。</string>
<string name="continue_anyway">無視して続行</string>
<string name="option_always_ask">毎回確認する</string>
<string name="spaces_invited_header">招待</string>
<string name="suggested_header">おすすめの部屋</string>
</resources>

View file

@ -515,7 +515,7 @@
<string name="preview">Previsualizar</string>
<string name="reject">Rejeitar</string>
<!-- Room -->
<string name="room_jump_to_first_unread">Pular para primeira mensagem não-lida.</string>
<string name="room_jump_to_first_unread">Pular para não-lida(s)</string>
<!-- Room Preview -->
<string name="room_preview_invitation_format">Você tem sido convidada(o) a juntar-se a esta sala por %s</string>
<string name="room_preview_unlinked_email_warning">Este convite foi enviado para %s, que não está associada(o) a esta conta.
@ -2549,7 +2549,7 @@
<string name="create_room_alias_already_in_use">Este endereço já está em uso</string>
<string name="create_room_alias_hint">Endereço de sala</string>
<string name="create_room_disable_federation_description">Você pode ativar isto se a sala vai somente ser usada para colaborar com times internos em seu servidorcasa. Isto não poder ser mudado mais tarde.</string>
<string name="create_room_disable_federation_title">Bloquear qualquer pessoa que não é parte de %s de nunca se juntar a esta sala</string>
<string name="create_room_disable_federation_title">Bloquear qualquer pessoa que não é parte de %s de jamais se juntar a esta sala</string>
<string name="attachment_viewer_item_x_of_y">%1$d de %2$d</string>
<string name="a11y_create_direct_message_by_qr_code">Criar uma nova conversa direta ao scannar um QR code</string>
<string name="a11y_create_direct_message_by_mxid">Criar uma nova conversa direta por ID Matrix</string>
@ -2881,4 +2881,8 @@
\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>
<string name="error_failed_to_join_room">Desculpe, um erro ocorreu enquanto tentando se juntar: %s</string>
<string name="create_space_alias_hint">Endereço de espaço</string>
<string name="space_settings_alias_subtitle">Ver e gerenciar endereços deste espaço.</string>
<string name="space_settings_alias_title">Endereços de espaço</string>
</resources>

View file

@ -164,7 +164,7 @@
<string name="create_account">Criar conta</string>
<string name="login">Iniciar sessão</string>
<string name="logout">Sair</string>
<string name="hs_url">URL do "Home Server"</string>
<string name="hs_url">URL do homeserver</string>
<string name="identity_url">URL do "Identity Server"</string>
<string name="search">Pesquisar</string>
<string name="start_new_chat">Iniciar nova conversa</string>
@ -209,7 +209,7 @@
Poderá adicionar o seu email ao seu perfil nas definições.</string>
<string name="auth_recaptcha_message">Este servidor quer ter a certeza de que você não é um robô</string>
<string name="auth_username_in_use">Nome de utilizador já existe</string>
<string name="auth_home_server">Servidor local (home server):</string>
<string name="auth_home_server">Servidor local (homeserver):</string>
<string name="auth_identity_server">Servidor de Identidade:</string>
<string name="auth_reset_password_next_step_button">Verifiquei o meu endereço de email</string>
<string name="auth_reset_password_message">Para redefinir a sua palavra-passe, introduza o endereço de e-mail associado à sua conta:</string>
@ -489,7 +489,7 @@ Para continuar, insira a sua palavra-passe.</string>
<string name="devices_delete_pswd">Palavra-passe:</string>
<string name="devices_delete_submit_button_label">Submeter</string>
<string name="settings_logged_in">Conectado como</string>
<string name="settings_home_server">Servidor (Home Server)</string>
<string name="settings_home_server">Servidor (homeserver)</string>
<string name="settings_identity_server">Servidor de identidade</string>
<string name="account_email_validation_title">Verificação pendente</string>
<string name="account_email_validation_message">Verifique o seu e-mail e clique no link que contém. Uma vez feito isso, clique em continuar.</string>

View file

@ -5,4 +5,5 @@
<string name="title_activity_settings">සැකසුම්</string>
<string name="title_activity_room">කාමරය</string>
<string name="dark_theme">අඳුරු තේමාව</string>
<string name="notice_room_invite_no_invitee_by_you">ඔබගේ ආරාධනය</string>
</resources>

View file

@ -452,7 +452,7 @@
<string name="reject">Hidheni tej</string>
<string name="list_members">Anëtarë liste</string>
<string name="room_sync_in_progress">Po njëkohësohet…</string>
<string name="room_jump_to_first_unread">Hidhu te mesazhi i parë i palexuar.</string>
<string name="room_jump_to_first_unread">Hidhu te të palexuarit.</string>
<string name="room_preview_invitation_format">Jeni ftuar të merrni pjesë në këtë dhomë nga %s</string>
<string name="room_preview_try_join_an_unknown_room_default">një dhomë</string>
<string name="room_creation_title">Fjalosje e Re</string>
@ -2801,4 +2801,8 @@
\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>
<string name="error_failed_to_join_room">Na ndjeni, ndodhi një gabim teksa provohej të hyhej: %s</string>
<string name="create_space_alias_hint">Adresë hapësire</string>
<string name="space_settings_alias_title">Adresa hapësire</string>
<string name="space_settings_alias_subtitle">Shihni dhe administroni adresa në këtë hapësirë.</string>
</resources>

View file

@ -300,9 +300,9 @@
<string name="room_participants_action_set_admin">ทำให้เป็นผู้ดูแล</string>
<string name="room_participants_action_set_moderator">ทำให้เป็นผู้ควบคุม</string>
<string name="room_participants_action_remove">เอาออกจากห้องนี้</string>
<string name="room_title_one_member">1 สมาชิก</string>
<string name="room_title_one_member">สมาชิก 1 คน</string>
<plurals name="room_title_members">
<item quantity="other">%d สมาชิก</item>
<item quantity="other">สมาชิก %d คน</item>
</plurals>
<string name="option_send_files">ส่งไฟล์</string>
<string name="user_directory_header">ไดเรกทอรีผู้ใช้</string>

View file

@ -1820,4 +1820,13 @@
<string name="notice_widget_removed">%1$s %2$s widgetını kaldırdı</string>
<string name="notice_end_to_end">%1$s uçtan uca şifrelemeyi etkinleştirdi (%2$s)</string>
<string name="notice_room_visibility_unknown">bilinmeyen (%s).</string>
<string name="notice_direct_room_update">%s güncellendi.</string>
<string name="notice_room_visibility_world_readable">birisi.</string>
<string name="notice_made_future_direct_room_visibility_by_you">Gelecek mesajları %1$s için görünür yaptınız.</string>
<string name="notice_made_future_direct_room_visibility">%1$s, gelecek mesajları %2$s için görünür hale getirdi.</string>
<string name="notice_made_future_room_visibility_by_you">Oda geçmişini %1$s için görünür yaptınız.</string>
<string name="notice_made_future_room_visibility">%1$s oda geçmişini %2$s \'ye görünür yaptı.</string>
<string name="notice_call_candidates_by_you">Çağrı kurulumu için verileri gönderdiniz.</string>
<string name="notice_call_candidates">%s kurulumu çağrı verileri gönderildi.</string>
<string name="notice_display_name_removed_by_you">%1$s başlıklı görünen ad silindi.</string>
</resources>

View file

@ -725,7 +725,7 @@
<string name="room_recents_join_room">进入聊天室</string>
<string name="room_recents_join_room_title">进入一个聊天室</string>
<string name="room_recents_join_room_prompt">输入聊天室 ID 或者聊天室别名</string>
<string name="room_jump_to_first_unread">跳到第一条未读消息。</string>
<string name="room_jump_to_first_unread">跳到未读</string>
<string name="settings_home_display">主页显示</string>
<string name="settings_pin_missed_notifications">固定含错过通知的聊天室</string>
<string name="settings_pin_unread_messages">置顶含有未读消息的聊天室</string>
@ -2768,4 +2768,8 @@
\n作为测试版的一部分我们将对此进行改进只是想让你知道。</string>
<string name="teammate_spaces_arent_quite_ready">队友空间还没有完全准备好,但你仍然可以尝试一下</string>
<string name="continue_anyway">不论如何继续</string>
<string name="error_failed_to_join_room">抱歉,尝试加入 %s 时发生了一个错误</string>
<string name="create_space_alias_hint">空间地址</string>
<string name="space_settings_alias_subtitle">查看和管理这个空间的地址。</string>
<string name="space_settings_alias_title">空间地址</string>
</resources>

View file

@ -502,7 +502,7 @@
<string name="list_members">列出成員</string>
<string name="open_chat_header">打開標頭</string>
<string name="room_sync_in_progress">正在同步……</string>
<string name="room_jump_to_first_unread">跳到第一個未讀的訊息。</string>
<string name="room_jump_to_first_unread">跳到未讀</string>
<string name="room_preview_invitation_format">你已經被 %s 邀請加入此聊天室</string>
<string name="room_preview_unlinked_email_warning">邀請已經被傳送給 %s但與此帳號沒有進行關連。
\n你也許希望以不同帳號登入或將電子郵件加入到您的帳號。</string>
@ -2758,4 +2758,8 @@
\n作為測試版的一部分我們會對此進行改善但想先讓您知道。</string>
<string name="teammate_spaces_arent_quite_ready">隊友空間還沒有完全準備好,但您仍可以試試看</string>
<string name="continue_anyway">無論如何都要繼續</string>
<string name="error_failed_to_join_room">抱歉,試圖加入時發生錯誤:%s</string>
<string name="create_space_alias_hint">空間地址</string>
<string name="space_settings_alias_subtitle">檢視與管理此空間的地址。</string>
<string name="space_settings_alias_title">空間地址</string>
</resources>

View file

@ -543,7 +543,7 @@
<string name="logout">Sign out</string>
<string name="hs_url">Homeserver URL</string>
<string name="hs_client_url">Homeserver API URL</string>
<string name="identity_url">Identity Server URL</string>
<string name="identity_url">Identity server URL</string>
<string name="search">Search</string>
<string name="start_new_chat">Start New Chat</string>
@ -633,7 +633,7 @@
<string name="auth_recaptcha_message">This homeserver would like to make sure you are not a robot</string>
<string name="auth_username_in_use">Username in use</string>
<string name="auth_home_server">Homeserver:</string>
<string name="auth_identity_server">Identity Server:</string>
<string name="auth_identity_server">Identity server:</string>
<string name="auth_reset_password_next_step_button">I have verified my email address</string>
<string name="auth_reset_password_message">To reset your password, enter the email address linked to your account:</string>
<string name="auth_reset_password_missing_email">The email address linked to your account must be entered.</string>
@ -1128,8 +1128,8 @@
<string name="settings_troubleshoot_test_fcm_failed_account_missing_quick_fix">Add Account</string>
<string name="settings_troubleshoot_test_token_registration_title">Token Registration</string>
<string name="settings_troubleshoot_test_token_registration_success">FCM token successfully registered to HomeServer.</string>
<string name="settings_troubleshoot_test_token_registration_failed">Failed to register FCM token to HomeServer:\n%1$s</string>
<string name="settings_troubleshoot_test_token_registration_success">FCM token successfully registered to homeserver.</string>
<string name="settings_troubleshoot_test_token_registration_failed">Failed to register FCM token to homeserver:\n%1$s</string>
<string name="settings_troubleshoot_test_push_loop_title">Test Push</string>
<string name="settings_troubleshoot_test_push_loop_waiting_for_push">The application is waiting for the PUSH</string>
@ -1171,7 +1171,7 @@
<string name="settings_notification_privacy_normal">Normal</string>
<string name="settings_notification_privacy_reduced">Reduced privacy</string>
<string name="settings_notification_privacy_need_permission">The app needs permission to run in the background</string>
<string name="settings_notification_privacy_no_background_sync">The apps does <b>not</b> need to connect to the HomeServer in the background, it should reduce battery usage</string>
<string name="settings_notification_privacy_no_background_sync">The apps does <b>not</b> need to connect to the homeserver in the background, it should reduce battery usage</string>
<string name="settings_notification_privacy_fcm">• Notifications are sent via Firebase Cloud Messaging</string>
<string name="settings_notification_privacy_metadata">• Notifications only contain meta data</string>
<string name="settings_notification_privacy_secure_message_content">• Message content of the notification is <b>located securely direct from the Matrix homeserver</b></string>
@ -1236,7 +1236,7 @@
<string name="settings_other">Other</string>
<string name="settings_advanced">Advanced</string>
<string name="settings_integrations">Integrations</string>
<string name="settings_integrations_summary">Use an Integration Manager to manage bots, bridges, widgets and sticker packs.\nIntegration Managers receive configuration data, and can modify widgets, send room invites and set power levels on your behalf.</string>
<string name="settings_integrations_summary">Use an integration manager to manage bots, bridges, widgets and sticker packs.\nIntegration managers receive configuration data, and can modify widgets, send room invites and set power levels on your behalf.</string>
<string name="settings_cryptography">Cryptography</string>
<string name="settings_cryptography_manage_keys">Cryptography Keys Management</string>
<string name="settings_notifications_targets">Notification Targets</string>
@ -1321,9 +1321,9 @@
<string name="settings_logged_in">Logged in as</string>
<string name="settings_home_server">Homeserver</string>
<string name="settings_identity_server">Identity Server</string>
<string name="settings_identity_server">Identity server</string>
<string name="settings_integration_allow">Allow integrations</string>
<string name="settings_integration_manager">Integration Manager</string>
<string name="settings_integration_manager">Integration manager</string>
<string name="disabled_integration_dialog_title">Integrations are disabled</string>
<string name="disabled_integration_dialog_content">"Enable 'Allow integrations' in Settings to do this."</string>
@ -1698,7 +1698,7 @@
<string name="room_widget_webview_access_microphone">Use the microphone</string>
<string name="room_widget_webview_read_protected_media">Read DRM protected Media</string>
<!-- Widget Integration Manager -->
<!-- Widget integration manager -->
<string name="widget_integration_unable_to_create">Unable to create widget.</string>
<string name="widget_integration_failed_to_send_request">Failed to send request.</string>
@ -1909,7 +1909,7 @@
<string name="recovery_key_export_saved_as_warning">The recovery key has been saved to \'%s\'.\n\nWarning: this file may be deleted if the application is uninstalled.</string>
<string name="recovery_key_export_saved">The recovery key has been saved.</string>
<string name="keys_backup_setup_override_backup_prompt_tile">A backup already exist on your HomeServer</string>
<string name="keys_backup_setup_override_backup_prompt_tile">A backup already exist on your homeserver</string>
<string name="keys_backup_setup_override_backup_prompt_description">It looks like you already have setup key backup from another session. Do you want to replace it with the one youre creating?</string>
<string name="keys_backup_setup_override_replace">Replace</string>
<string name="keys_backup_setup_override_stop">Stop</string>
@ -2075,7 +2075,7 @@
<string name="sas_error_unknown">Unknown Error</string>
<!-- Identity server -->
<string name="identity_server_not_defined">You are not using any Identity Server</string>
<string name="identity_server_not_defined">You are not using any identity server</string>
<string name="identity_server_not_defined_for_password_reset">No identity server is configured, it is required to reset your password.</string>
<string name="error_user_already_logged_in">It looks like youre trying to connect to another homeserver. Do you want to sign out?</string>
@ -2273,7 +2273,7 @@
<string name="settings_discovery_consent_action_give_consent">Give consent</string>
<string name="identity_server_consent_dialog_title">Send emails and phone numbers</string>
<string name="identity_server_consent_dialog_content">In order to discover existing contacts you know, do you accept to send your contact data (phone numbers and/or emails) to the configured Identity Server (%1$s)?\n\nFor more privacy, the sent data will be hashed before being sent.</string>
<string name="identity_server_consent_dialog_content">In order to discover existing contacts you know, do you accept to send your contact data (phone numbers and/or emails) to the configured identity server (%1$s)?\n\nFor more privacy, the sent data will be hashed before being sent.</string>
<string name="settings_discovery_enter_identity_server">Enter an identity server URL</string>
<string name="settings_discovery_bad_identity_server">Could not connect to identity server</string>