diff options
Diffstat (limited to 'apps')
63 files changed, 234 insertions, 145 deletions
diff --git a/apps/comments/l10n/nl.js b/apps/comments/l10n/nl.js index 7402ee878bc..0f27b8cb3e4 100644 --- a/apps/comments/l10n/nl.js +++ b/apps/comments/l10n/nl.js @@ -11,6 +11,7 @@ OC.L10N.register( "{author} commented on {file}" : "{author} reageerde op {file}", "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Je werd vermeld op \"{file}\" in een reactie door een sindsdien verwijderde gebruiker", + "{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"", "Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen", "Edit comment" : "Bewerk reactie", "Delete comment" : "Verwijder reactie", @@ -27,7 +28,7 @@ OC.L10N.register( "Comment deleted" : "Reactie verwijderd", "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie", "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie", - "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Je werd vermeld op \"{file}\" in een reactie door een sindsdien verwijderde gebruiker", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Je werd vermeld in een reactie op \"{file}\" door een sindsdien verwijderde gebruiker", "{user} mentioned you in a comment on “{file}”" : "{user} heeft je vermeld in een reactie op “{file}\"" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/nl.json b/apps/comments/l10n/nl.json index ef08f9d6f58..ec75307559e 100644 --- a/apps/comments/l10n/nl.json +++ b/apps/comments/l10n/nl.json @@ -9,6 +9,7 @@ "{author} commented on {file}" : "{author} reageerde op {file}", "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Je werd vermeld op \"{file}\" in een reactie door een sindsdien verwijderde gebruiker", + "{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"", "Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen", "Edit comment" : "Bewerk reactie", "Delete comment" : "Verwijder reactie", @@ -25,7 +26,7 @@ "Comment deleted" : "Reactie verwijderd", "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie", "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie", - "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Je werd vermeld op \"{file}\" in een reactie door een sindsdien verwijderde gebruiker", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Je werd vermeld in een reactie op \"{file}\" door een sindsdien verwijderde gebruiker", "{user} mentioned you in a comment on “{file}”" : "{user} heeft je vermeld in een reactie op “{file}\"" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/id.js b/apps/dashboard/l10n/id.js index c2b06b571a9..6140ea0c426 100644 --- a/apps/dashboard/l10n/id.js +++ b/apps/dashboard/l10n/id.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Dasbor", "Dashboard app" : "Aplikasi dasbor", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Mulai harimu sama berita\n\nDasbor Nextcloud memberi kamu ikhtisar janji temumu yang akan datang, email mendesak, pesan obrolan, tiket masuk, tweet terbaru, dan lebih banyak! Pengguna bisa tambahkan widget-widget yang mereka suka dan berubah mereka dapat mengubah latar belakang sesuai keinginan mereka.", "Customize" : "Sesuaikan", "Edit widgets" : "Edit widget", "Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store", diff --git a/apps/dashboard/l10n/id.json b/apps/dashboard/l10n/id.json index 821911d424f..dba2107230f 100644 --- a/apps/dashboard/l10n/id.json +++ b/apps/dashboard/l10n/id.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Dasbor", "Dashboard app" : "Aplikasi dasbor", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Mulai harimu sama berita\n\nDasbor Nextcloud memberi kamu ikhtisar janji temumu yang akan datang, email mendesak, pesan obrolan, tiket masuk, tweet terbaru, dan lebih banyak! Pengguna bisa tambahkan widget-widget yang mereka suka dan berubah mereka dapat mengubah latar belakang sesuai keinginan mereka.", "Customize" : "Sesuaikan", "Edit widgets" : "Edit widget", "Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store", diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php index 5fb811ad1ab..1e32e74c325 100644 --- a/apps/dav/lib/Connector/Sabre/Node.php +++ b/apps/dav/lib/Connector/Sabre/Node.php @@ -355,23 +355,19 @@ abstract class Node implements \Sabre\DAV\INode { return ''; } - $types = [ - IShare::TYPE_USER, - IShare::TYPE_GROUP, - IShare::TYPE_CIRCLE, - IShare::TYPE_ROOM - ]; - - foreach ($types as $shareType) { - $shares = $this->shareManager->getSharedWith($user, $shareType, $this, -1); - foreach ($shares as $share) { - $note = $share->getNote(); - if ($share->getShareOwner() !== $user && !empty($note)) { - return $note; - } - } + // Retrieve note from the share object already loaded into + // memory, to avoid additional database queries. + $storage = $this->getNode()->getStorage(); + if (!$storage->instanceOfStorage(\OCA\Files_Sharing\SharedStorage::class)) { + return ''; } + /** @var \OCA\Files_Sharing\SharedStorage $storage */ + $share = $storage->getShare(); + $note = $share->getNote(); + if ($share->getShareOwner() !== $user) { + return $note; + } return ''; } diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 412154d8578..2353b97300b 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -60,6 +60,7 @@ OC.L10N.register( "Could not copy \"{file}\"" : "Não foi possível copiar \"{file}\"", "Copied {origin} inside {destination}" : "{origin} foi copiado para {destination}", "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} e outros {nbfiles} arquivos foram copiados para {destination}", + "Failed to redirect to client" : "Falha ao redirecionar para o cliente", "{newName} already exists" : "{newName} já existe", "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\" pois ele não existe mais", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta \"{dir}\". Por favor escolha um nome diferente.", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 66dff855431..3137a308cbf 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -58,6 +58,7 @@ "Could not copy \"{file}\"" : "Não foi possível copiar \"{file}\"", "Copied {origin} inside {destination}" : "{origin} foi copiado para {destination}", "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} e outros {nbfiles} arquivos foram copiados para {destination}", + "Failed to redirect to client" : "Falha ao redirecionar para o cliente", "{newName} already exists" : "{newName} já existe", "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\" pois ele não existe mais", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta \"{dir}\". Por favor escolha um nome diferente.", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 9da7a8fd694..6de77955db1 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -60,6 +60,7 @@ OC.L10N.register( "Could not copy \"{file}\"" : "\"{file}\" kopyalanamadı", "Copied {origin} inside {destination}" : "{origin} dosyası, {destination} içine kopyalandı", "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ve diğer {nbfiles} dosya, {destination} içine kopyalandı", + "Failed to redirect to client" : "İstemciye yönlendirilemedi", "{newName} already exists" : "{newName} zaten var", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" yeniden adlandırılamadı, artık yok", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" adı \"{dir}\" klasöründe zaten var. Lütfen farklı bir ad seçin.", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index c850ac64a58..e5ef1cc8cd6 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -58,6 +58,7 @@ "Could not copy \"{file}\"" : "\"{file}\" kopyalanamadı", "Copied {origin} inside {destination}" : "{origin} dosyası, {destination} içine kopyalandı", "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ve diğer {nbfiles} dosya, {destination} içine kopyalandı", + "Failed to redirect to client" : "İstemciye yönlendirilemedi", "{newName} already exists" : "{newName} zaten var", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" yeniden adlandırılamadı, artık yok", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" adı \"{dir}\" klasöründe zaten var. Lütfen farklı bir ad seçin.", diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index 0b1e738d398..ca2a2bb366e 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -2,7 +2,7 @@ OC.L10N.register( "files_sharing", { "Shared with you" : "Відкриті для мене", - "Nothing shared with you yet" : "Ніхто з вами ще не поділився файлами", + "Nothing shared with you yet" : "З вами ще ніхто не поділився файлами", "Files and folders others share with you will show up here" : "Спільні файли та каталоги, якими поділилися з вами, з’являться тут", "Shared with others" : "Ви поділилися", "Nothing shared yet" : "Поки ніхто не поділився нічим", diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index 18facb0173d..b4d2c885f9b 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -1,6 +1,6 @@ { "translations": { "Shared with you" : "Відкриті для мене", - "Nothing shared with you yet" : "Ніхто з вами ще не поділився файлами", + "Nothing shared with you yet" : "З вами ще ніхто не поділився файлами", "Files and folders others share with you will show up here" : "Спільні файли та каталоги, якими поділилися з вами, з’являться тут", "Shared with others" : "Ви поділилися", "Nothing shared yet" : "Поки ніхто не поділився нічим", diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php index 954c9cf70e6..a9705e94906 100644 --- a/apps/files_sharing/lib/MountProvider.php +++ b/apps/files_sharing/lib/MountProvider.php @@ -229,6 +229,13 @@ class MountProvider implements IMountProvider { ->setShareType($shares[0]->getShareType()) ->setTarget($shares[0]->getTarget()); + // Gather notes from all the shares. + // Since these are readly available here, storing them + // enables the DAV FilesPlugin to avoid executing many + // DB queries to retrieve the same information. + $allNotes = implode("\n", array_map(function ($sh) { return $sh->getNote(); }, $shares)); + $superShare->setNote($allNotes); + // use most permissive permissions // this covers the case where there are multiple shares for the same // file e.g. from different groups and different permissions diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index 262bbeffd6a..e89258287d8 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -348,7 +348,7 @@ OC.L10N.register( "New user" : "Neuer Benutzer", "Will be autogenerated" : "Wird automatisch erzeugt", "Display name" : "Anzeigename", - "Email" : "E-Mail", + "Email" : "E-Mail-Adresse", "Default language" : "Standard-Sprache", "Add a new user" : "Neuen Benutzer hinzufügen", "Group admin for" : "Gruppenadministrator für", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index f42e0945745..e7873dcfbc2 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -346,7 +346,7 @@ "New user" : "Neuer Benutzer", "Will be autogenerated" : "Wird automatisch erzeugt", "Display name" : "Anzeigename", - "Email" : "E-Mail", + "Email" : "E-Mail-Adresse", "Default language" : "Standard-Sprache", "Add a new user" : "Neuen Benutzer hinzufügen", "Group admin for" : "Gruppenadministrator für", diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js index 8d2a148d657..37e94d2b3f4 100644 --- a/apps/settings/l10n/id.js +++ b/apps/settings/l10n/id.js @@ -4,9 +4,11 @@ OC.L10N.register( "Private" : "Pribadi", "Only visible to people matched via phone number integration through Talk on mobile" : "Hanya dapat dilihat oleh orang yang cocok melalui integrasi nomor telepon melalui Talk di ponsel", "Local" : "Lokal", + "Only visible to people on this instance and guests" : "Hanya dapat dilihat oleh orang di instance ini dan tamu", "Federated" : "Federated", "Only synchronize to trusted servers" : "Hanya sinkronkan ke server tepercaya", "Published" : "Diterbitkan", + "Synchronize to trusted servers and the global and public address book" : "Sinkronkran ke server tepercaya dan buku alamat global dan publik", "Verify" : "Verifikasi", "Verifying …" : "Sedang memferivikasi …", "Unable to change password" : "Tidak dapat mengubah kata sandi", @@ -18,8 +20,8 @@ OC.L10N.register( "Groups" : "Grup", "Group list is empty" : "Daftar grup kosong", "Unable to retrieve the group list" : "Tidak dapat mengambil daftar grup", - "{actor} added you to group {group}" : "{actor} menambahkan Anda ke grup {group}", - "You added {user} to group {group}" : "Anda menambahkan {user} ke grup {group}", + "{actor} added you to group {group}" : "{actor} menambahkanmu ke grup {group}", + "You added {user} to group {group}" : "Kamu menambahkan {user} ke grup {group}", "{actor} added {user} to group {group}" : "{actor} menambahkan {user} kedalam grup {group}", "An administrator added you to group {group}" : "Admin telah menambahkan Anda ke grup {group}", "An administrator added {user} to group {group}" : "Admin menambahkan {user} kedalam grup {group}", @@ -48,10 +50,13 @@ OC.L10N.register( "Remote wipe was started on %1$s" : "Pembersihan secara remote telah dimulai di %1$s", "Remote wipe has finished on %1$s" : "Pembersihan secara remote telah selesai di %1$s", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Kata sandi</strong> atau <strong>surel</strong> Anda telah diubah", + "Could not remove app." : "Tidak dapat hapus aplikasi.", + "Could not update app." : "Tidak dapat perbarui aplikasi.", "Wrong password" : "Kata sandi salah", "Unable to change personal password" : "Tidak dapat mengubah kata sandi pribadi", "Saved" : "Disimpan", "No user supplied" : "Tidak ada pengguna yang diberikan", + "Unable to change password. Password too long." : "Tidak dapat berubah kata sandi. Kata sandi terlalu panjang.", "Authentication error" : "Terjadi kesalahan saat otentikasi", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Berikan kata sandi pemulihan admin; Jika tidak, semua data pengguna akan hilang.", "Wrong admin recovery password. Please check the password and try again." : "Kata sandi pemulihan admin salah. Periksa kata sandi dan ulangi kembali.", @@ -62,10 +67,11 @@ OC.L10N.register( "Invalid SMTP password." : "Kata sandi SMTP tidak valid.", "Email setting test" : "Uji pengaturan surel", "Well done, %s!" : "Bagus, %s!", - "If you received this email, the email configuration seems to be correct." : "Jika Anda menerima surel ini, konfigurasi surel sepertinya benar.", + "If you received this email, the email configuration seems to be correct." : "Kalau kamu menerima surel ini, konfigurasi surel sepertinya benar.", "Email could not be sent. Check your mail server log" : "Surel tidak dapat dikirim. Periksa log server mail Anda", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim surel. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)", - "Invalid user" : "Pengguna salah", + "You need to set your user email before being able to send test emails. Go to %s for that." : "Kamu harus pilih alamat email pengguna sebelum bisa mengirin email-email percobaan. Pergilah ke %s jadi bisa pilih email pengguna.", + "Invalid user" : "Pengguna tidak sah", "Invalid mail address" : "Alamat surel salah", "Settings saved" : "Pengaturan disimpan", "Unable to change full name" : "Tidak dapat mengubah nama lengkap", @@ -78,13 +84,13 @@ OC.L10N.register( "Password for %1$s changed on %2$s" : "Kata sandi untuk %1$s telah diubah di %2$s", "Password changed for %s" : "Kata sandi telah diubah untuk %s", "If you did not request this, please contact an administrator." : "Jika Anda tidak merasa meminta ini, mohon hubungi administrator.", - "Your email address on %s was changed." : "Alamat email Anda di %s telah diubah.", + "Your email address on %s was changed." : "Alamat emailmu di %s telah diubah.", "Your email address on %s was changed by an administrator." : "Alamat surel Anda di %s telah diubah oleh administrator", "Email address for %1$s changed on %2$s" : "Alamat email untuk %1$s telah diubah di %2$s", "Email address changed for %s" : "Alamat email telah diubah untuk %s", "The new email address is %s" : "Alamat email barunya yaitu %s", "Your %s account was created" : "Akun %s Anda telah dibuat", - "Welcome aboard" : "Selamat bergabung", + "Welcome aboard" : "Selamat datang", "Welcome aboard %s" : "Selamat bergabung %s", "Welcome to your %s account, you can add, protect, and share your data." : "Selamat datang ke akun %s Anda, kini Anda dapat menambahkan, melindungi, dan membagikan data Anda.", "Your username is: %s" : "Nama pengguna Anda: %s", @@ -97,11 +103,13 @@ OC.L10N.register( "Personal" : "Personal", "Administration" : "Administrasi", "Additional settings" : "Setelan tambahan", + "Administration privileges" : "Hak administrator", "Groupware" : "Peralatan Grup", "Overview" : "Ringkasan", "Basic settings" : "Setelan dasar", "Sharing" : "Berbagi", "Personal info" : "Info pribadi", + "Mobile & desktop" : "Mobil & desktop", "Email server" : "Server surel", "Security & setup warnings" : "Peringatan Keamanan & Pengaturan", "Background jobs" : "Pekerjaan latar belakang", @@ -109,9 +117,13 @@ OC.L10N.register( "Change" : "Ubah", "Delete" : "Hapus", "Unlimited" : "Tak terbatas", + "Verifying" : "Memverifikasi", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Format enkripsi sisi server lama diaktifkan. Kami menyarankan untuk menonaktifkan ini.", + "Profile information" : "Informasi profil", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Gambar profil, nama lengkap, email, nomor telepon, alamat, situs web, Twitter, organisasi, peran, judul, biografi, dan apakah profilmu diaktifkan", "Nextcloud settings" : "Pengaturan Nextcloud", "None" : "Tidak ada", - "Two-Factor Authentication" : "Autentikasi Two-Factor", + "Two-Factor Authentication" : "Autentikasi Dua-Faktor", "Limit to groups" : "Batasi ke grup", "Excluded groups" : "Grup yang dikecualikan", "Save changes" : "Simpan perubahan", @@ -132,12 +144,15 @@ OC.L10N.register( "Developer documentation" : "Dokumentasi pengembang", "This app is supported via your current Nextcloud subscription." : "Aplikasi ini didukung dengan langganan Nextcloud Anda saat ini.", "Supported" : "Didukung", + "Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi unggulan dikembangkan oleh dan dalam komunitas. Mereka menawarkan fungsionalitas sentral dan mereka siap dipakai untuk produksi.", "Featured" : "Unggulan", "Update to {update}" : "Perbarui ke {update}", + "All apps are up-to-date." : "Semua aplikasi terkini.", "Results from other categories" : "Hasil dari kategori lainnya", "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini", "Disable all" : "Matikan semua", "Enable all" : "Hidupkan semua", + "_%n app has an update available_::_%n apps have an update available_" : ["Ada pembaruan tersedia untuk %naplikasi"], "_Update_::_Update all_" : ["Perbarui semua"], "Marked for remote wipe" : "Tandai untuk penghapusan remote", "Device settings" : "Pengaturan perangkat", @@ -186,6 +201,7 @@ OC.L10N.register( "Unable to update profile default setting" : "Tidak dapat memperbarui pengaturan bawaan profil", "Server-side encryption" : "Enkripsi sisi-server", "Enable server-side encryption" : "Aktifkan enkripsi sisi-server", + "Please read carefully before activating server-side encryption:" : "Bacalah dengan seksama sebelum mengaktifkan enkripsi sisi server:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Setelah enkripsi diaktifkan, semua berkas yang diunggah pada server mulai saat ini akan dienkripsi saat singgah pada server. Penonaktifan enkripsi hanya mungkin berhasil jika modul enkripsi yang aktif mendukung fungsi ini dan semua prasyarat (misalnya pengaturan kunci pemulihan) sudah terpenuhi.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enkripsi saja tidak dapat menjamin keamanan sistem. Silakan lihat dokumentasi untuk informasi lebih lanjut dalam bagaimana aplikasi enkripsi bekerja, dan kasus pendukung.", "Be aware that encryption always increases the file size." : "Ingat bahwa enkripsi selalu menambah ukuran berkas.", @@ -200,15 +216,21 @@ OC.L10N.register( "Current password" : "Kata sandi saat ini", "New password" : "Kata sandi baru", "Change password" : "Ubah kata sandi", + "Your profile picture" : "Gambar profilmu", + "Upload profile picture" : "Unggah gambar profil", + "Remove profile picture" : "Hapus gambar profil", "png or jpg, max. 20 MB" : "png atau jpg, maks. 20 MB", "Picture provided by original account" : "Gambar disediakan oleh akun asli", "Cancel" : "Batal", + "Choose your profile picture" : "Pilih gambar profilmu", + "Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil", "Your biography" : "Biografi Anda", "Details" : "Detil", "You are a member of the following groups:" : "Anda adalah seorang anggota dari grup berikut ini:", "Your full name" : "Nama lengkap Anda", "Primary email for password reset and notifications" : "Email utama untuk pengaturan ulang kata sandi dan pemberitahuan", "Remove primary email" : "Hapus email utama", + "Delete email" : "Hapus email", "Your email address" : "Alamat surel Anda", "No email address set" : "Alamat surel tidak diatur", "Language" : "Bahasa", diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json index c05a5ff2df2..2031dc11561 100644 --- a/apps/settings/l10n/id.json +++ b/apps/settings/l10n/id.json @@ -2,9 +2,11 @@ "Private" : "Pribadi", "Only visible to people matched via phone number integration through Talk on mobile" : "Hanya dapat dilihat oleh orang yang cocok melalui integrasi nomor telepon melalui Talk di ponsel", "Local" : "Lokal", + "Only visible to people on this instance and guests" : "Hanya dapat dilihat oleh orang di instance ini dan tamu", "Federated" : "Federated", "Only synchronize to trusted servers" : "Hanya sinkronkan ke server tepercaya", "Published" : "Diterbitkan", + "Synchronize to trusted servers and the global and public address book" : "Sinkronkran ke server tepercaya dan buku alamat global dan publik", "Verify" : "Verifikasi", "Verifying …" : "Sedang memferivikasi …", "Unable to change password" : "Tidak dapat mengubah kata sandi", @@ -16,8 +18,8 @@ "Groups" : "Grup", "Group list is empty" : "Daftar grup kosong", "Unable to retrieve the group list" : "Tidak dapat mengambil daftar grup", - "{actor} added you to group {group}" : "{actor} menambahkan Anda ke grup {group}", - "You added {user} to group {group}" : "Anda menambahkan {user} ke grup {group}", + "{actor} added you to group {group}" : "{actor} menambahkanmu ke grup {group}", + "You added {user} to group {group}" : "Kamu menambahkan {user} ke grup {group}", "{actor} added {user} to group {group}" : "{actor} menambahkan {user} kedalam grup {group}", "An administrator added you to group {group}" : "Admin telah menambahkan Anda ke grup {group}", "An administrator added {user} to group {group}" : "Admin menambahkan {user} kedalam grup {group}", @@ -46,10 +48,13 @@ "Remote wipe was started on %1$s" : "Pembersihan secara remote telah dimulai di %1$s", "Remote wipe has finished on %1$s" : "Pembersihan secara remote telah selesai di %1$s", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Kata sandi</strong> atau <strong>surel</strong> Anda telah diubah", + "Could not remove app." : "Tidak dapat hapus aplikasi.", + "Could not update app." : "Tidak dapat perbarui aplikasi.", "Wrong password" : "Kata sandi salah", "Unable to change personal password" : "Tidak dapat mengubah kata sandi pribadi", "Saved" : "Disimpan", "No user supplied" : "Tidak ada pengguna yang diberikan", + "Unable to change password. Password too long." : "Tidak dapat berubah kata sandi. Kata sandi terlalu panjang.", "Authentication error" : "Terjadi kesalahan saat otentikasi", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Berikan kata sandi pemulihan admin; Jika tidak, semua data pengguna akan hilang.", "Wrong admin recovery password. Please check the password and try again." : "Kata sandi pemulihan admin salah. Periksa kata sandi dan ulangi kembali.", @@ -60,10 +65,11 @@ "Invalid SMTP password." : "Kata sandi SMTP tidak valid.", "Email setting test" : "Uji pengaturan surel", "Well done, %s!" : "Bagus, %s!", - "If you received this email, the email configuration seems to be correct." : "Jika Anda menerima surel ini, konfigurasi surel sepertinya benar.", + "If you received this email, the email configuration seems to be correct." : "Kalau kamu menerima surel ini, konfigurasi surel sepertinya benar.", "Email could not be sent. Check your mail server log" : "Surel tidak dapat dikirim. Periksa log server mail Anda", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim surel. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)", - "Invalid user" : "Pengguna salah", + "You need to set your user email before being able to send test emails. Go to %s for that." : "Kamu harus pilih alamat email pengguna sebelum bisa mengirin email-email percobaan. Pergilah ke %s jadi bisa pilih email pengguna.", + "Invalid user" : "Pengguna tidak sah", "Invalid mail address" : "Alamat surel salah", "Settings saved" : "Pengaturan disimpan", "Unable to change full name" : "Tidak dapat mengubah nama lengkap", @@ -76,13 +82,13 @@ "Password for %1$s changed on %2$s" : "Kata sandi untuk %1$s telah diubah di %2$s", "Password changed for %s" : "Kata sandi telah diubah untuk %s", "If you did not request this, please contact an administrator." : "Jika Anda tidak merasa meminta ini, mohon hubungi administrator.", - "Your email address on %s was changed." : "Alamat email Anda di %s telah diubah.", + "Your email address on %s was changed." : "Alamat emailmu di %s telah diubah.", "Your email address on %s was changed by an administrator." : "Alamat surel Anda di %s telah diubah oleh administrator", "Email address for %1$s changed on %2$s" : "Alamat email untuk %1$s telah diubah di %2$s", "Email address changed for %s" : "Alamat email telah diubah untuk %s", "The new email address is %s" : "Alamat email barunya yaitu %s", "Your %s account was created" : "Akun %s Anda telah dibuat", - "Welcome aboard" : "Selamat bergabung", + "Welcome aboard" : "Selamat datang", "Welcome aboard %s" : "Selamat bergabung %s", "Welcome to your %s account, you can add, protect, and share your data." : "Selamat datang ke akun %s Anda, kini Anda dapat menambahkan, melindungi, dan membagikan data Anda.", "Your username is: %s" : "Nama pengguna Anda: %s", @@ -95,11 +101,13 @@ "Personal" : "Personal", "Administration" : "Administrasi", "Additional settings" : "Setelan tambahan", + "Administration privileges" : "Hak administrator", "Groupware" : "Peralatan Grup", "Overview" : "Ringkasan", "Basic settings" : "Setelan dasar", "Sharing" : "Berbagi", "Personal info" : "Info pribadi", + "Mobile & desktop" : "Mobil & desktop", "Email server" : "Server surel", "Security & setup warnings" : "Peringatan Keamanan & Pengaturan", "Background jobs" : "Pekerjaan latar belakang", @@ -107,9 +115,13 @@ "Change" : "Ubah", "Delete" : "Hapus", "Unlimited" : "Tak terbatas", + "Verifying" : "Memverifikasi", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Format enkripsi sisi server lama diaktifkan. Kami menyarankan untuk menonaktifkan ini.", + "Profile information" : "Informasi profil", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Gambar profil, nama lengkap, email, nomor telepon, alamat, situs web, Twitter, organisasi, peran, judul, biografi, dan apakah profilmu diaktifkan", "Nextcloud settings" : "Pengaturan Nextcloud", "None" : "Tidak ada", - "Two-Factor Authentication" : "Autentikasi Two-Factor", + "Two-Factor Authentication" : "Autentikasi Dua-Faktor", "Limit to groups" : "Batasi ke grup", "Excluded groups" : "Grup yang dikecualikan", "Save changes" : "Simpan perubahan", @@ -130,12 +142,15 @@ "Developer documentation" : "Dokumentasi pengembang", "This app is supported via your current Nextcloud subscription." : "Aplikasi ini didukung dengan langganan Nextcloud Anda saat ini.", "Supported" : "Didukung", + "Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi unggulan dikembangkan oleh dan dalam komunitas. Mereka menawarkan fungsionalitas sentral dan mereka siap dipakai untuk produksi.", "Featured" : "Unggulan", "Update to {update}" : "Perbarui ke {update}", + "All apps are up-to-date." : "Semua aplikasi terkini.", "Results from other categories" : "Hasil dari kategori lainnya", "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini", "Disable all" : "Matikan semua", "Enable all" : "Hidupkan semua", + "_%n app has an update available_::_%n apps have an update available_" : ["Ada pembaruan tersedia untuk %naplikasi"], "_Update_::_Update all_" : ["Perbarui semua"], "Marked for remote wipe" : "Tandai untuk penghapusan remote", "Device settings" : "Pengaturan perangkat", @@ -184,6 +199,7 @@ "Unable to update profile default setting" : "Tidak dapat memperbarui pengaturan bawaan profil", "Server-side encryption" : "Enkripsi sisi-server", "Enable server-side encryption" : "Aktifkan enkripsi sisi-server", + "Please read carefully before activating server-side encryption:" : "Bacalah dengan seksama sebelum mengaktifkan enkripsi sisi server:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Setelah enkripsi diaktifkan, semua berkas yang diunggah pada server mulai saat ini akan dienkripsi saat singgah pada server. Penonaktifan enkripsi hanya mungkin berhasil jika modul enkripsi yang aktif mendukung fungsi ini dan semua prasyarat (misalnya pengaturan kunci pemulihan) sudah terpenuhi.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enkripsi saja tidak dapat menjamin keamanan sistem. Silakan lihat dokumentasi untuk informasi lebih lanjut dalam bagaimana aplikasi enkripsi bekerja, dan kasus pendukung.", "Be aware that encryption always increases the file size." : "Ingat bahwa enkripsi selalu menambah ukuran berkas.", @@ -198,15 +214,21 @@ "Current password" : "Kata sandi saat ini", "New password" : "Kata sandi baru", "Change password" : "Ubah kata sandi", + "Your profile picture" : "Gambar profilmu", + "Upload profile picture" : "Unggah gambar profil", + "Remove profile picture" : "Hapus gambar profil", "png or jpg, max. 20 MB" : "png atau jpg, maks. 20 MB", "Picture provided by original account" : "Gambar disediakan oleh akun asli", "Cancel" : "Batal", + "Choose your profile picture" : "Pilih gambar profilmu", + "Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil", "Your biography" : "Biografi Anda", "Details" : "Detil", "You are a member of the following groups:" : "Anda adalah seorang anggota dari grup berikut ini:", "Your full name" : "Nama lengkap Anda", "Primary email for password reset and notifications" : "Email utama untuk pengaturan ulang kata sandi dan pemberitahuan", "Remove primary email" : "Hapus email utama", + "Delete email" : "Hapus email", "Your email address" : "Alamat surel Anda", "No email address set" : "Alamat surel tidak diatur", "Language" : "Bahasa", diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js index f0e529645ed..d0990edd371 100644 --- a/apps/settings/l10n/uk.js +++ b/apps/settings/l10n/uk.js @@ -280,7 +280,7 @@ OC.L10N.register( "Error removing profile picture" : "Помилка видалення зображення профілю", "Your biography" : "Ваша біографія", "Details" : "Деталі", - "You are a member of the following groups:" : "Ви є членом наступних груп:", + "You are a member of the following groups:" : "Ви є учасником таких груп:", "You are using <strong>{usage}</strong>" : "Ви використовуєте <strong>{usage}", "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)", "Your full name" : "Ваше повне ім'я", @@ -315,7 +315,7 @@ OC.L10N.register( "Edit your Profile visibility" : "Відредагуйте видимість свого профілю", "Enable Profile" : "Увімкнути профіль", "Unable to update profile enabled state" : "Неможливо оновити стан профілю", - "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Більш обмежувальні налаштування видимості або обсягу дотримуються у вашому профілі. Наприклад, якщо для видимості встановлено значення «Показувати всім», а для області — «Приватне», значення «Приватне» буде прийнято.", + "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Для вашого профілю можна встановити певні обмеження з відображення інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.", "{displayId}" : "{displayId}", "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}", "Your role" : "Ваша роль", @@ -416,7 +416,7 @@ OC.L10N.register( "Profile visibility" : "Видимість профілю", "Not available as this property is required for core functionality including file sharing and calendar invitations" : "Недоступно, оскільки ця властивість необхідна для основних функцій, включаючи спільний доступ до файлів і запрошення в календарі", "Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions" : "Недоступно, оскільки публікація даних користувача на пошуковому сервері заборонена. Зверніться до системного адміністратора, якщо у вас виникнуть запитання", - "Show to everyone" : "Показати всім", + "Show to everyone" : "Показувати всім", "Show to logged in users only" : "Показувати лише авторизованим користувачам", "Hide" : "Сховати", "Download and enable" : "Завантажити та увімкнути", diff --git a/apps/settings/l10n/uk.json b/apps/settings/l10n/uk.json index e1b191fa330..7be13ea7cc6 100644 --- a/apps/settings/l10n/uk.json +++ b/apps/settings/l10n/uk.json @@ -278,7 +278,7 @@ "Error removing profile picture" : "Помилка видалення зображення профілю", "Your biography" : "Ваша біографія", "Details" : "Деталі", - "You are a member of the following groups:" : "Ви є членом наступних груп:", + "You are a member of the following groups:" : "Ви є учасником таких груп:", "You are using <strong>{usage}</strong>" : "Ви використовуєте <strong>{usage}", "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)", "Your full name" : "Ваше повне ім'я", @@ -313,7 +313,7 @@ "Edit your Profile visibility" : "Відредагуйте видимість свого профілю", "Enable Profile" : "Увімкнути профіль", "Unable to update profile enabled state" : "Неможливо оновити стан профілю", - "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Більш обмежувальні налаштування видимості або обсягу дотримуються у вашому профілі. Наприклад, якщо для видимості встановлено значення «Показувати всім», а для області — «Приватне», значення «Приватне» буде прийнято.", + "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Для вашого профілю можна встановити певні обмеження з відображення інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.", "{displayId}" : "{displayId}", "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}", "Your role" : "Ваша роль", @@ -414,7 +414,7 @@ "Profile visibility" : "Видимість профілю", "Not available as this property is required for core functionality including file sharing and calendar invitations" : "Недоступно, оскільки ця властивість необхідна для основних функцій, включаючи спільний доступ до файлів і запрошення в календарі", "Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions" : "Недоступно, оскільки публікація даних користувача на пошуковому сервері заборонена. Зверніться до системного адміністратора, якщо у вас виникнуть запитання", - "Show to everyone" : "Показати всім", + "Show to everyone" : "Показувати всім", "Show to logged in users only" : "Показувати лише авторизованим користувачам", "Hide" : "Сховати", "Download and enable" : "Завантажити та увімкнути", diff --git a/apps/sharebymail/l10n/uk.js b/apps/sharebymail/l10n/uk.js index 19a8d995ebb..9733b33e8cb 100644 --- a/apps/sharebymail/l10n/uk.js +++ b/apps/sharebymail/l10n/uk.js @@ -34,9 +34,9 @@ OC.L10N.register( "Click the button below to open it." : "Для відкриття натисніть кнопку нижче.", "Open »%s«" : "Відкритт 1%s", "%1$s via %2$s" : "%1$s через %2$s", - "%1$s shared »%2$s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%1$s поділився »%2$s« з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.\n", - "%1$s shared »%2$s« with you. You should have already received a separate mail with a link to access it." : "%1$sподілився »%2$s« з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.", - "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступу »%1$s« %2$s поділився з вами", + "%1$s shared »%2$s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%1$s поділився %2$s з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.\n", + "%1$s shared »%2$s« with you. You should have already received a separate mail with a link to access it." : "%1$sподілився %2$s з вами. На вашу ел.скриньку надійшов лист із посиланням для доступу до ресурсу.", + "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступу до %1$s %2$s поділився з вами", "Password to access »%s«" : "Пароль для доступу »%s«", "It is protected with the following password:" : "Він захищений таким паролем:", "This password will expire at %s" : "Цей пароль закінчиться о %s", diff --git a/apps/sharebymail/l10n/uk.json b/apps/sharebymail/l10n/uk.json index 2a6b6481b7a..6de37387f84 100644 --- a/apps/sharebymail/l10n/uk.json +++ b/apps/sharebymail/l10n/uk.json @@ -32,9 +32,9 @@ "Click the button below to open it." : "Для відкриття натисніть кнопку нижче.", "Open »%s«" : "Відкритт 1%s", "%1$s via %2$s" : "%1$s через %2$s", - "%1$s shared »%2$s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%1$s поділився »%2$s« з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.\n", - "%1$s shared »%2$s« with you. You should have already received a separate mail with a link to access it." : "%1$sподілився »%2$s« з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.", - "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступу »%1$s« %2$s поділився з вами", + "%1$s shared »%2$s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%1$s поділився %2$s з вами. Ви вже мали отримати окремий лист із посиланням для доступу до нього.\n", + "%1$s shared »%2$s« with you. You should have already received a separate mail with a link to access it." : "%1$sподілився %2$s з вами. На вашу ел.скриньку надійшов лист із посиланням для доступу до ресурсу.", + "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступу до %1$s %2$s поділився з вами", "Password to access »%s«" : "Пароль для доступу »%s«", "It is protected with the following password:" : "Він захищений таким паролем:", "This password will expire at %s" : "Цей пароль закінчиться о %s", diff --git a/apps/theming/l10n/bg.js b/apps/theming/l10n/bg.js index 2ac3ddf3ca7..29a0e6091ce 100644 --- a/apps/theming/l10n/bg.js +++ b/apps/theming/l10n/bg.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Политика за поверителност", "Adjust the Nextcloud theme" : "Коригиране на темата на Nextcloud", "Keyboard shortcuts" : "Бързи клавиши", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "В някои случаи бързите клавишни комбинации могат да пречат на инструментите за достъпност. За да се позволи правилно фокусиране върху инструмента, можете да деактивирате всички клавишни комбинации тук. Това ще деактивира и всички налични преки пътища в приложенията.", "Disable all keyboard shortcuts" : "Деактивиране на всички бързи клавишни комбинации", "Background" : "Фон", "Set a custom background" : "Задаване на персонализиран фон", diff --git a/apps/theming/l10n/bg.json b/apps/theming/l10n/bg.json index 9a0831cd373..b7e5d207c0d 100644 --- a/apps/theming/l10n/bg.json +++ b/apps/theming/l10n/bg.json @@ -48,7 +48,6 @@ "Privacy policy" : "Политика за поверителност", "Adjust the Nextcloud theme" : "Коригиране на темата на Nextcloud", "Keyboard shortcuts" : "Бързи клавиши", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "В някои случаи бързите клавишни комбинации могат да пречат на инструментите за достъпност. За да се позволи правилно фокусиране върху инструмента, можете да деактивирате всички клавишни комбинации тук. Това ще деактивира и всички налични преки пътища в приложенията.", "Disable all keyboard shortcuts" : "Деактивиране на всички бързи клавишни комбинации", "Background" : "Фон", "Set a custom background" : "Задаване на персонализиран фон", diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js index a41351641e3..7526b4919fd 100644 --- a/apps/theming/l10n/cs.js +++ b/apps/theming/l10n/cs.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Zásady ochrany soukromí", "Adjust the Nextcloud theme" : "Upravit motiv vzhledu Nextcloud", "Keyboard shortcuts" : "Klávesové zkratky", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "V některých případech klávesové zkratky kolidují s nástroji pro zpřístupnění. Aby bylo zajištěno správné zaměřování vámi využívaného nástroje, je zde možné vypnout veškeré klávesové zkratky pro Nextcloud. Toto také vypne veškeré zkratky, které jsou k dispozici v aplikacích.", "Disable all keyboard shortcuts" : "Vypnout veškeré klávesové zkratky", "Background" : "Pozadí", "Set a custom background" : "Nastavit uživatelsky určené pozadí", diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json index 2af4ed8f8be..4937199db86 100644 --- a/apps/theming/l10n/cs.json +++ b/apps/theming/l10n/cs.json @@ -48,7 +48,6 @@ "Privacy policy" : "Zásady ochrany soukromí", "Adjust the Nextcloud theme" : "Upravit motiv vzhledu Nextcloud", "Keyboard shortcuts" : "Klávesové zkratky", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "V některých případech klávesové zkratky kolidují s nástroji pro zpřístupnění. Aby bylo zajištěno správné zaměřování vámi využívaného nástroje, je zde možné vypnout veškeré klávesové zkratky pro Nextcloud. Toto také vypne veškeré zkratky, které jsou k dispozici v aplikacích.", "Disable all keyboard shortcuts" : "Vypnout veškeré klávesové zkratky", "Background" : "Pozadí", "Set a custom background" : "Nastavit uživatelsky určené pozadí", diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js index bb82bf9de02..e50a6025d14 100644 --- a/apps/theming/l10n/de.js +++ b/apps/theming/l10n/de.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Datenschutzerklärung ", "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an", "Keyboard shortcuts" : "Tastaturkürzel", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "In einigen Fällen können Tastenkombinationen Werkzeuge zur Barrierefreiheit beeinträchtigen. Damit du dich richtig auf dein Werkzeug konzentrieren kannst, kannst du hier alle Tastaturkürzel deaktivieren. Dadurch werden auch alle verfügbaren Verknüpfungen in Apps deaktiviert.", "Background" : "Hintergrund", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Der unbeschränkte Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Wenn du Fehler findest, melde sie bitte im {issuetracker}Problemverfolgungssystem{linkend}. Und wenn du mithelfen willst, trete dem {designteam}Designteam{linkend} bei!", diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json index 0f61ee1aeac..1a92b022ed8 100644 --- a/apps/theming/l10n/de.json +++ b/apps/theming/l10n/de.json @@ -48,7 +48,6 @@ "Privacy policy" : "Datenschutzerklärung ", "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an", "Keyboard shortcuts" : "Tastaturkürzel", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "In einigen Fällen können Tastenkombinationen Werkzeuge zur Barrierefreiheit beeinträchtigen. Damit du dich richtig auf dein Werkzeug konzentrieren kannst, kannst du hier alle Tastaturkürzel deaktivieren. Dadurch werden auch alle verfügbaren Verknüpfungen in Apps deaktiviert.", "Background" : "Hintergrund", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Der unbeschränkte Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Wenn du Fehler findest, melde sie bitte im {issuetracker}Problemverfolgungssystem{linkend}. Und wenn du mithelfen willst, trete dem {designteam}Designteam{linkend} bei!", diff --git a/apps/theming/l10n/de_DE.js b/apps/theming/l10n/de_DE.js index 00f4721db2d..3e6431f98d0 100644 --- a/apps/theming/l10n/de_DE.js +++ b/apps/theming/l10n/de_DE.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Datenschutzbestimmungen", "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an", "Keyboard shortcuts" : "Tastaturkürzel", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "In einigen Fällen können Tastenkombinationen Barrierefreiheits-Tools beeinträchtigen. Damit Sie sich richtig auf Ihr Werkzeug konzentrieren können, können Sie hier alle Tastaturkürzel deaktivieren. Dadurch werden auch alle verfügbaren Verknüpfungen in Apps deaktiviert.", "Disable all keyboard shortcuts" : "Alle Tastenkombinationen deaktivieren", "Background" : "Hintergrund", "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen", diff --git a/apps/theming/l10n/de_DE.json b/apps/theming/l10n/de_DE.json index 70e4e47bfc9..7f5bccfb4b5 100644 --- a/apps/theming/l10n/de_DE.json +++ b/apps/theming/l10n/de_DE.json @@ -48,7 +48,6 @@ "Privacy policy" : "Datenschutzbestimmungen", "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an", "Keyboard shortcuts" : "Tastaturkürzel", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "In einigen Fällen können Tastenkombinationen Barrierefreiheits-Tools beeinträchtigen. Damit Sie sich richtig auf Ihr Werkzeug konzentrieren können, können Sie hier alle Tastaturkürzel deaktivieren. Dadurch werden auch alle verfügbaren Verknüpfungen in Apps deaktiviert.", "Disable all keyboard shortcuts" : "Alle Tastenkombinationen deaktivieren", "Background" : "Hintergrund", "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen", diff --git a/apps/theming/l10n/es.js b/apps/theming/l10n/es.js index b01131e0313..22434302d7a 100644 --- a/apps/theming/l10n/es.js +++ b/apps/theming/l10n/es.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Política de privacidad", "Adjust the Nextcloud theme" : "Ajusta el tema de Nextcloud", "Keyboard shortcuts" : "Atajos de teclado", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "En algunos casos, los atajos de teclado pueden interferir con las herramientas de accesibilidad. De manera de permitir enfocar correctamente tú herramienta, puedes deshabilitar todos los atajos de teclado aquí. Esto también deshabilitará todos los atajos disponibles en las aplicaciones.", "Disable all keyboard shortcuts" : "Deshabilitar todos los atajos de teclado", "Background" : "Imagen de fondo", "Set a custom background" : "Establecer un fondo personalizado", diff --git a/apps/theming/l10n/es.json b/apps/theming/l10n/es.json index 92ca2fc50da..41e25b325a5 100644 --- a/apps/theming/l10n/es.json +++ b/apps/theming/l10n/es.json @@ -48,7 +48,6 @@ "Privacy policy" : "Política de privacidad", "Adjust the Nextcloud theme" : "Ajusta el tema de Nextcloud", "Keyboard shortcuts" : "Atajos de teclado", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "En algunos casos, los atajos de teclado pueden interferir con las herramientas de accesibilidad. De manera de permitir enfocar correctamente tú herramienta, puedes deshabilitar todos los atajos de teclado aquí. Esto también deshabilitará todos los atajos disponibles en las aplicaciones.", "Disable all keyboard shortcuts" : "Deshabilitar todos los atajos de teclado", "Background" : "Imagen de fondo", "Set a custom background" : "Establecer un fondo personalizado", diff --git a/apps/theming/l10n/eu.js b/apps/theming/l10n/eu.js index 944769b0010..0a7409d4a2b 100644 --- a/apps/theming/l10n/eu.js +++ b/apps/theming/l10n/eu.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Pribatutasun politika", "Adjust the Nextcloud theme" : "Doitu Nextcloud gaia", "Keyboard shortcuts" : "Teklatuaren lasterbideak", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Zenbait kasutan, teklatuko lasterbideek erabilerraztasun-tresnekin oztopatu dezakete. Zure tresna behar bezala zentratu ahal izateko, hemen teklatuko lasterbide guztiak desgaitu ditzakezu. Honek aplikazioetan erabilgarri dauden lasterbide guztiak ere desgaituko ditu.", "Disable all keyboard shortcuts" : "Desgaitu teklatuaren lasterbide guztiak", "Background" : "Atzeko planoa", "Set a custom background" : "Ezarri atzeko planoko irudi pertsonalizatua", diff --git a/apps/theming/l10n/eu.json b/apps/theming/l10n/eu.json index 07dbf21991d..2f8d2914937 100644 --- a/apps/theming/l10n/eu.json +++ b/apps/theming/l10n/eu.json @@ -48,7 +48,6 @@ "Privacy policy" : "Pribatutasun politika", "Adjust the Nextcloud theme" : "Doitu Nextcloud gaia", "Keyboard shortcuts" : "Teklatuaren lasterbideak", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Zenbait kasutan, teklatuko lasterbideek erabilerraztasun-tresnekin oztopatu dezakete. Zure tresna behar bezala zentratu ahal izateko, hemen teklatuko lasterbide guztiak desgaitu ditzakezu. Honek aplikazioetan erabilgarri dauden lasterbide guztiak ere desgaituko ditu.", "Disable all keyboard shortcuts" : "Desgaitu teklatuaren lasterbide guztiak", "Background" : "Atzeko planoa", "Set a custom background" : "Ezarri atzeko planoko irudi pertsonalizatua", diff --git a/apps/theming/l10n/fr.js b/apps/theming/l10n/fr.js index 496c0780f72..4189cdc9c56 100644 --- a/apps/theming/l10n/fr.js +++ b/apps/theming/l10n/fr.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Politique de confidentialité", "Adjust the Nextcloud theme" : "Modifier le thème Nextcloud", "Keyboard shortcuts" : "Raccourcis clavier", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Dans certains cas, les raccourcis clavier peuvent interférer avec les outils d'accessibilité. Afin de vous permettre de vous concentrer correctement sur votre outil, vous pouvez désactiver tous les raccourcis clavier ici. Cela désactivera également tous les raccourcis disponibles dans les applications.", "Disable all keyboard shortcuts" : "Désactiver tous les raccourcis clavier", "Background" : "Arrière-plan", "Set a custom background" : "Définir un arrière-plan personnalisé", diff --git a/apps/theming/l10n/fr.json b/apps/theming/l10n/fr.json index d11e4408498..392aed86625 100644 --- a/apps/theming/l10n/fr.json +++ b/apps/theming/l10n/fr.json @@ -48,7 +48,6 @@ "Privacy policy" : "Politique de confidentialité", "Adjust the Nextcloud theme" : "Modifier le thème Nextcloud", "Keyboard shortcuts" : "Raccourcis clavier", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Dans certains cas, les raccourcis clavier peuvent interférer avec les outils d'accessibilité. Afin de vous permettre de vous concentrer correctement sur votre outil, vous pouvez désactiver tous les raccourcis clavier ici. Cela désactivera également tous les raccourcis disponibles dans les applications.", "Disable all keyboard shortcuts" : "Désactiver tous les raccourcis clavier", "Background" : "Arrière-plan", "Set a custom background" : "Définir un arrière-plan personnalisé", diff --git a/apps/theming/l10n/hu.js b/apps/theming/l10n/hu.js index 677fa4c7bcb..b343801af4d 100644 --- a/apps/theming/l10n/hu.js +++ b/apps/theming/l10n/hu.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Adatvédelmi irányelvek", "Adjust the Nextcloud theme" : "A Nextcloud téma módosítása", "Keyboard shortcuts" : "Gyorsbillentyűk", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Egyes esetekben a gyorsbillentyűk összeakadhatnak az akadálymentesítési eszközökkel. Hogy helyesen tudjon fókuszálni az eszközre, itt letilthatja a gyorsbillentyűket. Ez az alkalmazásokban is letiltja az összes elérhető gyorsbillentyűt.", "Disable all keyboard shortcuts" : "Összes gyorsbillentyű letiltása", "Background" : "Háttér", "Set a custom background" : "Egyéni háttér beállítása", diff --git a/apps/theming/l10n/hu.json b/apps/theming/l10n/hu.json index 667c2fdb617..feca935f77c 100644 --- a/apps/theming/l10n/hu.json +++ b/apps/theming/l10n/hu.json @@ -48,7 +48,6 @@ "Privacy policy" : "Adatvédelmi irányelvek", "Adjust the Nextcloud theme" : "A Nextcloud téma módosítása", "Keyboard shortcuts" : "Gyorsbillentyűk", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Egyes esetekben a gyorsbillentyűk összeakadhatnak az akadálymentesítési eszközökkel. Hogy helyesen tudjon fókuszálni az eszközre, itt letilthatja a gyorsbillentyűket. Ez az alkalmazásokban is letiltja az összes elérhető gyorsbillentyűt.", "Disable all keyboard shortcuts" : "Összes gyorsbillentyű letiltása", "Background" : "Háttér", "Set a custom background" : "Egyéni háttér beállítása", diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js index abea5f872fe..150c4612fa6 100644 --- a/apps/theming/l10n/pl.js +++ b/apps/theming/l10n/pl.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Polityka prywatności", "Adjust the Nextcloud theme" : "Dostosuj motyw Nextcloud", "Keyboard shortcuts" : "Skróty klawiaturowe", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "W niektórych przypadkach skróty klawiaturowe mogą kolidować z narzędziami ułatwień dostępu. Aby umożliwić prawidłowe skupienie się na narzędziu, możesz tutaj wyłączyć wszystkie skróty klawiaturowe. Spowoduje to również wyłączenie wszystkich dostępnych skrótów w aplikacjach.", "Disable all keyboard shortcuts" : "Wyłącz wszystkie skróty klawiaturowe", "Background" : "Tło", "Set a custom background" : "Ustaw niestandardowe tło", diff --git a/apps/theming/l10n/pl.json b/apps/theming/l10n/pl.json index 99ee5c29b30..ef610dc22bd 100644 --- a/apps/theming/l10n/pl.json +++ b/apps/theming/l10n/pl.json @@ -48,7 +48,6 @@ "Privacy policy" : "Polityka prywatności", "Adjust the Nextcloud theme" : "Dostosuj motyw Nextcloud", "Keyboard shortcuts" : "Skróty klawiaturowe", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "W niektórych przypadkach skróty klawiaturowe mogą kolidować z narzędziami ułatwień dostępu. Aby umożliwić prawidłowe skupienie się na narzędziu, możesz tutaj wyłączyć wszystkie skróty klawiaturowe. Spowoduje to również wyłączenie wszystkich dostępnych skrótów w aplikacjach.", "Disable all keyboard shortcuts" : "Wyłącz wszystkie skróty klawiaturowe", "Background" : "Tło", "Set a custom background" : "Ustaw niestandardowe tło", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index df6d8fea8f0..b90cc753bb7 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Política de privacidade", "Adjust the Nextcloud theme" : "Ajustar o tema do Nextcloud", "Keyboard shortcuts" : "Atalhos do teclado", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Em alguns casos, os atalhos de teclado podem interferir nas ferramentas de acessibilidade. Para permitir o foco em sua ferramenta corretamente, você pode desativar todos os atalhos de teclado aqui. Isso também desativará todos os atalhos disponíveis nos aplicativos.", "Disable all keyboard shortcuts" : "Desabilitar todos os atalhos de teclado", "Background" : "Fundo", "Set a custom background" : "Defina um plano de fundo personalizado", diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 7a2613cd88c..ea35cac16e4 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -48,7 +48,6 @@ "Privacy policy" : "Política de privacidade", "Adjust the Nextcloud theme" : "Ajustar o tema do Nextcloud", "Keyboard shortcuts" : "Atalhos do teclado", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Em alguns casos, os atalhos de teclado podem interferir nas ferramentas de acessibilidade. Para permitir o foco em sua ferramenta corretamente, você pode desativar todos os atalhos de teclado aqui. Isso também desativará todos os atalhos disponíveis nos aplicativos.", "Disable all keyboard shortcuts" : "Desabilitar todos os atalhos de teclado", "Background" : "Fundo", "Set a custom background" : "Defina um plano de fundo personalizado", diff --git a/apps/theming/l10n/sk.js b/apps/theming/l10n/sk.js index 1b88c3c2dfb..b43b16e71b3 100644 --- a/apps/theming/l10n/sk.js +++ b/apps/theming/l10n/sk.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Zásady ochrany osobných údajov", "Adjust the Nextcloud theme" : "Upraviť motív vzhľadu Nextcloudu", "Keyboard shortcuts" : "Klávesové skratky", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "V niektorých prípadoch môžu klávesové skratky zasahovať do nástrojov dostupnosti. Aby ste mohli správne zaostriť na svoj nástroj, môžete tu vypnúť všetky klávesové skratky. Tým sa tiež zakážu všetky dostupné skratky v aplikáciách.", "Disable all keyboard shortcuts" : "Vypnúť všetky klávesové skratky", "Background" : "Pozadie", "Set a custom background" : "Nastaviť vlastné pozadie", diff --git a/apps/theming/l10n/sk.json b/apps/theming/l10n/sk.json index b036e1f77cc..0cf8e5b831d 100644 --- a/apps/theming/l10n/sk.json +++ b/apps/theming/l10n/sk.json @@ -48,7 +48,6 @@ "Privacy policy" : "Zásady ochrany osobných údajov", "Adjust the Nextcloud theme" : "Upraviť motív vzhľadu Nextcloudu", "Keyboard shortcuts" : "Klávesové skratky", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "V niektorých prípadoch môžu klávesové skratky zasahovať do nástrojov dostupnosti. Aby ste mohli správne zaostriť na svoj nástroj, môžete tu vypnúť všetky klávesové skratky. Tým sa tiež zakážu všetky dostupné skratky v aplikáciách.", "Disable all keyboard shortcuts" : "Vypnúť všetky klávesové skratky", "Background" : "Pozadie", "Set a custom background" : "Nastaviť vlastné pozadie", diff --git a/apps/theming/l10n/tr.js b/apps/theming/l10n/tr.js index 4f947509f0b..d5abffb9a39 100644 --- a/apps/theming/l10n/tr.js +++ b/apps/theming/l10n/tr.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Kişisel gizliliğin korunması ilkesi", "Adjust the Nextcloud theme" : "Nextcloud temasını ayarla", "Keyboard shortcuts" : "Kısayol tuşları", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan devre dışı bırakabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da devre dışı bırakır.", "Disable all keyboard shortcuts" : "Tüm klavye kısayollarını devre dışı bırak", "Background" : "Arka plan", "Set a custom background" : "Özel bir arka plan ayarla", diff --git a/apps/theming/l10n/tr.json b/apps/theming/l10n/tr.json index 5c0d5914051..1777c29ac98 100644 --- a/apps/theming/l10n/tr.json +++ b/apps/theming/l10n/tr.json @@ -48,7 +48,6 @@ "Privacy policy" : "Kişisel gizliliğin korunması ilkesi", "Adjust the Nextcloud theme" : "Nextcloud temasını ayarla", "Keyboard shortcuts" : "Kısayol tuşları", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan devre dışı bırakabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da devre dışı bırakır.", "Disable all keyboard shortcuts" : "Tüm klavye kısayollarını devre dışı bırak", "Background" : "Arka plan", "Set a custom background" : "Özel bir arka plan ayarla", diff --git a/apps/theming/l10n/uk.js b/apps/theming/l10n/uk.js index 5cca6850cd6..52fab6ac614 100644 --- a/apps/theming/l10n/uk.js +++ b/apps/theming/l10n/uk.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "Політика конфіденційності", "Adjust the Nextcloud theme" : "Налаштуйте тему Nextcloud", "Keyboard shortcuts" : "Гарячі клавіші", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "У деяких випадках комбінації клавіш можуть перешкоджати роботі інструментів спеціальних можливостей. Щоб правильно сфокусуватися на інструменті, тут можна вимкнути всі комбінації клавіш. Це також вимкне всі доступні ярлики в програмах.", "Disable all keyboard shortcuts" : "Вимкнути всі комбінації клавіш", "Background" : "Фон", "Set a custom background" : "Встановити спеціальний фон", diff --git a/apps/theming/l10n/uk.json b/apps/theming/l10n/uk.json index c3fcc8848a5..e64f03015e7 100644 --- a/apps/theming/l10n/uk.json +++ b/apps/theming/l10n/uk.json @@ -48,7 +48,6 @@ "Privacy policy" : "Політика конфіденційності", "Adjust the Nextcloud theme" : "Налаштуйте тему Nextcloud", "Keyboard shortcuts" : "Гарячі клавіші", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "У деяких випадках комбінації клавіш можуть перешкоджати роботі інструментів спеціальних можливостей. Щоб правильно сфокусуватися на інструменті, тут можна вимкнути всі комбінації клавіш. Це також вимкне всі доступні ярлики в програмах.", "Disable all keyboard shortcuts" : "Вимкнути всі комбінації клавіш", "Background" : "Фон", "Set a custom background" : "Встановити спеціальний фон", diff --git a/apps/theming/l10n/zh_HK.js b/apps/theming/l10n/zh_HK.js index 2baf9f04944..f87b2073f65 100644 --- a/apps/theming/l10n/zh_HK.js +++ b/apps/theming/l10n/zh_HK.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "隱私權政策", "Adjust the Nextcloud theme" : "調整 Nextcloud 佈景主題", "Keyboard shortcuts" : "鍵盤快捷鍵", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "在某些情況下,鍵盤快捷鍵可能會干擾輔助工具。 為了允許正確地專注於您的工具,您可以在此處禁用所有鍵盤快捷鍵。 這還將禁用應用程式中的所有可用快捷方式。", "Disable all keyboard shortcuts" : "停用所有鍵盤快捷鍵", "Background" : "背景", "Set a custom background" : "設置自定義背景", diff --git a/apps/theming/l10n/zh_HK.json b/apps/theming/l10n/zh_HK.json index 3205523d685..867069d906f 100644 --- a/apps/theming/l10n/zh_HK.json +++ b/apps/theming/l10n/zh_HK.json @@ -48,7 +48,6 @@ "Privacy policy" : "隱私權政策", "Adjust the Nextcloud theme" : "調整 Nextcloud 佈景主題", "Keyboard shortcuts" : "鍵盤快捷鍵", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "在某些情況下,鍵盤快捷鍵可能會干擾輔助工具。 為了允許正確地專注於您的工具,您可以在此處禁用所有鍵盤快捷鍵。 這還將禁用應用程式中的所有可用快捷方式。", "Disable all keyboard shortcuts" : "停用所有鍵盤快捷鍵", "Background" : "背景", "Set a custom background" : "設置自定義背景", diff --git a/apps/theming/l10n/zh_TW.js b/apps/theming/l10n/zh_TW.js index c5c1c4e9a09..5fe973f8d01 100644 --- a/apps/theming/l10n/zh_TW.js +++ b/apps/theming/l10n/zh_TW.js @@ -50,7 +50,6 @@ OC.L10N.register( "Privacy policy" : "隱私權政策", "Adjust the Nextcloud theme" : "調整 Nextcloud 佈景主題", "Keyboard shortcuts" : "鍵盤快捷鍵", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "在某些情況下,鍵盤快捷鍵可能會干擾無障礙工具。為了可以正確地將焦點置於您的工具,您可以在此處停用所有鍵盤快捷鍵。這也會停用應用程式中的所有可用的快捷鍵。", "Disable all keyboard shortcuts" : "停用所有鍵盤快捷鍵", "Background" : "背景圖片", "Set a custom background" : "設定自訂背景", diff --git a/apps/theming/l10n/zh_TW.json b/apps/theming/l10n/zh_TW.json index 78bbba292cf..c33ccfc8df5 100644 --- a/apps/theming/l10n/zh_TW.json +++ b/apps/theming/l10n/zh_TW.json @@ -48,7 +48,6 @@ "Privacy policy" : "隱私權政策", "Adjust the Nextcloud theme" : "調整 Nextcloud 佈景主題", "Keyboard shortcuts" : "鍵盤快捷鍵", - "In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "在某些情況下,鍵盤快捷鍵可能會干擾無障礙工具。為了可以正確地將焦點置於您的工具,您可以在此處停用所有鍵盤快捷鍵。這也會停用應用程式中的所有可用的快捷鍵。", "Disable all keyboard shortcuts" : "停用所有鍵盤快捷鍵", "Background" : "背景圖片", "Set a custom background" : "設定自訂背景", diff --git a/apps/theming/lib/Controller/UserThemeController.php b/apps/theming/lib/Controller/UserThemeController.php index 091331706a7..635dad34736 100644 --- a/apps/theming/lib/Controller/UserThemeController.php +++ b/apps/theming/lib/Controller/UserThemeController.php @@ -156,7 +156,8 @@ class UserThemeController extends OCSController { * @NoAdminRequired */ public function setBackground(string $type = 'default', string $value = ''): JSONResponse { - $currentVersion = (int)$this->config->getUserValue($this->userId, Application::APP_ID, 'backgroundVersion', '0'); + $currentVersion = (int)$this->config->getUserValue($this->userId, Application::APP_ID, 'userCacheBuster', '0'); + try { switch ($type) { case 'shipped': @@ -179,14 +180,14 @@ class UserThemeController extends OCSController { } catch (\Throwable $e) { return new JSONResponse(['error' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); } + $currentVersion++; - $this->config->setUserValue($this->userId, Application::APP_ID, 'backgroundVersion', (string)$currentVersion); - // FIXME replace with user-specific cachebuster increase https://github.com/nextcloud/server/issues/34472 - $this->themingDefaults->increaseCacheBuster(); + $this->config->setUserValue($this->userId, Application::APP_ID, 'userCacheBuster', (string)$currentVersion); + return new JSONResponse([ 'type' => $type, 'value' => $value, - 'version' => $this->config->getUserValue($this->userId, Application::APP_ID, 'backgroundVersion', $currentVersion) + 'version' => $currentVersion, ]); } } diff --git a/apps/theming/lib/ImageManager.php b/apps/theming/lib/ImageManager.php index 6f9892af10e..60b695f1c90 100644 --- a/apps/theming/lib/ImageManager.php +++ b/apps/theming/lib/ImageManager.php @@ -66,14 +66,13 @@ class ImageManager { IURLGenerator $urlGenerator, ICacheFactory $cacheFactory, ILogger $logger, - ITempManager $tempManager - ) { + ITempManager $tempManager) { $this->config = $config; - $this->appData = $appData; $this->urlGenerator = $urlGenerator; $this->cacheFactory = $cacheFactory; $this->logger = $logger; $this->tempManager = $tempManager; + $this->appData = $appData; } public function getImageUrl(string $key, bool $useSvg = true): string { @@ -106,10 +105,12 @@ class ImageManager { */ public function getImage(string $key, bool $useSvg = true): ISimpleFile { $logo = $this->config->getAppValue('theming', $key . 'Mime', ''); - $folder = $this->appData->getFolder('images'); + $folder = $this->getRootFolder()->getFolder('images'); + if ($logo === '' || !$folder->fileExists($key)) { throw new NotFoundException(); } + if (!$useSvg && $this->shouldReplaceIcons()) { if (!$folder->fileExists($key . '.png')) { try { @@ -127,6 +128,7 @@ class ImageManager { return $folder->getFile($key . '.png'); } } + return $folder->getFile($key); } @@ -158,9 +160,9 @@ class ImageManager { public function getCacheFolder(): ISimpleFolder { $cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0'); try { - $folder = $this->appData->getFolder($cacheBusterValue); + $folder = $this->getRootFolder()->getFolder($cacheBusterValue); } catch (NotFoundException $e) { - $folder = $this->appData->newFolder($cacheBusterValue); + $folder = $this->getRootFolder()->newFolder($cacheBusterValue); $this->cleanup(); } return $folder; @@ -202,13 +204,13 @@ class ImageManager { public function delete(string $key): void { /* ignore exceptions, since we don't want to fail hard if something goes wrong during cleanup */ try { - $file = $this->appData->getFolder('images')->getFile($key); + $file = $this->getRootFolder()->getFolder('images')->getFile($key); $file->delete(); } catch (NotFoundException $e) { } catch (NotPermittedException $e) { } try { - $file = $this->appData->getFolder('images')->getFile($key . '.png'); + $file = $this->getRootFolder()->getFolder('images')->getFile($key . '.png'); $file->delete(); } catch (NotFoundException $e) { } catch (NotPermittedException $e) { @@ -219,9 +221,9 @@ class ImageManager { $this->delete($key); try { - $folder = $this->appData->getFolder('images'); + $folder = $this->getRootFolder()->getFolder('images'); } catch (NotFoundException $e) { - $folder = $this->appData->newFolder('images'); + $folder = $this->getRootFolder()->newFolder('images'); } $target = $folder->newFile($key); @@ -288,7 +290,7 @@ class ImageManager { */ public function cleanup() { $currentFolder = $this->getCacheFolder(); - $folders = $this->appData->getDirectoryListing(); + $folders = $this->getRootFolder()->getDirectoryListing(); foreach ($folders as $folder) { if ($folder->getName() !== 'images' && $folder->getName() !== $currentFolder->getName()) { $folder->delete(); @@ -316,4 +318,12 @@ class ImageManager { $cache->set('shouldReplaceIcons', $value); return $value; } + + private function getRootFolder(): ISimpleFolder { + try { + return $this->appData->getFolder('global'); + } catch (NotFoundException $e) { + return $this->appData->newFolder('global'); + } + } } diff --git a/apps/theming/lib/Jobs/MigrateBackgroundImages.php b/apps/theming/lib/Jobs/MigrateBackgroundImages.php index 97806fa600a..b816a4c8775 100644 --- a/apps/theming/lib/Jobs/MigrateBackgroundImages.php +++ b/apps/theming/lib/Jobs/MigrateBackgroundImages.php @@ -34,6 +34,7 @@ use OCP\BackgroundJob\QueuedJob; use OCP\Files\AppData\IAppDataFactory; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; +use OCP\Files\SimpleFS\ISimpleFolder; use OCP\IConfig; class MigrateBackgroundImages extends QueuedJob { @@ -57,7 +58,6 @@ class MigrateBackgroundImages extends QueuedJob { return; } - $themingData = $this->appDataFactory->get(Application::APP_ID); $dashboardData = $this->appDataFactory->get('dashboard'); $userIds = $this->config->getUsersForUserValue('theming', 'background', 'custom'); @@ -79,11 +79,8 @@ class MigrateBackgroundImages extends QueuedJob { // migration $file = $dashboardData->getFolder($userId)->getFile('background.jpg'); - try { - $targetDir = $themingData->getFolder($userId); - } catch (NotFoundException $e) { - $targetDir = $themingData->newFolder($userId); - } + $targetDir = $this->getUserFolder($userId); + if (!$targetDir->fileExists('background.jpg')) { $targetDir->newFile('background.jpg', $file->getContent()); } @@ -104,4 +101,23 @@ class MigrateBackgroundImages extends QueuedJob { $this->jobList->add(self::class); } } + + /** + * Get the root location for users theming data + */ + protected function getUserFolder(string $userId): ISimpleFolder { + $themingData = $this->appDataFactory->get(Application::APP_ID); + + try { + $rootFolder = $themingData->getFolder('users'); + } catch (NotFoundException $e) { + $rootFolder = $themingData->newFolder('users'); + } + + try { + return $rootFolder->getFolder($userId); + } catch (NotFoundException $e) { + return $rootFolder->newFolder($userId); + } + } } diff --git a/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php b/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php index 1d28a1d4399..a6e0923e643 100644 --- a/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php +++ b/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php @@ -90,11 +90,6 @@ class BeforeTemplateRenderedListener implements IEventListener { ); $this->initialState->provideInitialState( - 'backgroundVersion', - $this->config->getUserValue($userId, Application::APP_ID, 'backgroundVersion', 0), - ); - - $this->initialState->provideInitialState( 'themingDefaultBackground', $this->config->getAppValue('theming', 'backgroundMime', ''), ); diff --git a/apps/theming/lib/Service/BackgroundService.php b/apps/theming/lib/Service/BackgroundService.php index 36623735728..3daac7e7215 100644 --- a/apps/theming/lib/Service/BackgroundService.php +++ b/apps/theming/lib/Service/BackgroundService.php @@ -136,19 +136,19 @@ class BackgroundService { private string $userId; private IAppDataFactory $appDataFactory; - public function __construct( - IRootFolder $rootFolder, - IAppDataFactory $appDataFactory, - IConfig $config, - ?string $userId - ) { + public function __construct(IRootFolder $rootFolder, + IAppData $appData, + IConfig $config, + ?string $userId, + IAppDataFactory $appDataFactory) { if ($userId === null) { return; } + $this->rootFolder = $rootFolder; - $this->appData = $appDataFactory->get(Application::APP_ID); $this->config = $config; $this->userId = $userId; + $this->appData = $appData; $this->appDataFactory = $appDataFactory; } @@ -167,12 +167,15 @@ class BackgroundService { public function setFileBackground($path): void { $this->config->setUserValue($this->userId, Application::APP_ID, 'background', 'custom'); $userFolder = $this->rootFolder->getUserFolder($this->userId); + /** @var File $file */ $file = $userFolder->get($path); $image = new \OCP\Image(); + if ($image->loadFromFileHandle($file->fopen('r')) === false) { throw new InvalidArgumentException('Invalid image file'); } + $this->getAppDataFolder()->newFile('background.jpg', $file->fopen('r')); } @@ -207,14 +210,21 @@ class BackgroundService { } /** + * Storing the data in appdata/theming/users/USERID + * * @return ISimpleFolder * @throws NotPermittedException */ private function getAppDataFolder(): ISimpleFolder { try { - return $this->appData->getFolder($this->userId); + $rootFolder = $this->appData->getFolder('users'); + } catch (NotFoundException $e) { + $rootFolder = $this->appData->newFolder('users'); + } + try { + return $rootFolder->getFolder($this->userId); } catch (NotFoundException $e) { - return $this->appData->newFolder($this->userId); + return $rootFolder->newFolder($this->userId); } } } diff --git a/apps/theming/lib/Service/ThemeInjectionService.php b/apps/theming/lib/Service/ThemeInjectionService.php index fec14de96cf..27b65457e7f 100644 --- a/apps/theming/lib/Service/ThemeInjectionService.php +++ b/apps/theming/lib/Service/ThemeInjectionService.php @@ -22,8 +22,11 @@ */ namespace OCA\Theming\Service; +use OCA\Theming\AppInfo\Application; use OCA\Theming\Themes\DefaultTheme; +use OCP\IConfig; use OCP\IURLGenerator; +use OCP\IUserSession; use OCP\Util; class ThemeInjectionService { @@ -31,13 +34,23 @@ class ThemeInjectionService { private IURLGenerator $urlGenerator; private ThemesService $themesService; private DefaultTheme $defaultTheme; + private IConfig $config; + private ?string $userId; public function __construct(IURLGenerator $urlGenerator, ThemesService $themesService, - DefaultTheme $defaultTheme) { + DefaultTheme $defaultTheme, + IConfig $config, + IUserSession $userSession) { $this->urlGenerator = $urlGenerator; $this->themesService = $themesService; $this->defaultTheme = $defaultTheme; + $this->config = $config; + if ($userSession->getUser() !== null) { + $this->userId = $userSession->getUser()->getUID(); + } else { + $this->userId = null; + } } public function injectHeaders() { @@ -50,13 +63,13 @@ class ThemeInjectionService { // Default theme fallback $this->addThemeHeader($defaultTheme->getId()); - + // Themes applied by media queries foreach($mediaThemes as $theme) { $this->addThemeHeader($theme->getId(), true, $theme->getMediaQuery()); } - // Themes + // Themes foreach($this->themesService->getThemes() as $theme) { // Ignore default theme as already processed first if ($theme->getId() === $this->defaultTheme->getId()) { @@ -68,15 +81,24 @@ class ThemeInjectionService { /** * Inject theme header into rendered page - * + * * @param string $themeId the theme ID * @param bool $plain request the :root syntax * @param string $media media query to use in the <link> element */ private function addThemeHeader(string $themeId, bool $plain = true, string $media = null) { + $cacheBuster = $this->config->getAppValue('theming', 'cachebuster', '0'); + if ($this->userId !== null) { + // need to bust the cache for the CSS file when the user background changed as its + // URL is served in those files + $userCacheBuster = $this->config->getUserValue($this->userId, Application::APP_ID, 'userCacheBuster', '0'); + $cacheBuster .= $this->userId . '_' . $userCacheBuster; + } + $linkToCSS = $this->urlGenerator->linkToRoute('theming.Theming.getThemeStylesheet', [ 'themeId' => $themeId, 'plain' => $plain, + 'v' => substr(sha1($cacheBuster), 0, 8), ]); Util::addHeader('link', [ 'rel' => 'stylesheet', diff --git a/apps/theming/lib/Themes/DefaultTheme.php b/apps/theming/lib/Themes/DefaultTheme.php index 4dce1dca809..aae4c4eca4c 100644 --- a/apps/theming/lib/Themes/DefaultTheme.php +++ b/apps/theming/lib/Themes/DefaultTheme.php @@ -239,9 +239,11 @@ class DefaultTheme implements ITheme { $user = $this->userSession->getUser(); if ($appManager->isEnabledForUser(Application::APP_ID) && $user !== null) { $themingBackground = $this->config->getUserValue($user->getUID(), Application::APP_ID, 'background', 'default'); + $currentVersion = (int)$this->config->getUserValue($user->getUID(), Application::APP_ID, 'userCacheBuster', '0'); if ($themingBackground === 'custom') { - $variables['--image-main-background'] = "url('" . $this->urlGenerator->linkToRouteAbsolute('theming.userTheme.getBackground') . "')"; + $cacheBuster = substr(sha1($user->getUID() . '_' . $currentVersion), 0, 8); + $variables['--image-main-background'] = "url('" . $this->urlGenerator->linkToRouteAbsolute('theming.userTheme.getBackground') . "?v=$cacheBuster')"; } elseif (isset(BackgroundService::SHIPPED_BACKGROUNDS[$themingBackground])) { $variables['--image-main-background'] = "url('" . $this->urlGenerator->linkTo(Application::APP_ID, "/img/background/$themingBackground") . "')"; } elseif (substr($themingBackground, 0, 1) === '#') { diff --git a/apps/theming/src/UserThemes.vue b/apps/theming/src/UserThemes.vue index 1eeeb3c5b21..c65b19bed7e 100644 --- a/apps/theming/src/UserThemes.vue +++ b/apps/theming/src/UserThemes.vue @@ -52,7 +52,7 @@ </NcSettingsSection> <NcSettingsSection :title="t('theming', 'Keyboard shortcuts')"> - <p>{{ t('theming', 'In some cases keyboard shortcuts can interfer with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.') }}</p> + <p>{{ t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.') }}</p> <NcCheckboxRadioSwitch class="theming__preview-toggle" :checked.sync="shortcutsDisabled" name="shortcuts_disabled" @@ -88,7 +88,6 @@ const enforceTheme = loadState('theming', 'enforceTheme', '') const shortcutsDisabled = loadState('theming', 'shortcutsDisabled', false) const background = loadState('theming', 'background') -const backgroundVersion = loadState('theming', 'backgroundVersion') const themingDefaultBackground = loadState('theming', 'themingDefaultBackground') const shippedBackgroundList = loadState('theming', 'shippedBackgrounds') @@ -109,7 +108,6 @@ export default { enforceTheme, shortcutsDisabled, background, - backgroundVersion, themingDefaultBackground, } }, @@ -169,10 +167,10 @@ export default { methods: { updateBackground(data) { this.background = (data.type === 'custom' || data.type === 'default') ? data.type : data.value - this.backgroundVersion = data.version this.updateGlobalStyles() this.$emit('update:background') }, + updateGlobalStyles() { // Override primary-invert-if-bright and color-primary-text if background is set const isBackgroundBright = shippedBackgroundList[this.background]?.theming === 'dark' diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php index ead9ca113e6..ffb023c970f 100644 --- a/apps/theming/tests/ImageManagerTest.php +++ b/apps/theming/tests/ImageManagerTest.php @@ -56,6 +56,8 @@ class ImageManagerTest extends TestCase { private $logger; /** @var ITempManager|MockObject */ private $tempManager; + /** @var ISimpleFolder|MockObject */ + private $rootFolder; protected function setUp(): void { parent::setUp(); @@ -65,6 +67,7 @@ class ImageManagerTest extends TestCase { $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->logger = $this->createMock(ILogger::class); $this->tempManager = $this->createMock(ITempManager::class); + $this->rootFolder = $this->createMock(ISimpleFolder::class); $this->imageManager = new ImageManager( $this->config, $this->appData, @@ -73,6 +76,11 @@ class ImageManagerTest extends TestCase { $this->logger, $this->tempManager ); + $this->appData + ->expects($this->any()) + ->method('getFolder') + ->with('global') + ->willReturn($this->rootFolder); } private function checkImagick() { @@ -120,7 +128,7 @@ class ImageManagerTest extends TestCase { ->willReturn($newFile); $newFile->expects($this->once()) ->method('putContent'); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getFolder') ->with('images') ->willReturn($folder); @@ -200,7 +208,7 @@ class ImageManagerTest extends TestCase { ->method('getAppValue') ->with('theming', 'cachebuster', '0') ->willReturn('0'); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getFolder') ->with('0') ->willReturn($folder); @@ -212,18 +220,18 @@ class ImageManagerTest extends TestCase { ->method('getAppValue') ->with('theming', 'cachebuster', '0') ->willReturn('0'); - $this->appData->expects($this->exactly(2)) + $this->rootFolder->expects($this->exactly(2)) ->method('getFolder') ->with('0') ->willReturnOnConsecutiveCalls( $this->throwException(new NotFoundException()), $folder, ); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('newFolder') ->with('0') ->willReturn($folder); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getDirectoryListing') ->willReturn([]); $this->assertEquals($folder, $this->imageManager->getCacheFolder()); @@ -291,7 +299,7 @@ class ImageManagerTest extends TestCase { ->method('getAppValue') ->with('theming', 'cachebuster', '0') ->willReturn('0'); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getFolder') ->with('0') ->willReturn($folder); @@ -316,10 +324,10 @@ class ImageManagerTest extends TestCase { ->method('getAppValue') ->with('theming','cachebuster','0') ->willReturn('2'); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getDirectoryListing') ->willReturn($folders); - $this->appData->expects($this->once()) + $this->rootFolder->expects($this->once()) ->method('getFolder') ->with('2') ->willReturn($folders[2]); @@ -346,24 +354,26 @@ class ImageManagerTest extends TestCase { $folder->expects($this->any()) ->method('getFile') ->willReturn($oldFile); + if ($folderExists) { - $this->appData + $this->rootFolder ->expects($this->any()) ->method('getFolder') ->with('images') ->willReturn($folder); } else { - $this->appData + $this->rootFolder ->expects($this->any()) ->method('getFolder') ->with('images') ->willThrowException(new NotFoundException()); - $this->appData + $this->rootFolder ->expects($this->any()) ->method('newFolder') ->with('images') ->willReturn($folder); } + $folder->expects($this->once()) ->method('newFile') ->with($key) diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js index 2981549f2dd..34b1725daac 100644 --- a/apps/user_ldap/l10n/uk.js +++ b/apps/user_ldap/l10n/uk.js @@ -158,11 +158,11 @@ OC.L10N.register( "Base Group Tree" : "Основне Дерево Груп", "One Group Base DN per line" : "Одна Група Base DN на рядок", "Group Search Attributes" : "Пошукові Атрибути Групи", - "Group-Member association" : "Асоціація Група-Член", - "Dynamic Group Member URL" : "URL-адреса члена динамічної групи", + "Group-Member association" : "Асоціація \"група-учасник\"", + "Dynamic Group Member URL" : "URL-адреса учасника динамічної групи", "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Атрибут LDAP, який об’єктів групи містить URL-адресу пошуку LDAP, яка визначає, які об’єкти належать до групи. (Пусте налаштування вимикає функцію динамічного членства в групі.)", "Nested Groups" : "Вкладені Групи", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "При включенні, групи, які містять групи підтримуються. (Працює тільки якщо атрибут члена групи містить DNS.)", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "При включенні, групи, які містять групи підтримуються. (Працює тільки якщо атрибут учасника групи містить DN.)", "Paging chunksize" : "Розмір підкачки", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Підкачка використовується для сторінкових пошуків LDAP, які можуть повертати громіздкі результати кількісті користувачів або груп. (Установка його 0 відключає вивантаженя пошуку LDAP в таких ситуаціях.)", "Enable LDAP password changes per user" : "Дозволити зміну паролів LDAP для кожного користувача", diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json index 4b697024c11..023d601d1ad 100644 --- a/apps/user_ldap/l10n/uk.json +++ b/apps/user_ldap/l10n/uk.json @@ -156,11 +156,11 @@ "Base Group Tree" : "Основне Дерево Груп", "One Group Base DN per line" : "Одна Група Base DN на рядок", "Group Search Attributes" : "Пошукові Атрибути Групи", - "Group-Member association" : "Асоціація Група-Член", - "Dynamic Group Member URL" : "URL-адреса члена динамічної групи", + "Group-Member association" : "Асоціація \"група-учасник\"", + "Dynamic Group Member URL" : "URL-адреса учасника динамічної групи", "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Атрибут LDAP, який об’єктів групи містить URL-адресу пошуку LDAP, яка визначає, які об’єкти належать до групи. (Пусте налаштування вимикає функцію динамічного членства в групі.)", "Nested Groups" : "Вкладені Групи", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "При включенні, групи, які містять групи підтримуються. (Працює тільки якщо атрибут члена групи містить DNS.)", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "При включенні, групи, які містять групи підтримуються. (Працює тільки якщо атрибут учасника групи містить DN.)", "Paging chunksize" : "Розмір підкачки", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Підкачка використовується для сторінкових пошуків LDAP, які можуть повертати громіздкі результати кількісті користувачів або груп. (Установка його 0 відключає вивантаженя пошуку LDAP в таких ситуаціях.)", "Enable LDAP password changes per user" : "Дозволити зміну паролів LDAP для кожного користувача", diff --git a/apps/workflowengine/l10n/uk.js b/apps/workflowengine/l10n/uk.js index b6d39181e8a..5becd83b445 100644 --- a/apps/workflowengine/l10n/uk.js +++ b/apps/workflowengine/l10n/uk.js @@ -71,8 +71,8 @@ OC.L10N.register( "between" : "між", "not between" : "не між", "Request user agent" : "Запит агента користувача", - "User group membership" : "Членство в групі користувачів", - "is member of" : "є членом", - "is not member of" : "не є членом" + "User group membership" : "Участь користувача в групі", + "is member of" : "є учасником", + "is not member of" : "не є учасником" }, "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); diff --git a/apps/workflowengine/l10n/uk.json b/apps/workflowengine/l10n/uk.json index 3f536e55d25..c97ba7fb843 100644 --- a/apps/workflowengine/l10n/uk.json +++ b/apps/workflowengine/l10n/uk.json @@ -69,8 +69,8 @@ "between" : "між", "not between" : "не між", "Request user agent" : "Запит агента користувача", - "User group membership" : "Членство в групі користувачів", - "is member of" : "є членом", - "is not member of" : "не є членом" + "User group membership" : "Участь користувача в групі", + "is member of" : "є учасником", + "is not member of" : "не є учасником" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" }
\ No newline at end of file |