diff --git a/Sources/NextcloudKitUI/Documentation.docc/Documentation.md b/Sources/NextcloudKitUI/Documentation.docc/Documentation.md index b8481a27..366cfacd 100644 --- a/Sources/NextcloudKitUI/Documentation.docc/Documentation.md +++ b/Sources/NextcloudKitUI/Documentation.docc/Documentation.md @@ -19,6 +19,11 @@ Key traits of this package: ## Topics +### Onboarding + +- ``OnboardingView`` +- ``OnboardingFeature`` + ### Login - ``ServerAddressView`` diff --git a/Sources/NextcloudKitUI/Image+appIcon.swift b/Sources/NextcloudKitUI/Image+appIcon.swift new file mode 100644 index 00000000..2a49befc --- /dev/null +++ b/Sources/NextcloudKitUI/Image+appIcon.swift @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: Nextcloud GmbH +// SPDX-FileCopyrightText: 2026 Milen Pivchev +// SPDX-License-Identifier: GPL-3.0-or-later + +import SwiftUI + +extension Image { + /// + /// The app's own icon, loaded from the largest icon file the build lists in the Info.plist. + /// + public static var appIcon: Image? { + #if canImport(UIKit) + let icons = Bundle.main.object(forInfoDictionaryKey: "CFBundleIcons") as? [String: Any] + let primaryIcon = icons?["CFBundlePrimaryIcon"] as? [String: Any] + + guard let name = (primaryIcon?["CFBundleIconFiles"] as? [String])?.last, let image = UIImage(named: name) else { return nil } + + return Image(uiImage: image) + #else + return nil + #endif + } +} diff --git a/Sources/NextcloudKitUI/Localizable.xcstrings b/Sources/NextcloudKitUI/Localizable.xcstrings index 81339956..7e99d3f0 100644 --- a/Sources/NextcloudKitUI/Localizable.xcstrings +++ b/Sources/NextcloudKitUI/Localizable.xcstrings @@ -1293,232 +1293,6 @@ } } }, - "Apply permissions to all recipients?" : { - "comment" : "Confirmation title shown before replacing every recipient's individual permissions.", - "localizations" : { - "da" : { - "stringUnit" : { - "state" : "translated", - "value" : "Anvend rettighederne på alle modtagere?" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Berechtigungen auf alle Empfänger anwenden" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Apply permissions to all recipients?" - } - }, - "en_GB" : { - "stringUnit" : { - "state" : "translated", - "value" : "Apply permissions to all recipients?" - } - }, - "es" : { - "stringUnit" : { - "state" : "translated", - "value" : "¿Aplicar permisos a todos los destinatarios?" - } - }, - "et_EE" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kas rakendad õigusi kõikidele saajatele?" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Appliquer les autorisations à tous les destinataires ?" - } - }, - "ga" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cuir ceadanna i bhfeidhm ar gach faighteoir?" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Applicare le autorizzazioni a tutti i destinatari?" - } - }, - "mk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Примени за сите примачи?" - } - }, - "pt_BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Aplicar permissões a todos os destinatários?" - } - }, - "ro" : { - "stringUnit" : { - "state" : "translated", - "value" : "Aplici permisiunile tuturor destinatarilor?" - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Применить разрешения ко всем получателям?" - } - }, - "sk_SK" : { - "stringUnit" : { - "state" : "translated", - "value" : "Použiť oprávnenia na všetkých príjemcov?" - } - }, - "sv" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tillämpa behörigheterna för alla mottagare?" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "İzinler tüm alıcılara uygulansın mı?" - } - }, - "zh_HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "要將權限套用至所有接收者嗎?" - } - }, - "zh_TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "套用權限至所有收件人?" - } - } - } - }, - "Apply to all" : { - "comment" : "Button that confirms applying top-level permissions to every recipient.", - "localizations" : { - "da" : { - "stringUnit" : { - "state" : "translated", - "value" : "Anvend på alle" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Auf alle anwenden" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Apply to all" - } - }, - "en_GB" : { - "stringUnit" : { - "state" : "translated", - "value" : "Apply to all" - } - }, - "es" : { - "stringUnit" : { - "state" : "translated", - "value" : "Aplicar a todos" - } - }, - "et_EE" : { - "stringUnit" : { - "state" : "translated", - "value" : "Rakenda kõigile" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Appliquer à tous" - } - }, - "ga" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cuir i bhfeidhm ar gach rud" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Applicare a tutti" - } - }, - "mk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Примени за сите" - } - }, - "pt_BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Aplicar a todos" - } - }, - "ro" : { - "stringUnit" : { - "state" : "translated", - "value" : "Aplică tuturor" - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Применить ко всем" - } - }, - "sk_SK" : { - "stringUnit" : { - "state" : "translated", - "value" : "Použiť na všetko" - } - }, - "sv" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tillämpa för alla" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tümüne uygula" - } - }, - "zh_HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "套用至全部" - } - }, - "zh_TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "套用至全部" - } - } - } - }, "Anyone" : { "comment" : "Audience option that makes a unified share accessible to anyone with its public link.", "localizations" : { @@ -1758,46 +1532,272 @@ } } }, - "Cancel" : { - "comment" : "Button that dismisses a confirmation dialog without making changes.", + "Apply permissions to all recipients?" : { + "comment" : "Confirmation title shown before replacing every recipient's individual permissions.", "localizations" : { - "af" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "Anvend rettighederne på alle modtagere?" } }, - "an" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "Berechtigungen auf alle Empfänger anwenden" } }, - "ar" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "Apply permissions to all recipients?" } }, - "ast" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "Apply permissions to all recipients?" } }, - "az" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "¿Aplicar permisos a todos los destinatarios?" } }, - "be" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Cancel" + "value" : "Kas rakendad õigusi kõikidele saajatele?" } }, - "bg_BG" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appliquer les autorisations à tous les destinataires ?" + } + }, + "ga" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cuir ceadanna i bhfeidhm ar gach faighteoir?" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Applicare le autorizzazioni a tutti i destinatari?" + } + }, + "mk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Примени за сите примачи?" + } + }, + "pt_BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar permissões a todos os destinatários?" + } + }, + "ro" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplici permisiunile tuturor destinatarilor?" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Применить разрешения ко всем получателям?" + } + }, + "sk_SK" : { + "stringUnit" : { + "state" : "translated", + "value" : "Použiť oprávnenia na všetkých príjemcov?" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tillämpa behörigheterna för alla mottagare?" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İzinler tüm alıcılara uygulansın mı?" + } + }, + "zh_HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "要將權限套用至所有接收者嗎?" + } + }, + "zh_TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "套用權限至所有收件人?" + } + } + } + }, + "Apply to all" : { + "comment" : "Button that confirms applying top-level permissions to every recipient.", + "localizations" : { + "da" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anvend på alle" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auf alle anwenden" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apply to all" + } + }, + "en_GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apply to all" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar a todos" + } + }, + "et_EE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rakenda kõigile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appliquer à tous" + } + }, + "ga" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cuir i bhfeidhm ar gach rud" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Applicare a tutti" + } + }, + "mk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Примени за сите" + } + }, + "pt_BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar a todos" + } + }, + "ro" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplică tuturor" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Применить ко всем" + } + }, + "sk_SK" : { + "stringUnit" : { + "state" : "translated", + "value" : "Použiť na všetko" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tillämpa för alla" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tümüne uygula" + } + }, + "zh_HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "套用至全部" + } + }, + "zh_TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "套用至全部" + } + } + } + }, + "Cancel" : { + "comment" : "Button that dismisses a confirmation dialog without making changes.", + "localizations" : { + "af" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "an" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "ast" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "az" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "be" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "bg_BG" : { "stringUnit" : { "state" : "translated", "value" : "Cancel" @@ -2399,1717 +2399,1728 @@ } } }, - "Custom permissions" : { - "comment" : "Menu option that reveals per-permission toggles for custom permissions.", + "Continue" : { + "comment" : "Button label to leave the onboarding screen.", "localizations" : { - "ar" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "أذونات مخصصة" + "value" : "Continue" } - }, - "ast" : { + } + } + }, + "Copied" : { + "comment" : "Temporary button label confirming that a share link was copied.", + "localizations" : { + "ar" : { "stringUnit" : { "state" : "translated", - "value" : "Personlizar los permisos" + "value" : "نُسخت " } }, - "az" : { + "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Xüsusi icazələr" + "value" : "Copióse" } }, - "bg_BG" : { + "be" : { "stringUnit" : { "state" : "translated", - "value" : "Персонализиране на права" + "value" : "Скапіявана" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Permisos personalitzats" + "value" : "Copiat" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Uživatelsky určená oprávnění" + "value" : "Zkopírováno" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Brugerdefinerede rettigheder" + "value" : "Kopieret" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Benutzerdefinierte Berechtigungen" + "value" : "Kopiert" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Προσαρμοσμένα δικαιώματα" + "value" : "Αντιγράφηκε" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Custom permissions" + "value" : "Copied" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Custom permissions" + "value" : "Copied" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Permisos personalizados" + "value" : "Copiado" } }, "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Permisos personalizados" + "value" : "Copiado" } }, "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Permisos personalizados" + "value" : "Copiado" + } + }, + "es_PE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copiado" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Kohandatud õigused" + "value" : "Kopeeritud" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Baimen pertsonalizatuak" + "value" : "Kopiatuta" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "مجوزهای سفارشی" + "value" : "کپی شد" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Mukautetut oikeudet" + "value" : "Kopioitu" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Autorisations personnalisées" + "value" : "Copié" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Ceadanna saincheaptha" + "value" : "Cóipeáladh" } }, "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Permisos personalizados" + "value" : "Copiado" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Prilagođena dopuštenja" + "value" : "Kopirano" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Egyéni jogosultságok" + "value" : "Másolva" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Izin kustom" + "value" : "Disalin" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Sérsniðnar heimildir" + "value" : "Afritað" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Autorizzazioni personalizzate" + "value" : "Copiato" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "カスタム権限" + "value" : "コピー" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Custom permissions" + "value" : "Copied" + } + }, + "kab" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yettwanɣel" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 권한" + "value" : "복사됨" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "ສິດອະນຸຍາດແບບກຳນົດເອງ" + "value" : "Copied" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Tinkinti leidimai" + "value" : "Nukopijuota" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Прилагодени дозволи" + "value" : "Копирано" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "Тусгай эрхүүд" + "value" : "Хуулагдсан" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Egendefinerte tillatelser" + "value" : "Kopiert" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Aangepaste machtigingen" + "value" : "Gekopieerd" + } + }, + "oc" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copiat" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Uprawnienia niestandardowe" + "value" : "Skopiowane" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Permissões personalizadas" + "value" : "Copiado" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Permissões personalizadas" + "value" : "Copiado" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Permisiuni personalizate" + "value" : "Copiat" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Пользовательские права доступа" + "value" : "Скопировано" } }, "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Permissos personalizados" + "value" : "Copiadu" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Vlastné oprávnenia" + "value" : "Skopírované" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Dovoljenja po meri" + "value" : "Kopirano" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Произвољне дозволе" + "value" : "Копирано" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Anpassade behörigheter" + "value" : "Kopierat" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Ruhusa maalum" + "value" : "Iliyonakiliwa" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "நகலெடுக்கப்பட்டது" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel izinler" + "value" : "Kopyalandı" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "ئىختىيارى ئىجازەت" + "value" : "كۆچۈرۈلگەن" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Спеціальні дозволи" + "value" : "Скопійовано" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền tùy chỉnh" + "value" : "Đã sao chép" } }, "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "自定义权限" + "value" : "已复制" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "自訂權限" + "value" : "已複製" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "自訂權限" + "value" : "已複製" } } } }, - "Copied" : { - "comment" : "Temporary button label confirming that a share link was copied.", + "Copy private link" : { + "comment" : "Copies the in-server link of the file for invited people.", "localizations" : { "ar" : { "stringUnit" : { "state" : "translated", - "value" : "نُسخت " + "value" : "نسخ الرابط الخاص" } }, "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Copióse" + "value" : "Copiar l'enllaz priváu" } }, "be" : { "stringUnit" : { "state" : "translated", - "value" : "Скапіявана" + "value" : "Капіяваць прыватную спасылку" + } + }, + "bg_BG" : { + "stringUnit" : { + "state" : "translated", + "value" : "Копирай скритата връзка" + } + }, + "br" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eilañ al liamm prevez" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Copiat" + "value" : "Copia l'enllaç privat" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Zkopírováno" + "value" : "Zkopírovat soukromý odkaz" + } + }, + "cy_GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copïo dolen breifat" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Kopieret" + "value" : "Kopiér privat link" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiert" + "value" : "Privaten Link kopieren" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Αντιγράφηκε" + "value" : "Αντιγραφή ιδιωτικού συνδέσμου" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Copied" + "value" : "Copy private link" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Copied" + "value" : "Copy private link" } }, - "es" : { + "eo" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Kopii privatan ligilon" } }, - "es_EC" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar enlace privado" } }, - "es_MX" : { + "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar enlace privado" } }, - "es_PE" : { + "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar enlace privado" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Kopeeritud" + "value" : "Kopeeri privaatne link" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiatuta" + "value" : "Kopiatu esteka pribatua" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "کپی شد" + "value" : "کپی پیوند خصوصی" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Kopioitu" + "value" : "Kopioi yksityinen linkki" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Copié" + "value" : "Copier le lien privé" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Cóipeáladh" + "value" : "Cóipeáil nasc príobháideach" } }, "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar a ligazón privada" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "העתקת קישור פרטי" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopirano" + "value" : "Kopiraj privatnu poveznicu" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Másolva" + "value" : "Személyes hivatkozás másolása" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Disalin" + "value" : "Salin tautan privat" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Afritað" + "value" : "Afrita einkatengil" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Copiato" + "value" : "Copia collegamento privato" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "コピー" + "value" : "プライベートリンクをコピー" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Copied" - } - }, - "kab" : { - "stringUnit" : { - "state" : "translated", - "value" : "Yettwanɣel" + "value" : "Copy private link" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사됨" + "value" : "개인 링크 주소 복사" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Copied" + "value" : "Copy private link" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Nukopijuota" + "value" : "Kopijuoti privačią nuorodą" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Копирано" + "value" : "Копирај приватен линк" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "Хуулагдсан" + "value" : "Хувийн холбоос хуулах" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiert" + "value" : "Kopier privat lenke" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Gekopieerd" + "value" : "Privélink kopiëren" } }, "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Copiat" + "value" : "Copiar lo ligam privat" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Skopiowane" + "value" : "Kopiuj link prywatny" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar link privado" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Copiado" + "value" : "Copiar link privado" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Copiat" + "value" : "Copiază linkul privat" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Скопировано" + "value" : "Скопировать закрытую ссылку" } }, "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Copiadu" + "value" : "Còpia ligòngiu privadu" + } + }, + "si" : { + "stringUnit" : { + "state" : "translated", + "value" : "පුද්. සබැඳිය පිටපත් කරන්න" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Skopírované" + "value" : "Kopírovať privátny odkaz" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Kopirano" + "value" : "Kopiraj zasebno povezavo" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Копирано" + "value" : "Копирај приватну везу" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Kopierat" + "value" : "Kopiera privat länk" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Iliyonakiliwa" - } - }, - "ta" : { - "stringUnit" : { - "state" : "translated", - "value" : "நகலெடுக்கப்பட்டது" + "value" : "Nakili kiungio binafsi" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyalandı" + "value" : "Kişisel bağlantıyı kopyala" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "كۆچۈرۈلگەن" + "value" : "شەخسىي ئۇلىنىشنى كۆچۈرۈڭ" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Скопійовано" + "value" : "Копіювати приватне посилання" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép" + "value" : "Sao chép liên kết riêng tư" } }, "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "已复制" + "value" : "复制私有链接" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "已複製" + "value" : "複製私人連結" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "已複製" + "value" : "複製私人連結" } } } }, - "Copy private link" : { - "comment" : "Copies the in-server link of the file for invited people.", + "Copy public link" : { + "comment" : "Copies the public link of an Anyone share.", "localizations" : { "ar" : { "stringUnit" : { "state" : "translated", - "value" : "نسخ الرابط الخاص" + "value" : "نسخ الرابط العمومي" } }, "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar l'enllaz priváu" + "value" : "Copiar l'enllaz públicu" } }, "be" : { "stringUnit" : { "state" : "translated", - "value" : "Капіяваць прыватную спасылку" + "value" : "Скапіяваць публічную спасылку" } }, "bg_BG" : { "stringUnit" : { "state" : "translated", - "value" : "Копирай скритата връзка" + "value" : "Копирай публичната връзка" } }, "br" : { "stringUnit" : { "state" : "translated", - "value" : "Eilañ al liamm prevez" + "value" : "Eilañ al liamm foran" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Copia l'enllaç privat" + "value" : "Copia l'enllaç públic" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Zkopírovat soukromý odkaz" + "value" : "Zkopírovat veřejný odkaz" } }, "cy_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Copïo dolen breifat" + "value" : "Copïo dolen gyhoeddus" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiér privat link" + "value" : "Kopier offentligt link" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Privaten Link kopieren" + "value" : "Öffentlichen Link kopieren" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Αντιγραφή ιδιωτικού συνδέσμου" + "value" : "Αντιγραφή δημόσιου συνδέσμου" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Copy private link" + "value" : "Copy public link" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Copy private link" + "value" : "Copy public link" } }, - "eo" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Kopii privatan ligilon" + "value" : "Copiar enlace público" } }, - "es" : { + "es_AR" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace privado" + "value" : "Copiar link publico" } }, "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace privado" + "value" : "Copiar enlace público" } }, "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace privado" + "value" : "Copiar enlace público" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Kopeeri privaatne link" + "value" : "Kopeeri avalik link" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiatu esteka pribatua" + "value" : "Kopiatu esteka publikoa" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "کپی پیوند خصوصی" + "value" : "کپی لینک عمومی" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Kopioi yksityinen linkki" + "value" : "Kopioi julkinen linkki" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Copier le lien privé" + "value" : "Copier le lien public" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Cóipeáil nasc príobháideach" + "value" : "Cóipeáil nasc poiblí" } }, "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar a ligazón privada" + "value" : "Copiar a ligazón pública" } }, "he" : { "stringUnit" : { "state" : "translated", - "value" : "העתקת קישור פרטי" + "value" : "העתקת הקישור הציבורי" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiraj privatnu poveznicu" + "value" : "Kopiraj javnu poveznicu" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Személyes hivatkozás másolása" + "value" : "Nyilvános hivatkozás másolása" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Salin tautan privat" + "value" : "Salin tautan publik" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Afrita einkatengil" + "value" : "Afrita opinberan tengil" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Copia collegamento privato" + "value" : "Copia collegamento pubblico" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "プライベートリンクをコピー" + "value" : "公開リンクをコピー" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Copy private link" + "value" : "Copy public link" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 링크 주소 복사" + "value" : "공개 링크 복사" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Copy private link" + "value" : "ສຳເນົາລິ້ງສາທາລະນະ" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Kopijuoti privačią nuorodą" + "value" : "Kopijuoti viešąją nuorodą" + } + }, + "lv" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ievietot publisko saiti starpliktuvē" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Копирај приватен линк" + "value" : "Копирај јавен линк" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "Хувийн холбоос хуулах" + "value" : "Нийтийн холбоос хуулах" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Kopier privat lenke" + "value" : "Kopier offentlig lenke" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Privélink kopiëren" + "value" : "Kopieer openbare link" } }, "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar lo ligam privat" + "value" : "Copiar lo ligam public" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiuj link prywatny" + "value" : "Kopiuj link publiczny" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar link privado" + "value" : "Copiar link público" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar link privado" + "value" : "Copiar ligação publica" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Copiază linkul privat" + "value" : "Copiază linkul public" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Скопировать закрытую ссылку" + "value" : "Скопировать общедоступную ссылку" } }, "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Còpia ligòngiu privadu" - } - }, - "si" : { - "stringUnit" : { - "state" : "translated", - "value" : "පුද්. සබැඳිය පිටපත් කරන්න" + "value" : "Còpia ligòngiu pùblicu" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Kopírovať privátny odkaz" + "value" : "Kopírovať verejný odkaz" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiraj zasebno povezavo" + "value" : "Kopiraj javno povezavo" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Копирај приватну везу" + "value" : "Копирај јавни линк" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiera privat länk" + "value" : "Kopiera offentlig länk" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Nakili kiungio binafsi" + "value" : "Nakili kiungo cha umma" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kişisel bağlantıyı kopyala" + "value" : "Herkese açık bağlantıyı kopyala" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "شەخسىي ئۇلىنىشنى كۆچۈرۈڭ" + "value" : "ئاممىۋى ئۇلىنىشنى كۆچۈرۈڭ" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Копіювати приватне посилання" + "value" : "Копіювати публічне посилання" + } + }, + "uz" : { + "stringUnit" : { + "state" : "translated", + "value" : "Umumiy havoladan nusxa oling" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép liên kết riêng tư" + "value" : "Sao chép liên kết công khai" } }, "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "复制私有链接" + "value" : "复制公开链接" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "複製私人連結" + "value" : "複製公開連結" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "複製私人連結" + "value" : "複製公開連結" } } } }, - "Copy public link" : { - "comment" : "Copies the public link of an Anyone share.", + "Could not create share, try again later" : { + "comment" : "Error message shown when a unified share cannot be created.", "localizations" : { - "ar" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "نسخ الرابط العمومي" + "value" : "Delingen kunne ikke oprettes. Prøv igen senere." } }, - "ast" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar l'enllaz públicu" + "value" : "Freigabe konnte nicht erstellt werden. Bitte später erneut versuchen." } }, - "be" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Скапіяваць публічную спасылку" + "value" : "Could not create share, try again later" } }, - "bg_BG" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Копирай публичната връзка" + "value" : "Could not create share, try again later" } }, - "br" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Eilañ al liamm foran" + "value" : "No se ha podido compartir, inténtalo de nuevo más tarde" } }, - "ca" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Copia l'enllaç públic" + "value" : "Jagamise lisamine ei õnnestunud. Palun proovi hiljem uuesti." } }, - "cs_CZ" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Zkopírovat veřejný odkaz" + "value" : "Impossible de créer le partage, réessayez plus tard" } }, - "cy_GB" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Copïo dolen gyhoeddus" + "value" : "Níorbh fhéidir an comhroinnt a chruthú; déan iarracht arís níos déanaí" } }, - "da" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Kopier offentligt link" + "value" : "Impossibile creare la condivisione; riprova più tardi." } }, - "de" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Öffentlichen Link kopieren" + "value" : "Não foi possível criar o compartilhamento; tente novamente mais tarde" } }, - "el" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Αντιγραφή δημόσιου συνδέσμου" + "value" : "Partajarea nu a putut fi creată, încearcă din nou mai târziu" } }, - "en" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Copy public link" + "value" : "Не удалось создать общий ресурс, повторите попытку позже" } }, - "en_GB" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Copy public link" + "value" : "Nepodarilo sa vytvoriť zdieľanie, skúste to znova neskôr" } }, - "es" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace público" + "value" : "Det gick inte att skapa delningen. Försök igen senare." } }, - "es_AR" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar link publico" + "value" : "Paylaşım oluşturulamadı, bir süre sonra yeniden deneyin" } }, - "es_EC" : { + "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace público" + "value" : "無法建立分享,請稍後再試" } }, - "es_MX" : { + "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar enlace público" + "value" : "無法建立分享,請稍後再試" } - }, - "et_EE" : { + } + } + }, + "Couldn't load shares" : { + "comment" : "Full-screen error title when the share list fails to load.", + "localizations" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Kopeeri avalik link" + "value" : "Delingerne kunne ikke indlæses" } }, - "eu" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiatu esteka publikoa" + "value" : "Freigaben konnten nicht geladen werden" } }, - "fa" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "کپی لینک عمومی" + "value" : "Couldn't load shares" } }, - "fi_FI" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Kopioi julkinen linkki" + "value" : "Couldn't load shares" } }, - "fr" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Copier le lien public" + "value" : "Error al cargar" } }, - "ga" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Cóipeáil nasc poiblí" + "value" : "Jagamiste laadimine ei õnnestunud" } }, - "gl" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar a ligazón pública" + "value" : "Impossible de charger les partages" } }, - "he" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "העתקת הקישור הציבורי" + "value" : "Níorbh fhéidir scaireanna a luchtú" } }, - "hr" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiraj javnu poveznicu" + "value" : "Impossibile caricare le condivisioni" } }, - "hu_HU" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Nyilvános hivatkozás másolása" + "value" : "Não foi possível carregar os compartilhamentos" } }, - "id" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Salin tautan publik" + "value" : "Partajările nu au putut fi încărcate" } }, - "is" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Afrita opinberan tengil" + "value" : "Не удалось загрузить список общих ресурсов" } }, - "it" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Copia collegamento pubblico" + "value" : "Nepodarilo sa načítať zdieľania" } }, - "ja_JP" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "公開リンクをコピー" + "value" : "Det gick inte att läsa in delningar." } }, - "ka" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copy public link" + "value" : "Paylaşımlar yüklenemedi" } }, - "ko" : { + "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "공개 링크 복사" + "value" : "無法載入分享" } }, - "lo" : { + "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "ສຳເນົາລິ້ງສາທາລະນະ" + "value" : "無法載入分享" } - }, - "lt_LT" : { + } + } + }, + "Custom link" : { + "comment" : "Heading of the editable public-link token row.", + "localizations" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Kopijuoti viešąją nuorodą" + "value" : "Tilpasset link" } }, - "lv" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Ievietot publisko saiti starpliktuvē" + "value" : "Benutzerdefinierter Link" } }, - "mk" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Копирај јавен линк" + "value" : "Custom link" } }, - "mn" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Нийтийн холбоос хуулах" + "value" : "Custom link" } }, - "nb_NO" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Kopier offentlig lenke" + "value" : "Personalizar enlace" } }, - "nl" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Kopieer openbare link" + "value" : "Kohendatud link" } }, - "oc" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar lo ligam public" + "value" : "Lien personnalisé" } }, - "pl" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiuj link publiczny" + "value" : "Nasc saincheaptha" } }, - "pt_BR" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar link público" + "value" : "Link personalizzato" } }, - "pt_PT" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Copiar ligação publica" + "value" : "Прилагоден линк" } }, - "ro" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Copiază linkul public" + "value" : "Link personalizado" } }, - "ru" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Скопировать общедоступную ссылку" + "value" : "Link personalizat" } }, - "sc" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Còpia ligòngiu pùblicu" + "value" : "Пользовательская ссылка" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Kopírovať verejný odkaz" - } - }, - "sl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kopiraj javno povezavo" - } - }, - "sr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Копирај јавни линк" + "value" : "Vlastný odkaz" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Kopiera offentlig länk" - } - }, - "sw" : { - "stringUnit" : { - "state" : "translated", - "value" : "Nakili kiungo cha umma" + "value" : "Anpassad länk" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herkese açık bağlantıyı kopyala" - } - }, - "ug" : { - "stringUnit" : { - "state" : "translated", - "value" : "ئاممىۋى ئۇلىنىشنى كۆچۈرۈڭ" - } - }, - "uk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Копіювати публічне посилання" - } - }, - "uz" : { - "stringUnit" : { - "state" : "translated", - "value" : "Umumiy havoladan nusxa oling" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sao chép liên kết công khai" - } - }, - "zh_CN" : { - "stringUnit" : { - "state" : "translated", - "value" : "复制公开链接" + "value" : "Özel bağlantı" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "複製公開連結" + "value" : "自訂連結" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "複製公開連結" + "value" : "自訂連結" } } } }, - "Could not create share, try again later" : { - "comment" : "Error message shown when a unified share cannot be created.", + "Custom permissions" : { + "comment" : "Menu option that reveals per-permission toggles for custom permissions.", "localizations" : { - "da" : { + "ar" : { "stringUnit" : { "state" : "translated", - "value" : "Delingen kunne ikke oprettes. Prøv igen senere." + "value" : "أذونات مخصصة" } }, - "de" : { + "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Freigabe konnte nicht erstellt werden. Bitte später erneut versuchen." + "value" : "Personlizar los permisos" } }, - "en" : { + "az" : { "stringUnit" : { "state" : "translated", - "value" : "Could not create share, try again later" + "value" : "Xüsusi icazələr" } }, - "en_GB" : { + "bg_BG" : { "stringUnit" : { "state" : "translated", - "value" : "Could not create share, try again later" + "value" : "Персонализиране на права" } }, - "es" : { + "ca" : { "stringUnit" : { "state" : "translated", - "value" : "No se ha podido compartir, inténtalo de nuevo más tarde" + "value" : "Permisos personalitzats" } }, - "et_EE" : { + "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Jagamise lisamine ei õnnestunud. Palun proovi hiljem uuesti." + "value" : "Uživatelsky určená oprávnění" } }, - "fr" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Impossible de créer le partage, réessayez plus tard" + "value" : "Brugerdefinerede rettigheder" } }, - "ga" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Níorbh fhéidir an comhroinnt a chruthú; déan iarracht arís níos déanaí" + "value" : "Benutzerdefinierte Berechtigungen" } }, - "it" : { + "el" : { "stringUnit" : { "state" : "translated", - "value" : "Impossibile creare la condivisione; riprova più tardi." + "value" : "Προσαρμοσμένα δικαιώματα" } }, - "pt_BR" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Não foi possível criar o compartilhamento; tente novamente mais tarde" + "value" : "Custom permissions" } }, - "ro" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Partajarea nu a putut fi creată, încearcă din nou mai târziu" + "value" : "Custom permissions" } }, - "ru" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Не удалось создать общий ресурс, повторите попытку позже" + "value" : "Permisos personalizados" } }, - "sk_SK" : { + "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Nepodarilo sa vytvoriť zdieľanie, skúste to znova neskôr" + "value" : "Permisos personalizados" } }, - "sv" : { + "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Det gick inte att skapa delningen. Försök igen senare." + "value" : "Permisos personalizados" } }, - "tr" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaşım oluşturulamadı, bir süre sonra yeniden deneyin" + "value" : "Kohandatud õigused" } }, - "zh_HK" : { + "eu" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立分享,請稍後再試" + "value" : "Baimen pertsonalizatuak" } }, - "zh_TW" : { + "fa" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立分享,請稍後再試" + "value" : "مجوزهای سفارشی" } - } - } - }, - "Couldn't load shares" : { - "comment" : "Full-screen error title when the share list fails to load.", - "localizations" : { - "da" : { + }, + "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Delingerne kunne ikke indlæses" + "value" : "Mukautetut oikeudet" } }, - "de" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Freigaben konnten nicht geladen werden" + "value" : "Autorisations personnalisées" } }, - "en" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Couldn't load shares" + "value" : "Ceadanna saincheaptha" } }, - "en_GB" : { + "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Couldn't load shares" + "value" : "Permisos personalizados" } }, - "es" : { + "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Error al cargar" + "value" : "Prilagođena dopuštenja" } }, - "et_EE" : { + "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Jagamiste laadimine ei õnnestunud" + "value" : "Egyéni jogosultságok" } }, - "fr" : { + "id" : { "stringUnit" : { "state" : "translated", - "value" : "Impossible de charger les partages" + "value" : "Izin kustom" } }, - "ga" : { + "is" : { "stringUnit" : { "state" : "translated", - "value" : "Níorbh fhéidir scaireanna a luchtú" + "value" : "Sérsniðnar heimildir" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Impossibile caricare le condivisioni" + "value" : "Autorizzazioni personalizzate" } }, - "pt_BR" : { + "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "Não foi possível carregar os compartilhamentos" + "value" : "カスタム権限" } }, - "ro" : { + "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Partajările nu au putut fi încărcate" + "value" : "Custom permissions" } }, - "ru" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Не удалось загрузить список общих ресурсов" + "value" : "사용자 지정 권한" } }, - "sk_SK" : { + "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Nepodarilo sa načítať zdieľania" + "value" : "ສິດອະນຸຍາດແບບກຳນົດເອງ" } }, - "sv" : { + "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Det gick inte att läsa in delningar." + "value" : "Tinkinti leidimai" } }, - "tr" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaşımlar yüklenemedi" + "value" : "Прилагодени дозволи" } }, - "zh_HK" : { + "mn" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入分享" + "value" : "Тусгай эрхүүд" } }, - "zh_TW" : { + "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入分享" + "value" : "Egendefinerte tillatelser" } - } - } - }, - "Custom link" : { - "comment" : "Heading of the editable public-link token row.", - "localizations" : { - "da" : { + }, + "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Tilpasset link" + "value" : "Aangepaste machtigingen" } }, - "de" : { + "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Benutzerdefinierter Link" + "value" : "Uprawnienia niestandardowe" } }, - "en" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Custom link" + "value" : "Permissões personalizadas" } }, - "en_GB" : { + "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Custom link" + "value" : "Permissões personalizadas" } }, - "es" : { + "ro" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permisiuni personalizate" + } + }, + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Personalizar enlace" + "value" : "Пользовательские права доступа" } }, - "et_EE" : { + "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Kohendatud link" + "value" : "Permissos personalizados" } }, - "fr" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Lien personnalisé" + "value" : "Vlastné oprávnenia" } }, - "ga" : { + "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Nasc saincheaptha" + "value" : "Dovoljenja po meri" } }, - "it" : { + "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Link personalizzato" + "value" : "Произвољне дозволе" } }, - "mk" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Прилагоден линк" + "value" : "Anpassade behörigheter" } }, - "pt_BR" : { + "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Link personalizado" + "value" : "Ruhusa maalum" } }, - "ro" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Link personalizat" + "value" : "Özel izinler" } }, - "ru" : { + "ug" : { "stringUnit" : { "state" : "translated", - "value" : "Пользовательская ссылка" + "value" : "ئىختىيارى ئىجازەت" } }, - "sk_SK" : { + "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Vlastný odkaz" + "value" : "Спеціальні дозволи" } }, - "sv" : { + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Anpassad länk" + "value" : "Quyền tùy chỉnh" } }, - "tr" : { + "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "Özel bağlantı" + "value" : "自定义权限" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "自訂連結" + "value" : "自訂權限" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "自訂連結" + "value" : "自訂權限" } } } @@ -5407,6 +5418,7 @@ }, "Edit" : { "comment" : "Action that opens the unified share editor.", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -6087,366 +6099,366 @@ } } }, - "Hide recipients" : { - "comment" : "Accessibility label for collapsing a share's recipient list.", + "For people who already have access" : { + "comment" : "Subtitle explaining that an internal link works only for people who already have access.", "localizations" : { - "da" : { + "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Skjul modtagere" + "value" : "Pro lidi, kteří už mají přístup" } }, - "de" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Empfänger ausblenden" + "value" : "For personer, der allerede har adgang" } }, - "en" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Hide recipients" + "value" : "Für Personen, die bereits Zugriff haben" } }, - "en_GB" : { + "el" : { "stringUnit" : { "state" : "translated", - "value" : "Hide recipients" + "value" : "Για άτομα που έχουν ήδη πρόσβαση" } }, - "es" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Esconder destinatarios" + "value" : "For people who already have access" } }, - "et_EE" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Peida saajad" + "value" : "For people who already have access" } }, - "fr" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Masquer les destinataires" + "value" : "Para las personas que ya tienen acceso" } }, - "ga" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Folaigh na faighteoirí" + "value" : "Neile, kellel juba on ligipääs" } }, - "it" : { + "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Nascondi destinatari" + "value" : "Dagoeneko sarbidea duten pertsonentzat" } }, - "mk" : { + "fa" : { "stringUnit" : { "state" : "translated", - "value" : "Сокриј примачи" + "value" : "برای افرادی که قبلاً دسترسی دارند" } }, - "pt_BR" : { + "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Ocultar destinatários" + "value" : "Henkilöille, joilla on jo käyttöoikeus" } }, - "ro" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Ascunde destinatarii" + "value" : "Pour les personnes qui y ont déjà accès" } }, - "ru" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Скрыть получателей" + "value" : "Do dhaoine a bhfuil rochtain acu cheana féin" } }, - "sk_SK" : { + "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Skryť príjemcov" + "value" : "Para persoas que xa teñen acceso" } }, - "sv" : { + "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Dölj mottagare" + "value" : "Za osobe koje već imaju pristup" } }, - "tr" : { + "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Alıcıları gizle" + "value" : "Azok számára, akik már rendelkeznek hozzáféréssel" } }, - "zh_HK" : { + "id" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏接收者" + "value" : "Untuk orang yang sudah memiliki akses" } }, - "zh_TW" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏收件人" + "value" : "Per le persone che hanno già accesso" } - } - } - }, - "For people who already have access" : { - "comment" : "Subtitle explaining that an internal link works only for people who already have access.", - "localizations" : { - "cs_CZ" : { + }, + "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "Pro lidi, kteří už mají přístup" + "value" : "すでにアクセス権を持っている人向け" } }, - "da" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "For personer, der allerede har adgang" + "value" : "이미 접근 권한이 있는 사람들에게" } }, - "de" : { + "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Für Personen, die bereits Zugriff haben" + "value" : "ສຳລັບຄົນທີ່ມີສິດເຂົ້າເຖິງຢູ່ແລ້ວ" } }, - "el" : { + "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Για άτομα που έχουν ήδη πρόσβαση" + "value" : "Tiems, kurie jau turi prieigą" } }, - "en" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "For people who already have access" + "value" : "За луѓе кој веќе имаат пристап" } }, - "en_GB" : { + "mn" : { "stringUnit" : { "state" : "translated", - "value" : "For people who already have access" + "value" : "Аль хэдийн хандах эрхтэй хүмүүст" } }, - "es" : { + "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Para las personas que ya tienen acceso" + "value" : "Voor personen die al toegang hebben" } }, - "et_EE" : { + "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Neile, kellel juba on ligipääs" + "value" : "Dla osób, które już mają dostęp" } }, - "eu" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Dagoeneko sarbidea duten pertsonentzat" + "value" : "Para pessoas que já têm acesso" } }, - "fa" : { + "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "برای افرادی که قبلاً دسترسی دارند" + "value" : "Para as pessoas que já têm acesso" } }, - "fi_FI" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Henkilöille, joilla on jo käyttöoikeus" + "value" : "Pentru persoanele care au deja acces" } }, - "fr" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Pour les personnes qui y ont déjà accès" + "value" : "Для тех, у кого уже есть доступ" } }, - "ga" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Do dhaoine a bhfuil rochtain acu cheana féin" + "value" : "Pre ľudí, ktorí už majú prístup" } }, - "gl" : { + "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Para persoas que xa teñen acceso" + "value" : "Особе које већ имају приступ" } }, - "hr" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Za osobe koje već imaju pristup" + "value" : "För personer som redan har åtkomst" } }, - "hu_HU" : { + "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Azok számára, akik már rendelkeznek hozzáféréssel" + "value" : "Kwa watu ambao tayari wana ufikiaji" } }, - "id" : { + "th_TH" : { "stringUnit" : { "state" : "translated", - "value" : "Untuk orang yang sudah memiliki akses" + "value" : "สำหรับผู้ที่มีสิทธิ์เข้าถึงอยู่แล้ว" } }, - "it" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Per le persone che hanno già accesso" + "value" : "Erişme izni olan kişiler için" } }, - "ja_JP" : { + "ug" : { "stringUnit" : { "state" : "translated", - "value" : "すでにアクセス権を持っている人向け" + "value" : "ئاللىبۇرۇن كىرەلەيدىغان ئادەملەر ئۈچۈن" } }, - "ko" : { + "uk" : { "stringUnit" : { "state" : "translated", - "value" : "이미 접근 권한이 있는 사람들에게" + "value" : "Для тих, хто має доступ" } }, - "lo" : { + "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "ສຳລັບຄົນທີ່ມີສິດເຂົ້າເຖິງຢູ່ແລ້ວ" + "value" : "对于已经拥有访问权限的人员" } }, - "lt_LT" : { + "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "Tiems, kurie jau turi prieigą" + "value" : "對於已有存取權限的人" } }, - "mk" : { + "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "За луѓе кој веќе имаат пристап" + "value" : "對於已有存取權限的人" } - }, - "mn" : { + } + } + }, + "Hide recipients" : { + "comment" : "Accessibility label for collapsing a share's recipient list.", + "localizations" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "Аль хэдийн хандах эрхтэй хүмүүст" + "value" : "Skjul modtagere" } }, - "nl" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Voor personen die al toegang hebben" + "value" : "Empfänger ausblenden" } }, - "pl" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Dla osób, które już mają dostęp" + "value" : "Hide recipients" } }, - "pt_BR" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Para pessoas que já têm acesso" + "value" : "Hide recipients" } }, - "pt_PT" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Para as pessoas que já têm acesso" + "value" : "Esconder destinatarios" } }, - "ro" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Pentru persoanele care au deja acces" + "value" : "Peida saajad" } }, - "ru" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Для тех, у кого уже есть доступ" + "value" : "Masquer les destinataires" } }, - "sk_SK" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Pre ľudí, ktorí už majú prístup" + "value" : "Folaigh na faighteoirí" } }, - "sr" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Особе које већ имају приступ" + "value" : "Nascondi destinatari" } }, - "sv" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "För personer som redan har åtkomst" + "value" : "Сокриј примачи" } }, - "sw" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Kwa watu ambao tayari wana ufikiaji" + "value" : "Ocultar destinatários" } }, - "th_TH" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "สำหรับผู้ที่มีสิทธิ์เข้าถึงอยู่แล้ว" + "value" : "Ascunde destinatarii" } }, - "tr" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Erişme izni olan kişiler için" + "value" : "Скрыть получателей" } }, - "ug" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "ئاللىبۇرۇن كىرەلەيدىغان ئادەملەر ئۈچۈن" + "value" : "Skryť príjemcov" } }, - "uk" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Для тих, хто має доступ" + "value" : "Dölj mottagare" } }, - "zh_CN" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "对于已经拥有访问权限的人员" + "value" : "Alıcıları gizle" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "對於已有存取權限的人" + "value" : "隱藏接收者" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "對於已有存取權限的人" + "value" : "隱藏收件人" } } } @@ -7472,7 +7484,7 @@ } }, "OK" : { - "comment" : "Button that dismisses an error alert.", + "comment" : "Button label for error alert dismissal.", "localizations" : { "da" : { "stringUnit" : { @@ -8164,6 +8176,119 @@ } } }, + "Remove password" : { + "comment" : "Destructive action that removes the password from a share.", + "localizations" : { + "da" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fjern adgangskode" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passwort entfernen" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove password" + } + }, + "en_GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove password" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar contraseña" + } + }, + "et_EE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eemalda salaõna" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le mot de passe" + } + }, + "ga" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bain an focal faire" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rimuovi la password" + } + }, + "mk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Избриши лозинка" + } + }, + "pt_BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remover senha" + } + }, + "ro" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elimină parola" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Удалить пароль" + } + }, + "sk_SK" : { + "stringUnit" : { + "state" : "translated", + "value" : "Odstrániť heslo" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ta bort lösenord" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Parolayı kaldır" + } + }, + "zh_HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "移除密碼" + } + }, + "zh_TW" : { + "stringUnit" : { + "state" : "translated", + "value" : "移除密碼" + } + } + } + }, "Retry" : { "comment" : "Button that retries loading the unified share list after an error.", "localizations" : { @@ -8655,2713 +8780,2601 @@ } } }, - "Scan QR Code" : { - "comment" : "Button label\nNavigation bar title", + "Save" : { + "comment" : "Button that confirms a text property change.", "localizations" : { - "da" : { + "af" : { "stringUnit" : { "state" : "translated", - "value" : "Scan QR-kode" + "value" : "Save" } }, - "de" : { + "an" : { "stringUnit" : { "state" : "translated", - "value" : "QR-Code scannen" + "value" : "Save" } }, - "en" : { + "ar" : { "stringUnit" : { "state" : "translated", - "value" : "Scan QR Code" + "value" : "Save" } }, - "en_GB" : { + "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Scan QR Code" + "value" : "Save" } }, - "es" : { + "az" : { "stringUnit" : { "state" : "translated", - "value" : "Escanear código QR" + "value" : "Save" } }, - "et_EE" : { + "be" : { "stringUnit" : { "state" : "translated", - "value" : "Skaneeri QR-koodi" + "value" : "Save" + } + }, + "bg_BG" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "bn_BD" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "br" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "bs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "ca" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desa" + } + }, + "cs_CZ" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uložit" + } + }, + "cy_GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "da" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gem" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speichern" + } + }, + "el" : { + "stringUnit" : { + "state" : "translated", + "value" : "Αποθήκευση" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "en_GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" } }, - "fr" : { + "eo" : { "stringUnit" : { "state" : "translated", - "value" : "Scanner le QR code" + "value" : "Save" } }, - "ga" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Scanáil Cód QR" + "value" : "Guardar" } }, - "it" : { + "es_419" : { "stringUnit" : { "state" : "translated", - "value" : "Scansiona il QR Code" + "value" : "Save" } }, - "mk" : { + "es_AR" : { "stringUnit" : { "state" : "translated", - "value" : "Скенирај QR код" + "value" : "Save" } }, - "pt_BR" : { + "es_CL" : { "stringUnit" : { "state" : "translated", - "value" : "Escanear código QR" + "value" : "Save" } }, - "ro" : { + "es_CO" : { "stringUnit" : { "state" : "translated", - "value" : "Scanează codul QR" + "value" : "Save" } }, - "ru" : { + "es_CR" : { "stringUnit" : { "state" : "translated", - "value" : "Сканировать QR код" + "value" : "Save" } }, - "sk_SK" : { + "es_DO" : { "stringUnit" : { "state" : "translated", - "value" : "Naskenovať QR kód" + "value" : "Save" } }, - "sv" : { + "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Skanna QR-kod" + "value" : "Save" } }, - "tr" : { + "es_GT" : { "stringUnit" : { "state" : "translated", - "value" : "Kare kodu tara" + "value" : "Save" } }, - "zh_HK" : { + "es_HN" : { "stringUnit" : { "state" : "translated", - "value" : "掃描 QR 碼" + "value" : "Save" } }, - "zh_TW" : { + "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "掃描 QR code" + "value" : "Save" } - } - } - }, - "Send" : { - "comment" : "Primary action button title in the unified share view.", - "localizations" : { - "af" : { + }, + "es_NI" : { "stringUnit" : { "state" : "translated", - "value" : "Stuur" + "value" : "Save" } }, - "ar" : { + "es_PA" : { "stringUnit" : { "state" : "translated", - "value" : "أرسِل" + "value" : "Save" } }, - "ast" : { + "es_PE" : { "stringUnit" : { "state" : "translated", - "value" : "Unviar" + "value" : "Save" } }, - "az" : { + "es_PR" : { "stringUnit" : { "state" : "translated", - "value" : "Göndər" + "value" : "Save" } }, - "be" : { + "es_PY" : { "stringUnit" : { "state" : "translated", - "value" : "Адправіць" + "value" : "Save" } }, - "bg_BG" : { + "es_SV" : { "stringUnit" : { "state" : "translated", - "value" : "Изпращане" + "value" : "Save" } }, - "bn_BD" : { + "es_UY" : { "stringUnit" : { "state" : "translated", - "value" : "পাঠাও" + "value" : "Save" } }, - "br" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Kas" + "value" : "Salvesta" } }, - "bs" : { + "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Pošalji" + "value" : "Save" } }, - "ca" : { + "fa" : { "stringUnit" : { "state" : "translated", - "value" : "Envia" + "value" : "ذخیره" } }, - "cs_CZ" : { + "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Odeslat" + "value" : "Save" } }, - "cy_GB" : { + "fo" : { "stringUnit" : { "state" : "translated", - "value" : "Anfon" + "value" : "Save" } }, - "da" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Enregistrer" } }, - "de" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Senden" + "value" : "Sábháil" } }, - "el" : { + "gd" : { "stringUnit" : { "state" : "translated", - "value" : "Αποστολή" + "value" : "Save" } }, - "en" : { + "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Gardar" } }, - "en_GB" : { + "he" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Save" } }, - "eo" : { + "hi_IN" : { "stringUnit" : { "state" : "translated", - "value" : "Sendi" + "value" : "Save" } }, - "es" : { + "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Spremi" } }, - "es_419" : { + "hsb" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_AR" : { + "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Mentés" } }, - "es_CL" : { + "hy" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_CO" : { + "ia" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_CR" : { + "id" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Simpan" } }, - "es_DO" : { + "ig" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_EC" : { + "is" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Vista" } }, - "es_GT" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_HN" : { + "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "保存する" } }, - "es_MX" : { + "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_NI" : { + "ka_GE" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_PA" : { + "kab" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Sekles" } }, - "es_PE" : { + "km" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_PR" : { + "kn" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_PY" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_SV" : { + "la" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "es_UY" : { + "lb" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "et_EE" : { + "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Saada" + "value" : "Save" } }, - "eu" : { + "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Bidali" + "value" : "Išsaugoti" } }, - "fa" : { + "lv" : { "stringUnit" : { "state" : "translated", - "value" : "ارسال" + "value" : "Save" } }, - "fi_FI" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Lähetä" + "value" : "Зачувај" } }, - "fr" : { + "mn" : { "stringUnit" : { "state" : "translated", - "value" : "Envoyer" + "value" : "–•–∞–¥–≥–∞–ª–∞—Ö" } }, - "ga" : { + "mr" : { "stringUnit" : { "state" : "translated", - "value" : "Seol" + "value" : "Save" } }, - "gd" : { + "ms_MY" : { "stringUnit" : { "state" : "translated", - "value" : "Cuir" + "value" : "Save" } }, - "gl" : { + "my" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "he" : { + "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "שליחה" + "value" : "Save" } }, - "hr" : { + "ne" : { "stringUnit" : { "state" : "translated", - "value" : "Pošaljite" + "value" : "Save" } }, - "hu_HU" : { + "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Küldés" + "value" : "Opslaan" } }, - "hy" : { + "nn_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Ուղարկել" + "value" : "Save" } }, - "ia" : { + "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Inviar" + "value" : "Save" } }, - "id" : { + "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Kirim" + "value" : "Zapisz" } }, - "is" : { + "ps" : { "stringUnit" : { "state" : "translated", - "value" : "Senda" + "value" : "Save" } }, - "it" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Invia" + "value" : "Salvar" } }, - "ja_JP" : { + "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "送る" + "value" : "Save" } }, - "ka" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Salvează" } }, - "ka_GE" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "გაგზავნა" + "value" : "Save" } }, - "kab" : { + "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Tuzna" + "value" : "Save" } }, - "km" : { + "si" : { "stringUnit" : { "state" : "translated", - "value" : "ផ្ញើ" + "value" : "Save" } }, - "kn" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "ಕಳುಹಿಸಿ" + "value" : "Uložiť" } }, - "ko" : { + "sl" : { "stringUnit" : { "state" : "translated", - "value" : "전송" + "value" : "Save" } }, - "lb" : { + "sq" : { "stringUnit" : { "state" : "translated", - "value" : "Schécken" + "value" : "Save" } }, - "lo" : { + "sr" : { "stringUnit" : { "state" : "translated", - "value" : "ສົ່ງ" + "value" : "Save" } }, - "lt_LT" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Siųsti" + "value" : "Spara" } }, - "lv" : { + "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Sūtīt" + "value" : "Hifadhi" } }, - "mk" : { + "ta" : { "stringUnit" : { "state" : "translated", - "value" : "Прати" + "value" : "Save" } }, - "mn" : { + "th_TH" : { "stringUnit" : { "state" : "translated", - "value" : "–∏–ª–≥—ç—ç—Ö" + "value" : "Save" } }, - "ms_MY" : { + "tk" : { "stringUnit" : { "state" : "translated", - "value" : "Hantar" + "value" : "Save" } }, - "nb_NO" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Kaydet" } }, - "nl" : { + "ug" : { "stringUnit" : { "state" : "translated", - "value" : "Verzenden" + "value" : "Save" } }, - "nn_NO" : { + "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Send" + "value" : "Save" } }, - "oc" : { + "ur_PK" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "Save" } }, - "pl" : { + "uz" : { "stringUnit" : { "state" : "translated", - "value" : "Wyślij" + "value" : "Saqlash" } }, - "ps" : { + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "لېږل" + "value" : "Save" } }, - "pt_BR" : { + "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "保存" } }, - "pt_PT" : { + "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar" + "value" : "儲存" } }, - "ro" : { + "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "Trimite" + "value" : "儲存" } }, - "ru" : { + "zu_ZA" : { "stringUnit" : { "state" : "translated", - "value" : "Отправить" + "value" : "Save" } - }, - "si" : { + } + } + }, + "Scan QR Code" : { + "comment" : "Button label\nNavigation bar title", + "localizations" : { + "da" : { "stringUnit" : { "state" : "translated", - "value" : "යවන්න" + "value" : "Scan QR-kode" } }, - "sk_SK" : { + "de" : { "stringUnit" : { "state" : "translated", - "value" : "Odoslať" + "value" : "QR-Code scannen" } }, - "sl" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "Pošlji" + "value" : "Scan QR Code" } }, - "sq" : { + "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Dërgo" + "value" : "Scan QR Code" } }, - "sr" : { + "es" : { "stringUnit" : { "state" : "translated", - "value" : "Пошаљи" + "value" : "Escanear código QR" } }, - "sv" : { + "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Skicka" + "value" : "Skaneeri QR-koodi" } }, - "sw" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Tuma" + "value" : "Scanner le QR code" } }, - "th_TH" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "ส่ง" + "value" : "Scanáil Cód QR" } }, - "tk" : { + "it" : { "stringUnit" : { "state" : "translated", - "value" : "Iber" + "value" : "Scansiona il QR Code" } }, - "tr" : { + "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Gönder" + "value" : "Скенирај QR код" } }, - "ug" : { + "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "ئەۋەتىڭ" + "value" : "Escanear código QR" } }, - "uk" : { + "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Надіслати" + "value" : "Scanează codul QR" } }, - "ur_PK" : { + "ru" : { "stringUnit" : { "state" : "translated", - "value" : "بھجیں" + "value" : "Сканировать QR код" } }, - "uz" : { + "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Yuborish" + "value" : "Naskenovať QR kód" } }, - "vi" : { + "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi" + "value" : "Skanna QR-kod" } }, - "zh_CN" : { + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "发送" + "value" : "Kare kodu tara" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "傳送" + "value" : "掃描 QR 碼" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "傳送" + "value" : "掃描 QR code" } } } }, - "Send email" : { - "comment" : "Legacy action for notifying unified-share recipients by email; currently not displayed.", + "Send" : { + "comment" : "Primary action button title in the unified share view.", "localizations" : { "af" : { "stringUnit" : { "state" : "translated", - "value" : "Stuur e-pos" - } - }, - "an" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ninviar correu electronico" + "value" : "Stuur" } }, "ar" : { "stringUnit" : { "state" : "translated", - "value" : "إرسال بريد" + "value" : "أرسِل" } }, "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Unviar un corréu electrónicu" + "value" : "Unviar" } }, "az" : { "stringUnit" : { "state" : "translated", - "value" : "Email yolla" + "value" : "Göndər" } }, "be" : { "stringUnit" : { "state" : "translated", - "value" : "Адправіць электронны ліст" + "value" : "Адправіць" } }, "bg_BG" : { "stringUnit" : { "state" : "translated", - "value" : "Изпращане на имейл" + "value" : "Изпращане" } }, "bn_BD" : { "stringUnit" : { "state" : "translated", - "value" : "ইমেইল পাঠান " + "value" : "পাঠাও" } }, "br" : { "stringUnit" : { "state" : "translated", - "value" : "Kas postel" + "value" : "Kas" } }, "bs" : { "stringUnit" : { "state" : "translated", - "value" : "Pošalji e-poštu" + "value" : "Pošalji" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correu" + "value" : "Envia" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Odeslat e-mail" + "value" : "Odeslat" } }, "cy_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Anfon e-bost" + "value" : "Anfon" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Send e-mail" + "value" : "Send" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "E-Mail senden" + "value" : "Senden" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Αποστολή email" + "value" : "Αποστολή" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Send email" + "value" : "Send" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Send email" + "value" : "Send" } }, "eo" : { "stringUnit" : { "state" : "translated", - "value" : "Sendi retpoŝtmesaĝon" + "value" : "Sendi" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_419" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_AR" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_CL" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_CO" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_CR" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_DO" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_GT" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_HN" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_NI" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_PA" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_PE" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_PR" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_PY" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_SV" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "es_UY" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar correo electrónico" + "value" : "Enviar" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Saada e-kiri" + "value" : "Saada" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Bidali mezu elektronikoa" + "value" : "Bidali" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "ارسال ایمیل" + "value" : "ارسال" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Lähetä sähköposti" - } - }, - "fo" : { - "stringUnit" : { - "state" : "translated", - "value" : "Send t-post" + "value" : "Lähetä" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Envoyer un e-mail" + "value" : "Envoyer" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Seol ríomhphost" + "value" : "Seol" } }, - "gl" : { + "gd" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar o correo" + "value" : "Cuir" } }, - "he" : { + "gl" : { "stringUnit" : { "state" : "translated", - "value" : "שליחת דואר אלקטרוני" + "value" : "Enviar" } }, - "hi_IN" : { + "he" : { "stringUnit" : { "state" : "translated", - "value" : "ईमेल भेजें" + "value" : "שליחה" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Pošalji poruku e-pošte" + "value" : "Pošaljite" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "E-mail küldése" + "value" : "Küldés" } }, "hy" : { "stringUnit" : { "state" : "translated", - "value" : "Ուղարկել փոստ" + "value" : "Ուղարկել" } }, "ia" : { "stringUnit" : { "state" : "translated", - "value" : "Inviar message de e-posta" + "value" : "Inviar" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Kirim email" + "value" : "Kirim" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Senda tölvupóst" + "value" : "Senda" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Invia email" + "value" : "Invia" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "メールを送信" + "value" : "送る" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "ელ.ფოსტის გაგზავნა" + "value" : "Send" } }, "ka_GE" : { "stringUnit" : { "state" : "translated", - "value" : "ელ-წერილის გაგზავნა" + "value" : "გაგზავნა" } }, "kab" : { "stringUnit" : { "state" : "translated", - "value" : "Azen imayl" + "value" : "Tuzna" } }, "km" : { "stringUnit" : { "state" : "translated", - "value" : "ផ្ញើ​អ៊ីមែល" + "value" : "ផ្ញើ" } }, "kn" : { "stringUnit" : { "state" : "translated", - "value" : "ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಿ" + "value" : "ಕಳುಹಿಸಿ" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이메일 보내기" + "value" : "전송" + } + }, + "lb" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schécken" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "ສົ່ງອີເມວ" + "value" : "ສົ່ງ" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Siųsti elektroninį laišką" + "value" : "Siųsti" } }, "lv" : { "stringUnit" : { "state" : "translated", - "value" : "Nosūtīt e-pasta ziņojumu" + "value" : "Sūtīt" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Испрати е-пошта" + "value" : "Прати" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "Мэйл илгээх" + "value" : "–∏–ª–≥—ç—ç—Ö" } }, "ms_MY" : { "stringUnit" : { "state" : "translated", - "value" : "Menghantar E-mel" + "value" : "Hantar" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Send e-post" + "value" : "Send" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "E-mail verzenden" + "value" : "Verzenden" } }, "nn_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Send e-post" + "value" : "Send" } }, "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar email" + "value" : "Enviar" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Wyślij e-mail" + "value" : "Wyślij" + } + }, + "ps" : { + "stringUnit" : { + "state" : "translated", + "value" : "لېږل" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar e-mail" + "value" : "Enviar" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Enviar mensagem" + "value" : "Enviar" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Trimite un e-mail" + "value" : "Trimite" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Отправить письмо" + "value" : "Отправить" } }, - "sc" : { + "si" : { "stringUnit" : { "state" : "translated", - "value" : "Imbia messàgiu de posta eletrònica" + "value" : "යවන්න" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Odoslať email" + "value" : "Odoslať" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Pošlji elektronsko sporočilo" + "value" : "Pošlji" } }, "sq" : { "stringUnit" : { "state" : "translated", - "value" : "Dërgo email" + "value" : "Dërgo" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Пошаљи е-пошту" + "value" : "Пошаљи" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Skicka e-post" + "value" : "Skicka" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Tuma barua pepe" + "value" : "Tuma" } }, "th_TH" : { "stringUnit" : { "state" : "translated", - "value" : "ส่งอีเมล" + "value" : "ส่ง" } }, "tk" : { "stringUnit" : { "state" : "translated", - "value" : "E-poçta iber" + "value" : "Iber" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "E-posta gönder" + "value" : "Gönder" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "ئېلېكترونلۇق خەت ئەۋەتىڭ" + "value" : "ئەۋەتىڭ" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Запрошення" - } - }, - "uz" : { - "stringUnit" : { - "state" : "translated", - "value" : "Xabar yuborish" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Gửi email" - } - }, - "zh_CN" : { - "stringUnit" : { - "state" : "translated", - "value" : "发送电子邮件" - } - }, - "zh_HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送電子郵件" - } - }, - "zh_TW" : { - "stringUnit" : { - "state" : "translated", - "value" : "傳送電子郵件" - } - } - } - }, - "Server Address" : { - "comment" : "Label for text field.", - "localizations" : { - "da" : { - "stringUnit" : { - "state" : "translated", - "value" : "Serveradresse" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Serveradresse" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Server Address" - } - }, - "en_GB" : { - "stringUnit" : { - "state" : "translated", - "value" : "Server Address" - } - }, - "es" : { - "stringUnit" : { - "state" : "translated", - "value" : "Dirección del servidor" - } - }, - "et_EE" : { - "stringUnit" : { - "state" : "translated", - "value" : "Serveri aadress" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Adresse du serveur" - } - }, - "ga" : { - "stringUnit" : { - "state" : "translated", - "value" : "Seoladh an Fhreastalaí" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Indirizzo del server" - } - }, - "mk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Адреса на сервер" - } - }, - "pt_BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Endereço do servidor" - } - }, - "ro" : { - "stringUnit" : { - "state" : "translated", - "value" : "Adresa serverului" + "value" : "Надіслати" } }, - "ru" : { + "ur_PK" : { "stringUnit" : { "state" : "translated", - "value" : "Адрес сервера" + "value" : "بھجیں" } }, - "sk_SK" : { + "uz" : { "stringUnit" : { "state" : "translated", - "value" : "Adresa servera" + "value" : "Yuborish" } }, - "sv" : { + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Serveradress" + "value" : "Gửi" } }, - "tr" : { + "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu adresi" + "value" : "发送" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器位址" + "value" : "傳送" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器位址" + "value" : "傳送" } } } }, - "Settings" : { - "comment" : "Settings section title in the unified share view.", + "Send email" : { + "comment" : "Legacy action for notifying unified-share recipients by email; currently not displayed.", + "extractionState" : "stale", "localizations" : { "af" : { "stringUnit" : { "state" : "translated", - "value" : "Instellings" + "value" : "Stuur e-pos" } }, "an" : { "stringUnit" : { "state" : "translated", - "value" : "Configuración" + "value" : "Ninviar correu electronico" } }, "ar" : { "stringUnit" : { "state" : "translated", - "value" : "الإعدادات" + "value" : "إرسال بريد" } }, "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Configuración" + "value" : "Unviar un corréu electrónicu" } }, "az" : { "stringUnit" : { "state" : "translated", - "value" : "Quraşdırmalar" + "value" : "Email yolla" } }, "be" : { "stringUnit" : { "state" : "translated", - "value" : "Налады" + "value" : "Адправіць электронны ліст" } }, "bg_BG" : { "stringUnit" : { "state" : "translated", - "value" : "Настройки" + "value" : "Изпращане на имейл" } }, "bn_BD" : { "stringUnit" : { "state" : "translated", - "value" : "সেটিংস" + "value" : "ইমেইল পাঠান " } }, "br" : { "stringUnit" : { "state" : "translated", - "value" : "Arventennoù" + "value" : "Kas postel" } }, "bs" : { "stringUnit" : { "state" : "translated", - "value" : "Podešavanje" + "value" : "Pošalji e-poštu" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Paràmetres" + "value" : "Enviar correu" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Settings" + "value" : "Odeslat e-mail" } }, "cy_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Gosodiadau" + "value" : "Anfon e-bost" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Indstillinger" + "value" : "Send e-mail" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Einstellungen" + "value" : "E-Mail senden" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Ρυθμίσεις" + "value" : "Αποστολή email" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Settings" + "value" : "Send email" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Settings" + "value" : "Send email" } }, "eo" : { "stringUnit" : { "state" : "translated", - "value" : "Agordoj" + "value" : "Sendi retpoŝtmesaĝon" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Ajustes" + "value" : "Enviar correo electrónico" } }, "es_419" : { "stringUnit" : { "state" : "translated", - "value" : "Ajustes" + "value" : "Enviar correo electrónico" } }, "es_AR" : { "stringUnit" : { "state" : "translated", - "value" : "Configuración" + "value" : "Enviar correo electrónico" } }, "es_CL" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_CO" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_CR" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_DO" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Ajustes" + "value" : "Enviar correo electrónico" } }, "es_GT" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_HN" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Ajustes" + "value" : "Enviar correo electrónico" } }, "es_NI" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_PA" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_PE" : { "stringUnit" : { "state" : "translated", - "value" : "Ajustes" + "value" : "Enviar correo electrónico" } }, "es_PR" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_PY" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_SV" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "es_UY" : { "stringUnit" : { "state" : "translated", - "value" : "Configuraciones " + "value" : "Enviar correo electrónico" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Seadistused" + "value" : "Saada e-kiri" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Ezarpenak" + "value" : "Bidali mezu elektronikoa" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "تنظیمات" + "value" : "ارسال ایمیل" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Asetukset" + "value" : "Lähetä sähköposti" } }, - "fr" : { + "fo" : { "stringUnit" : { "state" : "translated", - "value" : "Paramètres" + "value" : "Send t-post" } }, - "ga" : { + "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Socruithe" + "value" : "Envoyer un e-mail" } }, - "gd" : { + "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Roghainnean" + "value" : "Seol ríomhphost" } }, "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Axustes" + "value" : "Enviar o correo" } }, "he" : { "stringUnit" : { "state" : "translated", - "value" : "הגדרות" + "value" : "שליחת דואר אלקטרוני" + } + }, + "hi_IN" : { + "stringUnit" : { + "state" : "translated", + "value" : "ईमेल भेजें" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Postavke" + "value" : "Pošalji poruku e-pošte" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Beállítások" + "value" : "E-mail küldése" } }, "hy" : { "stringUnit" : { "state" : "translated", - "value" : "Կարգավորումներ" + "value" : "Ուղարկել փոստ" } }, "ia" : { "stringUnit" : { "state" : "translated", - "value" : "Configurationes" + "value" : "Inviar message de e-posta" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Pengaturan" + "value" : "Kirim email" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Stillingar" + "value" : "Senda tölvupóst" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Impostazioni" + "value" : "Invia email" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "メールを送信" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "ოფციები" + "value" : "ელ.ფოსტის გაგზავნა" } }, "ka_GE" : { "stringUnit" : { "state" : "translated", - "value" : "პარამეტრები" + "value" : "ელ-წერილის გაგზავნა" } }, "kab" : { "stringUnit" : { "state" : "translated", - "value" : "Iɣewwaren" + "value" : "Azen imayl" } }, "km" : { "stringUnit" : { "state" : "translated", - "value" : "ការកំណត់" + "value" : "ផ្ញើ​អ៊ីមែល" } }, "kn" : { "stringUnit" : { "state" : "translated", - "value" : "ಆಯ್ಕೆ" + "value" : "ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸಿ" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정" - } - }, - "lb" : { - "stringUnit" : { - "state" : "translated", - "value" : "Astellungen" + "value" : "이메일 보내기" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "ການຕັ້ງຄ່າ" + "value" : "ສົ່ງອີເມວ" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Nustatymai" + "value" : "Siųsti elektroninį laišką" } }, "lv" : { "stringUnit" : { "state" : "translated", - "value" : "Iestatījumi" + "value" : "Nosūtīt e-pasta ziņojumu" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Параметри" + "value" : "Испрати е-пошта" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "–¢–æ—Ö–∏—Ä–≥–æ–æ" - } - }, - "mr" : { - "stringUnit" : { - "state" : "translated", - "value" : "सेटिंग" + "value" : "Мэйл илгээх" } }, "ms_MY" : { "stringUnit" : { "state" : "translated", - "value" : "Tetapan" + "value" : "Menghantar E-mel" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Innstillinger" - } - }, - "ne" : { - "stringUnit" : { - "state" : "translated", - "value" : "सेटिङ्हरू" + "value" : "Send e-post" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Instellingen" + "value" : "E-mail verzenden" } }, "nn_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Innstillingar" + "value" : "Send e-post" } }, "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Paramètres" + "value" : "Enviar email" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Ustawienia" - } - }, - "ps" : { - "stringUnit" : { - "state" : "translated", - "value" : "سمونې" + "value" : "Wyślij e-mail" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Configurações" + "value" : "Enviar e-mail" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Definições" + "value" : "Enviar mensagem" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Setări" + "value" : "Trimite un e-mail" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Настройки" + "value" : "Отправить письмо" } }, "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Cunfiguratzione" - } - }, - "si" : { - "stringUnit" : { - "state" : "translated", - "value" : "සැකසුම්" + "value" : "Imbia messàgiu de posta eletrònica" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Nastavenia" + "value" : "Odoslať email" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Nastavitve" + "value" : "Pošlji elektronsko sporočilo" } }, "sq" : { "stringUnit" : { "state" : "translated", - "value" : "Rregullimet" + "value" : "Dërgo email" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Поставке" + "value" : "Пошаљи е-пошту" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Inställningar" + "value" : "Skicka e-post" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Mipangilio" - } - }, - "ta" : { - "stringUnit" : { - "state" : "translated", - "value" : "அமைப்புகள்" + "value" : "Tuma barua pepe" } }, "th_TH" : { "stringUnit" : { "state" : "translated", - "value" : "การตั้งค่า" + "value" : "ส่งอีเมล" } }, "tk" : { "stringUnit" : { "state" : "translated", - "value" : "Sazlamalar" + "value" : "E-poçta iber" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar" + "value" : "E-posta gönder" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "تەڭشەكلەر" + "value" : "ئېلېكترونلۇق خەت ئەۋەتىڭ" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Налаштування" - } - }, - "ur_PK" : { - "stringUnit" : { - "state" : "translated", - "value" : "سیٹینگز" + "value" : "Запрошення" } }, "uz" : { "stringUnit" : { "state" : "translated", - "value" : "Sozlamalar" + "value" : "Xabar yuborish" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết lập" + "value" : "Gửi email" } }, "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "设置" + "value" : "发送电子邮件" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "傳送電子郵件" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "傳送電子郵件" } } } }, - "Remove password" : { - "comment" : "Destructive action that removes the password from a share.", + "Server Address" : { + "comment" : "Label for text field.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Fjern adgangskode" + "value" : "Serveradresse" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Passwort entfernen" + "value" : "Serveradresse" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Remove password" + "value" : "Server Address" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Remove password" + "value" : "Server Address" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Eliminar contraseña" + "value" : "Dirección del servidor" } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Eemalda salaõna" + "value" : "Serveri aadress" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Supprimer le mot de passe" + "value" : "Adresse du serveur" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Bain an focal faire" + "value" : "Seoladh an Fhreastalaí" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Rimuovi la password" + "value" : "Indirizzo del server" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Избриши лозинка" + "value" : "Адреса на сервер" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Remover senha" + "value" : "Endereço do servidor" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Elimină parola" + "value" : "Adresa serverului" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Удалить пароль" + "value" : "Адрес сервера" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Odstrániť heslo" + "value" : "Adresa servera" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Ta bort lösenord" + "value" : "Serveradress" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı kaldır" + "value" : "Sunucu adresi" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "移除密碼" + "value" : "伺服器位址" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "移除密碼" + "value" : "伺服器位址" } } } }, - "Save" : { - "comment" : "Button that confirms a text property change.", + "Settings" : { + "comment" : "Settings section title in the unified share view.", "localizations" : { "af" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Instellings" } }, "an" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuración" } }, "ar" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "الإعدادات" } }, "ast" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuración" } }, "az" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Quraşdırmalar" } }, "be" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Налады" } }, "bg_BG" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Настройки" } }, "bn_BD" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "সেটিংস" } }, "br" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Arventennoù" } }, "bs" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Podešavanje" } }, "ca" : { "stringUnit" : { "state" : "translated", - "value" : "Desa" + "value" : "Paràmetres" } }, "cs_CZ" : { "stringUnit" : { "state" : "translated", - "value" : "Uložit" + "value" : "Settings" } }, "cy_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Gosodiadau" } }, "da" : { "stringUnit" : { "state" : "translated", - "value" : "Gem" + "value" : "Indstillinger" } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Speichern" + "value" : "Einstellungen" } }, "el" : { "stringUnit" : { "state" : "translated", - "value" : "Αποθήκευση" + "value" : "Ρυθμίσεις" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Settings" } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Settings" } }, "eo" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Agordoj" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Guardar" + "value" : "Ajustes" } }, "es_419" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Ajustes" } }, "es_AR" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuración" } }, "es_CL" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_CO" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_CR" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_DO" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_EC" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Ajustes" } }, "es_GT" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_HN" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_MX" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Ajustes" } }, "es_NI" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_PA" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_PE" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Ajustes" } }, "es_PR" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_PY" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_SV" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "es_UY" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configuraciones " } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Salvesta" + "value" : "Seadistused" } }, "eu" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Ezarpenak" } }, "fa" : { "stringUnit" : { "state" : "translated", - "value" : "ذخیره" + "value" : "تنظیمات" } }, "fi_FI" : { "stringUnit" : { "state" : "translated", - "value" : "Save" - } - }, - "fo" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "Asetukset" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Enregistrer" + "value" : "Paramètres" } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Sábháil" + "value" : "Socruithe" } }, "gd" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Roghainnean" } }, "gl" : { "stringUnit" : { "state" : "translated", - "value" : "Gardar" + "value" : "Axustes" } }, "he" : { "stringUnit" : { "state" : "translated", - "value" : "Save" - } - }, - "hi_IN" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "הגדרות" } }, "hr" : { "stringUnit" : { "state" : "translated", - "value" : "Spremi" - } - }, - "hsb" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "Postavke" } }, "hu_HU" : { "stringUnit" : { "state" : "translated", - "value" : "Mentés" + "value" : "Beállítások" } }, "hy" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Կարգավորումներ" } }, "ia" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Configurationes" } }, "id" : { "stringUnit" : { "state" : "translated", - "value" : "Simpan" - } - }, - "ig" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "Pengaturan" } }, "is" : { "stringUnit" : { "state" : "translated", - "value" : "Vista" + "value" : "Stillingar" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Impostazioni" } }, "ja_JP" : { "stringUnit" : { "state" : "translated", - "value" : "保存する" + "value" : "設定" } }, "ka" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "ოფციები" } }, "ka_GE" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "პარამეტრები" } }, "kab" : { "stringUnit" : { "state" : "translated", - "value" : "Sekles" + "value" : "Iɣewwaren" } }, "km" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "ការកំណត់" } }, "kn" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "ಆಯ್ಕೆ" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Save" - } - }, - "la" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "설정" } }, "lb" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Astellungen" } }, "lo" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "ການຕັ້ງຄ່າ" } }, "lt_LT" : { "stringUnit" : { "state" : "translated", - "value" : "Išsaugoti" + "value" : "Nustatymai" } }, "lv" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Iestatījumi" } }, "mk" : { "stringUnit" : { "state" : "translated", - "value" : "Зачувај" + "value" : "Параметри" } }, "mn" : { "stringUnit" : { "state" : "translated", - "value" : "–•–∞–¥–≥–∞–ª–∞—Ö" + "value" : "–¢–æ—Ö–∏—Ä–≥–æ–æ" } }, "mr" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "सेटिंग" } }, "ms_MY" : { "stringUnit" : { "state" : "translated", - "value" : "Save" - } - }, - "my" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "Tetapan" } }, "nb_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Innstillinger" } }, "ne" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "सेटिङ्हरू" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Opslaan" + "value" : "Instellingen" } }, "nn_NO" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Innstillingar" } }, "oc" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Paramètres" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Zapisz" + "value" : "Ustawienia" } }, "ps" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "سمونې" } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Salvar" + "value" : "Configurações" } }, "pt_PT" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Definições" } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Salvează" + "value" : "Setări" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Настройки" } }, "sc" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Cunfiguratzione" } }, "si" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "සැකසුම්" } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Uložiť" + "value" : "Nastavenia" } }, "sl" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Nastavitve" } }, "sq" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Rregullimet" } }, "sr" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Поставке" } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Spara" + "value" : "Inställningar" } }, "sw" : { "stringUnit" : { "state" : "translated", - "value" : "Hifadhi" + "value" : "Mipangilio" } }, "ta" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "அமைப்புகள்" } }, "th_TH" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "การตั้งค่า" } }, "tk" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Sazlamalar" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydet" + "value" : "Ayarlar" } }, "ug" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "تەڭشەكلەر" } }, "uk" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Налаштування" } }, "ur_PK" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "سیٹینگز" } }, "uz" : { "stringUnit" : { "state" : "translated", - "value" : "Saqlash" + "value" : "Sozlamalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Save" + "value" : "Thiết lập" } }, "zh_CN" : { "stringUnit" : { "state" : "translated", - "value" : "保存" + "value" : "设置" } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "儲存" + "value" : "設定" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "儲存" - } - }, - "zu_ZA" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save" + "value" : "設定" } } } @@ -11881,6 +11894,7 @@ }, "Share link" : { "comment" : "Row title for a public link share.", + "extractionState" : "stale", "localizations" : { "ar" : { "stringUnit" : { @@ -12306,6 +12320,7 @@ }, "Share link (%lld)" : { "comment" : "Row title for the nth public link share of a file.", + "extractionState" : "stale", "localizations" : { "da" : { "stringUnit" : { @@ -12530,650 +12545,650 @@ } } }, - "This change will replace the individual permission settings of all recipients in this share." : { - "comment" : "Explanation shown before propagating top-level permission changes to every recipient.", + "The address of your Nextcloud web interface when you open it in your browser." : { + "comment" : "Label below the server address field in the login view.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Denne ændring erstatter de individuelle rettigheder for alle modtagere af denne deling." + "value" : "Adressen på din Nextcloud-webgrænseflade, når du åbner den i din browser." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Diese Änderung ersetzt die individuellen Berechtigungseinstellungen aller Empfänger dieser Freigabe." + "value" : "Die Adresse Ihrer Nextcloud-Weboberfläche, wenn Sie diese in Ihrem Browser öffnen." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "This change will replace the individual permission settings of all recipients in this share." + "value" : "The address of your Nextcloud web interface when you open it in your browser." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "This change will replace the individual permission settings of all recipients in this share." + "value" : "The address of your Nextcloud web interface when you open it in your browser." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "El cambio reemplazará los ajustes de permisos individuales de todos los destinatarios de este recurso compartido." + "value" : "La dirección de la interfaz web Nextcloud cuando la abras en tu navegador." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Selle muudatusega asendad kõikide jagamise saajate isiklikud õigused üldiste õigustega." + "value" : "Sinu Nextcloudi kasutajaliidese veebiaadress, kui sa avad ta veebibrauseris." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Cette modification remplacera les paramètres des autorisations individuelles de tous les destinataires de ce partage." + "value" : "L'adresse de votre interface web Nextcloud quand vous l'ouvrez dans votre navigateur." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Cuirfidh an t-athrú seo ionad na socruithe ceada aonair do gach faighteoir sa scair seo." + "value" : "Seoladh do chomhéadain gréasáin Nextcloud nuair a osclaíonn tú é i do bhrabhsálaí." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Questa modifica sostituirà le impostazioni di autorizzazione individuali di tutti i destinatari di questa condivisione." + "value" : "L'indirizzo dell'interfaccia web di Nextcloud quando la apri nel browser." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Essa alteração substituirá as configurações de permissão individuais de todos os destinatários deste compartilhamento." + "value" : "O endereço do site Nextcloud ao abri-lo no navegador." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Această modificare va înlocui setările individuale de permisiuni ale tuturor destinatarilor acestei partajări." + "value" : "Adresa interfeței web Nextcloud, așa cum apare când o deschizi în browser." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Это изменение заменит индивидуальные настройки прав доступа всех получателей в этом общем ресурсе." + "value" : "Адрес вашего веб-интерфейса Nextcloud, когда вы открываете его в вашем браузере." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Táto zmena nahradí individuálne nastavenia oprávnení všetkých príjemcov v tomto zdieľaní." + "value" : "Adresa vášho webového rozhrania Nextcloud, keď ho otvoríte v prehliadači." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Ändringen ersätter de individuella behörighetsinställningarna för alla mottagare av den här delningen." + "value" : "Adressen till Nextclouds webbgränssnitt när du öppnar det i webbläsaren." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklik, bu paylaşımdaki tüm alıcıların bireysel izin ayarlarının yerini alacak." + "value" : "Nextcloud internet arayüzü için tarayıcınızda açacağınız adres." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "此變更會取代此分享中所有接收者的個別權限設定。" + "value" : "你在瀏覽器中開啟 Nextcloud 網頁介面時使用的位址。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "此變更會取代此分享中所有收件人的個別權限設定。" + "value" : "您在瀏覽器中開啟 Nextcloud 網頁介面的位址。" } } } }, - "The address of your Nextcloud web interface when you open it in your browser." : { - "comment" : "Label below the server address field in the login view.", + "The entered server address is invalid." : { + "comment" : "This is an error message.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Adressen på din Nextcloud-webgrænseflade, når du åbner den i din browser." + "value" : "Den indtastede serveradresse er ugyldig." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Die Adresse Ihrer Nextcloud-Weboberfläche, wenn Sie diese in Ihrem Browser öffnen." + "value" : "Die eingegebene Serveradresse ist ungültig." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "The address of your Nextcloud web interface when you open it in your browser." + "value" : "The entered server address is invalid." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "The address of your Nextcloud web interface when you open it in your browser." + "value" : "The entered server address is invalid." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "La dirección de la interfaz web Nextcloud cuando la abras en tu navegador." + "value" : "La dirección del servidor ingresada no es válida." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Sinu Nextcloudi kasutajaliidese veebiaadress, kui sa avad ta veebibrauseris." + "value" : "Sisestatud serveriaadress on vigane." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "L'adresse de votre interface web Nextcloud quand vous l'ouvrez dans votre navigateur." + "value" : "L'adresse du serveur saisie n'est pas valide." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Seoladh do chomhéadain gréasáin Nextcloud nuair a osclaíonn tú é i do bhrabhsálaí." + "value" : "Tá an seoladh freastalaí a iontráladh neamhbhailí." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "L'indirizzo dell'interfaccia web di Nextcloud quando la apri nel browser." + "value" : "L'indirizzo del server non è valido." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "O endereço do site Nextcloud ao abri-lo no navegador." + "value" : "O endereço do servidor inserido é inválido." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Adresa interfeței web Nextcloud, așa cum apare când o deschizi în browser." + "value" : "Adresa de server introdusă este nevalidă." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Адрес вашего веб-интерфейса Nextcloud, когда вы открываете его в вашем браузере." + "value" : "Введённый адрес сервера недействителен." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Adresa vášho webového rozhrania Nextcloud, keď ho otvoríte v prehliadači." + "value" : "Zadaná adresa servera je neplatná." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Adressen till Nextclouds webbgränssnitt när du öppnar det i webbläsaren." + "value" : "Serveradressen du angav är ogiltig." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nextcloud internet arayüzü için tarayıcınızda açacağınız adres." + "value" : "Yazılan sunucu adresi geçersiz." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "你在瀏覽器中開啟 Nextcloud 網頁介面時使用的位址。" + "value" : "輸入的伺服器位址無效。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "您在瀏覽器中開啟 Nextcloud 網頁介面的位址。" + "value" : "輸入的伺服器位址無效。" } } } }, - "The entered server address is invalid." : { - "comment" : "This is an error message.", + "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." : { + "comment" : "Help text below the editable token of a custom public link.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Den indtastede serveradresse er ugyldig." + "value" : "Linket kan ændres, så det er let at huske, men vælg ikke noget, der er let at gætte." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Die eingegebene Serveradresse ist ungültig." + "value" : "Der Link kann so geändert werden, dass er leicht zu merken ist, aber wählen Sie keinen Link, der leicht zu erraten ist." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "The entered server address is invalid." + "value" : "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "The entered server address is invalid." + "value" : "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "La dirección del servidor ingresada no es válida." + "value" : "El enlace puede ser cambiado para ser fácil de recordar, pero no lo cambies a algo que sea fácil de adivinar." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Sisestatud serveriaadress on vigane." + "value" : "Seda linki saad muuta kergesti meeldejäetavaks, aga palun ära muuda selliseks, mis oleks liiga lihtne." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "L'adresse du serveur saisie n'est pas valide." + "value" : "Vous pouvez modifier le lien pour le rendre plus facile à retenir, mais évitez de choisir une valeur facile à deviner." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Tá an seoladh freastalaí a iontráladh neamhbhailí." + "value" : "Is féidir an nasc a athrú ionas go mbeidh sé éasca a mheabhrú, ach ná socraigh é ar rud éigin atá éasca a thomhas." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "L'indirizzo del server non è valido." + "value" : "Il link può essere modificato per renderlo facile da ricordare, ma non impostarlo su qualcosa di facile da indovinare." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "O endereço do servidor inserido é inválido." + "value" : "O link pode ser alterado para ficar fácil de lembrar, mas não o defina como algo que seja fácil de adivinhar." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Adresa de server introdusă este nevalidă." + "value" : "Linkul poate fi modificat pentru a fi ușor de reținut, dar nu îl seta la ceva ușor de ghicit." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Введённый адрес сервера недействителен." + "value" : "Ссылку можно изменить так, чтобы её было легко запомнить, но не стоит выбирать название, которое легко угадать." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Zadaná adresa servera je neplatná." + "value" : "Odkaz je možné zmeniť tak, aby sa dal ľahko zapamätať, ale nenastavujte ho na niečo, čo sa dá ľahko uhádnuť." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Serveradressen du angav är ogiltig." + "value" : "Du kan ändra länken så att den blir lätt att komma ihåg, men välj inte något som är lätt att gissa." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazılan sunucu adresi geçersiz." + "value" : "Bağlantı hatırlanması kolay olacak şekilde değiştirilebilir. Ancak kolay bulunabilecek bir şeye ayarlamayın." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "輸入的伺服器位址無效。" + "value" : "你可以將連結改為容易記住的內容,但請勿設為容易猜到的內容。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "輸入的伺服器位址無效。" + "value" : "您可以將連結改為容易記住的內容,但請勿設為容易猜到的內容。" } } } }, - "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." : { - "comment" : "Help text below the editable token of a custom public link.", + "This change will replace the individual permission settings of all recipients in this share." : { + "comment" : "Explanation shown before propagating top-level permission changes to every recipient.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Linket kan ændres, så det er let at huske, men vælg ikke noget, der er let at gætte." + "value" : "Denne ændring erstatter de individuelle rettigheder for alle modtagere af denne deling." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Der Link kann so geändert werden, dass er leicht zu merken ist, aber wählen Sie keinen Link, der leicht zu erraten ist." + "value" : "Diese Änderung ersetzt die individuellen Berechtigungseinstellungen aller Empfänger dieser Freigabe." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." + "value" : "This change will replace the individual permission settings of all recipients in this share." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "The link can be changed to be easy to remember, but do not set it to something that is easy to guess." + "value" : "This change will replace the individual permission settings of all recipients in this share." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "El enlace puede ser cambiado para ser fácil de recordar, pero no lo cambies a algo que sea fácil de adivinar." + "value" : "El cambio reemplazará los ajustes de permisos individuales de todos los destinatarios de este recurso compartido." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Seda linki saad muuta kergesti meeldejäetavaks, aga palun ära muuda selliseks, mis oleks liiga lihtne." + "value" : "Selle muudatusega asendad kõikide jagamise saajate isiklikud õigused üldiste õigustega." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Vous pouvez modifier le lien pour le rendre plus facile à retenir, mais évitez de choisir une valeur facile à deviner." + "value" : "Cette modification remplacera les paramètres des autorisations individuelles de tous les destinataires de ce partage." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Is féidir an nasc a athrú ionas go mbeidh sé éasca a mheabhrú, ach ná socraigh é ar rud éigin atá éasca a thomhas." + "value" : "Cuirfidh an t-athrú seo ionad na socruithe ceada aonair do gach faighteoir sa scair seo." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Il link può essere modificato per renderlo facile da ricordare, ma non impostarlo su qualcosa di facile da indovinare." + "value" : "Questa modifica sostituirà le impostazioni di autorizzazione individuali di tutti i destinatari di questa condivisione." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "O link pode ser alterado para ficar fácil de lembrar, mas não o defina como algo que seja fácil de adivinhar." + "value" : "Essa alteração substituirá as configurações de permissão individuais de todos os destinatários deste compartilhamento." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Linkul poate fi modificat pentru a fi ușor de reținut, dar nu îl seta la ceva ușor de ghicit." + "value" : "Această modificare va înlocui setările individuale de permisiuni ale tuturor destinatarilor acestei partajări." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Ссылку можно изменить так, чтобы её было легко запомнить, но не стоит выбирать название, которое легко угадать." + "value" : "Это изменение заменит индивидуальные настройки прав доступа всех получателей в этом общем ресурсе." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Odkaz je možné zmeniť tak, aby sa dal ľahko zapamätať, ale nenastavujte ho na niečo, čo sa dá ľahko uhádnuť." + "value" : "Táto zmena nahradí individuálne nastavenia oprávnení všetkých príjemcov v tomto zdieľaní." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Du kan ändra länken så att den blir lätt att komma ihåg, men välj inte något som är lätt att gissa." + "value" : "Ändringen ersätter de individuella behörighetsinställningarna för alla mottagare av den här delningen." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı hatırlanması kolay olacak şekilde değiştirilebilir. Ancak kolay bulunabilecek bir şeye ayarlamayın." + "value" : "Bu değişiklik, bu paylaşımdaki tüm alıcıların bireysel izin ayarlarının yerini alacak." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "你可以將連結改為容易記住的內容,但請勿設為容易猜到的內容。" + "value" : "此變更會取代此分享中所有接收者的個別權限設定。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "您可以將連結改為容易記住的內容,但請勿設為容易猜到的內容。" + "value" : "此變更會取代此分享中所有收件人的個別權限設定。" } } } }, - "This share is limited to \"%@\". You can only grant the same or fewer permissions." : { - "comment" : "Explains that recipient permissions cannot exceed the share-wide preset; the placeholder is the preset name.", + "This recipient will be removed from the share." : { + "comment" : "Message of the recipient removal confirmation dialog.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Denne deling er begrænset til \"%1$@\". Du kan kun give de samme eller færre rettigheder." + "value" : "Modtageren fjernes fra delingen." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Diese Freigabe ist auf \"%1$@\" beschränkt. Sie können nur dieselben oder weniger Berechtigungen erteilen." + "value" : "Dieser Empfänger wird aus der Freigabe entfernt." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "This share is limited to \"%1$@\". You can only grant the same or fewer permissions." + "value" : "This recipient will be removed from the share." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "This share is limited to \"%1$@\". You can only grant the same or fewer permissions." + "value" : "This recipient will be removed from the share." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Este recurso compartido está limitado a %1$@\". Sólo puedes dar los mismos o menos permisos." + "value" : "Este destinatario será eliminado del recurso compartido." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "Sellel jagamisel kehtib piirang (%1$@) ja sa võid jagada vaid samade või vähemate õigustega." + "value" : "See saaja eemaldatakse jagamisest." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Ce partage est limité à « %1$@ ». Vous ne pouvez accorder que des autorisations identiques ou plus restreintes." + "value" : "Ce destinataire sera retiré du partage." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Tá an comhroinnt seo teoranta do \"%1$@\". Ní féidir leat ach na ceadanna céanna nó níos lú ná iad a dheonú." + "value" : "Bainfear an faighteoir seo den scair." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Questa quota è limitata a \"%1$@\". È possibile concedere solo gli stessi permessi o un numero inferiore di permessi." + "value" : "Questo destinatario verrà rimosso dalla condivisione." + } + }, + "mk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Примачот ќе се острани од споделувањето." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Essa compartilhamento está limitado a “%1$@”. Você só pode conceder as mesmas permissões ou menos do que essas." + "value" : "Esse destinatário será removido do compartilhamento." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Această partajare este limitată la „%1$@”. Poți acorda doar aceleași permisiuni sau mai puține." + "value" : "Acest destinatar va fi eliminat din partajare." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Этот общий ресурс ограничен правами \"%1$@\". Вы можете предоставить только те же или меньшие права доступа." + "value" : "Этот получатель будет удален из общего доступа." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Toto zdieľanie je obmedzené na \"%1$@\". Môžete udeliť len rovnaké alebo menšie oprávnenia." + "value" : "Tento príjemca bude odstránený zo zdieľania." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Den här delningen är begränsad till ”%1$@”. Du kan bara ge samma eller färre behörigheter." + "value" : "Den här mottagaren tas bort från delningen." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu paylaşım \"%1$@\" ile sınırlı. Yalnızca aynı veya daha az izinler verebilirsiniz." + "value" : "Bu alıcı paylaşımdan kaldırılacak." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "此分享的權限僅限於「%1$@」。你只能授予相同或更少的權限。" + "value" : "此接收者將會從分享中移除。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "此分享的權限僅限於「%1$@」。您僅能授予相同或更少的權限。" + "value" : "此收件人將會從分享中移除。" } } } }, - "This recipient will be removed from the share." : { - "comment" : "Message of the recipient removal confirmation dialog.", + "This share is limited to \"%@\". You can only grant the same or fewer permissions." : { + "comment" : "Explains that recipient permissions cannot exceed the share-wide preset; the placeholder is the preset name.", "localizations" : { "da" : { "stringUnit" : { "state" : "translated", - "value" : "Modtageren fjernes fra delingen." + "value" : "Denne deling er begrænset til \"%1$@\". Du kan kun give de samme eller færre rettigheder." } }, "de" : { "stringUnit" : { "state" : "translated", - "value" : "Dieser Empfänger wird aus der Freigabe entfernt." + "value" : "Diese Freigabe ist auf \"%1$@\" beschränkt. Sie können nur dieselben oder weniger Berechtigungen erteilen." } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "This recipient will be removed from the share." + "value" : "This share is limited to \"%1$@\". You can only grant the same or fewer permissions." } }, "en_GB" : { "stringUnit" : { "state" : "translated", - "value" : "This recipient will be removed from the share." + "value" : "This share is limited to \"%1$@\". You can only grant the same or fewer permissions." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Este destinatario será eliminado del recurso compartido." + "value" : "Este recurso compartido está limitado a %1$@\". Sólo puedes dar los mismos o menos permisos." } }, "et_EE" : { "stringUnit" : { "state" : "translated", - "value" : "See saaja eemaldatakse jagamisest." + "value" : "Sellel jagamisel kehtib piirang (%1$@) ja sa võid jagada vaid samade või vähemate õigustega." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Ce destinataire sera retiré du partage." + "value" : "Ce partage est limité à « %1$@ ». Vous ne pouvez accorder que des autorisations identiques ou plus restreintes." } }, "ga" : { "stringUnit" : { "state" : "translated", - "value" : "Bainfear an faighteoir seo den scair." + "value" : "Tá an comhroinnt seo teoranta do \"%1$@\". Ní féidir leat ach na ceadanna céanna nó níos lú ná iad a dheonú." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Questo destinatario verrà rimosso dalla condivisione." - } - }, - "mk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Примачот ќе се острани од споделувањето." + "value" : "Questa quota è limitata a \"%1$@\". È possibile concedere solo gli stessi permessi o un numero inferiore di permessi." } }, "pt_BR" : { "stringUnit" : { "state" : "translated", - "value" : "Esse destinatário será removido do compartilhamento." + "value" : "Essa compartilhamento está limitado a “%1$@”. Você só pode conceder as mesmas permissões ou menos do que essas." } }, "ro" : { "stringUnit" : { "state" : "translated", - "value" : "Acest destinatar va fi eliminat din partajare." + "value" : "Această partajare este limitată la „%1$@”. Poți acorda doar aceleași permisiuni sau mai puține." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Этот получатель будет удален из общего доступа." + "value" : "Этот общий ресурс ограничен правами \"%1$@\". Вы можете предоставить только те же или меньшие права доступа." } }, "sk_SK" : { "stringUnit" : { "state" : "translated", - "value" : "Tento príjemca bude odstránený zo zdieľania." + "value" : "Toto zdieľanie je obmedzené na \"%1$@\". Môžete udeliť len rovnaké alebo menšie oprávnenia." } }, "sv" : { "stringUnit" : { "state" : "translated", - "value" : "Den här mottagaren tas bort från delningen." + "value" : "Den här delningen är begränsad till ”%1$@”. Du kan bara ge samma eller färre behörigheter." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu alıcı paylaşımdan kaldırılacak." + "value" : "Bu paylaşım \"%1$@\" ile sınırlı. Yalnızca aynı veya daha az izinler verebilirsiniz." } }, "zh_HK" : { "stringUnit" : { "state" : "translated", - "value" : "此接收者將會從分享中移除。" + "value" : "此分享的權限僅限於「%1$@」。你只能授予相同或更少的權限。" } }, "zh_TW" : { "stringUnit" : { "state" : "translated", - "value" : "此收件人將會從分享中移除。" + "value" : "此分享的權限僅限於「%1$@」。您僅能授予相同或更少的權限。" } } } diff --git a/Sources/NextcloudKitUI/Views/Login/AlternativeLoginMethodsView.swift b/Sources/NextcloudKitUI/Views/Login/AlternativeLoginMethodsView.swift deleted file mode 100644 index bc70b5cf..00000000 --- a/Sources/NextcloudKitUI/Views/Login/AlternativeLoginMethodsView.swift +++ /dev/null @@ -1,106 +0,0 @@ -// SPDX-FileCopyrightText: Nextcloud GmbH -// SPDX-FileCopyrightText: 2025 Iva Horn -// SPDX-License-Identifier: GPL-3.0-or-later - -import CodeScanner -import SwiftUI - -/// -/// The QR code scan and shared account selection buttons in ``ServerAddressView``. -/// -/// The visibility of the shared accounts button is determined based on the availability of shared accounts. -/// -struct AlternativeLoginMethodsView: View { - #if os(iOS) - let scanHandler: (Result) -> Void - #endif - - let selectionHandler: (SharedAccount) -> Void - - /// - /// Whether the app found shared accounts or not. - /// - var sharedAccounts: [SharedAccount] - - #if os(iOS) - /// - /// State toggle for presenting the QR code scanner sheet. - /// - @State var isPresentingCodeScanner = false - #endif - - /// - /// State toggle whether the shared accounts have been suggested once during lifetime of this view. - /// - @State var hasSuggestedSharedAccounts = false - - /// - /// State toggle for presenting the sheet to select accounts shared among apps of the same group. - /// - @State var isPresentingSharedAccounts = false - - #if os(iOS) - init(sharedAccounts: [SharedAccount], scanHandler: @escaping (Result) -> Void, selectionHandler: @escaping (SharedAccount) -> Void) { - self.sharedAccounts = sharedAccounts - self.scanHandler = scanHandler - self.selectionHandler = selectionHandler - } - #else - init(sharedAccounts: [SharedAccount], selectionHandler: @escaping (SharedAccount) -> Void) { - self.sharedAccounts = sharedAccounts - self.selectionHandler = selectionHandler - } - #endif - - var body: some View { - VStack(alignment: .leading) { - Spacer() - - HStack { - Spacer() - - VStack(alignment: .leading) { - #if os(iOS) // Camera usually is available on iOS devices only. - Button { - isPresentingCodeScanner = true - } label: { - Image(systemName: "qrcode.viewfinder") - .resizable() - .scaledToFit() - .frame(width: 32, height: 32) - - Text(String(localized: "Scan QR Code", bundle: .module, comment: "Button label")) - } - .padding() - .codeScannerSheet(isPresented: $isPresentingCodeScanner, scanHandler) - #endif - - if sharedAccounts.isEmpty == false { - Button { - isPresentingSharedAccounts = true - } label: { - Image(systemName: "person.fill.badge.plus") - .resizable() - .scaledToFit() - .frame(width: 32, height: 32) - - Text(String(localized: "Accounts from other Apps", bundle: .module, comment: "Button label")) - } - .padding() - .sharedAccountsSheet(isPresented: $isPresentingSharedAccounts, sharedAccounts: sharedAccounts, selectionHandler: selectionHandler) - .onAppear { - if sharedAccounts.isEmpty == false && hasSuggestedSharedAccounts == false { - isPresentingSharedAccounts = true - hasSuggestedSharedAccounts = true - } - } - } - } - - Spacer() - } - - Spacer() - } - } -} diff --git a/Sources/NextcloudKitUI/Views/Login/ServerAddressView.swift b/Sources/NextcloudKitUI/Views/Login/ServerAddressView.swift index 8c98a8f6..3f1e3930 100644 --- a/Sources/NextcloudKitUI/Views/Login/ServerAddressView.swift +++ b/Sources/NextcloudKitUI/Views/Login/ServerAddressView.swift @@ -54,127 +54,194 @@ public struct ServerAddressView: View { /// @State private var model: LoginFlowModel + #if os(iOS) + /// + /// State toggle for presenting the QR code scanner sheet. + /// + @State private var isPresentingCodeScanner = false + #endif + + /// + /// State toggle whether the shared accounts have been suggested once during lifetime of this view. + /// + @State private var hasSuggestedSharedAccounts = false + + /// + /// State toggle for presenting the sheet to select accounts shared among apps of the same group. + /// + @State private var isPresentingSharedAccounts = false + // MARK: - Implementation public var body: some View { @Bindable var model = model - return ZStack { - backgroundColor - - VStack { - Spacer(minLength: 40) + return NavigationStack { + ZStack { + backgroundColor - // Brand image binding or fallback symbol. - brandImage - .resizable() - .aspectRatio(contentMode: .fit) - .foregroundStyle(backgroundColor.readable) - .frame(minHeight: 100) - .padding(.vertical, 40) + VStack { + Spacer(minLength: 40) - // Some space between brand logo and server address field. - if verticalSizeClass == .regular { - Spacer() - .frame(height: 50) - } + // Brand image binding or fallback symbol. + brandImage + .resizable() + .aspectRatio(contentMode: .fit) + .foregroundStyle(backgroundColor.readable) + .frame(width: 240, height: 120) + .padding(.vertical, 40) - // Container to add horizontal spacers for regular size classes. - HStack { - if horizontalSizeClass == .regular { - Spacer(minLength: 100) + // Some space between brand logo and server address field. + if verticalSizeClass == .regular { + Spacer() + .frame(height: 50) } - // Container for the server address input and button. + // Container to add horizontal spacers for regular size classes. HStack { - TextField( - text: $model.enteredServerAddress, - prompt: Text(verbatim: "https://example.org/").foregroundColor(backgroundColor.readable.opacity(0.5)) - ) { - Text("Server Address", bundle: .module, comment: "Label for text field.") - } - .textContentType(.URL) - .autocorrectionDisabled() - #if os(iOS) - .foregroundStyle(backgroundColor.readable) - .keyboardType(.URL) - .textInputAutocapitalization(.never) - .submitLabel(.done) - #endif - .onSubmit { - model.logIn() + if horizontalSizeClass == .regular { + Spacer(minLength: 100) } - if model.isActive { - ProgressView() - .progressViewStyle(.circular) - .tint(backgroundColor.readable) - } else { - Button { + // Container for the server address input and button. + HStack { + TextField( + text: $model.enteredServerAddress, + prompt: Text(verbatim: "https://example.org/").foregroundColor(backgroundColor.readable.opacity(0.5)) + ) { + Text("Server Address", bundle: .module, comment: "Label for text field.") + } + .textContentType(.URL) + .autocorrectionDisabled() + #if os(iOS) + .foregroundStyle(backgroundColor.readable) + .keyboardType(.URL) + .textInputAutocapitalization(.never) + .submitLabel(.done) + #endif + .onSubmit { model.logIn() - } label: { - #if !os(macOS) - Image(systemName: "arrow.right") - #else - Image(systemName: "arrow.right.circle") - .font(.title) - .foregroundStyle(.white) + } + + if model.isActive { + ProgressView() + .progressViewStyle(.circular) + .tint(backgroundColor.readable) + } else { + Button { + model.logIn() + } label: { + #if !os(macOS) + Image(systemName: "arrow.right") + #else + Image(systemName: "arrow.right.circle") + .font(.title) + .foregroundStyle(.white) + #endif + } + #if os(macOS) + .buttonStyle(.plain) #endif } - #if os(macOS) - .buttonStyle(.plain) - #endif } - } - #if !os(macOS) - .padding(EdgeInsets(top: 8, leading: 10, bottom: 8, trailing: 10)) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(backgroundColor.readable, lineWidth: 1) - ) - #endif + #if !os(macOS) + .padding(EdgeInsets(top: 8, leading: 10, bottom: 8, trailing: 10)) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(backgroundColor.readable, lineWidth: 1) + ) + #endif - if horizontalSizeClass == .regular { - Spacer(minLength: 100) + if horizontalSizeClass == .regular { + Spacer(minLength: 100) + } } - } - Text("The address of your Nextcloud web interface when you open it in your browser.", bundle: .module, comment: "Label below the server address field in the login view.") - .foregroundStyle(backgroundColor.readable) - .font(.footnote) - .padding(4) + Text("The address of your Nextcloud web interface when you open it in your browser.", bundle: .module, comment: "Label below the server address field in the login view.") + .foregroundStyle(backgroundColor.readable) + .font(.footnote) + .padding(4) + + Spacer() - Spacer() + #if os(iOS) // Camera usually is available on iOS devices only. + Button { + isPresentingCodeScanner = true + } label: { + Image(systemName: "qrcode.viewfinder") + .resizable() + .scaledToFit() + .frame(width: 32, height: 32) - // Buttons for QR code and shared accounts. - #if os(iOS) - AlternativeLoginMethodsView(sharedAccounts: sharedAccounts, scanHandler: { model.handleQRCodeScan($0) }, selectionHandler: { model.selectSharedAccount($0) }) - #else - AlternativeLoginMethodsView(sharedAccounts: sharedAccounts, selectionHandler: { model.selectSharedAccount($0) }) - #endif + Text(String(localized: "Scan QR Code", bundle: .module, comment: "Button label")) + } + .padding() + .codeScannerSheet(isPresented: $isPresentingCodeScanner) { + model.handleQRCodeScan($0) + } + #endif - Spacer() + Spacer() + } + .disabled(model.isActive) + .tint(backgroundColor.readable) + .padding() + .safeAreaPadding(.all) } - .disabled(model.isActive) - .tint(backgroundColor.readable) - .padding() - .safeAreaPadding(.all) - } - .ignoresSafeArea() - .task(id: model.isPresentingLoginPage) { - // Clearing the flag cancels this task, which closes the browser sheet. - guard model.isPresentingLoginPage, let loginAddress = model.loginAddress else { return } + .ignoresSafeArea() + .toolbar { + if sharedAccounts.isEmpty == false { + if #available(iOS 26.0, macOS 26.0, *) { + sharedAccountsToolbarItem + .sharedBackgroundVisibility(.hidden) + } else { + sharedAccountsToolbarItem + } + } + } + #if os(iOS) + .toolbarBackground(.hidden, for: .navigationBar) + #endif + .sharedAccountsSheet(isPresented: $isPresentingSharedAccounts, sharedAccounts: sharedAccounts, selectionHandler: { model.selectSharedAccount($0) }) + .onAppear { + if sharedAccounts.isEmpty == false && hasSuggestedSharedAccounts == false { + isPresentingSharedAccounts = true + hasSuggestedSharedAccounts = true + } + } + .task(id: model.isPresentingLoginPage) { + // Clearing the flag cancels this task, which closes the browser sheet. + guard model.isPresentingLoginPage, let loginAddress = model.loginAddress else { return } - await model.presentLoginPage(loginAddress, using: webAuthenticationSession) + await model.presentLoginPage(loginAddress, using: webAuthenticationSession) + } + .alert(String(localized: "Login Failed", bundle: .module, comment: "Alert title"), isPresented: $model.isPresentingAlert) { + Button(role: .cancel) { + model.errorMessage = nil + } label: { + Text("OK", bundle: .module, comment: "Button label for error alert dismissal.") + } + } message: { + Text(model.errorMessage ?? "?") + } } - .alert(String(localized: "Login Failed", bundle: .module, comment: "Alert title"), isPresented: $model.isPresentingAlert) { - Button(role: .cancel) { - model.errorMessage = nil + } + + /// + /// The toolbar entry point for accounts from other apps, as in the login view of the Files app. + /// + private var sharedAccountsToolbarItem: some ToolbarContent { + ToolbarItem(placement: .primaryAction) { + Button { + isPresentingSharedAccounts = true } label: { - Text("OK", bundle: .module, comment: "Button label for error alert dismissal.") + Label { + Text("Accounts from other Apps", bundle: .module, comment: "Button label") + } icon: { + Image(systemName: "person.badge.plus") + } } - } message: { - Text(model.errorMessage ?? "?") + .tint(backgroundColor.readable) } } } diff --git a/Sources/NextcloudKitUI/Views/Login/SharedAccountsView.swift b/Sources/NextcloudKitUI/Views/Login/SharedAccountsView.swift index f3d373d8..5ed9ebd2 100644 --- a/Sources/NextcloudKitUI/Views/Login/SharedAccountsView.swift +++ b/Sources/NextcloudKitUI/Views/Login/SharedAccountsView.swift @@ -34,8 +34,10 @@ struct SharedAccountsView: View { .resizable() .aspectRatio(contentMode: .fit) .frame(width: 40, height: 40) + .clipShape(Capsule()) .padding(.trailing, 8) + VStack(alignment: .leading) { Text(sharedAccount.name) Text(sharedAccount.host.absoluteString) @@ -48,7 +50,7 @@ struct SharedAccountsView: View { .padding() } .buttonStyle(PlainButtonStyle()) - .background(.ultraThickMaterial) + .background(.thickMaterial) .clipShape(Capsule()) .padding(.horizontal) } @@ -57,6 +59,7 @@ struct SharedAccountsView: View { .navigationBarTitleDisplayMode(.inline) #endif } + .contentMargins(.top, 20, for: .scrollContent) } } } @@ -66,7 +69,7 @@ struct SharedAccountsView: View { // swiftlint:disable force_unwrapping let accounts = [ - SharedAccount("jane", on: URL(string: "http://localhost:8080")!, with: Image(systemName: "person.circle.fill")), + SharedAccount("jane", on: URL(string: "http://localhost:8080")!, with: Image(systemName: "square")), SharedAccount("john", on: URL(string: "http://localhost:8081")!, with: Image(systemName: "bird.circle.fill")), SharedAccount("jean", on: URL(string: "http://localhost:8082")!, with: Image(systemName: "leaf.circle.fill")) ] diff --git a/Sources/NextcloudKitUI/Views/Onboarding/OnboardingFeature.swift b/Sources/NextcloudKitUI/Views/Onboarding/OnboardingFeature.swift new file mode 100644 index 00000000..421ceeb6 --- /dev/null +++ b/Sources/NextcloudKitUI/Views/Onboarding/OnboardingFeature.swift @@ -0,0 +1,28 @@ +// SPDX-FileCopyrightText: Nextcloud GmbH +// SPDX-FileCopyrightText: 2026 Milen Pivchev +// SPDX-License-Identifier: GPL-3.0-or-later + +import SwiftUI + +/// +/// A feature highlighted in an ``OnboardingView`` row. +/// +public struct OnboardingFeature { + let icon: Image + let title: String + let description: String? + + /// + /// Create a new onboarding feature. + /// + /// - Parameters: + /// - icon: The image shown on the leading side of the row. Template images and SF Symbols are tinted. + /// - title: The bold headline of the row. + /// - description: Optional secondary text below the title. + /// + public init(icon: Image, title: String, description: String? = nil) { + self.icon = icon + self.title = title + self.description = description + } +} diff --git a/Sources/NextcloudKitUI/Views/Onboarding/OnboardingView.swift b/Sources/NextcloudKitUI/Views/Onboarding/OnboardingView.swift new file mode 100644 index 00000000..c4d64879 --- /dev/null +++ b/Sources/NextcloudKitUI/Views/Onboarding/OnboardingView.swift @@ -0,0 +1,156 @@ +// SPDX-FileCopyrightText: Nextcloud GmbH +// SPDX-FileCopyrightText: 2026 Milen Pivchev +// SPDX-License-Identifier: GPL-3.0-or-later + +import SwiftUI + +/// +/// A full screen view introducing a list of features, with a single button at the bottom to continue. +/// +public struct OnboardingView: View { + let icon: Image? + let title: String + let features: [OnboardingFeature] + let buttonTitle: String? + let tint: Color + let continueHandler: () -> Void + + /// + /// Create a new onboarding view. + /// + /// - Parameters: + /// - icon: The image above the title, clipped to a rounded square. Defaults to the app's own icon; `nil` hides it. + /// - title: The large title on top of the screen. + /// - features: The rows listed below the title. + /// - buttonTitle: The label of the bottom button. Defaults to "Continue". + /// - tint: The color of the icons and the button. + /// - continueHandler: Called when the user taps the button. + /// + public init(icon: Image? = .appIcon, title: String, features: [OnboardingFeature], buttonTitle: String? = nil, tint: Color = .accentColor, continueHandler: @escaping () -> Void) { + self.icon = icon + self.title = title + self.features = features + self.buttonTitle = buttonTitle + self.tint = tint + self.continueHandler = continueHandler + } + + // MARK: - Environment + + @Environment(\.dynamicTypeSize) private var dynamicTypeSize + + @ScaledMetric(relativeTo: .largeTitle) private var iconSize: CGFloat = 64 + + @ScaledMetric(relativeTo: .headline) private var featureIconSize: CGFloat = 44 + + // MARK: - Implementation + + /// + /// Rows stack vertically at accessibility sizes so words don't break mid-word. + /// + private var rowLayout: AnyLayout { + dynamicTypeSize.isAccessibilitySize ? AnyLayout(VStackLayout(alignment: .leading, spacing: 8)) : AnyLayout(HStackLayout(alignment: .top, spacing: 16)) + } + + private var horizontalPadding: CGFloat { + dynamicTypeSize.isAccessibilitySize ? 20 : 28 + } + + public var body: some View { + VStack(spacing: 0) { + ScrollView { + VStack(alignment: .leading, spacing: 0) { + if let icon { + icon + .resizable() + .scaledToFill() + .frame(width: iconSize, height: iconSize) + .clipShape(.rect(cornerRadius: iconSize * 0.225, style: .continuous)) + .accessibilityHidden(true) + .padding(.bottom, 20) + } + + Text(title) + .font(.largeTitle.bold()) + .accessibilityAddTraits(.isHeader) + .fixedSize(horizontal: false, vertical: true) + .padding(.bottom, 32) + + VStack(alignment: .leading, spacing: 24) { + ForEach(Array(features.enumerated()), id: \.offset) { _, feature in + featureRow(feature) + } + } + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, horizontalPadding) + .padding(.top, 60) + .padding(.bottom, 20) + .frame(maxWidth: 520) + .frame(maxWidth: .infinity) + } + .scrollBounceBehavior(.basedOnSize) + + Button(action: continueHandler) { + Group { + if let buttonTitle { + Text(buttonTitle) + } else { + Text("Continue", bundle: .module, comment: "Button label to leave the onboarding screen.") + } + } + .font(.headline) + .foregroundStyle(tint.readable) + .frame(maxWidth: .infinity) + } + .buttonStyle(.borderedProminent) + .controlSize(.large) + .tint(tint) + .padding(.horizontal, horizontalPadding) + .padding(.vertical) + .frame(maxWidth: 520) + } + } + + private func featureRow(_ feature: OnboardingFeature) -> some View { + rowLayout { + // Sized as a font so every symbol keeps the same optical size and stroke weight. + feature.icon + .font(.system(size: featureIconSize * 0.4, weight: .medium)) + .foregroundStyle(tint) + .frame(width: featureIconSize, height: featureIconSize) + .background(tint.opacity(0.12), in: .rect(cornerRadius: featureIconSize * 0.25, style: .continuous)) + .accessibilityHidden(true) + + VStack(alignment: .leading, spacing: 2) { + Text(feature.title) + .font(.headline) + + if let description = feature.description { + Text(description) + .font(.subheadline) + .foregroundStyle(.secondary) + } + } + .fixedSize(horizontal: false, vertical: true) + } + .accessibilityElement(children: .combine) + } +} + +#if DEBUG + +#Preview { + OnboardingView( + title: "What's New", + features: [ + OnboardingFeature(icon: Image(systemName: "heart"), title: "More Personalized", description: "Top stories picked for you."), + OnboardingFeature(icon: Image(systemName: "star"), title: "New Spotlight Tab", description: "Discover great stories selected by our editors."), + OnboardingFeature(icon: Image(systemName: "play.rectangle"), title: "Title Only") + ] + ) { + print("Continue!") + } +} + +#endif