summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/ajax/upload.php24
-rw-r--r--apps/files/css/upload.css22
-rw-r--r--apps/files/js/file-upload.js15
-rw-r--r--apps/files/js/filelist.js6
-rw-r--r--apps/files/l10n/pt_PT.js2
-rw-r--r--apps/files/l10n/pt_PT.json2
-rw-r--r--apps/files/templates/fileexists.html1
-rw-r--r--apps/files_external/img/app.svg212
-rw-r--r--apps/files_external/l10n/fr.js1
-rw-r--r--apps/files_external/l10n/fr.json1
-rw-r--r--apps/files_external/l10n/sl.js1
-rw-r--r--apps/files_external/l10n/sl.json1
-rw-r--r--apps/files_external/lib/config.php7
-rw-r--r--apps/files_external/tests/js/mountsfilelistSpec.js6
-rw-r--r--apps/files_sharing/appinfo/app.php21
-rw-r--r--apps/files_sharing/js/app.js3
-rw-r--r--apps/files_sharing/js/public.js4
-rw-r--r--apps/files_sharing/js/share.js74
-rw-r--r--apps/files_sharing/js/sharedfilelist.js1
-rw-r--r--apps/files_sharing/l10n/cs_CZ.js3
-rw-r--r--apps/files_sharing/l10n/cs_CZ.json3
-rw-r--r--apps/files_sharing/l10n/da.js3
-rw-r--r--apps/files_sharing/l10n/da.json3
-rw-r--r--apps/files_sharing/l10n/de.js2
-rw-r--r--apps/files_sharing/l10n/de.json2
-rw-r--r--apps/files_sharing/l10n/de_DE.js2
-rw-r--r--apps/files_sharing/l10n/de_DE.json2
-rw-r--r--apps/files_sharing/l10n/en_GB.js3
-rw-r--r--apps/files_sharing/l10n/en_GB.json3
-rw-r--r--apps/files_sharing/l10n/fi_FI.js3
-rw-r--r--apps/files_sharing/l10n/fi_FI.json3
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/files_sharing/l10n/ja.js3
-rw-r--r--apps/files_sharing/l10n/ja.json3
-rw-r--r--apps/files_sharing/l10n/nl.js2
-rw-r--r--apps/files_sharing/l10n/nl.json2
-rw-r--r--apps/files_sharing/l10n/pt_BR.js3
-rw-r--r--apps/files_sharing/l10n/pt_BR.json3
-rw-r--r--apps/files_sharing/l10n/ru.js3
-rw-r--r--apps/files_sharing/l10n/ru.json3
-rw-r--r--apps/files_sharing/lib/activity.php37
-rw-r--r--apps/files_sharing/lib/cache.php40
-rw-r--r--apps/files_sharing/tests/cache.php34
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js8
-rw-r--r--apps/files_sharing/tests/js/sharedfilelistSpec.js20
-rw-r--r--apps/files_trashbin/js/filelist.js1
-rw-r--r--core/js/js.js81
-rw-r--r--core/js/oc-dialogs.js73
-rw-r--r--core/js/tests/specHelper.js3
-rw-r--r--core/js/tests/specs/coreSpec.js31
-rw-r--r--core/l10n/cs_CZ.js6
-rw-r--r--core/l10n/cs_CZ.json6
-rw-r--r--core/l10n/da.js5
-rw-r--r--core/l10n/da.json5
-rw-r--r--core/l10n/de.js6
-rw-r--r--core/l10n/de.json6
-rw-r--r--core/l10n/de_DE.js6
-rw-r--r--core/l10n/de_DE.json6
-rw-r--r--core/l10n/en_GB.js6
-rw-r--r--core/l10n/en_GB.json6
-rw-r--r--core/l10n/fi_FI.js7
-rw-r--r--core/l10n/fi_FI.json7
-rw-r--r--core/l10n/fr.js1
-rw-r--r--core/l10n/fr.json1
-rw-r--r--core/l10n/nl.js3
-rw-r--r--core/l10n/nl.json3
-rw-r--r--core/l10n/pt_BR.js6
-rw-r--r--core/l10n/pt_BR.json6
-rw-r--r--core/l10n/pt_PT.js48
-rw-r--r--core/l10n/pt_PT.json48
-rw-r--r--core/l10n/sl.js3
-rw-r--r--core/l10n/sl.json3
-rw-r--r--core/l10n/tr.js3
-rw-r--r--core/l10n/tr.json3
-rw-r--r--core/setup/controller.php52
-rw-r--r--lib/base.php2
-rw-r--r--lib/l10n/ach.js2
-rw-r--r--lib/l10n/ach.json2
-rw-r--r--lib/l10n/ady.js2
-rw-r--r--lib/l10n/ady.json2
-rw-r--r--lib/l10n/af_ZA.js2
-rw-r--r--lib/l10n/af_ZA.json2
-rw-r--r--lib/l10n/ak.js2
-rw-r--r--lib/l10n/ak.json2
-rw-r--r--lib/l10n/am_ET.js2
-rw-r--r--lib/l10n/am_ET.json2
-rw-r--r--lib/l10n/ar.js2
-rw-r--r--lib/l10n/ar.json2
-rw-r--r--lib/l10n/ast.js2
-rw-r--r--lib/l10n/ast.json2
-rw-r--r--lib/l10n/az.js2
-rw-r--r--lib/l10n/az.json2
-rw-r--r--lib/l10n/be.js2
-rw-r--r--lib/l10n/be.json2
-rw-r--r--lib/l10n/bg_BG.js2
-rw-r--r--lib/l10n/bg_BG.json2
-rw-r--r--lib/l10n/bn_BD.js2
-rw-r--r--lib/l10n/bn_BD.json2
-rw-r--r--lib/l10n/bn_IN.js2
-rw-r--r--lib/l10n/bn_IN.json2
-rw-r--r--lib/l10n/bs.js2
-rw-r--r--lib/l10n/bs.json2
-rw-r--r--lib/l10n/ca.js2
-rw-r--r--lib/l10n/ca.json2
-rw-r--r--lib/l10n/ca@valencia.js2
-rw-r--r--lib/l10n/ca@valencia.json2
-rw-r--r--lib/l10n/cs_CZ.js4
-rw-r--r--lib/l10n/cs_CZ.json4
-rw-r--r--lib/l10n/cy_GB.js2
-rw-r--r--lib/l10n/cy_GB.json2
-rw-r--r--lib/l10n/da.js4
-rw-r--r--lib/l10n/da.json4
-rw-r--r--lib/l10n/de.js6
-rw-r--r--lib/l10n/de.json6
-rw-r--r--lib/l10n/de_AT.js2
-rw-r--r--lib/l10n/de_AT.json2
-rw-r--r--lib/l10n/de_DE.js4
-rw-r--r--lib/l10n/de_DE.json4
-rw-r--r--lib/l10n/el.js2
-rw-r--r--lib/l10n/el.json2
-rw-r--r--lib/l10n/en@pirate.js2
-rw-r--r--lib/l10n/en@pirate.json2
-rw-r--r--lib/l10n/en_GB.js4
-rw-r--r--lib/l10n/en_GB.json4
-rw-r--r--lib/l10n/en_NZ.js2
-rw-r--r--lib/l10n/en_NZ.json2
-rw-r--r--lib/l10n/eo.js2
-rw-r--r--lib/l10n/eo.json2
-rw-r--r--lib/l10n/es.js2
-rw-r--r--lib/l10n/es.json2
-rw-r--r--lib/l10n/es_AR.js2
-rw-r--r--lib/l10n/es_AR.json2
-rw-r--r--lib/l10n/es_BO.js2
-rw-r--r--lib/l10n/es_BO.json2
-rw-r--r--lib/l10n/es_CL.js2
-rw-r--r--lib/l10n/es_CL.json2
-rw-r--r--lib/l10n/es_CO.js2
-rw-r--r--lib/l10n/es_CO.json2
-rw-r--r--lib/l10n/es_CR.js2
-rw-r--r--lib/l10n/es_CR.json2
-rw-r--r--lib/l10n/es_EC.js2
-rw-r--r--lib/l10n/es_EC.json2
-rw-r--r--lib/l10n/es_MX.js2
-rw-r--r--lib/l10n/es_MX.json2
-rw-r--r--lib/l10n/es_PE.js2
-rw-r--r--lib/l10n/es_PE.json2
-rw-r--r--lib/l10n/es_PY.js2
-rw-r--r--lib/l10n/es_PY.json2
-rw-r--r--lib/l10n/es_US.js2
-rw-r--r--lib/l10n/es_US.json2
-rw-r--r--lib/l10n/es_UY.js2
-rw-r--r--lib/l10n/es_UY.json2
-rw-r--r--lib/l10n/et_EE.js2
-rw-r--r--lib/l10n/et_EE.json2
-rw-r--r--lib/l10n/eu.js2
-rw-r--r--lib/l10n/eu.json2
-rw-r--r--lib/l10n/eu_ES.js2
-rw-r--r--lib/l10n/eu_ES.json2
-rw-r--r--lib/l10n/fa.js2
-rw-r--r--lib/l10n/fa.json2
-rw-r--r--lib/l10n/fi_FI.js4
-rw-r--r--lib/l10n/fi_FI.json4
-rw-r--r--lib/l10n/fil.js2
-rw-r--r--lib/l10n/fil.json2
-rw-r--r--lib/l10n/fr.js4
-rw-r--r--lib/l10n/fr.json4
-rw-r--r--lib/l10n/fr_CA.js2
-rw-r--r--lib/l10n/fr_CA.json2
-rw-r--r--lib/l10n/fy_NL.js2
-rw-r--r--lib/l10n/fy_NL.json2
-rw-r--r--lib/l10n/gl.js2
-rw-r--r--lib/l10n/gl.json2
-rw-r--r--lib/l10n/gu.js2
-rw-r--r--lib/l10n/gu.json2
-rw-r--r--lib/l10n/he.js2
-rw-r--r--lib/l10n/he.json2
-rw-r--r--lib/l10n/hi.js2
-rw-r--r--lib/l10n/hi.json2
-rw-r--r--lib/l10n/hr.js2
-rw-r--r--lib/l10n/hr.json2
-rw-r--r--lib/l10n/hu_HU.js2
-rw-r--r--lib/l10n/hu_HU.json2
-rw-r--r--lib/l10n/hy.js2
-rw-r--r--lib/l10n/hy.json2
-rw-r--r--lib/l10n/ia.js2
-rw-r--r--lib/l10n/ia.json2
-rw-r--r--lib/l10n/id.js2
-rw-r--r--lib/l10n/id.json2
-rw-r--r--lib/l10n/io.js2
-rw-r--r--lib/l10n/io.json2
-rw-r--r--lib/l10n/is.js2
-rw-r--r--lib/l10n/is.json2
-rw-r--r--lib/l10n/it.js2
-rw-r--r--lib/l10n/it.json2
-rw-r--r--lib/l10n/ja.js2
-rw-r--r--lib/l10n/ja.json2
-rw-r--r--lib/l10n/jv.js2
-rw-r--r--lib/l10n/jv.json2
-rw-r--r--lib/l10n/ka_GE.js2
-rw-r--r--lib/l10n/ka_GE.json2
-rw-r--r--lib/l10n/km.js2
-rw-r--r--lib/l10n/km.json2
-rw-r--r--lib/l10n/kn.js2
-rw-r--r--lib/l10n/kn.json2
-rw-r--r--lib/l10n/ko.js2
-rw-r--r--lib/l10n/ko.json2
-rw-r--r--lib/l10n/ku_IQ.js2
-rw-r--r--lib/l10n/ku_IQ.json2
-rw-r--r--lib/l10n/lb.js2
-rw-r--r--lib/l10n/lb.json2
-rw-r--r--lib/l10n/lt_LT.js2
-rw-r--r--lib/l10n/lt_LT.json2
-rw-r--r--lib/l10n/lv.js2
-rw-r--r--lib/l10n/lv.json2
-rw-r--r--lib/l10n/mg.js2
-rw-r--r--lib/l10n/mg.json2
-rw-r--r--lib/l10n/mk.js2
-rw-r--r--lib/l10n/mk.json2
-rw-r--r--lib/l10n/ml.js2
-rw-r--r--lib/l10n/ml.json2
-rw-r--r--lib/l10n/ml_IN.js2
-rw-r--r--lib/l10n/ml_IN.json2
-rw-r--r--lib/l10n/mn.js2
-rw-r--r--lib/l10n/mn.json2
-rw-r--r--lib/l10n/ms_MY.js2
-rw-r--r--lib/l10n/ms_MY.json2
-rw-r--r--lib/l10n/mt_MT.js2
-rw-r--r--lib/l10n/mt_MT.json2
-rw-r--r--lib/l10n/my_MM.js2
-rw-r--r--lib/l10n/my_MM.json2
-rw-r--r--lib/l10n/nb_NO.js2
-rw-r--r--lib/l10n/nb_NO.json2
-rw-r--r--lib/l10n/nds.js2
-rw-r--r--lib/l10n/nds.json2
-rw-r--r--lib/l10n/ne.js2
-rw-r--r--lib/l10n/ne.json2
-rw-r--r--lib/l10n/nl.js4
-rw-r--r--lib/l10n/nl.json4
-rw-r--r--lib/l10n/nn_NO.js2
-rw-r--r--lib/l10n/nn_NO.json2
-rw-r--r--lib/l10n/nqo.js2
-rw-r--r--lib/l10n/nqo.json2
-rw-r--r--lib/l10n/oc.js2
-rw-r--r--lib/l10n/oc.json2
-rw-r--r--lib/l10n/or_IN.js2
-rw-r--r--lib/l10n/or_IN.json2
-rw-r--r--lib/l10n/pa.js2
-rw-r--r--lib/l10n/pa.json2
-rw-r--r--lib/l10n/pl.js2
-rw-r--r--lib/l10n/pl.json2
-rw-r--r--lib/l10n/pt_BR.js4
-rw-r--r--lib/l10n/pt_BR.json4
-rw-r--r--lib/l10n/pt_PT.js2
-rw-r--r--lib/l10n/pt_PT.json2
-rw-r--r--lib/l10n/ro.js2
-rw-r--r--lib/l10n/ro.json2
-rw-r--r--lib/l10n/ru.js2
-rw-r--r--lib/l10n/ru.json2
-rw-r--r--lib/l10n/si_LK.js2
-rw-r--r--lib/l10n/si_LK.json2
-rw-r--r--lib/l10n/sk_SK.js2
-rw-r--r--lib/l10n/sk_SK.json2
-rw-r--r--lib/l10n/sl.js2
-rw-r--r--lib/l10n/sl.json2
-rw-r--r--lib/l10n/sq.js2
-rw-r--r--lib/l10n/sq.json2
-rw-r--r--lib/l10n/sr.js2
-rw-r--r--lib/l10n/sr.json2
-rw-r--r--lib/l10n/sr@latin.js2
-rw-r--r--lib/l10n/sr@latin.json2
-rw-r--r--lib/l10n/su.js2
-rw-r--r--lib/l10n/su.json2
-rw-r--r--lib/l10n/sv.js2
-rw-r--r--lib/l10n/sv.json2
-rw-r--r--lib/l10n/sw_KE.js2
-rw-r--r--lib/l10n/sw_KE.json2
-rw-r--r--lib/l10n/ta_IN.js2
-rw-r--r--lib/l10n/ta_IN.json2
-rw-r--r--lib/l10n/ta_LK.js2
-rw-r--r--lib/l10n/ta_LK.json2
-rw-r--r--lib/l10n/te.js2
-rw-r--r--lib/l10n/te.json2
-rw-r--r--lib/l10n/tg_TJ.js2
-rw-r--r--lib/l10n/tg_TJ.json2
-rw-r--r--lib/l10n/th_TH.js2
-rw-r--r--lib/l10n/th_TH.json2
-rw-r--r--lib/l10n/tl_PH.js2
-rw-r--r--lib/l10n/tl_PH.json2
-rw-r--r--lib/l10n/tr.js4
-rw-r--r--lib/l10n/tr.json4
-rw-r--r--lib/l10n/tzm.js2
-rw-r--r--lib/l10n/tzm.json2
-rw-r--r--lib/l10n/ug.js2
-rw-r--r--lib/l10n/ug.json2
-rw-r--r--lib/l10n/uk.js2
-rw-r--r--lib/l10n/uk.json2
-rw-r--r--lib/l10n/ur_PK.js2
-rw-r--r--lib/l10n/ur_PK.json2
-rw-r--r--lib/l10n/uz.js2
-rw-r--r--lib/l10n/uz.json2
-rw-r--r--lib/l10n/vi.js2
-rw-r--r--lib/l10n/vi.json2
-rw-r--r--lib/l10n/zh_CN.js2
-rw-r--r--lib/l10n/zh_CN.json2
-rw-r--r--lib/l10n/zh_HK.js2
-rw-r--r--lib/l10n/zh_HK.json2
-rw-r--r--lib/l10n/zh_TW.js2
-rw-r--r--lib/l10n/zh_TW.json2
-rw-r--r--lib/private/activitymanager.php19
-rw-r--r--lib/private/datetimeformatter.php4
-rw-r--r--lib/private/files/cache/cache.php45
-rw-r--r--lib/private/files/cache/wrapper/cachejail.php12
-rw-r--r--lib/private/files/cache/wrapper/cachewrapper.php12
-rw-r--r--lib/private/files/filesystem.php9
-rw-r--r--lib/private/files/node/folder.php25
-rw-r--r--lib/private/files/node/nonexistingfolder.php4
-rw-r--r--lib/private/files/storage/dav.php32
-rw-r--r--lib/private/files/view.php31
-rw-r--r--lib/private/l10n.php2
-rw-r--r--lib/private/l10n/string.php22
-rw-r--r--lib/private/largefilehelper.php2
-rw-r--r--lib/private/server.php18
-rw-r--r--lib/private/tagmanager.php22
-rw-r--r--lib/private/user.php1
-rw-r--r--lib/private/user/manager.php16
-rw-r--r--lib/public/activity/iextension.php13
-rw-r--r--lib/public/activity/imanager.php7
-rw-r--r--lib/public/files/folder.php9
-rw-r--r--lib/public/iservercontainer.php7
-rw-r--r--lib/public/itagmanager.php7
-rw-r--r--lib/public/iusermanager.php6
-rw-r--r--settings/controller/userscontroller.php61
-rw-r--r--settings/css/settings.css7
-rw-r--r--settings/js/users/users.js74
-rw-r--r--settings/l10n/de.js7
-rw-r--r--settings/l10n/de.json7
-rw-r--r--settings/l10n/de_DE.js7
-rw-r--r--settings/l10n/de_DE.json7
-rw-r--r--settings/l10n/fr.js7
-rw-r--r--settings/l10n/fr.json7
-rw-r--r--settings/l10n/nl.js7
-rw-r--r--settings/l10n/nl.json7
-rw-r--r--settings/templates/users/main.php35
-rw-r--r--settings/templates/users/part.userlist.php92
-rw-r--r--settings/users.php40
-rw-r--r--tests/data/l10n/ru.json3
-rw-r--r--tests/lib/activitymanager.php20
-rw-r--r--tests/lib/datetimeformatter.php6
-rw-r--r--tests/lib/files/cache/cache.php57
-rw-r--r--tests/lib/files/node/folder.php39
-rw-r--r--tests/lib/l10n.php18
-rw-r--r--tests/lib/largefilehelpergetfilesize.php9
-rw-r--r--tests/lib/tags.php62
-rw-r--r--tests/lib/testcase.php21
-rw-r--r--tests/lib/user/manager.php11
-rw-r--r--tests/settings/controller/userscontrollertest.php103
357 files changed, 1678 insertions, 913 deletions
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index eb99d0644f7..fcee0166da6 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -117,6 +117,12 @@ if (strpos($dir, '..') === false) {
$fileCount = count($files['name']);
for ($i = 0; $i < $fileCount; $i++) {
+ if (isset($_POST['resolution'])) {
+ $resolution = $_POST['resolution'];
+ } else {
+ $resolution = null;
+ }
+
// target directory for when uploading folders
$relativePath = '';
if(!empty($_POST['file_directory'])) {
@@ -124,7 +130,7 @@ if (strpos($dir, '..') === false) {
}
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
- if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') {
+ if ($resolution === 'autorename') {
// append a number in brackets like 'filename (2).ext'
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir . $relativePath), $files['name'][$i]);
} else {
@@ -141,9 +147,12 @@ if (strpos($dir, '..') === false) {
}
$returnedDir = \OC\Files\Filesystem::normalizePath($returnedDir);
- if ( ! \OC\Files\Filesystem::file_exists($target)
- || (isset($_POST['resolution']) && $_POST['resolution']==='replace')
- ) {
+
+ $exists = \OC\Files\Filesystem::file_exists($target);
+ if ($exists) {
+ $updatable = \OC\Files\Filesystem::isUpdatable($target);
+ }
+ if ( ! $exists || ($updatable && $resolution === 'replace' ) ) {
// upload and overwrite file
try
{
@@ -181,8 +190,11 @@ if (strpos($dir, '..') === false) {
$error = $l->t('Upload failed. Could not get file info.');
} else {
$data = \OCA\Files\Helper::formatFileInfo($meta);
- $data['permissions'] = $data['permissions'] & $allowedPermissions;
- $data['status'] = 'existserror';
+ if ($updatable) {
+ $data['status'] = 'existserror';
+ } else {
+ $data['status'] = 'readonly';
+ }
$data['originalname'] = $files['tmp_name'][$i];
$data['uploadMaxFilesize'] = $maxUploadFileSize;
$data['maxHumanFilesize'] = $maxHumanFileSize;
diff --git a/apps/files/css/upload.css b/apps/files/css/upload.css
index 98754b910de..cc383879fb2 100644
--- a/apps/files/css/upload.css
+++ b/apps/files/css/upload.css
@@ -64,6 +64,28 @@
font-size: 13px;
}
+.oc-dialog .fileexists {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.oc-dialog .fileexists .conflict .filename,
+.oc-dialog .fileexists .conflict .mtime,
+.oc-dialog .fileexists .conflict .size {
+ -webkit-touch-callout: initial;
+ -webkit-user-select: initial;
+ -khtml-user-select: initial;
+ -moz-user-select: initial;
+ -ms-user-select: initial;
+ user-select: initial;
+}
+.oc-dialog .fileexists .conflict .message {
+ color: #e9322d;
+}
.oc-dialog .fileexists table {
width: 100%;
}
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index ab450dc5cac..9fe623075bc 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -175,7 +175,14 @@ OC.Upload = {
* @param {function} callbacks.onCancel
*/
checkExistingFiles: function (selection, callbacks) {
- // TODO check filelist before uploading and show dialog on conflicts, use callbacks
+ /*
+ $.each(selection.uploads, function(i, upload) {
+ var $row = OCA.Files.App.fileList.findFileEl(upload.files[0].name);
+ if ($row) {
+ // TODO check filelist before uploading and show dialog on conflicts, use callbacks
+ }
+ });
+ */
callbacks.onNoConflicts(selection);
},
@@ -417,11 +424,15 @@ OC.Upload = {
data.textStatus = 'servererror';
data.errorThrown = t('files', 'Could not get result from server.');
fu._trigger('fail', e, data);
+ } else if (result[0].status === 'readonly') {
+ var original = result[0];
+ var replacement = data.files[0];
+ OC.dialogs.fileexists(data, original, replacement, OC.Upload);
} else if (result[0].status === 'existserror') {
//show "file already exists" dialog
var original = result[0];
var replacement = data.files[0];
- OC.dialogs.fileexists(data, original, replacement, OC.Upload, fu);
+ OC.dialogs.fileexists(data, original, replacement, OC.Upload);
} else if (result[0].status !== 'success') {
//delete data.jqXHR;
data.textStatus = 'servererror';
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 67b0adc6553..b20bdf23e1f 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -172,6 +172,9 @@
}
this.$el = $el;
+ if (options.id) {
+ this.id = options.id;
+ }
this.$container = options.scrollContainer || $(window);
this.$table = $el.find('table:first');
this.$fileList = $el.find('#fileList');
@@ -221,6 +224,8 @@
self.scrollTo(options.scrollTo);
});
}
+
+ OC.Plugins.attach('OCA.Files.FileList', this);
},
/**
@@ -230,6 +235,7 @@
// TODO: also unregister other event handlers
this.fileActions.off('registerAction', this._onFileActionsUpdated);
this.fileActions.off('setDefault', this._onFileActionsUpdated);
+ OC.Plugins.detach('OCA.Files.FileList', this);
},
/**
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 2bb9e4d27d6..d43720f0e8a 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -46,10 +46,10 @@ OC.L10N.register(
"Could not create file" : "Não pôde criar ficheiro",
"Could not create folder" : "Não pôde criar pasta",
"Error fetching URL" : "Erro ao obter URL",
+ "Rename" : "Renomear",
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
- "Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro a mover o ficheiro.",
"Error moving file" : "Erro ao mover o ficheiro",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 075e9b30006..e735114678b 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -44,10 +44,10 @@
"Could not create file" : "Não pôde criar ficheiro",
"Could not create folder" : "Não pôde criar pasta",
"Error fetching URL" : "Erro ao obter URL",
+ "Rename" : "Renomear",
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
- "Rename" : "Renomear",
"Pending" : "Pendente",
"Error moving file." : "Erro a mover o ficheiro.",
"Error moving file" : "Erro ao mover o ficheiro",
diff --git a/apps/files/templates/fileexists.html b/apps/files/templates/fileexists.html
index 79beccef3e5..5360a7c8e8f 100644
--- a/apps/files/templates/fileexists.html
+++ b/apps/files/templates/fileexists.html
@@ -20,6 +20,7 @@
<span class="svg icon"></span>
<div class="mtime"></div>
<div class="size"></div>
+ <div class="message"></div>
</div>
</div>
</div>
diff --git a/apps/files_external/img/app.svg b/apps/files_external/img/app.svg
index df1bfd163ff..6cafe174f60 100644
--- a/apps/files_external/img/app.svg
+++ b/apps/files_external/img/app.svg
@@ -1,212 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- height="32px"
- width="32px"
- version="1.1"
- id="svg2"
- inkscape:version="0.48.5 r10040"
- sodipodi:docname="app.svg">
- <metadata
- id="metadata80">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1014"
- id="namedview78"
- showgrid="false"
- inkscape:zoom="7.375"
- inkscape:cx="-13.559322"
- inkscape:cy="16"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg2" />
- <defs
- id="defs4">
- <linearGradient
- id="m"
- y2="21.387"
- gradientUnits="userSpaceOnUse"
- x2="27.557"
- gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)"
- y1="7.1627"
- x1="27.557">
- <stop
- stop-color="#fff"
- offset="0"
- id="stop7" />
- <stop
- stop-color="#fff"
- stop-opacity=".23529"
- offset=".0097359"
- id="stop9" />
- <stop
- stop-color="#fff"
- stop-opacity=".15686"
- offset=".99001"
- id="stop11" />
- <stop
- stop-color="#fff"
- stop-opacity=".39216"
- offset="1"
- id="stop13" />
- </linearGradient>
- <linearGradient
- id="l"
- y2="43.761"
- gradientUnits="userSpaceOnUse"
- x2="35.793"
- gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)"
- y1="17.118"
- x1="35.793">
- <stop
- stop-color="#b4cee1"
- offset="0"
- id="stop16" />
- <stop
- stop-color="#5d9fcd"
- offset="1"
- id="stop18" />
- </linearGradient>
- <linearGradient
- id="k"
- y2="609.51"
- gradientUnits="userSpaceOnUse"
- x2="302.86"
- gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)"
- y1="366.65"
- x1="302.86">
- <stop
- stop-opacity="0"
- offset="0"
- id="stop21" />
- <stop
- offset=".5"
- id="stop23" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop25" />
- </linearGradient>
- <radialGradient
- id="n"
- gradientUnits="userSpaceOnUse"
- cy="486.65"
- cx="605.71"
- gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)"
- r="117.14">
- <stop
- offset="0"
- id="stop28" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop30" />
- </radialGradient>
- <radialGradient
- id="o"
- gradientUnits="userSpaceOnUse"
- cy="486.65"
- cx="605.71"
- gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)"
- r="117.14">
- <stop
- offset="0"
- id="stop33" />
- <stop
- stop-opacity="0"
- offset="1"
- id="stop35" />
- </radialGradient>
- <linearGradient
- id="j"
- y2="34.143"
- gradientUnits="userSpaceOnUse"
- x2="21.37"
- gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)"
- y1="4.7324"
- x1="21.37">
- <stop
- stop-color="#fff"
- offset="0"
- id="stop38" />
- <stop
- stop-color="#fff"
- stop-opacity=".23529"
- offset=".11063"
- id="stop40" />
- <stop
- stop-color="#fff"
- stop-opacity=".15686"
- offset=".99001"
- id="stop42" />
- <stop
- stop-color="#fff"
- stop-opacity=".39216"
- offset="1"
- id="stop44" />
- </linearGradient>
- <linearGradient
- id="i"
- y2="16"
- gradientUnits="userSpaceOnUse"
- x2="62.989"
- gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)"
- y1="13"
- x1="62.989">
- <stop
- stop-color="#f9f9f9"
- offset="0"
- id="stop47" />
- <stop
- stop-color="#d8d8d8"
- offset="1"
- id="stop49" />
- </linearGradient>
- <linearGradient
- id="d"
- y2="3.6337"
- gradientUnits="userSpaceOnUse"
- y1="53.514"
- gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)"
- x2="-51.786"
- x1="-51.786">
- <stop
- stop-opacity=".32174"
- offset="0"
- id="stop52" />
- <stop
- stop-opacity=".27826"
- offset="1"
- id="stop54" />
- </linearGradient>
- </defs>
- <path
- d="m 14.902928,3.2372882 4.76117,4.5146377 -7.141758,6.7719561 4.761174,4.514639 7.141756,-6.771956 4.761171,4.514636 V 3.2372882 H 14.902928 z M 5.3805857,5.4946057 C 4.0617412,5.4946057 3,6.501372 3,7.7519259 V 25.810477 c 0,1.250555 1.0617412,2.257319 2.3805857,2.257319 H 24.42527 c 1.318844,0 2.380584,-1.006764 2.380584,-2.257319 v -6.771956 l -2.380584,-2.25732 v 9.029276 H 5.3805857 V 7.7519259 H 14.902928 L 12.52234,5.4946057 H 5.3805857 z"
- id="path76"
- inkscape:connector-curvature="0"
- style="opacity:0.7;fill:#ffffff;fill-opacity:1" />
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <path d="m14.903 3.2373 4.7612 4.5146-7.1418 6.772 4.7612 4.5146 7.1418-6.772 4.7612 4.5146v-13.545h-14.283zm-9.5224 2.2573c-1.3189 0-2.3806 1.0068-2.3806 2.2573v18.058c0 1.2506 1.0617 2.2573 2.3806 2.2573h19.044c1.3188 0 2.3806-1.0068 2.3806-2.2573v-6.772l-2.3806-2.2573v9.0293h-19.044v-18.058h9.522l-2.381-2.2574h-7.1414z" fill="#fff"/>
</svg>
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 180aff63e40..08bee38a2d8 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -54,6 +54,7 @@ OC.L10N.register(
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
+ "and" : "et",
"<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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Attention : </b> \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 25441ee90be..a58251b5ee2 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -52,6 +52,7 @@
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
+ "and" : "et",
"<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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Attention : </b> \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_external/l10n/sl.js b/apps/files_external/l10n/sl.js
index 8effd328630..c0b76c43015 100644
--- a/apps/files_external/l10n/sl.js
+++ b/apps/files_external/l10n/sl.js
@@ -54,6 +54,7 @@ OC.L10N.register(
"(group)" : "(skupina)",
"Saved" : "Shranjeno",
"<b>Note:</b> " : "<b>Opomba:</b> ",
+ "and" : "in",
"<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.",
diff --git a/apps/files_external/l10n/sl.json b/apps/files_external/l10n/sl.json
index d1cc0330f93..a30b31a67f7 100644
--- a/apps/files_external/l10n/sl.json
+++ b/apps/files_external/l10n/sl.json
@@ -52,6 +52,7 @@
"(group)" : "(skupina)",
"Saved" : "Shranjeno",
"<b>Note:</b> " : "<b>Opomba:</b> ",
+ "and" : "in",
"<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.",
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index b4ab8b70f33..5742b8f47e2 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -644,12 +644,7 @@ class OC_Mount_Config {
$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
$file = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
}
- $options = 0;
- if (defined('JSON_PRETTY_PRINT')) {
- // only for PHP >= 5.4
- $options = JSON_PRETTY_PRINT;
- }
- $content = json_encode($data, $options);
+ $content = json_encode($data, JSON_PRETTY_PRINT);
@file_put_contents($file, $content);
@chmod($file, 0640);
}
diff --git a/apps/files_external/tests/js/mountsfilelistSpec.js b/apps/files_external/tests/js/mountsfilelistSpec.js
index b599df77aac..50603081b6a 100644
--- a/apps/files_external/tests/js/mountsfilelistSpec.js
+++ b/apps/files_external/tests/js/mountsfilelistSpec.js
@@ -9,8 +9,7 @@
*/
describe('OCA.External.FileList tests', function() {
- var testFiles, alertStub, notificationStub, fileList, fileActions;
- var oldFileListPrototype;
+ var testFiles, alertStub, notificationStub, fileList;
beforeEach(function() {
alertStub = sinon.stub(OC.dialogs, 'alert');
@@ -49,14 +48,11 @@ describe('OCA.External.FileList tests', function() {
'<div id="emptycontent">Empty content message</div>' +
'</div>'
);
- fileActions = new OCA.Files.FileActions();
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
testFiles = undefined;
fileList.destroy();
fileList = undefined;
- fileActions = undefined;
notificationStub.restore();
alertStub.restore();
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 329afa07519..36d148dce96 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -55,14 +55,17 @@ if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
"name" => $l->t('Shared with others')
)
);
- \OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'sharinglinks',
- "appname" => 'files_sharing',
- "script" => 'list.php',
- "order" => 20,
- "name" => $l->t('Shared by link')
- )
- );
+ // Check if sharing by link is enabled
+ if ($config->getAppValue('core', 'shareapi_allow_links', 'yes') === 'yes') {
+ \OCA\Files\App::getNavigationManager()->add(
+ array(
+ "id" => 'sharinglinks',
+ "appname" => 'files_sharing',
+ "script" => 'list.php',
+ "order" => 20,
+ "name" => $l->t('Shared by link')
+ )
+ );
+ }
}
}
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index 1314304c567..ff6997ab12f 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -30,6 +30,7 @@ OCA.Sharing.App = {
this._inFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.self',
scrollContainer: $('#app-content'),
sharedWithUser: true,
fileActions: this._createFileActions()
@@ -49,6 +50,7 @@ OCA.Sharing.App = {
this._outFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.others',
scrollContainer: $('#app-content'),
sharedWithUser: false,
fileActions: this._createFileActions()
@@ -68,6 +70,7 @@ OCA.Sharing.App = {
this._linkFileList = new OCA.Sharing.FileList(
$el,
{
+ id: 'shares.link',
scrollContainer: $('#app-content'),
linksOnly: true,
fileActions: this._createFileActions()
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 0627ed6ab54..2ddcd84d4c1 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -53,6 +53,7 @@ OCA.Sharing.PublicApp = {
this.fileList = new OCA.Files.FileList(
$el,
{
+ id: 'files.public',
scrollContainer: $(window),
dragOptions: dragOptions,
folderDropOptions: folderDropOptions,
@@ -61,6 +62,9 @@ OCA.Sharing.PublicApp = {
);
this.files = OCA.Files.Files;
this.files.initialize();
+ // TODO: move to PublicFileList.initialize() once
+ // the code was split into a separate class
+ OC.Plugins.attach('OCA.Sharing.PublicFileList', this.fileList);
}
var mimetype = $('#mimetype').val();
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index 8474c66d4b8..bbd107e070e 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -17,46 +17,47 @@
*/
OCA.Sharing.Util = {
/**
- * Initialize the sharing app overrides of the default
- * file list.
+ * Initialize the sharing plugin.
*
* Registers the "Share" file action and adds additional
* DOM attributes for the sharing file info.
*
- * @param {OCA.Files.FileActions} fileActions file actions to extend
+ * @param {OCA.Files.FileList} fileList file list to be extended
*/
- initialize: function(fileActions) {
- if (OCA.Files.FileList) {
- var oldCreateRow = OCA.Files.FileList.prototype._createRow;
- OCA.Files.FileList.prototype._createRow = function(fileData) {
- var tr = oldCreateRow.apply(this, arguments);
- var sharePermissions = fileData.permissions;
- if (fileData.mountType && fileData.mountType === "external-root"){
- // for external storages we cant use the permissions of the mountpoint
- // instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
- sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
- }
- if (fileData.type === 'file') {
- // files can't be shared with delete permissions
- sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;
- }
- tr.attr('data-share-permissions', sharePermissions);
- if (fileData.shareOwner) {
- tr.attr('data-share-owner', fileData.shareOwner);
- // user should always be able to rename a mount point
- if (fileData.isShareMountPoint) {
- tr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);
- }
- }
- if (fileData.recipientsDisplayName) {
- tr.attr('data-share-recipients', fileData.recipientsDisplayName);
- }
- return tr;
- };
+ attach: function(fileList) {
+ if (fileList.id === 'trashbin') {
+ return;
}
+ var fileActions = fileList.fileActions;
+ var oldCreateRow = fileList._createRow;
+ fileList._createRow = function(fileData) {
+ var tr = oldCreateRow.apply(this, arguments);
+ var sharePermissions = fileData.permissions;
+ if (fileData.mountType && fileData.mountType === "external-root"){
+ // for external storages we cant use the permissions of the mountpoint
+ // instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
+ sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
+ }
+ if (fileData.type === 'file') {
+ // files can't be shared with delete permissions
+ sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;
+ }
+ tr.attr('data-share-permissions', sharePermissions);
+ if (fileData.shareOwner) {
+ tr.attr('data-share-owner', fileData.shareOwner);
+ // user should always be able to rename a mount point
+ if (fileData.isShareMountPoint) {
+ tr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);
+ }
+ }
+ if (fileData.recipientsDisplayName) {
+ tr.attr('data-share-recipients', fileData.recipientsDisplayName);
+ }
+ return tr;
+ };
// use delegate to catch the case with multiple file lists
- $('#content').delegate('#fileList', 'fileActionsReady', function(ev){
+ fileList.$el.on('fileActionsReady', function(ev){
var fileList = ev.fileList;
var $files = ev.$files;
@@ -198,12 +199,5 @@
};
})();
-$(document).ready(function() {
- // FIXME: HACK: do not init when running unit tests, need a better way
- if (!window.TESTING) {
- if (!_.isUndefined(OC.Share) && !_.isUndefined(OCA.Files)) {
- OCA.Sharing.Util.initialize(OCA.Files.fileActions);
- }
- }
-});
+OC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util);
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index 12bca9708a6..2c7d6c7d43a 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -56,6 +56,7 @@
if (options && options.linksOnly) {
this._linksOnly = true;
}
+ OC.Plugins.attach('OCA.Sharing.FileList', this);
},
_renderRow: function() {
diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js
index 10c8497b502..bace06b0c41 100644
--- a/apps/files_sharing/l10n/cs_CZ.js
+++ b/apps/files_sharing/l10n/cs_CZ.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "Sdílí",
"A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
"You received a new remote share from %s" : "Obdrželi jste nové vzdálené sdílení z %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s přijal(a) vzdálené sdílení <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s odmítl(a) vzdálené sdílení <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s zrušil(a) sdílení <strong>%2$s</strong>",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
"Password" : "Heslo",
diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json
index 1b4ce7fd5dc..3071cd251d3 100644
--- a/apps/files_sharing/l10n/cs_CZ.json
+++ b/apps/files_sharing/l10n/cs_CZ.json
@@ -19,9 +19,6 @@
"Shared by" : "Sdílí",
"A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
"You received a new remote share from %s" : "Obdrželi jste nové vzdálené sdílení z %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s přijal(a) vzdálené sdílení <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s odmítl(a) vzdálené sdílení <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s zrušil(a) sdílení <strong>%2$s</strong>",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
"Password" : "Heslo",
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index bc3e0072d74..76ab4a877f7 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"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>",
"You received a new remote share from %s" : "Du modtog en ny ekstern deling fra %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepterede den eksterne deling <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s afviste den eksterne deling <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s stoppede delingen <strong>%2$s</strong>",
"This share is password-protected" : "Delingen er beskyttet af kodeord",
"The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.",
"Password" : "Kodeord",
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 077a4f247f5..316c66f5d35 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -19,9 +19,6 @@
"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>",
"You received a new remote share from %s" : "Du modtog en ny ekstern deling fra %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepterede den eksterne deling <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s afviste den eksterne deling <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s stoppede delingen <strong>%2$s</strong>",
"This share is password-protected" : "Delingen er beskyttet af kodeord",
"The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.",
"Password" : "Kodeord",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index c3160792e1c..81ebd86723d 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Shared by" : "Geteilt von ",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Du hast eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 62a74cf445b..ceae453aa66 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Shared by" : "Geteilt von ",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Du hast eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index e50a15dd29e..ec97bcba393 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Shared by" : "Geteilt von",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Sie haben eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 129769939e5..2dd35e35310 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Shared by" : "Geteilt von",
+ "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
+ "You received a new remote share from %s" : "Sie haben eine neue Remotefreigabe von %s erhalten",
"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt",
"The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
"Password" : "Passwort",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 5cbd6951973..c5dfd1a7674 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "Shared by",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
"You received a new remote share from %s" : "You received a new remote share from %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepted remote share <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s declined remote share <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s unshared <strong>%2$s</strong>",
"This share is password-protected" : "This share is password-protected",
"The password is wrong. Try again." : "The password is wrong. Try again.",
"Password" : "Password",
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 6eafbf1f3c6..a145d68425c 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -19,9 +19,6 @@
"Shared by" : "Shared by",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
"You received a new remote share from %s" : "You received a new remote share from %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepted remote share <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s declined remote share <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s unshared <strong>%2$s</strong>",
"This share is password-protected" : "This share is password-protected",
"The password is wrong. Try again." : "The password is wrong. Try again.",
"Password" : "Password",
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index 2c14bd5841b..ad455736d86 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "Jakanut",
"A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio jaettiin <strong>toiselta palvelimelta</strong>",
"You received a new remote share from %s" : "Vastaanotit uuden etäjaon käyttäjältä %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hyväksyi etäjaon <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s kieltäytyi etäjaosta <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s lopetti jaon <strong>%2$s</strong>",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
"The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.",
"Password" : "Salasana",
diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json
index f5482770f7d..83423ae1bcd 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -19,9 +19,6 @@
"Shared by" : "Jakanut",
"A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio jaettiin <strong>toiselta palvelimelta</strong>",
"You received a new remote share from %s" : "Vastaanotit uuden etäjaon käyttäjältä %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hyväksyi etäjaon <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s kieltäytyi etäjaosta <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s lopetti jaon <strong>%2$s</strong>",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
"The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.",
"Password" : "Salasana",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 98f1a46627d..734f1091f75 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud invalide",
"Shared by" : "Partagé par",
+ "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
+ "You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
"The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.",
"Password" : "Mot de passe",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index c7145f92e98..5fbdc5da72b 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud invalide",
"Shared by" : "Partagé par",
+ "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
+ "You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
"The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.",
"Password" : "Mot de passe",
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index 7a981cf3b94..42bb76958ec 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "共有者:",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
"You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s は<strong>%2$s</strong>のリモート共有を有効にしました",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s は<strong>%2$s</strong>のリモート共有を断りました",
- "%1$s unshared <strong>%2$s</strong>" : "%1$sは<strong>%2$s</strong>の共有を無効にしました ",
"This share is password-protected" : "この共有はパスワードで保護されています",
"The password is wrong. Try again." : "パスワードが間違っています。再試行してください。",
"Password" : "パスワード",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index dae8d8a65eb..87128114d7c 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -19,9 +19,6 @@
"Shared by" : "共有者:",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
"You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s は<strong>%2$s</strong>のリモート共有を有効にしました",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s は<strong>%2$s</strong>のリモート共有を断りました",
- "%1$s unshared <strong>%2$s</strong>" : "%1$sは<strong>%2$s</strong>の共有を無効にしました ",
"This share is password-protected" : "この共有はパスワードで保護されています",
"The password is wrong. Try again." : "パスワードが間違っています。再試行してください。",
"Password" : "パスワード",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index e997a1167f4..e566b2618b2 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -19,6 +19,8 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Shared by" : "Gedeeld door",
+ "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
+ "You received a new remote share from %s" : "U ontving een nieuwe externe share van %s",
"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",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 9d6fd9c37ca..a386c43fe9c 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -17,6 +17,8 @@
"No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Shared by" : "Gedeeld door",
+ "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
+ "You received a new remote share from %s" : "U ontving een nieuwe externe share van %s",
"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",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 1b29ac89322..d7cb4df4dbe 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "Compartilhado por",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
"You received a new remote share from %s" : "Você recebeu um novo compartilhamento remoto de %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s aceitou compartilhamento remoto <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s não aceitou compartilhamento <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s não compartilhado <strong>%2$s</strong>",
"This share is password-protected" : "Este compartilhamento esta protegido por senha",
"The password is wrong. Try again." : "Senha incorreta. Tente novamente.",
"Password" : "Senha",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index e8e94928b50..73be570ebd0 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -19,9 +19,6 @@
"Shared by" : "Compartilhado por",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
"You received a new remote share from %s" : "Você recebeu um novo compartilhamento remoto de %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s aceitou compartilhamento remoto <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s não aceitou compartilhamento <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s não compartilhado <strong>%2$s</strong>",
"This share is password-protected" : "Este compartilhamento esta protegido por senha",
"The password is wrong. Try again." : "Senha incorreta. Tente novamente.",
"Password" : "Senha",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index c46442441fb..ad639cc5bcc 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -21,9 +21,6 @@ OC.L10N.register(
"Shared by" : "Опубликовано",
"A file or folder was shared from <strong>another server</strong>" : "Файл или папка, опубликованная на <strong>другом сервере</strong>",
"You received a new remote share from %s" : "Вы получили новую публикацию от %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s принял удалённую публикацию <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s отклонил удалённую публикацию <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s закрыл публикацию <strong>%2$s</strong>",
"This share is password-protected" : "Для доступа к информации необходимо ввести пароль",
"The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.",
"Password" : "Пароль",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 14ee54ff29b..21607bc8163 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -19,9 +19,6 @@
"Shared by" : "Опубликовано",
"A file or folder was shared from <strong>another server</strong>" : "Файл или папка, опубликованная на <strong>другом сервере</strong>",
"You received a new remote share from %s" : "Вы получили новую публикацию от %s",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s принял удалённую публикацию <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s отклонил удалённую публикацию <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s закрыл публикацию <strong>%2$s</strong>",
"This share is password-protected" : "Для доступа к информации необходимо ввести пароль",
"The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.",
"Password" : "Пароль",
diff --git a/apps/files_sharing/lib/activity.php b/apps/files_sharing/lib/activity.php
index 0f7e8ab9b63..979df1c1da6 100644
--- a/apps/files_sharing/lib/activity.php
+++ b/apps/files_sharing/lib/activity.php
@@ -94,16 +94,47 @@ class Activity implements \OCP\Activity\IExtension {
case self::SUBJECT_REMOTE_SHARE_RECEIVED:
return $l->t('You received a new remote share from %s', $params)->__toString();
case self::SUBJECT_REMOTE_SHARE_ACCEPTED:
- return $l->t('%1$s accepted remote share <strong>%2$s</strong>', $params)->__toString();
+ return $l->t('%1$s accepted remote share %2$s', $params)->__toString();
case self::SUBJECT_REMOTE_SHARE_DECLINED:
- return $l->t('%1$s declined remote share <strong>%2$s</strong>', $params)->__toString();
+ return $l->t('%1$s declined remote share %2$s', $params)->__toString();
case self::SUBJECT_REMOTE_SHARE_UNSHARED:
- return $l->t('%1$s unshared <strong>%2$s</strong>', $params)->__toString();
+ return $l->t('%1$s unshared %2$s', $params)->__toString();
}
}
}
/**
+ * The extension can define the type of parameters for translation
+ *
+ * Currently known types are:
+ * * file => will strip away the path of the file and add a tooltip with it
+ * * username => will add the avatar of the user
+ *
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ public function getSpecialParameterList($app, $text) {
+ if ($app === 'files_sharing') {
+ switch ($text) {
+ case self::SUBJECT_REMOTE_SHARE_RECEIVED:
+ return array(
+ 0 => '',// We can not use 'username' since the user is in a different ownCloud
+ );
+ case self::SUBJECT_REMOTE_SHARE_ACCEPTED:
+ case self::SUBJECT_REMOTE_SHARE_DECLINED:
+ case self::SUBJECT_REMOTE_SHARE_UNSHARED:
+ return array(
+ 0 => '',// We can not use 'username' since the user is in a different ownCloud
+ 1 => 'file',
+ );
+ }
+ }
+
+ return false;
+ }
+
+ /**
* A string naming the css class for the icon to be used can be returned.
* If no icon is known for the given type false is to be returned.
*
diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php
index e09b64cb039..e3bee145876 100644
--- a/apps/files_sharing/lib/cache.php
+++ b/apps/files_sharing/lib/cache.php
@@ -345,6 +345,46 @@ class Shared_Cache extends Cache {
}
/**
+ * search for files by tag
+ *
+ * @param string|int $tag tag to search for
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ // TODO: inject this
+ $tagger = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $result = array();
+ $exploreDirs = array('');
+ // FIXME: this is so wrong and unefficient, need to replace with actual DB queries
+ while (count($exploreDirs) > 0) {
+ $dir = array_pop($exploreDirs);
+ $files = $this->getFolderContents($dir);
+ // no results?
+ if (!$files) {
+ // maybe it's a single shared file
+ $file = $this->get('');
+ $tags = $tagger->getTagsForObjects(array((int)$file['fileid']));
+ if (!empty($tags) && in_array($tag, current($tags))) {
+ $result[] = $file;
+ }
+ continue;
+ }
+ foreach ($files as $file) {
+ if ($file['mimetype'] === 'httpd/unix-directory') {
+ $exploreDirs[] = ltrim($dir . '/' . $file['name'], '/');
+ } else {
+ $tags = $tagger->getTagsForObjects(array((int)$file['fileid']));
+ if (!empty($tags) && in_array($tag, current($tags))) {
+ $result[] = $file;
+ }
+ }
+ }
+ }
+ return $result;
+ }
+
+ /**
* get the size of a folder and set it in the cache
*
* @param string $path
diff --git a/apps/files_sharing/tests/cache.php b/apps/files_sharing/tests/cache.php
index aec1983bad3..b60bba73db8 100644
--- a/apps/files_sharing/tests/cache.php
+++ b/apps/files_sharing/tests/cache.php
@@ -204,6 +204,40 @@ class Test_Files_Sharing_Cache extends TestCase {
$this->verifyFiles($check, $results);
}
+ /**
+ * Test searching by tag
+ */
+ function testSearchByTag() {
+ $userId = \OC::$server->getUserSession()->getUser()->getUId();
+ $id1 = $this->sharedCache->get('bar.txt')['fileid'];
+ $id2 = $this->sharedCache->get('subdir/another too.txt')['fileid'];
+ $id3 = $this->sharedCache->get('subdir/not a text file.xml')['fileid'];
+ $id4 = $this->sharedCache->get('subdir/another.txt')['fileid'];
+ $tagManager = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $tagManager->tagAs($id1, 'tag1');
+ $tagManager->tagAs($id1, 'tag2');
+ $tagManager->tagAs($id2, 'tag1');
+ $tagManager->tagAs($id3, 'tag1');
+ $tagManager->tagAs($id4, 'tag2');
+ $results = $this->sharedStorage->getCache()->searchByTag('tag1', $userId);
+ $check = array(
+ array(
+ 'name' => 'bar.txt',
+ 'path' => 'bar.txt'
+ ),
+ array(
+ 'name' => 'another too.txt',
+ 'path' => 'subdir/another too.txt'
+ ),
+ array(
+ 'name' => 'not a text file.xml',
+ 'path' => 'subdir/not a text file.xml'
+ ),
+ );
+ $this->verifyFiles($check, $results);
+ $tagManager->delete(array('tag1', 'tag2'));
+ }
+
function testGetFolderContentsInRoot() {
$results = $this->user2View->getDirectoryContent('/');
diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
index bfcef992463..e5b5de314d7 100644
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ b/apps/files_sharing/tests/js/shareSpec.js
@@ -9,7 +9,6 @@
*/
describe('OCA.Sharing.Util tests', function() {
- var oldFileListPrototype;
var fileList;
var testFiles;
@@ -24,10 +23,6 @@ describe('OCA.Sharing.Util tests', function() {
}
beforeEach(function() {
- // back up prototype, as it will be extended by
- // the sharing code
- oldFileListPrototype = _.extend({}, OCA.Files.FileList.prototype);
-
var $content = $('<div id="content"></div>');
$('#testArea').append($content);
// dummy file list
@@ -41,12 +36,12 @@ describe('OCA.Sharing.Util tests', function() {
$('#content').append($div);
var fileActions = new OCA.Files.FileActions();
- OCA.Sharing.Util.initialize(fileActions);
fileList = new OCA.Files.FileList(
$div, {
fileActions : fileActions
}
);
+ OCA.Sharing.Util.attach(fileList);
testFiles = [{
id: 1,
@@ -67,7 +62,6 @@ describe('OCA.Sharing.Util tests', function() {
};
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
delete OCA.Sharing.sharesLoaded;
delete OC.Share.droppedDown;
fileList.destroy();
diff --git a/apps/files_sharing/tests/js/sharedfilelistSpec.js b/apps/files_sharing/tests/js/sharedfilelistSpec.js
index dc6931af6e8..7fdc6345e38 100644
--- a/apps/files_sharing/tests/js/sharedfilelistSpec.js
+++ b/apps/files_sharing/tests/js/sharedfilelistSpec.js
@@ -9,8 +9,7 @@
*/
describe('OCA.Sharing.FileList tests', function() {
- var testFiles, alertStub, notificationStub, fileList, fileActions;
- var oldFileListPrototype;
+ var testFiles, alertStub, notificationStub, fileList;
beforeEach(function() {
alertStub = sinon.stub(OC.dialogs, 'alert');
@@ -46,18 +45,11 @@ describe('OCA.Sharing.FileList tests', function() {
'<div id="emptycontent">Empty content message</div>' +
'</div>'
);
- // back up prototype, as it will be extended by
- // the sharing code
- oldFileListPrototype = _.extend({}, OCA.Files.FileList.prototype);
- fileActions = new OCA.Files.FileActions();
- OCA.Sharing.Util.initialize(fileActions);
});
afterEach(function() {
- OCA.Files.FileList.prototype = oldFileListPrototype;
testFiles = undefined;
fileList.destroy();
fileList = undefined;
- fileActions = undefined;
notificationStub.restore();
alertStub.restore();
@@ -72,6 +64,7 @@ describe('OCA.Sharing.FileList tests', function() {
sharedWithUser: true
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -193,6 +186,7 @@ describe('OCA.Sharing.FileList tests', function() {
sharedWithUser: false
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -433,6 +427,7 @@ describe('OCA.Sharing.FileList tests', function() {
linksOnly: true
}
);
+ OCA.Sharing.Util.attach(fileList);
fileList.reload();
@@ -575,11 +570,8 @@ describe('OCA.Sharing.FileList tests', function() {
'</div>');
$('#content').append($div);
- fileList = new OCA.Files.FileList(
- $div, {
- fileActions: fileActions
- }
- );
+ fileList = new OCA.Files.FileList($div);
+ OCA.Sharing.Util.attach(fileList);
});
it('external storage root folder', function () {
diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js
index 12f3f1982f6..71b63721897 100644
--- a/apps/files_trashbin/js/filelist.js
+++ b/apps/files_trashbin/js/filelist.js
@@ -64,6 +64,7 @@
return parts;
};
+ OC.Plugins.attach('OCA.Trashbin.FileList', this);
return result;
},
diff --git a/core/js/js.js b/core/js/js.js
index eb2f10b51f0..cc3a548de28 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -499,6 +499,87 @@ var OC={
};
/**
+ * @namespace OC.Plugins
+ */
+OC.Plugins = {
+ /**
+ * @type Array.<OC.Plugin>
+ */
+ _plugins: {},
+
+ /**
+ * Register plugin
+ *
+ * @param {String} targetName app name / class name to hook into
+ * @param {OC.Plugin} plugin
+ */
+ register: function(targetName, plugin) {
+ var plugins = this._plugins[targetName];
+ if (!plugins) {
+ plugins = this._plugins[targetName] = [];
+ }
+ plugins.push(plugin);
+ },
+
+ /**
+ * Returns all plugin registered to the given target
+ * name / app name / class name.
+ *
+ * @param {String} targetName app name / class name to hook into
+ * @return {Array.<OC.Plugin>} array of plugins
+ */
+ getPlugins: function(targetName) {
+ return this._plugins[targetName] || [];
+ },
+
+ /**
+ * Call attach() on all plugins registered to the given target name.
+ *
+ * @param {String} targetName app name / class name
+ * @param {Object} object to be extended
+ * @param {Object} [options] options
+ */
+ attach: function(targetName, targetObject, options) {
+ var plugins = this.getPlugins(targetName);
+ for (var i = 0; i < plugins.length; i++) {
+ if (plugins[i].attach) {
+ plugins[i].attach(targetObject, options);
+ }
+ }
+ },
+
+ /**
+ * Call detach() on all plugins registered to the given target name.
+ *
+ * @param {String} targetName app name / class name
+ * @param {Object} object to be extended
+ * @param {Object} [options] options
+ */
+ detach: function(targetName, targetObject, options) {
+ var plugins = this.getPlugins(targetName);
+ for (var i = 0; i < plugins.length; i++) {
+ if (plugins[i].detach) {
+ plugins[i].detach(targetObject, options);
+ }
+ }
+ },
+
+ /**
+ * Plugin
+ *
+ * @todo make this a real class in the future
+ * @typedef {Object} OC.Plugin
+ *
+ * @property {String} name plugin name
+ * @property {Function} attach function that will be called when the
+ * plugin is attached
+ * @property {Function} [detach] function that will be called when the
+ * plugin is detached
+ */
+
+};
+
+/**
* @namespace OC.search
*/
OC.search.customResults={};
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 9e5afea1a6f..0c046d8ef0e 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -363,56 +363,69 @@ var OCdialogs = {
return canvas.toDataURL("image/png", 0.7);
};
- var addConflict = function(conflicts, original, replacement) {
+ var addConflict = function($conflicts, original, replacement) {
- var conflict = conflicts.find('.template').clone().removeClass('template').addClass('conflict');
+ var $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict');
+ var $originalDiv = $conflict.find('.original');
+ var $replacementDiv = $conflict.find('.replacement');
- conflict.data('data',data);
+ $conflict.data('data',data);
- conflict.find('.filename').text(original.name);
- conflict.find('.original .size').text(humanFileSize(original.size));
- conflict.find('.original .mtime').text(formatDate(original.mtime));
+ $conflict.find('.filename').text(original.name);
+ $originalDiv.find('.size').text(humanFileSize(original.size));
+ $originalDiv.find('.mtime').text(formatDate(original.mtime));
// ie sucks
if (replacement.size && replacement.lastModifiedDate) {
- conflict.find('.replacement .size').text(humanFileSize(replacement.size));
- conflict.find('.replacement .mtime').text(formatDate(replacement.lastModifiedDate));
+ $replacementDiv.find('.size').text(humanFileSize(replacement.size));
+ $replacementDiv.find('.mtime').text(formatDate(replacement.lastModifiedDate));
}
var path = original.directory + '/' +original.name;
Files.lazyLoadPreview(path, original.mimetype, function(previewpath){
- conflict.find('.original .icon').css('background-image','url('+previewpath+')');
+ $originalDiv.find('.icon').css('background-image','url('+previewpath+')');
}, 96, 96, original.etag);
getCroppedPreview(replacement).then(
function(path){
- conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ $replacementDiv.find('.icon').css('background-image','url(' + path + ')');
}, function(){
Files.getMimeIcon(replacement.type,function(path){
- conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ $replacementDiv.find('.icon').css('background-image','url(' + path + ')');
});
}
);
- conflicts.append(conflict);
+ $conflicts.append($conflict);
//set more recent mtime bold
// ie sucks
if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() > original.mtime) {
- conflict.find('.replacement .mtime').css('font-weight', 'bold');
+ $replacementDiv.find('.mtime').css('font-weight', 'bold');
} else if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() < original.mtime) {
- conflict.find('.original .mtime').css('font-weight', 'bold');
+ $originalDiv.find('.mtime').css('font-weight', 'bold');
} else {
//TODO add to same mtime collection?
}
// set bigger size bold
if (replacement.size && replacement.size > original.size) {
- conflict.find('.replacement .size').css('font-weight', 'bold');
+ $replacementDiv.find('.size').css('font-weight', 'bold');
} else if (replacement.size && replacement.size < original.size) {
- conflict.find('.original .size').css('font-weight', 'bold');
+ $originalDiv.find('.size').css('font-weight', 'bold');
} else {
//TODO add to same size collection?
}
//TODO show skip action for files with same size and mtime in bottom row
+ // always keep readonly files
+
+ if (original.status === 'readonly') {
+ $originalDiv
+ .addClass('readonly')
+ .find('input[type="checkbox"]')
+ .prop('checked', true)
+ .prop('disabled', true);
+ $originalDiv.find('.message')
+ .text(t('core','read-only'))
+ }
};
//var selection = controller.getSelection(data.originalFiles);
//if (selection.defaultAction) {
@@ -423,8 +436,8 @@ var OCdialogs = {
if (this._fileexistsshown) {
// add conflict
- var conflicts = $(dialogId+ ' .conflicts');
- addConflict(conflicts, original, replacement);
+ var $conflicts = $(dialogId+ ' .conflicts');
+ addConflict($conflicts, original, replacement);
var count = $(dialogId+ ' .conflict').length;
var title = n('core',
@@ -456,8 +469,8 @@ var OCdialogs = {
});
$('body').append($dlg);
- var conflicts = $($dlg).find('.conflicts');
- addConflict(conflicts, original, replacement);
+ var $conflicts = $dlg.find('.conflicts');
+ addConflict($conflicts, original, replacement);
var buttonlist = [{
text: t('core', 'Cancel'),
@@ -496,20 +509,20 @@ var OCdialogs = {
//add checkbox toggling actions
$(dialogId).find('.allnewfiles').on('click', function() {
- var checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
- checkboxes.prop('checked', $(this).prop('checked'));
+ var $checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
+ $checkboxes.prop('checked', $(this).prop('checked'));
});
$(dialogId).find('.allexistingfiles').on('click', function() {
- var checkboxes = $(dialogId).find('.conflict .original input[type="checkbox"]');
- checkboxes.prop('checked', $(this).prop('checked'));
+ var $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type="checkbox"]');
+ $checkboxes.prop('checked', $(this).prop('checked'));
});
- $(dialogId).find('.conflicts').on('click', '.replacement,.original', function() {
- var checkbox = $(this).find('input[type="checkbox"]');
- checkbox.prop('checked', !checkbox.prop('checked'));
+ $(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {
+ var $checkbox = $(this).find('input[type="checkbox"]');
+ $checkbox.prop('checked', !$checkbox.prop('checked'));
});
- $(dialogId).find('.conflicts').on('click', 'input[type="checkbox"]', function() {
- var checkbox = $(this);
- checkbox.prop('checked', !checkbox.prop('checked'));
+ $(dialogId).find('.conflicts').on('click', '.replacement input[type="checkbox"],.original:not(.readonly) input[type="checkbox"]', function() {
+ var $checkbox = $(this);
+ $checkbox.prop('checked', !checkbox.prop('checked'));
});
//update counters
diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js
index 4111b6763d9..59c2a99645f 100644
--- a/core/js/tests/specHelper.js
+++ b/core/js/tests/specHelper.js
@@ -120,6 +120,9 @@ window.isPhantom = /phantom/i.test(navigator.userAgent);
if (!OC.TestUtil) {
OC.TestUtil = TestUtil;
}
+
+ // reset plugins
+ OC.Plugins._plugins = [];
});
afterEach(function() {
diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
index 2c5c22905b0..08395f4d4c2 100644
--- a/core/js/tests/specs/coreSpec.js
+++ b/core/js/tests/specs/coreSpec.js
@@ -655,5 +655,36 @@ describe('Core base tests', function() {
]);
});
});
+ describe('Plugins', function() {
+ var plugin;
+
+ beforeEach(function() {
+ plugin = {
+ name: 'Some name',
+ attach: function(obj) {
+ obj.attached = true;
+ },
+
+ detach: function(obj) {
+ obj.attached = false;
+ }
+ };
+ OC.Plugins.register('OC.Test.SomeName', plugin);
+ });
+ it('attach plugin to object', function() {
+ var obj = {something: true};
+ OC.Plugins.attach('OC.Test.SomeName', obj);
+ expect(obj.attached).toEqual(true);
+ OC.Plugins.detach('OC.Test.SomeName', obj);
+ expect(obj.attached).toEqual(false);
+ });
+ it('only call handler for target name', function() {
+ var obj = {something: true};
+ OC.Plugins.attach('OC.Test.SomeOtherName', obj);
+ expect(obj.attached).not.toBeDefined();
+ OC.Plugins.detach('OC.Test.SomeOtherName', obj);
+ expect(obj.attached).not.toBeDefined();
+ });
+ });
});
diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js
index 786b0a1ae8a..f56125c74ee 100644
--- a/core/l10n/cs_CZ.js
+++ b/core/l10n/cs_CZ.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
+ "read-only" : "pouze ke čtení",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
@@ -128,6 +130,10 @@ 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é",
"Apps" : "Aplikace",
diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json
index ba179892369..a10a587fbf1 100644
--- a/core/l10n/cs_CZ.json
+++ b/core/l10n/cs_CZ.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
+ "read-only" : "pouze ke čtení",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
"The update was successful. Redirecting you to ownCloud now." : "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
@@ -126,6 +128,10 @@
"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é",
"Apps" : "Aplikace",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index c9913f53495..ec32e042f21 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -117,6 +117,7 @@ OC.L10N.register(
"_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",
+ "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
"The update was successful. Redirecting you to ownCloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
"Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt",
"Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt",
@@ -128,6 +129,10 @@ 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",
"Apps" : "Apps",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index e66331df09a..af549ac8d30 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -115,6 +115,7 @@
"_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",
+ "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
"The update was successful. Redirecting you to ownCloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
"Couldn't reset password because the token is invalid" : "Kunne ikke nulstille kodeordet, fordi symboludtrykket er ugyldigt",
"Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings-e-mailen. Kontroller venligst om dit brugernavnet er korrekt",
@@ -126,6 +127,10 @@
"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",
"Apps" : "Apps",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index f3516290f2e..659c013a7e1 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Du wirst nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Stelle sicher, dass Dein Nutzername korrekt ist.",
@@ -128,6 +130,10 @@ 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",
"Apps" : "Apps",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 6cbbf271b72..a59a96a3ed3 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Du wirst nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Stelle sicher, dass Dein Nutzername korrekt ist.",
@@ -126,6 +128,10 @@
"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",
"Apps" : "Apps",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index ac7f047c31e..e33ed195d18 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.",
@@ -128,6 +130,10 @@ 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",
"Apps" : "Apps",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 7cd20607f97..9d868677e97 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Fehler beim Laden der Nachrichtenvorlage: {error}",
+ "read-only" : "Schreibgeschützt",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} Dateikonflikt","{count} Dateikonflikte"],
"One file conflict" : "Ein Dateikonflikt",
"New Files" : "Neue Dateien",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
"The update was successful. Redirecting you to ownCloud now." : "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.",
"Couldn't reset password because the token is invalid" : "Aufgrund eines ungültigen Tokens kann das Passwort nicht zurück gesetzt werden",
"Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.",
@@ -126,6 +128,10 @@
"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",
"Apps" : "Apps",
diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js
index ffe28ae8699..d9927851162 100644
--- a/core/l10n/en_GB.js
+++ b/core/l10n/en_GB.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Error loading file picker template: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Error loading message template: {error}",
+ "read-only" : "read-only",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} file conflict","{count} file conflicts"],
"One file conflict" : "One file conflict",
"New Files" : "New Files",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "The update was unsuccessful. ",
"The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.",
"Couldn't reset password because the token is invalid" : "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. Please make sure your username is correct.",
@@ -128,6 +130,10 @@ 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",
"Apps" : "Apps",
diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json
index fa59b1b046b..2e9362f3240 100644
--- a/core/l10n/en_GB.json
+++ b/core/l10n/en_GB.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Error loading file picker template: {error}",
"Ok" : "OK",
"Error loading message template: {error}" : "Error loading message template: {error}",
+ "read-only" : "read-only",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} file conflict","{count} file conflicts"],
"One file conflict" : "One file conflict",
"New Files" : "New Files",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "The update was unsuccessful. ",
"The update was successful. Redirecting you to ownCloud now." : "The update was successful. Redirecting you to ownCloud now.",
"Couldn't reset password because the token is invalid" : "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. Please make sure your username is correct.",
@@ -126,6 +128,10 @@
"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",
"Apps" : "Apps",
diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js
index 5fd4deecd26..262d2641984 100644
--- a/core/l10n/fi_FI.js
+++ b/core/l10n/fi_FI.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Turned off maintenance mode" : "Ylläpitotila laitettu pois päältä",
"Updated database" : "Tietokanta ajan tasalla",
"Checked database schema update" : "Tarkistettu tietokannan skeemapäivitys",
+ "Checked database schema update for apps" : "Tarkistettu tietokannan skeemapäivitys sovelluksille",
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Disabled incompatible apps: %s" : "Yhteensopimattomat sovellukset poistettiin käytöstä: %s",
"No image or file provided" : "Kuvaa tai tiedostoa ei määritelty",
@@ -45,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Virhe ladatessa tiedostopohjia: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Virhe ladatessa viestipohjaa: {error}",
+ "read-only" : "vain luku",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} tiedoston ristiriita","{count} tiedoston ristiriita"],
"One file conflict" : "Yhden tiedoston ristiriita",
"New Files" : "Uudet tiedostot",
@@ -116,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "Päivitys epäonnistui.",
"The update was successful. Redirecting you to ownCloud now." : "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi.",
"Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen",
"Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.",
@@ -127,6 +130,10 @@ 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",
"Apps" : "Sovellukset",
diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json
index e2f8406ff5f..922b9e70635 100644
--- a/core/l10n/fi_FI.json
+++ b/core/l10n/fi_FI.json
@@ -4,6 +4,7 @@
"Turned off maintenance mode" : "Ylläpitotila laitettu pois päältä",
"Updated database" : "Tietokanta ajan tasalla",
"Checked database schema update" : "Tarkistettu tietokannan skeemapäivitys",
+ "Checked database schema update for apps" : "Tarkistettu tietokannan skeemapäivitys sovelluksille",
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Disabled incompatible apps: %s" : "Yhteensopimattomat sovellukset poistettiin käytöstä: %s",
"No image or file provided" : "Kuvaa tai tiedostoa ei määritelty",
@@ -43,6 +44,7 @@
"Error loading file picker template: {error}" : "Virhe ladatessa tiedostopohjia: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Virhe ladatessa viestipohjaa: {error}",
+ "read-only" : "vain luku",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} tiedoston ristiriita","{count} tiedoston ristiriita"],
"One file conflict" : "Yhden tiedoston ristiriita",
"New Files" : "Uudet tiedostot",
@@ -114,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "Päivitys epäonnistui.",
"The update was successful. Redirecting you to ownCloud now." : "Päivitys onnistui. Selain ohjautuu nyt ownCloudiisi.",
"Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa koska valtuutus on virheellinen",
"Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.",
@@ -125,6 +128,10 @@
"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",
"Apps" : "Sovellukset",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index 880ce94a587..9d896af722c 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -117,6 +117,7 @@ OC.L10N.register(
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
+ "The update was unsuccessful. " : "La mise à jour a échoué.",
"The update was successful. Redirecting you to ownCloud now." : "La mise à jour a réussi. Vous êtes maintenant redirigé(e) vers ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.",
"Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index 9b20c1dcfc1..ea0e05bd8ec 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -115,6 +115,7 @@
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
+ "The update was unsuccessful. " : "La mise à jour a échoué.",
"The update was successful. Redirecting you to ownCloud now." : "La mise à jour a réussi. Vous êtes maintenant redirigé(e) vers ownCloud.",
"Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.",
"Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index cd5aa748a7a..c44ef532e6c 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Fout bij laden bestandenselecteur sjabloon: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Fout bij laden berichtensjabloon: {error}",
+ "read-only" : "Alleen lezen",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} bestandsconflict","{count} bestandsconflicten"],
"One file conflict" : "Een bestandsconflict",
"New Files" : "Nieuwe bestanden",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "De update is niet geslaagd.",
"The update was successful. Redirecting you to ownCloud now." : "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.",
@@ -128,6 +130,7 @@ 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.",
+ "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.",
"Personal" : "Persoonlijk",
"Users" : "Gebruikers",
"Apps" : "Apps",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index c3d1b7a5872..895daeeb96e 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Fout bij laden bestandenselecteur sjabloon: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Fout bij laden berichtensjabloon: {error}",
+ "read-only" : "Alleen lezen",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} bestandsconflict","{count} bestandsconflicten"],
"One file conflict" : "Een bestandsconflict",
"New Files" : "Nieuwe bestanden",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "De update is niet geslaagd.",
"The update was successful. Redirecting you to ownCloud now." : "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of uw gebruikersnaam correct is.",
@@ -126,6 +128,7 @@
"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.",
+ "Please install the cURL extension and restart your webserver." : "Installeer de cURL extensie en herstart uw webserver.",
"Personal" : "Persoonlijk",
"Users" : "Gebruikers",
"Apps" : "Apps",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index 041a4fb9e94..74d0debe2fa 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Erro no seletor de carregamento modelo de arquivos: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Erro no carregamento de modelo de mensagem: {error}",
+ "read-only" : "somente-leitura",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de arquivo","{count} conflitos de arquivos"],
"One file conflict" : "Conflito em um arquivo",
"New Files" : "Novos Arquivos",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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",
+ "The update was unsuccessful. " : "A atualização não foi bem sucedida.",
"The update was successful. Redirecting you to ownCloud now." : "A atualização teve êxito. Você será redirecionado ao ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido",
"Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.",
@@ -128,6 +130,10 @@ 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",
"Apps" : "Aplicações",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index 5b77284909c..5c3307450bd 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Erro no seletor de carregamento modelo de arquivos: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Erro no carregamento de modelo de mensagem: {error}",
+ "read-only" : "somente-leitura",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de arquivo","{count} conflitos de arquivos"],
"One file conflict" : "Conflito em um arquivo",
"New Files" : "Novos Arquivos",
@@ -115,6 +116,7 @@
"_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",
+ "The update was unsuccessful. " : "A atualização não foi bem sucedida.",
"The update was successful. Redirecting you to ownCloud now." : "A atualização teve êxito. Você será redirecionado ao ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido",
"Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar e-mail de redefinição. Verifique se o seu nome de usuário está correto.",
@@ -126,6 +128,10 @@
"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",
"Apps" : "Aplicações",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index b06c1a64e9f..b755f738a53 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -44,9 +44,10 @@ OC.L10N.register(
"Yes" : "Sim",
"Choose" : "Escolher",
"Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo do selecionador de ficheiro: {error}",
- "Ok" : "Ok",
+ "Ok" : "CONFIRMAR",
"Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de ficheiro","{count} conflitos de ficheiro"],
+ "read-only" : "só-de-leitura",
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"],
"One file conflict" : "Um conflito no ficheiro",
"New Files" : "Ficheiros Novos",
"Already existing files" : "Ficheiros já existentes",
@@ -54,8 +55,8 @@ OC.L10N.register(
"If you select both versions, the copied file will have a number added to its name." : "Se escolher ambas as versões, o ficheiro copiado irá ter um número adicionado ao seu nome.",
"Cancel" : "Cancelar",
"Continue" : "Continuar",
- "(all selected)" : "(todos seleccionados)",
- "({count} selected)" : "({count} seleccionados)",
+ "(all selected)" : "(todos selecionados)",
+ "({count} selected)" : "({count} selecionados)",
"Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente",
"Very weak password" : "Palavra-passe muito fraca",
"Weak password" : "Palavra-passe fraca",
@@ -68,7 +69,7 @@ OC.L10N.register(
"Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor",
"Shared" : "Partilhado",
"Shared with {recipients}" : "Partilhado com {recipients}",
- "Share" : "Partilhar",
+ "Share" : "Compartilhar",
"Error" : "Erro",
"Error while sharing" : "Erro ao partilhar",
"Error while unsharing" : "Erro ao deixar de partilhar",
@@ -81,9 +82,9 @@ OC.L10N.register(
"Password protect" : "Proteger com Palavra-passe",
"Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública",
"Allow Public Upload" : "Permitir Envios Públicos",
- "Email link to person" : "Enviar o link por e-mail",
+ "Email link to person" : "Enviar a hiperligação para a pessoa",
"Send" : "Enviar",
- "Set expiration date" : "Especificar data de expiração",
+ "Set expiration date" : "Definir a data de expiração",
"Expiration date" : "Data de expiração",
"Adding user..." : "A adicionar o utilizador ...",
"group" : "grupo",
@@ -101,14 +102,14 @@ OC.L10N.register(
"Error unsetting expiration date" : "Erro ao retirar a data de expiração",
"Error setting expiration date" : "Erro ao aplicar a data de expiração",
"Sending ..." : "A Enviar...",
- "Email sent" : "E-mail enviado",
+ "Email sent" : "Mensagem enviada",
"Warning" : "Aviso",
- "The object type is not specified." : "O tipo de objecto não foi especificado",
+ "The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
- "Delete" : "Eliminar",
+ "Delete" : "Apagar",
"Add" : "Adicionar",
"Edit tags" : "Editar etiquetas",
- "Error loading dialog template: {error}" : "Erro ao carregar modelo de diálogo: {error}",
+ "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}",
"No tags selected for deletion." : "Não foram escolhidas etiquetas para apagar.",
"unknown text" : "texto desconhecido",
"Hello world!" : "Olá mundo!",
@@ -116,7 +117,8 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}",
"_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.",
+ "Please reload the page." : "Por favor, recarregue a página.",
+ "The update was unsuccessful. " : "Não foi possível atualizar.",
"The update was successful. Redirecting you to ownCloud now." : "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida",
"Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.",
@@ -128,14 +130,16 @@ 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",
- "Apps" : "Aplicações",
- "Admin" : "Admin",
+ "Apps" : "Apps",
+ "Admin" : "Administração",
"Help" : "Ajuda",
"Error loading tags" : "Erro ao carregar etiquetas",
"Tag already exists" : "A etiqueta já existe",
- "Error deleting tag(s)" : "Erro ao apagar etiqueta(s)",
+ "Error deleting tag(s)" : "Ocorreu um erro ao apagar etiqueta(s)",
"Error tagging" : "Erro ao etiquetar",
"Error untagging" : "Erro ao desetiquetar",
"Error favoriting" : "Erro a definir como favorito",
@@ -143,9 +147,9 @@ OC.L10N.register(
"Access forbidden" : "Acesso interdito",
"File not found" : "Ficheiro não encontrado",
"The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.",
- "You can click here to return to %s." : "Pode clicar aqui para retornar para %s.",
+ "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
- "The share will expire on %s." : "Esta partilha vai expirar em %s.",
+ "The share will expire on %s." : "Esta partilha irá expirar em %s.",
"Cheers!" : "Parabéns!",
"Internal Server Error" : "Erro Interno do Servidor",
"The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.",
@@ -153,12 +157,12 @@ OC.L10N.register(
"More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.",
"Technical details" : "Detalhes técnicos",
"Remote Address: %s" : "Endereço remoto: %s",
- "Request ID: %s" : "ID do Pedido: %s",
+ "Request ID: %s" : "Id. do Pedido: %s",
"Code: %s" : "Código: %s",
"Message: %s" : "Mensagem: %s",
"File: %s" : "Ficheiro: %s",
"Line: %s" : "Linha: %s",
- "Trace" : "Trace",
+ "Trace" : "Rasto",
"Security Warning" : "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" : "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." : "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
@@ -170,18 +174,18 @@ OC.L10N.register(
"Storage & database" : "Armazenamento e base de dados",
"Data folder" : "Pasta de dados",
"Configure the database" : "Configure a base de dados",
- "Only %s is available." : "Apenas %s está disponível.",
+ "Only %s is available." : "Só está disponível %s.",
"Database user" : "Utilizador da base de dados",
"Database password" : "Palavra-passe da base de dados",
"Database name" : "Nome da base de dados",
"Database tablespace" : "Tablespace da base de dados",
"Database host" : "Anfitrião da base de dados",
"SQLite will be used as database. For larger installations we recommend to change this." : "Será usado SQLite como base de dados. Para instalações maiores é recomendável a sua alteração.",
- "Finish setup" : "Acabar instalação",
+ "Finish setup" : "Terminar consiguração",
"Finishing …" : "A terminar...",
"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Esta aplicação requer JavaScript para functionar correctamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">active o JavaScript</a> e recarregue a página.",
"%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
- "Log out" : "Sair",
+ "Log out" : "Terminar sessão",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
"Please contact your administrator." : "Por favor contacte o administrador.",
"Forgot your password? Reset it!" : "Esqueceu-se da sua palavra-passe? Recupere-a!",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 186f6c64967..774696f6a52 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -42,9 +42,10 @@
"Yes" : "Sim",
"Choose" : "Escolher",
"Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo do selecionador de ficheiro: {error}",
- "Ok" : "Ok",
+ "Ok" : "CONFIRMAR",
"Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de ficheiro","{count} conflitos de ficheiro"],
+ "read-only" : "só-de-leitura",
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"],
"One file conflict" : "Um conflito no ficheiro",
"New Files" : "Ficheiros Novos",
"Already existing files" : "Ficheiros já existentes",
@@ -52,8 +53,8 @@
"If you select both versions, the copied file will have a number added to its name." : "Se escolher ambas as versões, o ficheiro copiado irá ter um número adicionado ao seu nome.",
"Cancel" : "Cancelar",
"Continue" : "Continuar",
- "(all selected)" : "(todos seleccionados)",
- "({count} selected)" : "({count} seleccionados)",
+ "(all selected)" : "(todos selecionados)",
+ "({count} selected)" : "({count} selecionados)",
"Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente",
"Very weak password" : "Palavra-passe muito fraca",
"Weak password" : "Palavra-passe fraca",
@@ -66,7 +67,7 @@
"Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor",
"Shared" : "Partilhado",
"Shared with {recipients}" : "Partilhado com {recipients}",
- "Share" : "Partilhar",
+ "Share" : "Compartilhar",
"Error" : "Erro",
"Error while sharing" : "Erro ao partilhar",
"Error while unsharing" : "Erro ao deixar de partilhar",
@@ -79,9 +80,9 @@
"Password protect" : "Proteger com Palavra-passe",
"Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública",
"Allow Public Upload" : "Permitir Envios Públicos",
- "Email link to person" : "Enviar o link por e-mail",
+ "Email link to person" : "Enviar a hiperligação para a pessoa",
"Send" : "Enviar",
- "Set expiration date" : "Especificar data de expiração",
+ "Set expiration date" : "Definir a data de expiração",
"Expiration date" : "Data de expiração",
"Adding user..." : "A adicionar o utilizador ...",
"group" : "grupo",
@@ -99,14 +100,14 @@
"Error unsetting expiration date" : "Erro ao retirar a data de expiração",
"Error setting expiration date" : "Erro ao aplicar a data de expiração",
"Sending ..." : "A Enviar...",
- "Email sent" : "E-mail enviado",
+ "Email sent" : "Mensagem enviada",
"Warning" : "Aviso",
- "The object type is not specified." : "O tipo de objecto não foi especificado",
+ "The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
- "Delete" : "Eliminar",
+ "Delete" : "Apagar",
"Add" : "Adicionar",
"Edit tags" : "Editar etiquetas",
- "Error loading dialog template: {error}" : "Erro ao carregar modelo de diálogo: {error}",
+ "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}",
"No tags selected for deletion." : "Não foram escolhidas etiquetas para apagar.",
"unknown text" : "texto desconhecido",
"Hello world!" : "Olá mundo!",
@@ -114,7 +115,8 @@
"Hello {name}, the weather is {weather}" : "Olá {name}, o tempo está {weather}",
"_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.",
+ "Please reload the page." : "Por favor, recarregue a página.",
+ "The update was unsuccessful. " : "Não foi possível atualizar.",
"The update was successful. Redirecting you to ownCloud now." : "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.",
"Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida",
"Couldn't send reset email. Please make sure your username is correct." : "Ocorreu um problema com o envio do e-mail, por favor confirme o seu utilizador.",
@@ -126,14 +128,16 @@
"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",
- "Apps" : "Aplicações",
- "Admin" : "Admin",
+ "Apps" : "Apps",
+ "Admin" : "Administração",
"Help" : "Ajuda",
"Error loading tags" : "Erro ao carregar etiquetas",
"Tag already exists" : "A etiqueta já existe",
- "Error deleting tag(s)" : "Erro ao apagar etiqueta(s)",
+ "Error deleting tag(s)" : "Ocorreu um erro ao apagar etiqueta(s)",
"Error tagging" : "Erro ao etiquetar",
"Error untagging" : "Erro ao desetiquetar",
"Error favoriting" : "Erro a definir como favorito",
@@ -141,9 +145,9 @@
"Access forbidden" : "Acesso interdito",
"File not found" : "Ficheiro não encontrado",
"The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.",
- "You can click here to return to %s." : "Pode clicar aqui para retornar para %s.",
+ "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
- "The share will expire on %s." : "Esta partilha vai expirar em %s.",
+ "The share will expire on %s." : "Esta partilha irá expirar em %s.",
"Cheers!" : "Parabéns!",
"Internal Server Error" : "Erro Interno do Servidor",
"The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.",
@@ -151,12 +155,12 @@
"More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.",
"Technical details" : "Detalhes técnicos",
"Remote Address: %s" : "Endereço remoto: %s",
- "Request ID: %s" : "ID do Pedido: %s",
+ "Request ID: %s" : "Id. do Pedido: %s",
"Code: %s" : "Código: %s",
"Message: %s" : "Mensagem: %s",
"File: %s" : "Ficheiro: %s",
"Line: %s" : "Linha: %s",
- "Trace" : "Trace",
+ "Trace" : "Rasto",
"Security Warning" : "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" : "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." : "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
@@ -168,18 +172,18 @@
"Storage & database" : "Armazenamento e base de dados",
"Data folder" : "Pasta de dados",
"Configure the database" : "Configure a base de dados",
- "Only %s is available." : "Apenas %s está disponível.",
+ "Only %s is available." : "Só está disponível %s.",
"Database user" : "Utilizador da base de dados",
"Database password" : "Palavra-passe da base de dados",
"Database name" : "Nome da base de dados",
"Database tablespace" : "Tablespace da base de dados",
"Database host" : "Anfitrião da base de dados",
"SQLite will be used as database. For larger installations we recommend to change this." : "Será usado SQLite como base de dados. Para instalações maiores é recomendável a sua alteração.",
- "Finish setup" : "Acabar instalação",
+ "Finish setup" : "Terminar consiguração",
"Finishing …" : "A terminar...",
"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." : "Esta aplicação requer JavaScript para functionar correctamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">active o JavaScript</a> e recarregue a página.",
"%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
- "Log out" : "Sair",
+ "Log out" : "Terminar sessão",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
"Please contact your administrator." : "Por favor contacte o administrador.",
"Forgot your password? Reset it!" : "Esqueceu-se da sua palavra-passe? Recupere-a!",
diff --git a/core/l10n/sl.js b/core/l10n/sl.js
index 1f3cc275538..d21f6f2b638 100644
--- a/core/l10n/sl.js
+++ b/core/l10n/sl.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Strong password" : "Odlično geslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev vmesnika WebDAV okvarjena.",
"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." : "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte prav tako verjetno ne deluje. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
- "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." : "Vaša podatkovna mapa in datoteke so najverjetneje dosegljive preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
+ "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." : "Vaša podatkovna mapa in datoteke so najverjetneje javno dostopna preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Error occurred while checking server setup" : "Prišlo je do napake med preverjanjem nastavitev strežnika",
"Shared" : "V souporabi",
"Shared with {recipients}" : "V souporabi z {recipients}",
@@ -117,6 +117,7 @@ OC.L10N.register(
"_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",
+ "The update was unsuccessful. " : "Posodobitev je spodletela.",
"The update was successful. Redirecting you to ownCloud now." : "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.",
"Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.",
"Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.",
diff --git a/core/l10n/sl.json b/core/l10n/sl.json
index 4c0f65ca543..d6b98546a43 100644
--- a/core/l10n/sl.json
+++ b/core/l10n/sl.json
@@ -62,7 +62,7 @@
"Strong password" : "Odlično geslo",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." : "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev vmesnika WebDAV okvarjena.",
"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." : "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte prav tako verjetno ne deluje. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
- "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." : "Vaša podatkovna mapa in datoteke so najverjetneje dosegljive preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
+ "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." : "Vaša podatkovna mapa in datoteke so najverjetneje javno dostopna preko interneta. Datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da podatkovna mapa ni prosto dostopna. To je mogoče zagotoviti tudi tako, da je mapa premaknjena iz neustrezne korenske v podrejeno mapo .",
"Error occurred while checking server setup" : "Prišlo je do napake med preverjanjem nastavitev strežnika",
"Shared" : "V souporabi",
"Shared with {recipients}" : "V souporabi z {recipients}",
@@ -115,6 +115,7 @@
"_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",
+ "The update was unsuccessful. " : "Posodobitev je spodletela.",
"The update was successful. Redirecting you to ownCloud now." : "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.",
"Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.",
"Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index d38f3923e51..47673965722 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
"Ok" : "Tamam",
"Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
@@ -117,6 +118,7 @@ OC.L10N.register(
"_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.",
+ "The update was unsuccessful. " : "Güncelleştirme başarısız.",
"The update was successful. Redirecting you to ownCloud now." : "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
"Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
@@ -128,6 +130,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.",
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index 28368a0c1c9..67c8d9dcb16 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
"Ok" : "Tamam",
"Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
@@ -115,6 +116,7 @@
"_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.",
+ "The update was unsuccessful. " : "Güncelleştirme başarısız.",
"The update was successful. Redirecting you to ownCloud now." : "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
"Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
@@ -126,6 +128,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.",
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
diff --git a/core/setup/controller.php b/core/setup/controller.php
index 5a52b18f73b..ab4c351b1a0 100644
--- a/core/setup/controller.php
+++ b/core/setup/controller.php
@@ -9,13 +9,21 @@
namespace OC\Core\Setup;
+use bantu\IniGetWrapper\IniGetWrapper;
use OCP\IConfig;
+use OCP\IL10N;
class Controller {
/**
* @var \OCP\IConfig
*/
protected $config;
+ /** @var IniGetWrapper */
+ protected $iniWrapper;
+ /** @var IL10N */
+ protected $l10n;
+ /** @var \OC_Defaults */
+ protected $defaults;
/**
* @var string
@@ -24,12 +32,24 @@ class Controller {
/**
* @param IConfig $config
+ * @param IniGetWrapper $iniWrapper
+ * @param IL10N $l10n
+ * @param \OC_Defaults $defaults
*/
- function __construct(IConfig $config) {
+ function __construct(IConfig $config,
+ IniGetWrapper $iniWrapper,
+ IL10N $l10n,
+ \OC_Defaults $defaults) {
$this->autoConfigFile = \OC::$SERVERROOT.'/config/autoconfig.php';
$this->config = $config;
+ $this->iniWrapper = $iniWrapper;
+ $this->l10n = $l10n;
+ $this->defaults = $defaults;
}
+ /**
+ * @param $post
+ */
public function run($post) {
// Check for autosetup:
$post = $this->loadAutoConfig($post);
@@ -138,16 +158,36 @@ class Controller {
}
}
+
if (\OC_Util::runningOnMac()) {
- $l10n = \OC::$server->getL10N('core');
- $theme = new \OC_Defaults();
$errors[] = array(
- 'error' => $l10n->t(
+ 'error' => $this->l10n->t(
'Mac OS X is not supported and %s will not work properly on this platform. ' .
'Use it at your own risk! ',
- $theme->getName()
+ $this->defaults->getName()
+ ),
+ 'hint' => $this->l10n->t('For the best results, please consider using a GNU/Linux server instead.')
+ );
+ }
+
+ 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. ' .
+ '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.')
+ );
+ }
+ 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. ' .
+ 'This will lead to problems with files over 4GB and is highly discouraged.',
+ $this->defaults->getName()
),
- 'hint' => $l10n->t('For the best results, please consider using a GNU/Linux server instead.')
+ 'hint' => $this->l10n->t('Please install the cURL extension and restart your webserver.')
);
}
diff --git a/lib/base.php b/lib/base.php
index af2474c7d76..f2ff3bb4849 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -717,7 +717,7 @@ class OC {
// Check if ownCloud is installed or in maintenance (update) mode
if (!$systemConfig->getValue('installed', false)) {
\OC::$server->getSession()->clear();
- $controller = new OC\Core\Setup\Controller(\OC::$server->getConfig());
+ $controller = new OC\Core\Setup\Controller(\OC::$server->getConfig(), \OC::$server->getIniWrapper(), \OC::$server->getL10N('core'), new \OC_Defaults());
$controller->run($_POST);
exit();
}
diff --git a/lib/l10n/ach.js b/lib/l10n/ach.js
index a3dfe9ea915..9408adc0dc3 100644
--- a/lib/l10n/ach.js
+++ b/lib/l10n/ach.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ach.json b/lib/l10n/ach.json
index 29b50679fc0..2a227e468c7 100644
--- a/lib/l10n/ach.json
+++ b/lib/l10n/ach.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/lib/l10n/ady.js b/lib/l10n/ady.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/ady.js
+++ b/lib/l10n/ady.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ady.json b/lib/l10n/ady.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/ady.json
+++ b/lib/l10n/ady.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/af_ZA.js b/lib/l10n/af_ZA.js
index eda0926eb34..953186be7fe 100644
--- a/lib/l10n/af_ZA.js
+++ b/lib/l10n/af_ZA.js
@@ -11,7 +11,7 @@ OC.L10N.register(
"today" : "vandag",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["","%n maande gelede"],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "sekondes gelede",
diff --git a/lib/l10n/af_ZA.json b/lib/l10n/af_ZA.json
index 5e5e71a5b88..7dd4d1ef718 100644
--- a/lib/l10n/af_ZA.json
+++ b/lib/l10n/af_ZA.json
@@ -9,7 +9,7 @@
"today" : "vandag",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["","%n maande gelede"],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "sekondes gelede",
diff --git a/lib/l10n/ak.js b/lib/l10n/ak.js
index 4ce4093c148..0f475bd29e9 100644
--- a/lib/l10n/ak.js
+++ b/lib/l10n/ak.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ak.json b/lib/l10n/ak.json
index c22d4f4a8db..e760ab2823c 100644
--- a/lib/l10n/ak.json
+++ b/lib/l10n/ak.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=n > 1;"
diff --git a/lib/l10n/am_ET.js b/lib/l10n/am_ET.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/am_ET.js
+++ b/lib/l10n/am_ET.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/am_ET.json b/lib/l10n/am_ET.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/am_ET.json
+++ b/lib/l10n/am_ET.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ar.js b/lib/l10n/ar.js
index d09c65044be..246bffb979c 100644
--- a/lib/l10n/ar.js
+++ b/lib/l10n/ar.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "الشهر الماضي",
"_%n month ago_::_%n months ago_" : ["","","","","",""],
"last year" : "السنةالماضية",
- "_%n year go_::_%n years ago_" : ["","","","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
"seconds ago" : "منذ ثواني",
diff --git a/lib/l10n/ar.json b/lib/l10n/ar.json
index 2e405a58032..e2eb4272c3e 100644
--- a/lib/l10n/ar.json
+++ b/lib/l10n/ar.json
@@ -13,7 +13,7 @@
"last month" : "الشهر الماضي",
"_%n month ago_::_%n months ago_" : ["","","","","",""],
"last year" : "السنةالماضية",
- "_%n year go_::_%n years ago_" : ["","","","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
"seconds ago" : "منذ ثواني",
diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js
index 1ed5425bf49..e98d8604551 100644
--- a/lib/l10n/ast.js
+++ b/lib/l10n/ast.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "mes caberu",
"_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
"last year" : "añu caberu",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
"_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
"seconds ago" : "hai segundos",
diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json
index a5d5266406b..29db56cf04c 100644
--- a/lib/l10n/ast.json
+++ b/lib/l10n/ast.json
@@ -22,7 +22,7 @@
"last month" : "mes caberu",
"_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
"last year" : "añu caberu",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
"_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
"seconds ago" : "hai segundos",
diff --git a/lib/l10n/az.js b/lib/l10n/az.js
index 168cba39318..3d5793ef799 100644
--- a/lib/l10n/az.js
+++ b/lib/l10n/az.js
@@ -16,7 +16,7 @@ OC.L10N.register(
"Invalid image" : "Yalnış şəkil",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
diff --git a/lib/l10n/az.json b/lib/l10n/az.json
index 2023410c5bc..49d2df41c96 100644
--- a/lib/l10n/az.json
+++ b/lib/l10n/az.json
@@ -14,7 +14,7 @@
"Invalid image" : "Yalnış şəkil",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
diff --git a/lib/l10n/be.js b/lib/l10n/be.js
index 3427d4b417a..f34545ade21 100644
--- a/lib/l10n/be.js
+++ b/lib/l10n/be.js
@@ -8,7 +8,7 @@ OC.L10N.register(
"last month" : "У мінулым месяцы",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "У мінулым годзе",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""],
"seconds ago" : "Секунд таму"
diff --git a/lib/l10n/be.json b/lib/l10n/be.json
index 1d5633810e3..91f99445d7a 100644
--- a/lib/l10n/be.json
+++ b/lib/l10n/be.json
@@ -6,7 +6,7 @@
"last month" : "У мінулым месяцы",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "У мінулым годзе",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""],
"seconds ago" : "Секунд таму"
diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js
index e6360117560..ad881bb4c38 100644
--- a/lib/l10n/bg_BG.js
+++ b/lib/l10n/bg_BG.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "миналия месец",
"_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
"last year" : "миналата година",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
"_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
"seconds ago" : "преди секунди",
diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json
index 00afdc994cc..f92811686d7 100644
--- a/lib/l10n/bg_BG.json
+++ b/lib/l10n/bg_BG.json
@@ -22,7 +22,7 @@
"last month" : "миналия месец",
"_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
"last year" : "миналата година",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
"_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
"seconds ago" : "преди секунди",
diff --git a/lib/l10n/bn_BD.js b/lib/l10n/bn_BD.js
index cbfb87f5ef9..432d033352f 100644
--- a/lib/l10n/bn_BD.js
+++ b/lib/l10n/bn_BD.js
@@ -20,7 +20,7 @@ OC.L10N.register(
"last month" : "গত মাস",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "গত বছর",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "সেকেন্ড পূর্বে",
diff --git a/lib/l10n/bn_BD.json b/lib/l10n/bn_BD.json
index fcd4c6cb600..08e5edc50d2 100644
--- a/lib/l10n/bn_BD.json
+++ b/lib/l10n/bn_BD.json
@@ -18,7 +18,7 @@
"last month" : "গত মাস",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "গত বছর",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "সেকেন্ড পূর্বে",
diff --git a/lib/l10n/bn_IN.js b/lib/l10n/bn_IN.js
index 8122ffb49c3..9933281c8d8 100644
--- a/lib/l10n/bn_IN.js
+++ b/lib/l10n/bn_IN.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Settings" : "সেটিংস",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/bn_IN.json b/lib/l10n/bn_IN.json
index 5cfb44c75bc..239478adca6 100644
--- a/lib/l10n/bn_IN.json
+++ b/lib/l10n/bn_IN.json
@@ -2,7 +2,7 @@
"Settings" : "সেটিংস",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/bs.js b/lib/l10n/bs.js
index 006619c7d82..3753f51cba7 100644
--- a/lib/l10n/bs.js
+++ b/lib/l10n/bs.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["","",""],
"_%n month ago_::_%n months ago_" : ["","",""],
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
"_%n minute ago_::_%n minutes ago_" : ["","",""]
},
diff --git a/lib/l10n/bs.json b/lib/l10n/bs.json
index e59f586a22d..c07d5a6b611 100644
--- a/lib/l10n/bs.json
+++ b/lib/l10n/bs.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["","",""],
"_%n month ago_::_%n months ago_" : ["","",""],
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
"_%n minute ago_::_%n minutes ago_" : ["","",""]
},"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/lib/l10n/ca.js b/lib/l10n/ca.js
index e8fd4c6ef2a..25946231692 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "el mes passat",
"_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
"last year" : "l'any passat",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
"_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
"seconds ago" : "segons enrere",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index 3dce5114f88..ed6dc3883ff 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -22,7 +22,7 @@
"last month" : "el mes passat",
"_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
"last year" : "l'any passat",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
"_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
"seconds ago" : "segons enrere",
diff --git a/lib/l10n/ca@valencia.js b/lib/l10n/ca@valencia.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/ca@valencia.js
+++ b/lib/l10n/ca@valencia.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ca@valencia.json b/lib/l10n/ca@valencia.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/ca@valencia.json
+++ b/lib/l10n/ca@valencia.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
index 553add07110..e541ae7f7e5 100644
--- a/lib/l10n/cs_CZ.js
+++ b/lib/l10n/cs_CZ.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Chybný obrázek",
"today" : "dnes",
"yesterday" : "včera",
- "_%n day ago_::_%n days ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
"last month" : "minulý měsíc",
"_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
"last year" : "minulý rok",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
"_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
"seconds ago" : "před pár sekundami",
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
index 36c37f4373c..b865716c3ce 100644
--- a/lib/l10n/cs_CZ.json
+++ b/lib/l10n/cs_CZ.json
@@ -20,11 +20,11 @@
"Invalid image" : "Chybný obrázek",
"today" : "dnes",
"yesterday" : "včera",
- "_%n day ago_::_%n days ago_" : ["","",""],
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
"last month" : "minulý měsíc",
"_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
"last year" : "minulý rok",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
"_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
"seconds ago" : "před pár sekundami",
diff --git a/lib/l10n/cy_GB.js b/lib/l10n/cy_GB.js
index 3de7fbe913d..cd3772cd7c1 100644
--- a/lib/l10n/cy_GB.js
+++ b/lib/l10n/cy_GB.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "mis diwethaf",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "y llynedd",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""],
"seconds ago" : "eiliad yn ôl",
diff --git a/lib/l10n/cy_GB.json b/lib/l10n/cy_GB.json
index e8a29037aef..3d88f8b876b 100644
--- a/lib/l10n/cy_GB.json
+++ b/lib/l10n/cy_GB.json
@@ -10,7 +10,7 @@
"last month" : "mis diwethaf",
"_%n month ago_::_%n months ago_" : ["","","",""],
"last year" : "y llynedd",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""],
"seconds ago" : "eiliad yn ôl",
diff --git a/lib/l10n/da.js b/lib/l10n/da.js
index 82081671bce..14e205c7ff9 100644
--- a/lib/l10n/da.js
+++ b/lib/l10n/da.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Ugyldigt billede",
"today" : "i dag",
"yesterday" : "i går",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dage siden"],
"last month" : "sidste måned",
"_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
"last year" : "sidste år",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"],
"_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
"_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
"seconds ago" : "sekunder siden",
diff --git a/lib/l10n/da.json b/lib/l10n/da.json
index 0e9c8b97de4..2ae138c6137 100644
--- a/lib/l10n/da.json
+++ b/lib/l10n/da.json
@@ -20,11 +20,11 @@
"Invalid image" : "Ugyldigt billede",
"today" : "i dag",
"yesterday" : "i går",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dage siden"],
"last month" : "sidste måned",
"_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
"last year" : "sidste år",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"],
"_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
"_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
"seconds ago" : "sekunder siden",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 69961bbead9..b832480496d 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"See %s" : "Siehe %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
"Sample configuration detected" : "Beispielkonfiguration gefunden",
- "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" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "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" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies wird nicht unterstützt und kann zum Abruch Ihrer Installation führen. Bitte lies die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
"PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
"Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Ungültiges Bild",
"today" : "Heute",
"yesterday" : "Gestern",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
"last month" : "Letzten Monat",
"_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
"last year" : "Letztes Jahr",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
"_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
"_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
"seconds ago" : "Gerade eben",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index d4eb0ab8793..c52569f99de 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -4,7 +4,7 @@
"See %s" : "Siehe %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
"Sample configuration detected" : "Beispielkonfiguration gefunden",
- "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" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "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" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies wird nicht unterstützt und kann zum Abruch Ihrer Installation führen. Bitte lies die Dokumentation vor der Änderung an der config.php.",
"PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
"PHP with a version less then %s is required." : "PHP wird in einer früheren Version als %s benötigt.",
"Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s",
@@ -20,11 +20,11 @@
"Invalid image" : "Ungültiges Bild",
"today" : "Heute",
"yesterday" : "Gestern",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
"last month" : "Letzten Monat",
"_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
"last year" : "Letztes Jahr",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
"_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
"_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
"seconds ago" : "Gerade eben",
diff --git a/lib/l10n/de_AT.js b/lib/l10n/de_AT.js
index 6920919be10..3c567ba4d2d 100644
--- a/lib/l10n/de_AT.js
+++ b/lib/l10n/de_AT.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"Settings" : "Einstellungen",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/de_AT.json b/lib/l10n/de_AT.json
index dc2d1c6309c..6e81c34cf1a 100644
--- a/lib/l10n/de_AT.json
+++ b/lib/l10n/de_AT.json
@@ -4,7 +4,7 @@
"Settings" : "Einstellungen",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index c779cf3ac8b..4d37b58a664 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Ungültiges Bild",
"today" : "Heute",
"yesterday" : "Gestern",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
"last month" : "Letzten Monat",
"_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
"last year" : "Letztes Jahr",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
"_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
"_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
"seconds ago" : "Gerade eben",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index 93e88978fab..965713bdccb 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -20,11 +20,11 @@
"Invalid image" : "Ungültiges Bild",
"today" : "Heute",
"yesterday" : "Gestern",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
"last month" : "Letzten Monat",
"_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
"last year" : "Letztes Jahr",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"],
"_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
"_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
"seconds ago" : "Gerade eben",
diff --git a/lib/l10n/el.js b/lib/l10n/el.js
index cfc2d19ec07..39c9531b0cb 100644
--- a/lib/l10n/el.js
+++ b/lib/l10n/el.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "τελευταίο μήνα",
"_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
"last year" : "τελευταίο χρόνο",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
"_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
"seconds ago" : "δευτερόλεπτα πριν",
diff --git a/lib/l10n/el.json b/lib/l10n/el.json
index cca9019b129..14b0757f7ed 100644
--- a/lib/l10n/el.json
+++ b/lib/l10n/el.json
@@ -22,7 +22,7 @@
"last month" : "τελευταίο μήνα",
"_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
"last year" : "τελευταίο χρόνο",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
"_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
"seconds ago" : "δευτερόλεπτα πριν",
diff --git a/lib/l10n/en@pirate.js b/lib/l10n/en@pirate.js
index f49f9404675..f1dac5a791a 100644
--- a/lib/l10n/en@pirate.js
+++ b/lib/l10n/en@pirate.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"web services under your control" : "web services under your control"
diff --git a/lib/l10n/en@pirate.json b/lib/l10n/en@pirate.json
index c7b37d44475..911734b3804 100644
--- a/lib/l10n/en@pirate.json
+++ b/lib/l10n/en@pirate.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"web services under your control" : "web services under your control"
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index e46ec24ea1f..861fc29290e 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Invalid image",
"today" : "today",
"yesterday" : "yesterday",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"],
"last month" : "last month",
"_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
"last year" : "last year",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"],
"_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
"_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
"seconds ago" : "seconds ago",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index ae69a109a35..054f4255212 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -20,11 +20,11 @@
"Invalid image" : "Invalid image",
"today" : "today",
"yesterday" : "yesterday",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"],
"last month" : "last month",
"_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
"last year" : "last year",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"],
"_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
"_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
"seconds ago" : "seconds ago",
diff --git a/lib/l10n/en_NZ.js b/lib/l10n/en_NZ.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/en_NZ.js
+++ b/lib/l10n/en_NZ.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/en_NZ.json b/lib/l10n/en_NZ.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/en_NZ.json
+++ b/lib/l10n/en_NZ.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/eo.js b/lib/l10n/eo.js
index 24fe9db76e5..fdf8d5b5ab0 100644
--- a/lib/l10n/eo.js
+++ b/lib/l10n/eo.js
@@ -17,7 +17,7 @@ OC.L10N.register(
"last month" : "lastamonate",
"_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
"last year" : "lastajare",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
"_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
"seconds ago" : "sekundoj antaŭe",
diff --git a/lib/l10n/eo.json b/lib/l10n/eo.json
index 0ad9ddddbbf..bd433423828 100644
--- a/lib/l10n/eo.json
+++ b/lib/l10n/eo.json
@@ -15,7 +15,7 @@
"last month" : "lastamonate",
"_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
"last year" : "lastajare",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
"_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
"seconds ago" : "sekundoj antaŭe",
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index 8937ea0d02b..fdbac2de6f6 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "hace segundos",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index 4de500d029a..2f46806394a 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -22,7 +22,7 @@
"last month" : "mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "hace segundos",
diff --git a/lib/l10n/es_AR.js b/lib/l10n/es_AR.js
index 193dbb3537d..bc291ddb3b6 100644
--- a/lib/l10n/es_AR.js
+++ b/lib/l10n/es_AR.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "el mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "el año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/es_AR.json b/lib/l10n/es_AR.json
index 3bccd0af2a9..e1245fabfef 100644
--- a/lib/l10n/es_AR.json
+++ b/lib/l10n/es_AR.json
@@ -13,7 +13,7 @@
"last month" : "el mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "el año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/es_BO.js b/lib/l10n/es_BO.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_BO.js
+++ b/lib/l10n/es_BO.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_BO.json b/lib/l10n/es_BO.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_BO.json
+++ b/lib/l10n/es_BO.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_CL.js b/lib/l10n/es_CL.js
index ec693d06714..84e47673937 100644
--- a/lib/l10n/es_CL.js
+++ b/lib/l10n/es_CL.js
@@ -20,7 +20,7 @@ OC.L10N.register(
"last month" : "mes anterior",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "último año",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "segundos antes",
diff --git a/lib/l10n/es_CL.json b/lib/l10n/es_CL.json
index 0c79edffd54..946cf11dc09 100644
--- a/lib/l10n/es_CL.json
+++ b/lib/l10n/es_CL.json
@@ -18,7 +18,7 @@
"last month" : "mes anterior",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "último año",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "segundos antes",
diff --git a/lib/l10n/es_CO.js b/lib/l10n/es_CO.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_CO.js
+++ b/lib/l10n/es_CO.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_CO.json b/lib/l10n/es_CO.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_CO.json
+++ b/lib/l10n/es_CO.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_CR.js b/lib/l10n/es_CR.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_CR.js
+++ b/lib/l10n/es_CR.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_CR.json b/lib/l10n/es_CR.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_CR.json
+++ b/lib/l10n/es_CR.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_EC.js b/lib/l10n/es_EC.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_EC.js
+++ b/lib/l10n/es_EC.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_EC.json b/lib/l10n/es_EC.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_EC.json
+++ b/lib/l10n/es_EC.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js
index bd09decf2ab..e739b14c9fd 100644
--- a/lib/l10n/es_MX.js
+++ b/lib/l10n/es_MX.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "hace segundos",
diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json
index f91e7bf9995..9b63e52244c 100644
--- a/lib/l10n/es_MX.json
+++ b/lib/l10n/es_MX.json
@@ -13,7 +13,7 @@
"last month" : "mes pasado",
"_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
"last year" : "año pasado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
"seconds ago" : "hace segundos",
diff --git a/lib/l10n/es_PE.js b/lib/l10n/es_PE.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_PE.js
+++ b/lib/l10n/es_PE.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_PE.json b/lib/l10n/es_PE.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_PE.json
+++ b/lib/l10n/es_PE.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_PY.js b/lib/l10n/es_PY.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_PY.js
+++ b/lib/l10n/es_PY.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_PY.json b/lib/l10n/es_PY.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_PY.json
+++ b/lib/l10n/es_PY.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_US.js b/lib/l10n/es_US.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_US.js
+++ b/lib/l10n/es_US.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_US.json b/lib/l10n/es_US.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_US.json
+++ b/lib/l10n/es_US.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/es_UY.js b/lib/l10n/es_UY.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/es_UY.js
+++ b/lib/l10n/es_UY.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/es_UY.json b/lib/l10n/es_UY.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/es_UY.json
+++ b/lib/l10n/es_UY.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index a3f85776cc0..1e48fc90216 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "viimasel kuul",
"_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
"last year" : "viimasel aastal",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
"seconds ago" : "sekundit tagasi",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index 15823ddf5bd..05486f6d8a0 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -22,7 +22,7 @@
"last month" : "viimasel kuul",
"_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
"last year" : "viimasel aastal",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
"seconds ago" : "sekundit tagasi",
diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js
index 3f4c71db815..7af354cdf6c 100644
--- a/lib/l10n/eu.js
+++ b/lib/l10n/eu.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "joan den hilabetean",
"_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
"last year" : "joan den urtean",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
"_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
"seconds ago" : "segundu",
diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json
index 3bee1b8ba00..3735988aab8 100644
--- a/lib/l10n/eu.json
+++ b/lib/l10n/eu.json
@@ -22,7 +22,7 @@
"last month" : "joan den hilabetean",
"_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
"last year" : "joan den urtean",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
"_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
"seconds ago" : "segundu",
diff --git a/lib/l10n/eu_ES.js b/lib/l10n/eu_ES.js
index 6fe48cea772..554bbf836a5 100644
--- a/lib/l10n/eu_ES.js
+++ b/lib/l10n/eu_ES.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Personal" : "Pertsonala",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/eu_ES.json b/lib/l10n/eu_ES.json
index e4c9cbb4818..eecaa4e9aea 100644
--- a/lib/l10n/eu_ES.json
+++ b/lib/l10n/eu_ES.json
@@ -2,7 +2,7 @@
"Personal" : "Pertsonala",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
index ce534183dbe..e5cacb279d4 100644
--- a/lib/l10n/fa.js
+++ b/lib/l10n/fa.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "ماه قبل",
"_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
"last year" : "سال قبل",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
"_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
"seconds ago" : "ثانیه‌ها پیش",
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
index 679892773d1..608d66645da 100644
--- a/lib/l10n/fa.json
+++ b/lib/l10n/fa.json
@@ -12,7 +12,7 @@
"last month" : "ماه قبل",
"_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
"last year" : "سال قبل",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
"_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
"seconds ago" : "ثانیه‌ها پیش",
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
index 18dc44ae597..e8cd3e7dc69 100644
--- a/lib/l10n/fi_FI.js
+++ b/lib/l10n/fi_FI.js
@@ -20,11 +20,11 @@ OC.L10N.register(
"Invalid image" : "Virheellinen kuva",
"today" : "tänään",
"yesterday" : "eilen",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
"last month" : "viime kuussa",
"_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
"last year" : "viime vuonna",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n vuosi sitten","%n vuotta sitten"],
"_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
"seconds ago" : "sekuntia sitten",
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
index 74ef3b04509..e4ca796dc55 100644
--- a/lib/l10n/fi_FI.json
+++ b/lib/l10n/fi_FI.json
@@ -18,11 +18,11 @@
"Invalid image" : "Virheellinen kuva",
"today" : "tänään",
"yesterday" : "eilen",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
"last month" : "viime kuussa",
"_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
"last year" : "viime vuonna",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n vuosi sitten","%n vuotta sitten"],
"_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
"seconds ago" : "sekuntia sitten",
diff --git a/lib/l10n/fil.js b/lib/l10n/fil.js
index a3dfe9ea915..9408adc0dc3 100644
--- a/lib/l10n/fil.js
+++ b/lib/l10n/fil.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/fil.json b/lib/l10n/fil.json
index 29b50679fc0..2a227e468c7 100644
--- a/lib/l10n/fil.json
+++ b/lib/l10n/fil.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index faef0929c05..a5c70a5507b 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Image non valable",
"today" : "aujourd'hui",
"yesterday" : "hier",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"],
"last month" : "le mois dernier",
"_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
"last year" : "l'année dernière",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
"_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
"seconds ago" : "il y a quelques secondes",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 2e22ca27642..078197282a5 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -20,11 +20,11 @@
"Invalid image" : "Image non valable",
"today" : "aujourd'hui",
"yesterday" : "hier",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"],
"last month" : "le mois dernier",
"_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
"last year" : "l'année dernière",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
"_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
"seconds ago" : "il y a quelques secondes",
diff --git a/lib/l10n/fr_CA.js b/lib/l10n/fr_CA.js
index a3dfe9ea915..9408adc0dc3 100644
--- a/lib/l10n/fr_CA.js
+++ b/lib/l10n/fr_CA.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/fr_CA.json b/lib/l10n/fr_CA.json
index 29b50679fc0..2a227e468c7 100644
--- a/lib/l10n/fr_CA.json
+++ b/lib/l10n/fr_CA.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/lib/l10n/fy_NL.js b/lib/l10n/fy_NL.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/fy_NL.js
+++ b/lib/l10n/fy_NL.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/fy_NL.json b/lib/l10n/fy_NL.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/fy_NL.json
+++ b/lib/l10n/fy_NL.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 37a1bae52b4..dc49a5f2877 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "último mes",
"_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
"last year" : "último ano",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index bbedf464286..8f342057868 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -22,7 +22,7 @@
"last month" : "último mes",
"_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
"last year" : "último ano",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/gu.js b/lib/l10n/gu.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/gu.js
+++ b/lib/l10n/gu.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/gu.json b/lib/l10n/gu.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/gu.json
+++ b/lib/l10n/gu.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/he.js b/lib/l10n/he.js
index 3d1557dcb73..200d3d7035a 100644
--- a/lib/l10n/he.js
+++ b/lib/l10n/he.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "חודש שעבר",
"_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
"last year" : "שנה שעברה",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
"_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
"seconds ago" : "שניות",
diff --git a/lib/l10n/he.json b/lib/l10n/he.json
index a8aba13fa28..0cadc7beba2 100644
--- a/lib/l10n/he.json
+++ b/lib/l10n/he.json
@@ -10,7 +10,7 @@
"last month" : "חודש שעבר",
"_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
"last year" : "שנה שעברה",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
"_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
"seconds ago" : "שניות",
diff --git a/lib/l10n/hi.js b/lib/l10n/hi.js
index 07441b3f364..fdc0ecac1a2 100644
--- a/lib/l10n/hi.js
+++ b/lib/l10n/hi.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"Users" : "उपयोगकर्ता",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/hi.json b/lib/l10n/hi.json
index acc832d3493..b231ead2917 100644
--- a/lib/l10n/hi.json
+++ b/lib/l10n/hi.json
@@ -5,7 +5,7 @@
"Users" : "उपयोगकर्ता",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js
index 1a505db91e6..03323882399 100644
--- a/lib/l10n/hr.js
+++ b/lib/l10n/hr.js
@@ -23,7 +23,7 @@ OC.L10N.register(
"last month" : "Prošli mjesec",
"_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
"last year" : "Prošle godine",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
"_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
"seconds ago" : "prije par sekundi",
diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json
index f1b12f6410c..22beeba3f94 100644
--- a/lib/l10n/hr.json
+++ b/lib/l10n/hr.json
@@ -21,7 +21,7 @@
"last month" : "Prošli mjesec",
"_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
"last year" : "Prošle godine",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
"_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
"seconds ago" : "prije par sekundi",
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
index fb496c94fdc..55581474e8f 100644
--- a/lib/l10n/hu_HU.js
+++ b/lib/l10n/hu_HU.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "múlt hónapban",
"_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
"last year" : "tavaly",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
"_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
"seconds ago" : "pár másodperce",
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
index c971b9ffed1..cc95cceae5e 100644
--- a/lib/l10n/hu_HU.json
+++ b/lib/l10n/hu_HU.json
@@ -22,7 +22,7 @@
"last month" : "múlt hónapban",
"_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
"last year" : "tavaly",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
"_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
"seconds ago" : "pár másodperce",
diff --git a/lib/l10n/hy.js b/lib/l10n/hy.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/hy.js
+++ b/lib/l10n/hy.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/hy.json b/lib/l10n/hy.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/hy.json
+++ b/lib/l10n/hy.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ia.js b/lib/l10n/ia.js
index 514c2cfe68f..345df54ec33 100644
--- a/lib/l10n/ia.js
+++ b/lib/l10n/ia.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "ultime mense",
"_%n month ago_::_%n months ago_" : ["","%n menses ante"],
"last year" : "ultime anno",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
"seconds ago" : "secundas passate",
diff --git a/lib/l10n/ia.json b/lib/l10n/ia.json
index dfefaa5b318..3f722b77a0d 100644
--- a/lib/l10n/ia.json
+++ b/lib/l10n/ia.json
@@ -12,7 +12,7 @@
"last month" : "ultime mense",
"_%n month ago_::_%n months ago_" : ["","%n menses ante"],
"last year" : "ultime anno",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
"seconds ago" : "secundas passate",
diff --git a/lib/l10n/id.js b/lib/l10n/id.js
index 847a74fdef9..0ad97244098 100644
--- a/lib/l10n/id.js
+++ b/lib/l10n/id.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "bulan kemarin",
"_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
"last year" : "tahun kemarin",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
"_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
"seconds ago" : "beberapa detik yang lalu",
diff --git a/lib/l10n/id.json b/lib/l10n/id.json
index 4176bd93b8c..26add369e59 100644
--- a/lib/l10n/id.json
+++ b/lib/l10n/id.json
@@ -22,7 +22,7 @@
"last month" : "bulan kemarin",
"_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
"last year" : "tahun kemarin",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
"_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
"seconds ago" : "beberapa detik yang lalu",
diff --git a/lib/l10n/io.js b/lib/l10n/io.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/io.js
+++ b/lib/l10n/io.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/io.json b/lib/l10n/io.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/io.json
+++ b/lib/l10n/io.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/is.js b/lib/l10n/is.js
index 79c02d82dea..712b8bbd10a 100644
--- a/lib/l10n/is.js
+++ b/lib/l10n/is.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "síðasta mánuði",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "síðasta ári",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "sek.",
diff --git a/lib/l10n/is.json b/lib/l10n/is.json
index 9333629ddb7..fd0291c96c3 100644
--- a/lib/l10n/is.json
+++ b/lib/l10n/is.json
@@ -10,7 +10,7 @@
"last month" : "síðasta mánuði",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "síðasta ári",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "sek.",
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index ef1f99a1214..eb274943cc5 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"last month" : "mese scorso",
"_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
"last year" : "anno scorso",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
"seconds ago" : "secondi fa",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index a1a1db1fbd0..057df780b39 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -24,7 +24,7 @@
"last month" : "mese scorso",
"_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
"last year" : "anno scorso",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
"seconds ago" : "secondi fa",
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index c978e651777..1c607bd4041 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"last month" : "1ヶ月前",
"_%n month ago_::_%n months ago_" : ["%nヶ月前"],
"last year" : "1年前",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
"seconds ago" : "数秒前",
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index d7aaceb88b7..47fd2ab6896 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -24,7 +24,7 @@
"last month" : "1ヶ月前",
"_%n month ago_::_%n months ago_" : ["%nヶ月前"],
"last year" : "1年前",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
"seconds ago" : "数秒前",
diff --git a/lib/l10n/jv.js b/lib/l10n/jv.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/jv.js
+++ b/lib/l10n/jv.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/jv.json b/lib/l10n/jv.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/jv.json
+++ b/lib/l10n/jv.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ka_GE.js b/lib/l10n/ka_GE.js
index cf62d612ad0..63b886e6ce1 100644
--- a/lib/l10n/ka_GE.js
+++ b/lib/l10n/ka_GE.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "გასულ თვეში",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ბოლო წელს",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "წამის წინ",
diff --git a/lib/l10n/ka_GE.json b/lib/l10n/ka_GE.json
index 77af7a6b569..0371cfcfc90 100644
--- a/lib/l10n/ka_GE.json
+++ b/lib/l10n/ka_GE.json
@@ -10,7 +10,7 @@
"last month" : "გასულ თვეში",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ბოლო წელს",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "წამის წინ",
diff --git a/lib/l10n/km.js b/lib/l10n/km.js
index c6008e4ada3..4f96e661179 100644
--- a/lib/l10n/km.js
+++ b/lib/l10n/km.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "ខែមុន",
"_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
"last year" : "ឆ្នាំ​មុន",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
"_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
"seconds ago" : "វិនាទី​មុន",
diff --git a/lib/l10n/km.json b/lib/l10n/km.json
index 07f65191a29..9c1010b0020 100644
--- a/lib/l10n/km.json
+++ b/lib/l10n/km.json
@@ -13,7 +13,7 @@
"last month" : "ខែមុន",
"_%n month ago_::_%n months ago_" : ["%n ខែ​មុន"],
"last year" : "ឆ្នាំ​មុន",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n ម៉ោង​មុន"],
"_%n minute ago_::_%n minutes ago_" : ["%n នាទី​មុន"],
"seconds ago" : "វិនាទី​មុន",
diff --git a/lib/l10n/kn.js b/lib/l10n/kn.js
index b76198fde5a..784e8271ef3 100644
--- a/lib/l10n/kn.js
+++ b/lib/l10n/kn.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},
diff --git a/lib/l10n/kn.json b/lib/l10n/kn.json
index a35313c9310..3a3512d508d 100644
--- a/lib/l10n/kn.json
+++ b/lib/l10n/kn.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js
index 2cf822676cf..2ae43854873 100644
--- a/lib/l10n/ko.js
+++ b/lib/l10n/ko.js
@@ -16,7 +16,7 @@ OC.L10N.register(
"last month" : "지난 달",
"_%n month ago_::_%n months ago_" : ["%n달 전 "],
"last year" : "작년",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
"_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
"seconds ago" : "초 전",
diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json
index 0ed0698a6c7..a021fb34dd2 100644
--- a/lib/l10n/ko.json
+++ b/lib/l10n/ko.json
@@ -14,7 +14,7 @@
"last month" : "지난 달",
"_%n month ago_::_%n months ago_" : ["%n달 전 "],
"last year" : "작년",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
"_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
"seconds ago" : "초 전",
diff --git a/lib/l10n/ku_IQ.js b/lib/l10n/ku_IQ.js
index f75f8c33735..eea2d55138e 100644
--- a/lib/l10n/ku_IQ.js
+++ b/lib/l10n/ku_IQ.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"Admin" : "به‌ڕێوه‌به‌ری سه‌ره‌كی",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه"
diff --git a/lib/l10n/ku_IQ.json b/lib/l10n/ku_IQ.json
index 8ebc259bdbb..b2ab2dc219d 100644
--- a/lib/l10n/ku_IQ.json
+++ b/lib/l10n/ku_IQ.json
@@ -5,7 +5,7 @@
"Admin" : "به‌ڕێوه‌به‌ری سه‌ره‌كی",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"web services under your control" : "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه"
diff --git a/lib/l10n/lb.js b/lib/l10n/lb.js
index 8dbca0249f9..470652f4017 100644
--- a/lib/l10n/lb.js
+++ b/lib/l10n/lb.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "Läschte Mount",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "Läscht Joer",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
"seconds ago" : "Sekonnen hir",
diff --git a/lib/l10n/lb.json b/lib/l10n/lb.json
index a0d452d1999..2f63f042538 100644
--- a/lib/l10n/lb.json
+++ b/lib/l10n/lb.json
@@ -12,7 +12,7 @@
"last month" : "Läschte Mount",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "Läscht Joer",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
"seconds ago" : "Sekonnen hir",
diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js
index ed343ff8867..1f05855b77e 100644
--- a/lib/l10n/lt_LT.js
+++ b/lib/l10n/lt_LT.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "praeitą mėnesį",
"_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
"last year" : "praeitais metais",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
"_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
"seconds ago" : "prieš sekundę",
diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json
index ce1848b2cbe..a3a53baf010 100644
--- a/lib/l10n/lt_LT.json
+++ b/lib/l10n/lt_LT.json
@@ -13,7 +13,7 @@
"last month" : "praeitą mėnesį",
"_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
"last year" : "praeitais metais",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
"_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
"seconds ago" : "prieš sekundę",
diff --git a/lib/l10n/lv.js b/lib/l10n/lv.js
index 7f6257cfc5e..590aa136914 100644
--- a/lib/l10n/lv.js
+++ b/lib/l10n/lv.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "pagājušajā mēnesī",
"_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
"last year" : "gājušajā gadā",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
"_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
"seconds ago" : "sekundes atpakaļ",
diff --git a/lib/l10n/lv.json b/lib/l10n/lv.json
index 79004dec458..983de7afa5d 100644
--- a/lib/l10n/lv.json
+++ b/lib/l10n/lv.json
@@ -10,7 +10,7 @@
"last month" : "pagājušajā mēnesī",
"_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
"last year" : "gājušajā gadā",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
"_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
"seconds ago" : "sekundes atpakaļ",
diff --git a/lib/l10n/mg.js b/lib/l10n/mg.js
index a3dfe9ea915..9408adc0dc3 100644
--- a/lib/l10n/mg.js
+++ b/lib/l10n/mg.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/mg.json b/lib/l10n/mg.json
index 29b50679fc0..2a227e468c7 100644
--- a/lib/l10n/mg.json
+++ b/lib/l10n/mg.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/lib/l10n/mk.js b/lib/l10n/mk.js
index 6f573cea4e7..5ab596f4c95 100644
--- a/lib/l10n/mk.js
+++ b/lib/l10n/mk.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "минатиот месец",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "минатата година",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "пред секунди",
diff --git a/lib/l10n/mk.json b/lib/l10n/mk.json
index d29ff6f21d7..de9fff6b1a1 100644
--- a/lib/l10n/mk.json
+++ b/lib/l10n/mk.json
@@ -13,7 +13,7 @@
"last month" : "минатиот месец",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "минатата година",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "пред секунди",
diff --git a/lib/l10n/ml.js b/lib/l10n/ml.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/ml.js
+++ b/lib/l10n/ml.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ml.json b/lib/l10n/ml.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/ml.json
+++ b/lib/l10n/ml.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ml_IN.js b/lib/l10n/ml_IN.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/ml_IN.js
+++ b/lib/l10n/ml_IN.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ml_IN.json b/lib/l10n/ml_IN.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/ml_IN.json
+++ b/lib/l10n/ml_IN.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/mn.js b/lib/l10n/mn.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/mn.js
+++ b/lib/l10n/mn.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/mn.json b/lib/l10n/mn.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/mn.json
+++ b/lib/l10n/mn.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ms_MY.js b/lib/l10n/ms_MY.js
index 4e81e6446ca..a501399af5c 100644
--- a/lib/l10n/ms_MY.js
+++ b/lib/l10n/ms_MY.js
@@ -8,7 +8,7 @@ OC.L10N.register(
"Admin" : "Admin",
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"web services under your control" : "Perkhidmatan web di bawah kawalan anda",
diff --git a/lib/l10n/ms_MY.json b/lib/l10n/ms_MY.json
index 4fe2a2a1549..8c2a83136ee 100644
--- a/lib/l10n/ms_MY.json
+++ b/lib/l10n/ms_MY.json
@@ -6,7 +6,7 @@
"Admin" : "Admin",
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"web services under your control" : "Perkhidmatan web di bawah kawalan anda",
diff --git a/lib/l10n/mt_MT.js b/lib/l10n/mt_MT.js
index cbc5e75a128..b26809fe0cb 100644
--- a/lib/l10n/mt_MT.js
+++ b/lib/l10n/mt_MT.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["","","",""],
"_%n month ago_::_%n months ago_" : ["","","",""],
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""]
},
diff --git a/lib/l10n/mt_MT.json b/lib/l10n/mt_MT.json
index b368564e1b1..e87af1606cd 100644
--- a/lib/l10n/mt_MT.json
+++ b/lib/l10n/mt_MT.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["","","",""],
"_%n month ago_::_%n months ago_" : ["","","",""],
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["","","",""],
"_%n minute ago_::_%n minutes ago_" : ["","","",""]
},"pluralForm" :"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/lib/l10n/my_MM.js b/lib/l10n/my_MM.js
index 7c573489dd7..50489cd16c2 100644
--- a/lib/l10n/my_MM.js
+++ b/lib/l10n/my_MM.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"last month" : "ပြီးခဲ့သောလ",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "မနှစ်က",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "စက္ကန့်အနည်းငယ်က",
diff --git a/lib/l10n/my_MM.json b/lib/l10n/my_MM.json
index 9b809e8ec6f..c0b2bd97df3 100644
--- a/lib/l10n/my_MM.json
+++ b/lib/l10n/my_MM.json
@@ -8,7 +8,7 @@
"last month" : "ပြီးခဲ့သောလ",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "မနှစ်က",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "စက္ကန့်အနည်းငယ်က",
diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js
index 3b1b04a7d84..2094a3bb6e6 100644
--- a/lib/l10n/nb_NO.js
+++ b/lib/l10n/nb_NO.js
@@ -23,7 +23,7 @@ OC.L10N.register(
"last month" : "forrige måned",
"_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
"last year" : "forrige år",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
"_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
"seconds ago" : "for få sekunder siden",
diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json
index 194ed835d5e..b42f8c3132d 100644
--- a/lib/l10n/nb_NO.json
+++ b/lib/l10n/nb_NO.json
@@ -21,7 +21,7 @@
"last month" : "forrige måned",
"_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
"last year" : "forrige år",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
"_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
"seconds ago" : "for få sekunder siden",
diff --git a/lib/l10n/nds.js b/lib/l10n/nds.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/nds.js
+++ b/lib/l10n/nds.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/nds.json b/lib/l10n/nds.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/nds.json
+++ b/lib/l10n/nds.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ne.js b/lib/l10n/ne.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/ne.js
+++ b/lib/l10n/ne.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ne.json b/lib/l10n/ne.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/ne.json
+++ b/lib/l10n/ne.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index 112b4d85db0..c1447dc930f 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Ongeldige afbeelding",
"today" : "vandaag",
"yesterday" : "gisteren",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"],
"last month" : "vorige maand",
"_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
"last year" : "vorig jaar",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaar geleden"],
"_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
"seconds ago" : "seconden geleden",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index 7288ce940f2..974b69a7270 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -20,11 +20,11 @@
"Invalid image" : "Ongeldige afbeelding",
"today" : "vandaag",
"yesterday" : "gisteren",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"],
"last month" : "vorige maand",
"_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
"last year" : "vorig jaar",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaar geleden"],
"_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
"_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
"seconds ago" : "seconden geleden",
diff --git a/lib/l10n/nn_NO.js b/lib/l10n/nn_NO.js
index d638d36c75a..b16dd54cc18 100644
--- a/lib/l10n/nn_NO.js
+++ b/lib/l10n/nn_NO.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "førre månad",
"_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
"last year" : "i fjor",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
"seconds ago" : "sekund sidan",
diff --git a/lib/l10n/nn_NO.json b/lib/l10n/nn_NO.json
index 7b6287b9eda..6dad7797027 100644
--- a/lib/l10n/nn_NO.json
+++ b/lib/l10n/nn_NO.json
@@ -12,7 +12,7 @@
"last month" : "førre månad",
"_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
"last year" : "i fjor",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
"seconds ago" : "sekund sidan",
diff --git a/lib/l10n/nqo.js b/lib/l10n/nqo.js
index b76198fde5a..784e8271ef3 100644
--- a/lib/l10n/nqo.js
+++ b/lib/l10n/nqo.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},
diff --git a/lib/l10n/nqo.json b/lib/l10n/nqo.json
index a35313c9310..3a3512d508d 100644
--- a/lib/l10n/nqo.json
+++ b/lib/l10n/nqo.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/oc.js b/lib/l10n/oc.js
index e1c2ce370f5..4c16d7ec821 100644
--- a/lib/l10n/oc.js
+++ b/lib/l10n/oc.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "mes passat",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "an passat",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "segonda a",
diff --git a/lib/l10n/oc.json b/lib/l10n/oc.json
index 8f63e0fdfca..9ebedb6f913 100644
--- a/lib/l10n/oc.json
+++ b/lib/l10n/oc.json
@@ -10,7 +10,7 @@
"last month" : "mes passat",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "an passat",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "segonda a",
diff --git a/lib/l10n/or_IN.js b/lib/l10n/or_IN.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/or_IN.js
+++ b/lib/l10n/or_IN.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/or_IN.json b/lib/l10n/or_IN.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/or_IN.json
+++ b/lib/l10n/or_IN.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/pa.js b/lib/l10n/pa.js
index 6b26936632a..5b3f0a80f6a 100644
--- a/lib/l10n/pa.js
+++ b/lib/l10n/pa.js
@@ -8,7 +8,7 @@ OC.L10N.register(
"last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "ਪਿਛਲੇ ਸਾਲ",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ"
diff --git a/lib/l10n/pa.json b/lib/l10n/pa.json
index 05d8dcbf32c..254909bc8b4 100644
--- a/lib/l10n/pa.json
+++ b/lib/l10n/pa.json
@@ -6,7 +6,7 @@
"last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "ਪਿਛਲੇ ਸਾਲ",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ"
diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js
index f0b67e808f1..4382655be43 100644
--- a/lib/l10n/pl.js
+++ b/lib/l10n/pl.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"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 go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%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",
diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json
index eeb54b65957..05da756aff4 100644
--- a/lib/l10n/pl.json
+++ b/lib/l10n/pl.json
@@ -22,7 +22,7 @@
"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 go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%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",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 13411b52bc8..dc1ce447b61 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Imagem inválida",
"today" : "hoje",
"yesterday" : "ontem",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"],
"last month" : "último mês",
"_%n month ago_::_%n months ago_" : ["","ha %n meses"],
"last year" : "último ano",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"],
"_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index 4bc41ea95b9..18fa28d1d7c 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -20,11 +20,11 @@
"Invalid image" : "Imagem inválida",
"today" : "hoje",
"yesterday" : "ontem",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"],
"last month" : "último mês",
"_%n month ago_::_%n months ago_" : ["","ha %n meses"],
"last year" : "último ano",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"],
"_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
"_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
"seconds ago" : "segundos atrás",
diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js
index 1e65545d93e..5629ffc2037 100644
--- a/lib/l10n/pt_PT.js
+++ b/lib/l10n/pt_PT.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "ultímo mês",
"_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
"last year" : "ano passado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
"seconds ago" : "Minutos atrás",
diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json
index da37060cab4..7f1a1e5e1bf 100644
--- a/lib/l10n/pt_PT.json
+++ b/lib/l10n/pt_PT.json
@@ -22,7 +22,7 @@
"last month" : "ultímo mês",
"_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
"last year" : "ano passado",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
"seconds ago" : "Minutos atrás",
diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js
index b369fe3a8b9..08d5d9bb5b4 100644
--- a/lib/l10n/ro.js
+++ b/lib/l10n/ro.js
@@ -19,7 +19,7 @@ OC.L10N.register(
"last month" : "ultima lună",
"_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
"last year" : "ultimul an",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
"_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
"seconds ago" : "secunde în urmă",
diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json
index 836abac53e4..9a0a316a57d 100644
--- a/lib/l10n/ro.json
+++ b/lib/l10n/ro.json
@@ -17,7 +17,7 @@
"last month" : "ultima lună",
"_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
"last year" : "ultimul an",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
"_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
"seconds ago" : "secunde în urmă",
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 83d4b7d27fb..ed7ac0e3d8d 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"last month" : "в прошлом месяце",
"_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
"last year" : "в прошлом году",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
"_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
"seconds ago" : "несколько секунд назад",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index 4bb2369cfff..dc22f19a8be 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -24,7 +24,7 @@
"last month" : "в прошлом месяце",
"_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
"last year" : "в прошлом году",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
"_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
"seconds ago" : "несколько секунд назад",
diff --git a/lib/l10n/si_LK.js b/lib/l10n/si_LK.js
index 845218e6576..09d5d0c84da 100644
--- a/lib/l10n/si_LK.js
+++ b/lib/l10n/si_LK.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "පෙර මාසයේ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "පෙර අවුරුද්දේ",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "තත්පරයන්ට පෙර",
diff --git a/lib/l10n/si_LK.json b/lib/l10n/si_LK.json
index dfdf72f2ab9..6c65802af2e 100644
--- a/lib/l10n/si_LK.json
+++ b/lib/l10n/si_LK.json
@@ -10,7 +10,7 @@
"last month" : "පෙර මාසයේ",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "පෙර අවුරුද්දේ",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "තත්පරයන්ට පෙර",
diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js
index 4f0775b32fb..1a4ad8c6293 100644
--- a/lib/l10n/sk_SK.js
+++ b/lib/l10n/sk_SK.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "minulý mesiac",
"_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
"last year" : "minulý rok",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
"seconds ago" : "pred sekundami",
diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json
index 323f6433004..3d7fb6e7c83 100644
--- a/lib/l10n/sk_SK.json
+++ b/lib/l10n/sk_SK.json
@@ -22,7 +22,7 @@
"last month" : "minulý mesiac",
"_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
"last year" : "minulý rok",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
"seconds ago" : "pred sekundami",
diff --git a/lib/l10n/sl.js b/lib/l10n/sl.js
index 5539e67a80d..1783cfef934 100644
--- a/lib/l10n/sl.js
+++ b/lib/l10n/sl.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"last month" : "zadnji mesec",
"_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
"last year" : "lansko leto",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
"_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
"seconds ago" : "pred nekaj sekundami",
diff --git a/lib/l10n/sl.json b/lib/l10n/sl.json
index 0c5fa8d7df3..9f1e2256250 100644
--- a/lib/l10n/sl.json
+++ b/lib/l10n/sl.json
@@ -24,7 +24,7 @@
"last month" : "zadnji mesec",
"_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
"last year" : "lansko leto",
- "_%n year go_::_%n years ago_" : ["","","",""],
+ "_%n year ago_::_%n years ago_" : ["","","",""],
"_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
"_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
"seconds ago" : "pred nekaj sekundami",
diff --git a/lib/l10n/sq.js b/lib/l10n/sq.js
index 46d74bb7634..a92d868f116 100644
--- a/lib/l10n/sq.js
+++ b/lib/l10n/sq.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"last month" : "muajin e shkuar",
"_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
"last year" : "vitin e shkuar",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
"seconds ago" : "sekonda më parë",
diff --git a/lib/l10n/sq.json b/lib/l10n/sq.json
index 55cff2f0a02..4903e1be195 100644
--- a/lib/l10n/sq.json
+++ b/lib/l10n/sq.json
@@ -13,7 +13,7 @@
"last month" : "muajin e shkuar",
"_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
"last year" : "vitin e shkuar",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
"_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
"seconds ago" : "sekonda më parë",
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index 28c1d1e1522..4b2b401c127 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "прошлог месеца",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "прошле године",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
"_%n minute ago_::_%n minutes ago_" : ["","",""],
"seconds ago" : "пре неколико секунди",
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index 0183ca53647..a9d28c1ea5a 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -10,7 +10,7 @@
"last month" : "прошлог месеца",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "прошле године",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","",""],
"_%n minute ago_::_%n minutes ago_" : ["","",""],
"seconds ago" : "пре неколико секунди",
diff --git a/lib/l10n/sr@latin.js b/lib/l10n/sr@latin.js
index 0f65c59edb4..1bd8358cf17 100644
--- a/lib/l10n/sr@latin.js
+++ b/lib/l10n/sr@latin.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "prošlog meseca",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "prošle godine",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
"_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
"seconds ago" : "Pre par sekundi",
diff --git a/lib/l10n/sr@latin.json b/lib/l10n/sr@latin.json
index 5fb7f389b90..e95cacf7623 100644
--- a/lib/l10n/sr@latin.json
+++ b/lib/l10n/sr@latin.json
@@ -10,7 +10,7 @@
"last month" : "prošlog meseca",
"_%n month ago_::_%n months ago_" : ["","",""],
"last year" : "prošle godine",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
"_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
"seconds ago" : "Pre par sekundi",
diff --git a/lib/l10n/su.js b/lib/l10n/su.js
index b76198fde5a..784e8271ef3 100644
--- a/lib/l10n/su.js
+++ b/lib/l10n/su.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},
diff --git a/lib/l10n/su.json b/lib/l10n/su.json
index a35313c9310..3a3512d508d 100644
--- a/lib/l10n/su.json
+++ b/lib/l10n/su.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index 86595f04820..9b05d70ec2f 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"last month" : "förra månaden",
"_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
"last year" : "förra året",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
"_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
"seconds ago" : "sekunder sedan",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 329f533d0da..d5b58c4b4ce 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -19,7 +19,7 @@
"last month" : "förra månaden",
"_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
"last year" : "förra året",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
"_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
"seconds ago" : "sekunder sedan",
diff --git a/lib/l10n/sw_KE.js b/lib/l10n/sw_KE.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/sw_KE.js
+++ b/lib/l10n/sw_KE.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/sw_KE.json b/lib/l10n/sw_KE.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/sw_KE.json
+++ b/lib/l10n/sw_KE.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ta_IN.js b/lib/l10n/ta_IN.js
index 359fa70b2b3..27a3f155da1 100644
--- a/lib/l10n/ta_IN.js
+++ b/lib/l10n/ta_IN.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Settings" : "அமைப்புகள்",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/ta_IN.json b/lib/l10n/ta_IN.json
index 88705b77e6f..937923e8068 100644
--- a/lib/l10n/ta_IN.json
+++ b/lib/l10n/ta_IN.json
@@ -2,7 +2,7 @@
"Settings" : "அமைப்புகள்",
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/ta_LK.js b/lib/l10n/ta_LK.js
index 3802470a981..758ad47a78d 100644
--- a/lib/l10n/ta_LK.js
+++ b/lib/l10n/ta_LK.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "கடந்த மாதம்",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "கடந்த வருடம்",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "செக்கன்களுக்கு முன்",
diff --git a/lib/l10n/ta_LK.json b/lib/l10n/ta_LK.json
index 237ed0fa732..378f926337e 100644
--- a/lib/l10n/ta_LK.json
+++ b/lib/l10n/ta_LK.json
@@ -10,7 +10,7 @@
"last month" : "கடந்த மாதம்",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "கடந்த வருடம்",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""],
"seconds ago" : "செக்கன்களுக்கு முன்",
diff --git a/lib/l10n/te.js b/lib/l10n/te.js
index b6df801c57f..615c6bd68ca 100644
--- a/lib/l10n/te.js
+++ b/lib/l10n/te.js
@@ -11,7 +11,7 @@ OC.L10N.register(
"last month" : "పోయిన నెల",
"_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
"last year" : "పోయిన సంవత్సరం",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
"_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
"seconds ago" : "క్షణాల క్రితం"
diff --git a/lib/l10n/te.json b/lib/l10n/te.json
index 9ec6196671f..4b243366da1 100644
--- a/lib/l10n/te.json
+++ b/lib/l10n/te.json
@@ -9,7 +9,7 @@
"last month" : "పోయిన నెల",
"_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
"last year" : "పోయిన సంవత్సరం",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
"_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
"seconds ago" : "క్షణాల క్రితం"
diff --git a/lib/l10n/tg_TJ.js b/lib/l10n/tg_TJ.js
index cc0d1629df6..a12702211c2 100644
--- a/lib/l10n/tg_TJ.js
+++ b/lib/l10n/tg_TJ.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/tg_TJ.json b/lib/l10n/tg_TJ.json
index 8575f28f06b..b994fa289eb 100644
--- a/lib/l10n/tg_TJ.json
+++ b/lib/l10n/tg_TJ.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/lib/l10n/th_TH.js b/lib/l10n/th_TH.js
index dc4beda82bd..9ab8b29e5a0 100644
--- a/lib/l10n/th_TH.js
+++ b/lib/l10n/th_TH.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "เดือนที่แล้ว",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ปีที่แล้ว",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "วินาที ก่อนหน้านี้",
diff --git a/lib/l10n/th_TH.json b/lib/l10n/th_TH.json
index d086f09e856..13452ec720a 100644
--- a/lib/l10n/th_TH.json
+++ b/lib/l10n/th_TH.json
@@ -10,7 +10,7 @@
"last month" : "เดือนที่แล้ว",
"_%n month ago_::_%n months ago_" : [""],
"last year" : "ปีที่แล้ว",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"seconds ago" : "วินาที ก่อนหน้านี้",
diff --git a/lib/l10n/tl_PH.js b/lib/l10n/tl_PH.js
index a3dfe9ea915..9408adc0dc3 100644
--- a/lib/l10n/tl_PH.js
+++ b/lib/l10n/tl_PH.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/tl_PH.json b/lib/l10n/tl_PH.json
index 29b50679fc0..2a227e468c7 100644
--- a/lib/l10n/tl_PH.json
+++ b/lib/l10n/tl_PH.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index 9f41454c416..818b6da4549 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -22,11 +22,11 @@ OC.L10N.register(
"Invalid image" : "Geçersiz resim",
"today" : "bugün",
"yesterday" : "dün",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"],
"last month" : "geçen ay",
"_%n month ago_::_%n months ago_" : ["","%n ay önce"],
"last year" : "geçen yıl",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
"_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
"seconds ago" : "saniyeler önce",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index 6cc35155e3e..466b5694340 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -20,11 +20,11 @@
"Invalid image" : "Geçersiz resim",
"today" : "bugün",
"yesterday" : "dün",
- "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"],
"last month" : "geçen ay",
"_%n month ago_::_%n months ago_" : ["","%n ay önce"],
"last year" : "geçen yıl",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
"_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
"seconds ago" : "saniyeler önce",
diff --git a/lib/l10n/tzm.js b/lib/l10n/tzm.js
index 65b05e24839..326649ad645 100644
--- a/lib/l10n/tzm.js
+++ b/lib/l10n/tzm.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},
diff --git a/lib/l10n/tzm.json b/lib/l10n/tzm.json
index aaabc6990ad..8a960ea6b66 100644
--- a/lib/l10n/tzm.json
+++ b/lib/l10n/tzm.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : ["",""],
"_%n month ago_::_%n months ago_" : ["",""],
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["",""]
},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"
diff --git a/lib/l10n/ug.js b/lib/l10n/ug.js
index 7dec6c967fa..5ee6ccadd82 100644
--- a/lib/l10n/ug.js
+++ b/lib/l10n/ug.js
@@ -9,7 +9,7 @@ OC.L10N.register(
"yesterday" : "تۈنۈگۈن",
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
diff --git a/lib/l10n/ug.json b/lib/l10n/ug.json
index 99be341ed26..b73fb7e1b35 100644
--- a/lib/l10n/ug.json
+++ b/lib/l10n/ug.json
@@ -7,7 +7,7 @@
"yesterday" : "تۈنۈگۈن",
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""],
"Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index a0a37aacc89..aecbc8327db 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -23,7 +23,7 @@ OC.L10N.register(
"last month" : "минулого місяця",
"_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
"last year" : "минулого року",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
"_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
"seconds ago" : "секунди тому",
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index cefb34d622b..841e61216bc 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -21,7 +21,7 @@
"last month" : "минулого місяця",
"_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
"last year" : "минулого року",
- "_%n year go_::_%n years ago_" : ["","",""],
+ "_%n year ago_::_%n years ago_" : ["","",""],
"_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
"_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
"seconds ago" : "секунди тому",
diff --git a/lib/l10n/ur_PK.js b/lib/l10n/ur_PK.js
index a1d0952cf1d..d02b480fd13 100644
--- a/lib/l10n/ur_PK.js
+++ b/lib/l10n/ur_PK.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "پچھلے مہنیے",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "پچھلے سال",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
"seconds ago" : "سیکنڈز پہلے",
diff --git a/lib/l10n/ur_PK.json b/lib/l10n/ur_PK.json
index 3e8e1d51677..bbe6e221b2a 100644
--- a/lib/l10n/ur_PK.json
+++ b/lib/l10n/ur_PK.json
@@ -12,7 +12,7 @@
"last month" : "پچھلے مہنیے",
"_%n month ago_::_%n months ago_" : ["",""],
"last year" : "پچھلے سال",
- "_%n year go_::_%n years ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
"_%n hour ago_::_%n hours ago_" : ["",""],
"_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
"seconds ago" : "سیکنڈز پہلے",
diff --git a/lib/l10n/uz.js b/lib/l10n/uz.js
index b76198fde5a..784e8271ef3 100644
--- a/lib/l10n/uz.js
+++ b/lib/l10n/uz.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},
diff --git a/lib/l10n/uz.json b/lib/l10n/uz.json
index a35313c9310..3a3512d508d 100644
--- a/lib/l10n/uz.json
+++ b/lib/l10n/uz.json
@@ -1,7 +1,7 @@
{ "translations": {
"_%n day ago_::_%n days ago_" : [""],
"_%n month ago_::_%n months ago_" : [""],
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : [""],
"_%n minute ago_::_%n minutes ago_" : [""]
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/lib/l10n/vi.js b/lib/l10n/vi.js
index 05a725e3f9d..a7e68528166 100644
--- a/lib/l10n/vi.js
+++ b/lib/l10n/vi.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"last month" : "tháng trước",
"_%n month ago_::_%n months ago_" : ["%n tháng trước"],
"last year" : "năm trước",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
"_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
"seconds ago" : "vài giây trước",
diff --git a/lib/l10n/vi.json b/lib/l10n/vi.json
index 7315a5756c4..a7a29de350a 100644
--- a/lib/l10n/vi.json
+++ b/lib/l10n/vi.json
@@ -12,7 +12,7 @@
"last month" : "tháng trước",
"_%n month ago_::_%n months ago_" : ["%n tháng trước"],
"last year" : "năm trước",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
"_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
"seconds ago" : "vài giây trước",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 814decefe71..874327fc7d9 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -18,7 +18,7 @@ OC.L10N.register(
"last month" : "上月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "去年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
"seconds ago" : "秒前",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index 45a206a374f..d51c420d55c 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -16,7 +16,7 @@
"last month" : "上月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "去年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
"seconds ago" : "秒前",
diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js
index a841a0c79c6..813162ff8fd 100644
--- a/lib/l10n/zh_HK.js
+++ b/lib/l10n/zh_HK.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"last month" : "前一月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "上年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
"seconds ago" : "秒前"
diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json
index 930335145b8..e78d70ea20e 100644
--- a/lib/l10n/zh_HK.json
+++ b/lib/l10n/zh_HK.json
@@ -10,7 +10,7 @@
"last month" : "前一月",
"_%n month ago_::_%n months ago_" : ["%n 月前"],
"last year" : "上年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
"seconds ago" : "秒前"
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index c7e5854bd2b..477fa6bda3a 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"last month" : "上個月",
"_%n month ago_::_%n months ago_" : ["%n 個月前"],
"last year" : "去年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
"seconds ago" : "幾秒前",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index 9cb69071402..685214cbc06 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -22,7 +22,7 @@
"last month" : "上個月",
"_%n month ago_::_%n months ago_" : ["%n 個月前"],
"last year" : "去年",
- "_%n year go_::_%n years ago_" : [""],
+ "_%n year ago_::_%n years ago_" : [""],
"_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
"seconds ago" : "幾秒前",
diff --git a/lib/private/activitymanager.php b/lib/private/activitymanager.php
index e0ee7c1b055..70bd227b417 100644
--- a/lib/private/activitymanager.php
+++ b/lib/private/activitymanager.php
@@ -168,6 +168,25 @@ class ActivityManager implements IManager {
}
/**
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text) {
+ foreach($this->extensions as $extension) {
+ $c = $extension();
+ if ($c instanceof IExtension) {
+ $specialParameter = $c->getSpecialParameterList($app, $text);
+ if (is_array($specialParameter)) {
+ return $specialParameter;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
* @param string $type
* @return string
*/
diff --git a/lib/private/datetimeformatter.php b/lib/private/datetimeformatter.php
index 127e694bd88..11c62f27083 100644
--- a/lib/private/datetimeformatter.php
+++ b/lib/private/datetimeformatter.php
@@ -157,7 +157,7 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter {
} else if ($dateInterval->y == 1) {
return (string) $l->t('last year');
}
- return (string) $l->n('%n year go', '%n years ago', $dateInterval->y);
+ return (string) $l->n('%n year ago', '%n years ago', $dateInterval->y);
}
/**
@@ -203,7 +203,7 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter {
$diff = $timestamp->diff($baseTimestamp);
if ($diff->y > 0 || $diff->m > 0 || $diff->d > 0) {
- return (string) $this->formatDateSpan($timestamp, $baseTimestamp);
+ return (string) $this->formatDateSpan($timestamp, $baseTimestamp, $l);
}
if ($diff->h > 0) {
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 4157da2281c..9df64db7f07 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -504,6 +504,51 @@ class Cache {
}
/**
+ * Search for files by tag of a given users.
+ *
+ * Note that every user can tag files differently.
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ $sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, ' .
+ '`mimetype`, `mimepart`, `size`, `mtime`, ' .
+ '`encrypted`, `unencrypted_size`, `etag`, `permissions` ' .
+ 'FROM `*PREFIX*filecache` `file`, ' .
+ '`*PREFIX*vcategory_to_object` `tagmap`, ' .
+ '`*PREFIX*vcategory` `tag` ' .
+ // JOIN filecache to vcategory_to_object
+ 'WHERE `file`.`fileid` = `tagmap`.`objid` '.
+ // JOIN vcategory_to_object to vcategory
+ 'AND `tagmap`.`type` = `tag`.`type` ' .
+ 'AND `tagmap`.`categoryid` = `tag`.`id` ' .
+ // conditions
+ 'AND `file`.`storage` = ? '.
+ 'AND `tag`.`type` = \'files\' ' .
+ 'AND `tag`.`uid` = ? ';
+ if (is_int($tag)) {
+ $sql .= 'AND `tag`.`id` = ? ';
+ } else {
+ $sql .= 'AND `tag`.`category` = ? ';
+ }
+ $result = \OC_DB::executeAudited(
+ $sql,
+ array(
+ $this->getNumericStorageId(),
+ $userId,
+ $tag
+ )
+ );
+ $files = array();
+ while ($row = $result->fetchRow()) {
+ $files[] = $row;
+ }
+ return $files;
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
diff --git a/lib/private/files/cache/wrapper/cachejail.php b/lib/private/files/cache/wrapper/cachejail.php
index 7982293f5ed..f4ffc67d76a 100644
--- a/lib/private/files/cache/wrapper/cachejail.php
+++ b/lib/private/files/cache/wrapper/cachejail.php
@@ -198,6 +198,18 @@ class CacheJail extends CacheWrapper {
}
/**
+ * search for files by mimetype
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array
+ */
+ public function searchByTag($tag, $userId) {
+ $results = $this->cache->searchByTag($tag, $userId);
+ return $this->formatSearchResults($results);
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
diff --git a/lib/private/files/cache/wrapper/cachewrapper.php b/lib/private/files/cache/wrapper/cachewrapper.php
index d3d64e3f0a9..83811520e4b 100644
--- a/lib/private/files/cache/wrapper/cachewrapper.php
+++ b/lib/private/files/cache/wrapper/cachewrapper.php
@@ -181,6 +181,18 @@ class CacheWrapper extends Cache {
}
/**
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return array file data
+ */
+ public function searchByTag($tag, $userId) {
+ $results = $this->cache->searchByTag($tag, $userId);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index 90643839e22..ed2be59c092 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -687,6 +687,15 @@ class Filesystem {
}
/**
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return FileInfo[] array or file info
+ */
+ static public function searchByTag($tag, $userId) {
+ return self::$defaultInstance->searchByTag($tag, $userId);
+ }
+
+ /**
* check if a file or folder has been updated since $time
*
* @param string $path
diff --git a/lib/private/files/node/folder.php b/lib/private/files/node/folder.php
index 6fdcff13e1c..bdfb2346716 100644
--- a/lib/private/files/node/folder.php
+++ b/lib/private/files/node/folder.php
@@ -223,7 +223,7 @@ class Folder extends Node implements \OCP\Files\Folder {
* @return \OC\Files\Node\Node[]
*/
public function search($query) {
- return $this->searchCommon('%' . $query . '%', 'search');
+ return $this->searchCommon('search', array('%' . $query . '%'));
}
/**
@@ -233,15 +233,26 @@ class Folder extends Node implements \OCP\Files\Folder {
* @return Node[]
*/
public function searchByMime($mimetype) {
- return $this->searchCommon($mimetype, 'searchByMime');
+ return $this->searchCommon('searchByMime', array($mimetype));
}
/**
- * @param string $query
- * @param string $method
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return Node[]
+ */
+ public function searchByTag($tag, $userId) {
+ return $this->searchCommon('searchByTag', array($tag, $userId));
+ }
+
+ /**
+ * @param string $method cache method
+ * @param array $args call args
* @return \OC\Files\Node\Node[]
*/
- private function searchCommon($query, $method) {
+ private function searchCommon($method, $args) {
$files = array();
$rootLength = strlen($this->path);
/**
@@ -252,7 +263,7 @@ class Folder extends Node implements \OCP\Files\Folder {
$cache = $storage->getCache('');
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
if ($internalRootLength === 0 or substr($result['path'], 0, $internalRootLength) === $internalPath) {
$result['internalPath'] = $result['path'];
@@ -269,7 +280,7 @@ class Folder extends Node implements \OCP\Files\Folder {
$cache = $storage->getCache('');
$relativeMountPoint = substr($mount->getMountPoint(), $rootLength);
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
$result['internalPath'] = $result['path'];
$result['path'] = $relativeMountPoint . $result['path'];
diff --git a/lib/private/files/node/nonexistingfolder.php b/lib/private/files/node/nonexistingfolder.php
index 0346cbf1e21..04f741e8a46 100644
--- a/lib/private/files/node/nonexistingfolder.php
+++ b/lib/private/files/node/nonexistingfolder.php
@@ -99,6 +99,10 @@ class NonExistingFolder extends Folder {
throw new NotFoundException();
}
+ public function searchByTag($tag, $userId) {
+ throw new NotFoundException();
+ }
+
public function getById($id) {
throw new NotFoundException();
}
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index a2832bce009..887ec1972b3 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -123,7 +123,11 @@ class DAV extends \OC\Files\Storage\Common {
}
\OC\Files\Stream\Dir::register($id, $content);
return opendir('fakedir://' . $id);
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -138,9 +142,11 @@ class DAV extends \OC\Files\Storage\Common {
$responseType = $response["{DAV:}resourcetype"]->resourceType;
}
return (count($responseType) > 0 and $responseType[0] == "{DAV:}collection") ? 'dir' : 'file';
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
- error_log($e->getMessage());
- \OCP\Util::writeLog("webdav client", \OCP\Util::sanitizeHTML($e->getMessage()), \OCP\Util::ERROR);
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -151,7 +157,11 @@ class DAV extends \OC\Files\Storage\Common {
try {
$this->client->propfind($this->encodePath($path), array('{DAV:}resourcetype'));
return true; //no 404 exception
+ } catch (Exception\NotFound $e) {
+ return false;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -263,7 +273,11 @@ class DAV extends \OC\Files\Storage\Common {
if ($this->file_exists($path)) {
try {
$this->client->proppatch($this->encodePath($path), array('{DAV:}lastmodified' => $mtime));
- } catch (\Sabre\DAV\Exception\NotImplemented $e) {
+ } catch (Exception\NotImplemented $e) {
+ return false;
+ } catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
} else {
@@ -313,6 +327,8 @@ class DAV extends \OC\Files\Storage\Common {
$this->removeCachedFile($path2);
return true;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -326,6 +342,8 @@ class DAV extends \OC\Files\Storage\Common {
$this->removeCachedFile($path2);
return true;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -339,7 +357,11 @@ class DAV extends \OC\Files\Storage\Common {
'mtime' => strtotime($response['{DAV:}getlastmodified']),
'size' => (int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0,
);
+ } catch (Exception\NotFound $e) {
+ return array();
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return array();
}
}
@@ -362,6 +384,8 @@ class DAV extends \OC\Files\Storage\Common {
return false;
}
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -400,6 +424,8 @@ class DAV extends \OC\Files\Storage\Common {
$response = $this->client->request($method, $this->encodePath($path), $body);
return $response['statusCode'] == $expected;
} catch (\Exception $e) {
+ // TODO: log for now, but in the future need to wrap/rethrow exception
+ \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
}
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 4b3d167f8e9..c01763cdad3 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -678,7 +678,7 @@ class View {
$source = fopen($tmpFile, 'r');
if ($source) {
- $this->file_put_contents($path, $source);
+ $result = $this->file_put_contents($path, $source);
// $this->file_put_contents() might have already closed
// the resource, so we check it, before trying to close it
// to avoid messages in the error log.
@@ -686,7 +686,7 @@ class View {
fclose($source);
}
unlink($tmpFile);
- return true;
+ return $result;
} else {
return false;
}
@@ -1111,7 +1111,7 @@ class View {
* @return FileInfo[]
*/
public function search($query) {
- return $this->searchCommon('%' . $query . '%', 'search');
+ return $this->searchCommon('search', array('%' . $query . '%'));
}
/**
@@ -1121,7 +1121,7 @@ class View {
* @return FileInfo[]
*/
public function searchRaw($query) {
- return $this->searchCommon($query, 'search');
+ return $this->searchCommon('search', array($query));
}
/**
@@ -1131,15 +1131,26 @@ class View {
* @return FileInfo[]
*/
public function searchByMime($mimetype) {
- return $this->searchCommon($mimetype, 'searchByMime');
+ return $this->searchCommon('searchByMime', array($mimetype));
}
/**
- * @param string $query
- * @param string $method
+ * search for files by tag
+ *
+ * @param string|int $tag name or tag id
+ * @param string $userId owner of the tags
+ * @return FileInfo[]
+ */
+ public function searchByTag($tag, $userId) {
+ return $this->searchCommon('searchByTag', array($tag, $userId));
+ }
+
+ /**
+ * @param string $method cache method
+ * @param array $args
* @return FileInfo[]
*/
- private function searchCommon($query, $method) {
+ private function searchCommon($method, $args) {
$files = array();
$rootLength = strlen($this->fakeRoot);
@@ -1148,7 +1159,7 @@ class View {
if ($storage) {
$cache = $storage->getCache('');
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
foreach ($results as $result) {
if (substr($mountPoint . $result['path'], 0, $rootLength + 1) === $this->fakeRoot . '/') {
$internalPath = $result['path'];
@@ -1165,7 +1176,7 @@ class View {
$cache = $storage->getCache('');
$relativeMountPoint = substr($mountPoint, $rootLength);
- $results = $cache->$method($query);
+ $results = call_user_func_array(array($cache, $method), $args);
if ($results) {
foreach ($results as $result) {
$internalPath = $result['path'];
diff --git a/lib/private/l10n.php b/lib/private/l10n.php
index 3c759a9e3a2..6c66bee3e79 100644
--- a/lib/private/l10n.php
+++ b/lib/private/l10n.php
@@ -238,7 +238,7 @@ class OC_L10N implements \OCP\IL10N {
$this->init();
$identifier = "_${text_singular}_::_${text_plural}_";
if( array_key_exists($identifier, $this->translations)) {
- return new OC_L10N_String( $this, $identifier, $parameters, $count );
+ return new OC_L10N_String($this, $identifier, $parameters, $count, array($text_singular, $text_plural));
}else{
if($count === 1) {
return new OC_L10N_String($this, $text_singular, $parameters, $count);
diff --git a/lib/private/l10n/string.php b/lib/private/l10n/string.php
index 04eaacab57b..5f5452ad16d 100644
--- a/lib/private/l10n/string.php
+++ b/lib/private/l10n/string.php
@@ -23,6 +23,11 @@ class OC_L10N_String{
protected $parameters;
/**
+ * @var array
+ */
+ protected $plurals;
+
+ /**
* @var integer
*/
protected $count;
@@ -30,11 +35,12 @@ class OC_L10N_String{
/**
* @param OC_L10N $l10n
*/
- public function __construct($l10n, $text, $parameters, $count = 1) {
+ public function __construct($l10n, $text, $parameters, $count = 1, $plurals = array()) {
$this->l10n = $l10n;
$this->text = $text;
$this->parameters = $parameters;
$this->count = $count;
+ $this->plurals = $plurals;
}
public function __toString() {
@@ -45,7 +51,19 @@ class OC_L10N_String{
if(is_array($translations[$this->text])) {
$fn = $this->l10n->getPluralFormFunction();
$id = $fn($this->count);
- $text = $translations[$this->text][$id];
+
+ if ($translations[$this->text][$id] !== '') {
+ // The translation of this plural case is not empty, so use it
+ $text = $translations[$this->text][$id];
+ } else {
+ // We didn't find the plural in the language,
+ // so we fall back to english.
+ $id = ($id != 0) ? 1 : 0;
+ if (isset($this->plurals[$id])) {
+ // Fallback to the english plural
+ $text = $this->plurals[$id];
+ }
+ }
}
else{
$text = $translations[$this->text];
diff --git a/lib/private/largefilehelper.php b/lib/private/largefilehelper.php
index 750ba1d23de..b6a8c536e9b 100644
--- a/lib/private/largefilehelper.php
+++ b/lib/private/largefilehelper.php
@@ -100,7 +100,7 @@ class LargeFileHelper {
* null on failure.
*/
public function getFileSizeViaCurl($filename) {
- if (function_exists('curl_init')) {
+ if (function_exists('curl_init') && \OC::$server->getIniWrapper()->getString('open_basedir') === '') {
$fencoded = rawurlencode($filename);
$ch = curl_init("file://$fencoded");
curl_setopt($ch, CURLOPT_NOBODY, true);
diff --git a/lib/private/server.php b/lib/private/server.php
index e0105506970..6066e2fa35e 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -2,6 +2,7 @@
namespace OC;
+use bantu\IniGetWrapper\IniGetWrapper;
use OC\AppFramework\Http\Request;
use OC\AppFramework\Db\Db;
use OC\AppFramework\Utility\SimpleContainer;
@@ -11,7 +12,6 @@ use OC\Diagnostics\EventLogger;
use OC\Diagnostics\QueryLogger;
use OC\Files\Config\StorageManager;
use OC\Security\CertificateManager;
-use OC\DB\ConnectionWrapper;
use OC\Files\Node\Root;
use OC\Files\View;
use OC\Security\Crypto;
@@ -87,8 +87,7 @@ class Server extends SimpleContainer implements IServerContainer {
});
$this->registerService('TagManager', function (Server $c) {
$tagMapper = $c->query('TagMapper');
- $user = \OC_User::getUser();
- return new TagManager($tagMapper, $user);
+ return new TagManager($tagMapper, $c->getUserSession());
});
$this->registerService('RootFolder', function (Server $c) {
// TODO: get user and user manager from container as well
@@ -285,6 +284,9 @@ class Server extends SimpleContainer implements IServerContainer {
$loader = \OC\Files\Filesystem::getLoader();
return new \OC\Files\Config\MountProviderCollection($loader);
});
+ $this->registerService('IniWrapper', function ($c) {
+ return new IniGetWrapper();
+ });
}
/**
@@ -358,6 +360,7 @@ class Server extends SimpleContainer implements IServerContainer {
} else {
$user = $this->getUserManager()->get($userId);
}
+ \OC\Files\Filesystem::initMountPoints($userId);
$dir = '/' . $userId;
$root = $this->getRootFolder();
$folder = null;
@@ -723,4 +726,13 @@ class Server extends SimpleContainer implements IServerContainer {
function getMountProviderCollection(){
return $this->query('MountConfigManager');
}
+
+ /**
+ * Get the IniWrapper
+ *
+ * @return IniGetWrapper
+ */
+ public function getIniWrapper() {
+ return $this->query('IniWrapper');
+ }
}
diff --git a/lib/private/tagmanager.php b/lib/private/tagmanager.php
index d5bff04acff..6c7eeab87eb 100644
--- a/lib/private/tagmanager.php
+++ b/lib/private/tagmanager.php
@@ -38,11 +38,11 @@ use OC\Tagging\TagMapper;
class TagManager implements \OCP\ITagManager {
/**
- * User
+ * User session
*
- * @var string
+ * @var \OCP\IUserSession
*/
- private $user;
+ private $userSession;
/**
* TagMapper
@@ -55,12 +55,11 @@ class TagManager implements \OCP\ITagManager {
* Constructor.
*
* @param TagMapper $mapper Instance of the TagMapper abstraction layer.
- * @param string $user The user whose data the object will operate on.
+ * @param \OCP\IUserSession $userSession the user session
*/
- public function __construct(TagMapper $mapper, $user) {
-
+ public function __construct(TagMapper $mapper, \OCP\IUserSession $userSession) {
$this->mapper = $mapper;
- $this->user = $user;
+ $this->userSession = $userSession;
}
@@ -71,10 +70,15 @@ class TagManager implements \OCP\ITagManager {
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
* @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ * @param string $userId user for which to retrieve the tags, defaults to the currently
+ * logged in user
* @return \OCP\ITags
*/
- public function load($type, $defaultTags=array(), $includeShared=false) {
- return new Tags($this->mapper, $this->user, $type, $defaultTags, $includeShared);
+ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null) {
+ if (is_null($userId)) {
+ $userId = $this->userSession->getUser()->getUId();
+ }
+ return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared);
}
}
diff --git a/lib/private/user.php b/lib/private/user.php
index f93b76a3a64..ff45e9e26a6 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -546,6 +546,7 @@ class OC_User {
* @return array associative array with all display names (value) and corresponding uids (key)
*
* Get a list of all display names and user ids.
+ * @deprecated Use \OC::$server->getUserManager->searchDisplayName($search, $limit, $offset) instead.
*/
public static function getDisplayNames($search = '', $limit = null, $offset = null) {
$displayNames = array();
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index 4fa3711e3b8..1bc3b51c2ef 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -28,7 +28,7 @@ use OCP\IConfig;
*/
class Manager extends PublicEmitter implements IUserManager {
/**
- * @var \OC_User_Interface[] $backends
+ * @var \OCP\UserInterface [] $backends
*/
private $backends = array();
@@ -63,9 +63,17 @@ class Manager extends PublicEmitter implements IUserManager {
}
/**
+ * Get the active backends
+ * @return \OCP\UserInterface[]
+ */
+ public function getBackends() {
+ return $this->backends;
+ }
+
+ /**
* register a user backend
*
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
*/
public function registerBackend($backend) {
$this->backends[] = $backend;
@@ -74,7 +82,7 @@ class Manager extends PublicEmitter implements IUserManager {
/**
* remove a user backend
*
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
*/
public function removeBackend($backend) {
$this->cachedUsers = array();
@@ -113,7 +121,7 @@ class Manager extends PublicEmitter implements IUserManager {
* get or construct the user object
*
* @param string $uid
- * @param \OC_User_Interface $backend
+ * @param \OCP\UserInterface $backend
* @return \OC\User\User
*/
protected function getUserObject($uid, $backend) {
diff --git a/lib/public/activity/iextension.php b/lib/public/activity/iextension.php
index e78ae0043a6..1b405ad8d3d 100644
--- a/lib/public/activity/iextension.php
+++ b/lib/public/activity/iextension.php
@@ -80,6 +80,19 @@ interface IExtension {
public function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode);
/**
+ * The extension can define the type of parameters for translation
+ *
+ * Currently known types are:
+ * * file => will strip away the path of the file and add a tooltip with it
+ * * username => will add the avatar of the user
+ *
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text);
+
+ /**
* A string naming the css class for the icon to be used can be returned.
* If no icon is known for the given type false is to be returned.
*
diff --git a/lib/public/activity/imanager.php b/lib/public/activity/imanager.php
index 0a49fdf4999..a08670be4b0 100644
--- a/lib/public/activity/imanager.php
+++ b/lib/public/activity/imanager.php
@@ -100,6 +100,13 @@ interface IManager {
function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode);
/**
+ * @param string $app
+ * @param string $text
+ * @return array|false
+ */
+ function getSpecialParameterList($app, $text);
+
+ /**
* @param string $type
* @return string
*/
diff --git a/lib/public/files/folder.php b/lib/public/files/folder.php
index 7fec1c529a5..9797fbc46ed 100644
--- a/lib/public/files/folder.php
+++ b/lib/public/files/folder.php
@@ -117,6 +117,15 @@ interface Folder extends Node {
public function searchByMime($mimetype);
/**
+ * search for files by tag
+ *
+ * @param string|int $tag tag name or tag id
+ * @param string $userId owner of the tags
+ * @return \OCP\Files\Node[]
+ */
+ public function searchByTag($tag, $userId);
+
+ /**
* get a file or folder inside the folder by it's internal id
*
* @param int $id
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index 657c9be423b..193e2fdf105 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -310,4 +310,11 @@ interface IServerContainer {
* @return \OCP\Files\Config\IMountProviderCollection
*/
function getMountProviderCollection();
+
+ /**
+ * Get the IniWrapper
+ *
+ * @return \bantu\IniGetWrapper\IniGetWrapper
+ */
+ function getIniWrapper();
}
diff --git a/lib/public/itagmanager.php b/lib/public/itagmanager.php
index 54daa5cc1cb..ac80eebc72d 100644
--- a/lib/public/itagmanager.php
+++ b/lib/public/itagmanager.php
@@ -43,14 +43,15 @@ namespace OCP;
interface ITagManager {
/**
- * Create a new \OCP\ITags instance and load tags from db.
+ * Create a new \OCP\ITags instance and load tags from db for the current user.
*
* @see \OCP\ITags
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
* @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ * @param string $userId user for which to retrieve the tags, defaults to the currently
+ * logged in user
* @return \OCP\ITags
*/
- public function load($type, $defaultTags=array(), $includeShared=false);
-
+ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null);
}
diff --git a/lib/public/iusermanager.php b/lib/public/iusermanager.php
index fc0729b860b..1691aee8e7d 100644
--- a/lib/public/iusermanager.php
+++ b/lib/public/iusermanager.php
@@ -32,6 +32,12 @@ interface IUserManager {
public function registerBackend($backend);
/**
+ * Get the active backends
+ * @return \OCP\UserInterface[]
+ */
+ public function getBackends();
+
+ /**
* remove a user backend
*
* @param \OCP\UserInterface $backend
diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php
index 589b0a888cb..c25989af1a9 100644
--- a/settings/controller/userscontroller.php
+++ b/settings/controller/userscontroller.php
@@ -11,6 +11,7 @@
namespace OC\Settings\Controller;
use OC\AppFramework\Http;
+use OC\User\Manager;
use OC\User\User;
use \OCP\AppFramework\Controller;
use OCP\AppFramework\Http\DataResponse;
@@ -85,45 +86,68 @@ class UsersController extends Controller {
}
/**
+ * @param array $userIDs Array with schema [$uid => $displayName]
+ * @return IUser[]
+ */
+ private function getUsersForUID(array $userIDs) {
+ $users = [];
+ foreach ($userIDs as $uid => $displayName) {
+ $users[] = $this->userManager->get($uid);
+ }
+ return $users;
+ }
+
+ /**
* @NoAdminRequired
*
* @param int $offset
* @param int $limit
- * @param string $gid
- * @param string $pattern
+ * @param string $gid GID to filter for
+ * @param string $pattern Pattern to search for in the username
+ * @param string $backend Backend to filter for (class-name)
* @return DataResponse
*
* TODO: Tidy up and write unit tests - code is mainly static method calls
*/
- public function index($offset = 0, $limit = 10, $gid = '', $pattern = '') {
+ public function index($offset = 0, $limit = 10, $gid = '', $pattern = '', $backend = '') {
// FIXME: The JS sends the group '_everyone' instead of no GID for the "all users" group.
if($gid === '_everyone') {
$gid = '';
}
+
+ // Remove backends
+ if(!empty($backend)) {
+ $activeBackends = $this->userManager->getBackends();
+ $this->userManager->clearBackends();
+ foreach($activeBackends as $singleActiveBackend) {
+ if($backend === get_class($singleActiveBackend)) {
+ $this->userManager->registerBackend($singleActiveBackend);
+ break;
+ }
+ }
+ }
+
$users = array();
if ($this->isAdmin) {
+
if($gid !== '') {
- $batch = $this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset);
+ $batch = $this->getUsersForUID($this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset));
} else {
- // FIXME: Remove static method call
- $batch = \OC_User::getDisplayNames($pattern, $limit, $offset);
+ $batch = $this->userManager->search('', $limit, $offset);
}
- foreach ($batch as $uid => $displayname) {
- $users[] = $this->formatUserForIndex($this->userManager->get($uid));
+ foreach ($batch as $user) {
+ $users[] = $this->formatUserForIndex($user);
}
+
} else {
- $groups = \OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID());
- if($gid !== '' && in_array($gid, $groups)) {
- $groups = array($gid);
- } elseif($gid !== '') {
- //don't you try to investigate loops you must not know about
- $groups = array();
+ // Set the $gid parameter to an empty value if the subadmin has no rights to access a specific group
+ if($gid !== '' && !in_array($gid, \OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID()))) {
+ $gid = '';
}
- $batch = \OC_Group::usersInGroups($groups, $pattern, $limit, $offset);
- foreach ($batch as $uid) {
- $user = $this->userManager->get($uid);
+ $batch = $this->getUsersForUID($this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset));
+ foreach ($batch as $user) {
// Only add the groups, this user is a subadmin of
$userGroups = array_intersect($this->groupManager->getUserGroupIds($user),
\OC_SubAdmin::getSubAdminsGroups($this->userSession->getUser()->getUID()));
@@ -185,7 +209,8 @@ class UsersController extends Controller {
array(
'username' => $username,
'groups' => $this->groupManager->getUserGroupIds($user),
- 'storageLocation' => $user->getHome()
+ 'storageLocation' => $user->getHome(),
+ 'backend' => $user->getBackendClassName()
),
Http::STATUS_CREATED
);
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 4594a22c6d0..fa699e50a4b 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -94,8 +94,11 @@ td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidde
td.password, td.quota, td.displayName { width:12em; cursor:pointer; }
td.password>span, td.quota>span, rd.displayName>span { margin-right: 1.2em; color: #C7C7C7; }
span.usersLastLoginTooltip { white-space: nowrap; }
-th#headerLastLogin, td.lastLogin { display : none; }
-th#headerStorageLocation, td.storageLocation { display : none; }
+#userlist .storageLocation,
+#userlist .userBackend,
+#userlist .lastLogin {
+ display : none;
+}
td.remove { width:1em; padding-right:1em; }
tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; }
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 9c48da32c5a..62e18d1be04 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -12,9 +12,7 @@ var filter;
var UserList = {
availableGroups: [],
- offset: 30, //The first 30 users are there. No prob, if less in total.
- //hardcoded in settings/users.php
-
+ offset: 0,
usersToLoad: 10, //So many users will be loaded when user scrolls down
currentGid: '',
@@ -30,20 +28,33 @@ var UserList = {
this.$el.find('.quota-user').singleSelect().on('change', this.onQuotaSelect);
},
- add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort) {
+ add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort, backend) {
var $tr = $userListBody.find('tr:first-child').clone();
+ // this removes just the `display:none` of the template row
+ $tr.removeAttr('style');
var subAdminsEl;
var subAdminSelect;
var groupsSelect;
+
+ /**
+ * Avatar or placeholder
+ */
if ($tr.find('div.avatardiv').length){
$tr.find('.avatardiv').imageplaceholder(username, displayname);
$('div.avatardiv', $tr).avatar(username, 32);
}
+
+ /**
+ * add username and displayname to row (in data and visible markup
+ */
$tr.data('uid', username);
$tr.data('displayname', displayname);
$tr.find('td.name').text(username);
$tr.find('td.displayName > span').text(displayname);
+ /**
+ * groups and subadmins
+ */
// make them look like the multiselect buttons
// until they get time to really get initialized
groupsSelect = $('<select multiple="multiple" class="groupsselect multiselect button" data-placehoder="Groups" title="' + t('settings', 'no group') + '"></select>')
@@ -67,6 +78,10 @@ var UserList = {
if (subAdminsEl.length > 0) {
subAdminsEl.append(subAdminSelect);
}
+
+ /**
+ * remove action
+ */
if ($tr.find('td.remove img').length === 0 && OC.currentUser !== username) {
var deleteImage = $('<img class="svg action">').attr({
src: OC.imagePath('core', 'actions/delete')
@@ -78,6 +93,10 @@ var UserList = {
} else if (OC.currentUser === username) {
$tr.find('td.remove a').remove();
}
+
+ /**
+ * quota
+ */
var $quotaSelect = $tr.find('.quota-user');
if (quota === 'default') {
$quotaSelect
@@ -91,8 +110,20 @@ var UserList = {
$quotaSelect.append('<option value="' + escapeHTML(quota) + '" selected="selected">' + escapeHTML(quota) + '</option>');
}
}
+
+ /**
+ * storage location
+ */
$tr.find('td.storageLocation').text(storageLocation);
+ /**
+ * user backend
+ */
+ $tr.find('td.userBackend').text(backend);
+
+ /**
+ * last login
+ */
var lastLoginRel = t('settings', 'never');
var lastLoginAbs = lastLoginRel;
if(lastLogin !== 0) {
@@ -107,6 +138,10 @@ var UserList = {
var tooltip = $('<div>').html($($tdLastLogin.attr('original-title')).text(lastLoginAbs)).html();
$tdLastLogin.tipsy({gravity:'s', fade:true, html:true});
$tdLastLogin.attr('title', tooltip);
+
+ /**
+ * append generated row to user list
+ */
$tr.appendTo($userList);
if(UserList.isEmpty === true) {
//when the list was emptied, one row was left, necessary to keep
@@ -116,6 +151,10 @@ var UserList = {
UserList.isEmpty = false;
UserList.checkUsersToLoad();
}
+
+ /**
+ * sort list
+ */
if (sort) {
UserList.doSort();
}
@@ -338,7 +377,7 @@ var UserList = {
if(UserList.has(user.name)) {
return true;
}
- var $tr = UserList.add(user.name, user.displayname, user.groups, user.subadmin, user.quota, user.storageLocation, user.lastLogin, false);
+ var $tr = UserList.add(user.name, user.displayname, user.groups, user.subadmin, user.quota, user.storageLocation, user.lastLogin, false, user.backend);
$tr.addClass('appear transparent');
trs.push($tr);
loadedUsers++;
@@ -697,7 +736,7 @@ $(document).ready(function () {
}, 10000);
}
if(!UserList.has(username)) {
- UserList.add(username, username, result.groups, null, 'default', result.storageLocation, 0, true);
+ UserList.add(username, username, result.groups, null, 'default', result.storageLocation, 0, true, result.backend);
}
$('#newusername').focus();
GroupList.incEveryoneCount();
@@ -709,24 +748,29 @@ $(document).ready(function () {
// Option to display/hide the "Storage location" column
$('#CheckboxStorageLocation').click(function() {
if ($('#CheckboxStorageLocation').is(':checked')) {
- $("#headerStorageLocation").show();
- $("#userlist td.storageLocation").show();
+ $("#userlist .storageLocation").show();
} else {
- $("#headerStorageLocation").hide();
- $("#userlist td.storageLocation").hide();
+ $("#userlist .storageLocation").hide();
}
});
// Option to display/hide the "Last Login" column
$('#CheckboxLastLogin').click(function() {
if ($('#CheckboxLastLogin').is(':checked')) {
- $("#headerLastLogin").show();
- $("#userlist td.lastLogin").show();
+ $("#userlist .lastLogin").show();
} else {
- $("#headerLastLogin").hide();
- $("#userlist td.lastLogin").hide();
+ $("#userlist .lastLogin").hide();
+ }
+ });
+ // Option to display/hide the "Last Login" column
+ $('#CheckboxUserBackend').click(function() {
+ if ($('#CheckboxUserBackend').is(':checked')) {
+ $("#userlist .userBackend").show();
+ } else {
+ $("#userlist .userBackend").hide();
}
});
-
+ // trigger loading of users on startup
+ UserList.update(UserList.currentGid);
});
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 429c4709814..16ec56a7cf8 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -35,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "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.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
"Email sent" : "E-Mail wurde verschickt",
"You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Sende...",
@@ -115,6 +120,7 @@ OC.L10N.register(
"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 \"overwritewebroot\" 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 \"overwritewebroot\"-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>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -134,6 +140,7 @@ OC.L10N.register(
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaubt erneutes Teilen",
"Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "Erzwinge HTTPS",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index 5548796fa16..fc8f62c4496 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -33,12 +33,17 @@
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "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.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
"Email sent" : "E-Mail wurde verschickt",
"You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Sende...",
@@ -113,6 +118,7 @@
"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 \"overwritewebroot\" 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 \"overwritewebroot\"-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>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -132,6 +138,7 @@
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaubt erneutes Teilen",
"Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "Erzwinge HTTPS",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 9dbacadb9b4..611092ba723 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -35,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "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.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
"Email sent" : "E-Mail gesendet",
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Wird gesendet …",
@@ -115,6 +120,7 @@ OC.L10N.register(
"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 \"overwritewebroot\" 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 Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis 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>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -134,6 +140,7 @@ OC.L10N.register(
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaube Weiterverteilen",
"Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "HTTPS erzwingen",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 664b9c82b27..6be5a21ffc4 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -33,12 +33,17 @@
"Enabled" : "Aktiviert",
"Not enabled" : "Nicht aktiviert",
"Recommended" : "Empfohlen",
+ "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.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
"Email sent" : "E-Mail gesendet",
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Unable to create user." : "Benutzer konnte nicht erstellt werden.",
+ "Unable to delete user." : "Benutzer konnte nicht gelöscht werden.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
"Sending..." : "Wird gesendet …",
@@ -113,6 +118,7 @@
"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 \"overwritewebroot\" 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 Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis 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>.",
"Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
@@ -132,6 +138,7 @@
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Allow resharing" : "Erlaube Weiterverteilen",
"Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
+ "Allow users to send mail notification for shared files to other users" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien an andere Benutzer zu senden",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
"Enforce HTTPS" : "HTTPS erzwingen",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index 19e112b2582..ef267f51b58 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -35,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Activées",
"Not enabled" : "Désactivées",
"Recommended" : "Recommandées",
+ "Group already exists." : "Ce groupe existe déjà.",
+ "Unable to add group." : "Impossible d'ajouter le groupe.",
+ "Unable to delete group." : "Impossible de supprimer le groupe.",
"Saved" : "Sauvegardé",
"test email settings" : "tester les paramètres d'e-mail",
"If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
"A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
"Email sent" : "Email envoyé",
"You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Unable to create user." : "Impossible de créer l'utilisateur.",
+ "Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
"Sending..." : "Envoi en cours...",
@@ -115,6 +120,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
"URL generation in notification emails" : "Génération d'URL dans les mails de notification",
"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 \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
+ "Configuration Checks" : "Vérification de la configuration",
"No problems found" : "Aucun problème trouvé",
"Please double check the <a href='%s'>installation guides</a>." : "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
"Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
@@ -134,6 +140,7 @@ OC.L10N.register(
"Enforce expiration date" : "Imposer la date d'expiration",
"Allow resharing" : "Autoriser le repartage",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
+ "Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer une notification par courriel concernant les fichiers partagés",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Enforce HTTPS" : "Forcer HTTPS",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 1fe4f42c25d..516b06694c4 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -33,12 +33,17 @@
"Enabled" : "Activées",
"Not enabled" : "Désactivées",
"Recommended" : "Recommandées",
+ "Group already exists." : "Ce groupe existe déjà.",
+ "Unable to add group." : "Impossible d'ajouter le groupe.",
+ "Unable to delete group." : "Impossible de supprimer le groupe.",
"Saved" : "Sauvegardé",
"test email settings" : "tester les paramètres d'e-mail",
"If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
"A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
"Email sent" : "Email envoyé",
"You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Unable to create user." : "Impossible de créer l'utilisateur.",
+ "Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
"Sending..." : "Envoi en cours...",
@@ -113,6 +118,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
"URL generation in notification emails" : "Génération d'URL dans les mails de notification",
"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 \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
+ "Configuration Checks" : "Vérification de la configuration",
"No problems found" : "Aucun problème trouvé",
"Please double check the <a href='%s'>installation guides</a>." : "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
"Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
@@ -132,6 +138,7 @@
"Enforce expiration date" : "Imposer la date d'expiration",
"Allow resharing" : "Autoriser le repartage",
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
+ "Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer une notification par courriel concernant les fichiers partagés",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Enforce HTTPS" : "Forcer HTTPS",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 6f1981af146..ab57c775c37 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -35,12 +35,17 @@ OC.L10N.register(
"Enabled" : "Geactiveerd",
"Not enabled" : "Niet ingeschakeld",
"Recommended" : "Aanbevolen",
+ "Group already exists." : "Groep bestaat al.",
+ "Unable to add group." : "Kan groep niet toevoegen.",
+ "Unable to delete group." : "Kan groep niet verwijderen.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Er ontstond een probleem bij het versturen van de e-mail. Controleer uw instellingen.",
"Email sent" : "E-mail verzonden",
"You need to set your user email before being able to send test emails." : "U moet uw e-mailadres invoeren voordat u testberichten kunt versturen.",
+ "Unable to create user." : "Kan gebruiker niet aanmaken.",
+ "Unable to delete user." : "Kan gebruiker niet afvoeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
"Sending..." : "Versturen...",
@@ -115,6 +120,7 @@ OC.L10N.register(
"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 \"overwritewebroot\" 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 \"overwritewebroot\" 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.",
"Last cron was executed at %s." : "Laatst uitgevoerde cron op %s.",
@@ -134,6 +140,7 @@ OC.L10N.register(
"Enforce expiration date" : "Verplicht de vervaldatum",
"Allow resharing" : "Toestaan opnieuw delen",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
+ "Allow users to send mail notification for shared files to other users" : "Sta gebruikers toe om e-mailnotificaties aan andere gebruikers te versturen voor gedeelde bestanden",
"Exclude groups from sharing" : "Sluit groepen uit van delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.",
"Enforce HTTPS" : "Afdwingen HTTPS",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index de222f41219..ef3582a425a 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -33,12 +33,17 @@
"Enabled" : "Geactiveerd",
"Not enabled" : "Niet ingeschakeld",
"Recommended" : "Aanbevolen",
+ "Group already exists." : "Groep bestaat al.",
+ "Unable to add group." : "Kan groep niet toevoegen.",
+ "Unable to delete group." : "Kan groep niet verwijderen.",
"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.",
"A problem occurred while sending the email. Please revise your settings." : "Er ontstond een probleem bij het versturen van de e-mail. Controleer uw instellingen.",
"Email sent" : "E-mail verzonden",
"You need to set your user email before being able to send test emails." : "U moet uw e-mailadres invoeren voordat u testberichten kunt versturen.",
+ "Unable to create user." : "Kan gebruiker niet aanmaken.",
+ "Unable to delete user." : "Kan gebruiker niet afvoeren.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
"Sending..." : "Versturen...",
@@ -113,6 +118,7 @@
"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 \"overwritewebroot\" 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 \"overwritewebroot\" 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.",
"Last cron was executed at %s." : "Laatst uitgevoerde cron op %s.",
@@ -132,6 +138,7 @@
"Enforce expiration date" : "Verplicht de vervaldatum",
"Allow resharing" : "Toestaan opnieuw delen",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
+ "Allow users to send mail notification for shared files to other users" : "Sta gebruikers toe om e-mailnotificaties aan andere gebruikers te versturen voor gedeelde bestanden",
"Exclude groups from sharing" : "Sluit groepen uit van delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.",
"Enforce HTTPS" : "Afdwingen HTTPS",
diff --git a/settings/templates/users/main.php b/settings/templates/users/main.php
index d2b7652f142..c32c8df6809 100644
--- a/settings/templates/users/main.php
+++ b/settings/templates/users/main.php
@@ -4,6 +4,19 @@
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file.
*/
+
+script('settings', [
+ 'users/deleteHandler',
+ 'users/filter',
+ 'users/users',
+ 'users/groups'
+]);
+script('core', [
+ 'multiselect',
+ 'singleselect'
+]);
+style('settings', 'settings');
+
$userlistParams = array();
$allGroups=array();
foreach($_["groups"] as $group) {
@@ -31,14 +44,24 @@ translation('settings');
<?php print_unescaped($this->inc('users/part.setquota')); ?>
<div id="userlistoptions">
- <p><label>
- <input type="checkbox" name="StorageLocation" value="StorageLocation" id="CheckboxStorageLocation">
+ <p>
+ <input type="checkbox" name="StorageLocation" value="StorageLocation" id="CheckboxStorageLocation">
+ <label for="CheckboxStorageLocation">
<?php p($l->t('Show storage location')) ?>
- </label></p>
- <p><label>
+ </label>
+ </p>
+ <p>
<input type="checkbox" name="LastLogin" value="LastLogin" id="CheckboxLastLogin">
- <?php p($l->t('Show last log in')) ?>
- </label></p>
+ <label for="CheckboxLastLogin">
+ <?php p($l->t('Show last log in')) ?>
+ </label>
+ </p>
+ <p>
+ <input type="checkbox" name="UserBackend" value="UserBackend" id="CheckboxUserBackend">
+ <label for="CheckboxUserBackend">
+ <?php p($l->t('Show user backend')) ?>
+ </label>
+ </p>
</div>
</div>
</div>
diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php
index 964aef600a2..6a6b0b69fa2 100644
--- a/settings/templates/users/part.userlist.php
+++ b/settings/templates/users/part.userlist.php
@@ -12,20 +12,20 @@
<th id="headerSubAdmins"><?php p($l->t('Group Admin for')); ?></th>
<?php endif;?>
<th id="headerQuota"><?php p($l->t('Quota')); ?></th>
- <th id="headerStorageLocation"><?php p($l->t('Storage Location')); ?></th>
- <th id="headerLastLogin"><?php p($l->t('Last Login')); ?></th>
+ <th class="storageLocation"><?php p($l->t('Storage Location')); ?></th>
+ <th class="userBackend"><?php p($l->t('User Backend')); ?></th>
+ <th class="lastLogin"><?php p($l->t('Last Login')); ?></th>
<th id="headerRemove">&nbsp;</th>
</tr>
</thead>
<tbody>
- <?php foreach($_["users"] as $user): ?>
- <tr data-uid="<?php p($user["name"]) ?>"
- data-displayname="<?php p($user["displayName"]) ?>">
+ <!-- the following <tr> is used as a template for the JS part -->
+ <tr style="display:none">
<?php if ($_['enableAvatars']): ?>
- <td class="avatar"><div class="avatardiv"></div></td>
+ <td class="avatar"><div class="avatardiv"></div></td>
<?php endif; ?>
- <td class="name"><?php p($user["name"]); ?></td>
- <td class="displayName"><span><?php p($user["displayName"]); ?></span> <img class="svg action"
+ <td class="name"></td>
+ <td class="displayName"><span></span> <img class="svg action"
src="<?php p(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t("change full name"))?>" title="<?php p($l->t("change full name"))?>"/>
</td>
@@ -33,84 +33,32 @@
src="<?php print_unescaped(image_path('core', 'actions/rename.svg'))?>"
alt="<?php p($l->t("set new password"))?>" title="<?php p($l->t("set new password"))?>"/>
</td>
- <td class="groups">
- <select
- class="groupsselect"
- data-username="<?php p($user['name']) ;?>"
- data-user-groups="<?php p(json_encode($user['groups'])) ;?>"
- data-placeholder="groups" title="<?php p($l->t('no group'))?>"
- multiple="multiple">
- <?php foreach($_["adminGroup"] as $adminGroup): ?>
- <option value="<?php p($adminGroup['name']);?>"><?php p($adminGroup['name']); ?></option>
- <?php endforeach; ?>
- <?php foreach($_["groups"] as $group): ?>
- <option value="<?php p($group['name']);?>"><?php p($group['name']);?></option>
- <?php endforeach;?>
- </select>
- </td>
+ <td class="groups"></td>
<?php if(is_array($_['subadmins']) || $_['subadmins']): ?>
- <td class="subadmins">
- <select
- class="subadminsselect"
- data-username="<?php p($user['name']) ;?>"
- data-subadmin="<?php p(json_encode($user['subadmin']));?>"
- data-placeholder="subadmins" title="<?php p($l->t('no group'))?>"
- multiple="multiple">
- <?php foreach($_["subadmingroups"] as $group): ?>
- <option value="<?php p($group);?>"><?php p($group);?></option>
- <?php endforeach;?>
- </select>
- </td>
+ <td class="subadmins"></td>
<?php endif;?>
<td class="quota">
<select class='quota-user' data-inputtitle="<?php p($l->t('Please enter storage quota (ex: "512 MB" or "12 GB")')) ?>">
- <option
- <?php if($user['quota'] === 'default') print_unescaped('selected="selected"');?>
- value='default'>
+ <option value='default'>
<?php p($l->t('Default'));?>
</option>
- <option
- <?php if($user['quota'] === 'none') print_unescaped('selected="selected"');?>
- value='none'>
+ <option value='none'>
<?php p($l->t('Unlimited'));?>
</option>
<?php foreach($_['quota_preset'] as $preset):?>
- <option
- <?php if($user['quota']==$preset) print_unescaped('selected="selected"');?>
- value='<?php p($preset);?>'>
- <?php p($preset);?>
- </option>
+ <option value='<?php p($preset);?>'>
+ <?php p($preset);?>
+ </option>
<?php endforeach;?>
- <?php if($user['isQuotaUserDefined']):?>
- <option selected="selected" value='<?php p($user['quota']);?>'>
- <?php p($user['quota']);?>
- </option>
- <?php endif;?>
<option value='other' data-new>
- <?php p($l->t('Other'));?>
- ...
+ <?php p($l->t('Other'));?> ...
</option>
</select>
</td>
- <td class="storageLocation"><?php p($user["storageLocation"]); ?></td>
- <?php
- if($user["lastLogin"] === 0) {
- $lastLogin = $l->t('never');
- $lastLoginDate = $lastLogin;
- } else {
- $lastLogin = relative_modified_date($user["lastLogin"]);
- $lastLoginDate = \OC_Util::formatDate($user["lastLogin"]);
- }
- ?>
- <td class="lastLogin" title="<?php p('<span class="usersLastLoginTooltip">'.$lastLoginDate.'</span>'); ?>"><?php p($lastLogin); ?></td>
- <td class="remove">
- <?php if($user['name']!=OC_User::getUser()):?>
- <a href="#" class="action delete" original-title="<?php p($l->t('Delete'))?>">
- <img src="<?php print_unescaped(image_path('core', 'actions/delete.svg')) ?>" class="svg" />
- </a>
- <?php endif;?>
- </td>
+ <td class="storageLocation"></td>
+ <td class="userBackend"></td>
+ <td class="lastLogin"></td>
+ <td class="remove"></td>
</tr>
- <?php endforeach; ?>
</tbody>
</table>
diff --git a/settings/users.php b/settings/users.php
index 3da8017b883..75109f9ef74 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -7,17 +7,8 @@
OC_Util::checkSubAdminUser();
-// We have some javascript foo!
-OC_Util::addScript('settings', 'users/deleteHandler');
-OC_Util::addScript('settings', 'users/filter');
-OC_Util::addScript( 'settings', 'users/users' );
-OC_Util::addScript( 'settings', 'users/groups' );
-OC_Util::addScript( 'core', 'multiselect' );
-OC_Util::addScript( 'core', 'singleselect' );
-OC_Util::addStyle( 'settings', 'settings' );
OC_App::setActiveNavigationEntry( 'core_users' );
-$users = array();
$userManager = \OC_User::getManager();
$groupManager = \OC_Group::getManager();
@@ -33,7 +24,6 @@ $recoveryAdminEnabled = OC_App::isEnabled('files_encryption') &&
$config->getAppValue( 'files_encryption', 'recoveryAdminEnabled', null );
if($isAdmin) {
- $accessibleUsers = OC_User::getDisplayNames('', 30);
$subadmins = OC_SubAdmin::getAllSubAdmins();
}else{
/* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */
@@ -43,48 +33,22 @@ if($isAdmin) {
$gids[] = $group['id'];
}
}
- $accessibleUsers = OC_Group::displayNamesInGroups($gids, '', 30);
$subadmins = false;
}
// load preset quotas
-$quotaPreset=OC_Appconfig::getValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB');
+$quotaPreset=$config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB');
$quotaPreset=explode(',', $quotaPreset);
foreach($quotaPreset as &$preset) {
$preset=trim($preset);
}
$quotaPreset=array_diff($quotaPreset, array('default', 'none'));
-$defaultQuota=OC_Appconfig::getValue('files', 'default_quota', 'none');
+$defaultQuota=$config->getAppValue('files', 'default_quota', 'none');
$defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false
&& array_search($defaultQuota, array('none', 'default'))===false;
-// load users and quota
-foreach($accessibleUsers as $uid => $displayName) {
- $quota = $config->getUserValue($uid, 'files', 'quota', 'default');
- $isQuotaUserDefined = array_search($quota, $quotaPreset) === false
- && array_search($quota, array('none', 'default')) === false;
-
- $name = $displayName;
- if ($displayName !== $uid) {
- $name = $name . ' (' . $uid . ')';
- }
-
- $user = $userManager->get($uid);
- $users[] = array(
- "name" => $uid,
- "displayName" => $displayName,
- "groups" => OC_Group::getUserGroups($uid),
- 'quota' => $quota,
- 'isQuotaUserDefined' => $isQuotaUserDefined,
- 'subadmin' => OC_SubAdmin::getSubAdminsGroups($uid),
- 'storageLocation' => $user->getHome(),
- 'lastLogin' => $user->getLastLogin(),
- );
-}
-
$tmpl = new OC_Template("settings", "users/main", "user");
-$tmpl->assign('users', $users);
$tmpl->assign('groups', $groups);
$tmpl->assign('adminGroup', $adminGroup);
$tmpl->assign('isAdmin', (int)$isAdmin);
diff --git a/tests/data/l10n/ru.json b/tests/data/l10n/ru.json
index 177b14a6b20..7041205e761 100644
--- a/tests/data/l10n/ru.json
+++ b/tests/data/l10n/ru.json
@@ -1,6 +1,7 @@
{
"translations" : {
- "_%n file_::_%n files_" : ["%n файл", "%n файла", "%n файлов"]
+ "_%n file_::_%n files_" : ["%n файл", "%n файла", "%n файлов"],
+ "_%n missing plural_::_%n missing plurals_" : ["", "", ""]
},
"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/tests/lib/activitymanager.php b/tests/lib/activitymanager.php
index 0683eb68193..6a5af7b259b 100644
--- a/tests/lib/activitymanager.php
+++ b/tests/lib/activitymanager.php
@@ -59,6 +59,14 @@ class Test_ActivityManager extends \Test\TestCase {
$this->assertFalse($result);
}
+ public function testGetSpecialParameterList() {
+ $result = $this->activityManager->getSpecialParameterList('APP0', '');
+ $this->assertEquals(array(0 => 'file', 1 => 'username'), $result);
+
+ $result = $this->activityManager->getSpecialParameterList('APP1', '');
+ $this->assertFalse($result);
+ }
+
public function testTypeIcon() {
$result = $this->activityManager->getTypeIcon('NT1');
$this->assertEquals('icon-nt-one', $result);
@@ -132,6 +140,14 @@ class SimpleExtension implements \OCP\Activity\IExtension {
return false;
}
+ public function getSpecialParameterList($app, $text) {
+ if ($app === 'APP0') {
+ return array(0 => 'file', 1 => 'username');
+ }
+
+ return false;
+ }
+
public function getTypeIcon($type) {
if ($type === 'NT1') {
return 'icon-nt-one';
@@ -185,6 +201,10 @@ class NoOpExtension implements \OCP\Activity\IExtension {
return false;
}
+ public function getSpecialParameterList($app, $text) {
+ return false;
+ }
+
public function getTypeIcon($type) {
return false;
}
diff --git a/tests/lib/datetimeformatter.php b/tests/lib/datetimeformatter.php
index 4b91c3a1cc7..9a50ee4a257 100644
--- a/tests/lib/datetimeformatter.php
+++ b/tests/lib/datetimeformatter.php
@@ -42,8 +42,7 @@ class DateTimeFormatter extends TestCase {
}
public function formatTimeSpanData() {
- // use the same time all the time, so the tests are reliable when time would switch
- $time = time();
+ $time = 1416916800; // Use a fixed timestamp so we dont switch days/years with the getTimestampAgo
$deL10N = new \OC_L10N('lib', 'de');
return array(
array('seconds ago', $time, $time),
@@ -81,8 +80,7 @@ class DateTimeFormatter extends TestCase {
}
public function formatDateSpanData() {
- // use the same time all the time, so the tests are reliable when time would switch
- $time = time();
+ $time = 1416916800; // Use a fixed timestamp so we dont switch days/years with the getTimestampAgo
$deL10N = new \OC_L10N('lib', 'de');
return array(
// Normal testing
diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php
index 7e44cb898ac..1af8e4da960 100644
--- a/tests/lib/files/cache/cache.php
+++ b/tests/lib/files/cache/cache.php
@@ -270,6 +270,63 @@ class Cache extends \Test\TestCase {
$this->assertEquals(2, count($this->cache->searchByMime('foo/file')));
}
+ function testSearchByTag() {
+ $userId = $this->getUniqueId('user');
+ \OC_User::createUser($userId, $userId);
+ $this->loginAsUser($userId);
+ $user = new \OC\User\User($userId, null);
+
+ $file1 = 'folder';
+ $file2 = 'folder/foobar';
+ $file3 = 'folder/foo';
+ $file4 = 'folder/foo2';
+ $file5 = 'folder/foo3';
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder');
+ $fileData = array();
+ $fileData['foobar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
+ $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file');
+ $fileData['foo2'] = array('size' => 25, 'mtime' => 28, 'mimetype' => 'foo/file');
+ $fileData['foo3'] = array('size' => 88, 'mtime' => 34, 'mimetype' => 'foo/file');
+
+ $id1 = $this->cache->put($file1, $data1);
+ $id2 = $this->cache->put($file2, $fileData['foobar']);
+ $id3 = $this->cache->put($file3, $fileData['foo']);
+ $id4 = $this->cache->put($file4, $fileData['foo2']);
+ $id5 = $this->cache->put($file5, $fileData['foo3']);
+
+ $tagManager = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $this->assertTrue($tagManager->tagAs($id1, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id1, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id2, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id3, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id4, 'tag2'));
+
+ // use tag name
+ $results = $this->cache->searchByTag('tag1', $userId);
+
+ $this->assertEquals(2, count($results));
+
+ $this->assertEquals('folder', $results[0]['name']);
+ $this->assertEquals('foo', $results[1]['name']);
+
+ // use tag id
+ $tags = $tagManager->getTagsForUser($userId);
+ $this->assertNotEmpty($tags);
+ $tags = array_filter($tags, function($tag) { return $tag->getName() === 'tag2'; });
+ $results = $this->cache->searchByTag(current($tags)->getId(), $userId);
+ $this->assertEquals(3, count($results));
+
+ $this->assertEquals('folder', $results[0]['name']);
+ $this->assertEquals('foobar', $results[1]['name']);
+ $this->assertEquals('foo2', $results[2]['name']);
+
+ $tagManager->delete('tag1');
+ $tagManager->delete('tag2');
+
+ $this->logout();
+ \OC_User::deleteUser($userId);
+ }
+
function testMove() {
$file1 = 'folder';
$file2 = 'folder/bar';
diff --git a/tests/lib/files/node/folder.php b/tests/lib/files/node/folder.php
index d8c047a2b75..e69a2776979 100644
--- a/tests/lib/files/node/folder.php
+++ b/tests/lib/files/node/folder.php
@@ -405,6 +405,45 @@ class Folder extends \Test\TestCase {
$this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
}
+ public function testSearchByTag() {
+ $manager = $this->getMock('\OC\Files\Mount\Manager');
+ /**
+ * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view
+ */
+ $view = $this->getMock('\OC\Files\View');
+ $root = $this->getMock('\OC\Files\Node\Root', array(), array($manager, $view, $this->user));
+ $root->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+ $storage = $this->getMock('\OC\Files\Storage\Storage');
+ $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
+
+ $storage->expects($this->once())
+ ->method('getCache')
+ ->will($this->returnValue($cache));
+
+ $cache->expects($this->once())
+ ->method('searchByTag')
+ ->with('tag1', 'user1')
+ ->will($this->returnValue(array(
+ array('fileid' => 3, 'path' => 'foo/qwerty', 'name' => 'qwerty', 'size' => 200, 'mtime' => 55, 'mimetype' => 'text/plain')
+ )));
+
+ $root->expects($this->once())
+ ->method('getMountsIn')
+ ->with('/bar/foo')
+ ->will($this->returnValue(array()));
+
+ $view->expects($this->once())
+ ->method('resolvePath')
+ ->will($this->returnValue(array($storage, 'foo')));
+
+ $node = new \OC\Files\Node\Folder($root, $view, '/bar/foo');
+ $result = $node->searchByTag('tag1', 'user1');
+ $this->assertEquals(1, count($result));
+ $this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
+ }
+
public function testSearchSubStorages() {
$manager = $this->getMock('\OC\Files\Mount\Manager');
/**
diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php
index 68f43b76f51..2235581add8 100644
--- a/tests/lib/l10n.php
+++ b/tests/lib/l10n.php
@@ -42,6 +42,24 @@ class Test_L10n extends \Test\TestCase {
*/
}
+ public function russianMissingPluralTranslationsData() {
+ return array(
+ array(1, '1 missing plural'),
+ array(2, '2 missing plurals'),
+ array(6, '6 missing plurals'),
+ );
+ }
+
+ /**
+ * @dataProvider russianMissingPluralTranslationsData
+ */
+ public function testRussianMissingPluralTranslations($count, $expected) {
+ $l = new OC_L10N('test');
+ $l->load(OC::$SERVERROOT.'/tests/data/l10n/ru.json');
+
+ $this->assertEquals($expected, (string)$l->n('%n missing plural', '%n missing plurals', $count));
+ }
+
public function testCzechPluralTranslations() {
$l = new OC_L10N('test');
$transFile = OC::$SERVERROOT.'/tests/data/l10n/cs.json';
diff --git a/tests/lib/largefilehelpergetfilesize.php b/tests/lib/largefilehelpergetfilesize.php
index c97b7b32b0f..57bc2381966 100644
--- a/tests/lib/largefilehelpergetfilesize.php
+++ b/tests/lib/largefilehelpergetfilesize.php
@@ -13,6 +13,10 @@ namespace Test;
* Large files are not considered yet.
*/
class LargeFileHelperGetFileSize extends TestCase {
+ /** @var string */
+ protected $filename;
+ /** @var int */
+ protected $fileSize;
/** @var \OC\LargeFileHelper */
protected $helper;
@@ -41,6 +45,11 @@ class LargeFileHelperGetFileSize extends TestCase {
'The PHP curl extension is required for this test.'
);
}
+ if (\OC::$server->getIniWrapper()->getString('open_basedir') !== '') {
+ $this->markTestSkipped(
+ 'The PHP curl extension does not work with the file:// protocol when open_basedir is enabled.'
+ );
+ }
$this->assertSame(
$fileSize,
$this->helper->getFileSizeViaCurl($filename)
diff --git a/tests/lib/tags.php b/tests/lib/tags.php
index 78f5085df39..71296d2e346 100644
--- a/tests/lib/tags.php
+++ b/tests/lib/tags.php
@@ -23,7 +23,10 @@
class Test_Tags extends \Test\TestCase {
protected $objectType;
+ /** @var \OC\IUser */
protected $user;
+ /** @var \OC\IUserSession */
+ protected $userSession;
protected $backupGlobals = FALSE;
/** @var \OC\Tagging\TagMapper */
protected $tagMapper;
@@ -35,12 +38,19 @@ class Test_Tags extends \Test\TestCase {
OC_User::clearBackends();
OC_User::useBackend('dummy');
- $this->user = $this->getUniqueID('user_');
+ $userId = $this->getUniqueID('user_');
+ OC_User::createUser($userId, 'pass');
+ OC_User::setUserId($userId);
+ $this->user = new OC\User\User($userId, null);
+ $this->userSession = $this->getMock('\OCP\IUserSession');
+ $this->userSession
+ ->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+
$this->objectType = $this->getUniqueID('type_');
- OC_User::createUser($this->user, 'pass');
- OC_User::setUserId($this->user);
$this->tagMapper = new OC\Tagging\TagMapper(\OC::$server->getDb());
- $this->tagMgr = new OC\TagManager($this->tagMapper, $this->user);
+ $this->tagMgr = new OC\TagManager($this->tagMapper, $this->userSession);
}
@@ -166,7 +176,7 @@ class Test_Tags extends \Test\TestCase {
);
}
- public function testdeleteTags() {
+ public function testDeleteTags() {
$defaultTags = array('Friends', 'Family', 'Work', 'Other');
$tagger = $this->tagMgr->load($this->objectType, $defaultTags);
@@ -177,7 +187,6 @@ class Test_Tags extends \Test\TestCase {
$tagger->delete(array('Friends', 'Work', 'Other'));
$this->assertEquals(0, count($tagger->getTags()));
-
}
public function testRenameTag() {
@@ -233,27 +242,32 @@ class Test_Tags extends \Test\TestCase {
}
public function testShareTags() {
- $test_tag = 'TestTag';
+ $testTag = 'TestTag';
OCP\Share::registerBackend('test', 'Test_Share_Backend');
$tagger = $this->tagMgr->load('test');
- $tagger->tagAs(1, $test_tag);
-
- $other_user = $this->getUniqueID('user2_');
- OC_User::createUser($other_user, 'pass');
-
- OC_User::setUserId($other_user);
- $other_tagMgr = new OC\TagManager($this->tagMapper, $other_user);
- $other_tagger = $other_tagMgr->load('test');
- $this->assertFalse($other_tagger->hasTag($test_tag));
-
- OC_User::setUserId($this->user);
- OCP\Share::shareItem('test', 1, OCP\Share::SHARE_TYPE_USER, $other_user, \OCP\Constants::PERMISSION_READ);
-
- OC_User::setUserId($other_user);
- $other_tagger = $other_tagMgr->load('test', array(), true); // Update tags, load shared ones.
- $this->assertTrue($other_tagger->hasTag($test_tag));
- $this->assertContains(1, $other_tagger->getIdsForTag($test_tag));
+ $tagger->tagAs(1, $testTag);
+
+ $otherUserId = $this->getUniqueID('user2_');
+ OC_User::createUser($otherUserId, 'pass');
+ OC_User::setUserId($otherUserId);
+ $otherUserSession = $this->getMock('\OCP\IUserSession');
+ $otherUserSession
+ ->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue(new OC\User\User($otherUserId, null)));
+
+ $otherTagMgr = new OC\TagManager($this->tagMapper, $otherUserSession);
+ $otherTagger = $otherTagMgr->load('test');
+ $this->assertFalse($otherTagger->hasTag($testTag));
+
+ OC_User::setUserId($this->user->getUID());
+ OCP\Share::shareItem('test', 1, OCP\Share::SHARE_TYPE_USER, $otherUserId, \OCP\Constants::PERMISSION_READ);
+
+ OC_User::setUserId($otherUserId);
+ $otherTagger = $otherTagMgr->load('test', array(), true); // Update tags, load shared ones.
+ $this->assertTrue($otherTagger->hasTag($testTag));
+ $this->assertContains(1, $otherTagger->getIdsForTag($testTag));
}
}
diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php
index 27c28329535..1ea3aa13547 100644
--- a/tests/lib/testcase.php
+++ b/tests/lib/testcase.php
@@ -148,4 +148,25 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
\OC_FileProxy::$enabled = true;
\OC_FileProxy::clearProxies();
}
+
+ /**
+ * Login and setup FS as a given user,
+ * sets the given user as the current user.
+ *
+ * @param string $user user id
+ */
+ static protected function loginAsUser($user) {
+ self::logout();
+ \OC\Files\Filesystem::tearDown();
+ \OC_User::setUserId($user);
+ \OC_Util::setupFS($user);
+ }
+
+ /**
+ * Logout the current user and tear down the filesystem.
+ */
+ static protected function logout() {
+ \OC_Util::tearDownFS();
+ \OC_User::setUserId('');
+ }
}
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
index c825ec05775..9cb9374d89f 100644
--- a/tests/lib/user/manager.php
+++ b/tests/lib/user/manager.php
@@ -10,6 +10,17 @@
namespace Test\User;
class Manager extends \Test\TestCase {
+ public function testGetBackends() {
+ $userDummyBackend = $this->getMock('\OC_User_Dummy');
+ $manager = new \OC\User\Manager();
+ $manager->registerBackend($userDummyBackend);
+ $this->assertEquals([$userDummyBackend], $manager->getBackends());
+ $dummyDatabaseBackend = $this->getMock('\OC_User_Database');
+ $manager->registerBackend($dummyDatabaseBackend);
+ $this->assertEquals([$userDummyBackend, $dummyDatabaseBackend], $manager->getBackends());
+ }
+
+
public function testUserExistsSingleBackendExists() {
/**
* @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php
index eb48babadc8..0ac6d3f0c01 100644
--- a/tests/settings/controller/userscontrollertest.php
+++ b/tests/settings/controller/userscontrollertest.php
@@ -126,9 +126,20 @@ class UsersControllerTest extends \Test\TestCase {
->method('getUserGroupIds')
->will($this->onConsecutiveCalls(array('Users', 'Support'), array('admins', 'Support'), array('External Users')));
$this->container['UserManager']
- ->expects($this->exactly(3))
+ ->expects($this->at(0))
+ ->method('get')
+ ->with('foo')
+ ->will($this->returnValue($foo));
+ $this->container['UserManager']
+ ->expects($this->at(1))
+ ->method('get')
+ ->with('admin')
+ ->will($this->returnValue($admin));
+ $this->container['UserManager']
+ ->expects($this->at(2))
->method('get')
- ->will($this->onConsecutiveCalls($foo, $admin, $bar));
+ ->with('bar')
+ ->will($this->returnValue($bar));
$this->container['Config']
->expects($this->exactly(3))
->method('getUserValue')
@@ -168,7 +179,79 @@ class UsersControllerTest extends \Test\TestCase {
),
)
);
- $response = $this->usersController->index(0, 10, 'pattern');
+ $response = $this->usersController->index(0, 10, 'gid', 'pattern');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testIndexWithBackend() {
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->exactly(3))
+ ->method('getUID')
+ ->will($this->returnValue('foo'));
+ $user
+ ->expects($this->once())
+ ->method('getDisplayName')
+ ->will($this->returnValue('M. Foo'));
+ $user
+ ->method('getLastLogin')
+ ->will($this->returnValue(500));
+ $user
+ ->method('getHome')
+ ->will($this->returnValue('/home/foo'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('OC_User_Database'));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('getBackends')
+ ->will($this->returnValue([new \OC_User_Dummy(), new \OC_User_Database()]));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('clearBackends');
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('registerBackend')
+ ->with(new \OC_User_Dummy());
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('search')
+ ->with('')
+ ->will($this->returnValue([$user]));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 0 => array(
+ 'name' => 'foo',
+ 'displayname' => 'M. Foo',
+ 'groups' => null,
+ 'subadmin' => array(),
+ 'quota' => null,
+ 'storageLocation' => '/home/foo',
+ 'lastLogin' => 500,
+ 'backend' => 'OC_User_Database'
+ )
+ )
+ );
+ $response = $this->usersController->index(0, 10, '','', 'OC_User_Dummy');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testIndexWithBackendNoUser() {
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('getBackends')
+ ->will($this->returnValue([new \OC_User_Dummy(), new \OC_User_Database()]));
+ $this->container['UserManager']
+ ->expects($this->once())
+ ->method('search')
+ ->with('')
+ ->will($this->returnValue([]));
+
+ $expectedResponse = new DataResponse([]);
+ $response = $this->usersController->index(0, 10, '','', 'OC_User_Dummy');
$this->assertEquals($expectedResponse, $response);
}
@@ -182,6 +265,10 @@ class UsersControllerTest extends \Test\TestCase {
$user
->method('getHome')
->will($this->returnValue('/home/user'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('bar'));
$this->container['UserManager']
->expects($this->once())
@@ -193,7 +280,8 @@ class UsersControllerTest extends \Test\TestCase {
array(
'username' => 'foo',
'groups' => null,
- 'storageLocation' => '/home/user'
+ 'storageLocation' => '/home/user',
+ 'backend' => 'bar'
),
Http::STATUS_CREATED
);
@@ -214,6 +302,10 @@ class UsersControllerTest extends \Test\TestCase {
$user
->method('getHome')
->will($this->returnValue('/home/user'));
+ $user
+ ->expects($this->once())
+ ->method('getBackendClassName')
+ ->will($this->returnValue('bar'));
$existingGroup = $this->getMockBuilder('\OCP\IGroup')
->disableOriginalConstructor()->getMock();
$existingGroup
@@ -250,7 +342,8 @@ class UsersControllerTest extends \Test\TestCase {
array(
'username' => 'foo',
'groups' => array('NewGroup', 'ExistingGroup'),
- 'storageLocation' => '/home/user'
+ 'storageLocation' => '/home/user',
+ 'backend' => 'bar'
),
Http::STATUS_CREATED
);