Merge branch 'develop' into element_3867

This commit is contained in:
manuroe 2021-02-18 15:35:21 +01:00
commit 22d6d16f79
248 changed files with 10966 additions and 9886 deletions

3
.gitignore vendored
View file

@ -27,7 +27,8 @@ out/
#
Pods/
# Do not track our workspace since it is created by CocoaPods
## Ignore project files as we generate them with xcodegen (https://github.com/yonaskolb/XcodeGen)
*.xcodeproj
*.xcworkspace
# Fastlane

View file

@ -2,16 +2,21 @@ Changes to be released in next version
=================================================
✨ Features
* Enable encryption for contacts, accounts, and crypto database (#3867)
* Change Pin inside the app (#3881)
* AuthVC: Add social login (#3846).
* Invite friends: Add the ability to invite friends outside of Element in a few places (#3840).
🙌 Improvements
* Bug report: Add "Continue in background" button (#3816).
* Show user id in the room invite preview screen (#3839)
* AuthVC: SSO authentication now use redirect URL instead of fallback page (#3846).
🐛 Bugfix
* Crash report cannot be submitted (on small phones) #3819
* Crash report cannot be submitted (on small phones) (#3819)
* Prevent navigation controller from pushing same view controller (#3924)
* AuthVC: Fix recaptcha view cropping (#3940).
⚠️ API Changes
*
@ -25,6 +30,9 @@ Changes to be released in next version
Others
*
Improvements:
* Upgrade MatrixKit version ([v0.13.6](https://github.com/matrix-org/matrix-ios-kit/releases/tag/v0.13.6)).
Changes in 1.1.3 (2020-12-18)
=================================================

View file

@ -1,54 +0,0 @@
//
// Copyright 2020 Vector Creations Ltd
//
// 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.
//
import Foundation
import MatrixKit
/// AppConfig is Config plus configurations dedicated to the app
class AppConfiguration: Config {
// MARK: - Global settings
override func setupSettings() {
super.setupSettings()
setupAppSettings()
}
private func setupAppSettings() {
// Enable long press on event in bubble cells
MXKRoomBubbleTableViewCell.disableLongPressGesture(onEvent: false)
// Each room member will be considered as a potential contact.
MXKContactManager.shared().contactManagerMXRoomSource = MXKContactManagerMXRoomSource.all
}
// MARK: - Per matrix session settings
override func setupSettings(for matrixSession: MXSession) {
super.setupSettings(for: matrixSession)
setupWidgetReadReceipts(for: matrixSession)
}
private func setupWidgetReadReceipts(for matrixSession: MXSession) {
var acknowledgableEventTypes = matrixSession.acknowledgableEventTypes ?? []
acknowledgableEventTypes.append(kWidgetMatrixEventTypeString)
acknowledgableEventTypes.append(kWidgetModularEventTypeString)
matrixSession.acknowledgableEventTypes = acknowledgableEventTypes
}
}

View file

@ -0,0 +1,43 @@
//
// Copyright 2021 Vector Creations Ltd
//
// 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.
//
// App identity
BUNDLE_DISPLAY_NAME = Element
BASE_BUNDLE_IDENTIFIER = im.vector.app
APPLICATION_GROUP_IDENTIFIER = group.im.vector
// Version
MARKETING_VERSION = 1.2.2
CURRENT_PROJECT_VERSION = 1.2.2
// Team
DEVELOPMENT_TEAM = 7J4U792NQT
// Provisioning profiles
RIOT_PROVISIONING_PROFILE_SPECIFIER = Vector App Store
RIOT_PROVISIONING_PROFILE = f65e7447-b8a3-46cc-8fba-fa60e55e2511
NSE_PROVISIONING_PROFILE_SPECIFIER = "Vector NSE: App Store"
NSE_PROVISIONING_PROFILE = 31dc9316-e029-47fd-81f5-778db07d76a2
SHARE_EXTENSION_PROVISIONING_PROFILE_SPECIFIER = "Vector Share Extension: App Store"
SHARE_EXTENSION_PROVISIONING_PROFILE = 1a3be143-50c7-4ae2-834e-00596a053141
SIRI_INTENTS_PROVISIONING_PROFILE_SPECIFIER = "Vector Siri Intents: App Store"
SIRI_INTENTS_PROVISIONING_PROFILE = 18a66f93-ffe1-4008-b343-58350cc65023

View file

@ -134,7 +134,7 @@ final class BuildSettings: NSObject {
// MARK: - VoIP
static var allowVoIPUsage: Bool {
#if canImport(JitsiMeet)
#if canImport(JitsiMeetSDK)
return true
#else
return false

View file

@ -0,0 +1,39 @@
//
// Copyright 2021 Vector Creations Ltd
//
// 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.
//
// This file defines project settings for Debug.
// Targets (App, extensions) xcconfig files automatically include it for Debug build.
#include "Project.xcconfig"
#include "Project-Warnings.xcconfig"
ONLY_ACTIVE_ARCH = YES
COPY_PHASE_STRIP = NO
ENABLE_TESTABILITY = YES
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE
SWIFT_OPTIMIZATION_LEVEL = -Onone
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
GCC_OPTIMIZATION_LEVEL = 0
GCC_DYNAMIC_NO_PIC = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited)
GCC_SYMBOLS_PRIVATE_EXTERN = NO
// Code signing: Use the development team for all targets
CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_STYLE = Automatic

View file

@ -0,0 +1,33 @@
//
// Copyright 2021 Vector Creations Ltd
//
// 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.
//
// This file defines project settings for Release.
// Targets (App, extensions) xcconfig files automatically include it for Release build.
#include "Project.xcconfig"
#include "Project-Warnings.xcconfig"
COPY_PHASE_STRIP = YES
ENABLE_NS_ASSERTIONS = NO
MTL_ENABLE_DEBUG_INFO = NO
VALIDATE_PRODUCT = YES
SWIFT_COMPILATION_MODE = wholemodule
// Code signing: Manual
CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_STYLE = Manual

View file

@ -0,0 +1,48 @@
//
// Copyright 2021 Vector Creations Ltd
//
// 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.
//
// This file defines warning declarations for the base project.
// Targets (App, extensions) xcconfig files automatically include it.
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
CLANG_WARN_BOOL_CONVERSION = YES
CLANG_WARN_COMMA = YES
CLANG_WARN_CONSTANT_CONVERSION = YES
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
CLANG_WARN_DOCUMENTATION_COMMENTS = YES
CLANG_WARN_EMPTY_BODY = YES
CLANG_WARN_ENUM_CONVERSION = YES
CLANG_WARN_INFINITE_RECURSION = YES
CLANG_WARN_INT_CONVERSION = YES
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
CLANG_WARN_STRICT_PROTOTYPES = YES
CLANG_WARN_SUSPICIOUS_MOVE = YES
CLANG_WARN_UNREACHABLE_CODE = YES
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
GCC_WARN_UNDECLARED_SELECTOR = YES
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_VARIABLE = YES

48
Config/Project.xcconfig Normal file
View file

@ -0,0 +1,48 @@
//
// Copyright 2020 Vector Creations Ltd
//
// 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.
//
// Configuration settings file format documentation can be found at:
// https://help.apple.com/xcode/#/dev745c5c974
// This file defines base project settings.
// Targets (App, extensions) xcconfig files automatically include it.
// Application constants
KEYCHAIN_ACCESS_GROUP = $(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER).keychain.shared
// Build settings
IPHONEOS_DEPLOYMENT_TARGET = 11.0
SDKROOT = iphoneos
TARGETED_DEVICE_FAMILY = 1,2
SWIFT_VERSION = 5.3.1
ENABLE_BITCODE = NO
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @executable_path/../../Frameworks
ALWAYS_SEARCH_USER_PATHS = NO
DEFINES_MODULE = YES
ENABLE_STRICT_OBJC_MSGSEND = YES
GCC_NO_COMMON_BLOCKS = YES
// Make Xcode 12 and fastlane(xcodebuild) happy while some pods are not updated
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
CLANG_ANALYZER_NONNULL = YES
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
CLANG_ENABLE_MODULES = YES
CLANG_ENABLE_OBJC_ARC = YES

View file

@ -4,7 +4,7 @@
<dict>
<key>FILEHEADER</key>
<string>
// Copyright 2020 New Vector Ltd
// Copyright 2021 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.

View file

@ -7,6 +7,7 @@ To build Element iOS project you need:
- Xcode 12.1+.
- [Ruby](https://www.ruby-lang.org/), a dynamic programming language used by several build tools.
- [CocoaPods](https://cocoapods.org), library dependencies manager for Xcode projects.
- [XcodeGen](https://github.com/yonaskolb/XcodeGen), an Xcode project generator.
- [bundler](https://bundler.io/) (optional), is also a dependency manager used to manage build tools dependency (CocoaPods, Fastlane).
### Install Ruby
@ -20,17 +21,25 @@ If you do not want to grant the ruby package manager, [RubyGems](https://rubygem
To install CocoaPods you can grab the right version by using `bundler` (recommended) or you can directly install it with RubyGems:
```
gem install cocoapods
$ gem install cocoapods
```
In the last case please ensure that you are using the same version as indicated at the end of the `Podfile.lock` file.
### Install XcodeGen
You can directly install XcodeGen with [Homebrew](https://brew.sh) or RubyGems:
```
$ brew install xcodegen
```
### Install bundler (optional)
By using `bundler` you will ensure to use the right versions of build tools used to build and deliver the project. You can find dependency definitions in the `Gemfile`. To install `bundler`:
```
gem install bundler
$ gem install bundler
```
## Choose Matrix SDKs version to build
@ -51,32 +60,39 @@ If you want to build last development code you have to checkout the develop bran
- **Build specific branch of Kit and SDK and modify Element project only**
If you want to build a specific branch for the MatrixKit and the MatrixSDK you have to indicate them using a dictionary like this: `$matrixKitVersion = {'kit branch name' => 'sdk branch name'}`.
If you want to build a specific branch for the MatrixKit and the MatrixSDK you have to indicate them using a dictionary like this: `$matrixKitVersion = {'kit_branch_name' => 'sdk_branch_name'}`.
- **Build any branch and be able to modify MatrixKit and MatrixSDK locally**
If you want to modify MatrixKit and/or MatrixSDK locally and see the result in Element project you have to uncommment `$matrixKitVersion = :local` in the `Podfile`.
But before you have to checkout [MatrixKit](https://github.com/matrix-org/matrix-ios-kit) repository in `../matrix-ios-kit` and [MatrixSDK](https://github.com/matrix-org/matrix-ios-sdk) in `../matrix-ios-sdk` locally relatively to your Element iOS project folder.
Be sure to use compatible branches for Element iOS, MatrixKit and MatrixSDK. For example if you want to modify Element iOS from develop branch use MatrixKit and MatrixSDK develop branches and then make your modifications.
Be sure to use compatible branches for Element iOS, MatrixKit and MatrixSDK. For example, if you want to modify Element iOS from develop branch, use MatrixKit and MatrixSDK develop branches and then make your modifications.
**Important**: By working with local pods (development pods) you will need to use legacy build system in Xcode, to have your local changes taken into account. To enable it go to Xcode menu and select `File > Workspace Settings… > Build System` and then choose `Legacy Build System`.
### Modify `$matrixKitVersion` after installation of dependencies
### `$matrixKitVersion` Modification
Assuming you have already completed the **Install dependencies** instructions from **Build** section below.
Every time you change the `$matrixKitVersion` variable in the `Podfile`, you have to run the `pod install` command again.
Each time you edit `$matrixKitVersion` variable in the `Podfile` you will have to run the `pod install` command.
## Build
## Generate Xcode project
In order to get rid of git conflicts, the `Riot.xcodeproj` is not pushed into the git repository anymore but generated using `XcodeGen`. To generate the `xcodeproj` file simply run the following command line from the root folder :
```
$ xcodegen
```
### Install dependencies
Before opening the Element Xcode workspace, you need to install dependencies via CocoaPods.
Then, before opening the Element Xcode workspace, you need to install dependencies via CocoaPods.
To be sure to use the right CocoaPods version you can use `bundler`:
```
$ cd Riot
$ bundle install
$ bundle exec pod install
```
@ -84,12 +100,12 @@ $ bundle exec pod install
Or if you prefer to use directly CocoaPods:
```
$ cd Riot
$ pod install
```
This will load all dependencies for the Element source code, including [MatrixKit](https://github.com/matrix-org/matrix-ios-kit)
and [MatrixSDK](https://github.com/matrix-org/matrix-ios-sdk).
and [MatrixSDK](https://github.com/matrix-org/matrix-ios-sdk).
### Open workspace
@ -103,7 +119,10 @@ $ open Riot.xcworkspace
### Configure project
You may need to change the bundle identifier and app group identifier to be unique to get Xcode to build the app. Make sure to change the bundle identifier, application group identifier and app name in the `Config/Common.xcconfig` file to your new identifiers.
You may need to change the bundle identifier and app group identifier to be unique to get Xcode to build the app. Make sure to change the bundle identifier, application group identifier and app name in the `project.yml` file to your new identifiers.
Each target has its own YAML file in the folder Targets folder.
## Generate IPA
@ -142,5 +161,3 @@ Or you can use the wrapper script located at `/Tools/Release/buildRelease.sh`. F
And then indicate a branch or a tag like this:
`$ ./buildRelease.sh <tag or branch>`

19
Podfile
View file

@ -11,7 +11,7 @@ use_frameworks!
# - `{ {kit spec hash} => {sdk spec hash}` to depend on specific pod options (:git => …, :podspec => …) for each repo. Used by Fastfile during CI
#
# Warning: our internal tooling depends on the name of this variable name, so be sure not to change it
$matrixKitVersion = '= 0.13.4'
$matrixKitVersion = '= 0.14.1'
# $matrixKitVersion = :local
# $matrixKitVersion = {'develop' => 'develop'}
@ -32,19 +32,13 @@ $matrixKitVersionSpec = $matrixKitVersion
$matrixSDKVersionSpec = {}
end
# Method to import the right MatrixKit flavour
# Method to import the MatrixKit
def import_MatrixKit
pod 'MatrixSDK', $matrixSDKVersionSpec
pod 'MatrixSDK/JingleCallStack', $matrixSDKVersionSpec
pod 'MatrixKit', $matrixKitVersionSpec
end
# Method to import the right MatrixKit/AppExtension flavour
def import_MatrixKitAppExtension
pod 'MatrixSDK', $matrixSDKVersionSpec
pod 'MatrixKit/AppExtension', $matrixKitVersionSpec
end
########################################
abstract_target 'RiotPods' do
@ -81,15 +75,15 @@ abstract_target 'RiotPods' do
end
target "RiotShareExtension" do
import_MatrixKitAppExtension
import_MatrixKit
end
target "SiriIntents" do
import_MatrixKitAppExtension
import_MatrixKit
end
target "RiotNSE" do
import_MatrixKitAppExtension
import_MatrixKit
end
end
@ -111,6 +105,9 @@ post_install do |installer|
if target.name.include? 'ReadMoreTextView'
config.build_settings['SWIFT_VERSION'] = '5.2'
end
# Stop Xcode 12 complaining about old IPHONEOS_DEPLOYMENT_TARGET from pods
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end

View file

@ -30,11 +30,6 @@ PODS:
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTCoreText/Extension (1.6.25):
- DTFoundation/Core (~> 1.7.5)
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTFoundation/Core (1.7.16)
- DTFoundation/DTAnimatedGIF (1.7.16)
- DTFoundation/DTHTMLParser (1.7.16):
@ -47,7 +42,7 @@ PODS:
- GBDeviceInfo/Core (6.4.0)
- GZIP (1.3.0)
- HPGrowingTextView (1.1)
- JitsiMeetSDK (2.11.0)
- JitsiMeetSDK (3.1.0)
- KeychainAccess (4.2.1)
- KituraContracts (1.2.1):
- LoggerAPI (~> 1.7)
@ -60,36 +55,29 @@ PODS:
- MatomoTracker (7.2.2):
- MatomoTracker/Core (= 7.2.2)
- MatomoTracker/Core (7.2.2)
- MatrixKit (0.13.4):
- MatrixKit (0.14.1):
- Down (~> 0.9.3)
- DTCoreText (~> 1.6.23)
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixKit/Core (= 0.13.4)
- MatrixSDK (= 0.17.6)
- MatrixKit/AppExtension (0.13.4):
- Down (~> 0.9.3)
- DTCoreText (~> 1.6.23)
- DTCoreText/Extension
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.17.6)
- MatrixKit/Core (0.13.4):
- MatrixKit/Core (= 0.14.1)
- MatrixSDK (= 0.18.1)
- MatrixKit/Core (0.14.1):
- Down (~> 0.9.3)
- DTCoreText (~> 1.6.23)
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.17.6)
- MatrixSDK (0.17.6):
- MatrixSDK/Core (= 0.17.6)
- MatrixSDK/Core (0.17.6):
- MatrixSDK (= 0.18.1)
- MatrixSDK (0.18.1):
- MatrixSDK/Core (= 0.18.1)
- MatrixSDK/Core (0.18.1):
- AFNetworking (~> 4.0.0)
- GZIP (~> 1.3.0)
- libbase58 (~> 0.1.4)
- OLMKit (~> 3.1.0)
- Realm (= 10.1.4)
- MatrixSDK/JingleCallStack (0.17.6):
- JitsiMeetSDK (= 2.11.0)
- MatrixSDK/JingleCallStack (0.18.1):
- JitsiMeetSDK (= 3.1.0)
- MatrixSDK/Core
- OLMKit (3.1.0):
- OLMKit/olmc (= 3.1.0)
@ -127,8 +115,7 @@ DEPENDENCIES:
- KeychainAccess (~> 4.2.1)
- KTCenterFlowLayout (~> 1.3.1)
- MatomoTracker (~> 7.2.2)
- MatrixKit (= 0.13.4)
- MatrixKit/AppExtension (= 0.13.4)
- MatrixKit (= 0.14.1)
- MatrixSDK
- MatrixSDK/JingleCallStack
- OLMKit
@ -190,7 +177,7 @@ SPEC CHECKSUMS:
GBDeviceInfo: f29249891446a392e64b9c9bbef9554aad2a6beb
GZIP: 416858efbe66b41b206895ac6dfd5493200d95b3
HPGrowingTextView: 88a716d97fb853bcb08a4a08e4727da17efc9b19
JitsiMeetSDK: ddc915b751b0166aa4fdfee938bd60cc87aff9f3
JitsiMeetSDK: 330e694130d6e67126e5a031b9ab1807f446ab3b
KeychainAccess: 9b07f665298d13c3a85881bd3171f6f49b8151c1
KituraContracts: e845e60dc8627ad0a76fa55ef20a45451d8f830b
KTCenterFlowLayout: 6e02b50ab2bd865025ae82fe266ed13b6d9eaf97
@ -199,8 +186,8 @@ SPEC CHECKSUMS:
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MatomoTracker: a59ec4da0f580be57bdc6baa708a71a86532a832
MatrixKit: 8dec5df9b3bb6621b8411ec37f93a0e3abe01db8
MatrixSDK: 43d329b4070301f714808f02872ec1747c2f9b7d
MatrixKit: 267c3235abae2e3878e41a57bda32ec4899118e6
MatrixSDK: 7d5faf810eab02a189df64aef28583c8bed81f5c
OLMKit: 4ee0159d63feeb86d836fdcfefe418e163511639
ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d
Realm: 80f4fb2971ccb9adc27a47d0955ae8e533a7030b
@ -212,6 +199,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
PODFILE CHECKSUM: 198d9f0614bcf132a6aa31bdf8c1beb0360fdea7
PODFILE CHECKSUM: f8d8c8ff72ddc828b223c66425ec17184f06c9cc
COCOAPODS: 1.10.1

View file

@ -26,11 +26,19 @@ You can try last beta build by accessing our [TestFlight Public Link](https://te
## Build instructions
To build the application please refer to the [installation guide](./INSTALL.md).
If you have already everything installed, opening the project workspace in Xcode should be as easy as:
```
$ xcodegen # Create the xcodeproj with all project source files
$ pod install # Create the xcworkspace with all project dependencies
$ open Riot.xcworkspace # Open Xcode
```
Else, you can visit our [installation guide](./INSTALL.md). This guide also offers more details and advanced usage like using [MatrixSDK](https://github.com/matrix-org/matrix-ios-sdk) and [MatrixKit](https://github.com/matrix-org/matrix-ios-kit) in their development versions.
## Contributing
If you want to contribute to Element iOS code or translations please refer to the [contribution guide](CONTRIBUTING.md).
If you want to contribute to Element iOS code or translations, go to the [contribution guide](CONTRIBUTING.md).
## Support
@ -42,7 +50,7 @@ If after your research you still have a question, ask at [#element-ios:matrix.or
Copyright (c) 2014-2017 OpenMarket Ltd
Copyright (c) 2017 Vector Creations Ltd
Copyright (c) 2017-2020 New Vector Ltd
Copyright (c) 2017-2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the [LICENSE](LICENSE) file, or at:

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0940"
LastUpgradeVersion = "1200"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
@ -14,39 +14,27 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9A11B78D8F000B1FBBF"
BlueprintIdentifier = "57B13CC4586E9D43ED24DE1E"
BuildableName = "Riot.app"
BlueprintName = "Riot"
ReferencedContainer = "container:Riot.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9BD1B78D8F000B1FBBF"
BuildableName = "RiotTests.xctest"
BlueprintName = "RiotTests"
ReferencedContainer = "container:Riot.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
onlyGenerateCoverageForSpecifiedTargets = "NO"
shouldUseLaunchSchemeArgsEnv = "YES"
disableMainThreadChecker = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9BD1B78D8F000B1FBBF"
BlueprintIdentifier = "287703423C2C302524E92C03"
BuildableName = "RiotTests.xctest"
BlueprintName = "RiotTests"
ReferencedContainer = "container:Riot.xcodeproj">
@ -56,14 +44,14 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9A11B78D8F000B1FBBF"
BlueprintIdentifier = "57B13CC4586E9D43ED24DE1E"
BuildableName = "Riot.app"
BlueprintName = "Riot"
ReferencedContainer = "container:Riot.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
<CommandLineArguments>
</CommandLineArguments>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@ -74,19 +62,20 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
allowLocationSimulation = "YES"
disableMainThreadChecker = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9A11B78D8F000B1FBBF"
BlueprintIdentifier = "57B13CC4586E9D43ED24DE1E"
BuildableName = "Riot.app"
BlueprintName = "Riot"
ReferencedContainer = "container:Riot.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
<CommandLineArguments>
</CommandLineArguments>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
@ -98,12 +87,14 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F094A9A11B78D8F000B1FBBF"
BlueprintIdentifier = "57B13CC4586E9D43ED24DE1E"
BuildableName = "Riot.app"
BlueprintName = "Riot"
ReferencedContainer = "container:Riot.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<CommandLineArguments>
</CommandLineArguments>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "social_login_button_gitlab.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "social_login_button_gitlab@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "social_login_button_gitlab@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,6 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View file

@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "call_audio_mute_on_icon.png",
"filename" : "Microphone.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "call_audio_mute_on_icon@2x.png",
"filename" : "Microphone@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "call_audio_mute_on_icon@3x.png",
"filename" : "Microphone@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@ -21,6 +21,6 @@
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "call_audio_mute_off_icon.png",
"filename" : "Microphone Off.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "call_audio_mute_off_icon@2x.png",
"filename" : "Microphone Off@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "call_audio_mute_off_icon@3x.png",
"filename" : "Microphone Off@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@ -21,6 +21,6 @@
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Vector.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Vector@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Vector@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Union.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Union@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Union@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

View file

@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "call_hangup_big.png",
"filename" : "End Call.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "call_hangup_big@2x.png",
"filename" : "End Call@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "call_hangup_big@3x.png",
"filename" : "End Call@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@ -21,6 +21,6 @@
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "iOS (24).png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "iOS (24)@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "iOS (24)@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

View file

@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "Paused.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Paused@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Paused@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Vector.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Vector@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Vector@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 B

View file

@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "picture_in_picture_alt-24px 1.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "picture_in_picture_alt-24px 1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "picture_in_picture_alt-24px 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "24.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "24@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "24@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View file

@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "call_video_mute_on_icon.png",
"filename" : "Video.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "call_video_mute_on_icon@2x.png",
"filename" : "Video@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "call_video_mute_on_icon@3x.png",
"filename" : "Video@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@ -21,6 +21,6 @@
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 725 B

View file

@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "call_video_mute_off_icon.png",
"filename" : "Video Off.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "call_video_mute_off_icon@2x.png",
"filename" : "Video Off@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "call_video_mute_off_icon@3x.png",
"filename" : "Video Off@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
@ -21,6 +21,6 @@
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
"template-rendering-intent" : "original"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

View file

@ -19,5 +19,8 @@
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

View file

@ -1,6 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View file

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "share_action_button.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "share_action_button@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "share_action_button@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

View file

@ -76,7 +76,7 @@
"room_creation_make_public_prompt_title" = "Diesen Chat öffentlich machen?";
"room_creation_keep_private" = "Privat lassen";
"room_creation_make_private" = "Mache privat";
"room_creation_wait_for_creation" = "Ein wurde wurde bereits erstellt. Bitte warten.";
"room_creation_wait_for_creation" = "Es wird gerade schon ein Raum erstellt. Bitte warten.";
// Room recents
"room_recents_directory_section" = "RAUM VERZEICHNIS";
"room_recents_directory_section_network" = "Netzwerk";
@ -88,7 +88,7 @@
"room_recents_invites_section" = "EINLADUNGEN";
"room_recents_start_chat_with" = "Starte Chat";
"room_recents_create_empty_room" = "Erstelle Raum";
"room_recents_join_room" = "Trete Raum bei";
"room_recents_join_room" = "Tritt Raum bei";
"room_recents_join_room_title" = "Trete einem Raum bei";
// People tab
"people_invites_section" = "EINLADUNGEN";
@ -125,7 +125,7 @@
"room_participants_remove_prompt_msg" = "Bist du sicher, dass du %@ aus dem Chat entfernen möchtest?";
"room_participants_invite_prompt_title" = "Bestätigung";
"room_participants_invite_prompt_msg" = "Bist du sicher, dass du %@ in diesen Chat einladen möchtest?";
"room_participants_filter_room_members" = "Filtere Raum-Mitglieder";
"room_participants_filter_room_members" = "Mitglieder filtern";
"room_participants_invite_malformed_id_title" = "Fehler beim Einladen";
"room_participants_invited_section" = "EINGELADEN";
"room_participants_online" = "Online";
@ -154,7 +154,7 @@
"room_two_users_are_typing" = "%@ & %@ tippen…";
"room_many_users_are_typing" = "%@, %@ & andere tippen…";
"room_message_placeholder" = "Nachricht senden (unverschlüsselt)…";
"encrypted_room_message_placeholder" = "Verschlüsselte Nachricht senden…";
"encrypted_room_message_placeholder" = "Verschlüsselte Nachricht…";
"room_message_short_placeholder" = "Sende eine Nachricht…";
"room_offline_notification" = "Verbindung zum Server wurde unterbrochen.";
"room_unsent_messages_notification" = "Nachrichten wurden nicht gesendet. Jetzt %@ oder %@?";
@ -255,9 +255,9 @@
"room_details_access_section_anyone" = "Jeder, der den Raum-Link kennt - auch Gäste";
"room_details_history_section" = "Wer kann die Historie lesen?";
"room_details_history_section_anyone" = "Jeder";
"room_details_history_section_members_only" = "Nur Teilnehmer (ab dem Selektieren dieser Option)";
"room_details_history_section_members_only_since_invited" = "Nur Teilnehmer (seitdem sie eingeladen wurden)";
"room_details_history_section_members_only_since_joined" = "Nur Teilnehmer (seitdem sie beigetreten sind)";
"room_details_history_section_members_only" = "Nur Mitglieder (seit diese Option ausgewählt ist)";
"room_details_history_section_members_only_since_invited" = "Nur Mitglieder (ab ihrer Einladung)";
"room_details_history_section_members_only_since_joined" = "Nur Mitglieder (Ab ihrem Beitritt)";
"room_details_history_section_prompt_title" = "Datenschutz-Warnung";
"room_details_addresses_section" = "Adressen";
"room_details_no_local_addresses" = "Dieser Raum hat keine lokalen Adressen";
@ -307,7 +307,7 @@
"room_warning_about_encryption" = "Ende-zu-Ende Verschlüsselung ist in Beta und ist evtl. nicht zuverlässig.\n\nMan sollte noch nicht darauf vertrauen, dass die Daten sicher sind.\n\nGeräte werden Nachrichten von vor dem Beitritt des Raumes nicht entschlüsseln können.\n\nVerschlüsselte Nachrichten sind nicht lesbar auf Clients, die Verschlüsselung noch nicht implementiert haben.";
"unknown_devices_alert" = "Dieser Raum enthält unbekannte Sitzungen, die nicht verifiziert wurden.\nDas bedeutet, es gibt keine Garantie, dass sie dem/r angegebenen Benutzer!n gehören.\nWir empfehlen eine Überprüfung für jedes Gerät, bevor du weitermachst. Du kannst die Nachricht auch ohne Verifizierung erneut senden.";
"room_preview_unlinked_email_warning" = "Diese Einladung wurde an %@ gesendet, welche diesem Konto nicht zugeordnet ist. Möglicherweise möchtest du dich mit einem anderen Konto anmelden oder diese E-Mail zu deinem Konto hinzufügen.";
"room_preview_try_join_an_unknown_room" = "Du versuchst auf %@ zuzugreifen. Möchtest du dem Raum beitreten um teilzunehmen?";
"room_preview_try_join_an_unknown_room" = "Du versuchst auf %@ zuzugreifen. Möchtest du dem Raum beitreten um teilzunehmen?";
"settings_config_identity_server" = "Identitätsserver ist %@";
"settings_labs" = "Labor";
"settings_sign_out_e2e_warn" = "Du wirst die Ende-zu-Ende Schlüssel verlieren. Du kannst dann auf diesem Gerät in verschlüsselten Räumen keine alten Nachrichten mehr lesen.";
@ -390,9 +390,9 @@
"e2e_enabling_on_app_update" = "Element unterstützt nun Ende-zu-Ende Verschlüsselung. Um sie zu aktivieren musst du dich erneut anmelden.\n\nDu kannst sie nun aktivieren oder später in den Einstellungen.";
"e2e_need_log_in_again" = "Du musst dich erneut anmelden um Ende-zu-Ende Schlüssel für diese Sitzung zu erstellen und zum Server zu senden.\nDies ist nur einmal notwendig.";
// Bug report
"bug_report_title" = "Bug Report";
"bug_report_title" = "Fehlermeldung";
"bug_report_description" = "Beschreibe den Fehler. Was hast du gemacht? Was hast du erwartet? Was ist tatsächlich passiert?";
"bug_crash_report_title" = "Crash Report";
"bug_crash_report_title" = "Absturzmeldung";
"bug_crash_report_description" = "Bitte beschreibe was du vor dem Absturz gemacht hast:";
"bug_report_logs_description" = "Um Probleme analysieren zu können werden Log-Daten dieses Clients mit dem Bug Report gesendet. Wenn du nur den Text oben senden willst, bitte abwählen:";
"bug_report_send_logs" = "Sende Log-Daten";
@ -468,7 +468,7 @@
"e2e_room_key_request_start_verification" = "Starte Verifikation…";
"e2e_room_key_request_share_without_verifying" = "Teile ohne zu verifizieren";
"e2e_room_key_request_ignore_request" = "Ignoriere Anfrage";
"title_groups" = "Communities";
"title_groups" = "Communitys";
// Groups tab
"group_invite_section" = "EINLADUNGEN";
"group_section" = "COMMUNITIES";
@ -534,7 +534,7 @@
// Re-request confirmation dialog
"rerequest_keys_alert_title" = "Anfrage gesendet";
"rerequest_keys_alert_message" = "Bitte öffne Element auf einem anderen Gerät, das die Nachricht entschlüsseln kann, damit es die Schlüssel an diese Sitzung senden kann.";
"room_message_reply_to_placeholder" = "Sende eine unverschlüsselte Antwort…";
"room_message_reply_to_placeholder" = "Antwort senden (unverschlüsselt)…";
"encrypted_room_message_reply_to_placeholder" = "Sende eine verschlüsselte Antwort…";
"room_message_reply_to_short_placeholder" = "Sende eine Antwort…";
"room_replacement_information" = "Dieser Raum wurde ersetzt und ist nicht länger aktiv.";
@ -626,7 +626,7 @@
"key_backup_recover_from_recovery_key_recovery_key_placeholder" = "Gebe Wiederherstellungsschlüssel ein";
"key_backup_recover_from_recovery_key_recover_action" = "Historie entschlüsseln";
"key_backup_recover_from_recovery_key_lost_recovery_key_action" = "Hast du deinen Wiederherstellungsschlüssel verloren? Du kannst in den Einstellungen einen neuen einrichten.";
"key_backup_recover_success_info" = "Sicherung wiederhergestellt";
"key_backup_recover_success_info" = "Sicherung wiederhergestellt!";
"key_backup_recover_done_action" = "Erledigt";
"key_backup_setup_banner_title" = "Verliere niemals verschlüsselte Nachrichten";
"key_backup_setup_banner_subtitle" = "Beginne Schlüsselsicherung zu nutzen";
@ -654,7 +654,7 @@
// String for App Store
"store_short_description" = "Sicherer, dezentralisierter Chat/VoIP";
"store_full_description" = "Element ist die neue Art von Messenger- und Kooperations-App, die:\n\n1. dir die Kontrolle gibt deine Privatsphäre zu schützen,\n2. dir die Kommunikation mit anderen Personen im Matrix-Netzwerk und darüber hinaus Integration in Apps wie Slack ermöglicht,\n3. dich vor Werbung, Datenerfassung, Hintertüren und ummauerten Gärten schützt,\n4. dich durch End-to-End-Verschlüsselung absichert und mit Cross-Signing andere zu überprüfen.\n\nElement unterscheidet sich grundlegend von anderen Messaging- und Kooperations-Diensten, da es dezentralisiert und open-source ist.\n\nMit Element kannst du dich selbst hosten oder einen Host auswählen, sodass du Datenschutz, Eigentum und Kontrolle über deine Daten und Konversationen hast. Du erhältst Zugriff auf ein offenes Netzwerk und bist nicht auf Element-Nutzer beschränkt. Und es ist sehr sicher.\n\nElement ist in der Lage, all dies zu tun, da es mit Matrix arbeitet - dem Standard für offene, dezentrale Kommunikation.\n\nMit Element hast du die Kontrolle, indem du auswählen kannst, wer deine Konversationen hostet. In der Element-App kannst du verschiedene Hosts auswählen:\n\n1. Hole dir ein kostenloses Konto auf dem öffentlichen Server von matrix.org\n2. Hoste dein Konto selbst, indem du einen Server auf deiner eigenen Hardware ausführst\n3. Melde dich für ein Konto auf einem benutzerdefinierten Server an, indem du einfach die Hosting-Plattform von Element Matrix Services abonnierst\n\nWarum Element?\n\nBESITZE DEINE DATEN: Du entscheidest, wo deine Daten und Nachrichten aufbewahrt werden sollen. Du besitzt und kontrollierst sie, nicht irgendeine MEGACORP, die deine Daten verwertet oder Dritten Zugriff gewährt.\n\nOPEN MESSAGING UND ZUSAMMENARBEIT: Du kannst mit allen anderen Mitgliedern des Matrix-Netzwerks chatten, unabhängig davon, ob sie Element oder eine andere Matrix-App verwenden, sogar selbst wenn sie ein anderes Messaging-System wie Slack, IRC oder XMPP verwenden.\n\nSUPERSICHER: Echte End-to-End-Verschlüsselung (nur diejenigen in der Konversation können Nachrichten entschlüsseln) und Cross-Signing, um die Geräte der Konversationsteilnehmer zu überprüfen.\n\nVOLLSTÄNDIGE KOMMUNIKATION: Messaging, Sprach- und Videoanrufe, Dateifreigabe, Bildschirmfreigabe und eine ganze Reihe von Integrationen, Bots und Widgets. Baue Räume, Gemeinschaften, bleib in Kontakt und erledige Dinge.\n\nÜBERALL, WO Du BIST: Bleibe mit dem vollständig synchronisierten Nachrichtenverlauf auf all deinen Geräten und im Internet (unter https://element.io/app) unabhängig voneinander in Kontakt.";
"auth_login_single_sign_on" = "Anmelden mit Single Sign-On";
"auth_login_single_sign_on" = "Anmelden";
"auth_autodiscover_invalid_response" = "Ungültige Antwort beim Entdecken des Heimservers";
"room_message_unable_open_link_error_message" = "Konnte Link nicht öffnen.";
"room_event_action_reply" = "Antworten";
@ -1065,8 +1065,8 @@
"key_verification_self_verify_unverified_sessions_alert_title" = "Überprüfe, wo du angemeldet bist";
"key_verification_self_verify_unverified_sessions_alert_message" = "Verifiziere alle deine Sitzungen, um sicher zu stellen, dass dein Konto & deine Nachrichten sicher sind.";
"key_verification_self_verify_unverified_sessions_alert_validate_action" = "Überprüfung";
"device_verification_self_verify_wait_new_sign_in_title" = "Verifiziere diese Sitzung";
"device_verification_self_verify_wait_additional_information" = "oder einen anderen Matrix Client der Cross-signing fähig ist";
"device_verification_self_verify_wait_new_sign_in_title" = "Diese Anmeldung verifizieren";
"device_verification_self_verify_wait_additional_information" = "Dies funktioniert mit Element oder einem anderen Matrix Client, der Cross-Signing unterstützt.";
"device_verification_self_verify_wait_recover_secrets_without_passphrase" = "Wiederherstellungsschlüssel verwenden";
"device_verification_self_verify_wait_recover_secrets_with_passphrase" = "Nutze eine Wiederherstellungsmethode";
"device_verification_self_verify_wait_recover_secrets_additional_information" = "Falls du keinen Zugang zu einer existierenden Sitzung hast";
@ -1107,7 +1107,7 @@
"key_verification_scan_confirmation_scanned_device_information" = "Zeigt das andere Gerät das gleiche Schild an?";
"user_verification_session_details_verify_action_current_user_manually" = "Überprüfe manuell mit einem Text";
"secrets_recovery_with_passphrase_title" = "Wiederherstellungs-Passphrase";
"secrets_recovery_with_passphrase_information_default" = "Gib deine Wiederherstellungspassphrase ein, um auf auf deine Nachrichtenhistorie und deine Cross-Signing-Identität zuzugreifen. Die Cross-Signing-Identität ermöglicht dir andere Sitzungen zu verifizieren.";
"secrets_recovery_with_passphrase_information_default" = "Gib deine Wiederherstellungs-Passphrase ein, um auf deine verschlüsselten Nachrichten und deine Cross-Signing-Identität zuzugreifen. Mit der Cross-Signing-Identität kannst du andere Sitzungen verifizieren.";
"secrets_recovery_with_passphrase_information_verify_device" = "Nutze deinen Wiederherstellungsphrase um dieses Gerät zu verifizieren.";
"secrets_recovery_with_passphrase_passphrase_placeholder" = "Gib die Wiederherstellungspassphrase ein";
"secrets_recovery_with_passphrase_recover_action" = "Nutze Passphrase";
@ -1117,7 +1117,7 @@
"secrets_recovery_with_passphrase_invalid_passphrase_title" = "Auf sicheren Speicher kann nicht zugegriffen werden";
"secrets_recovery_with_passphrase_invalid_passphrase_message" = "Bitte stell sicher, dass du die korrekte Wiederherstellungspassphrase eingegeben hast.";
"secrets_recovery_with_key_title" = "Wiederherstellungsschlüssel";
"secrets_recovery_with_key_information_default" = "Gib deine Wiederherstellungspassphrase ein, um auf auf deine Nachrichtenhistorie und deine Cross-Signing-Identität zuzugreifen. Die Cross-Signing-Identität ermöglicht dir andere Sitzungen zu verifizieren.";
"secrets_recovery_with_key_information_default" = "Gib deinen Wiederherstellungs-Schlüssel ein, um auf deine verschlüsselten Nachrichten und deine Cross-Signing-Identität zuzugreifen. Mit der Cross-Signing-Identität kannst du andere Sitzungen verifizieren.";
"secrets_recovery_with_key_information_verify_device" = "Nutze deinen Wiederherstellungsschlüssel um dieses Gerät zu verifizieren.";
"secrets_recovery_with_key_recovery_key_placeholder" = "Wiederherstellungsschlüssel eingeben";
"secrets_recovery_with_key_recover_action" = "Schlüssel benutzen";
@ -1168,7 +1168,7 @@
"pin_protection_settings_enabled_forced" = "PIN aktiviert";
"pin_protection_settings_enable_pin" = "PIN aktivieren";
"biometrics_mode_touch_id" = "Touch-ID";
"biometrics_mode_face_id" = "Gesicht-ID";
"biometrics_mode_face_id" = "Face-ID";
"biometrics_settings_enable_x" = "%@ aktivieren";
"biometrics_setup_title_x" = "%@ aktivieren";
"biometrics_setup_enable_button_title_x" = "%@ aktivieren";
@ -1242,3 +1242,36 @@
"secrets_reset_warning_message" = "Du wirst ohne Nachrichtenverlauf, Nachrichten, vertraute Geräte oder vertraute Benutzer neu-starten.";
"secrets_reset_warning_title" = "Falls du alles zurücksetzt";
"secrets_reset_information" = "Tu dies nur, wenn du kein anderes Gerät hast, mit dem du dieses Gerät überprüfen kannst.";
// MARK: - Home
"home_empty_view_title" = "Willkommen bei %@,\n%@";
"secrets_setup_recovery_passphrase_summary_information" = "Erinnere dich an deine Sicherheitsphrase. Sie kann zum entschlüsseln der Nachrichten & Daten verwendet werden.";
"secrets_setup_recovery_passphrase_summary_title" = "Sichere deine Sicherheitsphrase";
"rooms_empty_view_title" = "Räume";
"people_empty_view_information" = "Sicher kommunizieren mit allen. Drücke + um Leute hinzuzufügen.";
"people_empty_view_title" = "Leute";
// MARK: - Favourites
"favourites_empty_view_title" = "Lieblingsräume und -nutzer";
"favourites_empty_view_information" = "Um einen Lieblingschat hinzuzufügen, halte diesen gedrückt und wähle den Stern aus. Du findest deine Lieblingschats gesammelt hier.";
"home_empty_view_information" = "Die sichere Chat-App für Teams, Freunde und Organisationen. Tippe unten auf das +, um Leute und Räume hinzuzufügen.";
"rooms_empty_view_information" = "Noch keine Chat-Räume vorhanden. Tippe auf das +, um einem Raum beizutreten oder einen neuen zu erstellen.";
"invite_friends_share_text" = "Hey! Sprich mit mir auf %@: %@";
// MARK: - Invite friends
"invite_friends_action" = "Freunde zu %@ einladen";
"pin_protection_settings_change_pin" = "PIN ändern";
"pin_protection_confirm_pin_to_change" = "PIN bestätigen um PIN zu ändern";
"bug_report_background_mode" = "Im Hintergrund fortfahren";
"social_login_button_title_sign_up" = "Registrieren mit %@";
"social_login_button_title_sign_in" = "Anmelden mit %@";
"social_login_button_title_continue" = "Weiter mit %@";
"social_login_list_title_sign_up" = "Oder Registrieren mit";
"social_login_list_title_sign_in" = "Oder Anmelden mit";
// Social login
"social_login_list_title_continue" = "Weiter mit";

View file

@ -64,6 +64,14 @@
"more" = "More";
"less" = "Less";
// Call Bar
"callbar_only_single_active" = "Active call (%@)";
"callbar_active_and_single_paused" = "1 active call (%@) · 1 paused call";
"callbar_active_and_multiple_paused" = "1 active call (%@) · %@ paused calls";
"callbar_only_single_paused" = "Paused call";
"callbar_only_multiple_paused" = "%@ paused calls";
"callbar_return" = "Return";
// Accessibility
"accessibility_checkbox_label" = "checkbox";
@ -142,8 +150,8 @@
// Social login
"social_login_list_title_continue" = "Continue with";
"social_login_list_title_sign_in" = "Or login with";
"social_login_list_title_sign_up" = "Or register with";
"social_login_list_title_sign_in" = "Or";
"social_login_list_title_sign_up" = "Or";
"social_login_button_title_continue" = "Continue with %@";
"social_login_button_title_sign_in" = "Sign In with %@";
@ -378,6 +386,8 @@ Tap the + to start adding people.";
"room_accessibility_upload" = "Upload";
"room_accessibility_call" = "Call";
"room_accessibility_hangup" = "Hang up";
"room_place_voice_call" = "Voice call";
"room_open_dialpad" = "Dial pad";
"media_type_accessibility_image" = "Image";
"media_type_accessibility_audio" = "Audio";
@ -528,7 +538,7 @@ Tap the + to start adding people.";
"settings_add_3pid_password_title_email" = "Add email adress";
"settings_add_3pid_password_title_msidsn" = "Add phone number";
"settings_add_3pid_password_message" = "To continue, please enter your password";
"settings_add_3pid_invalid_password_message" = "Invalid password";
"settings_add_3pid_invalid_password_message" = "Invalid credentials";
"settings_crypto_device_name" = "Session name: ";
"settings_crypto_device_id" = "\nSession ID: ";
@ -799,6 +809,12 @@ Tap the + to start adding people.";
"event_formatter_rerequest_keys_part1_link" = "Re-request encryption keys";
"event_formatter_rerequest_keys_part2" = " from your other sessions.";
"event_formatter_message_edited_mention" = "(edited)";
"event_formatter_call_voice" = "Voice call";
"event_formatter_call_video" = "Video call";
"event_formatter_call_has_ended" = "This call has ended";
"event_formatter_call_you_currently_in" = "You're currently in this call";
"event_formatter_call_you_declined" = "You declined this call";
"event_formatter_call_back" = "Call back";
// Events formatter with you
"event_formatter_widget_added_by_you" = "You added the widget: %@";
@ -836,6 +852,8 @@ Tap the + to start adding people.";
"call_no_stun_server_error_message_2" ="Alternatively, you can try to use the public server at %@, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings";
"call_no_stun_server_error_use_fallback_button" = "Try using %@";
"call_actions_unhold" = "Resume";
// No VoIP support
"no_voip_title" = "Incoming call";
"no_voip" = "%@ is calling you but %@ does not support calls yet.\nYou can ignore this notification and answer the call from another device or you can reject it.";
@ -864,6 +882,7 @@ Tap the + to start adding people.";
"bug_report_progress_zipping" = "Collecting logs";
"bug_report_progress_uploading" = "Uploading report";
"bug_report_send" = "Send";
"bug_report_background_mode" = "Continue in background";
// Widget
"widget_no_integrations_server_configured" = "No integrations server configured";
@ -1148,7 +1167,7 @@ Tap the + to start adding people.";
"device_verification_self_verify_wait_title" = "Complete security";
"device_verification_self_verify_wait_new_sign_in_title" = "Verify this login";
"device_verification_self_verify_wait_information" = "Verify this session from one of your other sessions, granting it access to encrypted messages.\n\nUse the latest Element on your other devices:";
"device_verification_self_verify_wait_additional_information" = "This works with Element and other cross-signing capable Matrix cients.";
"device_verification_self_verify_wait_additional_information" = "This works with Element and other cross-signing capable Matrix clients.";
"device_verification_self_verify_wait_recover_secrets_without_passphrase" = "Use Recovery Key";
"device_verification_self_verify_wait_recover_secrets_with_passphrase" = "Use Recovery Passphrase or Key";
"device_verification_self_verify_wait_recover_secrets_additional_information" = "If you can't access an existing session";
@ -1536,6 +1555,18 @@ Tap the + to start adding people.";
"room_info_list_several_members" = "%@ members";
"room_info_list_section_other" = "Other";
// MARK: - Dial Pad
"dialpad_title" = "Dial pad";
// MARK: - Call Transfer
"call_transfer_title" = "Transfer";
"call_transfer_users" = "Users";
"call_transfer_dialpad" = "Dial pad";
"call_transfer_contacts_recent" = "Recent";
"call_transfer_contacts_all" = "All";
"call_transfer_error_title" = "Error";
"call_transfer_error_message" = "Call transfer failed";
// MARK: - Home
"home_empty_view_title" = "Welcome to %@,\n%@";
@ -1545,3 +1576,8 @@ Tap the + to start adding people.";
"favourites_empty_view_title" = "Favourite rooms and people";
"favourites_empty_view_information" = "You can favourite a few ways - the quickest is just to press and hold. Tap the star and theyll automatically appear here for safe keeping.";
// MARK: - Invite friends
"invite_friends_action" = "Invite friends to %@";
"invite_friends_share_text" = "Hey, talk to me on %@: %@";

View file

@ -110,8 +110,8 @@
"room_participants_action_security_status_verified" = "Verifitseeritud";
"room_participants_action_security_status_verify" = "Verifitseeri";
"room_participants_action_security_status_warning" = "Hoiatus";
"room_participants_action_security_status_loading" = "Laeme…";
"room_participants_security_loading" = "Laeme…";
"room_participants_action_security_status_loading" = "Laadime…";
"room_participants_security_loading" = "Laadime…";
"room_participants_security_information_room_not_encrypted" = "See jututuba ei ole läbivalt krüptitud.";
"room_participants_security_information_room_encrypted" = "Sõnumid siin jututoas kasutavad läbivat krüptimist.\n\nSinu sõnumid on turvatud ning ainult sinul ja saaja(te)l on unikaalsed võtmed selliste sõnumite lugemiseks.";
// Chat
@ -215,7 +215,7 @@
"client_web_name" = "Element Web";
"client_ios_name" = "Element iOS";
"client_android_name" = "Element Android";
"auth_login_single_sign_on" = "Logi sisse ühekordse sisselogimise abil";
"auth_login_single_sign_on" = "Logi sisse";
// Room recents
"room_recents_directory_section" = "JUTUTUBADE LOEND";
"room_recents_directory_section_network" = "Võrk";
@ -289,7 +289,7 @@
"room_message_edits_history_title" = "Sõnumite muutmised";
"room_accessibility_search" = "Otsing";
"room_accessibility_integrations" = "Lõiminguid";
"room_accessibility_upload" = "Lae üles";
"room_accessibility_upload" = "Laadi üles";
"room_accessibility_call" = "Helista";
"room_accessibility_hangup" = "Lõpeta kõne";
"media_type_accessibility_image" = "Pilt";
@ -543,7 +543,7 @@
"settings_crypto_export" = "Ekspordi võtmed";
"settings_crypto_blacklist_unverified_devices" = "Kasuta krüptimist vaid verifitseeritud sessioonides";
"settings_deactivate_my_account" = "Eemalda minu konto kasutusest";
"security_settings_crypto_sessions_loading" = "Laen sessioone…";
"security_settings_crypto_sessions_loading" = "Laadin sessioone…";
"security_settings_user_password_description" = "Tuvasta oma isik sisestades salasõna";
// Manage session
"manage_session_title" = "Halda sessiooni";
@ -837,7 +837,7 @@
"key_verification_bootstrap_not_setup_message" = "Sa pead esmalt kasutusele võtma risttunnustamise.";
"key_verification_tile_request_incoming_title" = "Verifitseerimispäring";
"key_verification_tile_request_outgoing_title" = "Verifitseerimispäring on saadetud";
"key_verification_tile_request_status_data_loading" = "Laeme andmeid…";
"key_verification_tile_request_status_data_loading" = "Laadime andmeid…";
"key_verification_tile_request_status_waiting" = "Ootan…";
"key_verification_tile_request_status_expired" = "Aegunud";
"key_verification_tile_request_status_cancelled_by_me" = "Sa tühistasid";
@ -1057,7 +1057,7 @@
"secrets_recovery_with_key_invalid_recovery_key_message" = "Palun kontrolli, et sa sisestasid õige taastevõtme.";
"secrets_setup_recovery_key_title" = "Salvesta turvavõti";
"secrets_setup_recovery_key_information" = "Salvesta oma taastevõti turvalisse kohta. Seda saab kasutada sinu krüptitud sõnumite ja andmete lugemiseks.";
"secrets_setup_recovery_key_loading" = "Laeme…";
"secrets_setup_recovery_key_loading" = "Laadime…";
"secrets_setup_recovery_key_export_action" = "Salvesta";
"secrets_setup_recovery_key_done_action" = "Valmis";
"secrets_setup_recovery_key_storage_alert_title" = "Hoia seda turvaliselt";
@ -1119,7 +1119,7 @@
"bug_report_send_logs" = "Saada logikirjed";
"bug_report_send_screenshot" = "Saada ekraanipilt";
"bug_report_progress_zipping" = "Kogun logisid";
"bug_report_progress_uploading" = "Laen üles veakirjeldust";
"bug_report_progress_uploading" = "Laadin üles veakirjeldust";
"bug_report_send" = "Saada";
// Widget
"widget_no_integrations_server_configured" = "Vidinate haldusserver ei ole seadistatud";
@ -1208,4 +1208,30 @@
// MARK: - Home
"home_empty_view_title" = "Tere tulemast kasutama suhtlusrakendust Element,\n%@";
"home_empty_view_title" = "Tere tulemast suhtlusrakendusse %@,\n%@";
"favourites_empty_view_information" = "Lemmikuid saad lisada mitmel viisil - neist kõgi lihtsam on see, et vajutad nime ja hoiad seda mõne hetke. Vali siis tähega ikoon ja ongi lisatud.";
// MARK: - Favourites
"favourites_empty_view_title" = "Lemmikjututoad ja -inimesed";
"rooms_empty_view_information" = "Jututoad sobivad igasuguste rühmavestluste jaoks, olgu need siis avalikud või privaatsed. Olemasolevate jututubade otsimiseks või uute lisamiseks klõpsi + ikooni.";
"rooms_empty_view_title" = "Jututoad";
"people_empty_view_information" = "Suhltle turvaliselt kellega soovid. Inimeste lisamiseks klõpsi + ikooni.";
"people_empty_view_title" = "Inimesed";
"invite_friends_share_text" = "Suhtle minuga %@ vahendusel: %@";
// MARK: - Invite friends
"invite_friends_action" = "Kutsu sõpru kasutama rakendust %@";
"pin_protection_settings_change_pin" = "Muuda PIN-koodi";
"pin_protection_confirm_pin_to_change" = "PIN-koodi muutmiseks korda PIN-koodi";
"bug_report_background_mode" = "Jätka taustal";
"social_login_button_title_sign_up" = "Loo konto kasutades %@ teenust";
"social_login_button_title_sign_in" = "Logi sisse kasutades %@ teenust";
"social_login_button_title_continue" = "Jätka kasutades %@ teenust";
"social_login_list_title_sign_up" = "Või registreeru kasutajaks kasutades";
"social_login_list_title_sign_in" = "Või logi sisse kasutades";
// Social login
"social_login_list_title_continue" = "Jätka kasutades";

View file

@ -49,3 +49,5 @@
"major_update_title" = "Riot on nyt Element";
"major_update_learn_more_action" = "Lue lisää";
"major_update_done_action" = "Selvä";
"room_member_power_level_short_moderator" = "Valvoja";
"room_member_power_level_moderator_in" = "Valvoja %@:ssä";

View file

@ -668,7 +668,7 @@
"key_backup_setup_intro_manual_export_action" = "Exporter les clés manuellement";
// String for App Store
"store_short_description" = "Discussions et appels sécurisés et décentralisés";
"store_full_description" = "Communiquez, à votre façon.\n\nUne application de discussion, que vous contrôlez et entièrement flexible. Element vous laisse communiquer comme vous le souhaitez. Conçu pour [matrix], le standard pour les communications libres et décentralisées.\n\nCréez un compte matrix.org gratuit, gérez votre propre serveur sur https://ems.element.io ou utilisez un autre serveur Matrix.\n\nPourquoi choisir Element ?\n\n• COMMUNICATION COMPLÈTE : Construisez des salons autours de vos équipes, de vos amis, de votre communauté comme vous le souhaitez ! Discutez, partagez des fichiers, ajoutez des widgets et passez des appels audio et vidéo gratuitement.\n\n• INTÉGRATIONS PUISSANTES : Utilisez Element avec les outils que vous connaissez déjà. Avec Element vous pouvez même discuter avec les utilisateurs et les groupes qui utilisent d'autres applications de discussion.\n\n• PRIVÉ ET SÉCURISÉ : Gardez vos conversations secrètes. Un chiffrement de bout en bout de pointe vous garanti que vos communications privées restent privées.\n\n• OUVERT, PAS FERMÉ : Open source, et construit autour de Matrix. Restez en possession de vos données en hébergeant votre propre serveur, ou choisissez celui auquel vous faites confiance.\n\n• PARTOUT OÙ VOUS ÊTES : Restez en contact où que vous soyez avec la synchronisation complète de l'historique de vos messages entre vos différents appareils et en ligne sur https://app.element.io.";
"store_full_description" = "Element est un nouveau type d'application de chat et de collaboration qui permet de :\n\n1. Vous place en control afin de vous permettre de préserver votre vie privée \n2. Vous permet de communiquer avec n'importe qui du réseau Matrix, et même plus en intégrants des implications tel que Slack \n3. Vous protège des pubs, du datamining , des porte dérobées et des walled gardens\n4. Vous sécurise à travers une inscription de bout en bout, avec des co-enregistrement pour vérifier les autres\n\nElement est totalement differents des autres applications de chat et de collaboration puisqu'il est décentralisé et open source.\n\nElement vous place en control en vous laissant choisir qui sont les hôtes de vos conversations. Depuis l'application Element, vous pouvez être un hôte de différentes façons: \n\n1. Obtenez un compte gratuitement sur les serveurs publics de matrix.org\n2. Host votre compte à l'aide de votre propre serveur et matérielle\n3. Inscrivez vous pour un compte sur un serveur customisé simplement en vous abonnant a la plateforme hôte de Services Matrix Element\n\nPourquoi choisir Element ?\n\n• COMMUNICATION COMPLÈTE : Construisez des salons autours de vos équipes, de vos amis, de votre communauté comme vous le souhaitez ! Discutez, partagez des fichiers, ajoutez des widgets et passez des appels audio et vidéo gratuitement.\n\n• INTÉGRATIONS PUISSANTES : Utilisez Element avec les outils que vous connaissez déjà. Avec Element vous pouvez même discuter avec les utilisateurs et les groupes qui utilisent d'autres applications de discussion.\n\n• PRIVÉ ET SÉCURISÉ : Gardez vos conversations secrètes. Un chiffrement de bout en bout de pointe vous garanti que vos communications privées restent privées.\n\n• OUVERT, PAS FERMÉ : Open source, et construit autour de Matrix. Restez en possession de vos données en hébergeant votre propre serveur, ou choisissez celui auquel vous faites confiance.\n\n• PARTOUT OÙ VOUS ÊTES : Restez en contact où que vous soyez avec la synchronisation complète de l'historique de vos messages entre vos différents appareils et en ligne sur https://app.element.io.";
"auth_login_single_sign_on" = "Se connecter avec l'authentification unique";
"room_message_unable_open_link_error_message" = "Impossible douvrir le lien.";
"auth_autodiscover_invalid_response" = "Réponse de découverte du serveur daccueil non valide";

View file

@ -673,7 +673,7 @@
"key_backup_setup_intro_manual_export_action" = "Kulcsok kimentése kézzel";
// String for App Store
"store_short_description" = "Biztonságos elosztott csevegés/VoIP";
"auth_login_single_sign_on" = "Bejelentkezés egyszeri bejelentkezéssel";
"auth_login_single_sign_on" = "Bejelentkezés";
"room_message_unable_open_link_error_message" = "A linket nem lehet megnyitni.";
"store_full_description" = "Element egy újfajta csevegő és együttműködést segítő alkalmazás ami:\n\n1. Visszaadja az irányítást neked, hogy megvédd a magánéleted információit\n2. Lépj kapcsolatba bárkivel a Matrix hálózatban, és azon túl alkalmazások integrálásával mint amilyen például a slack\n3. Megvéd a hirdetőktől, adatbányászoktól, hátsó kapuktól és fallal védett rendszerektől\n4. Végpontok közötti titkosítással véd, ahol egymás személyazonosságát ellenőrizhetitek\n\nElement a többi üzenetküldő és kollaborációs alkalmazástól teljesen eltérő abban a tekintetben, hogy elosztott és nyílt forrású rendszer.\n\nElement megengedi, hogy saját magadnak üzemeltess szervert vagy válassz szervert tetszés szerint - így biztonságban vagy te vagy a tulajdonosa az üzeneteidnek és te irányítod az adatokat és a beszélgetéseket. Egy nyílt hálózathoz enged hozzáférést; tehát nem csak más Element felhasználókkal beszélgethetsz. És nagyon biztonságos.\n\nElement mindezt a Matrix miatt tudja ami egy szabványos nyílt és elosztott kommunikációs rendszer.\n\nElement visszaadja az irányítást azzal, hogy kiválaszthatod ki kezelje a beszélgetéseidet. Az Element alkalmazásból különbözőképpen választhatod ki a szerverd:\n\n1. Kérj egy ingyenes fiókot a matrix.org nyilvános szerveren\n2. Saját szervert is üzemeltethetsz a fiókodnak saját hardveren\n3. Jelentkezz egy fiókért egy egyedi szerveren az Element Matrix Services hosting platformra való feliratkozással\n\nMiért válasz az Elementet?\n\nAZ ADATOD A TULAJDONOD: Te döntöd el hol tárolod az adataidat és üzeneteidet. A tiéd és nálad az irányítás és nem valami NAGYVÁLLALATNÁL ami elemzi az adataidat és odaadja másoknak.\n\nNYILT ÜZENETKÜLDÉS ÉS KOLLABORÁCIÓ: Bárkivel beszélgethetsz a Matrix hálózaton, akár az Elementet használja akár más Matrix alkalmazást vagy akár másik üzenetküldő rendszert használ mint például a Slack, IRC vagy XMPP.\n\nSZUPER-BIZTONSÁGOS: Igazi végpontok közötti titkosítás (csak a beszélgetés résztvevői tudják visszafejteni az üzenetet), és kereszt aláírásokkal lehet a beszélgetésben résztvevő eszközöket ellenőrizni.\n\nTELJES KOMMUNIKÁCIÓ: Üzenetküldés, hang és videó hívások, fájl megosztás, képernyő megosztás és egy csomó egyéb integráció, botok és kisalkalmazások. Építs szobákat, közösségeket, maradj kapcsolatban és vigyél véghez dolgokat. \n\nBÁRHOL VAGY: Maradj kapcsolatban akárhol vagy az összes üzeneteddel minden eszközödön vagy a weben a https://element.io/app -pal.";
"auth_autodiscover_invalid_response" = "Matrix szerver felderítésénél érvénytelen válasz érkezett";
@ -1065,7 +1065,7 @@
"security_settings_complete_security_alert_message" = "Először be kell fejezned ennek a munkamenetnek a biztonsági beállítását.";
"security_settings_coming_soon" = "Bocsánat. Element iOS-n ez a művelet egyenlőre nem érhető el. Kérlek használj másik Matrix klienst a beállításához. Element iOS használni fogja.";
"device_verification_self_verify_wait_new_sign_in_title" = "Belépés ellenőrzése";
"device_verification_self_verify_wait_additional_information" = "vagy másik eszközök közötti hitelesítésre alkalmas Matrix kliensre";
"device_verification_self_verify_wait_additional_information" = "Ez Elementtel vagy más eszközök közötti hitelesítést támogató Matrix klienssel működik.";
// MARK: - Device Verification
"key_verification_other_session_title" = "Munkamenet hitelesítése";
"key_verification_new_session_title" = "Új munkamenet ellenőrzése";
@ -1265,3 +1265,36 @@
"secrets_recovery_reset_action_part_1" = "Elfelejtetted vagy elveszett minden visszaállítási lehetőség? ";
"less" = "Kevesebb";
"favourites_empty_view_information" = "Többféle módon lehet kedvencnek beállítani - a leggyorsabb, ha rányomsz és nyomva tartod. Koppints a csillagra és automatikusan megjelennek itt.";
"home_empty_view_information" = "A minden az egyben csevegő alkalmazás csapatoknak, barátoknak és szervezeteknek. Emberek és szobák hozzáadásához koppints a + jelre.";
// MARK: - Home
"home_empty_view_title" = "Üdv itt: %@,\n%@";
"secrets_setup_recovery_passphrase_summary_information" = "Jegyezd meg a Biztonsági Kifejezést. A titkosított üzenetek és adatokhoz való hozzáféréshez használható.";
"rooms_empty_view_information" = "A szobák megfelelnek bármilyen zárt vagy nyilvános csoportnak. Létező szobák megtalálásához vagy új készítéséhez koppints a + jelre.";
"people_empty_view_information" = "Beszélj biztonságosan bárkivel. Emberek hozzáadásához koppints a + jelre.";
// MARK: - Favourites
"favourites_empty_view_title" = "Kedvenc szobák és emberek";
"secrets_setup_recovery_passphrase_summary_title" = "Biztonsági kifejezés mentése";
"rooms_empty_view_title" = "Szobák";
"people_empty_view_title" = "Emberek";
"invite_friends_share_text" = "Üdvözlöm! Beszélhet velem itt: %@, %@";
// MARK: - Invite friends
"invite_friends_action" = "Barátok meghívása ide: %@";
"pin_protection_settings_change_pin" = "PIN megváltoztatása";
"pin_protection_confirm_pin_to_change" = "A PIN megváltoztatásához írd be a PIN kódot";
"bug_report_background_mode" = "Folytatás a háttérben";
"social_login_button_title_sign_up" = "Fiókkészítés ezzel: %@";
"social_login_button_title_sign_in" = "Bejelentkezés ezzel: %@";
"social_login_button_title_continue" = "Folytatás ezzel: %@";
"social_login_list_title_sign_up" = "Vagy fiókkészítés ezzel:";
"social_login_list_title_sign_in" = "Vagy bejelentkezés ezzel:";
// Social login
"social_login_list_title_continue" = "Folytatás ezzel:";

View file

@ -77,7 +77,7 @@
"later" = "Più avanti";
"sending" = "Inviando";
"auth_submit" = "Invia";
"auth_login_single_sign_on" = "Accedi con single sign-on";
"auth_login_single_sign_on" = "Accedi";
"auth_untrusted_id_server" = "L'affidabilità dell'Identity Server non è stata accertata";
"auth_password_dont_match" = "Le password non corrispondono";
"auth_username_in_use" = "Nome utente in uso";
@ -1238,3 +1238,34 @@
"secrets_recovery_reset_action_part_2" = "Reimposta tutto";
"secrets_setup_recovery_passphrase_summary_information" = "Ricorda la tua frase di sicurezza. Può essere usata per sbloccare i tuoi messaggi e dati cifrati.";
"secrets_setup_recovery_passphrase_summary_title" = "Salva la tua frase di sicurezza";
"favourites_empty_view_information" = "Puoi preferire in diversi modi - il più veloce è tenendo premuto. Tocca la stella e appariranno qui automaticamente per tenerle al sicuro.";
// MARK: - Favourites
"favourites_empty_view_title" = "Stanze e persone preferite";
"home_empty_view_information" = "L'app all-in-one di chat sicure per team, amici e organizzazioni. Tocca il pulsante + qua sotto per aggiungere persone e stanze.";
// MARK: - Home
"home_empty_view_title" = "Benvenuti su %@,\n%@";
"rooms_empty_view_information" = "Le stanze sono ottime per chat di gruppo, private o pubbliche. Tocca il + per trovare quelle esistenti o crearne di nuove.";
"rooms_empty_view_title" = "Stanze";
"people_empty_view_information" = "Chatta in modo sicuro con chiunque. Tocca il + per aggiungere persone.";
"people_empty_view_title" = "Persone";
"invite_friends_share_text" = "Ehi, parliamoci su %@: %@";
// MARK: - Invite friends
"invite_friends_action" = "Invita amici in %@";
"pin_protection_settings_change_pin" = "Cambia PIN";
"pin_protection_confirm_pin_to_change" = "Conferma il PIN per modificarlo";
"bug_report_background_mode" = "Continua in secondo piano";
"social_login_button_title_sign_up" = "Registrati con %@";
"social_login_button_title_sign_in" = "Accedi con %@";
"social_login_button_title_continue" = "Continua con %@";
"social_login_list_title_sign_up" = "O registrati con";
"social_login_list_title_sign_in" = "O accedi con";
// Social login
"social_login_list_title_continue" = "Continua con";

View file

@ -333,7 +333,7 @@
"room_details_settings" = "設定";
"room_details_photo" = "部屋の画像アイコン";
"room_details_room_name" = "部屋名";
"room_details_topic" = "部屋の説明";
"room_details_topic" = "トピック";
"room_details_favourite_tag" = "お気に入り";
"room_details_low_priority_tag" = "低優先度";
"room_details_mute_notifs" = "発言があっても通知しない";
@ -568,3 +568,28 @@
"auth_softlogout_clear_data_sign_out" = "サインアウト";
"room_message_unable_open_link_error_message" = "リンクを開くことができません。";
"user_verification_session_details_verify_action_other_user" = "手動で確認";
"room_info_list_section_other" = "その他";
"room_info_list_several_members" = "%@ 人のメンバー";
// MARK: - Room Info
"room_info_list_one_member" = "1 人のメンバー";
"create_room_placeholder_address" = "#testroom:matrix.org";
"create_room_section_header_address" = "部屋のアドレス";
"create_room_show_in_directory" = "この部屋をディレクトリに掲載する";
"create_room_section_footer_type" = "プライベートな部屋は、部屋に招待された人のみ参加できます。";
"create_room_type_public" = "公開された部屋";
"create_room_type_private" = "プライベートな部屋";
"create_room_section_header_type" = "部屋の種類";
"create_room_section_footer_encryption" = "暗号化はあとから無効にすることはできません。";
"create_room_section_header_encryption" = "部屋の暗号化";
"create_room_placeholder_topic" = "トピック";
"create_room_section_header_topic" = "部屋のトピック (任意)";
"create_room_placeholder_name" = "名前";
"create_room_section_header_name" = "部屋の名前";
// MARK: - Create Room
"create_room_title" = "新しい部屋";
"create_room_enable_encryption" = "暗号化を有効にする";
"room_details_room_name_for_dm" = "名前";

View file

@ -0,0 +1,10 @@
"NSContactsUsageDescription" = "Akken ad d-tafeḍ inermisen i yesseqdacen Matrix, Element yezmer ad yazen tansiwin imayl d wuṭṭunen n tiliɣri n umedlis-ik•im n tansiwin i uqeddac-ik•im n tmagit Matrix. Ma yettwasefrak, isefka udmawanen ad ẓden send tizzna - ttxil senqed tabaḍnit n uqeddac-ik•im n tmagit i wugar n yisallen.";
"NSFaceIDUsageDescription" = "Asulay n wudem tettwaseqdac iwakken ad tkecmeḍ ɣer usnas-ik•im.";
"NSCalendarsUsageDescription" = "Ẓer timliliyin-ik•im yettwaɣewsen deg usnas.";
"NSMicrophoneUsageDescription" = "Aswaḍ yettwaseqdac i tuṭṭfa n tvidyutin d yisawalen.";
"NSPhotoLibraryUsageDescription" = "Tamkerḍit n tewlafin tettwaseqdac i tizzna n tewlafin d tvidyutin.";
// Permissions usage explanations
"NSCameraUsageDescription" = "Takamirat tettwaseqdac i tuṭṭfa n tewlafin d tvidyutin, daɣen i yisawalen s tvidyut.";

View file

@ -0,0 +1,114 @@
/* A user has invited you to a named room */
"USER_INVITE_TO_NAMED_ROOM" = "%@ inced-ik•ikem-id ɣer %@";
/** Key verification **/
"KEY_VERIFICATION_REQUEST_FROM_USER" = "%@ yebɣa ad issenqed";
/* Incoming named video conference invite from a specific person */
"VIDEO_CONF_NAMED_FROM_USER" = "Asiwel n ugraw s tvidyut seg %@: '%@'";
/* Incoming named voice conference invite from a specific person */
"VOICE_CONF_NAMED_FROM_USER" = "Asiwel n ugraw seg %@: '%@'";
/* Incoming unnamed video conference invite from a specific person */
"VIDEO_CONF_FROM_USER" = "Asiwel n ugraw s tvidyut sɣur %@";
/* Incoming unnamed voice conference invite from a specific person */
"VOICE_CONF_FROM_USER" = "Asiwel n ugraw sɣur %@";
/* Incoming one-to-one video call */
"VIDEO_CALL_FROM_USER" = "Asiwel s tvidyut sɣur %@";
/** Calls **/
/* Incoming one-to-one voice call */
"VOICE_CALL_FROM_USER" = "Asiwel sɣur %@";
/* A user has invited you to an (unamed) group chat */
"USER_INVITE_TO_CHAT_GROUP_CHAT" = "%@ inced-ik•ikem-id ɣer udiwenni n ugraw";
/** Invites **/
/* A user has invited you to a chat */
"USER_INVITE_TO_CHAT" = "%@ inced-ik•ikem-id ɣer udiwenni";
/* Look, stuff's happened, alright? Just open the app. */
"MSGS_IN_TWO_PLUS_ROOMS" = "%@ n yiznan imaynuten deg %@, %@ d wiyaḍ";
/* Multiple messages in two rooms */
"MSGS_IN_TWO_ROOMS" = "%@ n yiznan imaynuten deg %@ d %@";
/* Multiple unread messages from two plus people (ie. for 4+ people: 'others' replaces the third person) */
"MSGS_FROM_TWO_PLUS_USERS" = "%@ n yiznan imaynuten sɣur %@, %@ d wiyaḍ";
/* Multiple unread messages from three people */
"MSGS_FROM_THREE_USERS" = "%@ n yiznan imaynuten sɣur %@, %@ d %@";
/* Multiple unread messages from two people */
"MSGS_FROM_TWO_USERS" = "%@ n yiznan imaynuten sɣur %@ d %@";
/* Multiple unread messages from a specific person, not referencing a room */
"MSGS_FROM_USER" = "%@ n yiznan imaynuten deg %@";
/** Coalesced messages **/
/* Multiple unread messages in a room */
"UNREAD_IN_ROOM" = "%@ n yiznan imaynuten deg %@";
"MESSAGE_PROTECTED" = "Izen amaynut";
/* New message indicator on a room */
"MESSAGE_IN_X" = "Izen deg %@";
/* New message indicator from a DM */
"MESSAGE_FROM_X" = "Izen sɣur %@";
/** Notification messages **/
/* New message indicator on unknown room */
"MESSAGE" = "Izen";
/* Sticker from a specific person, not referencing a room. */
"STICKER_FROM_USER" = "%@ yuzen astiker";
/* A single unread message */
"SINGLE_UNREAD" = "Yuweḍ-ik•ikem-id yizen";
/* A single unread message in a room */
"SINGLE_UNREAD_IN_ROOM" = "Yuweḍ-ik•ikem-id yizen deg %@";
/* New action message from a specific person in a named room. */
"IMAGE_FROM_USER_IN_ROOM" = "%@ yessufeɣ-d tugna %@ deg %@";
/** Image Messages **/
/* New action message from a specific person, not referencing a room. */
"IMAGE_FROM_USER" = "%@ yuzen tugna %@";
/* New action message from a specific person in a named room. */
"ACTION_FROM_USER_IN_ROOM" = "%@: *%@ %@";
/* New action message from a specific person, not referencing a room. */
"ACTION_FROM_USER" = "*%@ %@";
/* New message from a specific person in a named room. Content included. */
"MSG_FROM_USER_IN_ROOM_WITH_CONTENT" = "%@ deg %@: %@";
/** Single, unencrypted messages (where we can include the content */
/* New message from a specific person, not referencing a room. Content included. */
"MSG_FROM_USER_WITH_CONTENT" = "%@: %@";
/* New message from a specific person in a named room */
"MSG_FROM_USER_IN_ROOM" = "%@ yessufeɣ-d deg %@";
/** Single, end-to-end encrypted messages (ie. we don't know what they say) */
/* New message from a specific person, not referencing a room */
"MSG_FROM_USER" = "%@ yuzen izen";
/* Message title for a specific person in a named room */
"MSG_FROM_USER_IN_ROOM_TITLE" = "%@ deg %@";

Some files were not shown because too many files have changed in this diff Show more