Commit ab411a3f authored by Thomas Markiewicz's avatar Thomas Markiewicz

Merge branch 'release/1.0.2'

parents 969f4b67 79629ec2
Pipeline #36127 passed with stage
in 16 minutes and 55 seconds
CHANGES
=======
Version 1.0.2
-----------------------------------------------------
* Added register link to the login screen
* Added support, policy, and stay safe links to the main menu
* Merged upstream Riot v0.9.5
* Stubbed out JitsiMeet integration until XCode 11 can build it (Librem One doesn't support any integrations at the moment anyway)
Version 1.0.1
-----------------------------------------------------
* Added forgot password link to the login screen
......
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.0)
CFPropertyList (3.0.1)
activesupport (4.2.11.1)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
atomos (0.1.3)
babosa (1.0.2)
claide (1.0.2)
babosa (1.0.3)
claide (1.0.3)
cocoapods (1.7.2)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
......@@ -53,21 +53,21 @@ GEM
declarative (0.0.10)
declarative-option (0.1.0)
digest-crc (0.4.1)
domain_name (0.5.20180417)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.2)
dotenv (2.7.5)
emoji_regex (1.0.1)
escape (0.0.4)
excon (0.64.0)
faraday (0.15.4)
excon (0.67.0)
faraday (0.16.0)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
http-cookie (~> 1.0.0)
faraday_middleware (0.13.1)
faraday (>= 0.7.4, < 1.0)
fastimage (2.1.5)
fastlane (2.125.2)
fastimage (2.1.7)
fastlane (2.131.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
babosa (>= 1.0.2, < 2.0.0)
......@@ -87,7 +87,7 @@ GEM
highline (>= 1.7.2, < 2.0.0)
json (< 3.0.0)
jwt (~> 2.1.0)
mini_magick (~> 4.5.1)
mini_magick (>= 4.9.4, < 5.0.0)
multi_xml (~> 0.5)
multipart-post (~> 2.0.0)
plist (>= 3.1.0, < 4.0.0)
......@@ -115,9 +115,9 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.9)
google-cloud-core (1.3.0)
google-cloud-core (1.3.1)
google-cloud-env (~> 1.0)
google-cloud-env (1.1.0)
google-cloud-env (1.2.1)
faraday (~> 0.11)
google-cloud-storage (1.16.0)
digest-crc (~> 0.4)
......@@ -140,10 +140,10 @@ GEM
json (2.2.0)
jwt (2.1.0)
memoist (0.16.0)
mime-types (3.2.2)
mime-types (3.3)
mime-types-data (~> 3.2015)
mime-types-data (3.2019.0331)
mini_magick (4.5.1)
mime-types-data (3.2019.0904)
mini_magick (4.9.5)
minitest (5.11.3)
molinillo (0.6.6)
multi_json (1.13.1)
......@@ -163,14 +163,14 @@ GEM
retriable (3.1.2)
rouge (2.0.7)
ruby-macho (1.4.0)
rubyzip (1.2.3)
rubyzip (1.3.0)
security (0.1.3)
signet (0.11.0)
addressable (~> 2.3)
faraday (~> 0.9)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.5)
simctl (1.6.6)
CFPropertyList
naturally
slack-notifier (2.3.2)
......@@ -193,7 +193,7 @@ GEM
xcode-install (2.5.0)
claide (>= 0.9.1, < 1.1.0)
fastlane (>= 2.1.0, < 3.0.0)
xcodeproj (1.10.0)
xcodeproj (1.12.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
......
This diff is collapsed.
......@@ -7,7 +7,7 @@ use_frameworks!
# Different flavours of pods to MatrixKit
# The current MatrixKit pod version
$matrixKitVersion = '0.10.1'
$matrixKitVersion = '0.10.2'
# The develop branch version
#$matrixKitVersion = 'develop'
......@@ -76,6 +76,10 @@ abstract_target 'RiotPods' do
target "Riot" do
import_MatrixKit
pod 'DGCollectionViewLeftAlignFlowLayout', '~> 1.0.4'
target 'RiotTests' do
inherit! :search_paths
end
end
target "RiotShareExtension" do
......
......@@ -46,41 +46,41 @@ PODS:
- JitsiMeetSDK (2.1.0)
- libbase58 (0.1.4)
- libPhoneNumber-iOS (0.9.15)
- MatrixKit (0.10.1):
- MatrixKit (0.10.2):
- cmark (~> 0.24.1)
- DTCoreText (~> 1.6.21)
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixKit/Core (= 0.10.1)
- MatrixSDK (= 0.13.0)
- MatrixKit/Core (= 0.10.2)
- MatrixSDK (= 0.13.1)
- SwiftUTI (~> 1.0.6)
- MatrixKit/AppExtension (0.10.1):
- MatrixKit/AppExtension (0.10.2):
- cmark (~> 0.24.1)
- DTCoreText (~> 1.6.21)
- DTCoreText/Extension
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.13.0)
- MatrixSDK (= 0.13.1)
- SwiftUTI (~> 1.0.6)
- MatrixKit/Core (0.10.1):
- MatrixKit/Core (0.10.2):
- cmark (~> 0.24.1)
- DTCoreText (~> 1.6.21)
- HPGrowingTextView (~> 1.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.13.0)
- MatrixSDK (= 0.13.1)
- SwiftUTI (~> 1.0.6)
- MatrixSDK (0.13.0):
- MatrixSDK/Core (= 0.13.0)
- MatrixSDK/Core (0.13.0):
- MatrixSDK (0.13.1):
- MatrixSDK/Core (= 0.13.1)
- MatrixSDK/Core (0.13.1):
- AFNetworking (~> 3.2.0)
- GZIP (~> 1.2.2)
- libbase58 (~> 0.1.4)
- OLMKit (~> 3.1.0)
- Realm (~> 3.13.1)
- MatrixSDK/JingleCallStack (0.13.0):
- MatrixSDK/JingleCallStack (0.13.1):
- JitsiMeetSDK (~> 2.1.0)
- MatrixSDK/Core
- MatrixSDK/SwiftSupport (0.13.0):
- MatrixSDK/SwiftSupport (0.13.1):
- MatrixSDK/Core
- OLMKit (3.1.0):
- OLMKit/olmc (= 3.1.0)
......@@ -105,8 +105,8 @@ DEPENDENCIES:
- DGCollectionViewLeftAlignFlowLayout (~> 1.0.4)
- DTCoreText
- GBDeviceInfo (~> 5.2.0)
- MatrixKit (= 0.10.1)
- MatrixKit/AppExtension (= 0.10.1)
- MatrixKit (= 0.10.2)
- MatrixKit/AppExtension (= 0.10.2)
- MatrixSDK/JingleCallStack
- MatrixSDK/SwiftSupport
- OLMKit
......@@ -117,7 +117,7 @@ DEPENDENCIES:
- zxcvbn-ios
SPEC REPOS:
https://github.com/cocoapods/specs.git:
https://github.com/CocoaPods/Specs.git:
- AFNetworking
- cmark
- DGCollectionViewLeftAlignFlowLayout
......@@ -160,8 +160,8 @@ SPEC CHECKSUMS:
JitsiMeetSDK: 3e66564af7f38a19142338955dd7f581801852b3
libbase58: 7c040313537b8c44b6e2d15586af8e21f7354efd
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
MatrixKit: f8224de32ca8b6e4c54a2654369cedec7744dc6d
MatrixSDK: 6886e7234c650408db5876b44a7f7608c865ce30
MatrixKit: 208801ba995442a6daa913eb6d639bb918c91c24
MatrixSDK: 16c8c4b530a7f9fb264baced52b6b0948b1d0a98
OLMKit: 4ee0159d63feeb86d836fdcfefe418e163511639
Realm: 50071da38fe079e0735e47c9f2eae738c68c5996
Reusable: 82be188f29d96dc5eff0db7b2393bcc08d2cdd5b
......@@ -170,6 +170,6 @@ SPEC CHECKSUMS:
SwiftUTI: 917993c124f8eac25e88ced0202fc58d7eb50fa8
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
PODFILE CHECKSUM: 199e2a875b9ca7ebda48c1589533c93d1c9a2613
PODFILE CHECKSUM: 96875f11533e29f46f651b1d838ffc005d70f6ad
COCOAPODS: 1.7.5
COCOAPODS: 1.8.0
......@@ -2085,6 +2085,11 @@ NSString *const kAppDelegateNetworkStatusDidChangeNotification = @"kAppDelegateN
// iOS Patch: fix vector.im urls before using it
webURL = [Tools fixURLWithSeveralHashKeys:webURL];
if ([webURL.path hasPrefix:@"/config"])
{
return [self handleServerProvionningLink:webURL];
}
// Manage email validation link
if ([webURL.path isEqualToString:@"/_matrix/identity/api/v1/validate/email/submitToken"])
......@@ -2532,6 +2537,93 @@ NSString *const kAppDelegateNetworkStatusDidChangeNotification = @"kAppDelegateN
*outQueryParams = queryParams;
}
- (BOOL)handleServerProvionningLink:(NSURL*)link
{
NSLog(@"[AppDelegate] handleServerProvionningLink: %@", link);
NSString *homeserver, *identityServer;
[self parseServerProvionningLink:link homeserver:&homeserver identityServer:&identityServer];
if (homeserver)
{
if ([MXKAccountManager sharedManager].activeAccounts.count)
{
[self displayServerProvionningLinkBuyAlreadyLoggedInAlertWithCompletion:^(BOOL logout) {
NSLog(@"[AppDelegate] handleServerProvionningLink: logoutWithConfirmation: logout: %@", @(logout));
if (logout)
{
[self logoutWithConfirmation:NO completion:^(BOOL isLoggedOut) {
[self handleServerProvionningLink:link];
}];
}
}];
}
else
{
[_masterTabBarController showAuthenticationScreen];
[_masterTabBarController.authViewController showCustomHomeserver:homeserver andIdentityServer:identityServer];
}
return YES;
}
return NO;
}
- (void)parseServerProvionningLink:(NSURL*)link homeserver:(NSString**)homeserver identityServer:(NSString**)identityServer
{
if ([link.path isEqualToString:@"/config/config"])
{
NSURLComponents *linkURLComponents = [NSURLComponents componentsWithURL:link resolvingAgainstBaseURL:NO];
for (NSURLQueryItem *item in linkURLComponents.queryItems)
{
if ([item.name isEqualToString:@"hs_url"])
{
*homeserver = item.value;
}
else if ([item.name isEqualToString:@"is_url"])
{
*identityServer = item.value;
break;
}
}
}
else
{
NSLog(@"[AppDelegate] parseServerProvionningLink: Error: Unknown path: %@", link.path);
}
NSLog(@"[AppDelegate] parseServerProvionningLink: homeserver: %@ - identityServer: %@", *homeserver, *identityServer);
}
- (void)displayServerProvionningLinkBuyAlreadyLoggedInAlertWithCompletion:(void (^)(BOOL logout))completion
{
// Ask confirmation
self.logoutConfirmation = [UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"error_user_already_logged_in", @"Vector", nil) message:nil preferredStyle:UIAlertControllerStyleAlert];
[self.logoutConfirmation addAction:[UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"settings_sign_out", @"Vector", nil)
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
self.logoutConfirmation = nil;
completion(YES);
}]];
[self.logoutConfirmation addAction:[UIAlertAction actionWithTitle:[NSBundle mxk_localizedStringForKey:@"cancel"]
style:UIAlertActionStyleCancel
handler:^(UIAlertAction * action)
{
self.logoutConfirmation = nil;
completion(NO);
}]];
[self.logoutConfirmation mxk_setAccessibilityIdentifier: @"AppDelegateLogoutConfirmationAlert"];
[self showNotificationAlert:self.logoutConfirmation];
}
#pragma mark - Matrix sessions handling
- (void)initMatrixSessions
......@@ -2755,7 +2847,10 @@ NSString *const kAppDelegateNetworkStatusDidChangeNotification = @"kAppDelegateN
// Remove inApp notifications toggle change
MXKAccount *account = notif.object;
[account removeObserver:self forKeyPath:@"enableInAppNotifications"];
if (!account.isSoftLogout)
{
[account removeObserver:self forKeyPath:@"enableInAppNotifications"];
}
// Clear Modular data
[[WidgetManager sharedManager] deleteDataForUser:account.mxCredentials.userId];
......@@ -2766,6 +2861,16 @@ NSString *const kAppDelegateNetworkStatusDidChangeNotification = @"kAppDelegateN
[self logoutWithConfirmation:NO completion:nil];
}
}];
// Add observer to handle soft logout
[[NSNotificationCenter defaultCenter] addObserverForName:kMXKAccountManagerDidSoftlogoutAccountNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) {
MXKAccount *account = notif.object;
[self removeMatrixSession:account.mxSession];
// Return to authentication screen
[self.masterTabBarController showAuthenticationScreenAfterSoftLogout:account.mxCredentials];
}];
[[NSNotificationCenter defaultCenter] addObserverForName:kMXSessionIgnoredUsersDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull notif) {
......
{
"images" : [
{
"idiom" : "universal",
"filename" : "more_reactions.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "more_reactions@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "more_reactions@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
......@@ -37,6 +37,7 @@
<key>integrationsWidgetsUrls</key>
<array>
<string>https://scalar-staging.riot.im/scalar/api</string>
<string>https://scalar-staging.vector.im/api</string>
<string>https://scalar.vector.im/api</string>
</array>
<key>piwik</key>
......
This diff is collapsed.
......@@ -788,3 +788,35 @@
// MARK: File upload
"file_upload_error_title" = "Качване на файл";
"file_upload_error_unsupported_file_type_message" = "Типът файл не се поддържа.";
"auth_softlogout_signed_out" = "Излезли сте от профила";
"auth_softlogout_sign_in" = "Влез";
"auth_softlogout_reason" = "Администратора на вашия сървър (%1$@) ви е отписал от профила %2$@ (%3$@).";
"auth_softlogout_recover_encryption_keys" = "Влезте за да възстановите ключове за шифровани съхранени само на това устройство. Ще ви трябват за да можете да четете всички защитени съобщения на кое да е устройство.";
"auth_softlogout_clear_data" = "Изчисти личните данни";
"auth_softlogout_clear_data_message_1" = "Внимание: Личните ви данни (включително ключове за шифроване) все още са съхранени на това устройство.";
"auth_softlogout_clear_data_message_2" = "Изчистете, ако сте приключили с използването на това устройство или искате да влезете с друг профил.";
"auth_softlogout_clear_data_button" = "Изчисти всички данни";
"auth_softlogout_clear_data_sign_out_title" = "Сигурни ли сте?";
"auth_softlogout_clear_data_sign_out_msg" = "Сигурни ли сте, че искате да изчистите всички данни съхранени на това устройство? Влезте пак за да достъпите профила и съобщенията си.";
"auth_softlogout_clear_data_sign_out" = "Излез";
"room_event_action_reaction_history" = "История на реакциите";
// MARK: Emoji picker
"emoji_picker_title" = "Реакции";
"emoji_picker_people_category" = "Усмивки и хора";
"emoji_picker_nature_category" = "Животни и природа";
"emoji_picker_foods_category" = "Храна и напитки";
"emoji_picker_activity_category" = "Дейности";
"emoji_picker_places_category" = "Пътуване и места";
"emoji_picker_objects_category" = "Обекти";
"emoji_picker_symbols_category" = "Символи";
"emoji_picker_flags_category" = "Флагове";
// MARK: Reaction history
"reaction_history_title" = "Реакции";
"room_action_camera" = "Направи снимка или видео";
// Media picker
"media_picker_title" = "Медийна библиотека";
// Image picker
"image_picker_action_camera" = "Направи снимка";
"image_picker_action_library" = "Избери от библиотеката";
"camera_unavailable" = "Не е достъпна камера на вашето устройство";
"photo_library_access_not_granted" = "%@ няма достъп до библиотеката със снимки. Моля, променете настройките на поверителността";
......@@ -669,7 +669,7 @@
"room_action_reply" = "Antworten";
"settings_labs_message_reaction" = "Mit einem Emoji reagieren";
"settings_key_backup_button_connect" = "Schlüssel dieses Geräts sichern";
"event_formatter_message_edited_mention" = "(geändert)";
"event_formatter_message_edited_mention" = "(bearbeitet)";
"key_backup_setup_intro_setup_connect_action_with_existing_backup" = "Schlüssel dieses Geräts sichern";
"key_backup_recover_connent_banner_subtitle" = "Schlüssel dieses Geräts sichern";
// MARK: - Device Verification
......@@ -736,3 +736,65 @@
"device_verification_emoji_bell" = "Glocke";
"device_verification_emoji_anchor" = "Anker";
"device_verification_emoji_headphones" = "Kopfhörer";
"close" = "Schließen";
"auth_softlogout_signed_out" = "Sie sind abgemeldet";
"auth_softlogout_sign_in" = "Einloggen";
"auth_softlogout_reason" = "Ihr Homeserver-Administrator (%1$@) hat Sie von Ihrem Konto %2$@ (%3$@) abgemeldet.";
"auth_softlogout_recover_encryption_keys" = "Melden Sie sich an, um Verschlüsselungsschlüssel wiederherzustellen, die ausschließlich auf diesem Gerät gespeichert sind. Sie benötigen sie, um alle Ihre sicheren Nachrichten auf jedem Gerät lesen zu können.";
"auth_softlogout_clear_data" = "Persönliche Daten löschen";
"auth_softlogout_clear_data_message_1" = "Warnung: Ihre persönlichen Daten (einschließlich Verschlüsselungsschlüssel) sind noch auf diesem Gerät gespeichert.";
"auth_softlogout_clear_data_message_2" = "Deaktivieren Sie es, wenn Sie dieses Gerät nicht mehr verwenden oder sich bei einem anderen Konto anmelden möchten.";
"auth_softlogout_clear_data_button" = "Lösche alle Daten";
"auth_softlogout_clear_data_sign_out_title" = "Bist du sicher?";
"auth_softlogout_clear_data_sign_out_msg" = "Möchten Sie wirklich alle derzeit auf diesem Gerät gespeicherten Daten löschen? Melden Sie sich erneut an, um auf Ihre Kontodaten und Nachrichten zuzugreifen.";
"auth_softlogout_clear_data_sign_out" = "Ausloggen";
"room_event_action_reaction_show_all" = "Zeige alles";
"room_event_action_reaction_show_less" = "Zeige weniger";
"room_event_action_reaction_history" = "Reaktionsverlauf";
"room_action_send_file" = "Datei senden";
"room_message_edits_history_title" = "Bearbeitungsverlauf";
// Widget
"widget_no_integrations_server_configured" = "Kein Integrationsserver konfiguriert";
"widget_integrations_server_failed_to_connect" = "Verbindung zum Integrationsserver fehlgeschlagen";
"device_verification_security_advice" = "Für maximale Sicherheit empfehlen wir, dies persönlich zu tun oder ein anderes vertrauenswürdiges Kommunikationsmittel zu verwenden";
"device_verification_incoming_description_1" = "Überprüfen Sie dieses Gerät, um es als vertrauenswürdig zu markieren. Das Vertrauen auf Geräte von Partnern gibt Ihnen zusätzliche Sicherheit, wenn Sie verschlüsselte End-to-End-Nachrichten verwenden.";
"device_verification_incoming_description_2" = "Wenn Sie dieses Gerät überprüfen, wird es als vertrauenswürdig und für den Partner als vertrauenswürdig gekennzeichnet.";
// MARK: Start
"device_verification_start_title" = "Überprüfen Sie dies, indem Sie eine kurze Textzeichenfolge vergleichen";
"device_verification_start_wait_partner" = "Warten auf Partner zu akzeptieren ...";
"device_verification_start_use_legacy" = "Nichts auftauchend? Nicht alle Clients unterstützen die interaktive Überprüfung. Verwenden Sie die Alte-Überprüfung.";
"device_verification_start_use_legacy_action" = "Verwenden Sie die Alte-Überprüfung";
// MARK: Verify
"device_verification_verify_title_emoji" = "Überprüfen Sie dieses Gerät, indem Sie bestätigen, dass das folgende Emoji auf dem Bildschirm des Partners angezeigt wird";
"device_verification_verify_title_number" = "Überprüfen Sie dieses Gerät, indem Sie bestätigen, dass die folgenden Zahlen auf dem Bildschirm des Partners angezeigt werden";
"device_verification_verify_wait_partner" = "Warten auf die Bestätigung des Partners...";
// MARK: Verified
"device_verification_verified_title" = "Verifiziert!";
"device_verification_verified_description_1" = "Sie haben dieses Gerät erfolgreich überprüft.";
"device_verification_verified_description_2" = "Verschlüsselte Nachrichten mit diesem Benutzer werden durchgehend verschlüsselt und können von Dritten nicht gelesen werden.";
"device_verification_emoji_rooster" = "Hahn";
"device_verification_emoji_globe" = "Globus";
"device_verification_emoji_smiley" = "Lächeln";
"device_verification_emoji_spanner" = "Spanner";
"device_verification_emoji_thumbs up" = "Daumen hoch";
"device_verification_emoji_hourglass" = "Sanduhr";
"device_verification_emoji_clock" = "Uhr";
"device_verification_emoji_pencil" = "Bleistift";
"device_verification_emoji_lock" = "sperren";
"device_verification_emoji_folder" = "Ordner";
"device_verification_emoji_pin" = "Stift";
// MARK: File upload
"file_upload_error_title" = "Datei hochladen";
"file_upload_error_unsupported_file_type_message" = "Dateityp wird nicht unterstützt.";
// MARK: Emoji picker
"emoji_picker_title" = "Reaktionen";
"emoji_picker_people_category" = "Smileys & Menschen";
"emoji_picker_nature_category" = "Tiere & Natur";
"emoji_picker_foods_category" = "Essen und Trinken";
"emoji_picker_activity_category" = "Aktivitäten";
"emoji_picker_places_category" = "Reisen & Orte";
"emoji_picker_objects_category" = "Objekte";
"emoji_picker_symbols_category" = "Symbole";
"emoji_picker_flags_category" = "Flaggen";
// MARK: Reaction history
"reaction_history_title" = "Reaktionen";
......@@ -66,7 +66,7 @@
"auth_login_single_sign_on" = "Sign in with single sign-on";
"auth_send_reset_email" = "Send Reset Email";
"auth_return_to_login" = "Return to login screen";
"auth_user_id_placeholder" = "Librem One address";
"auth_user_id_placeholder" = "name@librem.one";
"auth_password_placeholder" = "Passphrase";
"auth_new_password_placeholder" = "New password";
"auth_user_name_placeholder" = "User name";
......@@ -97,7 +97,7 @@
"auth_untrusted_id_server" = "The identity server is not trusted";
"auth_password_dont_match" = "Passwords don't match";
"auth_username_in_use" = "Username in use";
"auth_forgot_password" = "Forgot password?";
"auth_forgot_password" = "Forgot passphrase?";
"auth_email_not_found" = "Failed to send email: This email address was not found";
"auth_use_server_options" = "Use custom server options (advanced)";
"auth_email_validation_message" = "Please check your email to continue registration";
......@@ -116,6 +116,20 @@
"auth_add_email_and_phone_warning" = "Registration with email and phone number at once is not supported yet until the api exists. Only the phone number will be taken into account. You may add your email to your profile in settings.";
"auth_accept_policies" = "Please review and accept the policies of this homeserver:";
"auth_autodiscover_invalid_response" = "Invalid homeserver discovery response";
"auth_softlogout_signed_out" = "You’re signed out";
"auth_softlogout_sign_in" = "Sign In";
"auth_softlogout_reason" = "Your homeserver (%1$@) admin has signed you out of your account %2$@ (%3$@).";
"auth_softlogout_recover_encryption_keys" = "Sign in to recover encryption keys stored exclusively on this device. You need them to read all of your secure messages on any device.";
"auth_softlogout_clear_data" = "Clear personal data";
"auth_softlogout_clear_data_message_1" = "Warning: Your personal data (including encryption keys) is still stored on this device.";
"auth_softlogout_clear_data_message_2" = "Clear it if you're finished using this device, or want to sign in to another account.";
"auth_softlogout_clear_data_button" = "Clear all data";
"auth_softlogout_clear_data_sign_out_title" = "Are you sure?";
"auth_softlogout_clear_data_sign_out_msg" = "Are you sure you want to clear all data currently stored on this device? Sign in again to access your account data and messages.";
"auth_softlogout_clear_data_sign_out" = "Sign out";
// Errors
"error_user_already_logged_in" = "It looks like you’re trying to connect to another homeserver. Do you want to sign out?";
// Chat creation
"room_creation_title" = "New Chat";
......@@ -237,6 +251,7 @@
// Chat
"room_jump_to_first_unread" = "Jump to first unread message";
"room_accessiblity_scroll_to_bottom" = "Scroll to bottom";
"room_new_message_notification" = "%d new message";
"room_new_messages_notification" = "%d new messages";
"room_one_user_is_typing" = "%@ is typing…";
......@@ -284,8 +299,10 @@
"room_event_action_edit" = "Edit";
"room_event_action_reaction_show_all" = "Show all";
"room_event_action_reaction_show_less" = "Show less";
"room_event_action_reaction_history" = "Reaction history";
"room_warning_about_encryption" = "End-to-end encryption is in beta and may not be reliable.\n\nYou should not yet trust it to secure data.\n\nDevices will not yet be able to decrypt history from before they joined the room.\n\nEncrypted messages will not be visible on clients that do not yet implement encryption.";
"room_event_failed_to_send" = "Failed to send";
"room_action_camera" = "Take photo or video";
"room_action_send_photo_or_video" = "Send photo or video";
"room_action_send_sticker" = "Send sticker";
"room_action_send_file" = "Send file";
......@@ -302,6 +319,18 @@
"room_resource_usage_limit_reached_message_2" = "some users will not be able to log in.";
"room_resource_usage_limit_reached_message_contact_3" = " to get this limit increased.";
"room_message_edits_history_title" = "Message edits";
"room_accessibility_search" = "Search";
"room_accessibility_integrations" = "Integrations";
"room_accessibility_upload" = "Upload";
"room_accessibility_call" = "Call";
"room_accessibility_hangup" = "Hang up";
"media_type_accessibility_image" = "Image";
"media_type_accessibility_audio" = "Audio";
"media_type_accessibility_video" = "Video";
"media_type_accessibility_location" = "Location";
"media_type_accessibility_file" = "File";
"media_type_accessibility_sticker" = "Sticker";
// Unknown devices
"unknown_devices_alert_title" = "Room contains unknown devices";
......@@ -414,10 +443,12 @@
"settings_olm_version" = "Olm Version %@";
"settings_copyright" = "Copyright";
"settings_copyright_url" = "https://riot.im/copyright";
"settings_term_conditions" = "Terms & Conditions";
"settings_term_conditions_url" = "https://librem.one/policy";
"settings_privacy_policy" = "Privacy Policy";
"settings_term_conditions" = "Support";
"settings_term_conditions_url" = "https://librem.one/support";
"settings_privacy_policy" = "Policy";
"settings_privacy_policy_url" = "https://librem.one/policy";
"settings_stay_safe" = "Stay safe";
"settings_stay_safe_url" = "https://librem.one/stay-safe";
"settings_third_party_notices" = "Third-party Notices";
"settings_send_crash_report" = "Send anon crash & usage data";
"settings_enable_rageshake" = "Rage shake to report bug";
......@@ -562,9 +593,14 @@
"receipt_status_read" = "Read: ";
// Media picker
"media_picker_title" = "Media library";
"media_picker_library" = "Library";
"media_picker_select" = "Select";
// Image picker
"image_picker_action_camera" = "Take photo";
"image_picker_action_library" = "Choose from library";
// Directory
"directory_title" = "Directory";
"directory_server_picker_title" = "Select a directory";
......@@ -595,6 +631,8 @@
"rage_shake_prompt" = "You seem to be shaking the phone in frustration. Would you like to submit a bug report?";
"do_not_ask_again" = "Do not ask again";
"camera_access_not_granted" = "%@ doesn't have permission to use Camera, please change privacy settings";
"camera_unavailable" = "The camera is unavailable on your device";
"photo_library_access_not_granted" = "%@ doesn't have permission to access photo library, please change privacy settings";
"large_badge_value_k_format" = "%.1fK";
"room_does_not_exist" = "%@ does not exist";
......@@ -655,6 +693,9 @@
"widget_integration_missing_user_id" = "Missing user_id in request.";
"widget_integration_room_not_visible" = "Room %@ is not visible.";
// Widget Picker
"widget_picker_title" = "Integrations";
// Share extension
"share_extension_auth_prompt" = "Login in the main app to share content";
"share_extension_failed_to_encrypt" = "Failed to send. Check in the main app the encryption settings for this room";
......@@ -905,3 +946,18 @@
// MARK: File upload
"file_upload_error_title" = "File upload";
"file_upload_error_unsupported_file_type_message" = "File type not supported.";
// MARK: Emoji picker
"emoji_picker_title" = "Reactions";
"emoji_picker_people_category" = "Smileys & People";
"emoji_picker_nature_category" = "Animals & Nature";
"emoji_picker_foods_category" = "Food & Drink";
"emoji_picker_activity_category" = "Activities";
"emoji_picker_places_category" = "Travel & Places";
"emoji_picker_objects_category" = "Objects";
"emoji_picker_symbols_category" = "Symbols";
"emoji_picker_flags_category" = "Flags";
// MARK: Reaction history
"reaction_history_title" = "Reactions";
......@@ -740,7 +740,7 @@
"device_verification_cancelled" = "Beste aldeak egiaztaketa ezeztatu du.";
"device_verification_cancelled_by_me" = "Egiaztaketa ezeztatu da. Arrazoia: %@";
"device_verification_emoji_hourglass" = "Harea-erlojua";
"device_verification_emoji_clock" = "Klasea";
"device_verification_emoji_clock" = "Erlojua";
"device_verification_emoji_gift" = "Oparia";
"device_verification_emoji_light bulb" = "Bonbilla";
"device_verification_emoji_book" = "Liburua";
......@@ -777,3 +777,24 @@
// MARK: File upload
"file_upload_error_title" = "Fitxategi igoera";
"file_upload_error_unsupported_file_type_message" = "Fitxategi mota ez onartua.";
"auth_softlogout_signed_out" = "Saioa amaitu duzu";
"auth_softlogout_sign_in" = "Hasi saioa";
"auth_softlogout_reason" = "Zure hasiera zerbitzariaren administratzaileak (%1$@) zure %2$@ kontuaren saioa amaitu du (%3$@).";
"auth_softlogout_recover_encryption_keys" = "hasi saioa gailu honetan besterik gorde ez diren zifratze gakoak berreskuratzeko. Zure mezu seguruak beste gailuetan irakurri ahal izateko behar dituzu.";
"auth_softlogout_clear_data" = "Garbitu datu pertsonalak";
"auth_softlogout_clear_data_message_1" = "Abisua: Zure datu pertsonalak (zure zifratze gakoak barne) gailu honetan gordeko dira.";
"auth_softlogout_clear_data_message_2" = "Garbitu gailu honekin bukatu baduzu, edo beste saio bat hasi nahi baduzu.";
"auth_softlogout_clear_data_button" = "Garbitu datu guztiak";
"auth_softlogout_clear_data_sign_out_title" = "Ziur al zaude?";
"auth_softlogout_clear_data_sign_out_msg" = "Ziur gailu honetan gordetako datu guztiak ezabatu nahi dituzula? Hasi saioa berriro zure kontuaren datuak eta mezuak atzitzeko.";
"auth_softlogout_clear_data_sign_out" = "Amaitu saioa";
// MARK: Emoji picker
"emoji_picker_title" = "Erreakzioak";
"emoji_picker_people_category" = "Irribarretxoak eta jendea";
"emoji_picker_nature_category" = "Animaliak eta natura";
"emoji_picker_foods_category" = "Janaria eta edaria";
"emoji_picker_activity_category" = "Jarduerak";
"emoji_picker_places_category" = "Bidaiak eta tokiak";
"emoji_picker_objects_category" = "Objektuak";
"emoji_picker_symbols_category" = "Sinboloak";
"emoji_picker_flags_category" = "Banderak";
......@@ -789,3 +789,35 @@
// MARK: File upload