diff options
510 files changed, 3828 insertions, 1624 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a91da28956f..a0ebd7c2fc9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,7 +45,7 @@ Before we're able to merge your code into the ownCloud core, you need to sign ou Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the ownCloud code with PHPUnit. [agreement]: http://owncloud.org/about/contributor-agreement/ -[devmanual]: http://owncloud.org/dev/ +[devmanual]: http://owncloud.org/dev ## Translations Please submit translations via [Transifex][transifex]. diff --git a/README.md b/README.md index 9c316fc7f0b..5ab49d7e395 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Quality: - CodeClimate: [](https://codeclimate.com/github/owncloud/core) ### Installation instructions -http://doc.owncloud.org/server/7.0/developer_manual/app/index.html +http://doc.owncloud.org/server/8.0/developer_manual/app/index.html ### Contribution Guidelines http://owncloud.org/contribute/ @@ -29,4 +29,4 @@ https://www.transifex.com/projects/p/owncloud/ [](https://www.transifex.com/projects/p/owncloud/) For more detailed information about translations: -http://doc.owncloud.org/server/7.0/developer_manual/core/translation.html +http://doc.owncloud.org/server/8.0/developer_manual/core/translation.html diff --git a/apps/files/ajax/mimeicon.php b/apps/files/ajax/mimeicon.php index fdbcc441a78..c531f5a3e81 100644 --- a/apps/files/ajax/mimeicon.php +++ b/apps/files/ajax/mimeicon.php @@ -1,4 +1,6 @@ <?php \OC::$server->getSession()->close(); -print OC_Helper::mimetypeIcon($_GET['mime']); +$mime = isset($_GET['mime']) ? $_GET['mime'] : ''; + +print OC_Helper::mimetypeIcon($mime); diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 1e7b1d45f71..5b947fa326c 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -261,10 +261,14 @@ table td.filename .thumbnail { } table td.filename input.filename { width: 70%; - margin-top: 1px; - margin-left: 48px; + margin-top: 9px; + margin-left: 8px; cursor: text; } +.has-favorites table td.filename input.filename { + margin-left: 52px; +} + table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:3px 8px 8px 3px; } table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-child { float:left; padding:15px 0; } diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 875857745b8..9412e510a54 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -469,7 +469,7 @@ if (url) { OC.redirect(url); } - }); + }, t('files', 'Download')); } }; diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index e680ef4b3ed..2027f62aa02 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1692,7 +1692,7 @@ this.$el.find('#emptycontent').addClass('hidden'); if ( $('#searchresults').length === 0 || $('#searchresults').hasClass('hidden')) { this.$el.find('.nofilterresults').removeClass('hidden'). - find('p').text(t('files', "No entries in this folder match '{filter}'", {filter:this._filter})); + find('p').text(t('files', "No entries in this folder match '{filter}'", {filter:this._filter}, null, {'escape': false})); } } else { this.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty); diff --git a/apps/files/js/filesummary.js b/apps/files/js/filesummary.js index 65187276b2b..11cb4f8ee45 100644 --- a/apps/files/js/filesummary.js +++ b/apps/files/js/filesummary.js @@ -182,7 +182,7 @@ $filterInfo.html(''); $filterInfo.addClass('hidden'); } else { - $filterInfo.html(n('files', ' matches \'{filter}\'', ' match \'{filter}\'', this.summary.totalDirs + this.summary.totalFiles, {filter: this.summary.filter})); + $filterInfo.html(' ' + n('files', 'matches \'{filter}\'', 'match \'{filter}\'', this.summary.totalDirs + this.summary.totalFiles, {filter: this.summary.filter})); $filterInfo.removeClass('hidden'); } }, @@ -197,7 +197,7 @@ if (this.summary.filter === '') { var filterInfo = ''; } else { - var filterInfo = n('files', ' matches \'{filter}\'', ' match \'{filter}\'', summary.totalFiles + summary.totalDirs, {filter: summary.filter}); + var filterInfo = ' ' + n('files', 'matches \'{filter}\'', 'match \'{filter}\'', summary.totalFiles + summary.totalDirs, {filter: summary.filter}); } var infoVars = { diff --git a/apps/files/l10n/ach.js b/apps/files/l10n/ach.js index deae17398bd..c50be1aa479 100644 --- a/apps/files/l10n/ach.js +++ b/apps/files/l10n/ach.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/ach.json b/apps/files/l10n/ach.json index dd9cfe83135..210ac153bab 100644 --- a/apps/files/l10n/ach.json +++ b/apps/files/l10n/ach.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ady.js b/apps/files/l10n/ady.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/ady.js +++ b/apps/files/l10n/ady.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ady.json b/apps/files/l10n/ady.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/ady.json +++ b/apps/files/l10n/ady.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/af_ZA.js b/apps/files/l10n/af_ZA.js index 8ac92002885..92999ba3b5e 100644 --- a/apps/files/l10n/af_ZA.js +++ b/apps/files/l10n/af_ZA.js @@ -6,7 +6,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "Instellings", "Folder" : "Omslag" }, diff --git a/apps/files/l10n/af_ZA.json b/apps/files/l10n/af_ZA.json index a1d6d1b69ed..7cc67acb3fb 100644 --- a/apps/files/l10n/af_ZA.json +++ b/apps/files/l10n/af_ZA.json @@ -4,7 +4,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "Instellings", "Folder" : "Omslag" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files/l10n/ak.js b/apps/files/l10n/ak.js index 46c5e83b98e..971a3489878 100644 --- a/apps/files/l10n/ak.js +++ b/apps/files/l10n/ak.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=n > 1;"); diff --git a/apps/files/l10n/ak.json b/apps/files/l10n/ak.json index d9cd8e42001..321985e508d 100644 --- a/apps/files/l10n/ak.json +++ b/apps/files/l10n/ak.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=n > 1;" }
\ No newline at end of file diff --git a/apps/files/l10n/am_ET.js b/apps/files/l10n/am_ET.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/am_ET.js +++ b/apps/files/l10n/am_ET.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/am_ET.json b/apps/files/l10n/am_ET.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/am_ET.json +++ b/apps/files/l10n/am_ET.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js index a8da49aca92..ab22b2ef55e 100644 --- a/apps/files/l10n/ar.js +++ b/apps/files/l10n/ar.js @@ -45,7 +45,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","","","",""], "{dirs} and {files}" : "{dirs} و {files}", "Favorite" : "المفضلة", "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ", diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json index 9b35b4fd136..4b5bf1362f9 100644 --- a/apps/files/l10n/ar.json +++ b/apps/files/l10n/ar.json @@ -43,7 +43,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","","","",""], "{dirs} and {files}" : "{dirs} و {files}", "Favorite" : "المفضلة", "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ", diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js index 60fb6c6f684..fdf4213fb1c 100644 --- a/apps/files/l10n/ast.js +++ b/apps/files/l10n/ast.js @@ -71,7 +71,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorite" : "Favoritu", "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase", diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json index 07dfc88c027..998f2689db9 100644 --- a/apps/files/l10n/ast.json +++ b/apps/files/l10n/ast.json @@ -69,7 +69,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorite" : "Favoritu", "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase", diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js index b4e44362ba5..c8f3b9b48dc 100644 --- a/apps/files/l10n/az.js +++ b/apps/files/l10n/az.js @@ -54,7 +54,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Saxlamaq", "Settings" : "Quraşdırmalar", "New folder" : "Yeni qovluq", diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json index d0e6808e9eb..23c6a0f8f90 100644 --- a/apps/files/l10n/az.json +++ b/apps/files/l10n/az.json @@ -52,7 +52,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Saxlamaq", "Settings" : "Quraşdırmalar", "New folder" : "Yeni qovluq", diff --git a/apps/files/l10n/be.js b/apps/files/l10n/be.js index 40597a72ea5..80332c25878 100644 --- a/apps/files/l10n/be.js +++ b/apps/files/l10n/be.js @@ -5,7 +5,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["","","",""], "_%n file_::_%n files_" : ["","","",""], "_Uploading %n file_::_Uploading %n files_" : ["","","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "Settings" : "Налады" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/be.json b/apps/files/l10n/be.json index fa807003af8..c0fbaff942e 100644 --- a/apps/files/l10n/be.json +++ b/apps/files/l10n/be.json @@ -3,7 +3,7 @@ "_%n folder_::_%n folders_" : ["","","",""], "_%n file_::_%n files_" : ["","","",""], "_Uploading %n file_::_Uploading %n files_" : ["","","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "Settings" : "Налады" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files/l10n/bg_BG.js b/apps/files/l10n/bg_BG.js index 3b6a85822a3..962c1326eb7 100644 --- a/apps/files/l10n/bg_BG.js +++ b/apps/files/l10n/bg_BG.js @@ -71,7 +71,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} и {files}", "Favorite" : "Любими", "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит", diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json index eb63096dd4d..f587b6c4639 100644 --- a/apps/files/l10n/bg_BG.json +++ b/apps/files/l10n/bg_BG.json @@ -69,7 +69,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} и {files}", "Favorite" : "Любими", "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит", diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js index 376d1dc9d50..a79808b39b8 100644 --- a/apps/files/l10n/bn_BD.js +++ b/apps/files/l10n/bn_BD.js @@ -50,7 +50,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"], "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।", "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "প্রিয়জন", "File handling" : "ফাইল হ্যার্ডলিং", "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার", diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json index bea260ae8a3..954500f5452 100644 --- a/apps/files/l10n/bn_BD.json +++ b/apps/files/l10n/bn_BD.json @@ -48,7 +48,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"], "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।", "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "প্রিয়জন", "File handling" : "ফাইল হ্যার্ডলিং", "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার", diff --git a/apps/files/l10n/bn_IN.js b/apps/files/l10n/bn_IN.js index ff8fb32f86c..d8e060f1aad 100644 --- a/apps/files/l10n/bn_IN.js +++ b/apps/files/l10n/bn_IN.js @@ -23,7 +23,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "সেভ", "Settings" : "সেটিংস", "New folder" : "নতুন ফোল্ডার", diff --git a/apps/files/l10n/bn_IN.json b/apps/files/l10n/bn_IN.json index 92051318585..6f47e0e6db7 100644 --- a/apps/files/l10n/bn_IN.json +++ b/apps/files/l10n/bn_IN.json @@ -21,7 +21,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "সেভ", "Settings" : "সেটিংস", "New folder" : "নতুন ফোল্ডার", diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js index 11bc8d73580..4298acf5377 100644 --- a/apps/files/l10n/bs.js +++ b/apps/files/l10n/bs.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, odite u osobne postavke da biste dešifrirali svoje datoteke.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorited" : "Favorizovano", "Favorite" : "Favorit", diff --git a/apps/files/l10n/bs.json b/apps/files/l10n/bs.json index 6d122e5b294..7a809e84fd9 100644 --- a/apps/files/l10n/bs.json +++ b/apps/files/l10n/bs.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, odite u osobne postavke da biste dešifrirali svoje datoteke.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorited" : "Favorizovano", "Favorite" : "Favorit", diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index e83f0c34137..b43373eb6b3 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Preferits", "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat", diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 03ca0ce7094..9d8175c8936 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Preferits", "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat", diff --git a/apps/files/l10n/ca@valencia.js b/apps/files/l10n/ca@valencia.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/ca@valencia.js +++ b/apps/files/l10n/ca@valencia.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ca@valencia.json b/apps/files/l10n/ca@valencia.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/ca@valencia.json +++ b/apps/files/l10n/ca@valencia.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js index 0e523f5110c..848b0eda9f6 100644 --- a/apps/files/l10n/cs_CZ.js +++ b/apps/files/l10n/cs_CZ.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["odpovídá '{filter}'","odpovídají '{filter}'","odpovídá '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} a {files}", "Favorited" : "Přidáno k oblíbeným", "Favorite" : "Oblíbené", diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json index a7ae492b370..70eae60b3bd 100644 --- a/apps/files/l10n/cs_CZ.json +++ b/apps/files/l10n/cs_CZ.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["odpovídá '{filter}'","odpovídají '{filter}'","odpovídá '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} a {files}", "Favorited" : "Přidáno k oblíbeným", "Favorite" : "Oblíbené", diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js index 884a879ac08..f437968e42a 100644 --- a/apps/files/l10n/cy_GB.js +++ b/apps/files/l10n/cy_GB.js @@ -33,7 +33,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["","","",""], "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!", "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "File handling" : "Trafod ffeiliau", "Maximum upload size" : "Maint mwyaf llwytho i fyny", "max. possible: " : "mwyaf. posib:", diff --git a/apps/files/l10n/cy_GB.json b/apps/files/l10n/cy_GB.json index 5114abb7eee..acb35c16ac0 100644 --- a/apps/files/l10n/cy_GB.json +++ b/apps/files/l10n/cy_GB.json @@ -31,7 +31,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["","","",""], "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!", "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "File handling" : "Trafod ffeiliau", "Maximum upload size" : "Maint mwyaf llwytho i fyny", "max. possible: " : "mwyaf. posib:", diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 88e4388164b..cdf045b55db 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Fejl", "Could not rename file" : "Kunne ikke omdøbe filen", "Error deleting file." : "Fejl ved sletnign af fil.", + "No entries in this folder match '{filter}'" : "Der er ingen poster i denne mappe, der matcher '{filter}'", "Name" : "Navn", "Size" : "Størrelse", "Modified" : "Ændret", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorited" : "Gjort til favorit", "Favorite" : "Foretrukken", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Fortryd upload", "No files yet" : "Endnu ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Select all" : "Vælg alle", "Download" : "Download", "Upload too large" : "Upload er for stor", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 04914c9dd8d..41a76dc39e9 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -58,6 +58,7 @@ "Error" : "Fejl", "Could not rename file" : "Kunne ikke omdøbe filen", "Error deleting file." : "Fejl ved sletnign af fil.", + "No entries in this folder match '{filter}'" : "Der er ingen poster i denne mappe, der matcher '{filter}'", "Name" : "Navn", "Size" : "Størrelse", "Modified" : "Ændret", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorited" : "Gjort til favorit", "Favorite" : "Foretrukken", @@ -95,6 +96,7 @@ "Cancel upload" : "Fortryd upload", "No files yet" : "Endnu ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Select all" : "Vælg alle", "Download" : "Download", "Upload too large" : "Upload er for stor", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index ddfc8f9b597..7f4a8400b33 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} und {files}", "Favorited" : "Favorisiert", "Favorite" : "Favorit", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index fb9e3983ad8..2b9be57c32c 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} und {files}", "Favorited" : "Favorisiert", "Favorite" : "Favorit", diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js index 0d9dc1b7042..1fd0c91bd0a 100644 --- a/apps/files/l10n/de_AT.js +++ b/apps/files/l10n/de_AT.js @@ -8,7 +8,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Speichern", "Settings" : "Einstellungen", "Download" : "Herunterladen" diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json index 957de19a535..dba986cf032 100644 --- a/apps/files/l10n/de_AT.json +++ b/apps/files/l10n/de_AT.json @@ -6,7 +6,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Speichern", "Settings" : "Einstellungen", "Download" : "Herunterladen" diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 65789545c39..cc995fde4a0 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselungs-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden Sie sich nochmals ab und wieder an.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} und {files}", "Favorited" : "Favorisiert", "Favorite" : "Favorit", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 6785a72e54c..b61fe5cfe7c 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselungs-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden Sie sich nochmals ab und wieder an.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} und {files}", "Favorited" : "Favorisiert", "Favorite" : "Favorit", diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js index 68e56a761fd..f1028e664a7 100644 --- a/apps/files/l10n/el.js +++ b/apps/files/l10n/el.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}", "Favorite" : "Αγαπημένο", "%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί", diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json index d84ce3d14ff..98acc23f8ed 100644 --- a/apps/files/l10n/el.json +++ b/apps/files/l10n/el.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}", "Favorite" : "Αγαπημένο", "%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί", diff --git a/apps/files/l10n/en@pirate.js b/apps/files/l10n/en@pirate.js index dcea419024a..709448d1af3 100644 --- a/apps/files/l10n/en@pirate.js +++ b/apps/files/l10n/en@pirate.js @@ -4,7 +4,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Download" : "Download" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/en@pirate.json b/apps/files/l10n/en@pirate.json index e5f11e5504c..d5057651887 100644 --- a/apps/files/l10n/en@pirate.json +++ b/apps/files/l10n/en@pirate.json @@ -2,7 +2,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Download" : "Download" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 526aa2f2bb5..42c17931409 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.", - "_ matches '{filter}'_::_ match '{filter}'_" : [" matches '{filter}'"," match '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} and {files}", "Favorited" : "Favourited", "Favorite" : "Favourite", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index f494726e425..3fe829e8131 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.", - "_ matches '{filter}'_::_ match '{filter}'_" : [" matches '{filter}'"," match '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} and {files}", "Favorited" : "Favourited", "Favorite" : "Favourite", diff --git a/apps/files/l10n/en_NZ.js b/apps/files/l10n/en_NZ.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/en_NZ.js +++ b/apps/files/l10n/en_NZ.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/en_NZ.json b/apps/files/l10n/en_NZ.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/en_NZ.json +++ b/apps/files/l10n/en_NZ.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js index 67991c769ea..2d406129d3c 100644 --- a/apps/files/l10n/eo.js +++ b/apps/files/l10n/eo.js @@ -53,7 +53,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"], "Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", "Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} kaj {files}", "Favorite" : "Favorato", "%s could not be renamed" : "%s ne povis alinomiĝi", diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json index 18bd4da5d91..5622149c4d5 100644 --- a/apps/files/l10n/eo.json +++ b/apps/files/l10n/eo.json @@ -51,7 +51,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"], "Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", "Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} kaj {files}", "Favorite" : "Favorato", "%s could not be renamed" : "%s ne povis alinomiĝi", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 3eacdc8261d..b4d0f693a97 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["coinciden '{filter}'","coincide '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorited" : "Agregado a favoritos", "Favorite" : "Favorito", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index bb1828236ae..f4baf2fb700 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["coinciden '{filter}'","coincide '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorited" : "Agregado a favoritos", "Favorite" : "Favorito", diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js index 053f3bfbf01..162ef89d9db 100644 --- a/apps/files/l10n/es_AR.js +++ b/apps/files/l10n/es_AR.js @@ -60,7 +60,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{carpetas} y {archivos}", "Favorite" : "Favorito", "%s could not be renamed" : "No se pudo renombrar %s", diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json index 16079c8feb6..3e53f4b8259 100644 --- a/apps/files/l10n/es_AR.json +++ b/apps/files/l10n/es_AR.json @@ -58,7 +58,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{carpetas} y {archivos}", "Favorite" : "Favorito", "%s could not be renamed" : "No se pudo renombrar %s", diff --git a/apps/files/l10n/es_BO.js b/apps/files/l10n/es_BO.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_BO.js +++ b/apps/files/l10n/es_BO.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_BO.json b/apps/files/l10n/es_BO.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_BO.json +++ b/apps/files/l10n/es_BO.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js index e919f070a71..2d55e6f2199 100644 --- a/apps/files/l10n/es_CL.js +++ b/apps/files/l10n/es_CL.js @@ -8,7 +8,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "Configuración", "New folder" : "Nuevo directorio", "Upload" : "Subir", diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json index 1fb55eeee8c..23f46140803 100644 --- a/apps/files/l10n/es_CL.json +++ b/apps/files/l10n/es_CL.json @@ -6,7 +6,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "Configuración", "New folder" : "Nuevo directorio", "Upload" : "Subir", diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_CO.js +++ b/apps/files/l10n/es_CO.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_CO.json +++ b/apps/files/l10n/es_CO.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_CR.js +++ b/apps/files/l10n/es_CR.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_CR.json +++ b/apps/files/l10n/es_CR.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_EC.js +++ b/apps/files/l10n/es_EC.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_EC.json +++ b/apps/files/l10n/es_EC.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 710ddaf9e02..176b5d3a5bf 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -59,7 +59,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorite" : "Favorito", "%s could not be renamed" : "%s no pudo ser renombrado", diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index a12416a339b..e21702800c5 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -57,7 +57,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} y {files}", "Favorite" : "Favorito", "%s could not be renamed" : "%s no pudo ser renombrado", diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_PE.js +++ b/apps/files/l10n/es_PE.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_PE.json +++ b/apps/files/l10n/es_PE.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js index 436cba0b2a1..6b2234ae636 100644 --- a/apps/files/l10n/es_PY.js +++ b/apps/files/l10n/es_PY.js @@ -5,6 +5,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json index b5b022f5c0e..3fcc4aefc43 100644 --- a/apps/files/l10n/es_PY.json +++ b/apps/files/l10n/es_PY.json @@ -3,6 +3,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_US.js b/apps/files/l10n/es_US.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_US.js +++ b/apps/files/l10n/es_US.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_US.json b/apps/files/l10n/es_US.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_US.json +++ b/apps/files/l10n/es_US.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/es_UY.js +++ b/apps/files/l10n/es_UY.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/es_UY.json +++ b/apps/files/l10n/es_UY.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index e0718bd443c..a59ff8c7560 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ja {files}", "Favorite" : "Lemmik", "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index e9a9647d96d..17fa7f68fc2 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ja {files}", "Favorite" : "Lemmik", "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud", diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js index d8fc54f1d71..38447e96f8d 100644 --- a/apps/files/l10n/eu.js +++ b/apps/files/l10n/eu.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} eta {files}", "Favorite" : "Gogokoa", "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta", diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json index bbbbb2ba447..3cbf282301a 100644 --- a/apps/files/l10n/eu.json +++ b/apps/files/l10n/eu.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} eta {files}", "Favorite" : "Gogokoa", "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta", diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js index 617201108d9..5fcb10c75dd 100644 --- a/apps/files/l10n/fa.js +++ b/apps/files/l10n/fa.js @@ -37,7 +37,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["در حال بارگذاری %n فایل"], "Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!", "Your storage is almost full ({usedSpacePercent}%)" : "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.", "File handling" : "اداره پرونده ها", "Maximum upload size" : "حداکثر اندازه بارگزاری", diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json index 9e5ae8ca3f2..56f9377c2db 100644 --- a/apps/files/l10n/fa.json +++ b/apps/files/l10n/fa.json @@ -35,7 +35,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["در حال بارگذاری %n فایل"], "Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!", "Your storage is almost full ({usedSpacePercent}%)" : "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.", "File handling" : "اداره پرونده ها", "Maximum upload size" : "حداکثر اندازه بارگزاری", diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js index 545216e04aa..45c639a49d2 100644 --- a/apps/files/l10n/fi_FI.js +++ b/apps/files/l10n/fi_FI.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.", - "_ matches '{filter}'_::_ match '{filter}'_" : [" vastaa suodatusta '{filter}'"," vastaa suodatusta '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ja {files}", "Favorited" : "Lisätty suosikkeihin", "Favorite" : "Suosikki", diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json index 81fac88172d..ea87eaa64e5 100644 --- a/apps/files/l10n/fi_FI.json +++ b/apps/files/l10n/fi_FI.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.", - "_ matches '{filter}'_::_ match '{filter}'_" : [" vastaa suodatusta '{filter}'"," vastaa suodatusta '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ja {files}", "Favorited" : "Lisätty suosikkeihin", "Favorite" : "Suosikki", diff --git a/apps/files/l10n/fil.js b/apps/files/l10n/fil.js index deae17398bd..c50be1aa479 100644 --- a/apps/files/l10n/fil.js +++ b/apps/files/l10n/fil.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/fil.json b/apps/files/l10n/fil.json index dd9cfe83135..210ac153bab 100644 --- a/apps/files/l10n/fil.json +++ b/apps/files/l10n/fil.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 734d2bc6958..6baa2a6ef72 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Le chiffrement est activé, mais vos clés ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} et {files}", "Favorited" : "Marqué comme favori", "Favorite" : "Favoris", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 3964860a6cc..98d16b21de5 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Le chiffrement est activé, mais vos clés ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} et {files}", "Favorited" : "Marqué comme favori", "Favorite" : "Favoris", diff --git a/apps/files/l10n/fr_CA.js b/apps/files/l10n/fr_CA.js index deae17398bd..c50be1aa479 100644 --- a/apps/files/l10n/fr_CA.js +++ b/apps/files/l10n/fr_CA.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/fr_CA.json b/apps/files/l10n/fr_CA.json index dd9cfe83135..210ac153bab 100644 --- a/apps/files/l10n/fr_CA.json +++ b/apps/files/l10n/fr_CA.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/fy_NL.js b/apps/files/l10n/fy_NL.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/fy_NL.js +++ b/apps/files/l10n/fy_NL.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/fy_NL.json b/apps/files/l10n/fy_NL.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/fy_NL.json +++ b/apps/files/l10n/fy_NL.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js index e968d58f9e0..9e348365bf8 100644 --- a/apps/files/l10n/gl.js +++ b/apps/files/l10n/gl.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["coincidente con «{filter}»","coincidentes con «{filter}»"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Marcado como favorito", "Favorite" : "Favorito", diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json index e459feef8d0..43b24cf3e69 100644 --- a/apps/files/l10n/gl.json +++ b/apps/files/l10n/gl.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["coincidente con «{filter}»","coincidentes con «{filter}»"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Marcado como favorito", "Favorite" : "Favorito", diff --git a/apps/files/l10n/gu.js b/apps/files/l10n/gu.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/gu.js +++ b/apps/files/l10n/gu.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/gu.json b/apps/files/l10n/gu.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/gu.json +++ b/apps/files/l10n/gu.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js index 6dce479219f..f23aefda081 100644 --- a/apps/files/l10n/he.js +++ b/apps/files/l10n/he.js @@ -37,7 +37,7 @@ OC.L10N.register( "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], "Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "מועדף", "Upload (max. %s)" : "העלאה (מקסימום %s)", "File handling" : "טיפול בקבצים", diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json index 6c1ff592317..fa5d90545e6 100644 --- a/apps/files/l10n/he.json +++ b/apps/files/l10n/he.json @@ -35,7 +35,7 @@ "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], "Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "מועדף", "Upload (max. %s)" : "העלאה (מקסימום %s)", "File handling" : "טיפול בקבצים", diff --git a/apps/files/l10n/hi.js b/apps/files/l10n/hi.js index 2064fa2c7e3..a23e65aeb14 100644 --- a/apps/files/l10n/hi.js +++ b/apps/files/l10n/hi.js @@ -6,7 +6,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "सहेजें", "Settings" : "सेटिंग्स", "New folder" : "नया फ़ोल्डर", diff --git a/apps/files/l10n/hi.json b/apps/files/l10n/hi.json index ae2e3550df3..f9b29b4af36 100644 --- a/apps/files/l10n/hi.json +++ b/apps/files/l10n/hi.json @@ -4,7 +4,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "सहेजें", "Settings" : "सेटिंग्स", "New folder" : "नया फ़ोल्डर", diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js index b4bf0606629..d3cc7df5080 100644 --- a/apps/files/l10n/hr.js +++ b/apps/files/l10n/hr.js @@ -71,7 +71,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan", diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json index 704c5080d47..031ed08758d 100644 --- a/apps/files/l10n/hr.json +++ b/apps/files/l10n/hr.json @@ -69,7 +69,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan", diff --git a/apps/files/l10n/hu_HU.js b/apps/files/l10n/hu_HU.js index fe4a138040d..132834900ff 100644 --- a/apps/files/l10n/hu_HU.js +++ b/apps/files/l10n/hu_HU.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} és {files}", "Favorited" : "Kedvenc", "Favorite" : "Kedvenc", diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json index 81c9469161d..608f734d274 100644 --- a/apps/files/l10n/hu_HU.json +++ b/apps/files/l10n/hu_HU.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} és {files}", "Favorited" : "Kedvenc", "Favorite" : "Kedvenc", diff --git a/apps/files/l10n/hy.js b/apps/files/l10n/hy.js index bb4a362d12d..8aecda86282 100644 --- a/apps/files/l10n/hy.js +++ b/apps/files/l10n/hy.js @@ -5,7 +5,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Պահպանել", "Download" : "Բեռնել" }, diff --git a/apps/files/l10n/hy.json b/apps/files/l10n/hy.json index d433cc5b5c9..e9e3c0206e8 100644 --- a/apps/files/l10n/hy.json +++ b/apps/files/l10n/hy.json @@ -3,7 +3,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Պահպանել", "Download" : "Բեռնել" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js index 901a12cd538..0f64b0b7793 100644 --- a/apps/files/l10n/ia.js +++ b/apps/files/l10n/ia.js @@ -17,7 +17,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Upload (max. %s)" : "Incargar (max. %s)", "Maximum upload size" : "Dimension maxime de incargamento", "Save" : "Salveguardar", diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json index 2384c23a6fc..505631a433e 100644 --- a/apps/files/l10n/ia.json +++ b/apps/files/l10n/ia.json @@ -15,7 +15,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Upload (max. %s)" : "Incargar (max. %s)", "Maximum upload size" : "Dimension maxime de incargamento", "Save" : "Salveguardar", diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js index 884d600625a..541e2654a0f 100644 --- a/apps/files/l10n/id.js +++ b/apps/files/l10n/id.js @@ -71,7 +71,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} dan {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus", diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json index bd17646a1a9..ec6174f808d 100644 --- a/apps/files/l10n/id.json +++ b/apps/files/l10n/id.json @@ -69,7 +69,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} dan {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus", diff --git a/apps/files/l10n/io.js b/apps/files/l10n/io.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/io.js +++ b/apps/files/l10n/io.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/io.json b/apps/files/l10n/io.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/io.json +++ b/apps/files/l10n/io.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index 129d381c117..afca64d1b4c 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -30,7 +30,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Meðhöndlun skrár", "Maximum upload size" : "Hámarks stærð innsendingar", "max. possible: " : "hámark mögulegt: ", diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index 48e0aa4c501..0038ac65765 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -28,7 +28,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Meðhöndlun skrár", "Maximum upload size" : "Hámarks stærð innsendingar", "max. possible: " : "hámark mögulegt: ", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 7ad4bcf787f..81ecf493afd 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["corrisponde a '{filter}'","corrispondono a '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Preferiti", "Favorite" : "Preferito", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 3e799998d77..f291a5376eb 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["corrisponde a '{filter}'","corrispondono a '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Preferiti", "Favorite" : "Preferito", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index 828ff65287b..ded0ac41b1b 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} と {files}", "Favorited" : "お気に入り済", "Favorite" : "お気に入り", @@ -97,6 +97,7 @@ OC.L10N.register( "Cancel upload" : "アップロードをキャンセル", "No files yet" : "ファイルなし", "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Select all" : "すべて選択", "Download" : "ダウンロード", "Upload too large" : "アップロードには大きすぎます。", @@ -104,6 +105,6 @@ OC.L10N.register( "Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。", "Currently scanning" : "現在スキャン中", "No favorites" : "お気に入りなし", - "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダは、ここに表示されます。" + "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。" }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index 7f83bb57797..4044fe8311e 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} と {files}", "Favorited" : "お気に入り済", "Favorite" : "お気に入り", @@ -95,6 +95,7 @@ "Cancel upload" : "アップロードをキャンセル", "No files yet" : "ファイルなし", "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Select all" : "すべて選択", "Download" : "ダウンロード", "Upload too large" : "アップロードには大きすぎます。", @@ -102,6 +103,6 @@ "Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。", "Currently scanning" : "現在スキャン中", "No favorites" : "お気に入りなし", - "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダは、ここに表示されます。" + "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/jv.js b/apps/files/l10n/jv.js index 73f597c17c2..adbd28854f5 100644 --- a/apps/files/l10n/jv.js +++ b/apps/files/l10n/jv.js @@ -4,7 +4,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Download" : "Njipuk" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/jv.json b/apps/files/l10n/jv.json index 42528a5aeab..9c2ed5bfbfb 100644 --- a/apps/files/l10n/jv.json +++ b/apps/files/l10n/jv.json @@ -2,7 +2,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Download" : "Njipuk" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js index 2b5339fa774..3b7e54615bd 100644 --- a/apps/files/l10n/ka_GE.js +++ b/apps/files/l10n/ka_GE.js @@ -35,7 +35,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : [""], "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "ფავორიტი", "File handling" : "ფაილის დამუშავება", "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json index 664c8e3c0e0..9503a3fbc51 100644 --- a/apps/files/l10n/ka_GE.json +++ b/apps/files/l10n/ka_GE.json @@ -33,7 +33,7 @@ "_Uploading %n file_::_Uploading %n files_" : [""], "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "ფავორიტი", "File handling" : "ფაილის დამუშავება", "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js index 1efaad9e034..34a2ee15bb1 100644 --- a/apps/files/l10n/km.js +++ b/apps/files/l10n/km.js @@ -22,7 +22,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Maximum upload size" : "ទំហំផ្ទុកឡើងជាអតិបរមា", "Save" : "រក្សាទុក", "Settings" : "ការកំណត់", diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json index 1a94fd13d3d..8c8eb9bb6d9 100644 --- a/apps/files/l10n/km.json +++ b/apps/files/l10n/km.json @@ -20,7 +20,7 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Maximum upload size" : "ទំហំផ្ទុកឡើងជាអតិបរមា", "Save" : "រក្សាទុក", "Settings" : "ការកំណត់", diff --git a/apps/files/l10n/kn.js b/apps/files/l10n/kn.js index 783eb4dc14c..cdc1c8f413b 100644 --- a/apps/files/l10n/kn.js +++ b/apps/files/l10n/kn.js @@ -58,7 +58,7 @@ OC.L10N.register( "_%n file_::_%n files_" : ["%n ಕಡತ"], "You don’t have permission to upload or create files here" : "ನಿಮಗೆ ಇಲ್ಲಿ ಅಪ್ಲೋಡ್ ಅಥವಾ ಕಡತಗಳನ್ನು ರಚಿಸವ ಅನುಮತಿ ಇಲ್ಲ", "_Uploading %n file_::_Uploading %n files_" : ["%n 'ನೆ ಕಡತವನ್ನು ವರ್ಗಾಯಿಸಲಾಗುತ್ತಿದೆ"], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು", "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", "Upload (max. %s)" : "ವರ್ಗಾವಣೆ (ಗರಿಷ್ಠ %s)", diff --git a/apps/files/l10n/kn.json b/apps/files/l10n/kn.json index 4d25a6b9cb5..273c4c1b997 100644 --- a/apps/files/l10n/kn.json +++ b/apps/files/l10n/kn.json @@ -56,7 +56,7 @@ "_%n file_::_%n files_" : ["%n ಕಡತ"], "You don’t have permission to upload or create files here" : "ನಿಮಗೆ ಇಲ್ಲಿ ಅಪ್ಲೋಡ್ ಅಥವಾ ಕಡತಗಳನ್ನು ರಚಿಸವ ಅನುಮತಿ ಇಲ್ಲ", "_Uploading %n file_::_Uploading %n files_" : ["%n 'ನೆ ಕಡತವನ್ನು ವರ್ಗಾಯಿಸಲಾಗುತ್ತಿದೆ"], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು", "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", "Upload (max. %s)" : "ವರ್ಗಾವಣೆ (ಗರಿಷ್ಠ %s)", diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 2146addc20b..39bfcf609ea 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -60,7 +60,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 그리고 {files}", "Favorite" : "즐겨찾기", "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다", diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index 2086a83f2f5..95122200c46 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -58,7 +58,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 그리고 {files}", "Favorite" : "즐겨찾기", "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다", diff --git a/apps/files/l10n/ku_IQ.js b/apps/files/l10n/ku_IQ.js index f8d68030265..4650250a36d 100644 --- a/apps/files/l10n/ku_IQ.js +++ b/apps/files/l10n/ku_IQ.js @@ -8,7 +8,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "پاشکهوتکردن", "Settings" : "ڕێکخستنهکان", "Folder" : "بوخچه", diff --git a/apps/files/l10n/ku_IQ.json b/apps/files/l10n/ku_IQ.json index 057f5df0a85..ec857007815 100644 --- a/apps/files/l10n/ku_IQ.json +++ b/apps/files/l10n/ku_IQ.json @@ -6,7 +6,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "پاشکهوتکردن", "Settings" : "ڕێکخستنهکان", "Folder" : "بوخچه", diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js index 00bcd569b51..9db0637560e 100644 --- a/apps/files/l10n/lb.js +++ b/apps/files/l10n/lb.js @@ -24,7 +24,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Fichier handling", "Maximum upload size" : "Maximum Upload Gréisst ", "max. possible: " : "max. méiglech:", diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json index d63026bedb6..80512f7b5ec 100644 --- a/apps/files/l10n/lb.json +++ b/apps/files/l10n/lb.json @@ -22,7 +22,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Fichier handling", "Maximum upload size" : "Maximum Upload Gréisst ", "max. possible: " : "max. méiglech:", diff --git a/apps/files/l10n/lo.js b/apps/files/l10n/lo.js index 8c5bb3bc949..91d52801985 100644 --- a/apps/files/l10n/lo.js +++ b/apps/files/l10n/lo.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/lo.json b/apps/files/l10n/lo.json index e03a2942ff2..82cca5a0661 100644 --- a/apps/files/l10n/lo.json +++ b/apps/files/l10n/lo.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js index 5e81bf8b82a..5223bb2388d 100644 --- a/apps/files/l10n/lt_LT.js +++ b/apps/files/l10n/lt_LT.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} ir {files}", "Favorited" : "Pažymėta mėgstamu", "Favorite" : "Mėgiamas", diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json index e5f787063cb..d2c5cb6049a 100644 --- a/apps/files/l10n/lt_LT.json +++ b/apps/files/l10n/lt_LT.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} ir {files}", "Favorited" : "Pažymėta mėgstamu", "Favorite" : "Mėgiamas", diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js index fc0e3646c78..93ec448ce3b 100644 --- a/apps/files/l10n/lv.js +++ b/apps/files/l10n/lv.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Kļūda", "Could not rename file" : "Neizdevās pārsaukt datni", "Error deleting file." : "Kļūda, dzēšot datni.", + "No entries in this folder match '{filter}'" : "Šajā mapē nekas nav atrasts, meklējot pēc '{filter}'", "Name" : "Nosaukums", "Size" : "Izmērs", "Modified" : "Mainīts", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Šifrēšanas lietotnei nepareiza privātā atslēga. Lūdzu atjaunojiet savu privāto atslēgu personīgo uzstādījumu sadaļā, lai atjaunot pieeju šifrētajiem failiem.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} un {files}", "Favorited" : "Favorīti", "Favorite" : "Iecienītais", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Atcelt augšupielādi", "No files yet" : "Vēl nav neviena datne", "Upload some content or sync with your devices!" : "Augšupielādē kaut ko vai sinhronizē saturu ar savām ierīcēm!", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Select all" : "Atzīmēt visu", "Download" : "Lejupielādēt", "Upload too large" : "Datne ir par lielu, lai to augšupielādētu", diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json index ef93ad39455..6dba66f6960 100644 --- a/apps/files/l10n/lv.json +++ b/apps/files/l10n/lv.json @@ -58,6 +58,7 @@ "Error" : "Kļūda", "Could not rename file" : "Neizdevās pārsaukt datni", "Error deleting file." : "Kļūda, dzēšot datni.", + "No entries in this folder match '{filter}'" : "Šajā mapē nekas nav atrasts, meklējot pēc '{filter}'", "Name" : "Nosaukums", "Size" : "Izmērs", "Modified" : "Mainīts", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Šifrēšanas lietotnei nepareiza privātā atslēga. Lūdzu atjaunojiet savu privāto atslēgu personīgo uzstādījumu sadaļā, lai atjaunot pieeju šifrētajiem failiem.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} un {files}", "Favorited" : "Favorīti", "Favorite" : "Iecienītais", @@ -95,6 +96,7 @@ "Cancel upload" : "Atcelt augšupielādi", "No files yet" : "Vēl nav neviena datne", "Upload some content or sync with your devices!" : "Augšupielādē kaut ko vai sinhronizē saturu ar savām ierīcēm!", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Select all" : "Atzīmēt visu", "Download" : "Lejupielādēt", "Upload too large" : "Datne ir par lielu, lai to augšupielādētu", diff --git a/apps/files/l10n/mg.js b/apps/files/l10n/mg.js index deae17398bd..c50be1aa479 100644 --- a/apps/files/l10n/mg.js +++ b/apps/files/l10n/mg.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/mg.json b/apps/files/l10n/mg.json index dd9cfe83135..210ac153bab 100644 --- a/apps/files/l10n/mg.json +++ b/apps/files/l10n/mg.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js index a74b38113ad..cc4d63abc2c 100644 --- a/apps/files/l10n/mk.js +++ b/apps/files/l10n/mk.js @@ -50,7 +50,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["",""], "Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!", "Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} и {files}", "%s could not be renamed" : "%s не може да биде преименуван", "File handling" : "Ракување со датотеки", diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json index 74b1717b65c..6cf7b677bd1 100644 --- a/apps/files/l10n/mk.json +++ b/apps/files/l10n/mk.json @@ -48,7 +48,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["",""], "Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!", "Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} и {files}", "%s could not be renamed" : "%s не може да биде преименуван", "File handling" : "Ракување со датотеки", diff --git a/apps/files/l10n/ml.js b/apps/files/l10n/ml.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/ml.js +++ b/apps/files/l10n/ml.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ml.json b/apps/files/l10n/ml.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/ml.json +++ b/apps/files/l10n/ml.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ml_IN.js b/apps/files/l10n/ml_IN.js index d37e940eee1..ada7e5aa6c4 100644 --- a/apps/files/l10n/ml_IN.js +++ b/apps/files/l10n/ml_IN.js @@ -5,6 +5,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ml_IN.json b/apps/files/l10n/ml_IN.json index 1def6b0b49c..e81680ca125 100644 --- a/apps/files/l10n/ml_IN.json +++ b/apps/files/l10n/ml_IN.json @@ -3,6 +3,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/mn.js b/apps/files/l10n/mn.js index 1499e7762d3..9eb11fe8f6d 100644 --- a/apps/files/l10n/mn.js +++ b/apps/files/l10n/mn.js @@ -5,7 +5,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Хадгалах", "Settings" : "Тохиргоо", "Upload" : "Байршуулах" diff --git a/apps/files/l10n/mn.json b/apps/files/l10n/mn.json index a0faca10bbd..7b134c1f1a5 100644 --- a/apps/files/l10n/mn.json +++ b/apps/files/l10n/mn.json @@ -3,7 +3,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "Хадгалах", "Settings" : "Тохиргоо", "Upload" : "Байршуулах" diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js index 65e26847c18..8c85d6ced0d 100644 --- a/apps/files/l10n/ms_MY.js +++ b/apps/files/l10n/ms_MY.js @@ -21,7 +21,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "File handling" : "Pengendalian fail", "Maximum upload size" : "Saiz maksimum muat naik", "max. possible: " : "maksimum:", diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json index 4a36155fea1..68c6c424bb7 100644 --- a/apps/files/l10n/ms_MY.json +++ b/apps/files/l10n/ms_MY.json @@ -19,7 +19,7 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "File handling" : "Pengendalian fail", "Maximum upload size" : "Saiz maksimum muat naik", "max. possible: " : "maksimum:", diff --git a/apps/files/l10n/mt_MT.js b/apps/files/l10n/mt_MT.js index 143288144c0..2cbab15890e 100644 --- a/apps/files/l10n/mt_MT.js +++ b/apps/files/l10n/mt_MT.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["","","",""], "_%n file_::_%n files_" : ["","","",""], "_Uploading %n file_::_Uploading %n files_" : ["","","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""] + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""] }, "nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"); diff --git a/apps/files/l10n/mt_MT.json b/apps/files/l10n/mt_MT.json index d595e2e00af..f10f0a0408d 100644 --- a/apps/files/l10n/mt_MT.json +++ b/apps/files/l10n/mt_MT.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["","","",""], "_%n file_::_%n files_" : ["","","",""], "_Uploading %n file_::_Uploading %n files_" : ["","","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""] + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""] },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files/l10n/my_MM.js b/apps/files/l10n/my_MM.js index 059be79f4ac..315a684a598 100644 --- a/apps/files/l10n/my_MM.js +++ b/apps/files/l10n/my_MM.js @@ -5,7 +5,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Download" : "ဒေါင်းလုတ်" }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/my_MM.json b/apps/files/l10n/my_MM.json index 30eb8a20782..cf92c3d6670 100644 --- a/apps/files/l10n/my_MM.json +++ b/apps/files/l10n/my_MM.json @@ -3,7 +3,7 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Download" : "ဒေါင်းလုတ်" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js index e14a84a35dc..adfd6e03633 100644 --- a/apps/files/l10n/nb_NO.js +++ b/apps/files/l10n/nb_NO.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Feil", "Could not rename file" : "Klarte ikke å gi nytt navn til fil", "Error deleting file." : "Feil ved sletting av fil.", + "No entries in this folder match '{filter}'" : "Ingen oppføringer i denne mappen stemmer med '{filter}'", "Name" : "Navn", "Size" : "Størrelse", "Modified" : "Endret", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorited" : "Er favoritt", "Favorite" : "Gjør til favoritt", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Avbryt opplasting", "No files yet" : "Ingen filer ennå", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Select all" : "Velg alle", "Download" : "Last ned", "Upload too large" : "Filen er for stor", diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json index d61e2c63de7..ccacb8bb0dd 100644 --- a/apps/files/l10n/nb_NO.json +++ b/apps/files/l10n/nb_NO.json @@ -58,6 +58,7 @@ "Error" : "Feil", "Could not rename file" : "Klarte ikke å gi nytt navn til fil", "Error deleting file." : "Feil ved sletting av fil.", + "No entries in this folder match '{filter}'" : "Ingen oppføringer i denne mappen stemmer med '{filter}'", "Name" : "Navn", "Size" : "Størrelse", "Modified" : "Endret", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorited" : "Er favoritt", "Favorite" : "Gjør til favoritt", @@ -95,6 +96,7 @@ "Cancel upload" : "Avbryt opplasting", "No files yet" : "Ingen filer ennå", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Select all" : "Velg alle", "Download" : "Last ned", "Upload too large" : "Filen er for stor", diff --git a/apps/files/l10n/nds.js b/apps/files/l10n/nds.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/nds.js +++ b/apps/files/l10n/nds.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/nds.json b/apps/files/l10n/nds.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/nds.json +++ b/apps/files/l10n/nds.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ne.js b/apps/files/l10n/ne.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/ne.js +++ b/apps/files/l10n/ne.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ne.json b/apps/files/l10n/ne.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/ne.json +++ b/apps/files/l10n/ne.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index 58cc47baa8b..5995ac5ddce 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Fout", "Could not rename file" : "Kon de naam van het bestand niet wijzigen", "Error deleting file." : "Fout bij verwijderen bestand.", + "No entries in this folder match '{filter}'" : "Niets in deze map komt overeen met '{filter}'", "Name" : "Naam", "Size" : "Grootte", "Modified" : "Aangepast", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} en {files}", "Favorited" : "Favoriet", "Favorite" : "Favoriet", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Upload afbreken", "No files yet" : "Nog geen bestanden.", "Upload some content or sync with your devices!" : "Upload bestanden of synchroniseer met uw apparaten!", + "No entries found in this folder" : "Niets", "Select all" : "Alles selecteren", "Download" : "Downloaden", "Upload too large" : "Upload is te groot", diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index ef0fafe4344..a757c449d13 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -58,6 +58,7 @@ "Error" : "Fout", "Could not rename file" : "Kon de naam van het bestand niet wijzigen", "Error deleting file." : "Fout bij verwijderen bestand.", + "No entries in this folder match '{filter}'" : "Niets in deze map komt overeen met '{filter}'", "Name" : "Naam", "Size" : "Grootte", "Modified" : "Aangepast", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} en {files}", "Favorited" : "Favoriet", "Favorite" : "Favoriet", @@ -95,6 +96,7 @@ "Cancel upload" : "Upload afbreken", "No files yet" : "Nog geen bestanden.", "Upload some content or sync with your devices!" : "Upload bestanden of synchroniseer met uw apparaten!", + "No entries found in this folder" : "Niets", "Select all" : "Alles selecteren", "Download" : "Downloaden", "Upload too large" : "Upload is te groot", diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js index bde31ce1118..f5a2adfd878 100644 --- a/apps/files/l10n/nn_NO.js +++ b/apps/files/l10n/nn_NO.js @@ -43,7 +43,7 @@ OC.L10N.register( "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorite" : "Favoritt", "%s could not be renamed" : "Klarte ikkje å omdøypa på %s", diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json index 79a358b550d..e30213b7fd1 100644 --- a/apps/files/l10n/nn_NO.json +++ b/apps/files/l10n/nn_NO.json @@ -41,7 +41,7 @@ "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} og {files}", "Favorite" : "Favoritt", "%s could not be renamed" : "Klarte ikkje å omdøypa på %s", diff --git a/apps/files/l10n/nqo.js b/apps/files/l10n/nqo.js index 8c5bb3bc949..91d52801985 100644 --- a/apps/files/l10n/nqo.js +++ b/apps/files/l10n/nqo.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/nqo.json b/apps/files/l10n/nqo.json index e03a2942ff2..82cca5a0661 100644 --- a/apps/files/l10n/nqo.json +++ b/apps/files/l10n/nqo.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js index 99c3e8e0742..ac6b1b3176c 100644 --- a/apps/files/l10n/oc.js +++ b/apps/files/l10n/oc.js @@ -21,7 +21,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Manejament de fichièr", "Maximum upload size" : "Talha maximum d'amontcargament", "max. possible: " : "max. possible: ", diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json index 7a1185c4002..f2a6c8493e3 100644 --- a/apps/files/l10n/oc.json +++ b/apps/files/l10n/oc.json @@ -19,7 +19,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "Manejament de fichièr", "Maximum upload size" : "Talha maximum d'amontcargament", "max. possible: " : "max. possible: ", diff --git a/apps/files/l10n/or_IN.js b/apps/files/l10n/or_IN.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/or_IN.js +++ b/apps/files/l10n/or_IN.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/or_IN.json b/apps/files/l10n/or_IN.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/or_IN.json +++ b/apps/files/l10n/or_IN.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/pa.js b/apps/files/l10n/pa.js index 951695545ee..d73d5ce6f33 100644 --- a/apps/files/l10n/pa.js +++ b/apps/files/l10n/pa.js @@ -9,7 +9,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "ਸੈਟਿੰਗ", "Upload" : "ਅੱਪਲੋਡ", "Cancel upload" : "ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ", diff --git a/apps/files/l10n/pa.json b/apps/files/l10n/pa.json index 601c6edbb27..07db677e19c 100644 --- a/apps/files/l10n/pa.json +++ b/apps/files/l10n/pa.json @@ -7,7 +7,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "ਸੈਟਿੰਗ", "Upload" : "ਅੱਪਲੋਡ", "Cancel upload" : "ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index b548af4b58d..155eaf30ea0 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Ulubione", "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 9d651ffe648..574113bb6f1 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} i {files}", "Favorite" : "Ulubione", "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 340ebfdf06a..b517cb4ce15 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -74,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Favorito", "Favorite" : "Favorito", @@ -98,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Cancelar envio", "No files yet" : "Nenhum arquivo até agora", "Upload some content or sync with your devices!" : "Carregue algum conteúdo ou sincronize com seus dispositivos!", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Select all" : "Selecionar tudo", "Download" : "Baixar", "Upload too large" : "Arquivo muito grande para envio", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 6e43d32d080..f51426eed1d 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -72,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Favorito", "Favorite" : "Favorito", @@ -96,6 +96,7 @@ "Cancel upload" : "Cancelar envio", "No files yet" : "Nenhum arquivo até agora", "Upload some content or sync with your devices!" : "Carregue algum conteúdo ou sincronize com seus dispositivos!", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Select all" : "Selecionar tudo", "Download" : "Baixar", "Upload too large" : "Arquivo muito grande para envio", diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js index 509c85ad58c..e51b89cdbb4 100644 --- a/apps/files/l10n/pt_PT.js +++ b/apps/files/l10n/pt_PT.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorite" : "Favorito", "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado", diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json index fb333fa23b0..64544cb9502 100644 --- a/apps/files/l10n/pt_PT.json +++ b/apps/files/l10n/pt_PT.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} e {files}", "Favorite" : "Favorito", "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado", diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js index 32475b5eb0f..4d50f05a8b1 100644 --- a/apps/files/l10n/ro.js +++ b/apps/files/l10n/ro.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} și {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters", diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json index a05cd39881e..e571e3a9219 100644 --- a/apps/files/l10n/ro.json +++ b/apps/files/l10n/ro.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} și {files}", "Favorite" : "Favorit", "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 86416d1e776..14db0569374 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Ошибка", "Could not rename file" : "Не удалось переименовать файл", "Error deleting file." : "Ошибка при удалении файла.", + "No entries in this folder match '{filter}'" : "В данном каталоге нет ничего соответствующего '{filter}'", "Name" : "Имя", "Size" : "Размер", "Modified" : "Изменён", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} и {files}", "Favorited" : "Избранное", "Favorite" : "Избранное", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Отменить загрузку", "No files yet" : "Пока ещё нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", + "No entries found in this folder" : "Ничего не найдено", "Select all" : "Выбрать все", "Download" : "Скачать", "Upload too large" : "Файл слишком велик", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index b0c7c706b57..4f23a784f13 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -58,6 +58,7 @@ "Error" : "Ошибка", "Could not rename file" : "Не удалось переименовать файл", "Error deleting file." : "Ошибка при удалении файла.", + "No entries in this folder match '{filter}'" : "В данном каталоге нет ничего соответствующего '{filter}'", "Name" : "Имя", "Size" : "Размер", "Modified" : "Изменён", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} и {files}", "Favorited" : "Избранное", "Favorite" : "Избранное", @@ -95,6 +96,7 @@ "Cancel upload" : "Отменить загрузку", "No files yet" : "Пока ещё нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", + "No entries found in this folder" : "Ничего не найдено", "Select all" : "Выбрать все", "Download" : "Скачать", "Upload too large" : "Файл слишком велик", diff --git a/apps/files/l10n/si_LK.js b/apps/files/l10n/si_LK.js index 2b0bd0d3d2b..c0c8d370ab9 100644 --- a/apps/files/l10n/si_LK.js +++ b/apps/files/l10n/si_LK.js @@ -23,7 +23,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "ගොනු පරිහරණය", "Maximum upload size" : "උඩුගත කිරීමක උපරිම ප්රමාණය", "max. possible: " : "හැකි උපරිමය:", diff --git a/apps/files/l10n/si_LK.json b/apps/files/l10n/si_LK.json index 67538b76f59..44a4d68e4aa 100644 --- a/apps/files/l10n/si_LK.json +++ b/apps/files/l10n/si_LK.json @@ -21,7 +21,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "File handling" : "ගොනු පරිහරණය", "Maximum upload size" : "උඩුගත කිරීමක උපරිම ප්රමාණය", "max. possible: " : "හැකි උපරිමය:", diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js index cdff3280b4d..1918f27c187 100644 --- a/apps/files/l10n/sk_SK.js +++ b/apps/files/l10n/sk_SK.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} a {files}", "Favorite" : "Obľúbené", "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný", diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json index 8484602b886..b2a262b335a 100644 --- a/apps/files/l10n/sk_SK.json +++ b/apps/files/l10n/sk_SK.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} a {files}", "Favorite" : "Obľúbené", "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index d942f2fdc06..d48eaa75790 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -60,6 +60,7 @@ OC.L10N.register( "Error" : "Napaka", "Could not rename file" : "Ni mogoče preimenovati datoteke", "Error deleting file." : "Napaka brisanja datoteke.", + "No entries in this folder match '{filter}'" : "Ni zadetkov, ki bi bili skladni z nizom '{filter}'", "Name" : "Ime", "Size" : "Velikost", "Modified" : "Spremenjeno", @@ -73,7 +74,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "{dirs} and {files}" : "{dirs} in {files}", "Favorited" : "Označeno kot priljubljeno", "Favorite" : "Priljubljene", @@ -97,6 +98,7 @@ OC.L10N.register( "Cancel upload" : "Prekliči pošiljanje", "No files yet" : "Ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Select all" : "izberi vse", "Download" : "Prejmi", "Upload too large" : "Prekoračenje omejitve velikosti", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index 7ef8b666fe8..8a310c24ddf 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -58,6 +58,7 @@ "Error" : "Napaka", "Could not rename file" : "Ni mogoče preimenovati datoteke", "Error deleting file." : "Napaka brisanja datoteke.", + "No entries in this folder match '{filter}'" : "Ni zadetkov, ki bi bili skladni z nizom '{filter}'", "Name" : "Ime", "Size" : "Velikost", "Modified" : "Spremenjeno", @@ -71,7 +72,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","","",""], "{dirs} and {files}" : "{dirs} in {files}", "Favorited" : "Označeno kot priljubljeno", "Favorite" : "Priljubljene", @@ -95,6 +96,7 @@ "Cancel upload" : "Prekliči pošiljanje", "No files yet" : "Ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Select all" : "izberi vse", "Download" : "Prejmi", "Upload too large" : "Prekoračenje omejitve velikosti", diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js index b69335ed845..97ec5285020 100644 --- a/apps/files/l10n/sq.js +++ b/apps/files/l10n/sq.js @@ -70,7 +70,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacioni i Shifrimit është i aktivizuar por çelësat tuaj nuk janë aktivizuar, ju lutem dilni dhe ri-hyni përseri në sistem", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} dhe {files}", "%s could not be renamed as it has been deleted" : "%s nuk mund të riemërtohet sepse është fshirë", "%s could not be renamed" : "Nuk është i mundur riemërtimi i %s", diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json index 3281d5bcd81..8d0d335e296 100644 --- a/apps/files/l10n/sq.json +++ b/apps/files/l10n/sq.json @@ -68,7 +68,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacioni i Shifrimit është i aktivizuar por çelësat tuaj nuk janë aktivizuar, ju lutem dilni dhe ri-hyni përseri në sistem", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} dhe {files}", "%s could not be renamed as it has been deleted" : "%s nuk mund të riemërtohet sepse është fshirë", "%s could not be renamed" : "Nuk është i mundur riemërtimi i %s", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index 7c226734943..7e0391c81f3 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -33,7 +33,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : ["","",""], "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Датотеке више не могу бити ажуриране ни синхронизоване.", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро па пуно ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "File handling" : "Управљање датотекама", "Maximum upload size" : "Највећа величина датотеке", "max. possible: " : "највећа величина:", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index 2452ac613dd..77d8f1e99c7 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -31,7 +31,7 @@ "_Uploading %n file_::_Uploading %n files_" : ["","",""], "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Датотеке више не могу бити ажуриране ни синхронизоване.", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро па пуно ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "File handling" : "Управљање датотекама", "Maximum upload size" : "Највећа величина датотеке", "max. possible: " : "највећа величина:", diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js index 9552854edab..7f0e00a7f94 100644 --- a/apps/files/l10n/sr@latin.js +++ b/apps/files/l10n/sr@latin.js @@ -18,7 +18,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["","",""], "_%n file_::_%n files_" : ["","",""], "_Uploading %n file_::_Uploading %n files_" : ["","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "Maximum upload size" : "Maksimalna veličina pošiljke", "Save" : "Snimi", "Settings" : "Podešavanja", diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json index 5f0914cbb12..53b3090646b 100644 --- a/apps/files/l10n/sr@latin.json +++ b/apps/files/l10n/sr@latin.json @@ -16,7 +16,7 @@ "_%n folder_::_%n folders_" : ["","",""], "_%n file_::_%n files_" : ["","",""], "_Uploading %n file_::_Uploading %n files_" : ["","",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "Maximum upload size" : "Maksimalna veličina pošiljke", "Save" : "Snimi", "Settings" : "Podešavanja", diff --git a/apps/files/l10n/su.js b/apps/files/l10n/su.js index 8c5bb3bc949..91d52801985 100644 --- a/apps/files/l10n/su.js +++ b/apps/files/l10n/su.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/su.json b/apps/files/l10n/su.json index e03a2942ff2..82cca5a0661 100644 --- a/apps/files/l10n/su.json +++ b/apps/files/l10n/su.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index f0981c9981b..36f8a843758 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} och {files}", "Favorited" : "Favoritiserad", "Favorite" : "Favorit", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 72cf045a8d2..e976598bdeb 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} och {files}", "Favorited" : "Favoritiserad", "Favorite" : "Favorit", diff --git a/apps/files/l10n/sw_KE.js b/apps/files/l10n/sw_KE.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/sw_KE.js +++ b/apps/files/l10n/sw_KE.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/sw_KE.json b/apps/files/l10n/sw_KE.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/sw_KE.json +++ b/apps/files/l10n/sw_KE.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/ta_IN.js b/apps/files/l10n/ta_IN.js index 143c52d6e32..72b5cd5b911 100644 --- a/apps/files/l10n/ta_IN.js +++ b/apps/files/l10n/ta_IN.js @@ -5,7 +5,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "அமைப்புகள்", "New folder" : "புதிய கோப்புறை", "Upload" : "பதிவேற்று" diff --git a/apps/files/l10n/ta_IN.json b/apps/files/l10n/ta_IN.json index ec2ffb63ab3..8db012a7066 100644 --- a/apps/files/l10n/ta_IN.json +++ b/apps/files/l10n/ta_IN.json @@ -3,7 +3,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Settings" : "அமைப்புகள்", "New folder" : "புதிய கோப்புறை", "Upload" : "பதிவேற்று" diff --git a/apps/files/l10n/ta_LK.js b/apps/files/l10n/ta_LK.js index a73716e10ee..ad4fd86fd82 100644 --- a/apps/files/l10n/ta_LK.js +++ b/apps/files/l10n/ta_LK.js @@ -27,7 +27,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "விருப்பமான", "File handling" : "கோப்பு கையாளுதல்", "Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ", diff --git a/apps/files/l10n/ta_LK.json b/apps/files/l10n/ta_LK.json index 6b916f959f9..f16d84f65e9 100644 --- a/apps/files/l10n/ta_LK.json +++ b/apps/files/l10n/ta_LK.json @@ -25,7 +25,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Favorite" : "விருப்பமான", "File handling" : "கோப்பு கையாளுதல்", "Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ", diff --git a/apps/files/l10n/te.js b/apps/files/l10n/te.js index 9dfaccd9380..d5aa6674b0d 100644 --- a/apps/files/l10n/te.js +++ b/apps/files/l10n/te.js @@ -8,7 +8,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "భద్రపరచు", "Settings" : "అమరికలు", "New folder" : "కొత్త సంచయం", diff --git a/apps/files/l10n/te.json b/apps/files/l10n/te.json index 63b79d97a11..8355019d2a6 100644 --- a/apps/files/l10n/te.json +++ b/apps/files/l10n/te.json @@ -6,7 +6,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "భద్రపరచు", "Settings" : "అమరికలు", "New folder" : "కొత్త సంచయం", diff --git a/apps/files/l10n/tg_TJ.js b/apps/files/l10n/tg_TJ.js index 560042b3efd..7988332fa91 100644 --- a/apps/files/l10n/tg_TJ.js +++ b/apps/files/l10n/tg_TJ.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/tg_TJ.json b/apps/files/l10n/tg_TJ.json index 4cfa6a31b6e..ef5fc586755 100644 --- a/apps/files/l10n/tg_TJ.json +++ b/apps/files/l10n/tg_TJ.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js index 81915a809bf..7fc966cdd67 100644 --- a/apps/files/l10n/th_TH.js +++ b/apps/files/l10n/th_TH.js @@ -36,7 +36,7 @@ OC.L10N.register( "_Uploading %n file_::_Uploading %n files_" : [""], "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "รายการโปรด", "File handling" : "การจัดกาไฟล์", "Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้", diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json index 41c14cbd68a..2c30e37912c 100644 --- a/apps/files/l10n/th_TH.json +++ b/apps/files/l10n/th_TH.json @@ -34,7 +34,7 @@ "_Uploading %n file_::_Uploading %n files_" : [""], "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "รายการโปรด", "File handling" : "การจัดกาไฟล์", "Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้", diff --git a/apps/files/l10n/tl_PH.js b/apps/files/l10n/tl_PH.js index deae17398bd..c50be1aa479 100644 --- a/apps/files/l10n/tl_PH.js +++ b/apps/files/l10n/tl_PH.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/tl_PH.json b/apps/files/l10n/tl_PH.json index dd9cfe83135..210ac153bab 100644 --- a/apps/files/l10n/tl_PH.json +++ b/apps/files/l10n/tl_PH.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index ff2ae40361d..f3f4785b2c1 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -35,7 +35,7 @@ OC.L10N.register( "Invalid directory." : "Geçersiz dizin.", "Files" : "Dosyalar", "All files" : "Tüm dosyalar", - "Favorites" : "Sık Kullanılanlar", + "Favorites" : "Sık kullanılanlar", "Home" : "Ev", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi", "Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor", @@ -54,11 +54,13 @@ OC.L10N.register( "Unshare" : "Paylaşmayı Kaldır", "Select" : "Seç", "Pending" : "Bekliyor", + "Unable to determine date" : "Tarih tespit edilemedi", "Error moving file." : "Dosya taşıma hatası.", "Error moving file" : "Dosya taşıma hatası", "Error" : "Hata", "Could not rename file" : "Dosya adlandırılamadı", "Error deleting file." : "Dosya silinirken hata.", + "No entries in this folder match '{filter}'" : "Bu klasörde hiçbir girdi '{filter}' ile eşleşmiyor", "Name" : "İsim", "Size" : "Boyut", "Modified" : "Değiştirilme", @@ -72,8 +74,9 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ve {files}", + "Favorited" : "Sık kullanılanlara eklendi", "Favorite" : "Sık Kullanılan", "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı", "%s could not be renamed" : "%s yeniden adlandırılamadı", @@ -93,10 +96,16 @@ OC.L10N.register( "From link" : "Bağlantıdan", "Upload" : "Yükle", "Cancel upload" : "Yüklemeyi iptal et", + "No files yet" : "Henüz dosya yok", + "Upload some content or sync with your devices!" : "Bir şeyler yükleyin veya aygıtlarınızla eşleştirin!", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", + "Select all" : "Tümünü seç", "Download" : "İndir", "Upload too large" : "Yükleme çok büyük", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucudaki azami yükleme boyutunu aşıyor.", "Files are being scanned, please wait." : "Dosyalar taranıyor, lütfen bekleyin.", - "Currently scanning" : "Şu anda taranan" + "Currently scanning" : "Şu anda taranan", + "No favorites" : "Sık kullanılan öge yok.", + "Files and folders you mark as favorite will show up here" : "Sık kullanılan olarak işaretlediğiniz dosya ve klasörler burada gösterilecek" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index f70df4df7d1..38b6489d31c 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -33,7 +33,7 @@ "Invalid directory." : "Geçersiz dizin.", "Files" : "Dosyalar", "All files" : "Tüm dosyalar", - "Favorites" : "Sık Kullanılanlar", + "Favorites" : "Sık kullanılanlar", "Home" : "Ev", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi", "Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor", @@ -52,11 +52,13 @@ "Unshare" : "Paylaşmayı Kaldır", "Select" : "Seç", "Pending" : "Bekliyor", + "Unable to determine date" : "Tarih tespit edilemedi", "Error moving file." : "Dosya taşıma hatası.", "Error moving file" : "Dosya taşıma hatası", "Error" : "Hata", "Could not rename file" : "Dosya adlandırılamadı", "Error deleting file." : "Dosya silinirken hata.", + "No entries in this folder match '{filter}'" : "Bu klasörde hiçbir girdi '{filter}' ile eşleşmiyor", "Name" : "İsim", "Size" : "Boyut", "Modified" : "Değiştirilme", @@ -70,8 +72,9 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "{dirs} and {files}" : "{dirs} ve {files}", + "Favorited" : "Sık kullanılanlara eklendi", "Favorite" : "Sık Kullanılan", "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı", "%s could not be renamed" : "%s yeniden adlandırılamadı", @@ -91,10 +94,16 @@ "From link" : "Bağlantıdan", "Upload" : "Yükle", "Cancel upload" : "Yüklemeyi iptal et", + "No files yet" : "Henüz dosya yok", + "Upload some content or sync with your devices!" : "Bir şeyler yükleyin veya aygıtlarınızla eşleştirin!", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", + "Select all" : "Tümünü seç", "Download" : "İndir", "Upload too large" : "Yükleme çok büyük", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucudaki azami yükleme boyutunu aşıyor.", "Files are being scanned, please wait." : "Dosyalar taranıyor, lütfen bekleyin.", - "Currently scanning" : "Şu anda taranan" + "Currently scanning" : "Şu anda taranan", + "No favorites" : "Sık kullanılan öge yok.", + "Files and folders you mark as favorite will show up here" : "Sık kullanılan olarak işaretlediğiniz dosya ve klasörler burada gösterilecek" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/tzm.js b/apps/files/l10n/tzm.js index 0d2e146cc3e..f5528cd729c 100644 --- a/apps/files/l10n/tzm.js +++ b/apps/files/l10n/tzm.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] }, "nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"); diff --git a/apps/files/l10n/tzm.json b/apps/files/l10n/tzm.json index 8ba33b04668..2fe6b60516a 100644 --- a/apps/files/l10n/tzm.json +++ b/apps/files/l10n/tzm.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""] + "_matches '{filter}'_::_match '{filter}'_" : ["",""] },"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;" }
\ No newline at end of file diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js index ac8e16e289e..bc6bd2cd05f 100644 --- a/apps/files/l10n/ug.js +++ b/apps/files/l10n/ug.js @@ -25,7 +25,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "يىغقۇچ", "Save" : "ساقلا", "Settings" : "تەڭشەكلەر", diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json index b9291642443..d74b0f17160 100644 --- a/apps/files/l10n/ug.json +++ b/apps/files/l10n/ug.json @@ -23,7 +23,7 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "Favorite" : "يىغقۇچ", "Save" : "ساقلا", "Settings" : "تەڭشەكلەر", diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index 84999c087e6..2a2c4e6895b 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} і {files}", "Favorite" : "Улюблений", "%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений", diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index 1c5aaae5f1e..becf85be11e 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.", - "_ matches '{filter}'_::_ match '{filter}'_" : ["","",""], + "_matches '{filter}'_::_match '{filter}'_" : ["","",""], "{dirs} and {files}" : "{dirs} і {files}", "Favorite" : "Улюблений", "%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений", diff --git a/apps/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js index 84208c63ca0..b72be41b084 100644 --- a/apps/files/l10n/ur_PK.js +++ b/apps/files/l10n/ur_PK.js @@ -9,7 +9,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "حفظ", "Settings" : "ترتیبات", "Download" : "ڈاؤن لوڈ،" diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json index c48800e9d1a..5412e14a454 100644 --- a/apps/files/l10n/ur_PK.json +++ b/apps/files/l10n/ur_PK.json @@ -7,7 +7,7 @@ "_%n folder_::_%n folders_" : ["",""], "_%n file_::_%n files_" : ["",""], "_Uploading %n file_::_Uploading %n files_" : ["",""], - "_ matches '{filter}'_::_ match '{filter}'_" : ["",""], + "_matches '{filter}'_::_match '{filter}'_" : ["",""], "Save" : "حفظ", "Settings" : "ترتیبات", "Download" : "ڈاؤن لوڈ،" diff --git a/apps/files/l10n/uz.js b/apps/files/l10n/uz.js index 8c5bb3bc949..91d52801985 100644 --- a/apps/files/l10n/uz.js +++ b/apps/files/l10n/uz.js @@ -4,6 +4,6 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/uz.json b/apps/files/l10n/uz.json index e03a2942ff2..82cca5a0661 100644 --- a/apps/files/l10n/uz.json +++ b/apps/files/l10n/uz.json @@ -2,6 +2,6 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""] + "_matches '{filter}'_::_match '{filter}'_" : [""] },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index 6eea7a5b6a8..b9c323e2c5d 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -58,7 +58,7 @@ OC.L10N.register( "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} và {files}", "Favorite" : "Ưu thích", "%s could not be renamed" : "%s không thể đổi tên", diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index 437b6570bda..a1a73cd8df9 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -56,7 +56,7 @@ "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} và {files}", "Favorite" : "Ưu thích", "%s could not be renamed" : "%s không thể đổi tên", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 5cdc7a3966d..884c6b64e98 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -73,7 +73,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Favorited" : "已收藏", "Favorite" : "收藏", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index a605e67700c..fe2c57a1c85 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -71,7 +71,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Favorited" : "已收藏", "Favorite" : "收藏", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index 924fb403cfd..cf291f061fe 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -14,7 +14,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Save" : "儲存", "Settings" : "設定", diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index 34e28e5193e..9e9bc1f0301 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -12,7 +12,7 @@ "_%n folder_::_%n folders_" : [""], "_%n file_::_%n files_" : [""], "_Uploading %n file_::_Uploading %n files_" : [""], - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Save" : "儲存", "Settings" : "設定", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index f6f1e8e2523..30aa0681a8d 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -72,7 +72,7 @@ OC.L10N.register( "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Favorite" : "我的最愛", "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 0d4eecee767..0d57e4f828c 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -70,7 +70,7 @@ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", - "_ matches '{filter}'_::_ match '{filter}'_" : [""], + "_matches '{filter}'_::_match '{filter}'_" : [""], "{dirs} and {files}" : "{dirs} 和 {files}", "Favorite" : "我的最愛", "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名", diff --git a/apps/files_encryption/l10n/ru.js b/apps/files_encryption/l10n/ru.js index f2a8cc7a3fe..055fea5cddd 100644 --- a/apps/files_encryption/l10n/ru.js +++ b/apps/files_encryption/l10n/ru.js @@ -3,50 +3,50 @@ OC.L10N.register( { "Unknown error" : "Неизвестная ошибка", "Missing recovery key password" : "Отсутствует пароль восстановления ключа", - "Please repeat the recovery key password" : "Повторите пароль восстановления ключа", - "Repeated recovery key password does not match the provided recovery key password" : "Пароль восстановления ключа и его повтор не совпадают", + "Please repeat the recovery key password" : "Повторите ввод пароля ключа восстановления", + "Repeated recovery key password does not match the provided recovery key password" : "Пароль ключа восстановления и повтор пароля не совпадают", "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", "Please provide the old recovery password" : "Введите старый пароль восстановления", "Please provide a new recovery password" : "Введите новый пароль восстановления", "Please repeat the new recovery password" : "Повторите новый пароль восстановления", - "Password successfully changed." : "Пароль изменен удачно.", - "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно старый пароль не был верен.", - "Could not update the private key password." : "Невозможно обновить пароль для закрытого ключа.", - "The old password was not correct, please try again." : "Старый пароль введён неверно, повторите попытку.", + "Password successfully changed." : "Пароль успешно изменен.", + "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.", + "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.", + "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.", "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", - "File recovery settings updated" : "Настройки файла восстановления обновлены", - "Could not update file recovery" : "Невозможно обновить файл восстановления", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Попробуйте выйти и войти снова чтобы проинициализировать приложение шифрования.", + "File recovery settings updated" : "Настройки восстановления файлов обновлены", + "Could not update file recovery" : "Невозможно обновить настройки восстановления файлов", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализированно! Возможно приложение шифрования было реактивировано во время вашей сессии. Попробуйте выйти и войти снова чтобы проинициализировать приложение шифрования.", "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ недействителен! Вероятно, пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Проверьте системные настройки или свяжитесь с вашим администратором", - "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.", + "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять некоторое время. Пожалуйста, подождите.", "Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.", - "Missing requirements." : "Требования отсутствуют.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и и правильно настроены. На данный момент приложение шифрования отключено.", + "Missing requirements." : "Отсутствуют зависимости.", + "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования выключено.", "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:", - "Go directly to your %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.", + "Go directly to your %spersonal settings%s." : "Перейти к вашим %spersonal settings%s.", "Encryption" : "Шифрование", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", - "Recovery key password" : "Пароль для ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль восстановления ключа", + "Recovery key password" : "Пароль ключа восстановления", + "Repeat Recovery key password" : "Повторите пароль ключа восстановления", "Enabled" : "Включено", "Disabled" : "Отключено", - "Change recovery key password:" : "Сменить пароль для ключа восстановления:", - "Old Recovery key password" : "Старый пароль для ключа восстановления", - "New Recovery key password" : "Новый пароль для ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль восстановления ключа", + "Change recovery key password:" : "Сменить пароль ключа восстановления:", + "Old Recovery key password" : "Старый пароль ключа восстановления", + "New Recovery key password" : "Новый пароль ключа восстановления", + "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", "Change Password" : "Изменить пароль", - "Your private key password no longer matches your log-in password." : "Пароль для закрытого ключа больше не соответствует паролю вашей учетной записи.", - "Set your old private key password to your current log-in password:" : "Замените старый пароль для закрытого ключа на текущий пароль учётной записи.", + "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", + "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", - "Old log-in password" : "Старый пароль для учётной записи", - "Current log-in password" : "Текущий пароль для учётной записи", - "Update Private Key Password" : "Обновить пароль для закрытого ключа", + "Old log-in password" : "Старый пароль учётной записи", + "Current log-in password" : "Текущий пароль учётной записи", + "Update Private Key Password" : "Обновить пароль закрытого ключа", "Enable password recovery:" : "Включить восстановление пароля:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" }, diff --git a/apps/files_encryption/l10n/ru.json b/apps/files_encryption/l10n/ru.json index 6e2625a629f..fd9fc6d49fd 100644 --- a/apps/files_encryption/l10n/ru.json +++ b/apps/files_encryption/l10n/ru.json @@ -1,50 +1,50 @@ { "translations": { "Unknown error" : "Неизвестная ошибка", "Missing recovery key password" : "Отсутствует пароль восстановления ключа", - "Please repeat the recovery key password" : "Повторите пароль восстановления ключа", - "Repeated recovery key password does not match the provided recovery key password" : "Пароль восстановления ключа и его повтор не совпадают", + "Please repeat the recovery key password" : "Повторите ввод пароля ключа восстановления", + "Repeated recovery key password does not match the provided recovery key password" : "Пароль ключа восстановления и повтор пароля не совпадают", "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", "Please provide the old recovery password" : "Введите старый пароль восстановления", "Please provide a new recovery password" : "Введите новый пароль восстановления", "Please repeat the new recovery password" : "Повторите новый пароль восстановления", - "Password successfully changed." : "Пароль изменен удачно.", - "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно старый пароль не был верен.", - "Could not update the private key password." : "Невозможно обновить пароль для закрытого ключа.", - "The old password was not correct, please try again." : "Старый пароль введён неверно, повторите попытку.", + "Password successfully changed." : "Пароль успешно изменен.", + "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.", + "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.", + "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.", "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", - "File recovery settings updated" : "Настройки файла восстановления обновлены", - "Could not update file recovery" : "Невозможно обновить файл восстановления", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Попробуйте выйти и войти снова чтобы проинициализировать приложение шифрования.", + "File recovery settings updated" : "Настройки восстановления файлов обновлены", + "Could not update file recovery" : "Невозможно обновить настройки восстановления файлов", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализированно! Возможно приложение шифрования было реактивировано во время вашей сессии. Попробуйте выйти и войти снова чтобы проинициализировать приложение шифрования.", "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ недействителен! Вероятно, пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Проверьте системные настройки или свяжитесь с вашим администратором", - "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.", + "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять некоторое время. Пожалуйста, подождите.", "Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.", - "Missing requirements." : "Требования отсутствуют.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и и правильно настроены. На данный момент приложение шифрования отключено.", + "Missing requirements." : "Отсутствуют зависимости.", + "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования выключено.", "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:", - "Go directly to your %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.", + "Go directly to your %spersonal settings%s." : "Перейти к вашим %spersonal settings%s.", "Encryption" : "Шифрование", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите вновь", "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", - "Recovery key password" : "Пароль для ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль восстановления ключа", + "Recovery key password" : "Пароль ключа восстановления", + "Repeat Recovery key password" : "Повторите пароль ключа восстановления", "Enabled" : "Включено", "Disabled" : "Отключено", - "Change recovery key password:" : "Сменить пароль для ключа восстановления:", - "Old Recovery key password" : "Старый пароль для ключа восстановления", - "New Recovery key password" : "Новый пароль для ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль восстановления ключа", + "Change recovery key password:" : "Сменить пароль ключа восстановления:", + "Old Recovery key password" : "Старый пароль ключа восстановления", + "New Recovery key password" : "Новый пароль ключа восстановления", + "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", "Change Password" : "Изменить пароль", - "Your private key password no longer matches your log-in password." : "Пароль для закрытого ключа больше не соответствует паролю вашей учетной записи.", - "Set your old private key password to your current log-in password:" : "Замените старый пароль для закрытого ключа на текущий пароль учётной записи.", + "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", + "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", - "Old log-in password" : "Старый пароль для учётной записи", - "Current log-in password" : "Текущий пароль для учётной записи", - "Update Private Key Password" : "Обновить пароль для закрытого ключа", + "Old log-in password" : "Старый пароль учётной записи", + "Current log-in password" : "Текущий пароль учётной записи", + "Update Private Key Password" : "Обновить пароль закрытого ключа", "Enable password recovery:" : "Включить восстановление пароля:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" diff --git a/apps/files_encryption/lib/hooks.php b/apps/files_encryption/lib/hooks.php index 7ddde0a3112..1ffcee5e74a 100644 --- a/apps/files_encryption/lib/hooks.php +++ b/apps/files_encryption/lib/hooks.php @@ -1,626 +1,628 @@ -<?php
-
-/**
- * ownCloud
- *
- * @copyright (C) 2014 ownCloud, Inc.
- *
- * @author Sam Tuke <samtuke@owncloud.org>
- * @author Bjoern Schiessle <schiessle@owncloud.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace OCA\Files_Encryption;
-
-/**
- * Class for hook specific logic
- */
-class Hooks {
-
- // file for which we want to rename the keys after the rename operation was successful
- private static $renamedFiles = array();
- // file for which we want to delete the keys after the delete operation was successful
- private static $deleteFiles = array();
- // file for which we want to delete the keys after the delete operation was successful
- private static $unmountedFiles = array();
-
- /**
- * Startup encryption backend upon user login
- * @note This method should never be called for users using client side encryption
- */
- public static function login($params) {
-
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
-
- $l = new \OC_L10N('files_encryption');
-
- $view = new \OC\Files\View('/');
-
- // ensure filesystem is loaded
- if (!\OC\Files\Filesystem::$loaded) {
- \OC_Util::setupFS($params['uid']);
- }
-
- $privateKey = Keymanager::getPrivateKey($view, $params['uid']);
-
- // if no private key exists, check server configuration
- if (!$privateKey) {
- //check if all requirements are met
- if (!Helper::checkRequirements() || !Helper::checkConfiguration()) {
- $error_msg = $l->t("Missing requirements.");
- $hint = $l->t('Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.');
- \OC_App::disable('files_encryption');
- \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
- \OCP\Template::printErrorPage($error_msg, $hint);
- }
- }
-
- $util = new Util($view, $params['uid']);
-
- // setup user, if user not ready force relogin
- if (Helper::setupUser($util, $params['password']) === false) {
- return false;
- }
-
- $session = $util->initEncryption($params);
-
- // Check if first-run file migration has already been performed
- $ready = false;
- $migrationStatus = $util->getMigrationStatus();
- if ($migrationStatus === Util::MIGRATION_OPEN && $session !== false) {
- $ready = $util->beginMigration();
- } elseif ($migrationStatus === Util::MIGRATION_IN_PROGRESS) {
- // refuse login as long as the initial encryption is running
- sleep(5);
- \OCP\User::logout();
- return false;
- }
-
- $result = true;
-
- // If migration not yet done
- if ($ready) {
-
- // Encrypt existing user files
- try {
- $result = $util->encryptAll('/' . $params['uid'] . '/' . 'files');
- } catch (\Exception $ex) {
- \OCP\Util::writeLog('Encryption library', 'Initial encryption failed! Error: ' . $ex->getMessage(), \OCP\Util::FATAL);
- $result = false;
- }
-
- if ($result) {
- \OC_Log::write(
- 'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" completed'
- , \OC_Log::INFO
- );
- // Register successful migration in DB
- $util->finishMigration();
- } else {
- \OCP\Util::writeLog('Encryption library', 'Initial encryption failed!', \OCP\Util::FATAL);
- $util->resetMigrationStatus();
- \OCP\User::logout();
- }
- }
-
- return $result;
- }
-
- /**
- * remove keys from session during logout
- */
- public static function logout() {
- $session = new Session(new \OC\Files\View());
- $session->removeKeys();
- }
-
- /**
- * setup encryption backend upon user created
- * @note This method should never be called for users using client side encryption
- */
- public static function postCreateUser($params) {
-
- if (\OCP\App::isEnabled('files_encryption')) {
- $view = new \OC\Files\View('/');
- $util = new Util($view, $params['uid']);
- Helper::setupUser($util, $params['password']);
- }
- }
-
- /**
- * cleanup encryption backend upon user deleted
- * @note This method should never be called for users using client side encryption
- */
- public static function postDeleteUser($params) {
-
- if (\OCP\App::isEnabled('files_encryption')) {
- Keymanager::deletePublicKey(new \OC\Files\View(), $params['uid']);
- }
- }
-
- /**
- * If the password can't be changed within ownCloud, than update the key password in advance.
- */
- public static function preSetPassphrase($params) {
- if (\OCP\App::isEnabled('files_encryption')) {
- if ( ! \OC_User::canUserChangePassword($params['uid']) ) {
- self::setPassphrase($params);
- }
- }
- }
-
- /**
- * Change a user's encryption passphrase
- * @param array $params keys: uid, password
- */
- public static function setPassphrase($params) {
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
- // Only attempt to change passphrase if server-side encryption
- // is in use (client-side encryption does not have access to
- // the necessary keys)
- if (Crypt::mode() === 'server') {
-
- $view = new \OC\Files\View('/');
- $session = new Session($view);
-
- // Get existing decrypted private key
- $privateKey = $session->getPrivateKey();
-
- if ($params['uid'] === \OCP\User::getUser() && $privateKey) {
-
- // Encrypt private key with new user pwd as passphrase
- $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($privateKey, $params['password'], Helper::getCipher());
-
- // Save private key
- if ($encryptedPrivateKey) {
- Keymanager::setPrivateKey($encryptedPrivateKey, \OCP\User::getUser());
- } else {
- \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR);
- }
-
- // NOTE: Session does not need to be updated as the
- // private key has not changed, only the passphrase
- // used to decrypt it has changed
-
-
- } else { // admin changed the password for a different user, create new keys and reencrypt file keys
-
- $user = $params['uid'];
- $util = new Util($view, $user);
- $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null;
-
- // we generate new keys if...
- // ...we have a recovery password and the user enabled the recovery key
- // ...encryption was activated for the first time (no keys exists)
- // ...the user doesn't have any files
- if (($util->recoveryEnabledForUser() && $recoveryPassword)
- || !$util->userKeysExists()
- || !$view->file_exists($user . '/files')) {
-
- // backup old keys
- $util->backupAllKeys('recovery');
-
- $newUserPassword = $params['password'];
-
- // make sure that the users home is mounted
- \OC\Files\Filesystem::initMountPoints($user);
-
- $keypair = Crypt::createKeypair();
-
- // Disable encryption proxy to prevent recursive calls
- $proxyStatus = \OC_FileProxy::$enabled;
- \OC_FileProxy::$enabled = false;
-
- // Save public key
- Keymanager::setPublicKey($keypair['publicKey'], $user);
-
- // Encrypt private key with new password
- $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher());
- if ($encryptedKey) {
- Keymanager::setPrivateKey($encryptedKey, $user);
-
- if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files
- $util = new Util($view, $user);
- $util->recoverUsersFiles($recoveryPassword);
- }
- } else {
- \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR);
- }
-
- \OC_FileProxy::$enabled = $proxyStatus;
- }
- }
- }
- }
-
- /**
- * after password reset we create a new key pair for the user
- *
- * @param array $params
- */
- public static function postPasswordReset($params) {
- $uid = $params['uid'];
- $password = $params['password'];
-
- $util = new Util(new \OC\Files\View(), $uid);
- $util->replaceUserKeys($password);
- }
-
- /*
- * check if files can be encrypted to every user.
- */
- /**
- * @param array $params
- */
- public static function preShared($params) {
-
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
- $l = new \OC_L10N('files_encryption');
- $users = array();
- $view = new \OC\Files\View('/');
-
- switch ($params['shareType']) {
- case \OCP\Share::SHARE_TYPE_USER:
- $users[] = $params['shareWith'];
- break;
- case \OCP\Share::SHARE_TYPE_GROUP:
- $users = \OC_Group::usersInGroup($params['shareWith']);
- break;
- }
-
- $notConfigured = array();
- foreach ($users as $user) {
- if (!Keymanager::publicKeyExists($view, $user)) {
- $notConfigured[] = $user;
- }
- }
-
- if (count($notConfigured) > 0) {
- $params['run'] = false;
- $params['error'] = $l->t('Following users are not set up for encryption:') . ' ' . join(', ' , $notConfigured);
- }
-
- }
-
- /**
- * update share keys if a file was shared
- */
- public static function postShared($params) {
-
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
-
- $path = \OC\Files\Filesystem::getPath($params['fileSource']);
-
- self::updateKeyfiles($path);
- }
- }
-
- /**
- * update keyfiles and share keys recursively
- *
- * @param string $path to the file/folder
- */
- private static function updateKeyfiles($path) {
- $view = new \OC\Files\View('/');
- $userId = \OCP\User::getUser();
- $session = new Session($view);
- $util = new Util($view, $userId);
- $sharingEnabled = \OCP\Share::isEnabled();
-
- $mountManager = \OC\Files\Filesystem::getMountManager();
- $mount = $mountManager->find('/' . $userId . '/files' . $path);
- $mountPoint = $mount->getMountPoint();
-
- // if a folder was shared, get a list of all (sub-)folders
- if ($view->is_dir('/' . $userId . '/files' . $path)) {
- $allFiles = $util->getAllFiles($path, $mountPoint);
- } else {
- $allFiles = array($path);
- }
-
- foreach ($allFiles as $path) {
- $usersSharing = $util->getSharingUsersArray($sharingEnabled, $path);
- $util->setSharedFileKeyfiles($session, $usersSharing, $path);
- }
- }
-
- /**
- * unshare file/folder from a user with whom you shared the file before
- */
- public static function postUnshare($params) {
-
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
-
- $view = new \OC\Files\View('/');
- $userId = $params['uidOwner'];
- $userView = new \OC\Files\View('/' . $userId . '/files');
- $util = new Util($view, $userId);
- $path = $userView->getPath($params['fileSource']);
-
- // for group shares get a list of the group members
- if ($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) {
- $userIds = \OC_Group::usersInGroup($params['shareWith']);
- } else {
- if ($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK || $params['shareType'] === \OCP\Share::SHARE_TYPE_REMOTE) {
- $userIds = array($util->getPublicShareKeyId());
- } else {
- $userIds = array($params['shareWith']);
- }
- }
-
- $mountManager = \OC\Files\Filesystem::getMountManager();
- $mount = $mountManager->find('/' . $userId . '/files' . $path);
- $mountPoint = $mount->getMountPoint();
-
- // if we unshare a folder we need a list of all (sub-)files
- if ($params['itemType'] === 'folder') {
- $allFiles = $util->getAllFiles($path, $mountPoint);
- } else {
- $allFiles = array($path);
- }
-
- foreach ($allFiles as $path) {
-
- // check if the user still has access to the file, otherwise delete share key
- $sharingUsers = $util->getSharingUsersArray(true, $path);
-
- // Unshare every user who no longer has access to the file
- $delUsers = array_diff($userIds, $sharingUsers);
- $keyPath = Keymanager::getKeyPath($view, $util, $path);
-
- // delete share key
- Keymanager::delShareKey($view, $delUsers, $keyPath, $userId, $path);
- }
-
- }
- }
-
- /**
- * mark file as renamed so that we know the original source after the file was renamed
- * @param array $params with the old path and the new path
- */
- public static function preRename($params) {
- self::preRenameOrCopy($params, 'rename');
- }
-
- /**
- * mark file as copied so that we know the original source after the file was copied
- * @param array $params with the old path and the new path
- */
- public static function preCopy($params) {
- self::preRenameOrCopy($params, 'copy');
- }
-
- private static function preRenameOrCopy($params, $operation) {
- $user = \OCP\User::getUser();
- $view = new \OC\Files\View('/');
- $util = new Util($view, $user);
-
- // we only need to rename the keys if the rename happens on the same mountpoint
- // otherwise we perform a stream copy, so we get a new set of keys
- $mp1 = $view->getMountPoint('/' . $user . '/files/' . $params['oldpath']);
- $mp2 = $view->getMountPoint('/' . $user . '/files/' . $params['newpath']);
-
- $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']);
-
- if ($mp1 === $mp2) {
- self::$renamedFiles[$params['oldpath']] = array(
- 'operation' => $operation,
- 'oldKeysPath' => $oldKeysPath,
- );
- } else {
- self::$renamedFiles[$params['oldpath']] = array(
- 'operation' => 'cleanup',
- 'oldKeysPath' => $oldKeysPath,
- );
- }
- }
-
- /**
- * after a file is renamed/copied, rename/copy its keyfile and share-keys also fix the file size and fix also the sharing
- *
- * @param array $params array with oldpath and newpath
- */
- public static function postRenameOrCopy($params) {
-
- if (\OCP\App::isEnabled('files_encryption') === false) {
- return true;
- }
-
- $view = new \OC\Files\View('/');
- $userId = \OCP\User::getUser();
- $util = new Util($view, $userId);
-
- if (isset(self::$renamedFiles[$params['oldpath']]['operation']) &&
- isset(self::$renamedFiles[$params['oldpath']]['oldKeysPath'])) {
- $operation = self::$renamedFiles[$params['oldpath']]['operation'];
- $oldKeysPath = self::$renamedFiles[$params['oldpath']]['oldKeysPath'];
- unset(self::$renamedFiles[$params['oldpath']]);
- if ($operation === 'cleanup') {
- return $view->unlink($oldKeysPath);
- }
- } else {
- \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::DEBUG);
- return false;
- }
-
- list($ownerNew, $pathNew) = $util->getUidAndFilename($params['newpath']);
-
- if ($util->isSystemWideMountPoint($pathNew)) {
- $newKeysPath = 'files_encryption/keys/' . $pathNew;
- } else {
- $newKeysPath = $ownerNew . '/files_encryption/keys/' . $pathNew;
- }
-
- // create key folders if it doesn't exists
- if (!$view->file_exists(dirname($newKeysPath))) {
- $view->mkdir(dirname($newKeysPath));
- }
-
- $view->$operation($oldKeysPath, $newKeysPath);
-
- // update sharing-keys
- self::updateKeyfiles($params['newpath']);
- }
-
- /**
- * set migration status and the init status back to '0' so that all new files get encrypted
- * if the app gets enabled again
- * @param array $params contains the app ID
- */
- public static function preDisable($params) {
- if ($params['app'] === 'files_encryption') {
-
- \OC::$server->getConfig()->deleteAppFromAllUsers('files_encryption');
-
- $session = new Session(new \OC\Files\View('/'));
- $session->setInitialized(Session::NOT_INITIALIZED);
- }
- }
-
- /**
- * set the init status to 'NOT_INITIALIZED' (0) if the app gets enabled
- * @param array $params contains the app ID
- */
- public static function postEnable($params) {
- if ($params['app'] === 'files_encryption') {
- $session = new Session(new \OC\Files\View('/'));
- $session->setInitialized(Session::NOT_INITIALIZED);
- }
- }
-
- /**
- * if the file was really deleted we remove the encryption keys
- * @param array $params
- * @return boolean|null
- */
- public static function postDelete($params) {
-
- $path = $params[\OC\Files\Filesystem::signal_param_path];
-
- if (!isset(self::$deleteFiles[$path])) {
- return true;
- }
-
- $deletedFile = self::$deleteFiles[$path];
- $keyPath = $deletedFile['keyPath'];
-
- // we don't need to remember the file any longer
- unset(self::$deleteFiles[$path]);
-
- $view = new \OC\Files\View('/');
-
- // return if the file still exists and wasn't deleted correctly
- if ($view->file_exists('/' . \OCP\User::getUser() . '/files/' . $path)) {
- return true;
- }
-
- // Delete keyfile & shareKey so it isn't orphaned
- $view->unlink($keyPath);
-
- }
-
- /**
- * remember the file which should be deleted and it's owner
- * @param array $params
- * @return boolean|null
- */
- public static function preDelete($params) {
- $view = new \OC\Files\View('/');
- $path = $params[\OC\Files\Filesystem::signal_param_path];
-
- // skip this method if the trash bin is enabled or if we delete a file
- // outside of /data/user/files
- if (\OCP\App::isEnabled('files_trashbin')) {
- return true;
- }
-
- $util = new Util($view, \OCP\USER::getUser());
-
- $keysPath = Keymanager::getKeyPath($view, $util, $path);
-
- self::$deleteFiles[$path] = array(
- 'keyPath' => $keysPath);
- }
-
- /**
- * unmount file from yourself
- * remember files/folders which get unmounted
- */
- public static function preUnmount($params) {
- $view = new \OC\Files\View('/');
- $user = \OCP\User::getUser();
- $path = $params[\OC\Files\Filesystem::signal_param_path];
-
- $util = new Util($view, $user);
- list($owner, $ownerPath) = $util->getUidAndFilename($path);
-
- $keysPath = Keymanager::getKeyPath($view, $util, $path);
-
- self::$unmountedFiles[$path] = array(
- 'keyPath' => $keysPath,
- 'owner' => $owner,
- 'ownerPath' => $ownerPath
- );
- }
-
- /**
- * unmount file from yourself
- */
- public static function postUnmount($params) {
-
- $path = $params[\OC\Files\Filesystem::signal_param_path];
- $user = \OCP\User::getUser();
-
- if (!isset(self::$unmountedFiles[$path])) {
- return true;
- }
-
- $umountedFile = self::$unmountedFiles[$path];
- $keyPath = $umountedFile['keyPath'];
- $owner = $umountedFile['owner'];
- $ownerPath = $umountedFile['ownerPath'];
-
- $view = new \OC\Files\View();
-
- // we don't need to remember the file any longer
- unset(self::$unmountedFiles[$path]);
-
- // check if the user still has access to the file, otherwise delete share key
- $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user);
- if (!in_array($user, $sharingUsers['users'])) {
- Keymanager::delShareKey($view, array($user), $keyPath, $owner, $ownerPath);
- }
- }
-
-}
+<?php + +/** + * ownCloud + * + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Sam Tuke <samtuke@owncloud.org> + * @author Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_Encryption; + +/** + * Class for hook specific logic + */ +class Hooks { + + // file for which we want to rename the keys after the rename operation was successful + private static $renamedFiles = array(); + // file for which we want to delete the keys after the delete operation was successful + private static $deleteFiles = array(); + // file for which we want to delete the keys after the delete operation was successful + private static $unmountedFiles = array(); + + /** + * Startup encryption backend upon user login + * @note This method should never be called for users using client side encryption + */ + public static function login($params) { + + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + + $l = new \OC_L10N('files_encryption'); + + $view = new \OC\Files\View('/'); + + // ensure filesystem is loaded + if (!\OC\Files\Filesystem::$loaded) { + \OC_Util::setupFS($params['uid']); + } + + $privateKey = Keymanager::getPrivateKey($view, $params['uid']); + + // if no private key exists, check server configuration + if (!$privateKey) { + //check if all requirements are met + if (!Helper::checkRequirements() || !Helper::checkConfiguration()) { + $error_msg = $l->t("Missing requirements."); + $hint = $l->t('Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.'); + \OC_App::disable('files_encryption'); + \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR); + \OCP\Template::printErrorPage($error_msg, $hint); + } + } + + $util = new Util($view, $params['uid']); + + // setup user, if user not ready force relogin + if (Helper::setupUser($util, $params['password']) === false) { + return false; + } + + $session = $util->initEncryption($params); + + // Check if first-run file migration has already been performed + $ready = false; + $migrationStatus = $util->getMigrationStatus(); + if ($migrationStatus === Util::MIGRATION_OPEN && $session !== false) { + $ready = $util->beginMigration(); + } elseif ($migrationStatus === Util::MIGRATION_IN_PROGRESS) { + // refuse login as long as the initial encryption is running + sleep(5); + \OCP\User::logout(); + return false; + } + + $result = true; + + // If migration not yet done + if ($ready) { + + // Encrypt existing user files + try { + $result = $util->encryptAll('/' . $params['uid'] . '/' . 'files'); + } catch (\Exception $ex) { + \OCP\Util::writeLog('Encryption library', 'Initial encryption failed! Error: ' . $ex->getMessage(), \OCP\Util::FATAL); + $result = false; + } + + if ($result) { + \OC_Log::write( + 'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" completed' + , \OC_Log::INFO + ); + // Register successful migration in DB + $util->finishMigration(); + } else { + \OCP\Util::writeLog('Encryption library', 'Initial encryption failed!', \OCP\Util::FATAL); + $util->resetMigrationStatus(); + \OCP\User::logout(); + } + } + + return $result; + } + + /** + * remove keys from session during logout + */ + public static function logout() { + $session = new Session(new \OC\Files\View()); + $session->removeKeys(); + } + + /** + * setup encryption backend upon user created + * @note This method should never be called for users using client side encryption + */ + public static function postCreateUser($params) { + + if (\OCP\App::isEnabled('files_encryption')) { + $view = new \OC\Files\View('/'); + $util = new Util($view, $params['uid']); + Helper::setupUser($util, $params['password']); + } + } + + /** + * cleanup encryption backend upon user deleted + * @note This method should never be called for users using client side encryption + */ + public static function postDeleteUser($params) { + + if (\OCP\App::isEnabled('files_encryption')) { + Keymanager::deletePublicKey(new \OC\Files\View(), $params['uid']); + } + } + + /** + * If the password can't be changed within ownCloud, than update the key password in advance. + */ + public static function preSetPassphrase($params) { + if (\OCP\App::isEnabled('files_encryption')) { + if ( ! \OC_User::canUserChangePassword($params['uid']) ) { + self::setPassphrase($params); + } + } + } + + /** + * Change a user's encryption passphrase + * @param array $params keys: uid, password + */ + public static function setPassphrase($params) { + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + // Only attempt to change passphrase if server-side encryption + // is in use (client-side encryption does not have access to + // the necessary keys) + if (Crypt::mode() === 'server') { + + $view = new \OC\Files\View('/'); + $session = new Session($view); + + // Get existing decrypted private key + $privateKey = $session->getPrivateKey(); + + if ($params['uid'] === \OCP\User::getUser() && $privateKey) { + + // Encrypt private key with new user pwd as passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($privateKey, $params['password'], Helper::getCipher()); + + // Save private key + if ($encryptedPrivateKey) { + Keymanager::setPrivateKey($encryptedPrivateKey, \OCP\User::getUser()); + } else { + \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR); + } + + // NOTE: Session does not need to be updated as the + // private key has not changed, only the passphrase + // used to decrypt it has changed + + + } else { // admin changed the password for a different user, create new keys and reencrypt file keys + + $user = $params['uid']; + $util = new Util($view, $user); + $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null; + + // we generate new keys if... + // ...we have a recovery password and the user enabled the recovery key + // ...encryption was activated for the first time (no keys exists) + // ...the user doesn't have any files + if (($util->recoveryEnabledForUser() && $recoveryPassword) + || !$util->userKeysExists() + || !$view->file_exists($user . '/files')) { + + // backup old keys + $util->backupAllKeys('recovery'); + + $newUserPassword = $params['password']; + + // make sure that the users home is mounted + \OC\Files\Filesystem::initMountPoints($user); + + $keypair = Crypt::createKeypair(); + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // Save public key + Keymanager::setPublicKey($keypair['publicKey'], $user); + + // Encrypt private key with new password + $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher()); + if ($encryptedKey) { + Keymanager::setPrivateKey($encryptedKey, $user); + + if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files + $util = new Util($view, $user); + $util->recoverUsersFiles($recoveryPassword); + } + } else { + \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR); + } + + \OC_FileProxy::$enabled = $proxyStatus; + } + } + } + } + + /** + * after password reset we create a new key pair for the user + * + * @param array $params + */ + public static function postPasswordReset($params) { + $uid = $params['uid']; + $password = $params['password']; + + $util = new Util(new \OC\Files\View(), $uid); + $util->replaceUserKeys($password); + } + + /* + * check if files can be encrypted to every user. + */ + /** + * @param array $params + */ + public static function preShared($params) { + + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + $l = new \OC_L10N('files_encryption'); + $users = array(); + $view = new \OC\Files\View('/'); + + switch ($params['shareType']) { + case \OCP\Share::SHARE_TYPE_USER: + $users[] = $params['shareWith']; + break; + case \OCP\Share::SHARE_TYPE_GROUP: + $users = \OC_Group::usersInGroup($params['shareWith']); + break; + } + + $notConfigured = array(); + foreach ($users as $user) { + if (!Keymanager::publicKeyExists($view, $user)) { + $notConfigured[] = $user; + } + } + + if (count($notConfigured) > 0) { + $params['run'] = false; + $params['error'] = $l->t('Following users are not set up for encryption:') . ' ' . join(', ' , $notConfigured); + } + + } + + /** + * update share keys if a file was shared + */ + public static function postShared($params) { + + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { + + $path = \OC\Files\Filesystem::getPath($params['fileSource']); + + self::updateKeyfiles($path); + } + } + + /** + * update keyfiles and share keys recursively + * + * @param string $path to the file/folder + */ + private static function updateKeyfiles($path) { + $view = new \OC\Files\View('/'); + $userId = \OCP\User::getUser(); + $session = new Session($view); + $util = new Util($view, $userId); + $sharingEnabled = \OCP\Share::isEnabled(); + + $mountManager = \OC\Files\Filesystem::getMountManager(); + $mount = $mountManager->find('/' . $userId . '/files' . $path); + $mountPoint = $mount->getMountPoint(); + + // if a folder was shared, get a list of all (sub-)folders + if ($view->is_dir('/' . $userId . '/files' . $path)) { + $allFiles = $util->getAllFiles($path, $mountPoint); + } else { + $allFiles = array($path); + } + + foreach ($allFiles as $path) { + $usersSharing = $util->getSharingUsersArray($sharingEnabled, $path); + $util->setSharedFileKeyfiles($session, $usersSharing, $path); + } + } + + /** + * unshare file/folder from a user with whom you shared the file before + */ + public static function postUnshare($params) { + + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { + + $view = new \OC\Files\View('/'); + $userId = $params['uidOwner']; + $userView = new \OC\Files\View('/' . $userId . '/files'); + $util = new Util($view, $userId); + $path = $userView->getPath($params['fileSource']); + + // for group shares get a list of the group members + if ($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { + $userIds = \OC_Group::usersInGroup($params['shareWith']); + } else { + if ($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK || $params['shareType'] === \OCP\Share::SHARE_TYPE_REMOTE) { + $userIds = array($util->getPublicShareKeyId()); + } else { + $userIds = array($params['shareWith']); + } + } + + $mountManager = \OC\Files\Filesystem::getMountManager(); + $mount = $mountManager->find('/' . $userId . '/files' . $path); + $mountPoint = $mount->getMountPoint(); + + // if we unshare a folder we need a list of all (sub-)files + if ($params['itemType'] === 'folder') { + $allFiles = $util->getAllFiles($path, $mountPoint); + } else { + $allFiles = array($path); + } + + foreach ($allFiles as $path) { + + // check if the user still has access to the file, otherwise delete share key + $sharingUsers = $util->getSharingUsersArray(true, $path); + + // Unshare every user who no longer has access to the file + $delUsers = array_diff($userIds, $sharingUsers); + $keyPath = Keymanager::getKeyPath($view, $util, $path); + + // delete share key + Keymanager::delShareKey($view, $delUsers, $keyPath, $userId, $path); + } + + } + } + + /** + * mark file as renamed so that we know the original source after the file was renamed + * @param array $params with the old path and the new path + */ + public static function preRename($params) { + self::preRenameOrCopy($params, 'rename'); + } + + /** + * mark file as copied so that we know the original source after the file was copied + * @param array $params with the old path and the new path + */ + public static function preCopy($params) { + self::preRenameOrCopy($params, 'copy'); + } + + private static function preRenameOrCopy($params, $operation) { + $user = \OCP\User::getUser(); + $view = new \OC\Files\View('/'); + $util = new Util($view, $user); + + // we only need to rename the keys if the rename happens on the same mountpoint + // otherwise we perform a stream copy, so we get a new set of keys + $oldPath = \OC\Files\Filesystem::normalizePath('/' . $user . '/files/' . $params['oldpath']); + $newPath = \OC\Files\Filesystem::normalizePath('/' . $user . '/files/' . $params['newpath']); + $mp1 = $view->getMountPoint($oldPath); + $mp2 = $view->getMountPoint($newPath); + + $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']); + + if ($mp1 === $mp2) { + self::$renamedFiles[$params['oldpath']] = array( + 'operation' => $operation, + 'oldKeysPath' => $oldKeysPath, + ); + } elseif ($mp1 !== $oldPath . '/') { + self::$renamedFiles[$params['oldpath']] = array( + 'operation' => 'cleanup', + 'oldKeysPath' => $oldKeysPath, + ); + } + } + + /** + * after a file is renamed/copied, rename/copy its keyfile and share-keys also fix the file size and fix also the sharing + * + * @param array $params array with oldpath and newpath + */ + public static function postRenameOrCopy($params) { + + if (\OCP\App::isEnabled('files_encryption') === false) { + return true; + } + + $view = new \OC\Files\View('/'); + $userId = \OCP\User::getUser(); + $util = new Util($view, $userId); + + if (isset(self::$renamedFiles[$params['oldpath']]['operation']) && + isset(self::$renamedFiles[$params['oldpath']]['oldKeysPath'])) { + $operation = self::$renamedFiles[$params['oldpath']]['operation']; + $oldKeysPath = self::$renamedFiles[$params['oldpath']]['oldKeysPath']; + unset(self::$renamedFiles[$params['oldpath']]); + if ($operation === 'cleanup') { + return $view->unlink($oldKeysPath); + } + } else { + \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::DEBUG); + return false; + } + + list($ownerNew, $pathNew) = $util->getUidAndFilename($params['newpath']); + + if ($util->isSystemWideMountPoint($pathNew)) { + $newKeysPath = 'files_encryption/keys/' . $pathNew; + } else { + $newKeysPath = $ownerNew . '/files_encryption/keys/' . $pathNew; + } + + // create key folders if it doesn't exists + if (!$view->file_exists(dirname($newKeysPath))) { + $view->mkdir(dirname($newKeysPath)); + } + + $view->$operation($oldKeysPath, $newKeysPath); + + // update sharing-keys + self::updateKeyfiles($params['newpath']); + } + + /** + * set migration status and the init status back to '0' so that all new files get encrypted + * if the app gets enabled again + * @param array $params contains the app ID + */ + public static function preDisable($params) { + if ($params['app'] === 'files_encryption') { + + \OC::$server->getConfig()->deleteAppFromAllUsers('files_encryption'); + + $session = new Session(new \OC\Files\View('/')); + $session->setInitialized(Session::NOT_INITIALIZED); + } + } + + /** + * set the init status to 'NOT_INITIALIZED' (0) if the app gets enabled + * @param array $params contains the app ID + */ + public static function postEnable($params) { + if ($params['app'] === 'files_encryption') { + $session = new Session(new \OC\Files\View('/')); + $session->setInitialized(Session::NOT_INITIALIZED); + } + } + + /** + * if the file was really deleted we remove the encryption keys + * @param array $params + * @return boolean|null + */ + public static function postDelete($params) { + + $path = $params[\OC\Files\Filesystem::signal_param_path]; + + if (!isset(self::$deleteFiles[$path])) { + return true; + } + + $deletedFile = self::$deleteFiles[$path]; + $keyPath = $deletedFile['keyPath']; + + // we don't need to remember the file any longer + unset(self::$deleteFiles[$path]); + + $view = new \OC\Files\View('/'); + + // return if the file still exists and wasn't deleted correctly + if ($view->file_exists('/' . \OCP\User::getUser() . '/files/' . $path)) { + return true; + } + + // Delete keyfile & shareKey so it isn't orphaned + $view->unlink($keyPath); + + } + + /** + * remember the file which should be deleted and it's owner + * @param array $params + * @return boolean|null + */ + public static function preDelete($params) { + $view = new \OC\Files\View('/'); + $path = $params[\OC\Files\Filesystem::signal_param_path]; + + // skip this method if the trash bin is enabled or if we delete a file + // outside of /data/user/files + if (\OCP\App::isEnabled('files_trashbin')) { + return true; + } + + $util = new Util($view, \OCP\USER::getUser()); + + $keysPath = Keymanager::getKeyPath($view, $util, $path); + + self::$deleteFiles[$path] = array( + 'keyPath' => $keysPath); + } + + /** + * unmount file from yourself + * remember files/folders which get unmounted + */ + public static function preUnmount($params) { + $view = new \OC\Files\View('/'); + $user = \OCP\User::getUser(); + $path = $params[\OC\Files\Filesystem::signal_param_path]; + + $util = new Util($view, $user); + list($owner, $ownerPath) = $util->getUidAndFilename($path); + + $keysPath = Keymanager::getKeyPath($view, $util, $path); + + self::$unmountedFiles[$path] = array( + 'keyPath' => $keysPath, + 'owner' => $owner, + 'ownerPath' => $ownerPath + ); + } + + /** + * unmount file from yourself + */ + public static function postUnmount($params) { + + $path = $params[\OC\Files\Filesystem::signal_param_path]; + $user = \OCP\User::getUser(); + + if (!isset(self::$unmountedFiles[$path])) { + return true; + } + + $umountedFile = self::$unmountedFiles[$path]; + $keyPath = $umountedFile['keyPath']; + $owner = $umountedFile['owner']; + $ownerPath = $umountedFile['ownerPath']; + + $view = new \OC\Files\View(); + + // we don't need to remember the file any longer + unset(self::$unmountedFiles[$path]); + + // check if the user still has access to the file, otherwise delete share key + $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user); + if (!in_array($user, $sharingUsers['users'])) { + Keymanager::delShareKey($view, array($user), $keyPath, $owner, $ownerPath); + } + } + +} diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 7b7b0cee0cd..8ecdbabed39 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -1066,7 +1066,7 @@ class Share extends TestCase { /** - * test moving a shared file out of the Shared folder + * test rename a shared file mount point */ function testRename() { @@ -1089,7 +1089,10 @@ class Share extends TestCase { // share the file \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - // check if share key for user2 exists + // check if share key for user1 and user2 exists + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); $this->assertTrue($this->view->file_exists( '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); @@ -1107,9 +1110,10 @@ class Share extends TestCase { // check if data is the same as we previously written $this->assertEquals($this->dataShort, $retrievedCryptedFile); + \OC\Files\Filesystem::mkdir($this->folder1); + // move the file to a subfolder - $this->view->rename('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename, - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename); + \OC\Files\Filesystem::rename($this->filename, $this->folder1 . $this->filename); // check if we can read the moved file $retrievedRenamedFile = $this->view->file_get_contents( @@ -1118,11 +1122,89 @@ class Share extends TestCase { // check if data is the same as we previously written $this->assertEquals($this->dataShort, $retrievedRenamedFile); + // check if share key for user2 and user1 still exists + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + // cleanup self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); $this->view->unlink('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); } + function testRenameGroupShare() { + // login as admin + self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); + + // save file with content + $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); + + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile)); + + // get the file info from previous created file + $fileInfo = $this->view->getFileInfo( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); + + // check if we have a valid file info + $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); + + // share the file + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); + + // check if share key for user1, user3 and user4 exists + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + + + // login as user2 + self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); + + $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); + + // get file contents + $retrievedCryptedFile = \OC\Files\Filesystem::file_get_contents($this->filename); + + // check if data is the same as we previously written + $this->assertEquals($this->dataShort, $retrievedCryptedFile); + + \OC\Files\Filesystem::mkdir($this->folder1); + + // move the file to a subfolder + \OC\Files\Filesystem::rename($this->filename, $this->folder1 . $this->filename); + + // check if we can read the moved file + $retrievedRenamedFile = \OC\Files\Filesystem::file_get_contents($this->folder1 . $this->filename); + + // check if data is the same as we previously written + $this->assertEquals($this->dataShort, $retrievedRenamedFile); + + // check if share key for user1, user3 and user4 still exists + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists( + '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + + // cleanup + self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); + \OC\Files\Filesystem::unlink($this->filename); + } + /** * test if additional share keys are added if we move a folder to a shared parent * @medium diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js index 59eace0010d..ad78b171a5e 100644 --- a/apps/files_external/l10n/cs_CZ.js +++ b/apps/files_external/l10n/cs_CZ.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.", - "No external storages configured" : "Nejsou nakonfigurována žádná externí úložiště", "You can configure external storages in the personal settings" : "Externí úložiště můžete spravovat v osobním nastavení", "Name" : "Název", "Storage type" : "Typ úložiště", diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json index 46bbed2a7c4..8bf95b063c3 100644 --- a/apps/files_external/l10n/cs_CZ.json +++ b/apps/files_external/l10n/cs_CZ.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.", - "No external storages configured" : "Nejsou nakonfigurována žádná externí úložiště", "You can configure external storages in the personal settings" : "Externí úložiště můžete spravovat v osobním nastavení", "Name" : "Název", "Storage type" : "Typ úložiště", diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js index 05cdb974bd8..792349b8970 100644 --- a/apps/files_external/l10n/da.js +++ b/apps/files_external/l10n/da.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", - "No external storages configured" : "Der er ikke konfigureret eksterne lagerenheder", "You can configure external storages in the personal settings" : "Du kan konfigurere eksterne lagerenheder i de personlige indstillinger", "Name" : "Navn", "Storage type" : "Lagertype", diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json index 9e56044050a..6326e5ac875 100644 --- a/apps/files_external/l10n/da.json +++ b/apps/files_external/l10n/da.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Bemærk:</b> \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", - "No external storages configured" : "Der er ikke konfigureret eksterne lagerenheder", "You can configure external storages in the personal settings" : "Du kan konfigurere eksterne lagerenheder i de personlige indstillinger", "Name" : "Navn", "Storage type" : "Lagertype", diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index 4acabfe214a..11d306798f2 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", - "No external storages configured" : "Keine externen Speicher konfiguriert", "You can configure external storages in the personal settings" : "Du kannst externe Speicher in den persönlichen Einstellungen konfigurieren", "Name" : "Name", "Storage type" : "Du hast noch keinen externen Speicher", diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index 17c31921196..67f33ac9f27 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", - "No external storages configured" : "Keine externen Speicher konfiguriert", "You can configure external storages in the personal settings" : "Du kannst externe Speicher in den persönlichen Einstellungen konfigurieren", "Name" : "Name", "Storage type" : "Du hast noch keinen externen Speicher", diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js index 11a9a41aaa8..fe0516ea3bc 100644 --- a/apps/files_external/l10n/de_DE.js +++ b/apps/files_external/l10n/de_DE.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", - "No external storages configured" : "Keine externen Speicher konfiguriert", "You can configure external storages in the personal settings" : "Sie können externe Speicher in den persönlichen Einstellungen konfigurieren", "Name" : "Name", "Storage type" : "Speichertyp", diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json index a530df9ed5f..ef493ca5317 100644 --- a/apps/files_external/l10n/de_DE.json +++ b/apps/files_external/l10n/de_DE.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", - "No external storages configured" : "Keine externen Speicher konfiguriert", "You can configure external storages in the personal settings" : "Sie können externe Speicher in den persönlichen Einstellungen konfigurieren", "Name" : "Name", "Storage type" : "Speichertyp", diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js index 123bf7242c7..da9b26f5789 100644 --- a/apps/files_external/l10n/en_GB.js +++ b/apps/files_external/l10n/en_GB.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", - "No external storages configured" : "No external storage configured", "You can configure external storages in the personal settings" : "You can configure external storage in the personal settings", "Name" : "Name", "Storage type" : "Storage type", diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json index 685955577db..e3962d252c8 100644 --- a/apps/files_external/l10n/en_GB.json +++ b/apps/files_external/l10n/en_GB.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", - "No external storages configured" : "No external storage configured", "You can configure external storages in the personal settings" : "You can configure external storage in the personal settings", "Name" : "Name", "Storage type" : "Storage type", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index fcdea14c308..12cc5afa3a8 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -1,8 +1,8 @@ OC.L10N.register( "files_external", { - "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", - "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la clave y el secreto de su app Dropbox es correcta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la clave y el secreto de su app Dropbox es correcta.", "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", "Step 1 failed. Exception: %s" : "El paso 1 falló. Excepción: %s", "Step 2 failed. Exception: %s" : "El paso 2 falló. Excepción: %s", @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", - "No external storages configured" : "No hay almacenamientos externos configurados", "You can configure external storages in the personal settings" : "Puede configurar almacenamientos externos en su configuración personal", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index 2eaf27afc7b..58656aad116 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -1,6 +1,6 @@ { "translations": { - "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", - "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la clave y el secreto de su app Dropbox es correcta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la clave y el secreto de su app Dropbox es correcta.", "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", "Step 1 failed. Exception: %s" : "El paso 1 falló. Excepción: %s", "Step 2 failed. Exception: %s" : "El paso 2 falló. Excepción: %s", @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", - "No external storages configured" : "No hay almacenamientos externos configurados", "You can configure external storages in the personal settings" : "Puede configurar almacenamientos externos en su configuración personal", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js index a6fb4c7b6b3..368c3703193 100644 --- a/apps/files_external/l10n/fi_FI.js +++ b/apps/files_external/l10n/fi_FI.js @@ -37,7 +37,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.", - "No external storages configured" : "Erillisiä tallennusvälineitä ei ole määritelty", "You can configure external storages in the personal settings" : "Voit määrittää erillisten tallennustilojen asetukset henkilökohtaisissa asetuksissasi", "Name" : "Nimi", "Storage type" : "Tallennustilan tyyppi", diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json index 3f0465db07f..a15880da7db 100644 --- a/apps/files_external/l10n/fi_FI.json +++ b/apps/files_external/l10n/fi_FI.json @@ -35,7 +35,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.", - "No external storages configured" : "Erillisiä tallennusvälineitä ei ole määritelty", "You can configure external storages in the personal settings" : "Voit määrittää erillisten tallennustilojen asetukset henkilökohtaisissa asetuksissasi", "Name" : "Nimi", "Storage type" : "Tallennustilan tyyppi", diff --git a/apps/files_external/l10n/gl.js b/apps/files_external/l10n/gl.js index 96cfb314a10..34d85e2fb4c 100644 --- a/apps/files_external/l10n/gl.js +++ b/apps/files_external/l10n/gl.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", - "No external storages configured" : "Non hai un almacenamento externo configurado", "You can configure external storages in the personal settings" : "Ten que configurar o almacenamento externo nos axustes persoais", "Name" : "Nome", "Storage type" : "Tipo de almacenamento", diff --git a/apps/files_external/l10n/gl.json b/apps/files_external/l10n/gl.json index 918233634f4..1bd2241849d 100644 --- a/apps/files_external/l10n/gl.json +++ b/apps/files_external/l10n/gl.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", - "No external storages configured" : "Non hai un almacenamento externo configurado", "You can configure external storages in the personal settings" : "Ten que configurar o almacenamento externo nos axustes persoais", "Name" : "Nome", "Storage type" : "Tipo de almacenamento", diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index f882caa5002..bb9e59ded4f 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", - "No external storages configured" : "Nessuna archiviazione esterna configurata", "You can configure external storages in the personal settings" : "Puoi configurare archiviazioni esterno nelle impostazioni personali", "Name" : "Nome", "Storage type" : "Tipo di archiviazione", diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index 698dea290a0..dde956a3f6e 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", - "No external storages configured" : "Nessuna archiviazione esterna configurata", "You can configure external storages in the personal settings" : "Puoi configurare archiviazioni esterno nelle impostazioni personali", "Name" : "Nome", "Storage type" : "Tipo di archiviazione", diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js index 0eac968ef62..587db2db2a1 100644 --- a/apps/files_external/l10n/ja.js +++ b/apps/files_external/l10n/ja.js @@ -49,7 +49,7 @@ OC.L10N.register( "Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー", "Personal" : "個人", "System" : "システム", - "All users. Type to select user or group." : "すべてのユーザー.ユーザー、グループを追加", + "All users. Type to select user or group." : "すべてのユーザー。ユーザー、グループを追加", "(group)" : "(グループ)", "Saved" : "保存されました", "<b>Note:</b> " : "<b>注意:</b> ", diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json index 6618cd90da3..9808e3849c6 100644 --- a/apps/files_external/l10n/ja.json +++ b/apps/files_external/l10n/ja.json @@ -47,7 +47,7 @@ "Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー", "Personal" : "個人", "System" : "システム", - "All users. Type to select user or group." : "すべてのユーザー.ユーザー、グループを追加", + "All users. Type to select user or group." : "すべてのユーザー。ユーザー、グループを追加", "(group)" : "(グループ)", "Saved" : "保存されました", "<b>Note:</b> " : "<b>注意:</b> ", diff --git a/apps/files_external/l10n/nb_NO.js b/apps/files_external/l10n/nb_NO.js index 4bfdd78d0e7..19e0051e1e3 100644 --- a/apps/files_external/l10n/nb_NO.js +++ b/apps/files_external/l10n/nb_NO.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.", - "No external storages configured" : "Ingen eksterne lagre er konfigurert", "You can configure external storages in the personal settings" : "Du kan konfigurerer eksterne lagre i personlige innstillinger", "Name" : "Navn", "Storage type" : "Lagringstype", diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json index 3e9c58b02c8..0b707decbea 100644 --- a/apps/files_external/l10n/nb_NO.json +++ b/apps/files_external/l10n/nb_NO.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Merk:</b> \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.", - "No external storages configured" : "Ingen eksterne lagre er konfigurert", "You can configure external storages in the personal settings" : "Du kan konfigurerer eksterne lagre i personlige innstillinger", "Name" : "Navn", "Storage type" : "Lagringstype", diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js index 7e4b491433e..a2ed0300ab2 100644 --- a/apps/files_external/l10n/nl.js +++ b/apps/files_external/l10n/nl.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.", - "No external storages configured" : "Geen externe opslag geconfigureerd", "You can configure external storages in the personal settings" : "U kunt externe opslag configureren in persoonlijke instellingen", "Name" : "Naam", "Storage type" : "Opslagtype", diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json index ff01cca6bd3..ac45c04459a 100644 --- a/apps/files_external/l10n/nl.json +++ b/apps/files_external/l10n/nl.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Let op:</b> \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.", - "No external storages configured" : "Geen externe opslag geconfigureerd", "You can configure external storages in the personal settings" : "U kunt externe opslag configureren in persoonlijke instellingen", "Name" : "Naam", "Storage type" : "Opslagtype", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 30d3f90c99e..52d76f4994e 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", - "No external storages configured" : "Nenhum armazendo externo foi configurado", "You can configure external storages in the personal settings" : "Você pode configurar armazenamentos externos nas configurações pessoais", "Name" : "Nome", "Storage type" : "Tipo de armazenamento", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index b76cda427f2..c6341992046 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", - "No external storages configured" : "Nenhum armazendo externo foi configurado", "You can configure external storages in the personal settings" : "Você pode configurar armazenamentos externos nas configurações pessoais", "Name" : "Nome", "Storage type" : "Tipo de armazenamento", diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js index 9a2fc0eec77..c166339cf81 100644 --- a/apps/files_external/l10n/pt_PT.js +++ b/apps/files_external/l10n/pt_PT.js @@ -53,9 +53,11 @@ OC.L10N.register( "(group)" : "(grupo)", "Saved" : "Guardado", "<b>Note:</b> " : "<b>Aviso:</b> ", + "and" : "e", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.", + "You can configure external storages in the personal settings" : "Pode configurar os armazenamentos externos nas definições pessoais", "Name" : "Nome", "Storage type" : "Tipo de Armazenamento", "Scope" : "Âmbito", diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json index 513a8a5c78b..67916f44d15 100644 --- a/apps/files_external/l10n/pt_PT.json +++ b/apps/files_external/l10n/pt_PT.json @@ -51,9 +51,11 @@ "(group)" : "(grupo)", "Saved" : "Guardado", "<b>Note:</b> " : "<b>Aviso:</b> ", + "and" : "e", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.", + "You can configure external storages in the personal settings" : "Pode configurar os armazenamentos externos nas definições pessoais", "Name" : "Nome", "Storage type" : "Tipo de Armazenamento", "Scope" : "Âmbito", diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js index fe537001cc2..c909cdccde1 100644 --- a/apps/files_external/l10n/ru.js +++ b/apps/files_external/l10n/ru.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", - "No external storages configured" : "Нет внешних носителей", "You can configure external storages in the personal settings" : "Вы можете изменить параметры внешних носителей в личных настройках", "Name" : "Имя", "Storage type" : "Тип хранилища", diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json index 9f70d469724..60acd1630d4 100644 --- a/apps/files_external/l10n/ru.json +++ b/apps/files_external/l10n/ru.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примечание:</b> \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", - "No external storages configured" : "Нет внешних носителей", "You can configure external storages in the personal settings" : "Вы можете изменить параметры внешних носителей в личных настройках", "Name" : "Имя", "Storage type" : "Тип хранилища", diff --git a/apps/files_external/l10n/sl.js b/apps/files_external/l10n/sl.js index a68849a12f6..1d81b05460d 100644 --- a/apps/files_external/l10n/sl.js +++ b/apps/files_external/l10n/sl.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", - "No external storages configured" : "Ni določene zunanje shrambe", "You can configure external storages in the personal settings" : "Zunanjo shrambo je mogoče določiti med osebnimi nastavitvami", "Name" : "Ime", "Storage type" : "Vrsta shrambe", diff --git a/apps/files_external/l10n/sl.json b/apps/files_external/l10n/sl.json index 4ee4fedfc09..fb5bfc12877 100644 --- a/apps/files_external/l10n/sl.json +++ b/apps/files_external/l10n/sl.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", - "No external storages configured" : "Ni določene zunanje shrambe", "You can configure external storages in the personal settings" : "Zunanjo shrambo je mogoče določiti med osebnimi nastavitvami", "Name" : "Ime", "Storage type" : "Vrsta shrambe", diff --git a/apps/files_external/l10n/sr@latin.js b/apps/files_external/l10n/sr@latin.js index bf67124cf6a..b1a96b8c934 100644 --- a/apps/files_external/l10n/sr@latin.js +++ b/apps/files_external/l10n/sr@latin.js @@ -57,7 +57,6 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju</b> Podrška za cURL u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da je instalira.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> FTP podrška u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da tražite od Vašeg sistem administratora da je instalira.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> \"%s\" nije instaliran. Monitranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da to instalira.", - "No external storages configured" : "Nema podešenih spoljašnjih skladišta", "You can configure external storages in the personal settings" : "Možete da podešavate spoljašnja skladišta u ličnim podešavanjima", "Name" : "Ime", "Storage type" : "Tip skladišta", diff --git a/apps/files_external/l10n/sr@latin.json b/apps/files_external/l10n/sr@latin.json index 057cdc2c6a7..5fa0b8150a0 100644 --- a/apps/files_external/l10n/sr@latin.json +++ b/apps/files_external/l10n/sr@latin.json @@ -55,7 +55,6 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju</b> Podrška za cURL u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da je instalira.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> FTP podrška u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da tražite od Vašeg sistem administratora da je instalira.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> \"%s\" nije instaliran. Monitranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da to instalira.", - "No external storages configured" : "Nema podešenih spoljašnjih skladišta", "You can configure external storages in the personal settings" : "Možete da podešavate spoljašnja skladišta u ličnim podešavanjima", "Name" : "Ime", "Storage type" : "Tip skladišta", diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js index b9fc31713df..a4cbdd5b7a0 100644 --- a/apps/files_external/l10n/sv.js +++ b/apps/files_external/l10n/sv.js @@ -54,10 +54,9 @@ OC.L10N.register( "Saved" : "Sparad", "<b>Note:</b> " : "<b> OBS: </ b>", "and" : "och", - "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", - "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> cURL-stöd i PHP inte är aktiverat eller installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> FTP-stödet i PHP inte är aktiverat eller installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", - "No external storages configured" : "Inga externa lagringsplatser configurerad", "You can configure external storages in the personal settings" : "Du kan konfigurera externa laringsplatser i personliga inställningar", "Name" : "Namn", "Storage type" : "Lagringstyp", diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json index 88c61296cc6..c2bc9e07305 100644 --- a/apps/files_external/l10n/sv.json +++ b/apps/files_external/l10n/sv.json @@ -52,10 +52,9 @@ "Saved" : "Sparad", "<b>Note:</b> " : "<b> OBS: </ b>", "and" : "och", - "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", - "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> cURL-stöd i PHP inte är aktiverat eller installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> FTP-stödet i PHP inte är aktiverat eller installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b> OBS: </ b> \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", - "No external storages configured" : "Inga externa lagringsplatser configurerad", "You can configure external storages in the personal settings" : "Du kan konfigurera externa laringsplatser i personliga inställningar", "Name" : "Namn", "Storage type" : "Lagringstyp", diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js index 4672fee457c..9924f33896f 100644 --- a/apps/files_external/l10n/tr.js +++ b/apps/files_external/l10n/tr.js @@ -57,6 +57,7 @@ OC.L10N.register( "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "You can configure external storages in the personal settings" : "Harici depolamaları kişisel ayarlar içerisinden yapılandırabilirsiniz", "Name" : "Ad", "Storage type" : "Depolama türü", "Scope" : "Kapsam", diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json index 7a6143d69de..18fa73142e4 100644 --- a/apps/files_external/l10n/tr.json +++ b/apps/files_external/l10n/tr.json @@ -55,6 +55,7 @@ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Not:</b> \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "You can configure external storages in the personal settings" : "Harici depolamaları kişisel ayarlar içerisinden yapılandırabilirsiniz", "Name" : "Ad", "Storage type" : "Depolama türü", "Scope" : "Kapsam", diff --git a/apps/files_external/templates/list.php b/apps/files_external/templates/list.php index c21a475deba..8358cc1bc3f 100644 --- a/apps/files_external/templates/list.php +++ b/apps/files_external/templates/list.php @@ -6,7 +6,7 @@ <div id="emptycontent" class="hidden"> <div class="icon-external"></div> - <h2><?php p($l->t('No external storages configured')); ?></h2> + <h2><?php p($l->t('No external storage configured')); ?></h2> <p><?php p($l->t('You can configure external storages in the personal settings')); ?></p> </div> diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index bbd107e070e..3a16c1f2edd 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -135,7 +135,7 @@ $tr.removeAttr('data-share-recipients'); } }); - }); + }, t('files_sharing', 'Share')); }, /** diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js index 61eb8a6eb5a..2a5ba4f6a6b 100644 --- a/apps/files_sharing/l10n/da.js +++ b/apps/files_sharing/l10n/da.js @@ -19,6 +19,7 @@ OC.L10N.register( "Remote share password" : "Adgangskode for ekstern deling", "Cancel" : "Annuller", "Add remote share" : "Tilføj ekstern deling", + "No ownCloud installation (7 or higher) found at {remote}" : "Der blev ikke nogen ownCloud-installation (7 eller højere) på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-URL", "Shared by" : "Delt af", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>", @@ -32,6 +33,7 @@ OC.L10N.register( "This share is password-protected" : "Delingen er beskyttet af kodeord", "The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.", "Password" : "Kodeord", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Name" : "Navn", "Share time" : "Dele periode", "Sorry, this link doesn’t seem to work anymore." : "Desværre, dette link ser ikke ud til at fungerer længere.", diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json index 04f711b45a7..52ca012bbc4 100644 --- a/apps/files_sharing/l10n/da.json +++ b/apps/files_sharing/l10n/da.json @@ -17,6 +17,7 @@ "Remote share password" : "Adgangskode for ekstern deling", "Cancel" : "Annuller", "Add remote share" : "Tilføj ekstern deling", + "No ownCloud installation (7 or higher) found at {remote}" : "Der blev ikke nogen ownCloud-installation (7 eller højere) på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-URL", "Shared by" : "Delt af", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>", @@ -30,6 +31,7 @@ "This share is password-protected" : "Delingen er beskyttet af kodeord", "The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.", "Password" : "Kodeord", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Name" : "Navn", "Share time" : "Dele periode", "Sorry, this link doesn’t seem to work anymore." : "Desværre, dette link ser ikke ud til at fungerer længere.", diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index c7943c2a6d6..1550e41e653 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -9,16 +9,17 @@ OC.L10N.register( "Shared with others" : "他ユーザーと共有中", "Shared by link" : "URLリンクで共有中", "Nothing shared with you yet" : "あなたと共有しているファイルはありません。", - "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダは、ここに表示されます。", + "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダーは、ここに表示されます。", "Nothing shared yet" : "まだ何も共有されていません", - "Files and folders you share will show up here" : "共有したファイルやフォルダは、ここに表示されます。", + "Files and folders you share will show up here" : "共有したファイルやフォルダーは、ここに表示されます。", "No shared links" : "共有リンクはありません", - "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダは、ここに表示されます。", + "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダーは、ここに表示されます。", "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からリモート共有 {name} を追加してもよろしいですか?", "Remote share" : "リモート共有", "Remote share password" : "リモート共有のパスワード", "Cancel" : "キャンセル", "Add remote share" : "リモート共有を追加", + "No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません", "Invalid ownCloud url" : "無効なownCloud URL です", "Shared by" : "共有者:", "A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました", @@ -26,6 +27,7 @@ OC.L10N.register( "This share is password-protected" : "この共有はパスワードで保護されています", "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", "Password" : "パスワード", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Name" : "名前", "Share time" : "共有時間", "Sorry, this link doesn’t seem to work anymore." : "申し訳ございません。このリンクはもう利用できません。", diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index fb12f1fb9ec..1194a758e30 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -7,16 +7,17 @@ "Shared with others" : "他ユーザーと共有中", "Shared by link" : "URLリンクで共有中", "Nothing shared with you yet" : "あなたと共有しているファイルはありません。", - "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダは、ここに表示されます。", + "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダーは、ここに表示されます。", "Nothing shared yet" : "まだ何も共有されていません", - "Files and folders you share will show up here" : "共有したファイルやフォルダは、ここに表示されます。", + "Files and folders you share will show up here" : "共有したファイルやフォルダーは、ここに表示されます。", "No shared links" : "共有リンクはありません", - "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダは、ここに表示されます。", + "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダーは、ここに表示されます。", "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からリモート共有 {name} を追加してもよろしいですか?", "Remote share" : "リモート共有", "Remote share password" : "リモート共有のパスワード", "Cancel" : "キャンセル", "Add remote share" : "リモート共有を追加", + "No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません", "Invalid ownCloud url" : "無効なownCloud URL です", "Shared by" : "共有者:", "A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました", @@ -24,6 +25,7 @@ "This share is password-protected" : "この共有はパスワードで保護されています", "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", "Password" : "パスワード", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Name" : "名前", "Share time" : "共有時間", "Sorry, this link doesn’t seem to work anymore." : "申し訳ございません。このリンクはもう利用できません。", diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js index c786d7f3f18..e333563c061 100644 --- a/apps/files_sharing/l10n/lv.js +++ b/apps/files_sharing/l10n/lv.js @@ -4,6 +4,7 @@ OC.L10N.register( "Cancel" : "Atcelt", "Shared by" : "Dalījās", "Password" : "Parole", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Name" : "Nosaukums", "Download" : "Lejupielādēt" }, diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json index dc317305cc5..125ba7ee369 100644 --- a/apps/files_sharing/l10n/lv.json +++ b/apps/files_sharing/l10n/lv.json @@ -2,6 +2,7 @@ "Cancel" : "Atcelt", "Shared by" : "Dalījās", "Password" : "Parole", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Name" : "Nosaukums", "Download" : "Lejupielādēt" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js index d9b15d37460..7a959d842fe 100644 --- a/apps/files_sharing/l10n/nb_NO.js +++ b/apps/files_sharing/l10n/nb_NO.js @@ -19,6 +19,7 @@ OC.L10N.register( "Remote share password" : "Passord for ekstern deling", "Cancel" : "Avbryt", "Add remote share" : "Legg til ekstern deling", + "No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-url", "Shared by" : "Delt av", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>", @@ -32,6 +33,7 @@ OC.L10N.register( "This share is password-protected" : "Denne delingen er passordbeskyttet", "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", "Password" : "Passord", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Name" : "Navn", "Share time" : "Delingstidspunkt", "Sorry, this link doesn’t seem to work anymore." : "Beklager, denne lenken ser ikke ut til å virke lenger.", diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json index ecc19f99f93..abe847ffaf0 100644 --- a/apps/files_sharing/l10n/nb_NO.json +++ b/apps/files_sharing/l10n/nb_NO.json @@ -17,6 +17,7 @@ "Remote share password" : "Passord for ekstern deling", "Cancel" : "Avbryt", "Add remote share" : "Legg til ekstern deling", + "No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-url", "Shared by" : "Delt av", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>", @@ -30,6 +31,7 @@ "This share is password-protected" : "Denne delingen er passordbeskyttet", "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", "Password" : "Passord", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Name" : "Navn", "Share time" : "Delingstidspunkt", "Sorry, this link doesn’t seem to work anymore." : "Beklager, denne lenken ser ikke ut til å virke lenger.", diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index 89d8c28ee2d..45ddda94630 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -33,6 +33,7 @@ OC.L10N.register( "This share is password-protected" : "Deze share is met een wachtwoord beveiligd", "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", "Password" : "Wachtwoord", + "No entries found in this folder" : "Niets gevonden in deze map", "Name" : "Naam", "Share time" : "Deel tijd", "Sorry, this link doesn’t seem to work anymore." : "Sorry, deze link lijkt niet meer in gebruik te zijn.", diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index 89f9235212b..363a5d1ab78 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -31,6 +31,7 @@ "This share is password-protected" : "Deze share is met een wachtwoord beveiligd", "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", "Password" : "Wachtwoord", + "No entries found in this folder" : "Niets gevonden in deze map", "Name" : "Naam", "Share time" : "Deel tijd", "Sorry, this link doesn’t seem to work anymore." : "Sorry, deze link lijkt niet meer in gebruik te zijn.", diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index df728604f8e..fd696a1e0ba 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -8,6 +8,7 @@ OC.L10N.register( "Shared with you" : "Współdzielony z Tobą", "Shared with others" : "Współdzielony z innymi", "Shared by link" : "Współdzielony linkiem", + "No shared links" : "Brak udostępnionych odnośników", "Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać udział zdalny {name} od {owner}@{remote}?", "Remote share" : "Zdalny zasób", "Remote share password" : "Hasło do zdalnego zasobu", diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 1f65cc3104f..68c10b409ce 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -6,6 +6,7 @@ "Shared with you" : "Współdzielony z Tobą", "Shared with others" : "Współdzielony z innymi", "Shared by link" : "Współdzielony linkiem", + "No shared links" : "Brak udostępnionych odnośników", "Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać udział zdalny {name} od {owner}@{remote}?", "Remote share" : "Zdalny zasób", "Remote share password" : "Hasło do zdalnego zasobu", diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index 47ddc106168..7203e3c1ecd 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -33,6 +33,7 @@ OC.L10N.register( "This share is password-protected" : "Este compartilhamento esta protegido por senha", "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", "Password" : "Senha", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Name" : "Nome", "Share time" : "Tempo de compartilhamento", "Sorry, this link doesn’t seem to work anymore." : "Desculpe, este link parece não mais funcionar.", diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 97316599357..8314e75d9fc 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -31,6 +31,7 @@ "This share is password-protected" : "Este compartilhamento esta protegido por senha", "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", "Password" : "Senha", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Name" : "Nome", "Share time" : "Tempo de compartilhamento", "Sorry, this link doesn’t seem to work anymore." : "Desculpe, este link parece não mais funcionar.", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 359469c6930..0212726e204 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -5,7 +5,7 @@ OC.L10N.register( "The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.", "Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL", "Couldn't add remote share" : "Невозможно добавить удалённый общий ресурс", - "Shared with you" : "Доступные для Вас", + "Shared with you" : "Поделились с вами", "Shared with others" : "Доступные для других", "Shared by link" : "Доступные по ссылке", "Nothing shared with you yet" : "С вами пока ничем не поделились", @@ -18,7 +18,7 @@ OC.L10N.register( "Remote share" : "Удаленный общий ресурс", "Remote share password" : "Пароль для удаленного общего ресурса", "Cancel" : "Отменить", - "Add remote share" : "Добавить удалённую общую папку", + "Add remote share" : "Добавить удалённый общий ресурс", "No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше", "Invalid ownCloud url" : "Неверный адрес ownCloud", "Shared by" : "Поделился", @@ -33,11 +33,12 @@ OC.L10N.register( "This share is password-protected" : "Общий ресурс защищен паролем", "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", "Password" : "Пароль", + "No entries found in this folder" : "Каталог пуст", "Name" : "Имя", "Share time" : "Дата публикации", "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", "Reasons might be:" : "Причиной может быть:", - "the item was removed" : "объект был удалён", + "the item was removed" : "элемент был удалён", "the link expired" : "срок действия ссылки истёк", "sharing is disabled" : "общий доступ отключён", "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.", @@ -45,7 +46,7 @@ OC.L10N.register( "Download" : "Скачать", "Download %s" : "Скачать %s", "Direct link" : "Прямая ссылка", - "Server-to-Server Sharing" : "Общий доступ Сервер-Сервер", + "Server-to-Server Sharing" : "Межсерверное предоставление доступа", "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов" }, diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 0a19e806cb5..d14ffa43101 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -3,7 +3,7 @@ "The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.", "Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL", "Couldn't add remote share" : "Невозможно добавить удалённый общий ресурс", - "Shared with you" : "Доступные для Вас", + "Shared with you" : "Поделились с вами", "Shared with others" : "Доступные для других", "Shared by link" : "Доступные по ссылке", "Nothing shared with you yet" : "С вами пока ничем не поделились", @@ -16,7 +16,7 @@ "Remote share" : "Удаленный общий ресурс", "Remote share password" : "Пароль для удаленного общего ресурса", "Cancel" : "Отменить", - "Add remote share" : "Добавить удалённую общую папку", + "Add remote share" : "Добавить удалённый общий ресурс", "No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше", "Invalid ownCloud url" : "Неверный адрес ownCloud", "Shared by" : "Поделился", @@ -31,11 +31,12 @@ "This share is password-protected" : "Общий ресурс защищен паролем", "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", "Password" : "Пароль", + "No entries found in this folder" : "Каталог пуст", "Name" : "Имя", "Share time" : "Дата публикации", "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", "Reasons might be:" : "Причиной может быть:", - "the item was removed" : "объект был удалён", + "the item was removed" : "элемент был удалён", "the link expired" : "срок действия ссылки истёк", "sharing is disabled" : "общий доступ отключён", "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.", @@ -43,7 +44,7 @@ "Download" : "Скачать", "Download %s" : "Скачать %s", "Direct link" : "Прямая ссылка", - "Server-to-Server Sharing" : "Общий доступ Сервер-Сервер", + "Server-to-Server Sharing" : "Межсерверное предоставление доступа", "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js index d13ecd5c14b..5fe340ab04c 100644 --- a/apps/files_sharing/l10n/sl.js +++ b/apps/files_sharing/l10n/sl.js @@ -33,6 +33,7 @@ OC.L10N.register( "This share is password-protected" : "To mesto je zaščiteno z geslom.", "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", "Password" : "Geslo", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Name" : "Ime", "Share time" : "Čas souporabe", "Sorry, this link doesn’t seem to work anymore." : "Povezava očitno ni več v uporabi.", diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json index 124d8f3c9b8..2618dce954e 100644 --- a/apps/files_sharing/l10n/sl.json +++ b/apps/files_sharing/l10n/sl.json @@ -31,6 +31,7 @@ "This share is password-protected" : "To mesto je zaščiteno z geslom.", "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", "Password" : "Geslo", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Name" : "Ime", "Share time" : "Čas souporabe", "Sorry, this link doesn’t seem to work anymore." : "Povezava očitno ni več v uporabi.", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 1bf78102495..bab77a7431e 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -26,7 +26,7 @@ OC.L10N.register( "You received a new remote share from %s" : "Du mottog en ny fjärrdelning från %s", "%1$s accepted remote share %2$s" : "%1$s accepterade fjärrdelning %2$s", "%1$s declined remote share %2$s" : "%1$s nekade fjärrdelning %2$s", - "%1$s unshared %2$s from you" : "%1$s odelad %2$s från dig", + "%1$s unshared %2$s from you" : "%1$s tog bort delningen %2$s från dig", "Public shared folder %1$s was downloaded" : "Publikt delad mapp %1$s blev nerladdad", "Public shared file %1$s was downloaded" : "Publikt delad fil %1$s blev nerladdad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 1666f4c64ee..a7334a15685 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -24,7 +24,7 @@ "You received a new remote share from %s" : "Du mottog en ny fjärrdelning från %s", "%1$s accepted remote share %2$s" : "%1$s accepterade fjärrdelning %2$s", "%1$s declined remote share %2$s" : "%1$s nekade fjärrdelning %2$s", - "%1$s unshared %2$s from you" : "%1$s odelad %2$s från dig", + "%1$s unshared %2$s from you" : "%1$s tog bort delningen %2$s från dig", "Public shared folder %1$s was downloaded" : "Publikt delad mapp %1$s blev nerladdad", "Public shared file %1$s was downloaded" : "Publikt delad fil %1$s blev nerladdad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 8f5b4391b70..8d6514a2177 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -8,16 +8,25 @@ OC.L10N.register( "Shared with you" : "Sizinle paylaşılmış", "Shared with others" : "Diğerleri ile paylaşılmış", "Shared by link" : "Bağlantı ile paylaşılmış", + "Nothing shared with you yet" : "Sizinle henüz hiçbir şey paylaşılmamış", + "Files and folders others share with you will show up here" : "Sizinle paylaşılan dosya ve klasörler burada gösterilecek", + "Nothing shared yet" : "Henüz hiçbir şey paylaşılmamış", + "Files and folders you share will show up here" : "Paylaştığınız dosya ve klasörler burada gösterilecek", + "No shared links" : "Paylaşılan bağlantı yok", + "Files and folders you share by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada gösterilecek", "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?", "Remote share" : "Uzak paylaşım", "Remote share password" : "Uzak paylaşım parolası", "Cancel" : "İptal", "Add remote share" : "Uzak paylaşım ekle", + "No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı", "Invalid ownCloud url" : "Geçersiz ownCloud adresi", "Shared by" : "Paylaşan", + "A file or folder was shared from <strong>another server</strong>" : "<strong>Başka sunucudan</strong> bir dosya veya klasör paylaşıldı", "This share is password-protected" : "Bu paylaşım parola korumalı", "The password is wrong. Try again." : "Parola hatalı. Yeniden deneyin.", "Password" : "Parola", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", "Name" : "Ad", "Share time" : "Paylaşma zamanı", "Sorry, this link doesn’t seem to work anymore." : "Üzgünüz, bu bağlantı artık çalışıyor gibi görünmüyor.", diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index 7072e84d8c9..93be4e35a8e 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -6,16 +6,25 @@ "Shared with you" : "Sizinle paylaşılmış", "Shared with others" : "Diğerleri ile paylaşılmış", "Shared by link" : "Bağlantı ile paylaşılmış", + "Nothing shared with you yet" : "Sizinle henüz hiçbir şey paylaşılmamış", + "Files and folders others share with you will show up here" : "Sizinle paylaşılan dosya ve klasörler burada gösterilecek", + "Nothing shared yet" : "Henüz hiçbir şey paylaşılmamış", + "Files and folders you share will show up here" : "Paylaştığınız dosya ve klasörler burada gösterilecek", + "No shared links" : "Paylaşılan bağlantı yok", + "Files and folders you share by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada gösterilecek", "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?", "Remote share" : "Uzak paylaşım", "Remote share password" : "Uzak paylaşım parolası", "Cancel" : "İptal", "Add remote share" : "Uzak paylaşım ekle", + "No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı", "Invalid ownCloud url" : "Geçersiz ownCloud adresi", "Shared by" : "Paylaşan", + "A file or folder was shared from <strong>another server</strong>" : "<strong>Başka sunucudan</strong> bir dosya veya klasör paylaşıldı", "This share is password-protected" : "Bu paylaşım parola korumalı", "The password is wrong. Try again." : "Parola hatalı. Yeniden deneyin.", "Password" : "Parola", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", "Name" : "Ad", "Share time" : "Paylaşma zamanı", "Sorry, this link doesn’t seem to work anymore." : "Üzgünüz, bu bağlantı artık çalışıyor gibi görünmüyor.", diff --git a/apps/files_trashbin/js/app.js b/apps/files_trashbin/js/app.js index c5de08d5922..315349d293c 100644 --- a/apps/files_trashbin/js/app.js +++ b/apps/files_trashbin/js/app.js @@ -67,8 +67,8 @@ OCA.Trashbin.App = { }, render: function(actionSpec, isDefault, context) { var $actionLink = fileActions._makeActionLink(actionSpec, context); - $actionLink.attr('original-title', t('files', 'Delete permanently')); - $actionLink.children('img').attr('alt', t('files', 'Delete permanently')); + $actionLink.attr('original-title', t('files_trashbin', 'Delete permanently')); + $actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently')); context.$file.find('td:last').append($actionLink); return $actionLink; }, diff --git a/apps/files_trashbin/l10n/da.js b/apps/files_trashbin/l10n/da.js index 151ff2bb56a..dbcd566a9d2 100644 --- a/apps/files_trashbin/l10n/da.js +++ b/apps/files_trashbin/l10n/da.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "Gendannet", "No deleted files" : "Ingen slettede filer", "You will be able to recover deleted files from here" : "Du vil kunne gendanne slettede filer herfra", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Select all" : "Vælg alle", "Name" : "Navn", "Deleted" : "Slettet", diff --git a/apps/files_trashbin/l10n/da.json b/apps/files_trashbin/l10n/da.json index d3d7d89bd91..0f660d2e44d 100644 --- a/apps/files_trashbin/l10n/da.json +++ b/apps/files_trashbin/l10n/da.json @@ -8,6 +8,7 @@ "restored" : "Gendannet", "No deleted files" : "Ingen slettede filer", "You will be able to recover deleted files from here" : "Du vil kunne gendanne slettede filer herfra", + "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", "Select all" : "Vælg alle", "Name" : "Navn", "Deleted" : "Slettet", diff --git a/apps/files_trashbin/l10n/ja.js b/apps/files_trashbin/l10n/ja.js index 1ec56e8d2fa..6fdb9f3738e 100644 --- a/apps/files_trashbin/l10n/ja.js +++ b/apps/files_trashbin/l10n/ja.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "復元済", "No deleted files" : "削除されたファイルはありません", "You will be able to recover deleted files from here" : "ここから削除されたファイルを元に戻すことができます。", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Select all" : "すべて選択", "Name" : "名前", "Deleted" : "削除日時", diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json index 2da8c5af5ba..1d07e8dd960 100644 --- a/apps/files_trashbin/l10n/ja.json +++ b/apps/files_trashbin/l10n/ja.json @@ -8,6 +8,7 @@ "restored" : "復元済", "No deleted files" : "削除されたファイルはありません", "You will be able to recover deleted files from here" : "ここから削除されたファイルを元に戻すことができます。", + "No entries found in this folder" : "このフォルダーにはエントリーがありません", "Select all" : "すべて選択", "Name" : "名前", "Deleted" : "削除日時", diff --git a/apps/files_trashbin/l10n/lv.js b/apps/files_trashbin/l10n/lv.js index 4e6fb3ea3a2..21ac79785a6 100644 --- a/apps/files_trashbin/l10n/lv.js +++ b/apps/files_trashbin/l10n/lv.js @@ -8,6 +8,7 @@ OC.L10N.register( "Delete permanently" : "Dzēst pavisam", "Error" : "Kļūda", "restored" : "atjaunots", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Select all" : "Atzīmēt visu", "Name" : "Nosaukums", "Deleted" : "Dzēsts", diff --git a/apps/files_trashbin/l10n/lv.json b/apps/files_trashbin/l10n/lv.json index 1c798fb7f59..683a929948b 100644 --- a/apps/files_trashbin/l10n/lv.json +++ b/apps/files_trashbin/l10n/lv.json @@ -6,6 +6,7 @@ "Delete permanently" : "Dzēst pavisam", "Error" : "Kļūda", "restored" : "atjaunots", + "No entries found in this folder" : "Šajā mapē nekas nav atrasts", "Select all" : "Atzīmēt visu", "Name" : "Nosaukums", "Deleted" : "Dzēsts", diff --git a/apps/files_trashbin/l10n/nb_NO.js b/apps/files_trashbin/l10n/nb_NO.js index 2fcd4b93c9c..2c1fd5396ef 100644 --- a/apps/files_trashbin/l10n/nb_NO.js +++ b/apps/files_trashbin/l10n/nb_NO.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "gjenopprettet", "No deleted files" : "Ingen slettede filer", "You will be able to recover deleted files from here" : "Du vil kunne gjenopprette slettede filer herfra", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Select all" : "Velg alle", "Name" : "Navn", "Deleted" : "Slettet", diff --git a/apps/files_trashbin/l10n/nb_NO.json b/apps/files_trashbin/l10n/nb_NO.json index 4fd9d677575..44e6161fe18 100644 --- a/apps/files_trashbin/l10n/nb_NO.json +++ b/apps/files_trashbin/l10n/nb_NO.json @@ -8,6 +8,7 @@ "restored" : "gjenopprettet", "No deleted files" : "Ingen slettede filer", "You will be able to recover deleted files from here" : "Du vil kunne gjenopprette slettede filer herfra", + "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", "Select all" : "Velg alle", "Name" : "Navn", "Deleted" : "Slettet", diff --git a/apps/files_trashbin/l10n/nl.js b/apps/files_trashbin/l10n/nl.js index 72dcac7206b..4b9227b563f 100644 --- a/apps/files_trashbin/l10n/nl.js +++ b/apps/files_trashbin/l10n/nl.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "hersteld", "No deleted files" : "Geen verwijderde bestanden", "You will be able to recover deleted files from here" : "U kunt verwijderde bestanden hier vandaan weer terugzetten", + "No entries found in this folder" : "Niets gevonden in deze map", "Select all" : "Alles selecteren", "Name" : "Naam", "Deleted" : "Verwijderd", diff --git a/apps/files_trashbin/l10n/nl.json b/apps/files_trashbin/l10n/nl.json index 9c493cc5321..7e78dde9baa 100644 --- a/apps/files_trashbin/l10n/nl.json +++ b/apps/files_trashbin/l10n/nl.json @@ -8,6 +8,7 @@ "restored" : "hersteld", "No deleted files" : "Geen verwijderde bestanden", "You will be able to recover deleted files from here" : "U kunt verwijderde bestanden hier vandaan weer terugzetten", + "No entries found in this folder" : "Niets gevonden in deze map", "Select all" : "Alles selecteren", "Name" : "Naam", "Deleted" : "Verwijderd", diff --git a/apps/files_trashbin/l10n/pt_BR.js b/apps/files_trashbin/l10n/pt_BR.js index 08dbe7260ba..737a522eea1 100644 --- a/apps/files_trashbin/l10n/pt_BR.js +++ b/apps/files_trashbin/l10n/pt_BR.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "restaurado", "No deleted files" : "Aquivos não removidos", "You will be able to recover deleted files from here" : "Você pode recuperar arquivos removidos daqui", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Select all" : "Selecionar tudo", "Name" : "Nome", "Deleted" : "Excluído", diff --git a/apps/files_trashbin/l10n/pt_BR.json b/apps/files_trashbin/l10n/pt_BR.json index ddc2c20dd20..25ee0439d67 100644 --- a/apps/files_trashbin/l10n/pt_BR.json +++ b/apps/files_trashbin/l10n/pt_BR.json @@ -8,6 +8,7 @@ "restored" : "restaurado", "No deleted files" : "Aquivos não removidos", "You will be able to recover deleted files from here" : "Você pode recuperar arquivos removidos daqui", + "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", "Select all" : "Selecionar tudo", "Name" : "Nome", "Deleted" : "Excluído", diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js index 2a4138d8490..39a47584221 100644 --- a/apps/files_trashbin/l10n/ru.js +++ b/apps/files_trashbin/l10n/ru.js @@ -1,7 +1,7 @@ OC.L10N.register( "files_trashbin", { - "Couldn't delete %s permanently" : "%s не может быть удалён навсегда", + "Couldn't delete %s permanently" : "%s не может быть удалён окончательно", "Couldn't restore %s" : "%s не может быть восстановлен", "Deleted files" : "Удалённые файлы", "Restore" : "Восстановить", @@ -9,8 +9,9 @@ OC.L10N.register( "Error" : "Ошибка", "restored" : "восстановлен", "No deleted files" : "Нет удалённых файлов", - "You will be able to recover deleted files from here" : "Отсюда вы сможете восстановить удалённые файлы", - "Select all" : "Выбрать все", + "You will be able to recover deleted files from here" : "Здесь вы сможете восстановить удалённые файлы", + "No entries found in this folder" : "Каталог пуст", + "Select all" : "Выделить все", "Name" : "Имя", "Deleted" : "Удалён", "Delete" : "Удалить" diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json index b454b842d97..171c0aa2325 100644 --- a/apps/files_trashbin/l10n/ru.json +++ b/apps/files_trashbin/l10n/ru.json @@ -1,5 +1,5 @@ { "translations": { - "Couldn't delete %s permanently" : "%s не может быть удалён навсегда", + "Couldn't delete %s permanently" : "%s не может быть удалён окончательно", "Couldn't restore %s" : "%s не может быть восстановлен", "Deleted files" : "Удалённые файлы", "Restore" : "Восстановить", @@ -7,8 +7,9 @@ "Error" : "Ошибка", "restored" : "восстановлен", "No deleted files" : "Нет удалённых файлов", - "You will be able to recover deleted files from here" : "Отсюда вы сможете восстановить удалённые файлы", - "Select all" : "Выбрать все", + "You will be able to recover deleted files from here" : "Здесь вы сможете восстановить удалённые файлы", + "No entries found in this folder" : "Каталог пуст", + "Select all" : "Выделить все", "Name" : "Имя", "Deleted" : "Удалён", "Delete" : "Удалить" diff --git a/apps/files_trashbin/l10n/sl.js b/apps/files_trashbin/l10n/sl.js index 1e92dafb9d0..4287b3d860c 100644 --- a/apps/files_trashbin/l10n/sl.js +++ b/apps/files_trashbin/l10n/sl.js @@ -10,6 +10,7 @@ OC.L10N.register( "restored" : "obnovljeno", "No deleted files" : "Ni izbrisanih datotek", "You will be able to recover deleted files from here" : "Izbrisane datoteke je mogoče povrniti na tem mestu", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Select all" : "izberi vse", "Name" : "Ime", "Deleted" : "Izbrisano", diff --git a/apps/files_trashbin/l10n/sl.json b/apps/files_trashbin/l10n/sl.json index 456c36793b3..0e996a2495b 100644 --- a/apps/files_trashbin/l10n/sl.json +++ b/apps/files_trashbin/l10n/sl.json @@ -8,6 +8,7 @@ "restored" : "obnovljeno", "No deleted files" : "Ni izbrisanih datotek", "You will be able to recover deleted files from here" : "Izbrisane datoteke je mogoče povrniti na tem mestu", + "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", "Select all" : "izberi vse", "Name" : "Ime", "Deleted" : "Izbrisano", diff --git a/apps/files_trashbin/l10n/tr.js b/apps/files_trashbin/l10n/tr.js index c71cee9b34a..c6c73929555 100644 --- a/apps/files_trashbin/l10n/tr.js +++ b/apps/files_trashbin/l10n/tr.js @@ -8,6 +8,10 @@ OC.L10N.register( "Delete permanently" : "Kalıcı olarak sil", "Error" : "Hata", "restored" : "geri yüklendi", + "No deleted files" : "Silinen dosya yok", + "You will be able to recover deleted files from here" : "Silinen dosyalarınızı buradan kurtarabileceksiniz", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", + "Select all" : "Tümünü seç", "Name" : "İsim", "Deleted" : "Silinme", "Delete" : "Sil" diff --git a/apps/files_trashbin/l10n/tr.json b/apps/files_trashbin/l10n/tr.json index f10180a0922..64f14af6674 100644 --- a/apps/files_trashbin/l10n/tr.json +++ b/apps/files_trashbin/l10n/tr.json @@ -6,6 +6,10 @@ "Delete permanently" : "Kalıcı olarak sil", "Error" : "Hata", "restored" : "geri yüklendi", + "No deleted files" : "Silinen dosya yok", + "You will be able to recover deleted files from here" : "Silinen dosyalarınızı buradan kurtarabileceksiniz", + "No entries found in this folder" : "Bu klasörde hiçbir girdi bulunamadı", + "Select all" : "Tümünü seç", "Name" : "İsim", "Deleted" : "Silinme", "Delete" : "Sil" diff --git a/apps/files_versions/ajax/getVersions.php b/apps/files_versions/ajax/getVersions.php index 4cc1c428898..80786433e7a 100644 --- a/apps/files_versions/ajax/getVersions.php +++ b/apps/files_versions/ajax/getVersions.php @@ -1,4 +1,6 @@ <?php +OCP\JSON::checkLoggedIn(); +OCP\JSON::callCheck(); OCP\JSON::checkAppEnabled('files_versions'); $source = $_GET['source']; diff --git a/apps/files_versions/ajax/rollbackVersion.php b/apps/files_versions/ajax/rollbackVersion.php index e6133507738..326d8db74f7 100644 --- a/apps/files_versions/ajax/rollbackVersion.php +++ b/apps/files_versions/ajax/rollbackVersion.php @@ -1,5 +1,6 @@ <?php +OCP\JSON::checkLoggedIn(); OCP\JSON::checkAppEnabled('files_versions'); OCP\JSON::callCheck(); diff --git a/apps/files_versions/l10n/ru.js b/apps/files_versions/l10n/ru.js index 2dc12f9ff2a..74ad347804b 100644 --- a/apps/files_versions/l10n/ru.js +++ b/apps/files_versions/l10n/ru.js @@ -1,11 +1,11 @@ OC.L10N.register( "files_versions", { - "Could not revert: %s" : "Не может быть возвращён: %s", + "Could not revert: %s" : "Невозможно откатить: %s", "Versions" : "Версии", - "Failed to revert {file} to revision {timestamp}." : "Не удалось возвратить {file} к ревизии {timestamp}.", + "Failed to revert {file} to revision {timestamp}." : "Не удалось откатить {file} к ревизии {timestamp}.", "More versions..." : "Ещё версии...", "No other versions available" : "Других версий не доступно", - "Restore" : "Восстановить" + "Restore" : "Откатить" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_versions/l10n/ru.json b/apps/files_versions/l10n/ru.json index fe1906bf467..b21bd54331f 100644 --- a/apps/files_versions/l10n/ru.json +++ b/apps/files_versions/l10n/ru.json @@ -1,9 +1,9 @@ { "translations": { - "Could not revert: %s" : "Не может быть возвращён: %s", + "Could not revert: %s" : "Невозможно откатить: %s", "Versions" : "Версии", - "Failed to revert {file} to revision {timestamp}." : "Не удалось возвратить {file} к ревизии {timestamp}.", + "Failed to revert {file} to revision {timestamp}." : "Не удалось откатить {file} к ревизии {timestamp}.", "More versions..." : "Ещё версии...", "No other versions available" : "Других версий не доступно", - "Restore" : "Восстановить" + "Restore" : "Откатить" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php index bca687c81ab..d409d891f61 100644 --- a/apps/user_ldap/ajax/deleteConfiguration.php +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -27,7 +27,8 @@ OCP\JSON::checkAppEnabled('user_ldap'); OCP\JSON::callCheck(); $prefix = $_POST['ldap_serverconfig_chooser']; -if(\OCA\user_ldap\lib\Helper::deleteServerConfiguration($prefix)) { +$helper = new \OCA\user_ldap\lib\Helper(); +if($helper->deleteServerConfiguration($prefix)) { OCP\JSON::success(); } else { $l = \OC::$server->getL10N('user_ldap'); diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index 1c68b2e9a76..ce6c5ae76e8 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -26,7 +26,8 @@ OCP\JSON::checkAdminUser(); OCP\JSON::checkAppEnabled('user_ldap'); OCP\JSON::callCheck(); -$serverConnections = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(); +$helper = new \OCA\user_ldap\lib\Helper(); +$serverConnections = $helper->getServerConfigurationPrefixes(); sort($serverConnections); $lk = array_pop($serverConnections); $ln = intval(str_replace('s', '', $lk)); diff --git a/apps/user_ldap/ajax/wizard.php b/apps/user_ldap/ajax/wizard.php index 6d7d70c8c5a..48bfb56311c 100644 --- a/apps/user_ldap/ajax/wizard.php +++ b/apps/user_ldap/ajax/wizard.php @@ -52,7 +52,8 @@ $userManager = new \OCA\user_ldap\lib\user\Manager( new \OCA\user_ldap\lib\FilesystemHelper(), new \OCA\user_ldap\lib\LogWrapper(), \OC::$server->getAvatarManager(), - new \OCP\Image()); + new \OCP\Image(), + \OC::$server->getDatabaseConnection()); $access = new \OCA\user_ldap\lib\Access($con, $ldapWrapper, $userManager); diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index 98d5fb60183..911688a5c20 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -5,6 +5,7 @@ * * @author Dominik Schmidt * @copyright 2011 Dominik Schmidt dev@dominik-schmidt.de +* @copyright 2014 Arthur Schiwon <blizzz@owncloud.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -23,24 +24,30 @@ OCP\App::registerAdmin('user_ldap', 'settings'); -$configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); +$helper = new \OCA\user_ldap\lib\Helper(); +$configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldapWrapper = new OCA\user_ldap\lib\LDAP(); +$ocConfig = \OC::$server->getConfig(); if(count($configPrefixes) === 1) { - $ocConfig = \OC::$server->getConfig(); + $dbc = \OC::$server->getDatabaseConnection(); $userManager = new OCA\user_ldap\lib\user\Manager($ocConfig, new OCA\user_ldap\lib\FilesystemHelper(), new OCA\user_ldap\lib\LogWrapper(), \OC::$server->getAvatarManager(), - new \OCP\Image()); + new \OCP\Image(), + $dbc + ); $connector = new OCA\user_ldap\lib\Connection($ldapWrapper, $configPrefixes[0]); $ldapAccess = new OCA\user_ldap\lib\Access($connector, $ldapWrapper, $userManager); - $dbc = \OC::$server->getDatabaseConnection(); + $ldapAccess->setUserMapper(new OCA\User_LDAP\Mapping\UserMapping($dbc)); $ldapAccess->setGroupMapper(new OCA\User_LDAP\Mapping\GroupMapping($dbc)); - $userBackend = new OCA\user_ldap\USER_LDAP($ldapAccess); + $userBackend = new OCA\user_ldap\USER_LDAP($ldapAccess, $ocConfig); $groupBackend = new OCA\user_ldap\GROUP_LDAP($ldapAccess); } else if(count($configPrefixes) > 1) { - $userBackend = new OCA\user_ldap\User_Proxy($configPrefixes, $ldapWrapper); + $userBackend = new OCA\user_ldap\User_Proxy( + $configPrefixes, $ldapWrapper, $ocConfig + ); $groupBackend = new OCA\user_ldap\Group_Proxy($configPrefixes, $ldapWrapper); } @@ -50,16 +57,10 @@ if(count($configPrefixes) > 0) { OC_Group::useBackend($groupBackend); } -// add settings page to navigation -$entry = array( - 'id' => 'user_ldap_settings', - 'order'=>1, - 'href' => OCP\Util::linkTo( 'user_ldap', 'settings.php' ), - 'name' => 'LDAP' -); OCP\Util::addTranslations('user_ldap'); - OCP\Backgroundjob::registerJob('OCA\user_ldap\lib\Jobs'); +OCP\Backgroundjob::registerJob('\OCA\User_LDAP\Jobs\CleanUp'); + if(OCP\App::isEnabled('user_webdavauth')) { OCP\Util::writeLog('user_ldap', 'user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour', diff --git a/apps/user_ldap/appinfo/register_command.php b/apps/user_ldap/appinfo/register_command.php index 1a0227db95e..651e6a564e1 100644 --- a/apps/user_ldap/appinfo/register_command.php +++ b/apps/user_ldap/appinfo/register_command.php @@ -6,9 +6,34 @@ * See the COPYING-README file. */ +use OCA\user_ldap\lib\Helper; +use OCA\user_ldap\lib\LDAP; +use OCA\user_ldap\User_Proxy; +use OCA\User_LDAP\Mapping\UserMapping; +use OCA\User_LDAP\lib\User\DeletedUsersIndex; + +$dbConnection = \OC::$server->getDatabaseConnection(); +$userMapping = new UserMapping($dbConnection); +$helper = new Helper(); +$ocConfig = \OC::$server->getConfig(); +$uBackend = new User_Proxy( + $helper->getServerConfigurationPrefixes(true), + new LDAP(), + $ocConfig +); +$deletedUsersIndex = new DeletedUsersIndex( + $ocConfig, $dbConnection, $userMapping +); + $application->add(new OCA\user_ldap\Command\ShowConfig()); $application->add(new OCA\user_ldap\Command\SetConfig()); $application->add(new OCA\user_ldap\Command\TestConfig()); $application->add(new OCA\user_ldap\Command\CreateEmptyConfig()); $application->add(new OCA\user_ldap\Command\DeleteConfig()); -$application->add(new OCA\user_ldap\Command\Search()); +$application->add(new OCA\user_ldap\Command\Search($ocConfig)); +$application->add(new OCA\user_ldap\Command\ShowRemnants( + $deletedUsersIndex, \OC::$server->getDateTimeFormatter()) +); +$application->add(new OCA\user_ldap\Command\CheckUser( + $uBackend, $helper, $deletedUsersIndex, $userMapping) +); diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index 9bf0ca4ab53..b4121b19852 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -12,7 +12,8 @@ if($state === 'unset') { $installedVersion = $configInstance->getAppValue('user_ldap', 'installed_version'); $enableRawMode = version_compare($installedVersion, '0.4.1', '<'); -$configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); +$helper = new \OCA\user_ldap\lib\Helper(); +$configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldap = new OCA\user_ldap\lib\LDAP(); foreach($configPrefixes as $config) { $connection = new OCA\user_ldap\lib\Connection($ldap, $config); diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version index 6f2743d65dc..0bfccb08040 100644 --- a/apps/user_ldap/appinfo/version +++ b/apps/user_ldap/appinfo/version @@ -1 +1 @@ -0.4.4 +0.4.5 diff --git a/apps/user_ldap/command/checkuser.php b/apps/user_ldap/command/checkuser.php new file mode 100644 index 00000000000..202855e4853 --- /dev/null +++ b/apps/user_ldap/command/checkuser.php @@ -0,0 +1,121 @@ +<?php +/** + * Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\user_ldap\Command; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +use OCA\user_ldap\lib\user\User; +use OCA\User_LDAP\lib\User\DeletedUsersIndex; +use OCA\User_LDAP\Mapping\UserMapping; +use OCA\user_ldap\lib\Helper as LDAPHelper; +use OCA\user_ldap\User_Proxy; + +class CheckUser extends Command { + /** @var \OCA\user_ldap\User_Proxy */ + protected $backend; + + /** @var \OCA\User_LDAP\lib\Helper */ + protected $helper; + + /** @var \OCA\User_LDAP\lib\User\DeletedUsersIndex */ + protected $dui; + + /** @var \OCA\User_LDAP\Mapping\UserMapping */ + protected $mapping; + + /** + * @param OCA\user_ldap\User_Proxy $uBackend + * @param OCA\user_ldap\lib\Helper $helper + * @param OCA\User_LDAP\lib\User\DeletedUsersIndex $dui + * @param OCA\User_LDAP\Mapping\UserMapping $mapping + */ + public function __construct(User_Proxy $uBackend, LDAPHelper $helper, DeletedUsersIndex $dui, UserMapping $mapping) { + $this->backend = $uBackend; + $this->helper = $helper; + $this->dui = $dui; + $this->mapping = $mapping; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('ldap:check-user') + ->setDescription('checks whether a user exists on LDAP.') + ->addArgument( + 'ocName', + InputArgument::REQUIRED, + 'the user name as used in ownCloud' + ) + ->addOption( + 'force', + null, + InputOption::VALUE_NONE, + 'ignores disabled LDAP configuration' + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) { + try { + $uid = $input->getArgument('ocName'); + $this->isAllowed($input->getOption('force')); + $this->confirmUserIsMapped($uid); + $exists = $this->backend->userExistsOnLDAP($uid); + if($exists === true) { + $output->writeln('The user is still available on LDAP.'); + return; + } + + $this->dui->markUser($uid); + $output->writeln('The user does not exists on LDAP anymore.'); + $output->writeln('Clean up the user\'s remnants by: ./occ user:delete "' + . $uid . '"'); + } catch (\Exception $e) { + $output->writeln('<error>' . $e->getMessage(). '</error>'); + } + } + + /** + * checks whether a user is actually mapped + * @param string $ocName the username as used in ownCloud + * @throws \Exception + * @return true + */ + protected function confirmUserIsMapped($ocName) { + $dn = $this->mapping->getDNByName($ocName); + if ($dn === false) { + throw new \Exception('The given user is not a recognized LDAP user.'); + } + + return true; + } + + /** + * checks whether the setup allows reliable checking of LDAP user existence + * @throws \Exception + * @return true + */ + protected function isAllowed($force) { + if($this->helper->haveDisabledConfigurations() && !$force) { + throw new \Exception('Cannot check user existence, because ' + . 'disabled LDAP configurations are present.'); + } + + // we don't check ldapUserCleanupInterval from config.php because this + // action is triggered manually, while the setting only controls the + // background job. + + return true; + } + +} diff --git a/apps/user_ldap/command/search.php b/apps/user_ldap/command/search.php index e20255510d8..ba87982d167 100644 --- a/apps/user_ldap/command/search.php +++ b/apps/user_ldap/command/search.php @@ -18,8 +18,20 @@ use OCA\user_ldap\User_Proxy; use OCA\user_ldap\Group_Proxy; use OCA\user_ldap\lib\Helper; use OCA\user_ldap\lib\LDAP; +use OCP\IConfig; class Search extends Command { + /** @var \OCP\IConfig */ + protected $ocConfig; + + /** + * @param \OCP\IConfig $ocConfig + */ + public function __construct(IConfig $ocConfig) { + $this->ocConfig = $ocConfig; + parent::__construct(); + } + protected function configure() { $this ->setName('ldap:search') @@ -74,7 +86,8 @@ class Search extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { - $configPrefixes = Helper::getServerConfigurationPrefixes(true); + $helper = new Helper(); + $configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldapWrapper = new LDAP(); $offset = intval($input->getOption('offset')); @@ -86,7 +99,7 @@ class Search extends Command { $getMethod = 'getGroups'; $printID = false; } else { - $proxy = new User_Proxy($configPrefixes, $ldapWrapper); + $proxy = new User_Proxy($configPrefixes, $ldapWrapper, $this->ocConfig); $getMethod = 'getDisplayNames'; $printID = true; } diff --git a/apps/user_ldap/command/setconfig.php b/apps/user_ldap/command/setconfig.php index ab1c8d39ead..9128fcf04fc 100644 --- a/apps/user_ldap/command/setconfig.php +++ b/apps/user_ldap/command/setconfig.php @@ -41,7 +41,8 @@ class SetConfig extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { - $availableConfigs = Helper::getServerConfigurationPrefixes(); + $helper = new Helper(); + $availableConfigs = $helper->getServerConfigurationPrefixes(); $configID = $input->getArgument('configID'); if(!in_array($configID, $availableConfigs)) { $output->writeln("Invalid configID"); diff --git a/apps/user_ldap/command/showconfig.php b/apps/user_ldap/command/showconfig.php index f51d641beec..ddbc45243ff 100644 --- a/apps/user_ldap/command/showconfig.php +++ b/apps/user_ldap/command/showconfig.php @@ -31,7 +31,8 @@ class ShowConfig extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { - $availableConfigs = Helper::getServerConfigurationPrefixes(); + $helper = new Helper(); + $availableConfigs = $helper->getServerConfigurationPrefixes(); $configID = $input->getArgument('configID'); if(!is_null($configID)) { $configIDs[] = $configID; diff --git a/apps/user_ldap/command/showremnants.php b/apps/user_ldap/command/showremnants.php new file mode 100644 index 00000000000..5cfab34ef95 --- /dev/null +++ b/apps/user_ldap/command/showremnants.php @@ -0,0 +1,73 @@ +<?php +/** + * Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\user_ldap\Command; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +use OCA\user_ldap\lib\user\DeletedUsersIndex; +use OCP\IDateTimeFormatter; + +class ShowRemnants extends Command { + /** @var \OCA\User_LDAP\lib\User\DeletedUsersIndex */ + protected $dui; + + /** @var \OCP\IDateTimeFormatter */ + protected $dateFormatter; + + /** + * @param OCA\user_ldap\lib\user\DeletedUsersIndex $dui + * @param OCP\IDateTimeFormatter $dateFormatter + */ + public function __construct(DeletedUsersIndex $dui, IDateTimeFormatter $dateFormatter) { + $this->dui = $dui; + $this->dateFormatter = $dateFormatter; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('ldap:show-remnants') + ->setDescription('shows which users are not available on LDAP anymore, but have remnants in ownCloud.') + ; + } + + /** + * executes the command, i.e. creeates and outputs a table of LDAP users marked as deleted + * + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) { + /** @var \Symfony\Component\Console\Helper\Table $table */ + $table = $this->getHelperSet()->get('table'); + $table->setHeaders(array( + 'ownCloud name', 'Display Name', 'LDAP UID', 'LDAP DN', 'Last Login', + 'Dir', 'Sharer')); + $rows = array(); + $resultSet = $this->dui->getUsers(); + foreach($resultSet as $user) { + $hAS = $user->getHasActiveShares() ? 'Y' : 'N'; + $lastLogin = ($user->getLastLogin() > 0) ? + $this->dateFormatter->formatDate($user->getLastLogin()) : '-'; + $rows[] = array( + $user->getOCName(), + $user->getDisplayName(), + $user->getUid(), + $user->getDN(), + $lastLogin, + $user->getHomePath(), + $hAS + ); + } + + $table->setRows($rows); + $table->render($output); + } +} diff --git a/apps/user_ldap/command/testconfig.php b/apps/user_ldap/command/testconfig.php index 00b4acf2f66..a44e22415e9 100644 --- a/apps/user_ldap/command/testconfig.php +++ b/apps/user_ldap/command/testconfig.php @@ -31,7 +31,8 @@ class TestConfig extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { - $availableConfigs = Helper::getServerConfigurationPrefixes(); + $helper = new Helper(); + $availableConfigs = $helper->getServerConfigurationPrefixes(); $configID = $input->getArgument('configID'); if(!in_array($configID, $availableConfigs)) { $output->writeln("Invalid configID"); diff --git a/apps/user_ldap/l10n/nb_NO.js b/apps/user_ldap/l10n/nb_NO.js index 3d3839398a9..dedbb1a70d6 100644 --- a/apps/user_ldap/l10n/nb_NO.js +++ b/apps/user_ldap/l10n/nb_NO.js @@ -44,8 +44,8 @@ OC.L10N.register( "Test Configuration" : "Test konfigurasjonen", "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", - "only those object classes:" : "kun de objektklassene:", - "only from those groups:" : "kun fra de gruppene:", + "only those object classes:" : "kun disse objektklassene:", + "only from those groups:" : "kun fra disse gruppene:", "Edit raw filter instead" : "Rediger ubearbeidet filter i stedet", "Raw LDAP filter" : "Ubearbeidet LDAP-filter", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.", @@ -96,16 +96,16 @@ OC.L10N.register( "Cache Time-To-Live" : "Levetid i mellomlager", "in seconds. A change empties the cache." : "i sekunder. En endring tømmer bufferen.", "Directory Settings" : "Innstillinger for Katalog", - "User Display Name Field" : "Vis brukerens navnfelt", + "User Display Name Field" : "Felt med brukerens visningsnavn", "The LDAP attribute to use to generate the user's display name." : "LDAP-attributten som skal brukes til å generere brukerens visningsnavn.", - "Base User Tree" : "Hovedbruker tre", - "One User Base DN per line" : "En Bruker hoved-DN pr. linje", + "Base User Tree" : "Basis for bruker-tre", + "One User Base DN per line" : "En basis-DN for brukere pr. linje", "User Search Attributes" : "Attributter for brukersøk", "Optional; one attribute per line" : "Valgfritt, en attributt pr. linje", - "Group Display Name Field" : "Vis gruppens navnfelt", + "Group Display Name Field" : "Felt med gruppens visningsnavn", "The LDAP attribute to use to generate the groups's display name." : "LDAP-attributten som skal brukes til å generere gruppens visningsnavn.", - "Base Group Tree" : "Hovedgruppe tre", - "One Group Base DN per line" : "En gruppe hoved-DN pr. linje", + "Base Group Tree" : "Basis for gruppe-tre", + "One Group Base DN per line" : "En basis-DN for grupper pr. linje", "Group Search Attributes" : "Attributter for gruppesøk", "Group-Member association" : "gruppe-medlem assosiasjon", "Nested Groups" : "Nestede grupper", @@ -120,10 +120,10 @@ OC.L10N.register( "User Home Folder Naming Rule" : "Navneregel for brukers hjemmemappe", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt.", "Internal Username" : "Internt brukernavn", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som standard vil det interne brukernavnet bli laget utifra UUID-attributten. Dette sikrer at brukernavnet er unikt og at det ikke er nødvendig å konvertere tegn. Det interne brukernavnet har den begrensningen at bare disse tegnene er tillatt: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av tilsvarende ASCII-tegn eller blir ganske enkelt utelatt. Ved kollisjon blir et nummer lagt til / øket. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også standardnavnet på brukerens hjemmemappe. Det er også med i fjern-URL-er, for eksempel for alle *DAV-tjenester. Med denne innstillingen kan standard oppførsel overstyres. For å få en oppførsel som likner oppførselen før ownCloud 5, legg inn attributten for brukerens visningsnavn i dette feltet. La feltet stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere.", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som standard vil det interne brukernavnet bli laget utifra UUID-attributten. Dette sikrer at brukernavnet er unikt og at det ikke er nødvendig å konvertere tegn. Det interne brukernavnet har den begrensningen at bare disse tegnene er tillatt: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av tilsvarende ASCII-tegn eller blir ganske enkelt utelatt. Ved kollisjon blir et nummer lagt til / øket. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også standardnavnet på brukerens hjemmemappe. Det er også med i eksterne URL-er, for eksempel for alle *DAV-tjenester. Med denne innstillingen kan standard oppførsel overstyres. For å få en oppførsel som likner oppførselen før ownCloud 5, legg inn attributten for brukerens visningsnavn i dette feltet. La feltet stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere.", "Internal Username Attribute:" : "Attributt for internt brukernavn:", - "Override UUID detection" : "Overstyr UUID-oppdaging", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som standard blir UUID-attributten oppdaget automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper uten tvil. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre det om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", + "Override UUID detection" : "Overstyr UUID-påvisning", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som standard blir UUID-attributten påvist automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper unikt. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre deg om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", diff --git a/apps/user_ldap/l10n/nb_NO.json b/apps/user_ldap/l10n/nb_NO.json index cb3c28f8531..f9398c1531f 100644 --- a/apps/user_ldap/l10n/nb_NO.json +++ b/apps/user_ldap/l10n/nb_NO.json @@ -42,8 +42,8 @@ "Test Configuration" : "Test konfigurasjonen", "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", - "only those object classes:" : "kun de objektklassene:", - "only from those groups:" : "kun fra de gruppene:", + "only those object classes:" : "kun disse objektklassene:", + "only from those groups:" : "kun fra disse gruppene:", "Edit raw filter instead" : "Rediger ubearbeidet filter i stedet", "Raw LDAP filter" : "Ubearbeidet LDAP-filter", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.", @@ -94,16 +94,16 @@ "Cache Time-To-Live" : "Levetid i mellomlager", "in seconds. A change empties the cache." : "i sekunder. En endring tømmer bufferen.", "Directory Settings" : "Innstillinger for Katalog", - "User Display Name Field" : "Vis brukerens navnfelt", + "User Display Name Field" : "Felt med brukerens visningsnavn", "The LDAP attribute to use to generate the user's display name." : "LDAP-attributten som skal brukes til å generere brukerens visningsnavn.", - "Base User Tree" : "Hovedbruker tre", - "One User Base DN per line" : "En Bruker hoved-DN pr. linje", + "Base User Tree" : "Basis for bruker-tre", + "One User Base DN per line" : "En basis-DN for brukere pr. linje", "User Search Attributes" : "Attributter for brukersøk", "Optional; one attribute per line" : "Valgfritt, en attributt pr. linje", - "Group Display Name Field" : "Vis gruppens navnfelt", + "Group Display Name Field" : "Felt med gruppens visningsnavn", "The LDAP attribute to use to generate the groups's display name." : "LDAP-attributten som skal brukes til å generere gruppens visningsnavn.", - "Base Group Tree" : "Hovedgruppe tre", - "One Group Base DN per line" : "En gruppe hoved-DN pr. linje", + "Base Group Tree" : "Basis for gruppe-tre", + "One Group Base DN per line" : "En basis-DN for grupper pr. linje", "Group Search Attributes" : "Attributter for gruppesøk", "Group-Member association" : "gruppe-medlem assosiasjon", "Nested Groups" : "Nestede grupper", @@ -118,10 +118,10 @@ "User Home Folder Naming Rule" : "Navneregel for brukers hjemmemappe", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt.", "Internal Username" : "Internt brukernavn", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som standard vil det interne brukernavnet bli laget utifra UUID-attributten. Dette sikrer at brukernavnet er unikt og at det ikke er nødvendig å konvertere tegn. Det interne brukernavnet har den begrensningen at bare disse tegnene er tillatt: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av tilsvarende ASCII-tegn eller blir ganske enkelt utelatt. Ved kollisjon blir et nummer lagt til / øket. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også standardnavnet på brukerens hjemmemappe. Det er også med i fjern-URL-er, for eksempel for alle *DAV-tjenester. Med denne innstillingen kan standard oppførsel overstyres. For å få en oppførsel som likner oppførselen før ownCloud 5, legg inn attributten for brukerens visningsnavn i dette feltet. La feltet stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere.", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som standard vil det interne brukernavnet bli laget utifra UUID-attributten. Dette sikrer at brukernavnet er unikt og at det ikke er nødvendig å konvertere tegn. Det interne brukernavnet har den begrensningen at bare disse tegnene er tillatt: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av tilsvarende ASCII-tegn eller blir ganske enkelt utelatt. Ved kollisjon blir et nummer lagt til / øket. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også standardnavnet på brukerens hjemmemappe. Det er også med i eksterne URL-er, for eksempel for alle *DAV-tjenester. Med denne innstillingen kan standard oppførsel overstyres. For å få en oppførsel som likner oppførselen før ownCloud 5, legg inn attributten for brukerens visningsnavn i dette feltet. La feltet stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere.", "Internal Username Attribute:" : "Attributt for internt brukernavn:", - "Override UUID detection" : "Overstyr UUID-oppdaging", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som standard blir UUID-attributten oppdaget automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper uten tvil. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre det om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", + "Override UUID detection" : "Overstyr UUID-påvisning", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som standard blir UUID-attributten påvist automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper unikt. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre deg om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for standard oppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 345d4986e4b..a00fa0f2306 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -33,6 +33,7 @@ OC.L10N.register( "Confirm Deletion" : "Potwierdź usunięcie", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup"], "_%s user found_::_%s users found_" : ["%s znaleziony użytkownik","%s znalezionych użytkowników","%s znalezionych użytkowników"], + "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nie udało się wykryć atrybutu wyświetlanej nazwy użytkownika. Określ ją w zaawansowanych ustawieniach LDAP.", "Could not find the desired feature" : "Nie można znaleźć żądanej funkcji", "Invalid Host" : "Niepoprawny Host", "Server" : "Serwer", @@ -67,11 +68,15 @@ OC.L10N.register( "For anonymous access, leave DN and Password empty." : "Dla dostępu anonimowego pozostawić DN i hasło puste.", "One Base DN per line" : "Jedna baza DN na linię", "You can specify Base DN for users and groups in the Advanced tab" : "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zapobiega automatycznym zapytaniom LDAP. Lepsze dla większych instalacji, lecz wymaga pewnej wiedzy o LDAP.", + "Manually enter LDAP filters (recommended for large directories)" : "Ręcznie wprowadzaj filtry LDAP (zalecane dla dużych katalogów)", "Limit %s access to users meeting these criteria:" : "Limit %s dostępu do podłączania użytkowników z tymi ustawieniami:", "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr określa, którzy użytkownicy LDAP powinni mieć dostęp do instancji %s.", "users found" : "użytkownicy znalezieni", + "Saving" : "Zapisuję", "Back" : "Wróć", "Continue" : "Kontynuuj ", + "LDAP" : "LDAP", "Expert" : "Ekspert", "Advanced" : "Zaawansowane", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 49adb2abb51..178d47afbfe 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -31,6 +31,7 @@ "Confirm Deletion" : "Potwierdź usunięcie", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup"], "_%s user found_::_%s users found_" : ["%s znaleziony użytkownik","%s znalezionych użytkowników","%s znalezionych użytkowników"], + "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nie udało się wykryć atrybutu wyświetlanej nazwy użytkownika. Określ ją w zaawansowanych ustawieniach LDAP.", "Could not find the desired feature" : "Nie można znaleźć żądanej funkcji", "Invalid Host" : "Niepoprawny Host", "Server" : "Serwer", @@ -65,11 +66,15 @@ "For anonymous access, leave DN and Password empty." : "Dla dostępu anonimowego pozostawić DN i hasło puste.", "One Base DN per line" : "Jedna baza DN na linię", "You can specify Base DN for users and groups in the Advanced tab" : "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zapobiega automatycznym zapytaniom LDAP. Lepsze dla większych instalacji, lecz wymaga pewnej wiedzy o LDAP.", + "Manually enter LDAP filters (recommended for large directories)" : "Ręcznie wprowadzaj filtry LDAP (zalecane dla dużych katalogów)", "Limit %s access to users meeting these criteria:" : "Limit %s dostępu do podłączania użytkowników z tymi ustawieniami:", "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr określa, którzy użytkownicy LDAP powinni mieć dostęp do instancji %s.", "users found" : "użytkownicy znalezieni", + "Saving" : "Zapisuję", "Back" : "Wróć", "Continue" : "Kontynuuj ", + "LDAP" : "LDAP", "Expert" : "Ekspert", "Advanced" : "Zaawansowane", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 00fb8acc59a..f3657176f70 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -76,6 +76,18 @@ class Access extends LDAPUtility implements user\IUserTools { } /** + * returns the User Mapper + * @throws \Exception + * @return AbstractMapping + */ + public function getUserMapper() { + if(is_null($this->userMapper)) { + throw new \Exception('UserMapper was not assigned to this Access instance.'); + } + return $this->userMapper; + } + + /** * sets the Group Mapper * @param AbstractMapping $mapper */ @@ -84,6 +96,18 @@ class Access extends LDAPUtility implements user\IUserTools { } /** + * returns the Group Mapper + * @throws \Exception + * @return AbstractMapping + */ + public function getGroupMapper() { + if(is_null($this->groupMapper)) { + throw new \Exception('GroupMapper was not assigned to this Access instance.'); + } + return $this->groupMapper; + } + + /** * @return bool */ private function checkConnection() { @@ -290,6 +314,7 @@ class Access extends LDAPUtility implements user\IUserTools { } /** + public function ocname2dn($name, $isUser) { * returns the internal ownCloud name for the given LDAP DN of the group, false on DN outside of search DN or failure * @param string $fdn the dn of the group object * @param string $ldapName optional, the display name of the object @@ -332,10 +357,10 @@ class Access extends LDAPUtility implements user\IUserTools { */ public function dn2ocname($fdn, $ldapName = null, $isUser = true) { if($isUser) { - $mapper = $this->userMapper; + $mapper = $this->getUserMapper(); $nameAttribute = $this->connection->ldapUserDisplayName; } else { - $mapper = $this->groupMapper; + $mapper = $this->getGroupMapper(); $nameAttribute = $this->connection->ldapGroupDisplayName; } diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index 204857eb61e..c9b4fded9f9 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -71,8 +71,9 @@ class Connection extends LDAPUtility { } $this->hasPagedResultSupport = $this->ldap->hasPagedResultSupport(); + $helper = new Helper(); $this->doNotValidate = !in_array($this->configPrefix, - Helper::getServerConfigurationPrefixes()); + $helper->getServerConfigurationPrefixes()); } public function __destruct() { diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index fa36e304171..7a96cfa36c4 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -45,7 +45,7 @@ class Helper { * except the default (first) server shall be connected to. * */ - static public function getServerConfigurationPrefixes($activeConfigurations = false) { + public function getServerConfigurationPrefixes($activeConfigurations = false) { $referenceConfigkey = 'ldap_configuration_active'; $sql = ' @@ -83,7 +83,7 @@ class Helper { * @return array an array with configprefix as keys * */ - static public function getServerConfigurationHosts() { + public function getServerConfigurationHosts() { $referenceConfigkey = 'ldap_host'; $query = ' @@ -110,7 +110,7 @@ class Helper { * @param string $prefix the configuration prefix of the config to delete * @return bool true on success, false otherwise */ - static public function deleteServerConfiguration($prefix) { + public function deleteServerConfiguration($prefix) { if(!in_array($prefix, self::getServerConfigurationPrefixes())) { return false; } @@ -142,11 +142,27 @@ class Helper { } /** + * checks whether there is one or more disabled LDAP configurations + * @throws \Exception + * @return bool + */ + public function haveDisabledConfigurations() { + $all = $this->getServerConfigurationPrefixes(false); + $active = $this->getServerConfigurationPrefixes(true); + + if(!is_array($all) || !is_array($active)) { + throw new \Exception('Unexpected Return Value'); + } + + return count($all) !== count($active) || count($all) === 0; + } + + /** * extracts the domain from a given URL * @param string $url the URL * @return string|false domain as string on success, false otherwise */ - static public function getDomainFromURL($url) { + public function getDomainFromURL($url) { $uinfo = parse_url($url); if(!is_array($uinfo)) { return false; diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php index 47e536f8f64..a887b65251c 100644 --- a/apps/user_ldap/lib/jobs.php +++ b/apps/user_ldap/lib/jobs.php @@ -23,6 +23,9 @@ namespace OCA\user_ldap\lib; +use OCA\User_LDAP\Mapping\GroupMapping; +use OCA\User_LDAP\Mapping\UserMapping; + class Jobs extends \OC\BackgroundJob\TimedJob { static private $groupsFromDB; @@ -156,18 +159,25 @@ class Jobs extends \OC\BackgroundJob\TimedJob { if(!is_null(self::$groupBE)) { return self::$groupBE; } - $configPrefixes = Helper::getServerConfigurationPrefixes(true); + $helper = new Helper(); + $configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldapWrapper = new LDAP(); if(count($configPrefixes) === 1) { //avoid the proxy when there is only one LDAP server configured + $dbc = \OC::$server->getDatabaseConnection(); $userManager = new user\Manager( \OC::$server->getConfig(), new FilesystemHelper(), new LogWrapper(), \OC::$server->getAvatarManager(), - new \OCP\Image()); + new \OCP\Image(), + $dbc); $connector = new Connection($ldapWrapper, $configPrefixes[0]); $ldapAccess = new Access($connector, $ldapWrapper, $userManager); + $groupMapper = new GroupMapping($dbc); + $userMapper = new UserMapping($dbc); + $ldapAccess->setGroupMapper($groupMapper); + $ldapAccess->setUserMapper($userMapper); self::$groupBE = new \OCA\user_ldap\GROUP_LDAP($ldapAccess); } else { self::$groupBE = new \OCA\user_ldap\Group_Proxy($configPrefixes, $ldapWrapper); diff --git a/apps/user_ldap/lib/jobs/cleanup.php b/apps/user_ldap/lib/jobs/cleanup.php new file mode 100644 index 00000000000..caf31f89820 --- /dev/null +++ b/apps/user_ldap/lib/jobs/cleanup.php @@ -0,0 +1,217 @@ +<?php +/** + * Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\User_LDAP\Jobs; + +use \OC\BackgroundJob\TimedJob; +use \OCA\user_ldap\User_LDAP; +use \OCA\user_ldap\User_Proxy; +use \OCA\user_ldap\lib\Helper; +use \OCA\user_ldap\lib\LDAP; +use \OCA\user_ldap\lib\user\DeletedUsersIndex; +use \OCA\User_LDAP\Mapping\UserMapping; + +/** + * Class CleanUp + * + * a Background job to clean up deleted users + * + * @package OCA\user_ldap\lib; + */ +class CleanUp extends TimedJob { + /** @var int $limit amount of users that should be checked per run */ + protected $limit = 50; + + /** @var int $defaultIntervalMin default interval in minutes */ + protected $defaultIntervalMin = 51; + + /** @var User_LDAP|User_Proxy $userBackend */ + protected $userBackend; + + /** @var \OCP\IConfig $ocConfig */ + protected $ocConfig; + + /** @var \OCP\IDBConnection $db */ + protected $db; + + /** @var Helper $ldapHelper */ + protected $ldapHelper; + + /** @var \OCA\User_LDAP\Mapping\UserMapping */ + protected $mapping; + + /** @var \OCA\User_LDAP\lib\User\DeletedUsersIndex */ + protected $dui; + + public function __construct() { + $minutes = \OC::$server->getConfig()->getSystemValue( + 'ldapUserCleanupInterval', strval($this->defaultIntervalMin)); + $this->setInterval(intval($minutes) * 60); + } + + /** + * assigns the instances passed to run() to the class properties + * @param array $arguments + */ + public function setArguments($arguments) { + //Dependency Injection is not possible, because the constructor will + //only get values that are serialized to JSON. I.e. whatever we would + //pass in app.php we do add here, except something else is passed e.g. + //in tests. + + if(isset($arguments['helper'])) { + $this->ldapHelper = $arguments['helper']; + } else { + $this->ldapHelper = new Helper(); + } + + if(isset($arguments['ocConfig'])) { + $this->ocConfig = $arguments['ocConfig']; + } else { + $this->ocConfig = \OC::$server->getConfig(); + } + + if(isset($arguments['userBackend'])) { + $this->userBackend = $arguments['userBackend']; + } else { + $this->userBackend = new User_Proxy( + $this->ldapHelper->getServerConfigurationPrefixes(true), + new LDAP(), + $this->ocConfig + ); + } + + if(isset($arguments['db'])) { + $this->db = $arguments['db']; + } else { + $this->db = \OC::$server->getDatabaseConnection(); + } + + if(isset($arguments['mapping'])) { + $this->mapping = $arguments['mapping']; + } else { + $this->mapping = new UserMapping($this->db); + } + + if(isset($arguments['deletedUsersIndex'])) { + $this->dui = $arguments['deletedUsersIndex']; + } else { + $this->dui = new DeletedUsersIndex( + $this->ocConfig, $this->db, $this->mapping); + } + } + + /** + * makes the background job do its work + * @param array $argument + */ + public function run($argument) { + $this->setArguments($argument); + + if(!$this->isCleanUpAllowed()) { + return; + } + $users = $this->mapping->getList($this->getOffset(), $this->limit); + if(!is_array($users)) { + //something wrong? Let's start from the beginning next time and + //abort + $this->setOffset(true); + return; + } + $resetOffset = $this->isOffsetResetNecessary(count($users)); + $this->checkUsers($users); + $this->setOffset($resetOffset); + } + + /** + * checks whether next run should start at 0 again + * @param int $resultCount + * @return bool + */ + public function isOffsetResetNecessary($resultCount) { + return ($resultCount < $this->limit) ? true : false; + } + + /** + * checks whether cleaning up LDAP users is allowed + * @return bool + */ + public function isCleanUpAllowed() { + try { + if($this->ldapHelper->haveDisabledConfigurations()) { + return false; + } + } catch (\Exception $e) { + return false; + } + + $enabled = $this->isCleanUpEnabled(); + + return $enabled; + } + + /** + * checks whether clean up is enabled by configuration + * @return bool + */ + private function isCleanUpEnabled() { + return (bool)$this->ocConfig->getSystemValue( + 'ldapUserCleanupInterval', strval($this->defaultIntervalMin)); + } + + /** + * checks users whether they are still existing + * @param array $users result from getMappedUsers() + */ + private function checkUsers(array $users) { + foreach($users as $user) { + $this->checkUser($user); + } + } + + /** + * checks whether a user is still existing in LDAP + * @param string[] $user + */ + private function checkUser(array $user) { + if($this->userBackend->userExistsOnLDAP($user['name'])) { + //still available, all good + + return; + } + + $this->dui->markUser($user['name']); + } + + /** + * gets the offset to fetch users from the mappings table + * @return int + */ + private function getOffset() { + return intval($this->ocConfig->getAppValue('user_ldap', 'cleanUpJobOffset', 0)); + } + + /** + * sets the new offset for the next run + * @param bool $reset whether the offset should be set to 0 + */ + public function setOffset($reset = false) { + $newOffset = $reset ? 0 : + $this->getOffset() + $this->limit; + $this->ocConfig->setAppValue('user_ldap', 'cleanUpJobOffset', $newOffset); + } + + /** + * returns the chunk size (limit in DB speak) + * @return int + */ + public function getChunkSize() { + return $this->limit; + } + +} diff --git a/apps/user_ldap/lib/mapping/abstractmapping.php b/apps/user_ldap/lib/mapping/abstractmapping.php index 2c45c6bb1c1..cb9db83f683 100644 --- a/apps/user_ldap/lib/mapping/abstractmapping.php +++ b/apps/user_ldap/lib/mapping/abstractmapping.php @@ -32,7 +32,7 @@ abstract class AbstractMapping { } /** - * checks whether a provided string represents an exisiting table col + * checks whether a provided string represents an existing table col * @param string $col * @return bool */ @@ -153,6 +153,27 @@ abstract class AbstractMapping { } /** + * gets a piece of the mapping list + * @param int $offset + * @param int $limit + * @return array + */ + public function getList($offset = null, $limit = null) { + $query = $this->dbc->prepare(' + SELECT + `ldap_dn` AS `dn`, + `owncloud_name` AS `name`, + `directory_uuid` AS `uuid` + FROM `' . $this->getTableName() . '`', + $limit, + $offset + ); + + $query->execute(); + return $query->fetchAll(); + } + + /** * attempts to map the given entry * @param string $fdn fully distinguished name (from LDAP) * @param string $name diff --git a/apps/user_ldap/lib/proxy.php b/apps/user_ldap/lib/proxy.php index 39d4b36c8bb..b4e6e33c1f4 100644 --- a/apps/user_ldap/lib/proxy.php +++ b/apps/user_ldap/lib/proxy.php @@ -49,16 +49,18 @@ abstract class Proxy { static $avatarM; static $userMap; static $groupMap; + static $db; if(is_null($fs)) { $ocConfig = \OC::$server->getConfig(); $fs = new FilesystemHelper(); $log = new LogWrapper(); $avatarM = \OC::$server->getAvatarManager(); - $userMap = new UserMapping(\OC::$server->getDatabaseConnection()); - $groupMap = new GroupMapping(\OC::$server->getDatabaseConnection()); + $db = \OC::$server->getDatabaseConnection(); + $userMap = new UserMapping($db); + $groupMap = new GroupMapping($db); } $userManager = - new user\Manager($ocConfig, $fs, $log, $avatarM, new \OCP\Image()); + new user\Manager($ocConfig, $fs, $log, $avatarM, new \OCP\Image(), $db); $connector = new Connection($this->ldap, $configPrefix); $access = new Access($connector, $this->ldap, $userManager); $access->setUserMapper($userMap); diff --git a/apps/user_ldap/lib/user/deletedusersindex.php b/apps/user_ldap/lib/user/deletedusersindex.php new file mode 100644 index 00000000000..e17ed3384da --- /dev/null +++ b/apps/user_ldap/lib/user/deletedusersindex.php @@ -0,0 +1,114 @@ +<?php + +/** + * ownCloud – LDAP Helper + * + * @author Arthur Schiwon + * @copyright 2014 Arthur Schiwon <blizzz@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\user_ldap\lib\user; + +use OCA\user_ldap\lib\user\OfflineUser; +use OCA\User_LDAP\Mapping\UserMapping; + +/** + * Class DeletedUsersIndex + * @package OCA\User_LDAP + */ +class DeletedUsersIndex { + /** + * @var \OCP\IConfig $config + */ + protected $config; + + /** + * @var \OCP\IDBConnection $db + */ + protected $db; + + /** + * @var \OCA\User_LDAP\Mapping\UserMapping $mapping + */ + protected $mapping; + + /** + * @var array $deletedUsers + */ + protected $deletedUsers; + + /** + * @param OCP\IConfig $config + * @param OCP\IDBConnection $db + * @param OCA\User_LDAP\Mapping\UserMapping $mapping + */ + public function __construct(\OCP\IConfig $config, \OCP\IDBConnection $db, UserMapping $mapping) { + $this->config = $config; + $this->db = $db; + $this->mapping = $mapping; + } + + /** + * reads LDAP users marked as deleted from the database + * @return OCA\user_ldap\lib\user\OfflineUser[] + */ + private function fetchDeletedUsers() { + $deletedUsers = $this->config->getUsersForUserValue( + 'user_ldap', 'isDeleted', '1'); + + $userObjects = array(); + foreach($deletedUsers as $user) { + $userObjects[] = new OfflineUser($user, $this->config, $this->db, $this->mapping); + } + $this->deletedUsers = $userObjects; + + return $this->deletedUsers; + } + + /** + * returns all LDAP users that are marked as deleted + * @return OCA\user_ldap\lib\user\OfflineUser[] + */ + public function getUsers() { + if(is_array($this->deletedUsers)) { + return $this->deletedUsers; + } + return $this->fetchDeletedUsers(); + } + + /** + * whether at least one user was detected as deleted + * @return bool + */ + public function hasUsers() { + if($this->deletedUsers === false) { + $this->fetchDeletedUsers(); + } + if(is_array($this->deletedUsers) && count($this->deletedUsers) > 0) { + return true; + } + return false; + } + + /** + * marks a user as deleted + * @param string ocName + */ + public function markUser($ocName) { + $this->config->setUserValue($ocName, 'user_ldap', 'isDeleted', '1'); + } +} diff --git a/apps/user_ldap/lib/user/iusertools.php b/apps/user_ldap/lib/user/iusertools.php index bbc678153de..fcb00d2f746 100644 --- a/apps/user_ldap/lib/user/iusertools.php +++ b/apps/user_ldap/lib/user/iusertools.php @@ -38,5 +38,4 @@ interface IUserTools { public function dn2username($dn, $ldapname = null); public function username2dn($name); - } diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php index 0ed3d09c48f..ec50e031281 100644 --- a/apps/user_ldap/lib/user/manager.php +++ b/apps/user_ldap/lib/user/manager.php @@ -27,6 +27,7 @@ use OCA\user_ldap\lib\user\IUserTools; use OCA\user_ldap\lib\user\User; use OCA\user_ldap\lib\LogWrapper; use OCA\user_ldap\lib\FilesystemHelper; +use OCA\user_ldap\lib\user\OfflineUser; /** * Manager @@ -35,32 +36,31 @@ use OCA\user_ldap\lib\FilesystemHelper; * cache */ class Manager { - /** - * @var IUserTools - */ + /** @var IUserTools */ protected $access; - /** - * @var \OCP\IConfig - */ + + /** @var \OCP\IConfig */ protected $ocConfig; - /** - * @var FilesystemHelper - */ + + /** @var \OCP\IDBConnection */ + protected $db; + + /** @var FilesystemHelper */ protected $ocFilesystem; - /** - * @var LogWrapper - */ + + /** @var LogWrapper */ protected $ocLog; - /** - * @var \OCP\Image - */ + + /** @var \OCP\Image */ protected $image; - /** - * @param \OCP\IAvatarManager - */ + + /** @param \OCP\IAvatarManager */ protected $avatarManager; + /** - * @var string[][] + * array['byDN'] \OCA\user_ldap\lib\User[] + * ['byUid'] \OCA\user_ldap\lib\User[] + * @var array $users */ protected $users = array( 'byDN' => array(), @@ -68,29 +68,25 @@ class Manager { ); /** - * @brief Constructor - * @param \OCP\IConfig respectively an instance that provides the methods - * setUserValue and getUserValue as implemented in \OCP\Config - * @param \OCA\user_ldap\lib\FilesystemHelper object that gives access to - * necessary functions from the OC filesystem - * @param \OCA\user_ldap\lib\LogWrapper - * @param \OCP\IAvatarManager - * @param \OCP\Image an empty image instance + * @param \OCP\IConfig $ocConfig + * @param \OCA\user_ldap\lib\FilesystemHelper $ocFilesystem object that + * gives access to necessary functions from the OC filesystem + * @param \OCA\user_ldap\lib\LogWrapper $ocLog + * @param \OCP\IAvatarManager $avatarManager + * @param \OCP\Image $image an empty image instance + * @param \OCP\IDBConnection $db * @throws Exception when the methods mentioned above do not exist */ public function __construct(\OCP\IConfig $ocConfig, FilesystemHelper $ocFilesystem, LogWrapper $ocLog, - \OCP\IAvatarManager $avatarManager, \OCP\Image $image) { + \OCP\IAvatarManager $avatarManager, \OCP\Image $image, \OCP\IDBConnection $db) { - if(!method_exists($ocConfig, 'setUserValue') - || !method_exists($ocConfig, 'getUserValue')) { - throw new \Exception('Invalid ownCloud User Config object'); - } $this->ocConfig = $ocConfig; $this->ocFilesystem = $ocFilesystem; $this->ocLog = $ocLog; $this->avatarManager = $avatarManager; $this->image = $image; + $this->db = $db; } /** @@ -131,9 +127,45 @@ class Manager { } /** + * Checks whether the specified user is marked as deleted + * @param string $id the ownCloud user name + * @return bool + */ + public function isDeletedUser($id) { + $isDeleted = $this->ocConfig->getUserValue( + $id, 'user_ldap', 'isDeleted', 0); + return intval($isDeleted) === 1; + } + + /** + * creates and returns an instance of OfflineUser for the specified user + * @param string $id + * @return \OCA\user_ldap\lib\user\OfflineUser + */ + public function getDeletedUser($id) { + return new OfflineUser( + $id, + $this->ocConfig, + $this->db, + $this->access->getUserMapper()); + } + + protected function createInstancyByUserName($id) { + //most likely a uid. Check whether it is a deleted user + if($this->isDeletedUser($id)) { + return $this->getDeletedUser($id); + } + $dn = $this->access->username2dn($id); + if($dn !== false) { + return $this->createAndCache($dn, $id); + } + throw new \Exception('Could not create User instance'); + } + + /** * @brief returns a User object by it's DN or ownCloud username * @param string the DN or username of the user - * @return \OCA\user_ldap\lib\User | null + * @return \OCA\user_ldap\lib\user\User|\OCA\user_ldap\lib\user\OfflineUser|null */ public function get($id) { $this->checkAccess(); @@ -143,25 +175,19 @@ class Manager { return $this->users['byUid'][$id]; } - if(!$this->access->stringResemblesDN($id) ) { - //most likely a uid - $dn = $this->access->username2dn($id); - if($dn !== false) { - return $this->createAndCache($dn, $id); - } - } else { - //so it's a DN + if($this->access->stringResemblesDN($id) ) { $uid = $this->access->dn2username($id); if($uid !== false) { return $this->createAndCache($id, $uid); } } - //either funny uid or invalid. Assume funny to be on the safe side. - $dn = $this->access->username2dn($id); - if($dn !== false) { - return $this->createAndCache($dn, $id); + + try { + $user = $this->createInstancyByUserName($id); + return $user; + } catch (\Exception $e) { + return null; } - return null; } } diff --git a/apps/user_ldap/lib/user/offlineuser.php b/apps/user_ldap/lib/user/offlineuser.php new file mode 100644 index 00000000000..1833f4be968 --- /dev/null +++ b/apps/user_ldap/lib/user/offlineuser.php @@ -0,0 +1,223 @@ +<?php + +/** + * ownCloud – LDAP User + * + * @author Arthur Schiwon + * @copyright 2014 Arthur Schiwon blizzz@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\user_ldap\lib\user; + +use OCA\User_LDAP\Mapping\UserMapping; + +class OfflineUser { + /** + * @var string $ocName + */ + protected $ocName; + /** + * @var string $dn + */ + protected $dn; + /** + * @var string $uid the UID as provided by LDAP + */ + protected $uid; + /** + * @var string $displayName + */ + protected $displayName; + /** + * @var string $homePath + */ + protected $homePath; + /** + * @var string $lastLogin the timestamp of the last login + */ + protected $lastLogin; + /** + * @var string $email + */ + protected $email; + /** + * @var bool $hasActiveShares + */ + protected $hasActiveShares; + /** + * @var \OCP\IConfig $config + */ + protected $config; + /** + * @var \OCP\IDBConnection $db + */ + protected $db; + /** + * @var \OCA\User_LDAP\Mapping\UserMapping + */ + protected $mapping; + + /** + * @param string $ocName + * @param OCP\IConfig $config + * @param OCP\IDBConnection $db + * @param OCA\User_LDAP\Mapping\UserMapping $mapping + */ + public function __construct($ocName, \OCP\IConfig $config, \OCP\IDBConnection $db, UserMapping $mapping) { + $this->ocName = $ocName; + $this->config = $config; + $this->db = $db; + $this->mapping = $mapping; + $this->fetchDetails(); + } + + /** + * exports the user details in an assoc array + * @return array + */ + public function export() { + $data = array(); + $data['ocName'] = $this->getOCName(); + $data['dn'] = $this->getDN(); + $data['uid'] = $this->getUID(); + $data['displayName'] = $this->getDisplayName(); + $data['homePath'] = $this->getHomePath(); + $data['lastLogin'] = $this->getLastLogin(); + $data['email'] = $this->getEmail(); + $data['hasActiveShares'] = $this->getHasActiveShares(); + + return $data; + } + + /** + * getter for ownCloud internal name + * @return string + */ + public function getOCName() { + return $this->ocName; + } + + /** + * getter for LDAP uid + * @return string + */ + public function getUID() { + return $this->uid; + } + + /** + * getter for LDAP DN + * @return string + */ + public function getDN() { + return $this->dn; + } + + /** + * getter for display name + * @return string + */ + public function getDisplayName() { + return $this->displayName; + } + + /** + * getter for email + * @return string + */ + public function getEmail() { + return $this->email; + } + + /** + * getter for home directory path + * @return string + */ + public function getHomePath() { + return $this->homePath; + } + + /** + * getter for the last login timestamp + * @return int + */ + public function getLastLogin() { + return intval($this->lastLogin); + } + + /** + * getter for having active shares + * @return bool + */ + public function getHasActiveShares() { + return $this->hasActiveShares; + } + + /** + * reads the user details + */ + protected function fetchDetails() { + $properties = array ( + 'displayName' => 'user_ldap', + 'uid' => 'user_ldap', + 'homePath' => 'user_ldap', + 'email' => 'settings', + 'lastLogin' => 'login' + ); + foreach($properties as $property => $app) { + $this->$property = $this->config->getUserValue($this->ocName, $app, $property, ''); + } + + $dn = $this->mapping->getDNByName($this->ocName); + $this->dn = ($dn !== false) ? $dn : ''; + + $this->determineShares(); + } + + + /** + * finds out whether the user has active shares. The result is stored in + * $this->hasActiveShares + */ + protected function determineShares() { + $query = $this->db->prepare(' + SELECT COUNT(`uid_owner`) + FROM `*PREFIX*share` + WHERE `uid_owner` = ? + ', 1); + $query->execute(array($this->ocName)); + $sResult = $query->fetchColumn(0); + if(intval($sResult) === 1) { + $this->hasActiveShares = true; + return; + } + + $query = $this->db->prepare(' + SELECT COUNT(`owner`) + FROM `*PREFIX*share_external` + WHERE `owner` = ? + ', 1); + $query->execute(array($this->ocName)); + $sResult = $query->fetchColumn(0); + if(intval($sResult) === 1) { + $this->hasActiveShares = true; + return; + } + + $this->hasActiveShares = false; + } +} diff --git a/apps/user_ldap/lib/user/user.php b/apps/user_ldap/lib/user/user.php index d4d2294307d..7f67ebca39b 100644 --- a/apps/user_ldap/lib/user/user.php +++ b/apps/user_ldap/lib/user/user.php @@ -92,7 +92,7 @@ class User { * @param string the LDAP DN * @param IUserTools $access an instance that implements IUserTools for * LDAP interaction - * @param \OCP\Config + * @param \OCP\IConfig * @param FilesystemHelper * @param \OCP\Image any empty instance * @param LogWrapper @@ -213,6 +213,31 @@ class User { } /** + * Stores a key-value pair in relation to this user + * @param string $key + * @param string $value + */ + private function store($key, $value) { + $this->config->setUserValue($this->uid, 'user_ldap', $key, $value); + } + + /** + * Stores the display name in the databae + * @param string $displayName + */ + public function storeDisplayName($displayName) { + $this->store('displayName', $displayName); + } + + /** + * Stores the LDAP Username in the Database + * @param string $userName + */ + public function storeLDAPUserName($userName) { + $this->store('uid', $userName); + } + + /** * @brief checks whether an update method specified by feature was run * already. If not, it will marked like this, because it is expected that * the method will be run, when false is returned. diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php index 578a920f00e..2e4507a2585 100644 --- a/apps/user_ldap/lib/wizard.php +++ b/apps/user_ldap/lib/wizard.php @@ -659,7 +659,8 @@ class Wizard extends LDAPUtility { //this did not help :( //Let's see whether we can parse the Host URL and convert the domain to //a base DN - $domain = Helper::getDomainFromURL($this->configuration->ldapHost); + $helper = new Helper(); + $domain = $helper->getDomainFromURL($this->configuration->ldapHost); if(!$domain) { return false; } diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index 5527cf2c6da..a19ec0bda6f 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -35,8 +35,9 @@ OCP\Util::addStyle('user_ldap', 'settings'); // fill template $tmpl = new OCP\Template('user_ldap', 'settings'); -$prefixes = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(); -$hosts = \OCA\user_ldap\lib\Helper::getServerConfigurationHosts(); +$helper = new \OCA\user_ldap\lib\Helper(); +$prefixes = $helper->getServerConfigurationPrefixes(); +$hosts = $helper->getServerConfigurationHosts(); $wizardHtml = ''; $toc = array(); diff --git a/apps/user_ldap/tests/access.php b/apps/user_ldap/tests/access.php index 85849229152..5c502f288eb 100644 --- a/apps/user_ldap/tests/access.php +++ b/apps/user_ldap/tests/access.php @@ -47,7 +47,8 @@ class Test_Access extends \Test\TestCase { $this->getMock('\OCA\user_ldap\lib\FilesystemHelper'), $this->getMock('\OCA\user_ldap\lib\LogWrapper'), $this->getMock('\OCP\IAvatarManager'), - $this->getMock('\OCP\Image'))); + $this->getMock('\OCP\Image'), + $this->getMock('\OCP\IDBConnection'))); return array($lw, $connector, $um); } diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index 0e01eb3ba6f..efd7f803f3b 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -45,7 +45,8 @@ class Test_Group_Ldap extends \Test\TestCase { $this->getMock('\OCA\user_ldap\lib\FilesystemHelper'), $this->getMock('\OCA\user_ldap\lib\LogWrapper'), $this->getMock('\OCP\IAvatarManager'), - $this->getMock('\OCP\Image') + $this->getMock('\OCP\Image'), + $this->getMock('\OCP\IDBConnection') ); $access = $this->getMock('\OCA\user_ldap\lib\Access', $accMethods, diff --git a/apps/user_ldap/tests/jobs/cleanup.php b/apps/user_ldap/tests/jobs/cleanup.php new file mode 100644 index 00000000000..78bda66c54f --- /dev/null +++ b/apps/user_ldap/tests/jobs/cleanup.php @@ -0,0 +1,135 @@ +<?php +/** + * Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\user_ldap\tests; + +class Test_CleanUp extends \PHPUnit_Framework_TestCase { + public function getMocks() { + $mocks = array(); + $mocks['userBackend'] = + $this->getMockBuilder('\OCA\user_ldap\User_Proxy') + ->disableOriginalConstructor() + ->getMock(); + $mocks['deletedUsersIndex'] = + $this->getMockBuilder('\OCA\user_ldap\lib\user\deletedUsersIndex') + ->disableOriginalConstructor() + ->getMock(); + $mocks['ocConfig'] = $this->getMock('\OCP\IConfig'); + $mocks['db'] = $this->getMock('\OCP\IDBConnection'); + $mocks['helper'] = $this->getMock('\OCA\user_ldap\lib\Helper'); + + return $mocks; + } + + /** + * clean up job must not run when there are disabled configurations + */ + public function test_runNotAllowedByDisabledConfigurations() { + $args = $this->getMocks(); + $args['helper']->expects($this->once()) + ->method('haveDisabledConfigurations') + ->will($this->returnValue(true) ); + + $args['ocConfig']->expects($this->never()) + ->method('getSystemValue'); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isCleanUpAllowed(); + $this->assertSame(false, $result); + } + + /** + * clean up job must not run when LDAP Helper is broken i.e. + * returning unexpected results + */ + public function test_runNotAllowedByBrokenHelper() { + $args = $this->getMocks(); + $args['helper']->expects($this->once()) + ->method('haveDisabledConfigurations') + ->will($this->throwException(new \Exception())); + + $args['ocConfig']->expects($this->never()) + ->method('getSystemValue'); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isCleanUpAllowed(); + $this->assertSame(false, $result); + } + + /** + * clean up job must not run when it is not enabled + */ + public function test_runNotAllowedBySysConfig() { + $args = $this->getMocks(); + $args['helper']->expects($this->once()) + ->method('haveDisabledConfigurations') + ->will($this->returnValue(false)); + + $args['ocConfig']->expects($this->once()) + ->method('getSystemValue') + ->will($this->returnValue(false)); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isCleanUpAllowed(); + $this->assertSame(false, $result); + } + + /** + * clean up job is allowed to run + */ + public function test_runIsAllowed() { + $args = $this->getMocks(); + $args['helper']->expects($this->once()) + ->method('haveDisabledConfigurations') + ->will($this->returnValue(false)); + + $args['ocConfig']->expects($this->once()) + ->method('getSystemValue') + ->will($this->returnValue(true)); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isCleanUpAllowed(); + $this->assertSame(true, $result); + } + + /** + * check whether offset will be reset when it needs to + */ + public function test_OffsetResetIsNecessary() { + $args = $this->getMocks(); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isOffsetResetNecessary($bgJob->getChunkSize() - 1); + $this->assertSame(true, $result); + } + + /** + * make sure offset is not reset when it is not due + */ + public function test_OffsetResetIsNotNecessary() { + $args = $this->getMocks(); + + $bgJob = new \OCA\User_LDAP\Jobs\CleanUp(); + $bgJob->setArguments($args); + + $result = $bgJob->isOffsetResetNecessary($bgJob->getChunkSize()); + $this->assertSame(false, $result); + } + +} + diff --git a/apps/user_ldap/tests/mapping/abstractmappingtest.php b/apps/user_ldap/tests/mapping/abstractmappingtest.php index a5cb62253af..cafa36a4edb 100644 --- a/apps/user_ldap/tests/mapping/abstractmappingtest.php +++ b/apps/user_ldap/tests/mapping/abstractmappingtest.php @@ -191,4 +191,28 @@ abstract class AbstractMappingTest extends \Test\TestCase { $this->assertFalse($name); } } + + /** + * tests getList() method + */ + public function testList() { + list($mapper, $data) = $this->initTest(); + + // get all entries without specifying offset or limit + $results = $mapper->getList(); + $this->assertSame(3, count($results)); + + // get all-1 entries by specifying offset, and an high limit + // specifying only offset without limit will not work by underlying lib + $results = $mapper->getList(1, 999); + $this->assertSame(count($data) - 1, count($results)); + + // get first 2 entries by limit, but not offset + $results = $mapper->getList(null, 2); + $this->assertSame(2, count($results)); + + // get 2nd entry by specifying both offset and limit + $results = $mapper->getList(1, 1); + $this->assertSame(1, count($results)); + } } diff --git a/apps/user_ldap/tests/user/manager.php b/apps/user_ldap/tests/user/manager.php index b3e52084dba..4ce504365b8 100644 --- a/apps/user_ldap/tests/user/manager.php +++ b/apps/user_ldap/tests/user/manager.php @@ -33,12 +33,13 @@ class Test_User_Manager extends \Test\TestCase { $log = $this->getMock('\OCA\user_ldap\lib\LogWrapper'); $avaMgr = $this->getMock('\OCP\IAvatarManager'); $image = $this->getMock('\OCP\Image'); + $dbc = $this->getMock('\OCP\IDBConnection'); - return array($access, $config, $filesys, $image, $log, $avaMgr); + return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc); } public function testGetByDNExisting() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $inputDN = 'cn=foo,dc=foobar,dc=bar'; @@ -57,7 +58,7 @@ class Test_User_Manager extends \Test\TestCase { $access->expects($this->never()) ->method('username2dn'); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($inputDN); @@ -65,7 +66,7 @@ class Test_User_Manager extends \Test\TestCase { } public function testGetByEDirectoryDN() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $inputDN = 'uid=foo,o=foobar,c=bar'; @@ -84,7 +85,7 @@ class Test_User_Manager extends \Test\TestCase { $access->expects($this->never()) ->method('username2dn'); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($inputDN); @@ -92,7 +93,7 @@ class Test_User_Manager extends \Test\TestCase { } public function testGetByExoticDN() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $inputDN = 'ab=cde,f=ghei,mno=pq'; @@ -111,7 +112,7 @@ class Test_User_Manager extends \Test\TestCase { $access->expects($this->never()) ->method('username2dn'); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($inputDN); @@ -119,7 +120,7 @@ class Test_User_Manager extends \Test\TestCase { } public function testGetByDNNotExisting() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $inputDN = 'cn=gone,dc=foobar,dc=bar'; @@ -139,7 +140,7 @@ class Test_User_Manager extends \Test\TestCase { ->with($this->equalTo($inputDN)) ->will($this->returnValue(false)); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($inputDN); @@ -147,7 +148,7 @@ class Test_User_Manager extends \Test\TestCase { } public function testGetByUidExisting() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $dn = 'cn=foo,dc=foobar,dc=bar'; @@ -166,7 +167,7 @@ class Test_User_Manager extends \Test\TestCase { ->with($this->equalTo($uid)) ->will($this->returnValue(false)); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($uid); @@ -174,7 +175,7 @@ class Test_User_Manager extends \Test\TestCase { } public function testGetByUidNotExisting() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); $dn = 'cn=foo,dc=foobar,dc=bar'; @@ -183,12 +184,12 @@ class Test_User_Manager extends \Test\TestCase { $access->expects($this->never()) ->method('dn2username'); - $access->expects($this->exactly(2)) + $access->expects($this->exactly(1)) ->method('username2dn') ->with($this->equalTo($uid)) ->will($this->returnValue(false)); - $manager = new Manager($config, $filesys, $log, $avaMgr, $image); + $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager->setLdapAccess($access); $user = $manager->get($uid); diff --git a/apps/user_ldap/tests/user/user.php b/apps/user_ldap/tests/user/user.php index e110921d2d3..5282a9f8b6e 100644 --- a/apps/user_ldap/tests/user/user.php +++ b/apps/user_ldap/tests/user/user.php @@ -33,11 +33,12 @@ class Test_User_User extends \Test\TestCase { $log = $this->getMock('\OCA\user_ldap\lib\LogWrapper'); $avaMgr = $this->getMock('\OCP\IAvatarManager'); $image = $this->getMock('\OCP\Image'); + $dbc = $this->getMock('\OCP\IDBConnection'); - return array($access, $config, $filesys, $image, $log, $avaMgr); + return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc); } - private function getAdvancedMocks($cfMock, $fsMock, $logMock, $avaMgr) { + private function getAdvancedMocks($cfMock, $fsMock, $logMock, $avaMgr, $dbc) { static $conMethods; static $accMethods; static $umMethods; @@ -52,7 +53,7 @@ class Test_User_User extends \Test\TestCase { $lw = $this->getMock('\OCA\user_ldap\lib\ILDAPWrapper'); $im = $this->getMock('\OCP\Image'); $um = $this->getMock('\OCA\user_ldap\lib\user\Manager', - $umMethods, array($cfMock, $fsMock, $logMock, $avaMgr, $im)); + $umMethods, array($cfMock, $fsMock, $logMock, $avaMgr, $im, $dbc)); $connector = $this->getMock('\OCA\user_ldap\lib\Connection', $conMethods, array($lw, null, null)); $access = $this->getMock('\OCA\user_ldap\lib\Access', @@ -76,11 +77,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateEmailProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->once()) ->method('__get') @@ -110,11 +111,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateEmailNotProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->once()) ->method('__get') @@ -140,11 +141,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateEmailNotConfigured() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->once()) ->method('__get') @@ -167,11 +168,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateQuotaAllProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->at(0)) ->method('__get') @@ -210,11 +211,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateQuotaDefaultProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->at(0)) ->method('__get') @@ -253,11 +254,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateQuotaIndividualProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->at(0)) ->method('__get') @@ -296,11 +297,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateQuotaNoneProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->at(0)) ->method('__get') @@ -334,11 +335,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateQuotaNoneConfigured() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $connection->expects($this->at(0)) ->method('__get') @@ -370,11 +371,11 @@ class Test_User_User extends \Test\TestCase { //the testUpdateAvatar series also implicitely tests getAvatarImage public function testUpdateAvatarJpegPhotoProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $access->expects($this->once()) ->method('readAttribute') @@ -419,11 +420,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateAvatarThumbnailPhotoProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $access->expects($this->at(0)) ->method('readAttribute') @@ -477,11 +478,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateAvatarNotProvided() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $access->expects($this->at(0)) ->method('readAttribute') @@ -523,11 +524,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateBeforeFirstLogin() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $config->expects($this->at(0)) ->method('getUserValue') @@ -559,11 +560,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateAfterFirstLogin() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $config->expects($this->at(0)) ->method('getUserValue') @@ -599,11 +600,11 @@ class Test_User_User extends \Test\TestCase { } public function testUpdateNoRefresh() { - list($access, $config, $filesys, $image, $log, $avaMgr) = + list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) = $this->getTestInstances(); list($access, $connection) = - $this->getAdvancedMocks($config, $filesys, $log, $avaMgr); + $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc); $config->expects($this->at(0)) ->method('getUserValue') diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php index 33cec0247b6..3fa4f2bf0a1 100644 --- a/apps/user_ldap/tests/user_ldap.php +++ b/apps/user_ldap/tests/user_ldap.php @@ -62,7 +62,8 @@ class Test_User_Ldap_Direct extends \Test\TestCase { $this->getMock('\OCA\user_ldap\lib\FilesystemHelper'), $this->getMock('\OCA\user_ldap\lib\LogWrapper'), $this->getMock('\OCP\IAvatarManager'), - $this->getMock('\OCP\Image') + $this->getMock('\OCP\Image'), + $this->getMock('\OCP\IDBConnection') ); $access = $this->getMock('\OCA\user_ldap\lib\Access', @@ -123,7 +124,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { ->method('fetchListOfUsers') ->will($this->returnCallback(function($filter) { if($filter === 'roland') { - return array('dnOfRoland,dc=test'); + return array(array('dn' => 'dnOfRoland,dc=test')); } return array(); })); @@ -156,7 +157,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -167,7 +168,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'wrong'); @@ -178,7 +179,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = $backend->checkPassword('mallory', 'evil'); @@ -193,7 +194,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { ->method('username2dn') ->will($this->returnValue(false)); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -203,7 +204,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testCheckPasswordPublicAPI() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'dt19'); @@ -213,7 +214,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testCheckPasswordPublicAPIWrongPassword() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'wrong'); @@ -223,13 +224,43 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testCheckPasswordPublicAPIWrongUser() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('mallory', 'evil'); $this->assertFalse($result); } + public function testDeleteUserCancel() { + $access = $this->getAccessMock(); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); + $result = $backend->deleteUser('notme'); + $this->assertFalse($result); + } + + public function testDeleteUserSuccess() { + $access = $this->getAccessMock(); + $mapping = $this->getMockBuilder('\OCA\User_LDAP\Mapping\UserMapping') + ->disableOriginalConstructor() + ->getMock(); + $mapping->expects($this->once()) + ->method('unmap') + ->will($this->returnValue(true)); + $access->expects($this->once()) + ->method('getUserMapper') + ->will($this->returnValue($mapping)); + + $config = $this->getMock('\OCP\IConfig'); + $config->expects($this->exactly(2)) + ->method('getUserValue') + ->will($this->returnValue(1)); + + $backend = new UserLDAP($access, $config); + + $result = $backend->deleteUser('jeremy'); + $this->assertTrue($result); + } + /** * Prepares the Access mock for getUsers tests * @param \OCA\user_ldap\lib\Access $access mock @@ -282,7 +313,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersNoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->getUsers(); $this->assertEquals(3, count($result)); @@ -291,7 +322,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersLimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->getUsers('', 1, 2); $this->assertEquals(1, count($result)); @@ -300,7 +331,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersLimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->getUsers('', 2, 1); $this->assertEquals(2, count($result)); @@ -309,7 +340,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersSearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->getUsers('yo'); $this->assertEquals(2, count($result)); @@ -318,7 +349,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersSearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->getUsers('nix'); $this->assertEquals(0, count($result)); @@ -327,7 +358,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersViaAPINoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::getUsers(); @@ -337,7 +368,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersViaAPILimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 1, 2); @@ -347,7 +378,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersViaAPILimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 2, 1); @@ -357,7 +388,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersViaAPISearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('yo'); @@ -367,7 +398,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetUsersViaAPISearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('nix'); @@ -376,7 +407,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testUserExists() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -403,7 +434,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testUserExistsPublicAPI() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -431,7 +462,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testDeleteUser() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); //we do not support deleting users at all $result = $backend->deleteUser('gunslinger'); @@ -440,7 +471,8 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetHome() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access); + $config = $this->getMock('\OCP\IConfig'); + $backend = new UserLDAP($access, $config); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -473,14 +505,17 @@ class Test_User_Ldap_Direct extends \Test\TestCase { } })); + $datadir = '/my/data/dir'; + $config->expects($this->once()) + ->method('getSystemValue') + ->will($this->returnValue($datadir)); + //absolut path $result = $backend->getHome('gunslinger'); $this->assertEquals('/tmp/rolandshome/', $result); //datadir-relativ path $result = $backend->getHome('ladyofshadows'); - $datadir = \OCP\Config::getSystemValue('datadirectory', - \OC::$SERVERROOT.'/data'); $this->assertEquals($datadir.'/susannah/', $result); //no path at all – triggers OC default behaviour @@ -518,7 +553,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetDisplayName() { $access = $this->getAccessMock(); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $this->prepareMockForUserExists($access); //with displayName @@ -533,7 +568,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { public function testGetDisplayNamePublicAPI() { $access = $this->getAccessMock(); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -556,7 +591,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { ->method('countUsers') ->will($this->returnValue(5)); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->countUsers(); $this->assertEquals(5, $result); @@ -569,7 +604,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase { ->method('countUsers') ->will($this->returnValue(false)); - $backend = new UserLDAP($access); + $backend = new UserLDAP($access, $this->getMock('\OCP\IConfig')); $result = $backend->countUsers(); $this->assertFalse($result); diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 482715b3686..051e760105b 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -26,8 +26,27 @@ namespace OCA\user_ldap; use OCA\user_ldap\lib\BackendUtility; +use OCA\user_ldap\lib\Access; +use OCA\user_ldap\lib\user\OfflineUser; +use OCA\User_LDAP\lib\User\User; +use OCP\IConfig; class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserInterface { + /** @var string[] $homesToKill */ + protected $homesToKill = array(); + + /** @var \OCP\IConfig */ + protected $ocConfig; + + /** + * @param \OCA\user_ldap\lib\Access $access + * @param \OCP\IConfig $ocConfig + */ + public function __construct(Access $access, IConfig $ocConfig) { + parent::__construct($access); + $this->ocConfig = $ocConfig; + } + /** * checks whether the user is allowed to change his avatar in ownCloud * @param string $uid the ownCloud user name @@ -35,7 +54,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn */ public function canChangeAvatar($uid) { $user = $this->access->userManager->get($uid); - if(is_null($user)) { + if(!$user instanceof User) { return false; } if($user->getAvatarImage() === false) { @@ -49,7 +68,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * Check if the password is correct * @param string $uid The username * @param string $password The password - * @return boolean + * @return false|string * * Check if the password is correct without logging in the user */ @@ -57,15 +76,17 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn $uid = $this->access->escapeFilterPart($uid); //find out dn of the user name + $attrs = array($this->access->connection->ldapUserDisplayName, 'dn', + 'uid', 'samaccountname'); $filter = \OCP\Util::mb_str_replace( '%uid', $uid, $this->access->connection->ldapLoginFilter, 'UTF-8'); - $ldap_users = $this->access->fetchListOfUsers($filter, 'dn'); - if(count($ldap_users) < 1) { + $users = $this->access->fetchListOfUsers($filter, $attrs); + if(count($users) < 1) { return false; } - $dn = $ldap_users[0]; + $dn = $users[0]['dn']; $user = $this->access->userManager->get($dn); - if(is_null($user)) { + if(!$user instanceof User) { \OCP\Util::writeLog('user_ldap', 'LDAP Login: Could not get user object for DN ' . $dn . '. Maybe the LDAP entry has no set display name attribute?', @@ -79,6 +100,15 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn } $user->markLogin(); + if(isset($users[0][$this->access->connection->ldapUserDisplayName])) { + $dpn = $users[0][$this->access->connection->ldapUserDisplayName]; + $user->storeDisplayName($dpn); + } + if(isset($users[0]['uid'])) { + $user->storeLDAPUserName($users[0]['uid']); + } else if(isset($users[0]['samaccountname'])) { + $user->storeLDAPUserName($users[0]['samaccountname']); + } return $user->getUsername(); } @@ -128,6 +158,33 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn } /** + * checks whether a user is still available on LDAP + * @param string|\OCA\User_LDAP\lib\user\User $user either the ownCloud user + * name or an instance of that user + * @return bool + */ + public function userExistsOnLDAP($user) { + if(is_string($user)) { + $user = $this->access->userManager->get($user); + } + if(!$user instanceof User) { + return false; + } + + $dn = $user->getDN(); + //check if user really still exists by reading its entry + if(!is_array($this->access->readAttribute($dn, ''))) { + $lcr = $this->access->connection->getConnectionResource(); + if(is_null($lcr)) { + throw new \Exception('No LDAP Connection to server ' . $this->access->connection->ldapHost); + } + return false; + } + + return true; + } + + /** * check if a user exists * @param string $uid the username * @return boolean @@ -143,36 +200,55 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn $this->access->connection->ldapHost, \OCP\Util::DEBUG); $this->access->connection->writeToCache('userExists'.$uid, false); return false; + } else if($user instanceof OfflineUser) { + //express check for users marked as deleted. Returning true is + //necessary for cleanup + return true; } - $dn = $user->getDN(); - //check if user really still exists by reading its entry - if(!is_array($this->access->readAttribute($dn, ''))) { - \OCP\Util::writeLog('user_ldap', 'LDAP says no user '.$dn.' on '. - $this->access->connection->ldapHost, \OCP\Util::DEBUG); - $this->access->connection->writeToCache('userExists'.$uid, false); + + try { + $result = $this->userExistsOnLDAP($user); + $this->access->connection->writeToCache('userExists'.$uid, $result); + if($result === true) { + $user->update(); + } + return $result; + } catch (\Exception $e) { + \OCP\Util::writeLog('user_ldap', $e->getMessage(), \OCP\Util::WARN); return false; } - - $this->access->connection->writeToCache('userExists'.$uid, true); - $user->update(); - return true; } /** - * delete a user + * returns whether a user was deleted in LDAP + * * @param string $uid The username of the user to delete * @return bool - * - * Deletes a user */ public function deleteUser($uid) { - return false; + $marked = $this->ocConfig->getUserValue($uid, 'user_ldap', 'isDeleted', 0); + if(intval($marked) === 0) { + \OC::$server->getLogger()->notice( + 'User '.$uid . ' is not marked as deleted, not cleaning up.', + array('app' => 'user_ldap')); + return false; + } + \OC::$server->getLogger()->info('Cleaning up after user ' . $uid, + array('app' => 'user_ldap')); + + //Get Home Directory out of user preferences so we can return it later, + //necessary for removing directories as done by OC_User. + $home = $this->ocConfig->getUserValue($uid, 'user_ldap', 'homePath', ''); + $this->homesToKill[$uid] = $home; + $this->access->getUserMapper()->unmap($uid); + + return true; } /** * get the user's home directory * @param string $uid the username - * @return boolean + * @return string|bool */ public function getHome($uid) { // user Exists check required as it is not done in user proxy! @@ -180,6 +256,11 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn return false; } + if(isset($this->homesToKill[$uid]) && !empty($this->homesToKill[$uid])) { + //a deleted user who needs some clean up + return $this->homesToKill[$uid]; + } + $cacheKey = 'getHome'.$uid; if($this->access->connection->isCached($cacheKey)) { return $this->access->connection->getFromCache($cacheKey); @@ -199,16 +280,23 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn ) { $homedir = $path; } else { - $homedir = \OC::$server->getConfig()->getSystemValue('datadirectory', + $homedir = $this->ocConfig->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data' ) . '/' . $homedir[0]; } $this->access->connection->writeToCache($cacheKey, $homedir); + //we need it to store it in the DB as well in case a user gets + //deleted so we can clean up afterwards + $this->ocConfig->setUserValue( + $uid, 'user_ldap', 'homePath', $homedir + ); + //TODO: if home directory changes, the old one needs to be removed. return $homedir; } } //false will apply default behaviour as defined and done by OC_User $this->access->connection->writeToCache($cacheKey, false); + $this->ocConfig->setUserValue($uid, 'user_ldap', 'homePath', ''); return false; } diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php index 6414a048071..f5912fe1355 100644 --- a/apps/user_ldap/user_proxy.php +++ b/apps/user_ldap/user_proxy.php @@ -24,6 +24,9 @@ namespace OCA\user_ldap; use OCA\user_ldap\lib\ILDAPWrapper; +use OCA\User_LDAP\lib\User\User; +use \OCA\user_ldap\User_LDAP; +use OCP\IConfig; class User_Proxy extends lib\Proxy implements \OCP\IUserBackend, \OCP\UserInterface { private $backends = array(); @@ -33,11 +36,11 @@ class User_Proxy extends lib\Proxy implements \OCP\IUserBackend, \OCP\UserInterf * Constructor * @param array $serverConfigPrefixes array containing the config Prefixes */ - public function __construct($serverConfigPrefixes, ILDAPWrapper $ldap) { + public function __construct(array $serverConfigPrefixes, ILDAPWrapper $ldap, IConfig $ocConfig) { parent::__construct($ldap); foreach($serverConfigPrefixes as $configPrefix) { $this->backends[$configPrefix] = - new \OCA\user_ldap\USER_LDAP($this->getAccess($configPrefix)); + new User_LDAP($this->getAccess($configPrefix), $ocConfig); if(is_null($this->refBackend)) { $this->refBackend = &$this->backends[$configPrefix]; } @@ -153,6 +156,17 @@ class User_Proxy extends lib\Proxy implements \OCP\IUserBackend, \OCP\UserInterf } /** + * check if a user exists on LDAP + * @param string|OCA\User_LDAP\lib\User\User $user either the ownCloud user + * name or an instance of that user + * @return boolean + */ + public function userExistsOnLDAP($user) { + $id = ($user instanceof User) ? $user->getUsername() : $user; + return $this->handleRequest($id, 'userExistsOnLDAP', array($user)); + } + + /** * Check if the password is correct * @param string $uid The username * @param string $password The password @@ -217,7 +231,7 @@ class User_Proxy extends lib\Proxy implements \OCP\IUserBackend, \OCP\UserInterf * Deletes a user */ public function deleteUser($uid) { - return false; + return $this->handleRequest($uid, 'deleteUser', array($uid)); } /** diff --git a/config/config.sample.php b/config/config.sample.php index 91428bdc3e4..d0d735ed537 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -80,7 +80,7 @@ $CONFIG = array( /** * Where user files are stored; this defaults to ``data/`` in the ownCloud - * directory. The SQLite database is also stored here, when you use SQLite. (SQLite is + * directory. The SQLite database is also stored here, when you use SQLite. (SQLite is * available only in ownCloud Community Edition) */ 'datadirectory' => '/var/www/owncloud/data', @@ -665,6 +665,20 @@ $CONFIG = array( 'OC\Preview\MarkDown' ), +/** + * LDAP + * + * Global settings used by LDAP User and Group Backend + */ + +/** + * defines the interval in minutes for the background job that checks user + * existance and marks them as ready to be cleaned up. The number is always + * minutes. Setting it to 0 disables the feature. + * See command line (occ) methods ldap:show-remnants and user:delete + */ +'ldapUserCleanupInterval' => 51, + /** * Maintenance diff --git a/core/ajax/preview.php b/core/ajax/preview.php index 03dfb483062..f7e24e0ec28 100644 --- a/core/ajax/preview.php +++ b/core/ajax/preview.php @@ -29,21 +29,17 @@ if ($maxX === 0 || $maxY === 0) { exit; } -try { - $preview = new \OC\Preview(\OC_User::getUser(), 'files'); - $info = \OC\Files\Filesystem::getFileInfo($file); - if (!$always and !$preview->isAvailable($info)) { - \OC_Response::setStatus(404); - } else { - $preview->setFile($file); - $preview->setMaxX($maxX); - $preview->setMaxY($maxY); - $preview->setScalingUp($scalingUp); - $preview->setKeepAspect($keepAspect); - $preview->showPreview(); - } +$preview = new \OC\Preview(\OC_User::getUser(), 'files'); -} catch (\Exception $e) { - \OC_Response::setStatus(500); - \OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG); +$info = \OC\Files\Filesystem::getFileInfo($file); + +if (!$info instanceof OCP\Files\FileInfo || !$always && !$preview->isAvailable($info)) { + \OC_Response::setStatus(404); +} else { + $preview->setFile($file); + $preview->setMaxX($maxX); + $preview->setMaxY($maxY); + $preview->setScalingUp($scalingUp); + $preview->setKeepAspect($keepAspect); + $preview->showPreview(); } diff --git a/core/command/db/converttype.php b/core/command/db/converttype.php index 617910b3a90..8d1560b0511 100644 --- a/core/command/db/converttype.php +++ b/core/command/db/converttype.php @@ -228,6 +228,8 @@ class ConvertType extends Command { } protected function getTables(Connection $db) { + $db->getConfiguration()-> + setFilterSchemaAssetsExpression('/^'.$this->config->getSystemValue('dbtableprefix', 'oc_').'/'); return $db->getSchemaManager()->listTableNames(); } @@ -264,7 +266,7 @@ class ConvertType extends Command { $this->copyTable($fromDB, $toDB, $table, $input, $output); } if ($input->getArgument('type') === 'pgsql') { - $tools = new \OC\DB\PgSqlTools; + $tools = new \OC\DB\PgSqlTools($this->config); $tools->resynchronizeDatabaseSequences($toDB); } // save new database config diff --git a/core/command/user/delete.php b/core/command/user/delete.php new file mode 100644 index 00000000000..d5ec3ee0bde --- /dev/null +++ b/core/command/user/delete.php @@ -0,0 +1,47 @@ +<?php +/** + * Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Command\User; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Input\InputArgument; + +class Delete extends Command { + /** @var \OC\User\Manager */ + protected $userManager; + + /** + * @param \OC\User\Manager $userManager + */ + public function __construct(\OC\User\Manager $userManager) { + $this->userManager = $userManager; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('user:delete') + ->setDescription('deletes the specified user') + ->addArgument( + 'uid', + InputArgument::REQUIRED, + 'the username' + ); + } + + protected function execute(InputInterface $input, OutputInterface $output) { + $wasSuccessful = $this->userManager->get($input->getArgument('uid'))->delete(); + if($wasSuccessful === true) { + $output->writeln('The specified user was deleted'); + return; + } + $output->writeln('<error>The specified could not be deleted. Please check the logs.</error>'); + } +} diff --git a/core/img/actions/shared.png b/core/img/actions/shared.png Binary files differindex 83ec1a0cf15..fdacbbabebc 100644 --- a/core/img/actions/shared.png +++ b/core/img/actions/shared.png diff --git a/core/img/actions/shared.svg b/core/img/actions/shared.svg index 60b54015167..d67d35c6e56 100644 --- a/core/img/actions/shared.svg +++ b/core/img/actions/shared.svg @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"> - <rect style="color:#000000" fill-opacity="0" height="97.986" width="163.31" y="-32.993" x="-62.897"/> - <path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m4.5689 2.4831c-0.96481 0-1.7833 0.70559-1.7833 1.6162 0.00685 0.28781 0.032588 0.64272 0.20434 1.3933v0.018581l0.018574 0.018573c0.055135 0.15793 0.13537 0.24827 0.24149 0.37154 0.10612 0.12326 0.23263 0.26834 0.35294 0.39011 0.014154 0.014326 0.023227 0.023201 0.037149 0.037163 0.023859 0.10383 0.052763 0.21557 0.074304 0.3158 0.057317 0.26668 0.051439 0.45553 0.037155 0.52015-0.4146 0.1454-0.9304 0.3187-1.3932 0.5199-0.2598 0.113-0.4949 0.2139-0.6873 0.3344-0.1923 0.1206-0.3836 0.2116-0.4458 0.483-0.0007972 0.012367-0.0007972 0.024787 0 0.037163-0.060756 0.55788-0.15266 1.3783-0.22291 1.932-0.015166 0.11656 0.046264 0.23943 0.14861 0.29723 0.84033 0.45393 2.1312 0.63663 3.418 0.63161 1.2868-0.005 2.5674-0.19845 3.3808-0.63161 0.10234-0.0578 0.16378-0.18067 0.14861-0.29723-0.0224-0.173-0.05-0.5633-0.0743-0.9474-0.0243-0.384-0.0454-0.7617-0.0743-0.9845-0.0101-0.0552-0.0362-0.1074-0.0743-0.1486-0.2584-0.3086-0.6445-0.4973-1.096-0.6874-0.4122-0.1735-0.8954-0.3538-1.3746-0.5573-0.02682-0.059748-0.053461-0.23358 0-0.50157 0.014356-0.071959 0.036836-0.14903 0.055729-0.22292 0.045032-0.05044 0.080132-0.091658 0.13003-0.14861 0.1064-0.1215 0.2207-0.2489 0.3157-0.3715 0.0951-0.1226 0.1728-0.2279 0.223-0.3715l0.018574-0.018581c0.1941-0.7837 0.1942-1.1107 0.2043-1.3933v-0.018573c0-0.91058-0.81848-1.6162-1.7833-1.6162zm5.101-1.4831c-1.4067 0-2.6 1.0287-2.6 2.3562 0.00998 0.4196 0.047512 0.93701 0.29791 2.0312v0.027083l0.027081 0.027083c0.080384 0.23025 0.19736 0.36196 0.35208 0.54166s0.33917 0.39121 0.51458 0.56874c0.020637 0.020887 0.033864 0.033826 0.054161 0.054175 0.034785 0.15137 0.076926 0.31428 0.10833 0.46041 0.083566 0.38879 0.074995 0.66411 0.054171 0.75832-0.6045 0.2122-1.3565 0.465-2.0312 0.7583-0.3789 0.1647-0.7217 0.3118-1.0021 0.4875-0.28044 0.17574-0.55934 0.30851-0.64999 0.70416-0.00116 0.01804-0.00116 0.03613 0 0.05418-0.08858 0.81334-0.22257 2.0094-0.325 2.8166-0.022111 0.16993 0.067452 0.34906 0.21666 0.43333 1.2252 0.66179 3.1072 0.92814 4.9833 0.92082 1.8761-0.0073 3.7431-0.28932 4.9291-0.92082 0.14921-0.08427 0.23878-0.2634 0.21666-0.43333-0.0327-0.25234-0.07287-0.82136-0.10833-1.3812-0.03546-0.55988-0.06625-1.1106-0.10833-1.4354-0.01468-0.0805-0.05274-0.15661-0.10833-0.21666-0.377-0.4498-0.94-0.7248-1.598-1.002-0.601-0.253-1.306-0.5158-2.004-0.8125-0.0391-0.087106-0.07795-0.34054 0-0.73124 0.02093-0.10491 0.05371-0.21727 0.08125-0.325 0.06566-0.073537 0.11683-0.13363 0.18958-0.21666 0.15516-0.17709 0.32189-0.36287 0.46041-0.54166s0.25186-0.33217 0.325-0.54166l0.02708-0.027083c0.28309-1.1425 0.28324-1.6193 0.29792-2.0312v-0.027083c0-1.3275-1.1933-2.3562-2.6-2.3562z"/> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <g transform="translate(0 -1036.4)"> + <path d="m12.228 1037.4c-1.3565 0-2.4592 1.0977-2.4592 2.4542 0 0.075 0.0084 0.1504 0.0149 0.2236l-4.7346 2.4145c-0.4291-0.3667-0.98611-0.5863-1.5947-0.5863-1.3565 0-2.4542 1.0977-2.4542 2.4543 0 1.3565 1.0977 2.4542 2.4542 2.4542 0.54607 0 1.0528-0.1755 1.4606-0.477l4.8637 2.4741c-0.0024 0.044-0.0099 0.089-0.0099 0.1342 0 1.3565 1.1027 2.4542 2.4592 2.4542s2.4542-1.0977 2.4542-2.4542-1.0977-2.4592-2.4542-2.4592c-0.63653 0-1.218 0.2437-1.6544 0.6409l-4.6953-2.4c0.01892-0.1228 0.03478-0.2494 0.03478-0.3775 0-0.072-0.0089-0.1437-0.0149-0.2137l4.7395-2.4145c0.42802 0.3627 0.98488 0.5813 1.5898 0.5813 1.3565 0 2.4542-1.1027 2.4542-2.4592s-1.0977-2.4542-2.4542-2.4542z"/> + </g> </svg> diff --git a/core/js/share.js b/core/js/share.js index 2692ff60b5c..877ef4856a3 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -360,6 +360,8 @@ OC.Share={ html += '<span class="reshare">'+t('core', 'Shared with you by {owner}', {owner: data.reshare.displayname_owner})+'</span>'; } html += '<br />'; + // reduce possible permissions to what the original share allowed + possiblePermissions = possiblePermissions & data.reshare.permissions; } if (possiblePermissions & OC.PERMISSION_SHARE) { diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index 4859ba782d2..f4500895464 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -61,6 +61,7 @@ describe('OC.Share tests', function() { loadItemStub.restore(); autocompleteStub.restore(); + $('#dropdown').remove(); }); it('calls loadItem with the correct arguments', function() { OC.Share.showDropDown( @@ -502,6 +503,161 @@ describe('OC.Share tests', function() { expect(shares[OC.Share.SHARE_TYPE_GROUP]).not.toBeDefined(); }); }); + describe('share permissions', function() { + beforeEach(function() { + oc_appconfig.core.resharingAllowed = true; + }); + + /** + * Tests sharing with the given possible permissions + * + * @param {int} possiblePermissions + * @return {int} permissions sent to the server + */ + function testWithPermissions(possiblePermissions) { + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + possiblePermissions, + 'shared_file_name.txt' + ); + var autocompleteOptions = autocompleteStub.getCall(0).args[0]; + // simulate autocomplete selection + autocompleteOptions.select(new $.Event('select'), { + item: { + label: 'User Two', + value: { + shareType: OC.Share.SHARE_TYPE_USER, + shareWith: 'user2' + } + } + }); + autocompleteStub.reset(); + var requestBody = OC.parseQueryString(_.last(fakeServer.requests).requestBody); + return parseInt(requestBody.permissions, 10); + } + + describe('regular sharing', function() { + it('shares with given permissions with default config', function() { + loadItemStub.returns({ + reshare: [], + shares: [] + }); + expect( + testWithPermissions(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE); + expect( + testWithPermissions(OC.PERMISSION_READ | OC.PERMISSION_SHARE) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_SHARE); + }); + it('removes share permission when not allowed', function() { + oc_appconfig.core.resharingAllowed = false; + loadItemStub.returns({ + reshare: [], + shares: [] + }); + expect( + testWithPermissions(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE); + }); + it('automatically adds READ permission even when not specified', function() { + oc_appconfig.core.resharingAllowed = false; + loadItemStub.returns({ + reshare: [], + shares: [] + }); + expect( + testWithPermissions(OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_UPDATE); + }); + it('does not show sharing options when sharing not allowed', function() { + loadItemStub.returns({ + reshare: [], + shares: [] + }); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + OC.PERMISSION_READ, + 'shared_file_name.txt' + ); + expect($('#dropdown #shareWithList').length).toEqual(0); + }); + }); + describe('resharing', function() { + it('shares with given permissions when original share had all permissions', function() { + loadItemStub.returns({ + reshare: { + permissions: OC.PERMISSION_ALL + }, + shares: [] + }); + expect( + testWithPermissions(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE); + }); + it('reduces reshare permissions to the ones from the original share', function() { + loadItemStub.returns({ + reshare: { + permissions: OC.PERMISSION_READ, + uid_owner: 'user1' + }, + shares: [] + }); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + OC.PERMISSION_ALL, + 'shared_file_name.txt' + ); + // no resharing allowed + expect($('#dropdown #shareWithList').length).toEqual(0); + }); + it('reduces reshare permissions to possible permissions', function() { + loadItemStub.returns({ + reshare: { + permissions: OC.PERMISSION_ALL, + uid_owner: 'user1' + }, + shares: [] + }); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + OC.PERMISSION_READ, + 'shared_file_name.txt' + ); + // no resharing allowed + expect($('#dropdown #shareWithList').length).toEqual(0); + }); + it('does not show sharing options when resharing not allowed', function() { + loadItemStub.returns({ + reshare: { + permissions: OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE, + uid_owner: 'user1' + }, + shares: [] + }); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + OC.PERMISSION_ALL, + 'shared_file_name.txt' + ); + expect($('#dropdown #shareWithList').length).toEqual(0); + }); + }); + }); }); describe('markFileAsShared', function() { var $file; diff --git a/core/l10n/bs.js b/core/l10n/bs.js index c9f8a9ea5a6..d7aaf2e7602 100644 --- a/core/l10n/bs.js +++ b/core/l10n/bs.js @@ -133,7 +133,6 @@ OC.L10N.register( "Reset password" : "Resetuj lozinku", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nije podržan i %s na ovoj platformi neće raditi kako treba. Korištenje na vlastiti rizik!", "For the best results, please consider using a GNU/Linux server instead." : "Umjesto toga, za najbolje rezultate, molimo razmislite o mogućnosti korištenje GNU/Linux servera.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Molim odstranite open_basedir postavku iz vaše php.ini ili prebacite na 64bit PHP.", "Please install the cURL extension and restart your webserver." : "Molim instalirajte cURL proširenje i ponovo pokrenite svoj server.", "Personal" : "Osobno", "Users" : "Korisnici", diff --git a/core/l10n/bs.json b/core/l10n/bs.json index 44eb1cd99a6..8ffc8807c3d 100644 --- a/core/l10n/bs.json +++ b/core/l10n/bs.json @@ -131,7 +131,6 @@ "Reset password" : "Resetuj lozinku", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nije podržan i %s na ovoj platformi neće raditi kako treba. Korištenje na vlastiti rizik!", "For the best results, please consider using a GNU/Linux server instead." : "Umjesto toga, za najbolje rezultate, molimo razmislite o mogućnosti korištenje GNU/Linux servera.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Molim odstranite open_basedir postavku iz vaše php.ini ili prebacite na 64bit PHP.", "Please install the cURL extension and restart your webserver." : "Molim instalirajte cURL proširenje i ponovo pokrenite svoj server.", "Personal" : "Osobno", "Users" : "Korisnici", diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js index e867da75302..223105fd381 100644 --- a/core/l10n/cs_CZ.js +++ b/core/l10n/cs_CZ.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Zdravím, světe!", "sunny" : "slunečno", "Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}", + "Hello {name}" : "Vítej, {name}", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"], "Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.", "Please reload the page." : "Načtěte stránku znovu, prosím.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Obnovit heslo", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!", "For the best results, please consider using a GNU/Linux server instead." : "Místo toho zvažte pro nejlepší funkčnost použití GNU/Linux serveru.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32-bitovém PHP prostředí a byl nakonfigurován open_basedir v php.ini. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraňte prosím open_basedir nastavení ve svém php.ini nebo přejděte na 64-bitové PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32-bitovém PHP prostředí a není nainstalováno cURL. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.", "Please install the cURL extension and restart your webserver." : "Nainstalujte prosím cURL rozšíření a restartujte webový server.", "Personal" : "Osobní", "Users" : "Uživatelé", diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json index 26832bf0df2..5c4060adace 100644 --- a/core/l10n/cs_CZ.json +++ b/core/l10n/cs_CZ.json @@ -117,6 +117,7 @@ "Hello world!" : "Zdravím, světe!", "sunny" : "slunečno", "Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}", + "Hello {name}" : "Vítej, {name}", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"], "Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.", "Please reload the page." : "Načtěte stránku znovu, prosím.", @@ -132,9 +133,6 @@ "Reset password" : "Obnovit heslo", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!", "For the best results, please consider using a GNU/Linux server instead." : "Místo toho zvažte pro nejlepší funkčnost použití GNU/Linux serveru.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32-bitovém PHP prostředí a byl nakonfigurován open_basedir v php.ini. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraňte prosím open_basedir nastavení ve svém php.ini nebo přejděte na 64-bitové PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vypadá to, že tato %s instance běží v 32-bitovém PHP prostředí a není nainstalováno cURL. Toto povede k problémům se soubory většími než 4GB a zásadně není doporučováno.", "Please install the cURL extension and restart your webserver." : "Nainstalujte prosím cURL rozšíření a restartujte webový server.", "Personal" : "Osobní", "Users" : "Uživatelé", diff --git a/core/l10n/da.js b/core/l10n/da.js index 0224c2ebc15..5ec9ae1a1de 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hej verden!", "sunny" : "solrigt", "Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}", + "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", "Please reload the page." : "Genindlæs venligst siden", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Nulstil kodeord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X understøttes ikke og %s vil ikke virke optimalt på denne platform. Anvend på eget ansvar!", "For the best results, please consider using a GNU/Linux server instead." : "For de bedste resultater, overvej venligst at bruge en GNU/Linux-server i stedet.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og at open_basedir er blevet konfigureret gennem php.ini. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern venligst indstillingen for open_basedir inde i din php.ini eller skift til 64-bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og cURL er ikke installeret. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.", "Please install the cURL extension and restart your webserver." : "Installér venligst cURL-udvidelsen og genstart din webserver.", "Personal" : "Personligt", "Users" : "Brugere", diff --git a/core/l10n/da.json b/core/l10n/da.json index 53707d692a4..a24baf07254 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -117,6 +117,7 @@ "Hello world!" : "Hej verden!", "sunny" : "solrigt", "Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}", + "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", "Please reload the page." : "Genindlæs venligst siden", @@ -132,9 +133,6 @@ "Reset password" : "Nulstil kodeord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X understøttes ikke og %s vil ikke virke optimalt på denne platform. Anvend på eget ansvar!", "For the best results, please consider using a GNU/Linux server instead." : "For de bedste resultater, overvej venligst at bruge en GNU/Linux-server i stedet.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og at open_basedir er blevet konfigureret gennem php.ini. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern venligst indstillingen for open_basedir inde i din php.ini eller skift til 64-bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ud til, at denne %s-instans kører på et 32-bit PHP-miljø og cURL er ikke installeret. Dette vil føre til problemer som er større end 4GB og frarådes stærkt.", "Please install the cURL extension and restart your webserver." : "Installér venligst cURL-udvidelsen og genstart din webserver.", "Personal" : "Personligt", "Users" : "Brugere", diff --git a/core/l10n/de.js b/core/l10n/de.js index 7e4e3f69e8b..9fde6f7756e 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], "Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.", "Please reload the page." : "Bitte lade diese Seite neu.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Passwort zurücksetzen", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht korrekt funktionieren. Benutzung auf eigenes Risiko!", "For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entferne die open_basedir - Einstellung in Deiner php.ini oder wechsle zum 64Bit-PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", "Please install the cURL extension and restart your webserver." : "Bitte installiere die cURL-Erweiterung und starte den Webserver neu.", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/core/l10n/de.json b/core/l10n/de.json index a0f5e827b1c..e95d3f3614f 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -117,6 +117,7 @@ "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], "Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.", "Please reload the page." : "Bitte lade diese Seite neu.", @@ -132,9 +133,6 @@ "Reset password" : "Passwort zurücksetzen", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht korrekt funktionieren. Benutzung auf eigenes Risiko!", "For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entferne die open_basedir - Einstellung in Deiner php.ini oder wechsle zum 64Bit-PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", "Please install the cURL extension and restart your webserver." : "Bitte installiere die cURL-Erweiterung und starte den Webserver neu.", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 1f508899355..950a85a0532 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], "Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.", "Please reload the page." : "Bitte laden Sie diese Seite neu.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Passwort zurücksetzen", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht richtig funktionieren. Benutzung auf eigenes Risiko!", "For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entfernen Sie die open_basedir - Einstellung in Ihrer php.ini oder wechseln Sie zum 64Bit-PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", "Please install the cURL extension and restart your webserver." : "Bitte installieren Sie die cURL-Erweiterung und starten Sie den Webserver neu.", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index caec5b43468..e9298ca317c 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -117,6 +117,7 @@ "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], "Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.", "Please reload the page." : "Bitte laden Sie diese Seite neu.", @@ -132,9 +133,6 @@ "Reset password" : "Passwort zurücksetzen", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wird nicht unterstützt und %s wird auf dieser Platform nicht richtig funktionieren. Benutzung auf eigenes Risiko!", "For the best results, please consider using a GNU/Linux server instead." : "Für die besten Resultate sollte stattdessen ein GNU/Linux Server verwendet werden.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und die open_basedir wurde in der php.ini konfiguriert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Bitte entfernen Sie die open_basedir - Einstellung in Ihrer php.ini oder wechseln Sie zum 64Bit-PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Es scheint, dass die %s - Instanz unter einer 32Bit PHP-Umgebung läuft und cURL ist nicht installiert. Dies führt zu Problemen mit Dateien über 4 GB und wird dringend abgeraten.", "Please install the cURL extension and restart your webserver." : "Bitte installieren Sie die cURL-Erweiterung und starten Sie den Webserver neu.", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 7b1459906b4..92b63497675 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hello world!", "sunny" : "sunny", "Hello {name}, the weather is {weather}" : "Hello {name}, the weather is {weather}", + "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["download %n file","download %n files"], "Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.", "Please reload the page." : "Please reload the page.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Reset password", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! ", "For the best results, please consider using a GNU/Linux server instead." : "For the best results, please consider using a GNU/Linux server instead.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged.", "Please install the cURL extension and restart your webserver." : "Please install the cURL extension and restart your webserver.", "Personal" : "Personal", "Users" : "Users", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 754c8a5733e..f4edbb623dd 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -117,6 +117,7 @@ "Hello world!" : "Hello world!", "sunny" : "sunny", "Hello {name}, the weather is {weather}" : "Hello {name}, the weather is {weather}", + "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["download %n file","download %n files"], "Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.", "Please reload the page." : "Please reload the page.", @@ -132,9 +133,6 @@ "Reset password" : "Reset password", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! ", "For the best results, please consider using a GNU/Linux server instead." : "For the best results, please consider using a GNU/Linux server instead.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged.", "Please install the cURL extension and restart your webserver." : "Please install the cURL extension and restart your webserver.", "Personal" : "Personal", "Users" : "Users", diff --git a/core/l10n/es.js b/core/l10n/es.js index bb39a5ae8b4..9496ca29f8f 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -134,9 +134,6 @@ OC.L10N.register( "Reset password" : "Restablecer contraseña", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! ", "For the best results, please consider using a GNU/Linux server instead." : "Para óptimos resultados, considere utilizar un servidor GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Parece ser que esta %s instalación está ejecutándose en un entorno PHP de 32-bits y que el parámetro open_basedir se ha configurado en php.ini. Esto acarreará problemas con ficheros de más de 4GB y se desaconseja encarecidamente.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, elimine el parámetro open_basedir de su fichero de configuración php.ini o migre a PHP de 64-bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Parece ser que esta %s instalación está ejecutándose en un entorno PHP de 32-bits y cURL no está instalado. Esto acarreará problemas con ficheros de más de 4GB y se desaconseja encarecidamente.", "Please install the cURL extension and restart your webserver." : "Por favor, instale la extensión cURL y reinicie su servidor web.", "Personal" : "Personal", "Users" : "Usuarios", diff --git a/core/l10n/es.json b/core/l10n/es.json index 1cf35d3f85b..8f2b862e2e7 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -132,9 +132,6 @@ "Reset password" : "Restablecer contraseña", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! ", "For the best results, please consider using a GNU/Linux server instead." : "Para óptimos resultados, considere utilizar un servidor GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Parece ser que esta %s instalación está ejecutándose en un entorno PHP de 32-bits y que el parámetro open_basedir se ha configurado en php.ini. Esto acarreará problemas con ficheros de más de 4GB y se desaconseja encarecidamente.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, elimine el parámetro open_basedir de su fichero de configuración php.ini o migre a PHP de 64-bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Parece ser que esta %s instalación está ejecutándose en un entorno PHP de 32-bits y cURL no está instalado. Esto acarreará problemas con ficheros de más de 4GB y se desaconseja encarecidamente.", "Please install the cURL extension and restart your webserver." : "Por favor, instale la extensión cURL y reinicie su servidor web.", "Personal" : "Personal", "Users" : "Usuarios", diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js index ce139d0132f..6be1f07381a 100644 --- a/core/l10n/fi_FI.js +++ b/core/l10n/fi_FI.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hei maailma!", "sunny" : "aurinkoinen", "Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}", + "Hello {name}" : "Hei {name}", "_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"], "Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.", "Please reload the page." : "Päivitä sivu.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Palauta salasana", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole tuettu, joten %s ei toimi kunnolla tällä alustalla. Käytä omalla vastuulla!", "For the best results, please consider using a GNU/Linux server instead." : "Käytä parhaan lopputuloksen saamiseksi GNU/Linux-palvelinta.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja open_basedir on määritetty php.ini-tiedostossa. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Poista open_basedir-asetus php.ini-tiedostosta tai vaihda 64-bittiseen PHP-asennukseen.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja ettei cURLia ole asennettu. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.", "Please install the cURL extension and restart your webserver." : "Asenna cURL-laajennus ja käynnistä http-palvelin uudelleen.", "Personal" : "Henkilökohtainen", "Users" : "Käyttäjät", diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json index 6f927053590..360ba9ad2dc 100644 --- a/core/l10n/fi_FI.json +++ b/core/l10n/fi_FI.json @@ -117,6 +117,7 @@ "Hello world!" : "Hei maailma!", "sunny" : "aurinkoinen", "Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}", + "Hello {name}" : "Hei {name}", "_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"], "Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.", "Please reload the page." : "Päivitä sivu.", @@ -132,9 +133,6 @@ "Reset password" : "Palauta salasana", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole tuettu, joten %s ei toimi kunnolla tällä alustalla. Käytä omalla vastuulla!", "For the best results, please consider using a GNU/Linux server instead." : "Käytä parhaan lopputuloksen saamiseksi GNU/Linux-palvelinta.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja open_basedir on määritetty php.ini-tiedostossa. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Poista open_basedir-asetus php.ini-tiedostosta tai vaihda 64-bittiseen PHP-asennukseen.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Vaikuttaa siltä, että tämä %s-asennus toimii 32-bittisessä PHP-ympäristössä ja ettei cURLia ole asennettu. Tämä johtaa ongelmiin yli neljän gigatavun tiedostojen kanssa, eikä kyseistä toteutusta suositella.", "Please install the cURL extension and restart your webserver." : "Asenna cURL-laajennus ja käynnistä http-palvelin uudelleen.", "Personal" : "Henkilökohtainen", "Users" : "Käyttäjät", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index ebb0c87689a..d2b79a428d5 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -134,9 +134,6 @@ OC.L10N.register( "Reset password" : "Réinitialiser le mot de passe", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !", "For the best results, please consider using a GNU/Linux server instead." : "Pour obtenir les meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Il semble que cette instance %s fonctionne dans un environnement PHP 32 bits et que le open_basedir a été configuré dans php.ini. Cela posera des problèmes avec les fichiers de taille supérieure à 4 Go et est fortement déconseillé.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Veuillez supprimer le paramètre open_basedir de votre php.ini ou passer à un environnement PHP 64 bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Il semble que cette instance %s fonctionne dans un environnement PHP 32 bits et que cURL ne soit pas installé. Cela posera des problèmes avec les fichiers de taille supérieure à 4 Go et est fortement déconseillé.", "Please install the cURL extension and restart your webserver." : "Veuillez installer l'extension cURL et redémarrer votre serveur web.", "Personal" : "Personnel", "Users" : "Utilisateurs", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index e82adf2008f..eb4710f0225 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -132,9 +132,6 @@ "Reset password" : "Réinitialiser le mot de passe", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !", "For the best results, please consider using a GNU/Linux server instead." : "Pour obtenir les meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Il semble que cette instance %s fonctionne dans un environnement PHP 32 bits et que le open_basedir a été configuré dans php.ini. Cela posera des problèmes avec les fichiers de taille supérieure à 4 Go et est fortement déconseillé.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Veuillez supprimer le paramètre open_basedir de votre php.ini ou passer à un environnement PHP 64 bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Il semble que cette instance %s fonctionne dans un environnement PHP 32 bits et que cURL ne soit pas installé. Cela posera des problèmes avec les fichiers de taille supérieure à 4 Go et est fortement déconseillé.", "Please install the cURL extension and restart your webserver." : "Veuillez installer l'extension cURL et redémarrer votre serveur web.", "Personal" : "Personnel", "Users" : "Utilisateurs", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index a9f3dd839cb..878101e6f61 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -65,7 +65,7 @@ OC.L10N.register( "Strong password" : "Contrasinal forte", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web aínda non está configurado axeidamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar.", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicacións de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades.", - "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.", + "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal xeito que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.", "Error occurred while checking server setup" : "Aconteceu un erro mentras se comprobaba a configuración do servidor", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hola mundo!", "sunny" : "soleado", "Hello {name}, the weather is {weather}" : "Olá {name}, o tempo é {weather}", + "Hello {name}" : "Ola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"], "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.", "Please reload the page." : "Volva cargar a páxina.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Restabelecer o contrasinal", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non é compatíbel e %s non funcionará correctamente nesta plataforma. Úseo baixo o seu risco!", "For the best results, please consider using a GNU/Linux server instead." : "Para obter mellores resultados, considere o emprego dun servidor GNU/Linux no seu canto.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Semella que está instancia %s está a executarse nun entorno de 32 bits e o PHP open_basedir foi configurado en php.ini. Isto dará lugar a problemas con ficheiros de máis de 4GB e é moi desalentador.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Elimine a configuración open_basedir no php.ini ou cambie a PHP 64 bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Semella que está instancia %s está a executarse nun entorno de 32 bits e cURL non está instalado. Isto dará lugar a problemas con ficheiros de máis de 4GB e é moi desalentador.", "Please install the cURL extension and restart your webserver." : "Instale a extensión cURL e reinicie o servidor web.", "Personal" : "Persoal", "Users" : "Usuarios", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index 95e07ed07a6..ae0a225deb8 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -63,7 +63,7 @@ "Strong password" : "Contrasinal forte", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "O seu servidor web aínda non está configurado axeidamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar.", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Este servidor non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicacións de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades.", - "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal maneira que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.", + "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través de internet. O ficheiro .htaccess non está a traballar. Suxerímoslle que configure o seu servidor web de tal xeito que o cartafol de datos non estea accesíbel ou que mova o o directorio de datos fóra da raíz de documentos do servidor web.", "Error occurred while checking server setup" : "Aconteceu un erro mentras se comprobaba a configuración do servidor", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", @@ -117,6 +117,7 @@ "Hello world!" : "Hola mundo!", "sunny" : "soleado", "Hello {name}, the weather is {weather}" : "Olá {name}, o tempo é {weather}", + "Hello {name}" : "Ola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"], "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.", "Please reload the page." : "Volva cargar a páxina.", @@ -132,9 +133,6 @@ "Reset password" : "Restabelecer o contrasinal", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non é compatíbel e %s non funcionará correctamente nesta plataforma. Úseo baixo o seu risco!", "For the best results, please consider using a GNU/Linux server instead." : "Para obter mellores resultados, considere o emprego dun servidor GNU/Linux no seu canto.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Semella que está instancia %s está a executarse nun entorno de 32 bits e o PHP open_basedir foi configurado en php.ini. Isto dará lugar a problemas con ficheiros de máis de 4GB e é moi desalentador.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Elimine a configuración open_basedir no php.ini ou cambie a PHP 64 bits.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Semella que está instancia %s está a executarse nun entorno de 32 bits e cURL non está instalado. Isto dará lugar a problemas con ficheiros de máis de 4GB e é moi desalentador.", "Please install the cURL extension and restart your webserver." : "Instale a extensión cURL e reinicie o servidor web.", "Personal" : "Persoal", "Users" : "Usuarios", diff --git a/core/l10n/it.js b/core/l10n/it.js index fba67f60240..dfdb350cd71 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Ciao mondo!", "sunny" : "soleggiato", "Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}", + "Hello {name}" : "Ciao {name}", "_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"], "Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.", "Please reload the page." : "Ricarica la pagina.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Ripristina la password", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non è supportato e %s non funzionerà correttamente su questa piattaforma. Usalo a tuo rischio!", "For the best results, please consider using a GNU/Linux server instead." : "Per avere il risultato migliore, prendi in considerazione l'utilizzo di un server GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che open_basedir sia stata configurata in php.ini. Ciò comporterà problemi con i file più grandi di 4 GB ed è altamente sconsigliato.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Rimuovi l'impostazione di open_basedir nel tuo php.ini o passa alla versione a 64 bit di PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che cURL non sia installato. Ciò comporterà problemi con i file più grandi di 4 GB ed è altamente sconsigliato.", "Please install the cURL extension and restart your webserver." : "Installa l'estensione cURL e riavvia il server web.", "Personal" : "Personale", "Users" : "Utenti", diff --git a/core/l10n/it.json b/core/l10n/it.json index 081757cb7f8..d4362c06981 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -117,6 +117,7 @@ "Hello world!" : "Ciao mondo!", "sunny" : "soleggiato", "Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}", + "Hello {name}" : "Ciao {name}", "_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"], "Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.", "Please reload the page." : "Ricarica la pagina.", @@ -132,9 +133,6 @@ "Reset password" : "Ripristina la password", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non è supportato e %s non funzionerà correttamente su questa piattaforma. Usalo a tuo rischio!", "For the best results, please consider using a GNU/Linux server instead." : "Per avere il risultato migliore, prendi in considerazione l'utilizzo di un server GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che open_basedir sia stata configurata in php.ini. Ciò comporterà problemi con i file più grandi di 4 GB ed è altamente sconsigliato.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Rimuovi l'impostazione di open_basedir nel tuo php.ini o passa alla versione a 64 bit di PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che cURL non sia installato. Ciò comporterà problemi con i file più grandi di 4 GB ed è altamente sconsigliato.", "Please install the cURL extension and restart your webserver." : "Installa l'estensione cURL e riavvia il server web.", "Personal" : "Personale", "Users" : "Utenti", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index 2e9557fe25d..6f711646cb2 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -36,7 +36,7 @@ OC.L10N.register( "Settings" : "設定", "Saving..." : "保存中...", "Couldn't send reset email. Please contact your administrator." : "リセットメールを送信できませんでした。管理者に問い合わせてください。", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットする、このリンクをクリックするとメールを送信します。しばらく経ってもメールが届かなかった場合は、スパム/ジャンクフォルダを確認してください。<br>それでも見つからなかった場合は、管理者に問合せてください。", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットするリンクをクリックしたので、メールを送信しました。しばらくたってもメールが届かなかった場合は、スパム/ジャンクフォルダーを確認してください。<br>それでも見つからなかった場合は、管理者に問合わせてください。", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に連絡してください。<br />続けてよろしいでしょうか?", "I know what I'm doing" : "どういう操作をしているか理解しています", "Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。", @@ -134,10 +134,7 @@ OC.L10N.register( "Reset password" : "パスワードをリセット", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X では、サポートされていません。このOSでは、%sは正常に動作しないかもしれません。ご自身の責任においてご利用ください。", "For the best results, please consider using a GNU/Linux server instead." : "最も良い方法としては、代わりにGNU/Linuxサーバーを利用することをご検討ください。", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "このインスタンス %s は、32bit PHP 環境で動いておりphp.ini に open_basedir が設定されているようです。これにより4GB以上のファイルで問題を引き起こし、非常に残念なことになるでしょう。", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "php.ini から open_basedir 設定を削除するか、64bit PHPに切り替えて下さい。", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "このインスタンス %s は、32bit PHP 環境で動いておりcURLがインストールされていないようです。これにより4GB以上のファイルで問題を引き起こし、非常に残念なことになるでしょう。", - "Please install the cURL extension and restart your webserver." : "cURL拡張をインストールして、WEBサーバーを再起動して下さい。", + "Please install the cURL extension and restart your webserver." : "cURL拡張をインストールして、WEBサーバーを再起動してください。", "Personal" : "個人", "Users" : "ユーザー", "Apps" : "アプリ", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 0fabd819e7e..94431570d3e 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -34,7 +34,7 @@ "Settings" : "設定", "Saving..." : "保存中...", "Couldn't send reset email. Please contact your administrator." : "リセットメールを送信できませんでした。管理者に問い合わせてください。", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットする、このリンクをクリックするとメールを送信します。しばらく経ってもメールが届かなかった場合は、スパム/ジャンクフォルダを確認してください。<br>それでも見つからなかった場合は、管理者に問合せてください。", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットするリンクをクリックしたので、メールを送信しました。しばらくたってもメールが届かなかった場合は、スパム/ジャンクフォルダーを確認してください。<br>それでも見つからなかった場合は、管理者に問合わせてください。", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に連絡してください。<br />続けてよろしいでしょうか?", "I know what I'm doing" : "どういう操作をしているか理解しています", "Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。", @@ -132,10 +132,7 @@ "Reset password" : "パスワードをリセット", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X では、サポートされていません。このOSでは、%sは正常に動作しないかもしれません。ご自身の責任においてご利用ください。", "For the best results, please consider using a GNU/Linux server instead." : "最も良い方法としては、代わりにGNU/Linuxサーバーを利用することをご検討ください。", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "このインスタンス %s は、32bit PHP 環境で動いておりphp.ini に open_basedir が設定されているようです。これにより4GB以上のファイルで問題を引き起こし、非常に残念なことになるでしょう。", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "php.ini から open_basedir 設定を削除するか、64bit PHPに切り替えて下さい。", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "このインスタンス %s は、32bit PHP 環境で動いておりcURLがインストールされていないようです。これにより4GB以上のファイルで問題を引き起こし、非常に残念なことになるでしょう。", - "Please install the cURL extension and restart your webserver." : "cURL拡張をインストールして、WEBサーバーを再起動して下さい。", + "Please install the cURL extension and restart your webserver." : "cURL拡張をインストールして、WEBサーバーを再起動してください。", "Personal" : "個人", "Users" : "ユーザー", "Apps" : "アプリ", diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js index ef1cf6a83d0..4ed9ef3fda0 100644 --- a/core/l10n/nb_NO.js +++ b/core/l10n/nb_NO.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hei, Verden!", "sunny" : "solfylt", "Hello {name}, the weather is {weather}" : "Hallo {name}, været er {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["last ned %n fil","last ned %n filer"], "Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.", "Please reload the page." : "Vennligst last siden på nytt.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Tilbakestill passord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X støttes ikke og %s vil ikke fungere korrekt på denne plattformen. Bruk på egen risiko!", "For the best results, please consider using a GNU/Linux server instead." : "For beste resultat, vurder å bruke en GNU/Linux-server i stedet.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det virker som om denne %s-instansen kjører i et 32-bits PHP-miljø og open_basedir er konfigurert i php.ini. Dette vil gi problemer med filer over 4GB og er sterkt frarådet.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern innstillingen open_basedir i php.ini eller bytt til 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det virker som om denne %s-instansen kjører i et 32-bits PHP-miljø og cURL er ikke installert. Dette vil gi problemer med filer over 4GB og er sterkt frarådet.", "Please install the cURL extension and restart your webserver." : "Installer utvidelsen cURL og start web-serveren på nytt.", "Personal" : "Personlig", "Users" : "Brukere", diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json index 10f86112705..1bd2e430c9b 100644 --- a/core/l10n/nb_NO.json +++ b/core/l10n/nb_NO.json @@ -117,6 +117,7 @@ "Hello world!" : "Hei, Verden!", "sunny" : "solfylt", "Hello {name}, the weather is {weather}" : "Hallo {name}, været er {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["last ned %n fil","last ned %n filer"], "Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.", "Please reload the page." : "Vennligst last siden på nytt.", @@ -132,9 +133,6 @@ "Reset password" : "Tilbakestill passord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X støttes ikke og %s vil ikke fungere korrekt på denne plattformen. Bruk på egen risiko!", "For the best results, please consider using a GNU/Linux server instead." : "For beste resultat, vurder å bruke en GNU/Linux-server i stedet.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det virker som om denne %s-instansen kjører i et 32-bits PHP-miljø og open_basedir er konfigurert i php.ini. Dette vil gi problemer med filer over 4GB og er sterkt frarådet.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Fjern innstillingen open_basedir i php.ini eller bytt til 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det virker som om denne %s-instansen kjører i et 32-bits PHP-miljø og cURL er ikke installert. Dette vil gi problemer med filer over 4GB og er sterkt frarådet.", "Please install the cURL extension and restart your webserver." : "Installer utvidelsen cURL og start web-serveren på nytt.", "Personal" : "Personlig", "Users" : "Brukere", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 60b69bcda0f..7199dc767a5 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Hallo wereld!", "sunny" : "zonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"], "Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.", "Please reload the page." : "Herlaad deze pagina.", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Reset wachtwoord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wordt niet ondersteund en %s zal niet goed werken op dit platform. Gebruik het op uw eigen risico!", "For the best results, please consider using a GNU/Linux server instead." : "Voor het beste resultaat adviseren wij het gebruik van een GNU/Linux server.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Het lijkt erop dat deze %s versie draait in een 32 bits PHP omgeving en dat open_basedir is geconfigureerd in php.ini. Dat zal leiden tot problemen met bestanden groter dan 4 GB en wordt dus sterk afgeraden.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Verwijder de open_basedir instelling in php.ini of schakel om naar de 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Het lijkt erop dat deze %s versie draait in een 32 bits PHP omgeving en dat cURL niet is geïnstalleerd. Dat zal leiden tot problemen met bestanden groter dan 4 GB en wordt dus sterk afgeraden.", "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.", "Personal" : "Persoonlijk", "Users" : "Gebruikers", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 8604cb3ce05..2e0062668d7 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -117,6 +117,7 @@ "Hello world!" : "Hallo wereld!", "sunny" : "zonnig", "Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}", + "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"], "Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.", "Please reload the page." : "Herlaad deze pagina.", @@ -132,9 +133,6 @@ "Reset password" : "Reset wachtwoord", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OSX wordt niet ondersteund en %s zal niet goed werken op dit platform. Gebruik het op uw eigen risico!", "For the best results, please consider using a GNU/Linux server instead." : "Voor het beste resultaat adviseren wij het gebruik van een GNU/Linux server.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Het lijkt erop dat deze %s versie draait in een 32 bits PHP omgeving en dat open_basedir is geconfigureerd in php.ini. Dat zal leiden tot problemen met bestanden groter dan 4 GB en wordt dus sterk afgeraden.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Verwijder de open_basedir instelling in php.ini of schakel om naar de 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Het lijkt erop dat deze %s versie draait in een 32 bits PHP omgeving en dat cURL niet is geïnstalleerd. Dat zal leiden tot problemen met bestanden groter dan 4 GB en wordt dus sterk afgeraden.", "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.", "Personal" : "Persoonlijk", "Users" : "Gebruikers", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index b0600bbf41b..914b1e5eb4f 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -79,7 +79,7 @@ OC.L10N.register( "Share with user or group …" : "Współdziel z użytkownikiem lub grupą ...", "Share link" : "Udostępnij link", "The public link will expire no later than {days} days after it is created" : "Link publiczny wygaśnie nie później niż po {days} dniach od utworzenia", - "Link" : "Link", + "Link" : "Odnośnik", "Password protect" : "Zabezpiecz hasłem", "Password" : "Hasło", "Choose a password for the public link" : "Wybierz hasło dla linku publicznego", @@ -89,7 +89,7 @@ OC.L10N.register( "Set expiration date" : "Ustaw datę wygaśnięcia", "Expiration" : "Wygaśnięcie", "Expiration date" : "Data wygaśnięcia", - "Adding user..." : "Dodaję użytkownika...", + "Adding user..." : "Dodawanie użytkownika...", "group" : "grupa", "remote" : "zdalny", "Resharing is not allowed" : "Współdzielenie nie jest możliwe", @@ -115,10 +115,15 @@ OC.L10N.register( "Edit tags" : "Edytuj tagi", "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", + "unknown text" : "nieznany tekst", "Hello world!" : "Witaj świecie!", + "sunny" : "słoneczna", + "Hello {name}, the weather is {weather}" : "Cześć {name}, dzisiejsza pogoda jest {weather}", + "Hello {name}" : "Witaj {name}", "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n plików","pobrano %n plików"], "Updating {productName} to version {version}, this may take a while." : "Aktualizuję {productName} do wersji {version}, to może chwilę potrwać.", "Please reload the page." : "Proszę przeładować stronę", + "The update was unsuccessful. " : "Aktualizowanie zakończyło się niepowodzeniem.", "The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.", "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", @@ -130,6 +135,7 @@ OC.L10N.register( "Reset password" : "Zresetuj hasło", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nie jest wspierany i %s nie będzie działać poprawnie na tej platformie. Używasz na własne ryzyko!", "For the best results, please consider using a GNU/Linux server instead." : "Aby uzyskać najlepsze rezultaty, rozważ w to miejsce użycie serwera GNU/Linux.", + "Please install the cURL extension and restart your webserver." : "Zainstaluj rozszerzenie cURL, a następnie zrestartuj swój serwer web.", "Personal" : "Osobiste", "Users" : "Użytkownicy", "Apps" : "Aplikacje", @@ -183,7 +189,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Ta aplikacja wymaga JavaScript do poprawnego działania. Proszę <a href=\"http://enable-javascript.com/\" target=\"_blank\">włącz JavaScript</a> i przeładuj stronę.", "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", - "Search" : "Szukaj", + "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", "Forgot your password? Reset it!" : "Nie pamiętasz hasła? Zresetuj je!", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 2622f6ec998..8de505a87da 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -77,7 +77,7 @@ "Share with user or group …" : "Współdziel z użytkownikiem lub grupą ...", "Share link" : "Udostępnij link", "The public link will expire no later than {days} days after it is created" : "Link publiczny wygaśnie nie później niż po {days} dniach od utworzenia", - "Link" : "Link", + "Link" : "Odnośnik", "Password protect" : "Zabezpiecz hasłem", "Password" : "Hasło", "Choose a password for the public link" : "Wybierz hasło dla linku publicznego", @@ -87,7 +87,7 @@ "Set expiration date" : "Ustaw datę wygaśnięcia", "Expiration" : "Wygaśnięcie", "Expiration date" : "Data wygaśnięcia", - "Adding user..." : "Dodaję użytkownika...", + "Adding user..." : "Dodawanie użytkownika...", "group" : "grupa", "remote" : "zdalny", "Resharing is not allowed" : "Współdzielenie nie jest możliwe", @@ -113,10 +113,15 @@ "Edit tags" : "Edytuj tagi", "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", + "unknown text" : "nieznany tekst", "Hello world!" : "Witaj świecie!", + "sunny" : "słoneczna", + "Hello {name}, the weather is {weather}" : "Cześć {name}, dzisiejsza pogoda jest {weather}", + "Hello {name}" : "Witaj {name}", "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n plików","pobrano %n plików"], "Updating {productName} to version {version}, this may take a while." : "Aktualizuję {productName} do wersji {version}, to może chwilę potrwać.", "Please reload the page." : "Proszę przeładować stronę", + "The update was unsuccessful. " : "Aktualizowanie zakończyło się niepowodzeniem.", "The update was successful. Redirecting you to ownCloud now." : "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.", "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", @@ -128,6 +133,7 @@ "Reset password" : "Zresetuj hasło", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nie jest wspierany i %s nie będzie działać poprawnie na tej platformie. Używasz na własne ryzyko!", "For the best results, please consider using a GNU/Linux server instead." : "Aby uzyskać najlepsze rezultaty, rozważ w to miejsce użycie serwera GNU/Linux.", + "Please install the cURL extension and restart your webserver." : "Zainstaluj rozszerzenie cURL, a następnie zrestartuj swój serwer web.", "Personal" : "Osobiste", "Users" : "Użytkownicy", "Apps" : "Aplikacje", @@ -181,7 +187,7 @@ "This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Ta aplikacja wymaga JavaScript do poprawnego działania. Proszę <a href=\"http://enable-javascript.com/\" target=\"_blank\">włącz JavaScript</a> i przeładuj stronę.", "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", - "Search" : "Szukaj", + "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", "Forgot your password? Reset it!" : "Nie pamiętasz hasła? Zresetuj je!", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 6b327dec41e..c6e5d739113 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Alô mundo!", "sunny" : "ensolarado", "Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}", + "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"], "Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.", "Please reload the page." : "Por favor recarregue a página", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Redefinir senha", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!", "For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.", "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.", "Personal" : "Pessoal", "Users" : "Usuários", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index 87c3d0bf63e..feb932fb44c 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -117,6 +117,7 @@ "Hello world!" : "Alô mundo!", "sunny" : "ensolarado", "Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}", + "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"], "Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.", "Please reload the page." : "Por favor recarregue a página", @@ -132,9 +133,6 @@ "Reset password" : "Redefinir senha", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!", "For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.", "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.", "Personal" : "Pessoal", "Users" : "Usuários", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 129f2b1ba39..5889d092114 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -79,9 +79,11 @@ OC.L10N.register( "Share with user or group …" : "Partilhar com utilizador ou grupo...", "Share link" : "Compartilhar hiperligação", "The public link will expire no later than {days} days after it is created" : "O link público expira, o mais tardar {days} dias após sua criação", + "Link" : "Hiperligação", "Password protect" : "Proteger com Palavra-passe", "Password" : "Palavra-passe", "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", + "Allow editing" : "Permitir edição", "Email link to person" : "Enviar a hiperligação para a pessoa", "Send" : "Enviar", "Set expiration date" : "Definir a data de expiração", @@ -89,6 +91,7 @@ OC.L10N.register( "Expiration date" : "Data de expiração", "Adding user..." : "A adicionar o utilizador ...", "group" : "grupo", + "remote" : "remoto", "Resharing is not allowed" : "Não é permitido partilhar de novo", "Shared in {item} with {user}" : "Partilhado em {item} com {user}", "Unshare" : "Cancelar partilha", @@ -97,6 +100,7 @@ OC.L10N.register( "can edit" : "pode editar", "access control" : "controlo de acesso", "create" : "criar", + "change" : "alterar", "delete" : "apagar", "Password protected" : "Protegido com Palavra-passe", "Error unsetting expiration date" : "Erro ao retirar a data de expiração", @@ -115,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Olá mundo!", "sunny" : "soalheiro", "Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}", + "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["transferir %n ficheiro","transferir %n ficheiros"], "Updating {productName} to version {version}, this may take a while." : "A atualizar {productName} para a versão {version}, isto poderá demorar algum tempo.", "Please reload the page." : "Por favor, recarregue a página.", @@ -130,7 +135,6 @@ OC.L10N.register( "Reset password" : "Repor palavra-passe", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Esta plataforma não suporta o sistema operativo Mac OS X e o %s poderá não funcionar correctamente. Utilize por sua conta e risco.", "For the best results, please consider using a GNU/Linux server instead." : "Para um melhor resultado, utilize antes o servidor GNU/Linux.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a definição open_basedir no seu php.ini ou mude para 64bit PHP.", "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie o seu servidor da Web.", "Personal" : "Pessoal", "Users" : "Utilizadores", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index f606dc97165..339cb680d99 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -77,9 +77,11 @@ "Share with user or group …" : "Partilhar com utilizador ou grupo...", "Share link" : "Compartilhar hiperligação", "The public link will expire no later than {days} days after it is created" : "O link público expira, o mais tardar {days} dias após sua criação", + "Link" : "Hiperligação", "Password protect" : "Proteger com Palavra-passe", "Password" : "Palavra-passe", "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", + "Allow editing" : "Permitir edição", "Email link to person" : "Enviar a hiperligação para a pessoa", "Send" : "Enviar", "Set expiration date" : "Definir a data de expiração", @@ -87,6 +89,7 @@ "Expiration date" : "Data de expiração", "Adding user..." : "A adicionar o utilizador ...", "group" : "grupo", + "remote" : "remoto", "Resharing is not allowed" : "Não é permitido partilhar de novo", "Shared in {item} with {user}" : "Partilhado em {item} com {user}", "Unshare" : "Cancelar partilha", @@ -95,6 +98,7 @@ "can edit" : "pode editar", "access control" : "controlo de acesso", "create" : "criar", + "change" : "alterar", "delete" : "apagar", "Password protected" : "Protegido com Palavra-passe", "Error unsetting expiration date" : "Erro ao retirar a data de expiração", @@ -113,6 +117,7 @@ "Hello world!" : "Olá mundo!", "sunny" : "soalheiro", "Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}", + "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["transferir %n ficheiro","transferir %n ficheiros"], "Updating {productName} to version {version}, this may take a while." : "A atualizar {productName} para a versão {version}, isto poderá demorar algum tempo.", "Please reload the page." : "Por favor, recarregue a página.", @@ -128,7 +133,6 @@ "Reset password" : "Repor palavra-passe", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Esta plataforma não suporta o sistema operativo Mac OS X e o %s poderá não funcionar correctamente. Utilize por sua conta e risco.", "For the best results, please consider using a GNU/Linux server instead." : "Para um melhor resultado, utilize antes o servidor GNU/Linux.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Por favor, remova a definição open_basedir no seu php.ini ou mude para 64bit PHP.", "Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie o seu servidor da Web.", "Personal" : "Pessoal", "Users" : "Utilizadores", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index dc08623fa9d..7bf9fe8ebfc 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -6,9 +6,9 @@ OC.L10N.register( "Turned off maintenance mode" : "Режим отладки отключён", "Updated database" : "База данных обновлена", "Checked database schema update" : "Проверено обновление схемы БД", - "Checked database schema update for apps" : "Проверено обновление схемы БД для приложений", + "Checked database schema update for apps" : "Проверено обновление схемы БД приложений", "Updated \"%s\" to %s" : "Обновлено \"%s\" до %s", - "Disabled incompatible apps: %s" : "Отключенные несовместимые приложения: %s", + "Disabled incompatible apps: %s" : "Отключены несовместимые приложения: %s", "No image or file provided" : "Не указано изображение или файл", "Unknown filetype" : "Неизвестный тип файла", "Invalid image" : "Некорректное изображение", @@ -36,7 +36,7 @@ OC.L10N.register( "Settings" : "Настройки", "Saving..." : "Сохранение...", "Couldn't send reset email. Please contact your administrator." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, свяжитесь с вашим администратором.", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ссылка для восстановления пароля была отправлена на вашу почту. Если вы не получили её, проверьте папку спама.<br>Если там письма со ссылкой нет, то обратитесь к вашему администратору.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ссылка восстановления пароля отправлена на ваш email. Если вы не получили письмо в течении продолжительного промежутка времени, проверьте папку спама.<br>Если письмо с ссылкой восстановления пароля папке спама не обнаружено, обратитесь к вашему администратору.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?", "I know what I'm doing" : "Я понимаю, что делаю", "Password can not be changed. Please contact your administrator." : "Пароль не может быть изменён. Пожалуйста, свяжитесь с вашим администратором.", @@ -52,10 +52,10 @@ OC.L10N.register( "New Files" : "Новые файлы", "Already existing files" : "Существующие файлы", "Which files do you want to keep?" : "Какие файлы вы хотите сохранить?", - "If you select both versions, the copied file will have a number added to its name." : "При выборе обоих версий, к названию копируемого файла будет добавлена цифра", + "If you select both versions, the copied file will have a number added to its name." : "При выборе обеих версий, к названию копируемого файла будет добавлена цифра", "Cancel" : "Отмена", "Continue" : "Продолжить", - "(all selected)" : "(выбраны все)", + "(all selected)" : "(все)", "({count} selected)" : "({count} выбрано)", "Error loading file exists template" : "Ошибка при загрузке шаблона существующего файла", "Very weak password" : "Очень слабый пароль", @@ -64,9 +64,9 @@ OC.L10N.register( "Good password" : "Хороший пароль", "Strong password" : "Устойчивый к взлому пароль", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Веб-сервер до сих пор не настроен для возможности синхронизации файлов. Похоже что проблема в неисправности интерфейса WebDAV.", - "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Данный сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение удаленных дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если вы хотите иметь все возможности.", - "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что каталог с данными и файлы доступны из интернета. Файл .htaccess не работает. Крайне рекомендуется сконфигурировать вебсервер таким образом, чтобы каталог с данными более не был доступен или переместите каталог с данными куда-нибудь в другое место за пределами каталога документов вебсервера.", - "Error occurred while checking server setup" : "Произошла ошибка при проверке настройки сервера", + "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Данный сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение удаленных дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если вы хотите использовать все возможности.", + "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что каталог с данными и файлы доступны из интернета. Файл .htaccess не работает. Крайне рекомендуется сконфигурировать вебсервер таким образом, чтобы каталог с данными более не был доступен, или переместите каталог с данными в другое место, за пределами каталога документов веб-сервера.", + "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", "Shared" : "Общий доступ", "Shared with {recipients}" : "Вы поделились с {recipients}", "Share" : "Поделиться", @@ -119,24 +119,22 @@ OC.L10N.register( "Hello world!" : "Привет мир!", "sunny" : "солнечно", "Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}", + "Hello {name}" : "Здравствуйте {name}", "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"], - "Updating {productName} to version {version}, this may take a while." : "Обновление {productName} до версии {version}, пожалуйста, подождите.", + "Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.", "Please reload the page." : "Обновите страницу.", "The update was unsuccessful. " : "Обновление не удалось.", - "The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляем в ownCloud...", - "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль потому, что ключ неправильный", - "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, убедитесь в том, что ваше имя пользователя введено верно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо для сброса пароля, у вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", + "The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляем в ownCloud.", + "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль, неверный токен", + "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо восстановления пароля. Убедитесь, что имя пользователя указано верно.", + "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо восстановления пароля, у вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", "%s password reset" : "%s сброс пароля", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "New password" : "Новый пароль", "New Password" : "Новый пароль", "Reset password" : "Сбросить пароль", - "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте на свой страх и риск!", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s может работать некорректно на данной платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Судя по всему, экземпляр %s работает на 32х разрядной сборке PHP и указаной в php.ini директивой open_basedir. Такая конфигурация приведет к проблемам работы с файлами размером более 4GB и крайне не рекомендуется.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64х разрядную сборку.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Судя по всему, на сервере не установлен cURL и экземпляр %s работает на 32х разрядной сборке PHP. Такая конфигурация приведет к проблемам работы с файлами размером более 4GB и крайне не рекомендуется.", "Please install the cURL extension and restart your webserver." : "Установите расширение cURL и перезапустите веб-сервер.", "Personal" : "Личное", "Users" : "Пользователи", @@ -148,21 +146,21 @@ OC.L10N.register( "Error deleting tag(s)" : "Ошибка удаления метки(ок)", "Error tagging" : "Ошибка присваивания метки", "Error untagging" : "Ошибка снятия метки", - "Error favoriting" : "Ошибка размещения в любимых", - "Error unfavoriting" : "Ошибка удаления из любимых", + "Error favoriting" : "Ошибка добавления в избранные", + "Error unfavoriting" : "Ошибка удаления из избранного", "Access forbidden" : "Доступ запрещён", "File not found" : "Файл не найден", - "The specified document has not been found on the server." : "Указанный документ не может быть найден на сервере.", + "The specified document has not been found on the server." : "Указанный документ не найден на сервере.", "You can click here to return to %s." : "Вы можете нажать здесь, чтобы вернуться в %s.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n", "The share will expire on %s." : "Доступ будет закрыт %s", - "Cheers!" : "Удачи!", + "Cheers!" : "Всего наилучшего!", "Internal Server Error" : "Внутренняя ошибка сервера", "The server encountered an internal error and was unable to complete your request." : "Запрос не выполнен, на сервере произошла ошибка.", - "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера, если эта ошибка будет снова появляться, прикрепите технические детали к своему сообщению.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера, если эта ошибка будет повторяться, прикрепите технические детали к своему сообщению.", "More details can be found in the server log." : "Больше деталей может быть найдено в журнале сервера.", "Technical details" : "Технические детали", - "Remote Address: %s" : "Удаленный Адрес: %s", + "Remote Address: %s" : "Удаленный адрес: %s", "Request ID: %s" : "ID Запроса: %s", "Code: %s" : "Код: %s", "Message: %s" : "Сообщение: %s", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index c69b98d23e4..3f02c343a5d 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -4,9 +4,9 @@ "Turned off maintenance mode" : "Режим отладки отключён", "Updated database" : "База данных обновлена", "Checked database schema update" : "Проверено обновление схемы БД", - "Checked database schema update for apps" : "Проверено обновление схемы БД для приложений", + "Checked database schema update for apps" : "Проверено обновление схемы БД приложений", "Updated \"%s\" to %s" : "Обновлено \"%s\" до %s", - "Disabled incompatible apps: %s" : "Отключенные несовместимые приложения: %s", + "Disabled incompatible apps: %s" : "Отключены несовместимые приложения: %s", "No image or file provided" : "Не указано изображение или файл", "Unknown filetype" : "Неизвестный тип файла", "Invalid image" : "Некорректное изображение", @@ -34,7 +34,7 @@ "Settings" : "Настройки", "Saving..." : "Сохранение...", "Couldn't send reset email. Please contact your administrator." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, свяжитесь с вашим администратором.", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ссылка для восстановления пароля была отправлена на вашу почту. Если вы не получили её, проверьте папку спама.<br>Если там письма со ссылкой нет, то обратитесь к вашему администратору.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ссылка восстановления пароля отправлена на ваш email. Если вы не получили письмо в течении продолжительного промежутка времени, проверьте папку спама.<br>Если письмо с ссылкой восстановления пароля папке спама не обнаружено, обратитесь к вашему администратору.", "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?", "I know what I'm doing" : "Я понимаю, что делаю", "Password can not be changed. Please contact your administrator." : "Пароль не может быть изменён. Пожалуйста, свяжитесь с вашим администратором.", @@ -50,10 +50,10 @@ "New Files" : "Новые файлы", "Already existing files" : "Существующие файлы", "Which files do you want to keep?" : "Какие файлы вы хотите сохранить?", - "If you select both versions, the copied file will have a number added to its name." : "При выборе обоих версий, к названию копируемого файла будет добавлена цифра", + "If you select both versions, the copied file will have a number added to its name." : "При выборе обеих версий, к названию копируемого файла будет добавлена цифра", "Cancel" : "Отмена", "Continue" : "Продолжить", - "(all selected)" : "(выбраны все)", + "(all selected)" : "(все)", "({count} selected)" : "({count} выбрано)", "Error loading file exists template" : "Ошибка при загрузке шаблона существующего файла", "Very weak password" : "Очень слабый пароль", @@ -62,9 +62,9 @@ "Good password" : "Хороший пароль", "Strong password" : "Устойчивый к взлому пароль", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Веб-сервер до сих пор не настроен для возможности синхронизации файлов. Похоже что проблема в неисправности интерфейса WebDAV.", - "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Данный сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение удаленных дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если вы хотите иметь все возможности.", - "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что каталог с данными и файлы доступны из интернета. Файл .htaccess не работает. Крайне рекомендуется сконфигурировать вебсервер таким образом, чтобы каталог с данными более не был доступен или переместите каталог с данными куда-нибудь в другое место за пределами каталога документов вебсервера.", - "Error occurred while checking server setup" : "Произошла ошибка при проверке настройки сервера", + "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." : "Данный сервер не имеет подключения к сети интернет. Это значит, что некоторые возможности, такие как подключение удаленных дисков, уведомления об обновлениях или установка сторонних приложений – не работают. Удалённый доступ к файлам и отправка уведомлений по электронной почте вероятнее всего тоже не будут работать. Предлагаем включить соединение с интернетом для этого сервера, если вы хотите использовать все возможности.", + "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Похоже, что каталог с данными и файлы доступны из интернета. Файл .htaccess не работает. Крайне рекомендуется сконфигурировать вебсервер таким образом, чтобы каталог с данными более не был доступен, или переместите каталог с данными в другое место, за пределами каталога документов веб-сервера.", + "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", "Shared" : "Общий доступ", "Shared with {recipients}" : "Вы поделились с {recipients}", "Share" : "Поделиться", @@ -117,24 +117,22 @@ "Hello world!" : "Привет мир!", "sunny" : "солнечно", "Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}", + "Hello {name}" : "Здравствуйте {name}", "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"], - "Updating {productName} to version {version}, this may take a while." : "Обновление {productName} до версии {version}, пожалуйста, подождите.", + "Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.", "Please reload the page." : "Обновите страницу.", "The update was unsuccessful. " : "Обновление не удалось.", - "The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляем в ownCloud...", - "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль потому, что ключ неправильный", - "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, убедитесь в том, что ваше имя пользователя введено верно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо для сброса пароля, у вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", + "The update was successful. Redirecting you to ownCloud now." : "Обновление прошло успешно. Перенаправляем в ownCloud.", + "Couldn't reset password because the token is invalid" : "Невозможно сбросить пароль, неверный токен", + "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо восстановления пароля. Убедитесь, что имя пользователя указано верно.", + "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Невозможно отправить письмо восстановления пароля, у вашей учетной записи не указан адрес электронной почты. Пожалуйста, свяжитесь с администратором.", "%s password reset" : "%s сброс пароля", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "New password" : "Новый пароль", "New Password" : "Новый пароль", "Reset password" : "Сбросить пароль", - "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте на свой страх и риск!", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s может работать некорректно на данной платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Судя по всему, экземпляр %s работает на 32х разрядной сборке PHP и указаной в php.ini директивой open_basedir. Такая конфигурация приведет к проблемам работы с файлами размером более 4GB и крайне не рекомендуется.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64х разрядную сборку.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Судя по всему, на сервере не установлен cURL и экземпляр %s работает на 32х разрядной сборке PHP. Такая конфигурация приведет к проблемам работы с файлами размером более 4GB и крайне не рекомендуется.", "Please install the cURL extension and restart your webserver." : "Установите расширение cURL и перезапустите веб-сервер.", "Personal" : "Личное", "Users" : "Пользователи", @@ -146,21 +144,21 @@ "Error deleting tag(s)" : "Ошибка удаления метки(ок)", "Error tagging" : "Ошибка присваивания метки", "Error untagging" : "Ошибка снятия метки", - "Error favoriting" : "Ошибка размещения в любимых", - "Error unfavoriting" : "Ошибка удаления из любимых", + "Error favoriting" : "Ошибка добавления в избранные", + "Error unfavoriting" : "Ошибка удаления из избранного", "Access forbidden" : "Доступ запрещён", "File not found" : "Файл не найден", - "The specified document has not been found on the server." : "Указанный документ не может быть найден на сервере.", + "The specified document has not been found on the server." : "Указанный документ не найден на сервере.", "You can click here to return to %s." : "Вы можете нажать здесь, чтобы вернуться в %s.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n", "The share will expire on %s." : "Доступ будет закрыт %s", - "Cheers!" : "Удачи!", + "Cheers!" : "Всего наилучшего!", "Internal Server Error" : "Внутренняя ошибка сервера", "The server encountered an internal error and was unable to complete your request." : "Запрос не выполнен, на сервере произошла ошибка.", - "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера, если эта ошибка будет снова появляться, прикрепите технические детали к своему сообщению.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера, если эта ошибка будет повторяться, прикрепите технические детали к своему сообщению.", "More details can be found in the server log." : "Больше деталей может быть найдено в журнале сервера.", "Technical details" : "Технические детали", - "Remote Address: %s" : "Удаленный Адрес: %s", + "Remote Address: %s" : "Удаленный адрес: %s", "Request ID: %s" : "ID Запроса: %s", "Code: %s" : "Код: %s", "Message: %s" : "Сообщение: %s", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index a63c82ea726..9c9d022828d 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -119,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Pozdravljen svet!", "sunny" : "sončno", "Hello {name}, the weather is {weather}" : "Pozdravljeni, {name}, vreme je {weather}", + "Hello {name}" : "Pozdravljeni, {name}", "_download %n file_::_download %n files_" : ["prejmi %n datoteko","prejmi %n datoteki","prejmi %n datoteke","prejmi %n datotek"], "Updating {productName} to version {version}, this may take a while." : "Poteka posodabljanje {productName} na različico {version}. Opravilo je lahko dolgotrajno.", "Please reload the page." : "Stran je treba ponovno naložiti", @@ -134,9 +135,6 @@ OC.L10N.register( "Reset password" : "Ponastavi geslo", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! ", "For the best results, please consider using a GNU/Linux server instead." : "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Videti je, da je dejavna seja %s zagnana v 32-bitnem okolju PHP in da je v datoteki php.ini navedena možnost open_basedir. Pojavijo se lahko težave z datotekami, večjimi od 4GB. Tako delovanje ni priporočljivo.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraniti je treba nastavitev open_basedir v datoteki php.ini ali pa preklopiti na 64-bitno okolje PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Videti je, da je dejavna seja %s zagnana v 32-bitnem okolju PHP in da paket cURL ni nameščen. Pojavijo se lahko težave z datotekami, večjimi od 4GB. Tako delovanje ni priporočljivo.", "Please install the cURL extension and restart your webserver." : "Namestiti je treba razširitev cURL in nato ponovno zagnati spletni strežnik.", "Personal" : "Osebno", "Users" : "Uporabniki", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index c6b617a22bb..7c8e91cf90d 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -117,6 +117,7 @@ "Hello world!" : "Pozdravljen svet!", "sunny" : "sončno", "Hello {name}, the weather is {weather}" : "Pozdravljeni, {name}, vreme je {weather}", + "Hello {name}" : "Pozdravljeni, {name}", "_download %n file_::_download %n files_" : ["prejmi %n datoteko","prejmi %n datoteki","prejmi %n datoteke","prejmi %n datotek"], "Updating {productName} to version {version}, this may take a while." : "Poteka posodabljanje {productName} na različico {version}. Opravilo je lahko dolgotrajno.", "Please reload the page." : "Stran je treba ponovno naložiti", @@ -132,9 +133,6 @@ "Reset password" : "Ponastavi geslo", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! ", "For the best results, please consider using a GNU/Linux server instead." : "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Videti je, da je dejavna seja %s zagnana v 32-bitnem okolju PHP in da je v datoteki php.ini navedena možnost open_basedir. Pojavijo se lahko težave z datotekami, večjimi od 4GB. Tako delovanje ni priporočljivo.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Odstraniti je treba nastavitev open_basedir v datoteki php.ini ali pa preklopiti na 64-bitno okolje PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Videti je, da je dejavna seja %s zagnana v 32-bitnem okolju PHP in da paket cURL ni nameščen. Pojavijo se lahko težave z datotekami, večjimi od 4GB. Tako delovanje ni priporočljivo.", "Please install the cURL extension and restart your webserver." : "Namestiti je treba razširitev cURL in nato ponovno zagnati spletni strežnik.", "Personal" : "Osebno", "Users" : "Uporabniki", diff --git a/core/l10n/sr@latin.js b/core/l10n/sr@latin.js index 549f19b51b0..876a72b243a 100644 --- a/core/l10n/sr@latin.js +++ b/core/l10n/sr@latin.js @@ -134,9 +134,6 @@ OC.L10N.register( "Reset password" : "Resetuj lozinku", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nije podržan i %s neće raditi kako treba na ovoj platformi. Koristite na sopstvenu odgovornost.", "For the best results, please consider using a GNU/Linux server instead." : "Za najbolje rezultate uzmite u obzir korišćenje GNU/Linux servera.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Izgleda da ova %s instanca radi na 32bitnom PHP okruženju i open_basedir je podešen u php.ini. Ovo će dovesti do problema sa fajlovima većim od 4 GB i nikako se ne preporučuje.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Molimo Vas da uklonite open_basedir podešavanje u Vašem php.ini ili pređite na 64bitni PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Izgleda da ova %s instanca radi na 32bitnom PHP okruženju i cURL nije instaliran. Ovo će dovesti do problema sa fajlovima većim od 4 GB i nikako se ne preporučuje.", "Please install the cURL extension and restart your webserver." : "Molimo Vas da instalirate cURL ekstenziju i da ponovo pokrenete Vaš web server.", "Personal" : "Lično", "Users" : "Korisnici", diff --git a/core/l10n/sr@latin.json b/core/l10n/sr@latin.json index ee360113fbb..b8d43dee904 100644 --- a/core/l10n/sr@latin.json +++ b/core/l10n/sr@latin.json @@ -132,9 +132,6 @@ "Reset password" : "Resetuj lozinku", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nije podržan i %s neće raditi kako treba na ovoj platformi. Koristite na sopstvenu odgovornost.", "For the best results, please consider using a GNU/Linux server instead." : "Za najbolje rezultate uzmite u obzir korišćenje GNU/Linux servera.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Izgleda da ova %s instanca radi na 32bitnom PHP okruženju i open_basedir je podešen u php.ini. Ovo će dovesti do problema sa fajlovima većim od 4 GB i nikako se ne preporučuje.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Molimo Vas da uklonite open_basedir podešavanje u Vašem php.ini ili pređite na 64bitni PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Izgleda da ova %s instanca radi na 32bitnom PHP okruženju i cURL nije instaliran. Ovo će dovesti do problema sa fajlovima većim od 4 GB i nikako se ne preporučuje.", "Please install the cURL extension and restart your webserver." : "Molimo Vas da instalirate cURL ekstenziju i da ponovo pokrenete Vaš web server.", "Personal" : "Lično", "Users" : "Korisnici", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 0de70ba7dde..42ac7424060 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -83,7 +83,7 @@ OC.L10N.register( "Password protect" : "Lösenordsskydda", "Password" : "Lösenord", "Choose a password for the public link" : "Välj ett lösenord för den publika länken", - "Allow editing" : "Tillåt regidering", + "Allow editing" : "Tillåt redigering", "Email link to person" : "E-posta länk till person", "Send" : "Skicka", "Set expiration date" : "Sätt utgångsdatum", @@ -134,9 +134,6 @@ OC.L10N.register( "Reset password" : "Återställ lösenordet", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X stöds inte och %s kommer inte att fungera korrekt på denna plattform. Använd på egen risk!", "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, överväg att använda en GNU/Linux server istället.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ut som att denna %s instans kör i en 32bits PHP miljö och att open_basedir har blivit configurerad i php.ini. Detta ställer till problem med filer över 4GB och rekommenderas därför inte.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Var vänlig ta bort open_basedir inställningen i din php.ini eller byt till 64bits PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ut som att denna %s instans kör i en 32bits PHP miljö och att cURL inte är installerad. Detta ställer till problem med filer över 4GB och rekommenderas därför inte.", "Please install the cURL extension and restart your webserver." : "Vänligen installera tillägget cURL och starta om din webbserver.", "Personal" : "Personligt", "Users" : "Användare", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 54850ce203a..ab94df09cc9 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -81,7 +81,7 @@ "Password protect" : "Lösenordsskydda", "Password" : "Lösenord", "Choose a password for the public link" : "Välj ett lösenord för den publika länken", - "Allow editing" : "Tillåt regidering", + "Allow editing" : "Tillåt redigering", "Email link to person" : "E-posta länk till person", "Send" : "Skicka", "Set expiration date" : "Sätt utgångsdatum", @@ -132,9 +132,6 @@ "Reset password" : "Återställ lösenordet", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X stöds inte och %s kommer inte att fungera korrekt på denna plattform. Använd på egen risk!", "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, överväg att använda en GNU/Linux server istället.", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ut som att denna %s instans kör i en 32bits PHP miljö och att open_basedir har blivit configurerad i php.ini. Detta ställer till problem med filer över 4GB och rekommenderas därför inte.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "Var vänlig ta bort open_basedir inställningen i din php.ini eller byt till 64bits PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Det ser ut som att denna %s instans kör i en 32bits PHP miljö och att cURL inte är installerad. Detta ställer till problem med filer över 4GB och rekommenderas därför inte.", "Please install the cURL extension and restart your webserver." : "Vänligen installera tillägget cURL och starta om din webbserver.", "Personal" : "Personligt", "Users" : "Användare", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index c745ad6d210..9f9c9b0dbb9 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -79,9 +79,11 @@ OC.L10N.register( "Share with user or group …" : "Kullanıcı veya grup ile paylaş...", "Share link" : "Paylaşma bağlantısı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek", + "Link" : "Bağlantı", "Password protect" : "Parola koruması", "Password" : "Parola", "Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin", + "Allow editing" : "Düzenlemeye izin ver", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", "Set expiration date" : "Son kullanma tarihini ayarla", @@ -89,6 +91,7 @@ OC.L10N.register( "Expiration date" : "Son kullanım tarihi", "Adding user..." : "Kullanıcı ekleniyor...", "group" : "grup", + "remote" : "uzak", "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor", "Shared in {item} with {user}" : "{item} içinde {user} ile paylaşılanlar", "Unshare" : "Paylaşmayı Kaldır", @@ -97,6 +100,7 @@ OC.L10N.register( "can edit" : "düzenleyebilir", "access control" : "erişim kontrolü", "create" : "oluştur", + "change" : "değiştir", "delete" : "sil", "Password protected" : "Parola korumalı", "Error unsetting expiration date" : "Son kullanma tarihi kaldırma hatası", @@ -115,6 +119,7 @@ OC.L10N.register( "Hello world!" : "Merhaba dünya!", "sunny" : "güneşli", "Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}", + "Hello {name}" : "Merhaba {name}", "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"], "Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.", "Please reload the page." : "Lütfen sayfayı yeniden yükleyin.", @@ -130,7 +135,7 @@ OC.L10N.register( "Reset password" : "Parolayı sıfırla", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!", "For the best results, please consider using a GNU/Linux server instead." : "En iyi sonuçlar için GNU/Linux sunucusu kullanın.", - "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyiniz ve web sunucusunu yeniden başlatınız.", + "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyin ve web sunucusunu yeniden başlatın.", "Personal" : "Kişisel", "Users" : "Kullanıcılar", "Apps" : "Uygulamalar", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index f504bcd192e..e53d690aeb9 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -77,9 +77,11 @@ "Share with user or group …" : "Kullanıcı veya grup ile paylaş...", "Share link" : "Paylaşma bağlantısı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek", + "Link" : "Bağlantı", "Password protect" : "Parola koruması", "Password" : "Parola", "Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin", + "Allow editing" : "Düzenlemeye izin ver", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", "Set expiration date" : "Son kullanma tarihini ayarla", @@ -87,6 +89,7 @@ "Expiration date" : "Son kullanım tarihi", "Adding user..." : "Kullanıcı ekleniyor...", "group" : "grup", + "remote" : "uzak", "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor", "Shared in {item} with {user}" : "{item} içinde {user} ile paylaşılanlar", "Unshare" : "Paylaşmayı Kaldır", @@ -95,6 +98,7 @@ "can edit" : "düzenleyebilir", "access control" : "erişim kontrolü", "create" : "oluştur", + "change" : "değiştir", "delete" : "sil", "Password protected" : "Parola korumalı", "Error unsetting expiration date" : "Son kullanma tarihi kaldırma hatası", @@ -113,6 +117,7 @@ "Hello world!" : "Merhaba dünya!", "sunny" : "güneşli", "Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}", + "Hello {name}" : "Merhaba {name}", "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"], "Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.", "Please reload the page." : "Lütfen sayfayı yeniden yükleyin.", @@ -128,7 +133,7 @@ "Reset password" : "Parolayı sıfırla", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!", "For the best results, please consider using a GNU/Linux server instead." : "En iyi sonuçlar için GNU/Linux sunucusu kullanın.", - "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyiniz ve web sunucusunu yeniden başlatınız.", + "Please install the cURL extension and restart your webserver." : "Lütfen cURL eklentisini yükleyin ve web sunucusunu yeniden başlatın.", "Personal" : "Kişisel", "Users" : "Kullanıcılar", "Apps" : "Uygulamalar", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 51252eb02bb..962b5ee4c7d 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -131,9 +131,6 @@ OC.L10N.register( "Reset password" : "重置密码", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!", "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "%s 实例运行在 32bit PHP 环境, php.ini 中设置了 open_basedir。在文件超过 4GB 时会有问题, 所以强烈不建议这样设置.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "请从 php.ini 中删除 open_basedir 设置或变更为 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "%s 实例运行在 32bit PHP 环境, 而且 cURL 未安装. 在文件超过 4GB 时会有问题, 所以强烈不建议这样设置.", "Please install the cURL extension and restart your webserver." : "请安装 cURL 扩展并重启网页服务器.", "Personal" : "个人", "Users" : "用户", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index b6f213d40ca..3825a4c597a 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -129,9 +129,6 @@ "Reset password" : "重置密码", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!", "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。", - "It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "%s 实例运行在 32bit PHP 环境, php.ini 中设置了 open_basedir。在文件超过 4GB 时会有问题, 所以强烈不建议这样设置.", - "Please remove the open_basedir setting within your php.ini or switch to 64bit PHP." : "请从 php.ini 中删除 open_basedir 设置或变更为 64bit PHP.", - "It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "%s 实例运行在 32bit PHP 环境, 而且 cURL 未安装. 在文件超过 4GB 时会有问题, 所以强烈不建议这样设置.", "Please install the cURL extension and restart your webserver." : "请安装 cURL 扩展并重启网页服务器.", "Personal" : "个人", "Users" : "用户", diff --git a/core/register_command.php b/core/register_command.php index 8f79473ced8..5aa55be3e2c 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -22,5 +22,6 @@ $application->add(new OC\Core\Command\Maintenance\Repair($repair, \OC::$server-> $application->add(new OC\Core\Command\User\Report()); $application->add(new OC\Core\Command\User\ResetPassword(\OC::$server->getUserManager())); $application->add(new OC\Core\Command\User\LastSeen()); +$application->add(new OC\Core\Command\User\Delete(\OC::$server->getUserManager())); $application->add(new OC\Core\Command\L10n\CreateJs()); diff --git a/core/setup/controller.php b/core/setup/controller.php index ab4c351b1a0..854c30ac769 100644 --- a/core/setup/controller.php +++ b/core/setup/controller.php @@ -173,17 +173,17 @@ class Controller { if($this->iniWrapper->getString('open_basedir') !== '' && PHP_INT_SIZE === 4) { $errors[] = array( 'error' => $this->l10n->t( - 'It seems that this %s instance is running on a 32bit PHP environment and the open_basedir has been configured in php.ini. ' . + 'It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. ' . 'This will lead to problems with files over 4GB and is highly discouraged.', $this->defaults->getName() ), - 'hint' => $this->l10n->t('Please remove the open_basedir setting within your php.ini or switch to 64bit PHP.') + 'hint' => $this->l10n->t('Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP.') ); } if(!function_exists('curl_init') && PHP_INT_SIZE === 4) { $errors[] = array( 'error' => $this->l10n->t( - 'It seems that this %s instance is running on a 32bit PHP environment and cURL is not installed. ' . + 'It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. ' . 'This will lead to problems with files over 4GB and is highly discouraged.', $this->defaults->getName() ), diff --git a/lib/l10n/es.js b/lib/l10n/es.js index b351f053948..14076a8dc0d 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -1,7 +1,7 @@ OC.L10N.register( "lib", { - "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de Configuración!", + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de configuración!", "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede solucionarse fácilmente dándole al servidor permisos de escritura del directorio de configuración", "See %s" : "Mirar %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede solucionarse fácilmente %sotorgándole permisos de escritura al directorio de configuración%s.", @@ -77,12 +77,12 @@ OC.L10N.register( "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "%s shared »%s« with you" : "%s ha compartido »%s« contigo", - "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s, por que el repositorio no permite recursos compartidos del tipo %i", + "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", - "Sharing %s failed, because the user %s is the item owner" : "Compartiendo %s ha fallado, ya que el usuario %s es el dueño del elemento", - "Sharing %s failed, because the user %s does not exist" : "Compartiendo %s ha fallado, ya que el usuario %s no existe", - "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartiendo %s ha fallado, ya que el usuario %s no es miembro de algún grupo que %s es miembro", + "Sharing %s failed, because the user %s is the item owner" : "Se ha fallado al compartir %s, ya que el usuario %s es el dueño del elemento", + "Sharing %s failed, because the user %s does not exist" : "Se ha fallado al compartir %s, ya que el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se ha fallado al compartir %s, ya que el usuario %s no es miembro de ningún grupo del que %s sea miembro", "Sharing %s failed, because this item is already shared with %s" : "Se falló al compartir %s, ya que este elemento ya está compartido con %s", "Sharing %s failed, because the group %s does not exist" : "Se falló al compartir %s, ya que el grupo %s no existe", "Sharing %s failed, because %s is not a member of the group %s" : "Se falló al compartir %s, ya que %s no es miembro del grupo %s", @@ -100,7 +100,7 @@ OC.L10N.register( "Sharing %s failed, because the user %s is the original sharer" : "Se ha fallado al compartir %s, ya que el usuario %s es el compartidor original", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se ha fallado al compartir %s, ya que los permisos superan los permisos otorgados a %s", "Sharing %s failed, because resharing is not allowed" : "Se ha fallado al compartir %s, ya que volver a compartir no está permitido", - "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se ha fallado al compartir %s, porque el motor compartido para %s podría no encontrar su origen", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se ha fallado al compartir %s porque el motor compartido para %s podría no encontrar su origen", "Sharing %s failed, because the file could not be found in the file cache" : "Se ha fallado al compartir %s, ya que el archivo no pudo ser encontrado en el cache de archivo", "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"", "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"", @@ -127,7 +127,7 @@ OC.L10N.register( "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.", "Data directory (%s) is readable by other users" : "Directorio de datos (%s) se puede leer por otros usuarios.", - "Data directory (%s) is invalid" : "Directorio de datos (%s) no es válida", + "Data directory (%s) is invalid" : "El directorio de datos (%s) no es válido", "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifique que el directorio de datos contiene un archivo \".ocdata\" en su directorio raíz.", "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\"." }, diff --git a/lib/l10n/es.json b/lib/l10n/es.json index e59fe91dea6..78166b21b5e 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -1,5 +1,5 @@ { "translations": { - "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de Configuración!", + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de configuración!", "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede solucionarse fácilmente dándole al servidor permisos de escritura del directorio de configuración", "See %s" : "Mirar %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede solucionarse fácilmente %sotorgándole permisos de escritura al directorio de configuración%s.", @@ -75,12 +75,12 @@ "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "%s shared »%s« with you" : "%s ha compartido »%s« contigo", - "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s, por que el repositorio no permite recursos compartidos del tipo %i", + "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", - "Sharing %s failed, because the user %s is the item owner" : "Compartiendo %s ha fallado, ya que el usuario %s es el dueño del elemento", - "Sharing %s failed, because the user %s does not exist" : "Compartiendo %s ha fallado, ya que el usuario %s no existe", - "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartiendo %s ha fallado, ya que el usuario %s no es miembro de algún grupo que %s es miembro", + "Sharing %s failed, because the user %s is the item owner" : "Se ha fallado al compartir %s, ya que el usuario %s es el dueño del elemento", + "Sharing %s failed, because the user %s does not exist" : "Se ha fallado al compartir %s, ya que el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se ha fallado al compartir %s, ya que el usuario %s no es miembro de ningún grupo del que %s sea miembro", "Sharing %s failed, because this item is already shared with %s" : "Se falló al compartir %s, ya que este elemento ya está compartido con %s", "Sharing %s failed, because the group %s does not exist" : "Se falló al compartir %s, ya que el grupo %s no existe", "Sharing %s failed, because %s is not a member of the group %s" : "Se falló al compartir %s, ya que %s no es miembro del grupo %s", @@ -98,7 +98,7 @@ "Sharing %s failed, because the user %s is the original sharer" : "Se ha fallado al compartir %s, ya que el usuario %s es el compartidor original", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se ha fallado al compartir %s, ya que los permisos superan los permisos otorgados a %s", "Sharing %s failed, because resharing is not allowed" : "Se ha fallado al compartir %s, ya que volver a compartir no está permitido", - "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se ha fallado al compartir %s, porque el motor compartido para %s podría no encontrar su origen", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se ha fallado al compartir %s porque el motor compartido para %s podría no encontrar su origen", "Sharing %s failed, because the file could not be found in the file cache" : "Se ha fallado al compartir %s, ya que el archivo no pudo ser encontrado en el cache de archivo", "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"", "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"", @@ -125,7 +125,7 @@ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.", "Data directory (%s) is readable by other users" : "Directorio de datos (%s) se puede leer por otros usuarios.", - "Data directory (%s) is invalid" : "Directorio de datos (%s) no es válida", + "Data directory (%s) is invalid" : "El directorio de datos (%s) no es válido", "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifique que el directorio de datos contiene un archivo \".ocdata\" en su directorio raíz.", "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\"." },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 4382655be43..ff1205a8b95 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -8,6 +8,9 @@ OC.L10N.register( "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", + "Following databases are supported: %s" : "Obsługiwane są następujące bazy danych: %s", + "The library %s is not available." : "Biblioteka %s nie jest dostępna.", + "Following platforms are supported: %s" : "Obsługiwane są następujące platformy: %s", "Help" : "Pomoc", "Personal" : "Osobiste", "Settings" : "Ustawienia", @@ -20,14 +23,16 @@ OC.L10N.register( "Invalid image" : "Błędne zdjęcie", "today" : "dziś", "yesterday" : "wczoraj", - "_%n day ago_::_%n days ago_" : ["","",""], + "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu"], "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"], "last year" : "w zeszłym roku", - "_%n year ago_::_%n years ago_" : ["","",""], + "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"], "seconds ago" : "sekund temu", + "Database Error" : "Błąd bazy danych", + "Please contact your system administrator." : "Proszę skontaktować się z administratorem sytemu.", "web services under your control" : "Kontrolowane serwisy", "App directory already exists" : "Katalog aplikacji już isnieje", "Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 05da756aff4..7748bd31743 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -6,6 +6,9 @@ "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", + "Following databases are supported: %s" : "Obsługiwane są następujące bazy danych: %s", + "The library %s is not available." : "Biblioteka %s nie jest dostępna.", + "Following platforms are supported: %s" : "Obsługiwane są następujące platformy: %s", "Help" : "Pomoc", "Personal" : "Osobiste", "Settings" : "Ustawienia", @@ -18,14 +21,16 @@ "Invalid image" : "Błędne zdjęcie", "today" : "dziś", "yesterday" : "wczoraj", - "_%n day ago_::_%n days ago_" : ["","",""], + "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu"], "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"], "last year" : "w zeszłym roku", - "_%n year ago_::_%n years ago_" : ["","",""], + "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"], "seconds ago" : "sekund temu", + "Database Error" : "Błąd bazy danych", + "Please contact your system administrator." : "Proszę skontaktować się z administratorem sytemu.", "web services under your control" : "Kontrolowane serwisy", "App directory already exists" : "Katalog aplikacji już isnieje", "Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index c8ecc49c1b9..c4b5483e151 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -63,7 +63,7 @@ OC.L10N.register( "MS SQL username and/or password not valid: %s" : "MS SQL-användaren och/eller lösenordet var inte giltigt: %s", "You need to enter either an existing account or the administrator." : "Du måste antingen ange ett befintligt konto eller administratör.", "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB användarnamn och/eller lösenord är felaktigt", - "DB Error: \"%s\"" : "DB error: \"%s\"", + "DB Error: \"%s\"" : "DB fel: \"%s\"", "Offending command was: \"%s\"" : "Det felaktiga kommandot var: \"%s\"", "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB användare '%s'@'localhost' existerar redan.", "Drop this user from MySQL/MariaDB" : "Radera denna användare från MySQL/MariaDB", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index d05d57f07e6..ee6b12f09e2 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -61,7 +61,7 @@ "MS SQL username and/or password not valid: %s" : "MS SQL-användaren och/eller lösenordet var inte giltigt: %s", "You need to enter either an existing account or the administrator." : "Du måste antingen ange ett befintligt konto eller administratör.", "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB användarnamn och/eller lösenord är felaktigt", - "DB Error: \"%s\"" : "DB error: \"%s\"", + "DB Error: \"%s\"" : "DB fel: \"%s\"", "Offending command was: \"%s\"" : "Det felaktiga kommandot var: \"%s\"", "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB användare '%s'@'localhost' existerar redan.", "Drop this user from MySQL/MariaDB" : "Radera denna användare från MySQL/MariaDB", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index 8b31e25ca22..b0b2891847e 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -8,7 +8,15 @@ OC.L10N.register( "Sample configuration detected" : "Örnek yapılandırma tespit edildi", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun", "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.", + "PHP with a version lower than %s is required." : "PHP'nin %s sürümü öncesi gerekli.", "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s", + "The command line tool %s could not be found" : "Komut satırı aracı %s bulunamadı", + "The library %s is not available." : "%s kütüphanesi kullanılamıyor.", + "Library %s with a version higher than %s is required - available version %s." : "%s kütüphanesinin %s sürümünden daha yüksek sürümü gerekli - kullanılabilir sürüm %s.", + "Library %s with a version lower than %s is required - available version %s." : "%s kütüphanesinin %s sürümünden daha düşük sürümü gerekli - kullanılabilir sürüm %s.", + "Following platforms are supported: %s" : "Aşağıdaki platformlar destekleniyor: %s", + "ownCloud %s or higher is required." : "ownCloud %s veya daha üstü gerekli.", + "ownCloud with a version lower than %s is required." : "ownCloud %s sürümünden daha öncesi gerekli.", "Help" : "Yardım", "Personal" : "Kişisel", "Settings" : "Ayarlar", @@ -16,6 +24,7 @@ OC.L10N.register( "Admin" : "Yönetici", "Recommended" : "Önerilen", "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "ownCloud yazılımının bu sürümü ile uyumlu olmadığı için \\\"%s\\\" uygulaması kurulamaz.", + "App \\\"%s\\\" cannot be installed because the following dependencies are not fulfilled: %s" : "\\\"%s\\\" uygulaması, şu bağımlılıklar sağlanmadığı için yüklenemiyor: %s", "No app name specified" : "Uygulama adı belirtilmedi", "Unknown filetype" : "Bilinmeyen dosya türü", "Invalid image" : "Geçersiz resim", @@ -25,7 +34,7 @@ OC.L10N.register( "last month" : "geçen ay", "_%n month ago_::_%n months ago_" : ["","%n ay önce"], "last year" : "geçen yıl", - "_%n year ago_::_%n years ago_" : ["",""], + "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"], "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"], "seconds ago" : "saniyeler önce", @@ -68,6 +77,7 @@ OC.L10N.register( "Set an admin password." : "Bir yönetici kullanıcı parolası ayarlayın.", "Can't create or write into the data directory %s" : "Veri dizini %s oluşturulamıyor veya yazılamıyor", "%s shared »%s« with you" : "%s sizinle »%s« paylaşımında bulundu", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Arka uç %i türündeki paylaşımlara izin vermediğinden %s paylaşımı başarısız", "Sharing %s failed, because the file does not exist" : "%s paylaşımı, dosya mevcut olmadığından başarısız oldu", "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", "Sharing %s failed, because the user %s is the item owner" : "%s paylaşımı, %s öge sahibi olduğundan başarısız oldu", @@ -78,6 +88,7 @@ OC.L10N.register( "Sharing %s failed, because %s is not a member of the group %s" : "%s paylaşımı, %s kullanıcısı %s grup üyesi olmadığından başarısız oldu", "You need to provide a password to create a public link, only protected links are allowed" : "Herkese açık bir bağlantı oluşturmak için bir parola belirtmeniz gerekiyor. Sadece korunmuş bağlantılara izin verilmektedir", "Sharing %s failed, because sharing with links is not allowed" : "%s paylaşımı, bağlantılar ile paylaşım izin verilmediğinden başarısız oldu", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s paylaşımı başarısız. %s bulunamadı veya sunucu şu anda ulaşılamıyor olabilir.", "Share type %s is not valid for %s" : "%s paylaşım türü %s için geçerli değil", "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s için izinler, izinler %s için verilen izinleri aştığından dolayı ayarlanamadı", "Setting permissions for %s failed, because the item was not found" : "%s için izinler öge bulunamadığından ayarlanamadı", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index c2e979de98f..ad74acb2c8a 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -6,7 +6,15 @@ "Sample configuration detected" : "Örnek yapılandırma tespit edildi", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun", "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.", + "PHP with a version lower than %s is required." : "PHP'nin %s sürümü öncesi gerekli.", "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s", + "The command line tool %s could not be found" : "Komut satırı aracı %s bulunamadı", + "The library %s is not available." : "%s kütüphanesi kullanılamıyor.", + "Library %s with a version higher than %s is required - available version %s." : "%s kütüphanesinin %s sürümünden daha yüksek sürümü gerekli - kullanılabilir sürüm %s.", + "Library %s with a version lower than %s is required - available version %s." : "%s kütüphanesinin %s sürümünden daha düşük sürümü gerekli - kullanılabilir sürüm %s.", + "Following platforms are supported: %s" : "Aşağıdaki platformlar destekleniyor: %s", + "ownCloud %s or higher is required." : "ownCloud %s veya daha üstü gerekli.", + "ownCloud with a version lower than %s is required." : "ownCloud %s sürümünden daha öncesi gerekli.", "Help" : "Yardım", "Personal" : "Kişisel", "Settings" : "Ayarlar", @@ -14,6 +22,7 @@ "Admin" : "Yönetici", "Recommended" : "Önerilen", "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "ownCloud yazılımının bu sürümü ile uyumlu olmadığı için \\\"%s\\\" uygulaması kurulamaz.", + "App \\\"%s\\\" cannot be installed because the following dependencies are not fulfilled: %s" : "\\\"%s\\\" uygulaması, şu bağımlılıklar sağlanmadığı için yüklenemiyor: %s", "No app name specified" : "Uygulama adı belirtilmedi", "Unknown filetype" : "Bilinmeyen dosya türü", "Invalid image" : "Geçersiz resim", @@ -23,7 +32,7 @@ "last month" : "geçen ay", "_%n month ago_::_%n months ago_" : ["","%n ay önce"], "last year" : "geçen yıl", - "_%n year ago_::_%n years ago_" : ["",""], + "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"], "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"], "seconds ago" : "saniyeler önce", @@ -66,6 +75,7 @@ "Set an admin password." : "Bir yönetici kullanıcı parolası ayarlayın.", "Can't create or write into the data directory %s" : "Veri dizini %s oluşturulamıyor veya yazılamıyor", "%s shared »%s« with you" : "%s sizinle »%s« paylaşımında bulundu", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Arka uç %i türündeki paylaşımlara izin vermediğinden %s paylaşımı başarısız", "Sharing %s failed, because the file does not exist" : "%s paylaşımı, dosya mevcut olmadığından başarısız oldu", "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", "Sharing %s failed, because the user %s is the item owner" : "%s paylaşımı, %s öge sahibi olduğundan başarısız oldu", @@ -76,6 +86,7 @@ "Sharing %s failed, because %s is not a member of the group %s" : "%s paylaşımı, %s kullanıcısı %s grup üyesi olmadığından başarısız oldu", "You need to provide a password to create a public link, only protected links are allowed" : "Herkese açık bir bağlantı oluşturmak için bir parola belirtmeniz gerekiyor. Sadece korunmuş bağlantılara izin verilmektedir", "Sharing %s failed, because sharing with links is not allowed" : "%s paylaşımı, bağlantılar ile paylaşım izin verilmediğinden başarısız oldu", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s paylaşımı başarısız. %s bulunamadı veya sunucu şu anda ulaşılamıyor olabilir.", "Share type %s is not valid for %s" : "%s paylaşım türü %s için geçerli değil", "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s için izinler, izinler %s için verilen izinleri aştığından dolayı ayarlanamadı", "Setting permissions for %s failed, because the item was not found" : "%s için izinler öge bulunamadığından ayarlanamadı", diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index 78267094d0e..358360d0b46 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -36,9 +36,7 @@ class MDB2SchemaManager { * TODO: write more documentation */ public function getDbStructure($file, $mode = MDB2_SCHEMA_DUMP_STRUCTURE) { - $sm = $this->conn->getSchemaManager(); - - return \OC_DB_MDB2SchemaWriter::saveSchemaToFile($file, $sm); + return \OC_DB_MDB2SchemaWriter::saveSchemaToFile($file, $this->conn); } /** @@ -60,19 +58,19 @@ class MDB2SchemaManager { public function getMigrator() { $random = \OC::$server->getSecureRandom()->getMediumStrengthGenerator(); $platform = $this->conn->getDatabasePlatform(); + $config = \OC::$server->getConfig(); if ($platform instanceof SqlitePlatform) { - $config = \OC::$server->getConfig(); return new SQLiteMigrator($this->conn, $random, $config); } else if ($platform instanceof OraclePlatform) { - return new OracleMigrator($this->conn, $random); + return new OracleMigrator($this->conn, $random, $config); } else if ($platform instanceof MySqlPlatform) { - return new MySQLMigrator($this->conn, $random); + return new MySQLMigrator($this->conn, $random, $config); } else if ($platform instanceof SQLServerPlatform) { - return new MsSqlMigrator($this->conn, $random); + return new MsSqlMigrator($this->conn, $random, $config); } else if ($platform instanceof PostgreSqlPlatform) { - return new Migrator($this->conn, $random); + return new Migrator($this->conn, $random, $config); } else { - return new NoCheckMigrator($this->conn, $random); + return new NoCheckMigrator($this->conn, $random, $config); } } diff --git a/lib/private/db/mdb2schemawriter.php b/lib/private/db/mdb2schemawriter.php index a2a62a81475..a42cd86ba54 100644 --- a/lib/private/db/mdb2schemawriter.php +++ b/lib/private/db/mdb2schemawriter.php @@ -10,16 +10,22 @@ class OC_DB_MDB2SchemaWriter { /** * @param string $file - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $sm + * @param \OC\DB\Connection $conn * @return bool */ - static public function saveSchemaToFile($file, $sm) { + static public function saveSchemaToFile($file, \OC\DB\Connection $conn) { + $config = \OC::$server->getConfig(); + $xml = new SimpleXMLElement('<database/>'); - $xml->addChild('name', OC_Config::getValue( "dbname", "owncloud" )); + $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud')); $xml->addChild('create', 'true'); $xml->addChild('overwrite', 'false'); $xml->addChild('charset', 'utf8'); - foreach ($sm->listTables() as $table) { + + $conn->getConfiguration()-> + setFilterSchemaAssetsExpression('/^' . $config->getSystemValue('dbtableprefix', 'oc_') . '/'); + + foreach ($conn->getSchemaManager()->listTables() as $table) { self::saveTable($table, $xml->addChild('table')); } file_put_contents($file, $xml->asXML()); diff --git a/lib/private/db/migrator.php b/lib/private/db/migrator.php index 31c648a9b65..8ccc02e36a5 100644 --- a/lib/private/db/migrator.php +++ b/lib/private/db/migrator.php @@ -14,6 +14,7 @@ use \Doctrine\DBAL\Schema\Table; use \Doctrine\DBAL\Schema\Schema; use \Doctrine\DBAL\Schema\SchemaConfig; use \Doctrine\DBAL\Schema\Comparator; +use OCP\IConfig; use OCP\Security\ISecureRandom; class Migrator { @@ -28,13 +29,18 @@ class Migrator { */ private $random; + /** @var IConfig */ + protected $config; + /** * @param \Doctrine\DBAL\Connection $connection * @param ISecureRandom $random + * @param IConfig $config */ - public function __construct(\Doctrine\DBAL\Connection $connection, ISecureRandom $random) { + public function __construct(\Doctrine\DBAL\Connection $connection, ISecureRandom $random, IConfig $config) { $this->connection = $connection; $this->random = $random; + $this->config = $config; } /** @@ -70,6 +76,8 @@ class Migrator { */ $tables = $targetSchema->getTables(); + $this->connection->getConfiguration()-> + setFilterSchemaAssetsExpression('/^' . $this->config->getSystemValue('dbtableprefix', 'oc_') . '/'); $existingTables = $this->connection->getSchemaManager()->listTableNames(); foreach ($tables as $table) { @@ -153,6 +161,8 @@ class Migrator { } protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) { + $connection->getConfiguration()-> + setFilterSchemaAssetsExpression('/^' . $this->config->getSystemValue('dbtableprefix', 'oc_') . '/'); $sourceSchema = $connection->getSchemaManager()->createSchema(); // remove tables we don't know about diff --git a/lib/private/db/pgsqltools.php b/lib/private/db/pgsqltools.php index c3ac140594d..f3204d4c7b6 100644 --- a/lib/private/db/pgsqltools.php +++ b/lib/private/db/pgsqltools.php @@ -8,11 +8,23 @@ */ namespace OC\DB; +use OCP\IConfig; /** * Various PostgreSQL specific helper functions. */ class PgSqlTools { + + /** @var \OCP\IConfig */ + private $config; + + /** + * @param \OCP\IConfig $config + */ + public function __construct(IConfig $config) { + $this->config = $config; + } + /** * @brief Resynchronizes all sequences of a database after using INSERTs * without leaving out the auto-incremented column. @@ -21,6 +33,9 @@ class PgSqlTools { */ public function resynchronizeDatabaseSequences(Connection $conn) { $databaseName = $conn->getDatabase(); + $conn->getConfiguration()-> + setFilterSchemaAssetsExpression('/^' . $this->config->getSystemValue('dbtableprefix', 'oc_') . '/'); + foreach ($conn->getSchemaManager()->listSequences() as $sequence) { $sequenceName = $sequence->getName(); $sqlInfo = 'SELECT table_schema, table_name, column_name diff --git a/lib/private/db/sqlitemigrator.php b/lib/private/db/sqlitemigrator.php index 848e4986571..42b65634645 100644 --- a/lib/private/db/sqlitemigrator.php +++ b/lib/private/db/sqlitemigrator.php @@ -10,26 +10,10 @@ namespace OC\DB; use Doctrine\DBAL\DBALException; use Doctrine\DBAL\Schema\Schema; -use OCP\Security\ISecureRandom; class SQLiteMigrator extends Migrator { /** - * @var \OCP\IConfig - */ - private $config; - - /** - * @param \Doctrine\DBAL\Connection $connection - * @param ISecureRandom $random - * @param \OCP\IConfig $config - */ - public function __construct(\Doctrine\DBAL\Connection $connection, ISecureRandom $random, \OCP\IConfig $config) { - parent::__construct($connection, $random); - $this->config = $config; - } - - /** * @param \Doctrine\DBAL\Schema\Schema $targetSchema * @throws \OC\DB\MigrationException * diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index 9df64db7f07..bf44cf48aa7 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -699,6 +699,6 @@ class Cache { */ public function normalize($path) { - return \OC_Util::normalizeUnicode($path); + return trim(\OC_Util::normalizeUnicode($path), '/'); } } diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index a5383cee10d..d24b7459851 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -216,7 +216,7 @@ class Scanner extends BasicEmitter { */ public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1) { if ($reuse === -1) { - $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : 0; + $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : self::REUSE_ETAG; } $data = $this->scanFile($path, $reuse); if ($data !== null) { @@ -247,7 +247,7 @@ class Scanner extends BasicEmitter { */ public function scanChildren($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1) { if ($reuse === -1) { - $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : 0; + $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : self::REUSE_ETAG; } $this->emit('\OC\Files\Cache\Scanner', 'scanFolder', array($path, $this->storageId)); $size = 0; diff --git a/lib/private/files/cache/wrapper/cachejail.php b/lib/private/files/cache/wrapper/cachejail.php index f4ffc67d76a..3f7ea66ea1b 100644 --- a/lib/private/files/cache/wrapper/cachejail.php +++ b/lib/private/files/cache/wrapper/cachejail.php @@ -30,7 +30,7 @@ class CacheJail extends CacheWrapper { if ($path === '') { return $this->root; } else { - return $this->root . '/' . $path; + return $this->root . '/' . ltrim($path, '/'); } } diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php index ed2be59c092..100b364ca06 100644 --- a/lib/private/files/filesystem.php +++ b/lib/private/files/filesystem.php @@ -47,6 +47,8 @@ class Filesystem { static private $usersSetup = array(); + static private $normalizedPathCache = array(); + /** * classname which used for hooks handling * used as signalclass in OC_Hooks::emit() @@ -502,7 +504,7 @@ class Filesystem { if (!$path || $path[0] !== '/') { $path = '/' . $path; } - if (strstr($path, '/../') || strrchr($path, '/') === '/..') { + if (strpos($path, '/../') !== FALSE || strrchr($path, '/') === '/..') { return false; } return true; @@ -713,6 +715,12 @@ class Filesystem { * @return string */ public static function normalizePath($path, $stripTrailingSlash = true, $isAbsolutePath = false) { + $cacheKey = $path.'-'.-$stripTrailingSlash.'-'.$isAbsolutePath; + + if(isset(self::$normalizedPathCache[$cacheKey])) { + return self::$normalizedPathCache[$cacheKey]; + } + if ($path == '') { return '/'; } @@ -756,7 +764,10 @@ class Filesystem { //normalize unicode if possible $path = \OC_Util::normalizeUnicode($path); - return $windows_drive_letter . $path; + $normalizedPath = $windows_drive_letter . $path; + self::$normalizedPathCache[$cacheKey] = $normalizedPath; + + return $normalizedPath; } /** diff --git a/lib/private/files/view.php b/lib/private/files/view.php index f1c15e197d9..034c49a9059 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -1278,8 +1278,10 @@ class View { private function assertPathLength($path) { $maxLen = min(PHP_MAXPATHLEN, 4000); - $pathLen = strlen($path); - if ($pathLen > $maxLen) { + // Check for the string length - performed using isset() instead of strlen() + // because isset() is about 5x-40x faster. + if(isset($path[$maxLen])) { + $pathLen = strlen($path); throw new \OCP\Files\InvalidPathException("Path length($pathLen) exceeds max path length($maxLen): $path"); } } diff --git a/lib/private/helper.php b/lib/private/helper.php index 8e9b7d3b6f3..86cc0850bc3 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -882,13 +882,19 @@ class OC_Helper { * @return null|string */ public static function findBinaryPath($program) { + $memcache = \OC::$server->getMemCacheFactory()->create('findBinaryPath'); + if ($memcache->hasKey($program)) { + return $memcache->get($program); + } + $result = null; if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) { exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode); if ($returnCode === 0 && count($output) > 0) { - return escapeshellcmd($output[0]); + $result = escapeshellcmd($output[0]); } } - return null; + $memcache->set($program, $result, 3600); + return $result; } /** diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php index d257bd12d2a..c8ae61032aa 100644 --- a/lib/private/log/owncloud.php +++ b/lib/private/log/owncloud.php @@ -111,7 +111,7 @@ class OC_Log_Owncloud { $entriesCount = 0; $lines = 0; // Loop through each character of the file looking for new lines - while ($pos >= 0 && $entriesCount < $limit) { + while ($pos >= 0 && ($limit === null ||$entriesCount < $limit)) { fseek($handle, $pos); $ch = fgetc($handle); if ($ch == "\n" || $pos == 0) { @@ -141,4 +141,11 @@ class OC_Log_Owncloud { } return $entries; } + + /** + * @return string + */ + public static function getLogFilePath() { + return self::$logFile; + } } diff --git a/lib/private/memcache/factory.php b/lib/private/memcache/factory.php index dba9e8a0e00..1e663eecfe1 100644 --- a/lib/private/memcache/factory.php +++ b/lib/private/memcache/factory.php @@ -24,7 +24,7 @@ class Factory implements ICacheFactory { } /** - * get a cache instance, will return null if no backend is available + * get a cache instance, or Null backend if no backend available * * @param string $prefix * @return \OC\Memcache\Cache @@ -42,7 +42,7 @@ class Factory implements ICacheFactory { } elseif (Memcached::isAvailable()) { return new Memcached($prefix); } else { - return null; + return new Null($prefix); } } diff --git a/lib/private/memcache/null.php b/lib/private/memcache/null.php new file mode 100644 index 00000000000..62cd060aaca --- /dev/null +++ b/lib/private/memcache/null.php @@ -0,0 +1,35 @@ +<?php +/** + * Copyright (c) 2015 Robin McCorkell <rmccorkell@karoshi.org.uk> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Memcache; + +class Null extends Cache { + public function get($key) { + return null; + } + + public function set($key, $value, $ttl = 0) { + return true; + } + + public function hasKey($key) { + return false; + } + + public function remove($key) { + return true; + } + + public function clear($prefix = '') { + return true; + } + + static public function isAvailable() { + return true; + } +} diff --git a/lib/private/ocsclient.php b/lib/private/ocsclient.php index 351027d8018..7ce6723128b 100644 --- a/lib/private/ocsclient.php +++ b/lib/private/ocsclient.php @@ -147,7 +147,7 @@ class OC_OCSClient{ $app['changed']=strtotime($tmp[$i]->changed); $app['description']=(string)$tmp[$i]->description; $app['score']=(string)$tmp[$i]->score; - $app['downloads'] = $tmp[$i]->downloads; + $app['downloads'] = (int)$tmp[$i]->downloads; $apps[]=$app; } diff --git a/lib/private/preview.php b/lib/private/preview.php index a586c94fd11..c7ef00652aa 100644 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -200,14 +200,15 @@ class Preview { /** * set the path of the file you want a thumbnail from * @param string $file - * @return \OC\Preview $this + * @return $this */ public function setFile($file) { $this->file = $file; $this->info = null; + if ($file !== '') { $this->getFileInfo(); - if($this->info !== null && $this->info !== false) { + if($this->info instanceof \OCP\Files\FileInfo) { $this->mimeType = $this->info->getMimetype(); } } diff --git a/lib/private/util.php b/lib/private/util.php index 3178639b02e..ec3640503e4 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -1274,14 +1274,17 @@ class OC_Util { * @return bool|string */ public static function normalizeUnicode($value) { - $normalizedValue = normalizer_normalize($value); + if(Normalizer::isNormalized($value)) { + return $value; + } + + $normalizedValue = Normalizer::normalize($value); if ($normalizedValue === null || $normalizedValue === false) { - \OC_Log::write('core', 'normalizing failed for "' . $value . '"', \OC_Log::WARN); - } else { - $value = $normalizedValue; + \OC::$server->getLogger()->warning('normalizing failed for "' . $value . '"', ['app' => 'core']); + return $value; } - return $value; + return $normalizedValue; } /** diff --git a/lib/public/appframework/http/datadownloadresponse.php b/lib/public/appframework/http/datadownloadresponse.php new file mode 100644 index 00000000000..326be927b2e --- /dev/null +++ b/lib/public/appframework/http/datadownloadresponse.php @@ -0,0 +1,42 @@ +<?php +/** + * @author Georg Ehrke + * @copyright 2014 Georg Ehrke <georg@ownCloud.com> + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace OCP\AppFramework\Http; + +class DataDownloadResponse extends DownloadResponse { + /** + * @var string + */ + private $data; + + /** + * Creates a response that prompts the user to download the text + * @param string $data text to be downloaded + * @param string $filename the name that the downloaded file should have + * @param string $contentType the mimetype that the downloaded file should have + */ + public function __construct($data, $filename, $contentType) { + $this->data = $data; + parent::__construct($filename, $contentType); + } + + /** + * @param string $data + */ + public function setData($data) { + $this->data = $data; + } + + /** + * @return string + */ + public function render() { + return $this->data; + } +} diff --git a/search/ajax/search.php b/search/ajax/search.php index 5bd810aacfd..2bafe65302b 100644 --- a/search/ajax/search.php +++ b/search/ajax/search.php @@ -22,7 +22,8 @@ */ // Check if we are a user -\OC_JSON::checkLoggedIn(); +\OCP\JSON::checkLoggedIn(); +\OCP\JSON::callCheck(); \OC::$server->getSession()->close(); if (isset($_GET['query'])) { diff --git a/settings/admin.php b/settings/admin.php index e8b1fef7b7a..1e0ec57580c 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -10,8 +10,14 @@ OC_App::setActiveNavigationEntry("admin"); $template = new OC_Template('settings', 'admin', 'user'); -$entries = OC_Log_Owncloud::getEntries(3); -$entriesRemaining = count(OC_Log_Owncloud::getEntries(4)) > 3; +$showLog = (\OC::$server->getConfig()->getSystemValue('log_type', 'owncloud') === 'owncloud'); +$numEntriesToLoad = 3; +$entries = OC_Log_Owncloud::getEntries($numEntriesToLoad + 1); +$entriesRemaining = count($entries) > $numEntriesToLoad; +$entries = array_slice($entries, 0, $numEntriesToLoad); +$logFilePath = OC_Log_Owncloud::getLogFilePath(); +$doesLogFileExist = file_exists($logFilePath); +$logFileSize = filesize($logFilePath); $config = \OC::$server->getConfig(); $appConfig = \OC::$server->getAppConfig(); @@ -31,6 +37,9 @@ $template->assign('mail_smtpname', $config->getSystemValue("mail_smtpname", '')) $template->assign('mail_smtppassword', $config->getSystemValue("mail_smtppassword", '')); $template->assign('entries', $entries); $template->assign('entriesremain', $entriesRemaining); +$template->assign('logFileSize', $logFileSize); +$template->assign('doesLogFileExist', $doesLogFileExist); +$template->assign('showLog', $showLog); $template->assign('readOnlyConfigEnabled', OC_Helper::isReadOnlyConfigEnabled()); $template->assign('isLocaleWorking', OC_Util::isSetLocaleWorking()); $template->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8()); diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php index c1e5bc8eac7..1a133ea9af7 100644 --- a/settings/ajax/disableapp.php +++ b/settings/ajax/disableapp.php @@ -10,5 +10,9 @@ if (!array_key_exists('appid', $_POST)) { $appId = $_POST['appid']; $appId = OC_App::cleanAppId($appId); +// FIXME: Clear the cache - move that into some sane helper method +\OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-0'); +\OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-1'); + OC_App::disable($appId); OC_JSON::success(); diff --git a/settings/ajax/enableapp.php b/settings/ajax/enableapp.php index 81ca1e0338d..88abff487db 100644 --- a/settings/ajax/enableapp.php +++ b/settings/ajax/enableapp.php @@ -7,6 +7,9 @@ $groups = isset($_POST['groups']) ? $_POST['groups'] : null; try { OC_App::enable(OC_App::cleanAppId($_POST['appid']), $groups); + // FIXME: Clear the cache - move that into some sane helper method + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-0'); + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-1'); OC_JSON::success(); } catch (Exception $e) { OC_Log::write('core', $e->getMessage(), OC_Log::ERROR); diff --git a/settings/ajax/getlog.php b/settings/ajax/getlog.php deleted file mode 100644 index 34c8d3ce467..00000000000 --- a/settings/ajax/getlog.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/** - * Copyright (c) 2012, Robin Appelman <icewind1991@gmail.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -OC_JSON::checkAdminUser(); - -$count=(isset($_GET['count']))?$_GET['count']:50; -$offset=(isset($_GET['offset']))?$_GET['offset']:0; - -$entries=OC_Log_Owncloud::getEntries($count, $offset); -$data = array(); - -OC_JSON::success( - array( - "data" => $entries, - "remain" => count(OC_Log_Owncloud::getEntries(1, $offset + $count)) !== 0, - ) -); diff --git a/settings/ajax/installapp.php b/settings/ajax/installapp.php index 80bc1819724..f25e68214a7 100644 --- a/settings/ajax/installapp.php +++ b/settings/ajax/installapp.php @@ -12,6 +12,9 @@ $appId = OC_App::cleanAppId($appId); $result = OC_App::installApp($appId); if($result !== false) { + // FIXME: Clear the cache - move that into some sane helper method + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-0'); + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-1'); OC_JSON::success(array('data' => array('appid' => $appId))); } else { $l = \OC::$server->getL10N('settings'); diff --git a/settings/ajax/setloglevel.php b/settings/ajax/setloglevel.php deleted file mode 100644 index 542219f86c6..00000000000 --- a/settings/ajax/setloglevel.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -OC_Util::checkAdminUser(); -OCP\JSON::callCheck(); - -OC_Config::setValue( 'loglevel', $_POST['level'] ); - -echo 'true'; diff --git a/settings/ajax/uninstallapp.php b/settings/ajax/uninstallapp.php index cae7c33f292..e50fc31a449 100644 --- a/settings/ajax/uninstallapp.php +++ b/settings/ajax/uninstallapp.php @@ -12,6 +12,9 @@ $appId = OC_App::cleanAppId($appId); $result = OC_App::removeApp($appId); if($result !== false) { + // FIXME: Clear the cache - move that into some sane helper method + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-0'); + \OC::$server->getMemCacheFactory()->create('settings')->remove('listApps-1'); OC_JSON::success(array('data' => array('appid' => $appId))); } else { $l = \OC::$server->getL10N('settings'); diff --git a/settings/application.php b/settings/application.php index 74d021c5bf3..f7ba72f3bfc 100644 --- a/settings/application.php +++ b/settings/application.php @@ -12,6 +12,7 @@ namespace OC\Settings; use OC\Settings\Controller\AppSettingsController; use OC\Settings\Controller\GroupsController; +use OC\Settings\Controller\LogSettingsController; use OC\Settings\Controller\MailSettingsController; use OC\Settings\Controller\SecuritySettingsController; use OC\Settings\Controller\UsersController; @@ -54,7 +55,8 @@ class Application extends App { $c->query('AppName'), $c->query('Request'), $c->query('L10N'), - $c->query('Config') + $c->query('Config'), + $c->query('ICacheFactory') ); }); $container->registerService('SecuritySettingsController', function(IContainer $c) { @@ -91,6 +93,15 @@ class Application extends App { $c->query('URLGenerator') ); }); + $container->registerService('LogSettingsController', function(IContainer $c) { + return new LogSettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('Config'), + $c->query('L10N'), + $c->query('TimeFactory') + ); + }); /** * Middleware @@ -110,6 +121,9 @@ class Application extends App { $container->registerService('Config', function(IContainer $c) { return $c->query('ServerContainer')->getConfig(); }); + $container->registerService('ICacheFactory', function(IContainer $c) { + return $c->query('ServerContainer')->getMemCacheFactory(); + }); $container->registerService('L10N', function(IContainer $c) { return $c->query('ServerContainer')->getL10N('settings'); }); diff --git a/settings/controller/appsettingscontroller.php b/settings/controller/appsettingscontroller.php index 3688859ef56..55677d64870 100644 --- a/settings/controller/appsettingscontroller.php +++ b/settings/controller/appsettingscontroller.php @@ -14,6 +14,7 @@ namespace OC\Settings\Controller; use OC\App\DependencyAnalyzer; use OC\App\Platform; use \OCP\AppFramework\Controller; +use OCP\ICacheFactory; use OCP\IRequest; use OCP\IL10N; use OCP\IConfig; @@ -27,20 +28,25 @@ class AppSettingsController extends Controller { private $l10n; /** @var IConfig */ private $config; + /** @var \OCP\ICache */ + private $cache; /** * @param string $appName * @param IRequest $request * @param IL10N $l10n * @param IConfig $config + * @param ICacheFactory $cache */ public function __construct($appName, IRequest $request, IL10N $l10n, - IConfig $config) { + IConfig $config, + ICacheFactory $cache) { parent::__construct($appName, $request); $this->l10n = $l10n; $this->config = $config; + $this->cache = $cache->create($appName); } /** @@ -49,13 +55,16 @@ class AppSettingsController extends Controller { */ public function listCategories() { - $categories = array( - array('id' => 0, 'displayName' => (string)$this->l10n->t('Enabled') ), - array('id' => 1, 'displayName' => (string)$this->l10n->t('Not enabled') ), - ); + if(!is_null($this->cache->get('listCategories'))) { + return $this->cache->get('listCategories'); + } + $categories = [ + ['id' => 0, 'displayName' => (string)$this->l10n->t('Enabled')], + ['id' => 1, 'displayName' => (string)$this->l10n->t('Not enabled')], + ]; if($this->config->getSystemValue('appstoreenabled', true)) { - $categories[] = array('id' => 2, 'displayName' => (string)$this->l10n->t('Recommended') ); + $categories[] = ['id' => 2, 'displayName' => (string)$this->l10n->t('Recommended')]; // apps from external repo via OCS $ocs = \OC_OCSClient::getCategories(); foreach($ocs as $k => $v) { @@ -67,6 +76,7 @@ class AppSettingsController extends Controller { } $categories['status'] = 'success'; + $this->cache->set('listCategories', $categories, 3600); return $categories; } @@ -77,44 +87,46 @@ class AppSettingsController extends Controller { * @return array */ public function listApps($category = 0) { - $apps = array(); - - switch($category) { - // installed apps - case 0: - $apps = \OC_App::listAllApps(true); - $apps = array_filter($apps, function($app) { - return $app['active']; - }); - break; - // not-installed apps - case 1: - $apps = \OC_App::listAllApps(true); - $apps = array_filter($apps, function($app) { - return !$app['active']; - }); - break; - default: - if ($category === 2) { - $apps = \OC_App::getAppstoreApps('approved'); - $apps = array_filter($apps, function($app) { - return isset($app['internalclass']) && $app['internalclass'] === 'recommendedapp'; + if(!is_null($this->cache->get('listApps-'.$category))) { + $apps = $this->cache->get('listApps-'.$category); + } else { + switch ($category) { + // installed apps + case 0: + $apps = \OC_App::listAllApps(true); + $apps = array_filter($apps, function ($app) { + return $app['active']; + }); + break; + // not-installed apps + case 1: + $apps = \OC_App::listAllApps(true); + $apps = array_filter($apps, function ($app) { + return !$app['active']; }); - } else { - $apps = \OC_App::getAppstoreApps('approved', $category); - } - if (!$apps) { - $apps = array(); - } - usort($apps, function ($a, $b) { - $a = (int)$a['score']; - $b = (int)$b['score']; - if ($a === $b) { - return 0; + break; + default: + if ($category === 2) { + $apps = \OC_App::getAppstoreApps('approved'); + $apps = array_filter($apps, function ($app) { + return isset($app['internalclass']) && $app['internalclass'] === 'recommendedapp'; + }); + } else { + $apps = \OC_App::getAppstoreApps('approved', $category); + } + if (!$apps) { + $apps = array(); } - return ($a > $b) ? -1 : 1; - }); - break; + usort($apps, function ($a, $b) { + $a = (int)$a['score']; + $b = (int)$b['score']; + if ($a === $b) { + return 0; + } + return ($a > $b) ? -1 : 1; + }); + break; + } } // fix groups to be an array @@ -142,6 +154,8 @@ class AppSettingsController extends Controller { return $app; }, $apps); - return array('apps' => $apps, 'status' => 'success'); + $this->cache->set('listApps-'.$category, $apps, 300); + + return ['apps' => $apps, 'status' => 'success']; } } diff --git a/settings/controller/logsettingscontroller.php b/settings/controller/logsettingscontroller.php new file mode 100644 index 00000000000..759b466682c --- /dev/null +++ b/settings/controller/logsettingscontroller.php @@ -0,0 +1,126 @@ +<?php +/** + * @author Georg Ehrke + * @copyright 2014 Georg Ehrke <georg@ownCloud.com> + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Settings\Controller; + +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\DataDownloadResponse; +use OCP\IL10N; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\IRequest; +use OCP\IConfig; + +/** + * Class LogSettingsController + * + * @package OC\Settings\Controller + */ +class LogSettingsController extends Controller { + /** + * @var \OCP\IConfig + */ + private $config; + + /** + * @var \OCP\IL10N + */ + private $l10n; + + /** + * @var \OCP\ITimeFactory + */ + private $timefactory; + + /** + * @param string $appName + * @param IRequest $request + * @param IConfig $config + */ + public function __construct($appName, + IRequest $request, + IConfig $config, + IL10N $l10n, + ITimeFactory $timeFactory) { + + parent::__construct($appName, $request); + $this->config = $config; + $this->l10n = $l10n; + $this->timefactory = $timeFactory; + } + + /** + * set log level for logger + * + * @param int $level + * @return JSONResponse + */ + public function setLogLevel($level) { + if ($level < 0 || $level > 4) { + return new JSONResponse([ + 'message' => (string) $this->l10n->t('log-level out of allowed range'), + ], Http::STATUS_BAD_REQUEST); + } + + $this->config->setSystemValue('loglevel', $level); + return new JSONResponse([ + 'level' => $level, + ]); + } + + /** + * get log entries from logfile + * + * @param int $count + * @param int $offset + * @return JSONResponse + */ + public function getEntries($count=50, $offset=0) { + return new JSONResponse([ + 'data' => \OC_Log_Owncloud::getEntries($count, $offset), + 'remain' => count(\OC_Log_Owncloud::getEntries(1, $offset + $count)) !== 0, + ]); + } + + /** + * download logfile + * + * @NoCSRFRequired + * + * @return DataDownloadResponse + */ + public function download() { + return new DataDownloadResponse( + json_encode(\OC_Log_Owncloud::getEntries(null, null)), + $this->getFilenameForDownload(), + 'application/json' + ); + } + + /** + * get filename for the logfile that's being downloaded + * + * @param int $timestamp (defaults to time()) + * @return string + */ + private function getFilenameForDownload($timestamp=null) { + $instanceId = $this->config->getSystemValue('instanceid'); + + $filename = implode([ + 'ownCloud', + $instanceId, + (!is_null($timestamp)) ? $timestamp : $this->timefactory->getTime() + ], '-'); + $filename .= '.log'; + + return $filename; + } +} diff --git a/settings/js/admin.js b/settings/js/admin.js index 059e48ebabe..d00d083407f 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -34,7 +34,7 @@ $(document).ready(function(){ $('#loglevel').change(function(){ - $.post(OC.filePath('settings','ajax','setloglevel.php'), { level: $(this).val() },function(){ + $.post(OC.generateUrl('/settings/admin/log/level'), {level: $(this).val()},function(){ OC.Log.reload(); } ); }); diff --git a/settings/js/log.js b/settings/js/log.js index 46d1bfefd5f..c3a9a201e83 100644 --- a/settings/js/log.js +++ b/settings/js/log.js @@ -20,14 +20,12 @@ OC.Log = { loaded: 3,//are initially loaded getMore: function (count) { count = count || 10; - $.get(OC.filePath('settings', 'ajax', 'getlog.php'), {offset: OC.Log.loaded, count: count}, function (result) { - if (result.status === 'success') { - OC.Log.addEntries(result.data); - if (!result.remain) { - $('#moreLog').hide(); - } - $('#lessLog').show(); + $.get(OC.generateUrl('/settings/admin/log/entries'), {offset: OC.Log.loaded, count: count}, function (result) { + OC.Log.addEntries(result.data); + if (!result.remain) { + $('#moreLog').hide(); } + $('#lessLog').show(); }); }, showLess: function (count) { diff --git a/settings/js/personal.js b/settings/js/personal.js index fba4af1fd48..0cf0cd81a7b 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -168,7 +168,9 @@ function avatarResponseHandler (data) { } $(document).ready(function () { - $('#pass2').showPassword().keyup(); + if($('#pass2').length) { + $('#pass2').showPassword().keyup(); + } $("#passwordbutton").click(function () { if ($('#pass1').val() !== '' && $('#pass2').val() !== '') { // Serialize the data diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js index 7fda0f9a1c7..a70fe79745e 100644 --- a/settings/l10n/cs_CZ.js +++ b/settings/l10n/cs_CZ.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", + "log-level out of allowed range" : "úroveň logování z povoleného rozpětí", "Saved" : "Uloženo", "test email settings" : "otestovat nastavení emailu", "If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento email, nastavení se zdají být v pořádku.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.", "URL generation in notification emails" : "Generování adresy URL v oznamovacích emailech", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")", "Configuration Checks" : "Ověření konfigurace", "No problems found" : "Nebyly nalezeny žádné problémy", "Please double check the <a href='%s'>installation guides</a>." : "Zkonzultujte, prosím, <a href='%s'>průvodce instalací</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Otestovat nastavení emailu", "Send email" : "Odeslat email", "Log level" : "Úroveň zaznamenávání", + "Download logfile" : "Stáhnout soubor logu", "More" : "Více", "Less" : "Méně", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Soubor logu je větší než 100 MB. Jeho stažení zabere nějaký čas!", "Version" : "Verze", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Vyvinuto <a href=\"http://ownCloud.org/contact\" target=\"_blank\">komunitou ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">zdrojový kód</a> je licencován pod <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Více aplikací", diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json index a04bed3ad8b..f209611e6cb 100644 --- a/settings/l10n/cs_CZ.json +++ b/settings/l10n/cs_CZ.json @@ -34,6 +34,7 @@ "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", + "log-level out of allowed range" : "úroveň logování z povoleného rozpětí", "Saved" : "Uloženo", "test email settings" : "otestovat nastavení emailu", "If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento email, nastavení se zdají být v pořádku.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.", "URL generation in notification emails" : "Generování adresy URL v oznamovacích emailech", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")", "Configuration Checks" : "Ověření konfigurace", "No problems found" : "Nebyly nalezeny žádné problémy", "Please double check the <a href='%s'>installation guides</a>." : "Zkonzultujte, prosím, <a href='%s'>průvodce instalací</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Otestovat nastavení emailu", "Send email" : "Odeslat email", "Log level" : "Úroveň zaznamenávání", + "Download logfile" : "Stáhnout soubor logu", "More" : "Více", "Less" : "Méně", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Soubor logu je větší než 100 MB. Jeho stažení zabere nějaký čas!", "Version" : "Verze", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Vyvinuto <a href=\"http://ownCloud.org/contact\" target=\"_blank\">komunitou ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">zdrojový kód</a> je licencován pod <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Více aplikací", diff --git a/settings/l10n/da.js b/settings/l10n/da.js index f5af406c792..5fed8e856a8 100644 --- a/settings/l10n/da.js +++ b/settings/l10n/da.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Gruppen findes allerede.", "Unable to add group." : "Kan ikke tilføje gruppen.", "Unable to delete group." : "Kan ikke slette gruppen.", + "log-level out of allowed range" : "niveau for logregistrering går ud over tilladte interval", "Saved" : "Gemt", "test email settings" : "test e-mailindstillinger", "If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Det betyder at der kan være problemer med visse tegn i filnavne.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.", "URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwrite.cli.url\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")", "Configuration Checks" : "Konfigurationstjek", "No problems found" : "Der blev ikke fundet problemer", "Please double check the <a href='%s'>installation guides</a>." : "Dobbelttjek venligst <a href='%s'>installations vejledningerne</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Test e-mail-indstillinger", "Send email" : "Send e-mail", "Log level" : "Log niveau", + "Download logfile" : "Hent logfil", "More" : "Mere", "Less" : "Mindre", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Logfilen er større end 100MB. Det kan tage en del tid at hente den!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Udviklet af <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownClouds community</a>, og <a href=\"https://github.com/owncloud\" target=\"_blank\">kildekoden</a> er underlagt licensen <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Flere programmer", diff --git a/settings/l10n/da.json b/settings/l10n/da.json index b8e6b04c687..62273005111 100644 --- a/settings/l10n/da.json +++ b/settings/l10n/da.json @@ -34,6 +34,7 @@ "Group already exists." : "Gruppen findes allerede.", "Unable to add group." : "Kan ikke tilføje gruppen.", "Unable to delete group." : "Kan ikke slette gruppen.", + "log-level out of allowed range" : "niveau for logregistrering går ud over tilladte interval", "Saved" : "Gemt", "test email settings" : "test e-mailindstillinger", "If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Det betyder at der kan være problemer med visse tegn i filnavne.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.", "URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwrite.cli.url\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")", "Configuration Checks" : "Konfigurationstjek", "No problems found" : "Der blev ikke fundet problemer", "Please double check the <a href='%s'>installation guides</a>." : "Dobbelttjek venligst <a href='%s'>installations vejledningerne</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Test e-mail-indstillinger", "Send email" : "Send e-mail", "Log level" : "Log niveau", + "Download logfile" : "Hent logfil", "More" : "Mere", "Less" : "Mindre", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Logfilen er større end 100MB. Det kan tage en del tid at hente den!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Udviklet af <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownClouds community</a>, og <a href=\"https://github.com/owncloud\" target=\"_blank\">kildekoden</a> er underlagt licensen <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Flere programmer", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index c8e4a2d6505..8e7b51a8b24 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", + "log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs", "Saved" : "Gespeichert", "test email settings" : "E-Mail-Einstellungen testen", "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Dies bedeutet, dass Probleme mit bestimmten Zeichen in den Dateinamen geben kann.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.", "URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwrite.cli.url\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").", "Configuration Checks" : "Konfigurationsprüfungen", "No problems found" : "Keine Probleme gefunden", "Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfe die <a href='%s'>Installationsanleitungen</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Teste E-Mail-Einstellungen", "Send email" : "Sende E-Mail", "Log level" : "Loglevel", + "Download logfile" : "Logdatei herunterladen", "More" : "Mehr", "Less" : "Weniger", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Entwickelt von der <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-Community</a>, der <a href=\"https://github.com/owncloud\" target=\"_blank\">Quellcode</a> ist unter der <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> lizenziert.", "More apps" : "Mehr Apps", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index e8e0fcadda0..020b1c0c6cb 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -34,6 +34,7 @@ "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", + "log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs", "Saved" : "Gespeichert", "test email settings" : "E-Mail-Einstellungen testen", "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Dies bedeutet, dass Probleme mit bestimmten Zeichen in den Dateinamen geben kann.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.", "URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwrite.cli.url\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").", "Configuration Checks" : "Konfigurationsprüfungen", "No problems found" : "Keine Probleme gefunden", "Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfe die <a href='%s'>Installationsanleitungen</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Teste E-Mail-Einstellungen", "Send email" : "Sende E-Mail", "Log level" : "Loglevel", + "Download logfile" : "Logdatei herunterladen", "More" : "Mehr", "Less" : "Weniger", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Entwickelt von der <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-Community</a>, der <a href=\"https://github.com/owncloud\" target=\"_blank\">Quellcode</a> ist unter der <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> lizenziert.", "More apps" : "Mehr Apps", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index 4a9cf98412c..f05330970ba 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", + "log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs", "Saved" : "Gespeichert", "test email settings" : "E-Mail-Einstellungen testen", "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Dieses bedeutet, dass es Probleme mit bestimmten Zeichen in den Dateinamen geben kann.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.", "URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setzen Sie bitte die \"overwrite.cli.url\"-Option in Ihrer config.php auf das Web-Wurzelverzeichnis Ihrer Installation (Vorschlag: \"%s\").", "Configuration Checks" : "Konfigurationsprüfungen", "No problems found" : "Keine Probleme gefunden", "Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "E-Mail-Einstellungen testen", "Send email" : "E-Mail senden", "Log level" : "Log-Level", + "Download logfile" : "Logdatei herunterladen", "More" : "Mehr", "Less" : "Weniger", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Entwickelt von der <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-Community</a>. Der <a href=\"https://github.com/owncloud\" target=\"_blank\">Quellcode</a> ist unter der <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> lizenziert.", "More apps" : "Mehr Apps", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 0e38a9276b8..0ce8cfdec6e 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -34,6 +34,7 @@ "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", + "log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs", "Saved" : "Gespeichert", "test email settings" : "E-Mail-Einstellungen testen", "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Dieses bedeutet, dass es Probleme mit bestimmten Zeichen in den Dateinamen geben kann.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.", "URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setzen Sie bitte die \"overwrite.cli.url\"-Option in Ihrer config.php auf das Web-Wurzelverzeichnis Ihrer Installation (Vorschlag: \"%s\").", "Configuration Checks" : "Konfigurationsprüfungen", "No problems found" : "Keine Probleme gefunden", "Please double check the <a href='%s'>installation guides</a>." : "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "E-Mail-Einstellungen testen", "Send email" : "E-Mail senden", "Log level" : "Log-Level", + "Download logfile" : "Logdatei herunterladen", "More" : "Mehr", "Less" : "Weniger", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Die Logdatei ist größer als 100 MB. Es kann etwas Zeit beanspruchen, sie herunterzuladen!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Entwickelt von der <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-Community</a>. Der <a href=\"https://github.com/owncloud\" target=\"_blank\">Quellcode</a> ist unter der <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> lizenziert.", "More apps" : "Mehr Apps", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index 0ac79f9b1aa..d94dfc1f8e7 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Group already exists.", "Unable to add group." : "Unable to add group.", "Unable to delete group." : "Unable to delete group.", + "log-level out of allowed range" : "log-level out of allowed range", "Saved" : "Saved", "test email settings" : "test email settings", "If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.", "URL generation in notification emails" : "URL generation in notification emails", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")", "Configuration Checks" : "Configuration Checks", "No problems found" : "No problems found", "Please double check the <a href='%s'>installation guides</a>." : "Please double check the <a href='%s'>installation guides</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Test email settings", "Send email" : "Send email", "Log level" : "Log level", + "Download logfile" : "Download logfile", "More" : "More", "Less" : "Less", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "The logfile is bigger than 100MB. Downloading it may take some time!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public Licence\">AGPL</abbr></a>.", "More apps" : "More apps", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 39606b96528..85f04be7fcd 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -34,6 +34,7 @@ "Group already exists." : "Group already exists.", "Unable to add group." : "Unable to add group.", "Unable to delete group." : "Unable to delete group.", + "log-level out of allowed range" : "log-level out of allowed range", "Saved" : "Saved", "test email settings" : "test email settings", "If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.", "URL generation in notification emails" : "URL generation in notification emails", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")", "Configuration Checks" : "Configuration Checks", "No problems found" : "No problems found", "Please double check the <a href='%s'>installation guides</a>." : "Please double check the <a href='%s'>installation guides</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Test email settings", "Send email" : "Send email", "Log level" : "Log level", + "Download logfile" : "Download logfile", "More" : "More", "Less" : "Less", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "The logfile is bigger than 100MB. Downloading it may take some time!", "Version" : "Version", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public Licence\">AGPL</abbr></a>.", "More apps" : "More apps", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index fb3dbc5b570..3aec716efff 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -123,6 +123,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ", "URL generation in notification emails" : "Generación de URL en mensajes de notificación", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwrite.cli.url\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")", "Configuration Checks" : "Comprobaciones de la configuración", "No problems found" : "No se han encontrado problemas", "Please double check the <a href='%s'>installation guides</a>." : "Por favor, vuelva a comprobar las <a href='%s'>guías de instalación</a>.", @@ -143,7 +144,7 @@ OC.L10N.register( "Enforce expiration date" : "Imponer fecha de caducidad", "Allow resharing" : "Permitir re-compartición", "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos", - "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electronico de los archivos compartidos a otros usuarios", + "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electrónico de los archivos compartidos a otros usuarios", "Exclude groups from sharing" : "Excluye grupos de compartir", "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.", "Enforce HTTPS" : "Forzar HTTPS", @@ -166,8 +167,10 @@ OC.L10N.register( "Test email settings" : "Probar configuración de correo electrónico", "Send email" : "Enviar mensaje", "Log level" : "Nivel de registro", + "Download logfile" : "Descargar archivo de registro", "More" : "Más", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "El archivo de registro es mayor de 100MB. Descargarlo puede tardar. ", "Version" : "Versión", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desarrollado por la <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidad ownCloud</a>, el <a href=\"https://github.com/owncloud\" target=\"_blank\">código fuente</a> está bajo licencia <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Más aplicaciones", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index bc30c9da3e8..7bbebbbe13c 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -121,6 +121,7 @@ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ", "URL generation in notification emails" : "Generación de URL en mensajes de notificación", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwrite.cli.url\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")", "Configuration Checks" : "Comprobaciones de la configuración", "No problems found" : "No se han encontrado problemas", "Please double check the <a href='%s'>installation guides</a>." : "Por favor, vuelva a comprobar las <a href='%s'>guías de instalación</a>.", @@ -141,7 +142,7 @@ "Enforce expiration date" : "Imponer fecha de caducidad", "Allow resharing" : "Permitir re-compartición", "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos", - "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electronico de los archivos compartidos a otros usuarios", + "Allow users to send mail notification for shared files to other users" : "Permitir a los usuarios enviar notificaciones por correo electrónico de los archivos compartidos a otros usuarios", "Exclude groups from sharing" : "Excluye grupos de compartir", "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.", "Enforce HTTPS" : "Forzar HTTPS", @@ -164,8 +165,10 @@ "Test email settings" : "Probar configuración de correo electrónico", "Send email" : "Enviar mensaje", "Log level" : "Nivel de registro", + "Download logfile" : "Descargar archivo de registro", "More" : "Más", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "El archivo de registro es mayor de 100MB. Descargarlo puede tardar. ", "Version" : "Versión", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desarrollado por la <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidad ownCloud</a>, el <a href=\"https://github.com/owncloud\" target=\"_blank\">código fuente</a> está bajo licencia <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Más aplicaciones", diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js index fd61ccdec00..d002d53cfcf 100644 --- a/settings/l10n/fi_FI.js +++ b/settings/l10n/fi_FI.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Ryhmä on jo olemassa.", "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", + "log-level out of allowed range" : "lokitaso ei sallittujen rajojen sisäpuolella", "Saved" : "Tallennettu", "test email settings" : "testaa sähköpostiasetukset", "If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.", @@ -160,8 +161,10 @@ OC.L10N.register( "Test email settings" : "Testaa sähköpostiasetukset", "Send email" : "Lähetä sähköpostiviesti", "Log level" : "Lokitaso", + "Download logfile" : "Lataa lokitiedosto", "More" : "Enemmän", "Less" : "Vähemmän", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Lokitiedostoa on kooltaan yli 100 megatavua. Sen lataaminen saattaa kestää hetken!", "Version" : "Versio", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Kehityksestä on vastannut <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-yhteisö</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">lähdekoodi</a> on julkaistu lisenssin <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> alaisena.", "More apps" : "Lisää sovelluksia", diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json index dfb4006ad93..591198467b7 100644 --- a/settings/l10n/fi_FI.json +++ b/settings/l10n/fi_FI.json @@ -34,6 +34,7 @@ "Group already exists." : "Ryhmä on jo olemassa.", "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", + "log-level out of allowed range" : "lokitaso ei sallittujen rajojen sisäpuolella", "Saved" : "Tallennettu", "test email settings" : "testaa sähköpostiasetukset", "If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.", @@ -158,8 +159,10 @@ "Test email settings" : "Testaa sähköpostiasetukset", "Send email" : "Lähetä sähköpostiviesti", "Log level" : "Lokitaso", + "Download logfile" : "Lataa lokitiedosto", "More" : "Enemmän", "Less" : "Vähemmän", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Lokitiedostoa on kooltaan yli 100 megatavua. Sen lataaminen saattaa kestää hetken!", "Version" : "Versio", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Kehityksestä on vastannut <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-yhteisö</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">lähdekoodi</a> on julkaistu lisenssin <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> alaisena.", "More apps" : "Lisää sovelluksia", diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js index ca99679390a..25a433f6814 100644 --- a/settings/l10n/gl.js +++ b/settings/l10n/gl.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Xa existe o grupo.", "Unable to add group." : "Non é posíbel engadir o grupo.", "Unable to delete group." : "Non é posíbel eliminar o grupo.", + "log-level out of allowed range" : "o nivel do rexistro está fora do intervalo admitido", "Saved" : "Gardado", "test email settings" : "correo de proba dos axustes", "If you received this email, the settings seem to be correct." : "Se recibiu este correo, semella que a configuración é correcta.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Isto significa que pode haber problemas con certos caracteres en nomes de ficheiro.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomendámoslle que instale no sistema os paquetes necesarios para admitir unha das seguintes configuracións rexionais: %s.", "URL generation in notification emails" : "Xeración dos URL nos correos de notificación", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación no está feita na raíz do dominio e usa o sistema cron, pode haber problemas coa xeración de URL. Para evitar estes problemas, axuste a opción «overwrite.cli.url» no seu ficheiro config.php á ruta webroot da instalación (suxestión: «%s»)", "Configuration Checks" : "Comprobacións da configuración", "No problems found" : "Non se atoparon problemas", "Please double check the <a href='%s'>installation guides</a>." : "Volva comprobar as <a href='%s'>guías de instalación</a>", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Correo de proba dos axustes", "Send email" : "Enviar o correo", "Log level" : "Nivel de rexistro", + "Download logfile" : "Descargar o ficheiro do rexistro", "More" : "Máis", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "O ficheiro do rexistro ocupa máis de 100MB. A descarga pode levar bastante tempo!", "Version" : "Versión", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desenvolvido pola <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o <a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está baixo a licenza <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Máis aplicativos", diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json index 5dcffe37d3c..621d12a371c 100644 --- a/settings/l10n/gl.json +++ b/settings/l10n/gl.json @@ -34,6 +34,7 @@ "Group already exists." : "Xa existe o grupo.", "Unable to add group." : "Non é posíbel engadir o grupo.", "Unable to delete group." : "Non é posíbel eliminar o grupo.", + "log-level out of allowed range" : "o nivel do rexistro está fora do intervalo admitido", "Saved" : "Gardado", "test email settings" : "correo de proba dos axustes", "If you received this email, the settings seem to be correct." : "Se recibiu este correo, semella que a configuración é correcta.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Isto significa que pode haber problemas con certos caracteres en nomes de ficheiro.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomendámoslle que instale no sistema os paquetes necesarios para admitir unha das seguintes configuracións rexionais: %s.", "URL generation in notification emails" : "Xeración dos URL nos correos de notificación", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación no está feita na raíz do dominio e usa o sistema cron, pode haber problemas coa xeración de URL. Para evitar estes problemas, axuste a opción «overwrite.cli.url» no seu ficheiro config.php á ruta webroot da instalación (suxestión: «%s»)", "Configuration Checks" : "Comprobacións da configuración", "No problems found" : "Non se atoparon problemas", "Please double check the <a href='%s'>installation guides</a>." : "Volva comprobar as <a href='%s'>guías de instalación</a>", @@ -164,8 +166,10 @@ "Test email settings" : "Correo de proba dos axustes", "Send email" : "Enviar o correo", "Log level" : "Nivel de rexistro", + "Download logfile" : "Descargar o ficheiro do rexistro", "More" : "Máis", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "O ficheiro do rexistro ocupa máis de 100MB. A descarga pode levar bastante tempo!", "Version" : "Versión", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desenvolvido pola <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o <a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está baixo a licenza <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Máis aplicativos", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 76915d27c4f..ca9ff64d4cb 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Il gruppo esiste già.", "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", + "log-level out of allowed range" : "livello di log fuori dall'intervallo consentito", "Saved" : "Salvato", "test email settings" : "prova impostazioni email", "If you received this email, the settings seem to be correct." : "Se hai ricevuto questa email, le impostazioni dovrebbero essere corrette.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Ciò significa che potrebbero esserci problemi con alcuni caratteri nei nomi dei file.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Consigliamo vivamente di installare i pacchetti richiesti sul tuo sistema per supportare una delle localizzazioni seguenti: %s.", "URL generation in notification emails" : "Generazione di URL nelle email di notifica", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwrite.cli.url\" nel file config.php al percorso della radice del sito della tua installazione (Consigliato: \"%s\")", "Configuration Checks" : "Controlli di configurazione", "No problems found" : "Nessun problema trovato", "Please double check the <a href='%s'>installation guides</a>." : "Leggi attentamente le <a href='%s'>guide d'installazione</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Prova impostazioni email", "Send email" : "Invia email", "Log level" : "Livello di log", + "Download logfile" : "Scarica file di log", "More" : "Altro", "Less" : "Meno", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Il file di log è più grande di 100MB. Scaricarlo potrebbe richiedere del tempo!", "Version" : "Versione", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Sviluppato dalla <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunità di ownCloud</a>, il <a href=\"https://github.com/owncloud\" target=\"_blank\">codice sorgente</a> è rilasciato nei termini della licenza <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Altre applicazioni", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 57f3aff4803..7fc76dce6ef 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -34,6 +34,7 @@ "Group already exists." : "Il gruppo esiste già.", "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", + "log-level out of allowed range" : "livello di log fuori dall'intervallo consentito", "Saved" : "Salvato", "test email settings" : "prova impostazioni email", "If you received this email, the settings seem to be correct." : "Se hai ricevuto questa email, le impostazioni dovrebbero essere corrette.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Ciò significa che potrebbero esserci problemi con alcuni caratteri nei nomi dei file.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Consigliamo vivamente di installare i pacchetti richiesti sul tuo sistema per supportare una delle localizzazioni seguenti: %s.", "URL generation in notification emails" : "Generazione di URL nelle email di notifica", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwrite.cli.url\" nel file config.php al percorso della radice del sito della tua installazione (Consigliato: \"%s\")", "Configuration Checks" : "Controlli di configurazione", "No problems found" : "Nessun problema trovato", "Please double check the <a href='%s'>installation guides</a>." : "Leggi attentamente le <a href='%s'>guide d'installazione</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Prova impostazioni email", "Send email" : "Invia email", "Log level" : "Livello di log", + "Download logfile" : "Scarica file di log", "More" : "Altro", "Less" : "Meno", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Il file di log è più grande di 100MB. Scaricarlo potrebbe richiedere del tempo!", "Version" : "Versione", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Sviluppato dalla <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunità di ownCloud</a>, il <a href=\"https://github.com/owncloud\" target=\"_blank\">codice sorgente</a> è rilasciato nei termini della licenza <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Altre applicazioni", diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js index 68382ae44b0..73e430f041f 100644 --- a/settings/l10n/ja.js +++ b/settings/l10n/ja.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "グループは既に存在しています", "Unable to add group." : "グループを追加できません", "Unable to delete group." : "グループを削除できません", + "log-level out of allowed range" : "ログレベルが許可された範囲を超えています", "Saved" : "保存されました", "test email settings" : "メール設定のテスト", "If you received this email, the settings seem to be correct." : "このメールを受け取ったら、設定は正しいはずです。", @@ -129,22 +130,22 @@ OC.L10N.register( "Last cron was executed at %s." : "直近では%sにcronが実行されました。", "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "直近では%sにcronが実行されました。これは1時間以上前になるので、何かおかしいです。", "Cron was not executed yet!" : "cron は未だ実行されていません!", - "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行する", - "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています", + "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムの cron サービスを利用して、15分間隔で cron.php ファイルを実行する。", "Allow apps to use the Share API" : "アプリからの共有APIの利用を許可する", "Allow users to share via link" : "URLリンクで共有を許可する", "Enforce password protection" : "常にパスワード保護を有効にする", "Allow public uploads" : "パブリックなアップロードを許可する", "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する", - "Set default expiration date" : "有効期限のデフォルト値を設定", + "Set default expiration date" : "有効期限のデフォルト値を設定する", "Expire after " : "無効になるまで", "days" : "日", "Enforce expiration date" : "有効期限を反映させる", "Allow resharing" : "再共有を許可する", "Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する", "Allow users to send mail notification for shared files to other users" : "共有ファイルに関するメール通知の送信をユーザに許可する", - "Exclude groups from sharing" : "共有可能なグループから除外", + "Exclude groups from sharing" : "共有可能なグループから除外する", "These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。", "Enforce HTTPS" : "常にHTTPSを使用する", "Forces the clients to connect to %s via an encrypted connection." : "クライアントから %sへの接続を常に暗号化します。", diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json index 2dfc1033763..c1f371d27b7 100644 --- a/settings/l10n/ja.json +++ b/settings/l10n/ja.json @@ -34,6 +34,7 @@ "Group already exists." : "グループは既に存在しています", "Unable to add group." : "グループを追加できません", "Unable to delete group." : "グループを削除できません", + "log-level out of allowed range" : "ログレベルが許可された範囲を超えています", "Saved" : "保存されました", "test email settings" : "メール設定のテスト", "If you received this email, the settings seem to be correct." : "このメールを受け取ったら、設定は正しいはずです。", @@ -127,22 +128,22 @@ "Last cron was executed at %s." : "直近では%sにcronが実行されました。", "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "直近では%sにcronが実行されました。これは1時間以上前になるので、何かおかしいです。", "Cron was not executed yet!" : "cron は未だ実行されていません!", - "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行する", - "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています", + "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムの cron サービスを利用して、15分間隔で cron.php ファイルを実行する。", "Allow apps to use the Share API" : "アプリからの共有APIの利用を許可する", "Allow users to share via link" : "URLリンクで共有を許可する", "Enforce password protection" : "常にパスワード保護を有効にする", "Allow public uploads" : "パブリックなアップロードを許可する", "Allow users to send mail notification for shared files" : "共有ファイルに関するメール通知の送信をユーザーに許可する", - "Set default expiration date" : "有効期限のデフォルト値を設定", + "Set default expiration date" : "有効期限のデフォルト値を設定する", "Expire after " : "無効になるまで", "days" : "日", "Enforce expiration date" : "有効期限を反映させる", "Allow resharing" : "再共有を許可する", "Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する", "Allow users to send mail notification for shared files to other users" : "共有ファイルに関するメール通知の送信をユーザに許可する", - "Exclude groups from sharing" : "共有可能なグループから除外", + "Exclude groups from sharing" : "共有可能なグループから除外する", "These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。", "Enforce HTTPS" : "常にHTTPSを使用する", "Forces the clients to connect to %s via an encrypted connection." : "クライアントから %sへの接続を常に暗号化します。", diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js index 0231c747f93..cfb5e62e971 100644 --- a/settings/l10n/nb_NO.js +++ b/settings/l10n/nb_NO.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Gruppe finnes allerede.", "Unable to add group." : "Kan ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", + "log-level out of allowed range" : "Loggnivå utenfor tillatt område", "Saved" : "Lagret", "test email settings" : "Test av innstillinger for e-post", "If you received this email, the settings seem to be correct." : "Hvis du mottar denne e-posten er innstillingene tydeligvis korrekte.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Dette betyr at det kan forekomme problemer med visse tegn i filnavn.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler sterkt å installere de påkrevde pakkene på systemet ditt for å støtte en av følgende nasjonale innstillinger: %s.", "URL generation in notification emails" : "URL-generering i varsel-eposter", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis installasjonen din ikke er installert i roten av domenet og bruker systemets cron, kan det bli problemer med URL-genereringen. For å unngå disse problemene, sett \"overwrite.cli.url\" i filen config.php til web-roten for installasjonen din (Foreslått: \"%s\")", "Configuration Checks" : "Konfigurasjons-sjekker", "No problems found" : "Ingen problemer funnet", "Please double check the <a href='%s'>installation guides</a>." : "Vennligst dobbelsjekk <a href='%s'>installasjonsguiden</a>.", @@ -134,19 +136,19 @@ OC.L10N.register( "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", "Allow apps to use the Share API" : "Tillat apper å bruke API for Deling", "Allow users to share via link" : "Tillat brukere å dele via lenke", - "Enforce password protection" : "Tving passordbeskyttelse", + "Enforce password protection" : "Krev passordbeskyttelse", "Allow public uploads" : "Tillat offentlig opplasting", "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer", "Set default expiration date" : "Sett standard utløpsdato", "Expire after " : "Utløper etter", "days" : "dager", - "Enforce expiration date" : "Tving utløpsdato", + "Enforce expiration date" : "Krev utløpsdato", "Allow resharing" : "TIllat videre deling", "Restrict users to only share with users in their groups" : "Begrens brukere til kun å dele med brukere i deres grupper", "Allow users to send mail notification for shared files to other users" : "Tillat at brukere sender varsler om delte filer på e-post til andre brukere", "Exclude groups from sharing" : "Utelukk grupper fra deling", "These groups will still be able to receive shares, but not to initiate them." : "Disse gruppene vil fremdeles kunne motta delinger men ikke lage dem.", - "Enforce HTTPS" : "Tving HTTPS", + "Enforce HTTPS" : "Krev HTTPS", "Forces the clients to connect to %s via an encrypted connection." : "Tvinger klientene til å koble til %s via en kryptert forbindelse.", "Enforce HTTPS for subdomains" : "Krev HTTPS for underdomener", "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Tvinger klientene til å koble til %s og underdomener via en kryptert forbindelse.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Test innstillinger for e-post", "Send email" : "Send e-post", "Log level" : "Loggnivå", + "Download logfile" : "Last ned loggfil", "More" : "Mer", "Less" : "Mindre", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Loggfilen er større enn 100MB. Det kan ta litt tid å laste den ned!", "Version" : "Versjon", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Utviklet av <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-fellesskapet</a>. <a href=\"https://github.com/owncloud\" target=\"_blank\">Kildekoden</a> er lisensiert under <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Flere apper", diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json index 2f1f8a35d2d..0ff66420fb3 100644 --- a/settings/l10n/nb_NO.json +++ b/settings/l10n/nb_NO.json @@ -34,6 +34,7 @@ "Group already exists." : "Gruppe finnes allerede.", "Unable to add group." : "Kan ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", + "log-level out of allowed range" : "Loggnivå utenfor tillatt område", "Saved" : "Lagret", "test email settings" : "Test av innstillinger for e-post", "If you received this email, the settings seem to be correct." : "Hvis du mottar denne e-posten er innstillingene tydeligvis korrekte.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Dette betyr at det kan forekomme problemer med visse tegn i filnavn.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler sterkt å installere de påkrevde pakkene på systemet ditt for å støtte en av følgende nasjonale innstillinger: %s.", "URL generation in notification emails" : "URL-generering i varsel-eposter", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis installasjonen din ikke er installert i roten av domenet og bruker systemets cron, kan det bli problemer med URL-genereringen. For å unngå disse problemene, sett \"overwrite.cli.url\" i filen config.php til web-roten for installasjonen din (Foreslått: \"%s\")", "Configuration Checks" : "Konfigurasjons-sjekker", "No problems found" : "Ingen problemer funnet", "Please double check the <a href='%s'>installation guides</a>." : "Vennligst dobbelsjekk <a href='%s'>installasjonsguiden</a>.", @@ -132,19 +134,19 @@ "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", "Allow apps to use the Share API" : "Tillat apper å bruke API for Deling", "Allow users to share via link" : "Tillat brukere å dele via lenke", - "Enforce password protection" : "Tving passordbeskyttelse", + "Enforce password protection" : "Krev passordbeskyttelse", "Allow public uploads" : "Tillat offentlig opplasting", "Allow users to send mail notification for shared files" : "Tlllat at brukere sender e-postvarsler for delte filer", "Set default expiration date" : "Sett standard utløpsdato", "Expire after " : "Utløper etter", "days" : "dager", - "Enforce expiration date" : "Tving utløpsdato", + "Enforce expiration date" : "Krev utløpsdato", "Allow resharing" : "TIllat videre deling", "Restrict users to only share with users in their groups" : "Begrens brukere til kun å dele med brukere i deres grupper", "Allow users to send mail notification for shared files to other users" : "Tillat at brukere sender varsler om delte filer på e-post til andre brukere", "Exclude groups from sharing" : "Utelukk grupper fra deling", "These groups will still be able to receive shares, but not to initiate them." : "Disse gruppene vil fremdeles kunne motta delinger men ikke lage dem.", - "Enforce HTTPS" : "Tving HTTPS", + "Enforce HTTPS" : "Krev HTTPS", "Forces the clients to connect to %s via an encrypted connection." : "Tvinger klientene til å koble til %s via en kryptert forbindelse.", "Enforce HTTPS for subdomains" : "Krev HTTPS for underdomener", "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Tvinger klientene til å koble til %s og underdomener via en kryptert forbindelse.", @@ -164,8 +166,10 @@ "Test email settings" : "Test innstillinger for e-post", "Send email" : "Send e-post", "Log level" : "Loggnivå", + "Download logfile" : "Last ned loggfil", "More" : "Mer", "Less" : "Mindre", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Loggfilen er større enn 100MB. Det kan ta litt tid å laste den ned!", "Version" : "Versjon", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Utviklet av <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-fellesskapet</a>. <a href=\"https://github.com/owncloud\" target=\"_blank\">Kildekoden</a> er lisensiert under <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Flere apper", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index 1ceba4c5254..c619a24be59 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Groep bestaat al.", "Unable to add group." : "Kan groep niet toevoegen.", "Unable to delete group." : "Kan groep niet verwijderen.", + "log-level out of allowed range" : "loggingniveau buiten toegestane bereik", "Saved" : "Bewaard", "test email settings" : "test e-mailinstellingen", "If you received this email, the settings seem to be correct." : "Als u dit e-mailbericht ontvangt, lijken de instellingen juist.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Dat betekent dat er problemen kunnen optreden met bepaalde tekens in bestandsnamen.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We adviseren met klem om de noodzakelijke pakketten op uw systeem te installeren om een van de volgende talen te ondersteunen: %s.", "URL generation in notification emails" : "URL genereren in notificatie e-mails", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwrite.cli.url\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ", "Configuration Checks" : "Configuratie Controles", "No problems found" : "Geen problemen gevonden", "Please double check the <a href='%s'>installation guides</a>." : "Controleer de <a href='%s'>installatiehandleiding</a> goed.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Test e-mailinstellingen", "Send email" : "Versturen e-mail", "Log level" : "Log niveau", + "Download logfile" : "Download logbestand", "More" : "Meer", "Less" : "Minder", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "het logbestand is groter dan 100MB. Downloaden kost even tijd!", "Version" : "Versie", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Ontwikkeld door de <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud gemeenschap</a>, de <a href=\"https://github.com/owncloud\" target=\"_blank\">broncode</a> is gelicenseerd onder de <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Meer applicaties", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 79a3c55e362..86bd03a088a 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -34,6 +34,7 @@ "Group already exists." : "Groep bestaat al.", "Unable to add group." : "Kan groep niet toevoegen.", "Unable to delete group." : "Kan groep niet verwijderen.", + "log-level out of allowed range" : "loggingniveau buiten toegestane bereik", "Saved" : "Bewaard", "test email settings" : "test e-mailinstellingen", "If you received this email, the settings seem to be correct." : "Als u dit e-mailbericht ontvangt, lijken de instellingen juist.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Dat betekent dat er problemen kunnen optreden met bepaalde tekens in bestandsnamen.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We adviseren met klem om de noodzakelijke pakketten op uw systeem te installeren om een van de volgende talen te ondersteunen: %s.", "URL generation in notification emails" : "URL genereren in notificatie e-mails", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwrite.cli.url\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ", "Configuration Checks" : "Configuratie Controles", "No problems found" : "Geen problemen gevonden", "Please double check the <a href='%s'>installation guides</a>." : "Controleer de <a href='%s'>installatiehandleiding</a> goed.", @@ -164,8 +166,10 @@ "Test email settings" : "Test e-mailinstellingen", "Send email" : "Versturen e-mail", "Log level" : "Log niveau", + "Download logfile" : "Download logbestand", "More" : "Meer", "Less" : "Minder", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "het logbestand is groter dan 100MB. Downloaden kost even tijd!", "Version" : "Versie", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Ontwikkeld door de <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud gemeenschap</a>, de <a href=\"https://github.com/owncloud\" target=\"_blank\">broncode</a> is gelicenseerd onder de <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Meer applicaties", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 501908586a6..ed02403e464 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -151,13 +151,13 @@ OC.L10N.register( "Version" : "Wersja", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Stworzone przez <a href=\"http://ownCloud.org/contact\" target=\"_blank\">społeczność ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">kod źródłowy</a> na licencji <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Więcej aplikacji", - "Add your app" : "Dodaj twoją aplikację", + "Add your app" : "Dodaj aplikację", "by" : "przez", "licensed" : "Licencja", "Documentation:" : "Dokumentacja:", "User Documentation" : "Dokumentacja użytkownika", "Admin Documentation" : "Dokumentacja Administratora", - "Update to %s" : "Aktualizuj do %s", + "Update to %s" : "Uaktualnij do %s", "Enable only for specific groups" : "Włącz tylko dla określonych grup", "Uninstall App" : "Odinstaluj aplikację", "Cheers!" : "Pozdrawiam!", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index b349c101578..7173db87e2b 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -149,13 +149,13 @@ "Version" : "Wersja", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Stworzone przez <a href=\"http://ownCloud.org/contact\" target=\"_blank\">społeczność ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">kod źródłowy</a> na licencji <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Więcej aplikacji", - "Add your app" : "Dodaj twoją aplikację", + "Add your app" : "Dodaj aplikację", "by" : "przez", "licensed" : "Licencja", "Documentation:" : "Dokumentacja:", "User Documentation" : "Dokumentacja użytkownika", "Admin Documentation" : "Dokumentacja Administratora", - "Update to %s" : "Aktualizuj do %s", + "Update to %s" : "Uaktualnij do %s", "Enable only for specific groups" : "Włącz tylko dla określonych grup", "Uninstall App" : "Odinstaluj aplikację", "Cheers!" : "Pozdrawiam!", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index e2fa285982b..99f1009db79 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "O Grupo já existe.", "Unable to add group." : "Não é possível adicionar grupo.", "Unable to delete group." : "Não é possível excluir grupo.", + "log-level out of allowed range" : "log-nível acima do permitido", "Saved" : "Salvo", "test email settings" : "testar configurações de email", "If you received this email, the settings seem to be correct." : "Se você recebeu este e-mail, as configurações parecem estar corretas.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Isso significa que pode haver problemas com certos caracteres nos nomes de arquivo.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.", "URL generation in notification emails" : "Geração de URL em e-mails de notificação", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")", "Configuration Checks" : "Verificações de Configuração", "No problems found" : "Nenhum problema encontrado", "Please double check the <a href='%s'>installation guides</a>." : "Por favor, confira o <a href='%s'>guia de instalação</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Configurações de e-mail de teste", "Send email" : "Enviar email", "Log level" : "Nível de registro", + "Download logfile" : "Baixar o arquivo de log", "More" : "Mais", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "O arquivo de log é maior do que 100 MB. Baixar o arquivo pode demorar algum tempo!", "Version" : "Versão", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desenvolvido pela <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o <a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está licenciado sob <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Mais aplicativos", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index 45d2be70ad5..1a59966e6bb 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -34,6 +34,7 @@ "Group already exists." : "O Grupo já existe.", "Unable to add group." : "Não é possível adicionar grupo.", "Unable to delete group." : "Não é possível excluir grupo.", + "log-level out of allowed range" : "log-nível acima do permitido", "Saved" : "Salvo", "test email settings" : "testar configurações de email", "If you received this email, the settings seem to be correct." : "Se você recebeu este e-mail, as configurações parecem estar corretas.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Isso significa que pode haver problemas com certos caracteres nos nomes de arquivo.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.", "URL generation in notification emails" : "Geração de URL em e-mails de notificação", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")", "Configuration Checks" : "Verificações de Configuração", "No problems found" : "Nenhum problema encontrado", "Please double check the <a href='%s'>installation guides</a>." : "Por favor, confira o <a href='%s'>guia de instalação</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Configurações de e-mail de teste", "Send email" : "Enviar email", "Log level" : "Nível de registro", + "Download logfile" : "Baixar o arquivo de log", "More" : "Mais", "Less" : "Menos", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "O arquivo de log é maior do que 100 MB. Baixar o arquivo pode demorar algum tempo!", "Version" : "Versão", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Desenvolvido pela <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o <a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está licenciado sob <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Mais aplicativos", diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js index 42279e9b4cd..ce2e707597e 100644 --- a/settings/l10n/pt_PT.js +++ b/settings/l10n/pt_PT.js @@ -33,12 +33,20 @@ OC.L10N.register( "Enabled" : "Ativada", "Not enabled" : "Desativada", "Recommended" : "Recomendado", + "Group already exists." : "O grupo já existe.", + "Unable to add group." : "Impossível acrescentar o grupo.", + "Unable to delete group." : "Impossível apagar grupo.", "Saved" : "Guardado", "test email settings" : "testar as definições de e-mail", "If you received this email, the settings seem to be correct." : "Se recebeu este e-mail, as configurações parecem estar corretas", "A problem occurred while sending the email. Please revise your settings." : "Ocorreu um problema durante o envio do e-mail. Por favor, verifique as suas configurações..", "Email sent" : "Mensagem enviada", "You need to set your user email before being able to send test emails." : "Você precisa de configurar o seu e-mail de usuário antes de ser capaz de enviar e-mails de teste", + "Invalid mail address" : "Endereço de correio eletrónico inválido", + "Unable to create user." : "Impossível criar o utilizador.", + "Unable to delete user." : "Impossível apagar o utilizador.", + "Forbidden" : "Proibido", + "Invalid user" : "Utilizador inválido", "Email saved" : "E-mail guardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável ", @@ -213,6 +221,7 @@ OC.L10N.register( "Show storage location" : "Mostrar a localização do armazenamento", "Show last log in" : "Mostrar ultimo acesso de entrada", "Username" : "Nome de utilizador", + "E-Mail" : "Correio Eletrónico", "Create" : "Criar", "Admin Recovery Password" : "Recuperação da Palavra-passe de Administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação, a fim de recuperar os ficheiros dos utilizadores durante a mudança da palavra-passe", @@ -231,6 +240,7 @@ OC.L10N.register( "Last Login" : "Ultimo acesso", "change full name" : "alterar nome completo", "set new password" : "definir nova palavra-passe", + "change email address" : "alterar endereço do correio eletrónico", "Default" : "Padrão" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json index a61b5fa4c74..e6414eee113 100644 --- a/settings/l10n/pt_PT.json +++ b/settings/l10n/pt_PT.json @@ -31,12 +31,20 @@ "Enabled" : "Ativada", "Not enabled" : "Desativada", "Recommended" : "Recomendado", + "Group already exists." : "O grupo já existe.", + "Unable to add group." : "Impossível acrescentar o grupo.", + "Unable to delete group." : "Impossível apagar grupo.", "Saved" : "Guardado", "test email settings" : "testar as definições de e-mail", "If you received this email, the settings seem to be correct." : "Se recebeu este e-mail, as configurações parecem estar corretas", "A problem occurred while sending the email. Please revise your settings." : "Ocorreu um problema durante o envio do e-mail. Por favor, verifique as suas configurações..", "Email sent" : "Mensagem enviada", "You need to set your user email before being able to send test emails." : "Você precisa de configurar o seu e-mail de usuário antes de ser capaz de enviar e-mails de teste", + "Invalid mail address" : "Endereço de correio eletrónico inválido", + "Unable to create user." : "Impossível criar o utilizador.", + "Unable to delete user." : "Impossível apagar o utilizador.", + "Forbidden" : "Proibido", + "Invalid user" : "Utilizador inválido", "Email saved" : "E-mail guardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável ", @@ -211,6 +219,7 @@ "Show storage location" : "Mostrar a localização do armazenamento", "Show last log in" : "Mostrar ultimo acesso de entrada", "Username" : "Nome de utilizador", + "E-Mail" : "Correio Eletrónico", "Create" : "Criar", "Admin Recovery Password" : "Recuperação da Palavra-passe de Administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação, a fim de recuperar os ficheiros dos utilizadores durante a mudança da palavra-passe", @@ -229,6 +238,7 @@ "Last Login" : "Ultimo acesso", "change full name" : "alterar nome completo", "set new password" : "definir nova palavra-passe", + "change email address" : "alterar endereço do correio eletrónico", "Default" : "Padrão" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index fa30b5f68ae..579cacc25a0 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -36,6 +36,7 @@ OC.L10N.register( "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", + "log-level out of allowed range" : "Уровень журнала вышел за разрешенный диапазон", "Saved" : "Сохранено", "test email settings" : "проверить настройки почты", "If you received this email, the settings seem to be correct." : "Если вы получили это письмо, настройки верны.", @@ -123,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Это значит, что могут быть проблемы с некоторыми символами в именах файлов.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Мы рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.", "URL generation in notification emails" : "Генерирование URL в уведомляющих электронных письмах", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует планировщик cron системы, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию \"overwrite.cli.url\" в файле config.php равной пути папки установки. (Предположительно: \"%s\".)", "Configuration Checks" : "Проверка конфигурации", "No problems found" : "Проблемы не найдены", "Please double check the <a href='%s'>installation guides</a>." : "Подробно изучите <a href='%s'>инструкции по установке</a>.", @@ -166,8 +168,10 @@ OC.L10N.register( "Test email settings" : "Проверить настройки почты", "Send email" : "Отправить email", "Log level" : "Уровень детализации журнала", + "Download logfile" : "Скачать журнал", "More" : "Больше", "Less" : "Меньше", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Размер журнала превышает 100MB. Скачивание может занять некоторое время.", "Version" : "Версия", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Разрабатывается <a href=\"http://ownCloud.org/contact\" target=\"_blank\">сообществом ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">исходный код</a> доступен под лицензией <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Ещё приложения", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index bfa788507ee..45ce9d5e887 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -34,6 +34,7 @@ "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", + "log-level out of allowed range" : "Уровень журнала вышел за разрешенный диапазон", "Saved" : "Сохранено", "test email settings" : "проверить настройки почты", "If you received this email, the settings seem to be correct." : "Если вы получили это письмо, настройки верны.", @@ -121,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Это значит, что могут быть проблемы с некоторыми символами в именах файлов.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Мы рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.", "URL generation in notification emails" : "Генерирование URL в уведомляющих электронных письмах", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует планировщик cron системы, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию \"overwrite.cli.url\" в файле config.php равной пути папки установки. (Предположительно: \"%s\".)", "Configuration Checks" : "Проверка конфигурации", "No problems found" : "Проблемы не найдены", "Please double check the <a href='%s'>installation guides</a>." : "Подробно изучите <a href='%s'>инструкции по установке</a>.", @@ -164,8 +166,10 @@ "Test email settings" : "Проверить настройки почты", "Send email" : "Отправить email", "Log level" : "Уровень детализации журнала", + "Download logfile" : "Скачать журнал", "More" : "Больше", "Less" : "Меньше", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Размер журнала превышает 100MB. Скачивание может занять некоторое время.", "Version" : "Версия", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Разрабатывается <a href=\"http://ownCloud.org/contact\" target=\"_blank\">сообществом ownCloud</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">исходный код</a> доступен под лицензией <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.", "More apps" : "Ещё приложения", diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js index 886d9efee8f..8e30838600c 100644 --- a/settings/l10n/sl.js +++ b/settings/l10n/sl.js @@ -33,6 +33,9 @@ OC.L10N.register( "Enabled" : "Omogočeno", "Not enabled" : "Ni omogočeno", "Recommended" : "Priporočljivo", + "Group already exists." : "Skupina že obstaja.", + "Unable to add group." : "Ni mogoče dodati skupine", + "Unable to delete group." : "Ni mogoče izbrisati skupine.", "Saved" : "Shranjeno", "test email settings" : "preizkusi nastavitve elektronske pošte", "If you received this email, the settings seem to be correct." : "Če ste prejeli to sporočilo, so nastavitve pravilne.", @@ -41,8 +44,11 @@ OC.L10N.register( "You need to set your user email before being able to send test emails." : "Pred preizkusnim pošiljanjem sporočil je treba nastaviti elektronski naslov uporabnika.", "Invalid mail address" : "Neveljaven elektronski naslov", "Unable to create user." : "Ni mogoče ustvariti uporabnika.", + "Your %s account was created" : "Račun %s je uspešno ustvarjen.", "Unable to delete user." : "Ni mogoče izbrisati uporabnika", + "Forbidden" : "Dostop je prepovedan", "Invalid user" : "Neveljavni podatki uporabnika", + "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?", "Add trusted domain" : "Dodaj varno domeno", @@ -83,6 +89,7 @@ OC.L10N.register( "A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime", "Error creating user" : "Napaka ustvarjanja uporabnika", "A valid password must be provided" : "Navedeno mora biti veljavno geslo", + "A valid email must be provided" : "Naveden mora biti veljaven naslov elektronske pošte.", "__language_name__" : "Slovenščina", "Personal Info" : "Osebni podatki", "SSL root certificates" : "Korenska potrdila SSL", @@ -109,6 +116,7 @@ OC.L10N.register( "System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.", "This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.", "URL generation in notification emails" : "Ustvarjanje naslova URL v elektronskih sporočilih", + "Configuration Checks" : "Preverjanje nastavitev", "No problems found" : "Ni zaznanih težav", "Please double check the <a href='%s'>installation guides</a>." : "Preverite <a href='%s'>navodila namestitve</a>.", "Last cron was executed at %s." : "Zadnje periodično opravilo cron je bilo izvedeno ob %s.", @@ -149,6 +157,7 @@ OC.L10N.register( "Test email settings" : "Preizkus nastavitev elektronske pošte", "Send email" : "Pošlji elektronsko sporočilo", "Log level" : "Raven beleženja", + "Download logfile" : "Prejmi dnevniško datoteko", "More" : "Več", "Less" : "Manj", "Version" : "Različica", @@ -159,6 +168,7 @@ OC.L10N.register( "Documentation:" : "Dokumentacija:", "User Documentation" : "Uporabniška dokumentacija", "Admin Documentation" : "Skrbniška dokumentacija", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", "Update to %s" : "Posodobi na %s", "Enable only for specific groups" : "Omogoči le za posamezne skupine", "Uninstall App" : "Odstrani program", @@ -206,7 +216,9 @@ OC.L10N.register( "Delete Encryption Keys" : "Izbriši šifrirne ključe", "Show storage location" : "Pokaži mesto shrambe", "Show last log in" : "Pokaži podatke zadnje prijave", + "Show email address" : "Pokaži naslov elektronske pošte", "Username" : "Uporabniško ime", + "E-Mail" : "Elektronska pošta", "Create" : "Ustvari", "Admin Recovery Password" : "Obnovitev skrbniškega gesla", "Enter the recovery password in order to recover the users files during password change" : "Vnesite geslo, ki omogoča obnovitev uporabniških datotek med spreminjanjem gesla", @@ -225,6 +237,7 @@ OC.L10N.register( "Last Login" : "Zadnja prijava", "change full name" : "Spremeni polno ime", "set new password" : "nastavi novo geslo", + "change email address" : "spremeni naslov elektronske pošte", "Default" : "Privzeto" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json index a5487eb5b4f..c9b867dce40 100644 --- a/settings/l10n/sl.json +++ b/settings/l10n/sl.json @@ -31,6 +31,9 @@ "Enabled" : "Omogočeno", "Not enabled" : "Ni omogočeno", "Recommended" : "Priporočljivo", + "Group already exists." : "Skupina že obstaja.", + "Unable to add group." : "Ni mogoče dodati skupine", + "Unable to delete group." : "Ni mogoče izbrisati skupine.", "Saved" : "Shranjeno", "test email settings" : "preizkusi nastavitve elektronske pošte", "If you received this email, the settings seem to be correct." : "Če ste prejeli to sporočilo, so nastavitve pravilne.", @@ -39,8 +42,11 @@ "You need to set your user email before being able to send test emails." : "Pred preizkusnim pošiljanjem sporočil je treba nastaviti elektronski naslov uporabnika.", "Invalid mail address" : "Neveljaven elektronski naslov", "Unable to create user." : "Ni mogoče ustvariti uporabnika.", + "Your %s account was created" : "Račun %s je uspešno ustvarjen.", "Unable to delete user." : "Ni mogoče izbrisati uporabnika", + "Forbidden" : "Dostop je prepovedan", "Invalid user" : "Neveljavni podatki uporabnika", + "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?", "Add trusted domain" : "Dodaj varno domeno", @@ -81,6 +87,7 @@ "A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime", "Error creating user" : "Napaka ustvarjanja uporabnika", "A valid password must be provided" : "Navedeno mora biti veljavno geslo", + "A valid email must be provided" : "Naveden mora biti veljaven naslov elektronske pošte.", "__language_name__" : "Slovenščina", "Personal Info" : "Osebni podatki", "SSL root certificates" : "Korenska potrdila SSL", @@ -107,6 +114,7 @@ "System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.", "This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.", "URL generation in notification emails" : "Ustvarjanje naslova URL v elektronskih sporočilih", + "Configuration Checks" : "Preverjanje nastavitev", "No problems found" : "Ni zaznanih težav", "Please double check the <a href='%s'>installation guides</a>." : "Preverite <a href='%s'>navodila namestitve</a>.", "Last cron was executed at %s." : "Zadnje periodično opravilo cron je bilo izvedeno ob %s.", @@ -147,6 +155,7 @@ "Test email settings" : "Preizkus nastavitev elektronske pošte", "Send email" : "Pošlji elektronsko sporočilo", "Log level" : "Raven beleženja", + "Download logfile" : "Prejmi dnevniško datoteko", "More" : "Več", "Less" : "Manj", "Version" : "Različica", @@ -157,6 +166,7 @@ "Documentation:" : "Dokumentacija:", "User Documentation" : "Uporabniška dokumentacija", "Admin Documentation" : "Skrbniška dokumentacija", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", "Update to %s" : "Posodobi na %s", "Enable only for specific groups" : "Omogoči le za posamezne skupine", "Uninstall App" : "Odstrani program", @@ -204,7 +214,9 @@ "Delete Encryption Keys" : "Izbriši šifrirne ključe", "Show storage location" : "Pokaži mesto shrambe", "Show last log in" : "Pokaži podatke zadnje prijave", + "Show email address" : "Pokaži naslov elektronske pošte", "Username" : "Uporabniško ime", + "E-Mail" : "Elektronska pošta", "Create" : "Ustvari", "Admin Recovery Password" : "Obnovitev skrbniškega gesla", "Enter the recovery password in order to recover the users files during password change" : "Vnesite geslo, ki omogoča obnovitev uporabniških datotek med spreminjanjem gesla", @@ -223,6 +235,7 @@ "Last Login" : "Zadnja prijava", "change full name" : "Spremeni polno ime", "set new password" : "nastavi novo geslo", + "change email address" : "spremeni naslov elektronske pošte", "Default" : "Privzeto" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }
\ No newline at end of file diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 17f78595904..e3c5edff674 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -154,7 +154,7 @@ OC.L10N.register( "This is used for sending out notifications." : "Detta används för att skicka ut notifieringar.", "Send mode" : "Sändningsläge", "From address" : "Från adress", - "mail" : "mejl", + "mail" : "mail", "Authentication method" : "Autentiseringsmetod", "Authentication required" : "Autentisering krävs", "Server address" : "Serveradress", @@ -181,9 +181,9 @@ OC.L10N.register( "Update to %s" : "Uppdatera till %s", "Enable only for specific groups" : "Aktivera endast för specifika grupper", "Uninstall App" : "Avinstallera applikation", - "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hej där,<br><br>ville bara informera dig om att du nu har ett %s konto.<br><br>Ditt användarnamn: %s<br>Accessa det genom: <a href=\"%s\">%s</a><br><br>", + "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hej där,<br><br>vill bara informera dig om att du nu har ett %s konto.<br><br>Ditt användarnamn: %s<br>Accessa det genom: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Ha de fint!", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\njville bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nvill bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", "Administrator Documentation" : "Administratörsdokumentation", "Online Documentation" : "Onlinedokumentation", "Forum" : "Forum", diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index e2807324ba0..780839d1f7e 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -152,7 +152,7 @@ "This is used for sending out notifications." : "Detta används för att skicka ut notifieringar.", "Send mode" : "Sändningsläge", "From address" : "Från adress", - "mail" : "mejl", + "mail" : "mail", "Authentication method" : "Autentiseringsmetod", "Authentication required" : "Autentisering krävs", "Server address" : "Serveradress", @@ -179,9 +179,9 @@ "Update to %s" : "Uppdatera till %s", "Enable only for specific groups" : "Aktivera endast för specifika grupper", "Uninstall App" : "Avinstallera applikation", - "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hej där,<br><br>ville bara informera dig om att du nu har ett %s konto.<br><br>Ditt användarnamn: %s<br>Accessa det genom: <a href=\"%s\">%s</a><br><br>", + "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hej där,<br><br>vill bara informera dig om att du nu har ett %s konto.<br><br>Ditt användarnamn: %s<br>Accessa det genom: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Ha de fint!", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\njville bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nvill bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", "Administrator Documentation" : "Administratörsdokumentation", "Online Documentation" : "Onlinedokumentation", "Forum" : "Forum", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 50933e2f862..9c0d78265e1 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -36,14 +36,20 @@ OC.L10N.register( "Group already exists." : "Grup zaten mevcut.", "Unable to add group." : "Grup ekleme başarısız.", "Unable to delete group." : "Grubu silme başarısız.", + "log-level out of allowed range" : "günlük seviyesi izin verilen aralık dışında", "Saved" : "Kaydedildi", "test email settings" : "e-posta ayarlarını sına", "If you received this email, the settings seem to be correct." : "Eğer bu e-postayı aldıysanız, ayarlar doğru gibi görünüyor.", "A problem occurred while sending the email. Please revise your settings." : "E-posta gönderilirken bir sorun oluştu. Lütfen ayarlarınızı gözden geçirin.", "Email sent" : "E-posta gönderildi", "You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamanız gerekiyor.", + "Invalid mail address" : "Geçersiz posta adresi", "Unable to create user." : "Kullanıcı oluşturma başarısız.", + "Your %s account was created" : "%s hesabınız oluşturuldu", "Unable to delete user." : "Kullanıcı silme başarısız.", + "Forbidden" : "Yasaklı", + "Invalid user" : "Geçersiz kullanıcı", + "Unable to change mail address" : "Posta adresini değiştirme başarısız", "Email saved" : "E-posta kaydedildi", "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?", "Add trusted domain" : "Güvenilir alan adı ekle", @@ -84,6 +90,7 @@ OC.L10N.register( "A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı", "Error creating user" : "Kullanıcı oluşturulurken hata", "A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı", + "A valid email must be provided" : "Geçerli bir e-posta belirtilmeli", "__language_name__" : "Türkçe", "Personal Info" : "Kişisel Bilgi", "SSL root certificates" : "SSL kök sertifikaları", @@ -117,6 +124,7 @@ OC.L10N.register( "This means that there might be problems with certain characters in file names." : "Bu, dosya adlarında belirli karakterlerde problem olabileceği anlamına gelir.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanızı şiddetle tavsiye ederiz: %s.", "URL generation in notification emails" : "Bildirim e-postalarında URL oluşturulması", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwrite.cli.url\" seçeneğini ayarlayın (Önerilen: \"%s\")", "Configuration Checks" : "Yapılandırma Kontrolleri", "No problems found" : "Hiç sorun yok", "Please double check the <a href='%s'>installation guides</a>." : "Lütfen <a href='%s'>kurulum rehberlerini</a> iki kez kontrol edin.", @@ -160,8 +168,10 @@ OC.L10N.register( "Test email settings" : "E-posta ayarlarını sına", "Send email" : "E-posta gönder", "Log level" : "Günlük seviyesi", + "Download logfile" : "Günlük dosyasını indir", "More" : "Daha fazla", "Less" : "Daha az", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Günlük dosyası 100MB'dan daha büyük. İndirmek zaman alabilir!", "Version" : "Sürüm", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "<a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud topluluğu</a> tarafından geliştirilmiş olup, <a href=\"https://github.com/owncloud\" target=\"_blank\">kaynak kodu</a>, <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> altında lisanslanmıştır.", "More apps" : "Daha fazla uygulama", @@ -175,13 +185,18 @@ OC.L10N.register( "Update to %s" : "%s sürümüne güncelle", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", "Uninstall App" : "Uygulamayı Kaldır", - "Cheers!" : "Hoşça kalın!", + "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>", + "Cheers!" : "Hoşçakalın!", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", "Administrator Documentation" : "Yönetici Belgelendirmesi", "Online Documentation" : "Çevrimiçi Belgelendirme", "Forum" : "Forum", "Bugtracker" : "Hata Takip Sistemi", "Commercial Support" : "Ticari Destek", "Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin", + "Desktop client" : "Masaüstü istemcisi", + "Android app" : "Android uygulaması", + "iOS app" : "iOS uygulaması", "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Projeyi desteklemek istiyorsanız\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">geliştirilmesine katılın</a>\n\t\tveya\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">bizi duyurun</a>!", "Show First Run Wizard again" : "İlk Çalıştırma Sihirbazı'nı yeniden göster", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Kullandığınız: <strong>%s</strong>. Kullanılabilir alan: <strong>%s</strong>", @@ -218,7 +233,11 @@ OC.L10N.register( "Delete Encryption Keys" : "Şifreleme Anahtarlarını Sil", "Show storage location" : "Depolama konumunu göster", "Show last log in" : "Son oturum açılma zamanını göster", + "Show user backend" : "Kullanıcı arka ucunu göster", + "Send email to new user" : "Yeni kullanıcıya e-posta gönder", + "Show email address" : "E-posta adresini göster", "Username" : "Kullanıcı Adı", + "E-Mail" : "E-Posta", "Create" : "Oluştur", "Admin Recovery Password" : "Yönetici Kurtarma Parolası", "Enter the recovery password in order to recover the users files during password change" : "Parola değiştirme sırasında kullanıcı dosyalarını kurtarmak için kurtarma parolasını girin", @@ -234,9 +253,11 @@ OC.L10N.register( "Group Admin for" : "Grup Yöneticisi", "Quota" : "Kota", "Storage Location" : "Depolama Konumu", + "User Backend" : "Kullanıcı Arka Ucu", "Last Login" : "Son Giriş", "change full name" : "tam adı değiştir", "set new password" : "yeni parola belirle", + "change email address" : "e-posta adresini değiştir", "Default" : "Öntanımlı" }, "nplurals=2; plural=(n > 1);"); diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 190e8094937..fe1d7871fe2 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -34,14 +34,20 @@ "Group already exists." : "Grup zaten mevcut.", "Unable to add group." : "Grup ekleme başarısız.", "Unable to delete group." : "Grubu silme başarısız.", + "log-level out of allowed range" : "günlük seviyesi izin verilen aralık dışında", "Saved" : "Kaydedildi", "test email settings" : "e-posta ayarlarını sına", "If you received this email, the settings seem to be correct." : "Eğer bu e-postayı aldıysanız, ayarlar doğru gibi görünüyor.", "A problem occurred while sending the email. Please revise your settings." : "E-posta gönderilirken bir sorun oluştu. Lütfen ayarlarınızı gözden geçirin.", "Email sent" : "E-posta gönderildi", "You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamanız gerekiyor.", + "Invalid mail address" : "Geçersiz posta adresi", "Unable to create user." : "Kullanıcı oluşturma başarısız.", + "Your %s account was created" : "%s hesabınız oluşturuldu", "Unable to delete user." : "Kullanıcı silme başarısız.", + "Forbidden" : "Yasaklı", + "Invalid user" : "Geçersiz kullanıcı", + "Unable to change mail address" : "Posta adresini değiştirme başarısız", "Email saved" : "E-posta kaydedildi", "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?", "Add trusted domain" : "Güvenilir alan adı ekle", @@ -82,6 +88,7 @@ "A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı", "Error creating user" : "Kullanıcı oluşturulurken hata", "A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı", + "A valid email must be provided" : "Geçerli bir e-posta belirtilmeli", "__language_name__" : "Türkçe", "Personal Info" : "Kişisel Bilgi", "SSL root certificates" : "SSL kök sertifikaları", @@ -115,6 +122,7 @@ "This means that there might be problems with certain characters in file names." : "Bu, dosya adlarında belirli karakterlerde problem olabileceği anlamına gelir.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanızı şiddetle tavsiye ederiz: %s.", "URL generation in notification emails" : "Bildirim e-postalarında URL oluşturulması", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwrite.cli.url\" seçeneğini ayarlayın (Önerilen: \"%s\")", "Configuration Checks" : "Yapılandırma Kontrolleri", "No problems found" : "Hiç sorun yok", "Please double check the <a href='%s'>installation guides</a>." : "Lütfen <a href='%s'>kurulum rehberlerini</a> iki kez kontrol edin.", @@ -158,8 +166,10 @@ "Test email settings" : "E-posta ayarlarını sına", "Send email" : "E-posta gönder", "Log level" : "Günlük seviyesi", + "Download logfile" : "Günlük dosyasını indir", "More" : "Daha fazla", "Less" : "Daha az", + "The logfile is bigger than 100MB. Downloading it may take some time!" : "Günlük dosyası 100MB'dan daha büyük. İndirmek zaman alabilir!", "Version" : "Sürüm", "Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "<a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud topluluğu</a> tarafından geliştirilmiş olup, <a href=\"https://github.com/owncloud\" target=\"_blank\">kaynak kodu</a>, <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> altında lisanslanmıştır.", "More apps" : "Daha fazla uygulama", @@ -173,13 +183,18 @@ "Update to %s" : "%s sürümüne güncelle", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", "Uninstall App" : "Uygulamayı Kaldır", - "Cheers!" : "Hoşça kalın!", + "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>", + "Cheers!" : "Hoşçakalın!", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", "Administrator Documentation" : "Yönetici Belgelendirmesi", "Online Documentation" : "Çevrimiçi Belgelendirme", "Forum" : "Forum", "Bugtracker" : "Hata Takip Sistemi", "Commercial Support" : "Ticari Destek", "Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin", + "Desktop client" : "Masaüstü istemcisi", + "Android app" : "Android uygulaması", + "iOS app" : "iOS uygulaması", "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Projeyi desteklemek istiyorsanız\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">geliştirilmesine katılın</a>\n\t\tveya\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">bizi duyurun</a>!", "Show First Run Wizard again" : "İlk Çalıştırma Sihirbazı'nı yeniden göster", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Kullandığınız: <strong>%s</strong>. Kullanılabilir alan: <strong>%s</strong>", @@ -216,7 +231,11 @@ "Delete Encryption Keys" : "Şifreleme Anahtarlarını Sil", "Show storage location" : "Depolama konumunu göster", "Show last log in" : "Son oturum açılma zamanını göster", + "Show user backend" : "Kullanıcı arka ucunu göster", + "Send email to new user" : "Yeni kullanıcıya e-posta gönder", + "Show email address" : "E-posta adresini göster", "Username" : "Kullanıcı Adı", + "E-Mail" : "E-Posta", "Create" : "Oluştur", "Admin Recovery Password" : "Yönetici Kurtarma Parolası", "Enter the recovery password in order to recover the users files during password change" : "Parola değiştirme sırasında kullanıcı dosyalarını kurtarmak için kurtarma parolasını girin", @@ -232,9 +251,11 @@ "Group Admin for" : "Grup Yöneticisi", "Quota" : "Kota", "Storage Location" : "Depolama Konumu", + "User Backend" : "Kullanıcı Arka Ucu", "Last Login" : "Son Giriş", "change full name" : "tam adı değiştir", "set new password" : "yeni parola belirle", + "change email address" : "e-posta adresini değiştir", "Default" : "Öntanımlı" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/settings/routes.php b/settings/routes.php index 4be7785670b..150746665d3 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -14,7 +14,7 @@ $application->registerRoutes($this, array( 'groups' => array('url' => '/settings/users/groups'), 'users' => array('url' => '/settings/users/users') ), - 'routes' =>array( + 'routes' => array( array('name' => 'MailSettings#setMailSettings', 'url' => '/settings/admin/mailsettings', 'verb' => 'POST'), array('name' => 'MailSettings#storeCredentials', 'url' => '/settings/admin/mailsettings/credentials', 'verb' => 'POST'), array('name' => 'MailSettings#sendTestMail', 'url' => '/settings/admin/mailtest', 'verb' => 'POST'), @@ -24,6 +24,9 @@ $application->registerRoutes($this, array( array('name' => 'SecuritySettings#enforceSSLForSubdomains', 'url' => '/settings/admin/security/ssl/subdomains', 'verb' => 'POST'), array('name' => 'SecuritySettings#trustedDomains', 'url' => '/settings/admin/security/trustedDomains', 'verb' => 'POST'), array('name' => 'Users#setMailAddress', 'url' => '/settings/users/{id}/mailAddress', 'verb' => 'PUT'), + array('name' => 'LogSettings#setLogLevel', 'url' => '/settings/admin/log/level', 'verb' => 'POST'), + array('name' => 'LogSettings#getEntries', 'url' => '/settings/admin/log/entries', 'verb' => 'GET'), + array('name' => 'LogSettings#download', 'url' => '/settings/admin/log/download', 'verb' => 'GET'), ) )); @@ -87,10 +90,6 @@ $this->create('settings_ajax_uninstallapp', '/settings/ajax/uninstallapp.php') $this->create('settings_ajax_navigationdetect', '/settings/ajax/navigationdetect.php') ->actionInclude('settings/ajax/navigationdetect.php'); // admin -$this->create('settings_ajax_getlog', '/settings/ajax/getlog.php') - ->actionInclude('settings/ajax/getlog.php'); -$this->create('settings_ajax_setloglevel', '/settings/ajax/setloglevel.php') - ->actionInclude('settings/ajax/setloglevel.php'); $this->create('settings_ajax_excludegroups', '/settings/ajax/excludegroups.php') ->actionInclude('settings/ajax/excludegroups.php'); $this->create('settings_ajax_checksetup', '/settings/ajax/checksetup') diff --git a/settings/templates/admin.php b/settings/templates/admin.php index f55626defb0..41b60b64428 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -462,6 +462,7 @@ if ($_['suggestedOverwriteCliUrl']) { <option value='<?php p($i)?>' <?php p($selected) ?>><?php p($levelLabels[$i])?></option> <?php endfor;?> </select> +<?php if ($_['showLog'] && $_['doesLogFileExist']): ?> <table id="log" class="grid"> <?php foreach ($_['entries'] as $entry): ?> <tr> @@ -484,11 +485,20 @@ if ($_['suggestedOverwriteCliUrl']) { </tr> <?php endforeach;?> </table> + <?php if ($_['logFileSize'] > 0): ?> + <a href="<?php print_unescaped(OC::$server->getURLGenerator()->linkToRoute('settings.LogSettings.download')); ?>" class="button" id="downloadLog"><?php p($l->t('Download logfile'));?></a> + <?php endif; ?> <?php if ($_['entriesremain']): ?> <input id="moreLog" type="button" value="<?php p($l->t('More'));?>..."> <input id="lessLog" type="button" value="<?php p($l->t('Less'));?>..."> <?php endif; ?> - + <?php if ($_['logFileSize'] > (100 * 1024 * 1024)): ?> + <br> + <em> + <?php p($l->t('The logfile is bigger than 100MB. Downloading it may take some time!')); ?> + </em> + <?php endif; ?> + <?php endif; ?> </div> <div class="section"> diff --git a/tests/lib/db/migrator.php b/tests/lib/db/migrator.php index 1a1d530f1d2..54267740480 100644 --- a/tests/lib/db/migrator.php +++ b/tests/lib/db/migrator.php @@ -39,7 +39,7 @@ class Migrator extends \Test\TestCase { $this->markTestSkipped('DB migration tests are not supported on MSSQL'); } $this->manager = new \OC\DB\MDB2SchemaManager($this->connection); - $this->tableName = strtolower($this->getUniqueID('test_')); + $this->tableName = strtolower($this->getUniqueID('oc_test_')); } protected function tearDown() { diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index 81d7f3ce0bc..6df98ee531d 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -517,6 +517,42 @@ class Cache extends \Test\TestCase { $this->assertEquals(1, count($this->cache->getFolderContents('folder'))); } + function bogusPathNamesProvider() { + return array( + array('/bogus.txt', 'bogus.txt'), + array('//bogus.txt', 'bogus.txt'), + array('bogus/', 'bogus'), + array('bogus//', 'bogus'), + ); + } + + /** + * Test bogus paths with leading or doubled slashes + * + * @dataProvider bogusPathNamesProvider + */ + public function testBogusPaths($bogusPath, $fixedBogusPath) { + $data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory'); + + // put root folder + $this->assertFalse($this->cache->get('')); + $parentId = $this->cache->put('', $data); + $this->assertGreaterThan(0, $parentId); + + $this->assertGreaterThan(0, $this->cache->put($bogusPath, $data)); + + $newData = $this->cache->get($fixedBogusPath); + $this->assertNotFalse($newData); + + $this->assertEquals($fixedBogusPath, $newData['path']); + // parent is the correct one, resolved properly (they used to not be) + $this->assertEquals($parentId, $newData['parent']); + + $newDataFromBogus = $this->cache->get($bogusPath); + // same entry + $this->assertEquals($newData, $newDataFromBogus); + } + protected function tearDown() { if ($this->cache) { $this->cache->clear(); diff --git a/tests/lib/files/filesystem.php b/tests/lib/files/filesystem.php index 1b84db0fc0d..888690adb0e 100644 --- a/tests/lib/files/filesystem.php +++ b/tests/lib/files/filesystem.php @@ -154,6 +154,39 @@ class Filesystem extends \Test\TestCase { $this->assertEquals($expected, \OC\Files\Filesystem::normalizePath($path, $stripTrailingSlash)); } + public function isValidPathData() { + return array( + array('/', true), + array('/path', true), + array('/foo/bar', true), + array('/foo//bar/', true), + array('/foo////bar', true), + array('/foo//\///bar', true), + array('/foo/bar/.', true), + array('/foo/bar/./', true), + array('/foo/bar/./.', true), + array('/foo/bar/././', true), + array('/foo/bar/././..bar', true), + array('/foo/bar/././..bar/a', true), + array('/foo/bar/././..', false), + array('/foo/bar/././../', false), + array('/foo/bar/.././', false), + array('/foo/bar/../../', false), + array('/foo/bar/../..\\', false), + array('..', false), + array('../', false), + array('../foo/bar', false), + array('..\foo/bar', false), + ); + } + + /** + * @dataProvider isValidPathData + */ + public function testIsValidPath($path, $expected) { + $this->assertSame($expected, \OC\Files\Filesystem::isValidPath($path)); + } + public function normalizePathWindowsAbsolutePathData() { return array( array('C:/', 'C:\\'), diff --git a/tests/lib/streamwrappers.php b/tests/lib/streamwrappers.php index 9a3b6bc9266..2a8c8676c16 100644 --- a/tests/lib/streamwrappers.php +++ b/tests/lib/streamwrappers.php @@ -48,20 +48,13 @@ class Test_StreamWrappers extends \Test\TestCase { //test callback $tmpFile = OC_Helper::TmpFile('.txt'); $file = 'close://' . $tmpFile; - \OC\Files\Stream\Close::registerCallback($tmpFile, array('Test_StreamWrappers', 'closeCallBack')); + $actual = false; + $callback = function($path) use (&$actual) { $actual = $path; }; + \OC\Files\Stream\Close::registerCallback($tmpFile, $callback); $fh = fopen($file, 'w'); fwrite($fh, 'asd'); - try { - fclose($fh); - $this->fail('Expected exception'); - } catch (Exception $e) { - $path = $e->getMessage(); - $this->assertEquals($path, $tmpFile); - } - } - - public static function closeCallBack($path) { - throw new Exception($path); + fclose($fh); + $this->assertSame($tmpFile, $actual); } public function testOC() { diff --git a/tests/settings/controller/logsettingscontrollertest.php b/tests/settings/controller/logsettingscontrollertest.php new file mode 100644 index 00000000000..e80acfa75b5 --- /dev/null +++ b/tests/settings/controller/logsettingscontrollertest.php @@ -0,0 +1,79 @@ +<?php +/** + * @author Georg Ehrke + * @copyright 2014 Georg Ehrke <georg@ownCloud.com> + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace Test\Settings\Controller; + +use \OC\Settings\Application; + +/** + * @package OC\Settings\Controller + */ +class LogSettingsControllerTest extends \Test\TestCase { + + /** @var \OCP\AppFramework\IAppContainer */ + private $container; + + /** @var LogSettingsController */ + private $logSettingsController; + + protected function setUp() { + $app = new Application(); + $this->container = $app->getContainer(); + $this->container['Config'] = $this->getMockBuilder('\OCP\IConfig') + ->disableOriginalConstructor()->getMock(); + $this->container['AppName'] = 'settings'; + $this->logSettingsController = $this->container['LogSettingsController']; + } + + /** + * @dataProvider logLevelData + */ + public function testSetLogLevel($level, $inRange) { + if ($inRange) { + $this->container['Config'] + ->expects($this->once()) + ->method('setSystemValue') + ->with('loglevel', $level); + } + + $response = $this->logSettingsController->setLogLevel($level)->getData(); + + if ($inRange) { + $expectedResponse = ['level' => $level]; + } else { + $expectedResponse = ['message' => 'log-level out of allowed range']; + } + + $this->assertSame($expectedResponse, $response); + } + + public function logLevelData() { + return [ + [-1, false], + [0, true], + [1, true], + [2, true], + [3, true], + [4, true], + [5, false], + ]; + } + + public function testGetFilenameForDownload() { + $timestamp = 42; + $this->container['Config'] + ->expects($this->once()) + ->method('getSystemValue') + ->with('instanceid') + ->will($this->returnValue('0xF')); + $filename = \Test_Helper::invokePrivate($this->logSettingsController, 'getFilenameForDownload', [$timestamp]); + + $this->assertSame('ownCloud-0xF-42.log', $filename); + } +} diff --git a/version.php b/version.php index 6873883f6db..3ee8fc58ce5 100644 --- a/version.php +++ b/version.php @@ -3,10 +3,10 @@ // We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version=array(8, 0, 0, 1); +$OC_Version=array(8, 0, 0, 2); // The human readable string -$OC_VersionString='8.0 alpha 1'; +$OC_VersionString='8.0 alpha 2'; // The ownCloud channel $OC_Channel='git'; |