summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/appinfo/app.php2
-rw-r--r--apps/files/appinfo/application.php40
-rw-r--r--apps/files/appinfo/routes.php29
-rw-r--r--apps/files/controller/apicontroller.php56
-rw-r--r--apps/files/css/files.css63
-rw-r--r--apps/files/css/mobile.css2
-rw-r--r--apps/files/index.php19
-rw-r--r--apps/files/js/app.js2
-rw-r--r--apps/files/js/breadcrumb.js2
-rw-r--r--apps/files/js/favoritesfilelist.js99
-rw-r--r--apps/files/js/favoritesplugin.js116
-rw-r--r--apps/files/js/fileactions.js4
-rw-r--r--apps/files/js/filelist.js80
-rw-r--r--apps/files/js/files.js11
-rw-r--r--apps/files/js/tagsplugin.js172
-rw-r--r--apps/files/l10n/ar.js4
-rw-r--r--apps/files/l10n/ar.json4
-rw-r--r--apps/files/l10n/ast.js4
-rw-r--r--apps/files/l10n/ast.json4
-rw-r--r--apps/files/l10n/az.js2
-rw-r--r--apps/files/l10n/az.json2
-rw-r--r--apps/files/l10n/bg_BG.js4
-rw-r--r--apps/files/l10n/bg_BG.json4
-rw-r--r--apps/files/l10n/bn_BD.js4
-rw-r--r--apps/files/l10n/bn_BD.json4
-rw-r--r--apps/files/l10n/bn_IN.js2
-rw-r--r--apps/files/l10n/bn_IN.json2
-rw-r--r--apps/files/l10n/ca.js4
-rw-r--r--apps/files/l10n/ca.json4
-rw-r--r--apps/files/l10n/cs_CZ.js6
-rw-r--r--apps/files/l10n/cs_CZ.json6
-rw-r--r--apps/files/l10n/cy_GB.js2
-rw-r--r--apps/files/l10n/cy_GB.json2
-rw-r--r--apps/files/l10n/da.js5
-rw-r--r--apps/files/l10n/da.json5
-rw-r--r--apps/files/l10n/de.js5
-rw-r--r--apps/files/l10n/de.json5
-rw-r--r--apps/files/l10n/de_DE.js5
-rw-r--r--apps/files/l10n/de_DE.json5
-rw-r--r--apps/files/l10n/el.js4
-rw-r--r--apps/files/l10n/el.json4
-rw-r--r--apps/files/l10n/en_GB.js5
-rw-r--r--apps/files/l10n/en_GB.json5
-rw-r--r--apps/files/l10n/eo.js4
-rw-r--r--apps/files/l10n/eo.json4
-rw-r--r--apps/files/l10n/es.js6
-rw-r--r--apps/files/l10n/es.json6
-rw-r--r--apps/files/l10n/es_AR.js4
-rw-r--r--apps/files/l10n/es_AR.json4
-rw-r--r--apps/files/l10n/es_MX.js4
-rw-r--r--apps/files/l10n/es_MX.json4
-rw-r--r--apps/files/l10n/et_EE.js4
-rw-r--r--apps/files/l10n/et_EE.json4
-rw-r--r--apps/files/l10n/eu.js4
-rw-r--r--apps/files/l10n/eu.json4
-rw-r--r--apps/files/l10n/fa.js3
-rw-r--r--apps/files/l10n/fa.json3
-rw-r--r--apps/files/l10n/fi.js16
-rw-r--r--apps/files/l10n/fi.json14
-rw-r--r--apps/files/l10n/fi_FI.js6
-rw-r--r--apps/files/l10n/fi_FI.json6
-rw-r--r--apps/files/l10n/fr.js9
-rw-r--r--apps/files/l10n/fr.json9
-rw-r--r--apps/files/l10n/gl.js4
-rw-r--r--apps/files/l10n/gl.json4
-rw-r--r--apps/files/l10n/he.js4
-rw-r--r--apps/files/l10n/he.json4
-rw-r--r--apps/files/l10n/hr.js4
-rw-r--r--apps/files/l10n/hr.json4
-rw-r--r--apps/files/l10n/hu_HU.js4
-rw-r--r--apps/files/l10n/hu_HU.json4
-rw-r--r--apps/files/l10n/id.js4
-rw-r--r--apps/files/l10n/id.json4
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/it.js6
-rw-r--r--apps/files/l10n/it.json6
-rw-r--r--apps/files/l10n/ja.js4
-rw-r--r--apps/files/l10n/ja.json4
-rw-r--r--apps/files/l10n/ka_GE.js4
-rw-r--r--apps/files/l10n/ka_GE.json4
-rw-r--r--apps/files/l10n/km.js2
-rw-r--r--apps/files/l10n/km.json2
-rw-r--r--apps/files/l10n/ko.js4
-rw-r--r--apps/files/l10n/ko.json4
-rw-r--r--apps/files/l10n/lb.js3
-rw-r--r--apps/files/l10n/lb.json3
-rw-r--r--apps/files/l10n/lt_LT.js4
-rw-r--r--apps/files/l10n/lt_LT.json4
-rw-r--r--apps/files/l10n/lv.js4
-rw-r--r--apps/files/l10n/lv.json4
-rw-r--r--apps/files/l10n/mk.js3
-rw-r--r--apps/files/l10n/mk.json3
-rw-r--r--apps/files/l10n/ms_MY.js2
-rw-r--r--apps/files/l10n/ms_MY.json2
-rw-r--r--apps/files/l10n/nb_NO.js4
-rw-r--r--apps/files/l10n/nb_NO.json4
-rw-r--r--apps/files/l10n/nl.js5
-rw-r--r--apps/files/l10n/nl.json5
-rw-r--r--apps/files/l10n/nn_NO.js4
-rw-r--r--apps/files/l10n/nn_NO.json4
-rw-r--r--apps/files/l10n/oc.js2
-rw-r--r--apps/files/l10n/oc.json2
-rw-r--r--apps/files/l10n/pa.js2
-rw-r--r--apps/files/l10n/pa.json2
-rw-r--r--apps/files/l10n/pl.js4
-rw-r--r--apps/files/l10n/pl.json4
-rw-r--r--apps/files/l10n/pt_BR.js6
-rw-r--r--apps/files/l10n/pt_BR.json6
-rw-r--r--apps/files/l10n/pt_PT.js4
-rw-r--r--apps/files/l10n/pt_PT.json4
-rw-r--r--apps/files/l10n/ro.js4
-rw-r--r--apps/files/l10n/ro.json4
-rw-r--r--apps/files/l10n/ru.js4
-rw-r--r--apps/files/l10n/ru.json4
-rw-r--r--apps/files/l10n/si_LK.js2
-rw-r--r--apps/files/l10n/si_LK.json2
-rw-r--r--apps/files/l10n/sk_SK.js4
-rw-r--r--apps/files/l10n/sk_SK.json4
-rw-r--r--apps/files/l10n/sl.js5
-rw-r--r--apps/files/l10n/sl.json5
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-rw-r--r--apps/files/l10n/sr.js2
-rw-r--r--apps/files/l10n/sr.json2
-rw-r--r--apps/files/l10n/sr@latin.js2
-rw-r--r--apps/files/l10n/sr@latin.json2
-rw-r--r--apps/files/l10n/sv.js4
-rw-r--r--apps/files/l10n/sv.json4
-rw-r--r--apps/files/l10n/ta_LK.js4
-rw-r--r--apps/files/l10n/ta_LK.json4
-rw-r--r--apps/files/l10n/th_TH.js4
-rw-r--r--apps/files/l10n/th_TH.json4
-rw-r--r--apps/files/l10n/tr.js4
-rw-r--r--apps/files/l10n/tr.json4
-rw-r--r--apps/files/l10n/ug.js4
-rw-r--r--apps/files/l10n/ug.json4
-rw-r--r--apps/files/l10n/uk.js4
-rw-r--r--apps/files/l10n/uk.json4
-rw-r--r--apps/files/l10n/vi.js4
-rw-r--r--apps/files/l10n/vi.json4
-rw-r--r--apps/files/l10n/zh_CN.js4
-rw-r--r--apps/files/l10n/zh_CN.json4
-rw-r--r--apps/files/l10n/zh_HK.js2
-rw-r--r--apps/files/l10n/zh_HK.json2
-rw-r--r--apps/files/l10n/zh_TW.js4
-rw-r--r--apps/files/l10n/zh_TW.json4
-rw-r--r--apps/files/lib/helper.php25
-rw-r--r--apps/files/service/tagservice.php94
-rw-r--r--apps/files/simplelist.php29
-rw-r--r--apps/files/templates/appnavigation.php4
-rw-r--r--apps/files/templates/list.php13
-rw-r--r--apps/files/templates/simplelist.php40
-rw-r--r--apps/files/tests/js/favoritesfilelistspec.js109
-rw-r--r--apps/files/tests/js/favoritespluginspec.js130
-rw-r--r--apps/files/tests/js/filelistSpec.js75
-rw-r--r--apps/files/tests/js/tagspluginspec.js87
-rw-r--r--apps/files/tests/service/tagservice.php121
-rw-r--r--apps/files_encryption/l10n/fr.js6
-rw-r--r--apps/files_encryption/l10n/fr.json6
-rw-r--r--apps/files_external/l10n/fi.js9
-rw-r--r--apps/files_external/l10n/fi.json7
-rw-r--r--apps/files_external/l10n/fr.js2
-rw-r--r--apps/files_external/l10n/fr.json2
-rw-r--r--apps/files_external/l10n/hu_HU.js22
-rw-r--r--apps/files_external/l10n/hu_HU.json22
-rw-r--r--apps/files_external/lib/config.php265
-rw-r--r--apps/files_external/templates/list.php6
-rw-r--r--apps/files_external/tests/backends/amazons3.php (renamed from apps/files_external/tests/amazons3.php)0
-rw-r--r--apps/files_external/tests/backends/dropbox.php (renamed from apps/files_external/tests/dropbox.php)0
-rw-r--r--apps/files_external/tests/backends/ftp.php (renamed from apps/files_external/tests/ftp.php)0
-rw-r--r--apps/files_external/tests/backends/google.php (renamed from apps/files_external/tests/google.php)0
-rw-r--r--apps/files_external/tests/backends/owncloud.php (renamed from apps/files_external/tests/owncloud.php)0
-rw-r--r--apps/files_external/tests/backends/sftp.php (renamed from apps/files_external/tests/sftp.php)0
-rw-r--r--apps/files_external/tests/backends/smb.php (renamed from apps/files_external/tests/smb.php)0
-rw-r--r--apps/files_external/tests/backends/swift.php (renamed from apps/files_external/tests/swift.php)0
-rw-r--r--apps/files_external/tests/backends/webdav.php (renamed from apps/files_external/tests/webdav.php)12
-rwxr-xr-xapps/files_external/tests/env/start-webdav-ownCloud.sh82
-rwxr-xr-xapps/files_external/tests/env/stop-webdav-ownCloud.sh41
-rw-r--r--apps/files_sharing/js/app.js12
-rw-r--r--apps/files_sharing/js/sharedfilelist.js1
-rw-r--r--apps/files_sharing/l10n/cs_CZ.js6
-rw-r--r--apps/files_sharing/l10n/cs_CZ.json6
-rw-r--r--apps/files_sharing/l10n/da.js6
-rw-r--r--apps/files_sharing/l10n/da.json6
-rw-r--r--apps/files_sharing/l10n/de.js6
-rw-r--r--apps/files_sharing/l10n/de.json6
-rw-r--r--apps/files_sharing/l10n/de_DE.js6
-rw-r--r--apps/files_sharing/l10n/de_DE.json6
-rw-r--r--apps/files_sharing/l10n/en_GB.js6
-rw-r--r--apps/files_sharing/l10n/en_GB.json6
-rw-r--r--apps/files_sharing/l10n/es.js4
-rw-r--r--apps/files_sharing/l10n/es.json4
-rw-r--r--apps/files_sharing/l10n/fi.js7
-rw-r--r--apps/files_sharing/l10n/fi.json5
-rw-r--r--apps/files_sharing/l10n/fi_FI.js6
-rw-r--r--apps/files_sharing/l10n/fi_FI.json6
-rw-r--r--apps/files_sharing/l10n/fr.js10
-rw-r--r--apps/files_sharing/l10n/fr.json10
-rw-r--r--apps/files_sharing/l10n/it.js5
-rw-r--r--apps/files_sharing/l10n/it.json5
-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.js6
-rw-r--r--apps/files_sharing/l10n/nl.json6
-rw-r--r--apps/files_sharing/l10n/pt_BR.js6
-rw-r--r--apps/files_sharing/l10n/pt_BR.json6
-rw-r--r--apps/files_sharing/l10n/ru.js3
-rw-r--r--apps/files_sharing/l10n/ru.json3
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js12
-rw-r--r--apps/files_trashbin/l10n/fi.js7
-rw-r--r--apps/files_trashbin/l10n/fi.json5
-rw-r--r--apps/files_trashbin/templates/index.php6
-rw-r--r--apps/user_ldap/l10n/fi.js13
-rw-r--r--apps/user_ldap/l10n/fi.json11
-rw-r--r--apps/user_ldap/l10n/fr.js4
-rw-r--r--apps/user_ldap/l10n/fr.json4
-rw-r--r--apps/user_ldap/settings.php1
-rw-r--r--apps/user_webdavauth/l10n/fi.js6
-rw-r--r--apps/user_webdavauth/l10n/fi.json4
-rw-r--r--apps/user_webdavauth/l10n/fr.js2
-rw-r--r--apps/user_webdavauth/l10n/fr.json2
222 files changed, 2279 insertions, 409 deletions
diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php
index 3567bc26def..62c205add52 100644
--- a/apps/files/appinfo/app.php
+++ b/apps/files/appinfo/app.php
@@ -10,7 +10,7 @@ OCP\App::addNavigationEntry(array("id" => "files_index",
"icon" => OCP\Util::imagePath("core", "places/files.svg"),
"name" => $l->t("Files")));
-\OC::$server->getSearch()->registerProvider('OC\Search\Provider\File');
+\OC::$server->getSearch()->registerProvider('OC\Search\Provider\File', array('apps' => array('files')));
$templateManager = OC_Helper::getFileTemplateManager();
$templateManager->registerTemplate('text/html', 'core/templates/filetemplates/template.html');
diff --git a/apps/files/appinfo/application.php b/apps/files/appinfo/application.php
index 7ca48bab474..13ff60daf89 100644
--- a/apps/files/appinfo/application.php
+++ b/apps/files/appinfo/application.php
@@ -11,6 +11,8 @@ namespace OCA\Files\Appinfo;
use OC\AppFramework\Utility\SimpleContainer;
use OCA\Files\Controller\ApiController;
use OCP\AppFramework\App;
+use \OCA\Files\Service\TagService;
+use \OCP\IContainer;
class Application extends App {
public function __construct(array $urlParams=array()) {
@@ -21,10 +23,44 @@ class Application extends App {
/**
* Controllers
*/
- $container->registerService('APIController', function (SimpleContainer $c) {
+ $container->registerService('APIController', function (IContainer $c) {
return new ApiController(
$c->query('AppName'),
- $c->query('Request')
+ $c->query('Request'),
+ $c->query('TagService')
+ );
+ });
+
+ /**
+ * Core
+ */
+ $container->registerService('L10N', function(IContainer $c) {
+ return $c->query('ServerContainer')->getL10N($c->query('AppName'));
+ });
+
+ /**
+ * Services
+ */
+ $container->registerService('Tagger', function(IContainer $c) {
+ return $c->query('ServerContainer')->getTagManager()->load('files');
+ });
+ $container->registerService('TagService', function(IContainer $c) {
+ $homeFolder = $c->query('ServerContainer')->getUserFolder();
+ return new TagService(
+ $c->query('ServerContainer')->getUserSession(),
+ $c->query('Tagger'),
+ $homeFolder
+ );
+ });
+
+ /**
+ * Controllers
+ */
+ $container->registerService('APIController', function (IContainer $c) {
+ return new ApiController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('TagService')
);
});
}
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php
index 96790a04855..349284ec52d 100644
--- a/apps/files/appinfo/routes.php
+++ b/apps/files/appinfo/routes.php
@@ -9,10 +9,31 @@
namespace OCA\Files\Appinfo;
$application = new Application();
-$application->registerRoutes($this, array('routes' => array(
- array('name' => 'API#getThumbnail', 'url' => '/api/v1/thumbnail/{x}/{y}/{file}', 'verb' => 'GET', 'requirements' => array('file' => '.+')),
-)));
-
+$application->registerRoutes(
+ $this,
+ array(
+ 'routes' => array(
+ array(
+ 'name' => 'API#getThumbnail',
+ 'url' => '/api/v1/thumbnail/{x}/{y}/{file}',
+ 'verb' => 'GET',
+ 'requirements' => array('file' => '.+')
+ ),
+ array(
+ 'name' => 'API#updateFileTags',
+ 'url' => '/api/v1/files/{path}',
+ 'verb' => 'POST',
+ 'requirements' => array('path' => '.+'),
+ ),
+ array(
+ 'name' => 'API#getFilesByTag',
+ 'url' => '/api/v1/tags/{tagName}/files',
+ 'verb' => 'GET',
+ 'requirements' => array('tagName' => '.+'),
+ ),
+ )
+ )
+);
/** @var $this \OC\Route\Router */
diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php
index 89d24a5c47f..902731a0492 100644
--- a/apps/files/controller/apicontroller.php
+++ b/apps/files/controller/apicontroller.php
@@ -12,13 +12,21 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Controller;
use OCP\IRequest;
use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\DownloadResponse;
use OC\Preview;
+use OCA\Files\Service\TagService;
class ApiController extends Controller {
- public function __construct($appName, IRequest $request){
+ /**
+ * @var TagService $tagService
+ */
+ private $tagService;
+
+ public function __construct($appName, IRequest $request, TagService $tagService){
parent::__construct($appName, $request);
+ $this->tagService = $tagService;
}
@@ -49,4 +57,50 @@ class ApiController extends Controller {
}
}
+ /**
+ * Updates the info of the specified file path
+ * The passed tags are absolute, which means they will
+ * replace the actual tag selection.
+ *
+ * @NoAdminRequired
+ * @CORS
+ *
+ * @param string $path path
+ * @param array $tags array of tags
+ */
+ public function updateFileTags($path, $tags = null) {
+ $result = array();
+ // if tags specified or empty array, update tags
+ if (!is_null($tags)) {
+ try {
+ $this->tagService->updateFileTags($path, $tags);
+ } catch (\OCP\Files\NotFoundException $e) {
+ return new DataResponse($e->getMessage(), Http::STATUS_NOT_FOUND);
+ }
+ $result['tags'] = $tags;
+ }
+ return new DataResponse($result, Http::STATUS_OK);
+ }
+
+ /**
+ * Returns a list of all files tagged with the given tag.
+ *
+ * @NoAdminRequired
+ * @CORS
+ *
+ * @param array $tagName tag name to filter by
+ */
+ public function getFilesByTag($tagName) {
+ $files = array();
+ $fileInfos = $this->tagService->getFilesByTag($tagName);
+ foreach ($fileInfos as &$fileInfo) {
+ $file = \OCA\Files\Helper::formatFileInfo($fileInfo);
+ $parts = explode('/', dirname($fileInfo->getPath()), 4);
+ $file['path'] = '/' . $parts[3];
+ $file['tags'] = array($tagName);
+ $files[] = $file;
+ }
+ return new DataResponse(array('files' => $files), Http::STATUS_OK);
+ }
+
}
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 60afcf9b579..3829759a14e 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -191,10 +191,15 @@ table th#headerName {
width: 9999px; /* not really sure why this works better than 100% … table styling */
padding: 0;
}
+
#headerName-container {
position: relative;
height: 50px;
}
+.has-favorites #headerName-container {
+ padding-left: 50px;
+}
+
table th#headerSize, table td.filesize {
text-align: right;
}
@@ -244,6 +249,15 @@ table td.filename a.name {
line-height: 50px;
padding: 0;
}
+table td.filename .thumbnail {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+ margin-left: 8px;
+ margin-top: 9px;
+ cursor: pointer;
+ float: left;
+}
table td.filename input.filename {
width: 70%;
margin-top: 1px;
@@ -277,6 +291,10 @@ table td.filename .nametext {
max-width: 800px;
height: 100%;
}
+.has-favorites #fileList td.filename a.name {
+ left: 50px;
+ margin-right: 50px;
+}
table td.filename .nametext .innernametext {
text-overflow: ellipsis;
@@ -348,7 +366,7 @@ table td.filename .uploadtext {
}
/* File checkboxes */
-#fileList tr td.filename>input[type="checkbox"]:first-child {
+#fileList tr td.filename>.selectCheckBox {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
@@ -357,36 +375,33 @@ table td.filename .uploadtext {
margin: 32px 0 4px 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/
}
/* Show checkbox when hovering, checked, or selected */
-#fileList tr:hover td.filename>input[type="checkbox"]:first-child,
-#fileList tr:focus td.filename>input[type="checkbox"]:first-child,
-#fileList tr td.filename>input[type="checkbox"]:checked:first-child,
-#fileList tr.selected td.filename>input[type="checkbox"]:first-child {
+#fileList tr:hover td.filename>.selectCheckBox,
+#fileList tr:focus td.filename>.selectCheckBox,
+#fileList tr td.filename>.selectCheckBox:checked,
+#fileList tr.selected td.filename>.selectCheckBox {
opacity: 1;
}
-.lte9 #fileList tr:hover td.filename>input[type="checkbox"]:first-child,
-.lte9 #fileList tr:focus td.filename>input[type="checkbox"]:first-child,
-.lte9 #fileList tr td.filename>input[type="checkbox"][checked=checked]:first-child,
-.lte9 #fileList tr.selected td.filename>input[type="checkbox"]:first-child {
+.lte9 #fileList tr:hover td.filename>.selectCheckBox,
+.lte9 #fileList tr:focus td.filename>.selectCheckBox,
+.lte9 #fileList tr td.filename>.selectCheckBox[checked=checked],
+.lte9 #fileList tr.selected td.filename>.selectCheckBox {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
}
/* Use label to have bigger clickable size for checkbox */
-#fileList tr td.filename>input[type="checkbox"] + label,
+#fileList tr td.filename>.selectCheckBox + label,
.select-all + label {
height: 50px;
position: absolute;
width: 50px;
z-index: 5;
}
-#fileList tr td.filename>input[type="checkbox"]{
+#fileList tr td.filename>.selectCheckBox {
/* sometimes checkbox height is bigger (KDE/Qt), so setting to absolute
* to prevent it to increase the height */
position: absolute;
-}
-#fileList tr td.filename>input[type="checkbox"] + label {
- left: 0;
- top: 0;
+ z-index: 10;
}
.select-all + label {
top: 0;
@@ -395,6 +410,10 @@ table td.filename .uploadtext {
position: absolute;
top: 18px;
left: 18px;
+ z-index: 10;
+}
+.has-favorites .select-all {
+ left: 68px;
}
#fileList tr td.filename {
@@ -410,6 +429,18 @@ table td.filename .uploadtext {
height: 50px;
}
+#fileList tr td.filename .favorite {
+ display: inline-block;
+ float: left;
+}
+#fileList tr td.filename .action-favorite {
+ display: block;
+ float: left;
+ width: 30px;
+ line-height: 100%;
+ text-align: center;
+}
+
#uploadsize-message,#delete-confirm { display:none; }
/* File actions */
@@ -435,7 +466,7 @@ table td.filename .uploadtext {
padding: 17px 14px;
}
-#fileList .action.action-share-notification span, #fileList a {
+#fileList .action.action-share-notification span, #fileList a.name {
cursor: default !important;
}
diff --git a/apps/files/css/mobile.css b/apps/files/css/mobile.css
index 780b7ac8443..4881f7c70e4 100644
--- a/apps/files/css/mobile.css
+++ b/apps/files/css/mobile.css
@@ -24,7 +24,7 @@ table td {
}
/* and accordingly fix left margin of file list summary on mobile */
.summary .info {
- margin-left: 55px;
+ margin-left: 105px;
}
/* remove shift for multiselect bar to account for missing navigation */
diff --git a/apps/files/index.php b/apps/files/index.php
index 929bc5e79da..64b49c3bf1f 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -20,6 +20,7 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
+use OCA\Files\Appinfo\Application;
// Check if we are a user
OCP\User::checkLoggedIn();
@@ -38,8 +39,16 @@ OCP\Util::addscript('files', 'filesummary');
OCP\Util::addscript('files', 'breadcrumb');
OCP\Util::addscript('files', 'filelist');
+\OCP\Util::addScript('files', 'favoritesfilelist');
+\OCP\Util::addScript('files', 'tagsplugin');
+\OCP\Util::addScript('files', 'favoritesplugin');
+
+\OC_Util::addVendorScript('core', 'handlebars/handlebars');
+
OCP\App::setActiveNavigationEntry('files_index');
+$l = \OC::$server->getL10N('files');
+
$isIE8 = false;
preg_match('/MSIE (.*?);/', $_SERVER['HTTP_USER_AGENT'], $matches);
if (count($matches) > 0 && $matches[1] <= 9) {
@@ -79,6 +88,16 @@ function sortNavigationItems($item1, $item2) {
return $item1['order'] - $item2['order'];
}
+\OCA\Files\App::getNavigationManager()->add(
+ array(
+ 'id' => 'favorites',
+ 'appname' => 'files',
+ 'script' => 'simplelist.php',
+ 'order' => 5,
+ 'name' => $l->t('Favorites')
+ )
+);
+
$navItems = \OCA\Files\App::getNavigationManager()->getAll();
usort($navItems, 'sortNavigationItems');
$nav->assign('navigationItems', $navItems);
diff --git a/apps/files/js/app.js b/apps/files/js/app.js
index ee5330485e7..adb1893bb0e 100644
--- a/apps/files/js/app.js
+++ b/apps/files/js/app.js
@@ -80,6 +80,8 @@
// refer to the one of the "files" view
window.FileList = this.fileList;
+ OC.Plugins.attach('OCA.Files.App', this);
+
this._setupEvents();
// trigger URL change event handlers
this._onPopState(urlParams);
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index af4e48c8f8c..5cea2639c7d 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -106,6 +106,7 @@
if (part.img) {
$image = $('<img class="svg"></img>');
$image.attr('src', part.img);
+ $image.attr('alt', part.alt);
$link.append($image);
}
this.breadcrumbs.push($crumb);
@@ -151,6 +152,7 @@
crumbs.push({
dir: '/',
name: '',
+ alt: t('files', 'Home'),
img: OC.imagePath('core', 'places/home.svg')
});
for (var i = 0; i < parts.length; i++) {
diff --git a/apps/files/js/favoritesfilelist.js b/apps/files/js/favoritesfilelist.js
new file mode 100644
index 00000000000..0d555ce609d
--- /dev/null
+++ b/apps/files/js/favoritesfilelist.js
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+// HACK: this piece needs to be loaded AFTER the files app (for unit tests)
+$(document).ready(function() {
+ (function(OCA) {
+ /**
+ * @class OCA.Files.FavoritesFileList
+ * @augments OCA.Files.FavoritesFileList
+ *
+ * @classdesc Favorites file list.
+ * Displays the list of files marked as favorites
+ *
+ * @param $el container element with existing markup for the #controls
+ * and a table
+ * @param [options] map of options, see other parameters
+ */
+ var FavoritesFileList = function($el, options) {
+ this.initialize($el, options);
+ };
+ FavoritesFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,
+ /** @lends OCA.Files.FavoritesFileList.prototype */ {
+ id: 'favorites',
+ appName: 'Favorites',
+
+ _clientSideSort: true,
+ _allowSelection: false,
+
+ /**
+ * @private
+ */
+ initialize: function($el, options) {
+ OCA.Files.FileList.prototype.initialize.apply(this, arguments);
+ if (this.initialized) {
+ return;
+ }
+ OC.Plugins.attach('OCA.Files.FavoritesFileList', this);
+ },
+
+ updateEmptyContent: function() {
+ var dir = this.getCurrentDirectory();
+ if (dir === '/') {
+ // root has special permissions
+ this.$el.find('#emptycontent').toggleClass('hidden', !this.isEmpty);
+ this.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty);
+ }
+ else {
+ OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);
+ }
+ },
+
+ getDirectoryPermissions: function() {
+ return OC.PERMISSION_READ | OC.PERMISSION_DELETE;
+ },
+
+ updateStorageStatistics: function() {
+ // no op because it doesn't have
+ // storage info like free space / used space
+ },
+
+ reload: function() {
+ var tagName = OC.TAG_FAVORITE;
+ this.showMask();
+ if (this._reloadCall) {
+ this._reloadCall.abort();
+ }
+ this._reloadCall = $.ajax({
+ url: OC.generateUrl('/apps/files/api/v1/tags/{tagName}/files', {tagName: tagName}),
+ type: 'GET',
+ dataType: 'json'
+ });
+ var callBack = this.reloadCallback.bind(this);
+ return this._reloadCall.then(callBack, callBack);
+ },
+
+ reloadCallback: function(result) {
+ delete this._reloadCall;
+ this.hideMask();
+
+ if (result.files) {
+ this.setFiles(result.files.sort(this._sortComparator));
+ }
+ else {
+ // TODO: error handling
+ }
+ }
+ });
+
+ OCA.Files.FavoritesFileList = FavoritesFileList;
+ })(OCA);
+});
+
diff --git a/apps/files/js/favoritesplugin.js b/apps/files/js/favoritesplugin.js
new file mode 100644
index 00000000000..417a32ef804
--- /dev/null
+++ b/apps/files/js/favoritesplugin.js
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+(function(OCA) {
+ /**
+ * @namespace OCA.Files.FavoritesPlugin
+ *
+ * Registers the favorites file list from the files app sidebar.
+ */
+ OCA.Files.FavoritesPlugin = {
+ name: 'Favorites',
+
+ /**
+ * @type OCA.Files.FavoritesFileList
+ */
+ favoritesFileList: null,
+
+ attach: function() {
+ var self = this;
+ $('#app-content-favorites').on('show.plugin-favorites', function(e) {
+ self.showFileList($(e.target));
+ });
+ $('#app-content-favorites').on('hide.plugin-favorites', function() {
+ self.hideFileList();
+ });
+ },
+
+ detach: function() {
+ if (this.favoritesFileList) {
+ this.favoritesFileList.destroy();
+ OCA.Files.fileActions.off('setDefault.plugin-favorites', this._onActionsUpdated);
+ OCA.Files.fileActions.off('registerAction.plugin-favorites', this._onActionsUpdated);
+ $('#app-content-favorites').off('.plugin-favorites');
+ this.favoritesFileList = null;
+ }
+ },
+
+ showFileList: function($el) {
+ if (!this.favoritesFileList) {
+ this.favoritesFileList = this._createFavoritesFileList($el);
+ }
+ return this.favoritesFileList;
+ },
+
+ hideFileList: function() {
+ if (this.favoritesFileList) {
+ this.favoritesFileList.$fileList.empty();
+ }
+ },
+
+ /**
+ * Creates the favorites file list.
+ *
+ * @param $el container for the file list
+ * @return {OCA.Files.FavoritesFileList} file list
+ */
+ _createFavoritesFileList: function($el) {
+ var fileActions = this._createFileActions();
+ // register favorite list for sidebar section
+ return new OCA.Files.FavoritesFileList(
+ $el, {
+ fileActions: fileActions,
+ scrollContainer: $('#app-content')
+ }
+ );
+ },
+
+ _createFileActions: function() {
+ // inherit file actions from the files app
+ var fileActions = new OCA.Files.FileActions();
+ // note: not merging the legacy actions because legacy apps are not
+ // compatible with the sharing overview and need to be adapted first
+ fileActions.registerDefaultActions();
+ fileActions.merge(OCA.Files.fileActions);
+
+ if (!this._globalActionsInitialized) {
+ // in case actions are registered later
+ this._onActionsUpdated = _.bind(this._onActionsUpdated, this);
+ OCA.Files.fileActions.on('setDefault.plugin-favorites', this._onActionsUpdated);
+ OCA.Files.fileActions.on('registerAction.plugin-favorites', this._onActionsUpdated);
+ this._globalActionsInitialized = true;
+ }
+
+ // when the user clicks on a folder, redirect to the corresponding
+ // folder in the files app instead of opening it directly
+ fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
+ OCA.Files.App.setActiveView('files', {silent: true});
+ OCA.Files.App.fileList.changeDirectory(context.$file.attr('data-path') + '/' + filename, true, true);
+ });
+ fileActions.setDefault('dir', 'Open');
+ return fileActions;
+ },
+
+ _onActionsUpdated: function(ev) {
+ if (ev.action) {
+ this.favoritesFileList.fileActions.registerAction(ev.action);
+ } else if (ev.defaultAction) {
+ this.favoritesFileList.fileActions.setDefault(
+ ev.defaultAction.mime,
+ ev.defaultAction.name
+ );
+ }
+ }
+ };
+
+})(OCA);
+
+OC.Plugins.register('OCA.Files.App', OCA.Files.FavoritesPlugin);
+
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index da48cf29be0..875857745b8 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -289,7 +289,9 @@
}
var $actionLink = $('<a href="#" original-title="' +
escapeHTML(deleteTitle) +
- '" class="action delete icon-delete" />'
+ '" class="action delete icon-delete">' +
+ '<span class="hidden-visually">' + escapeHTML(deleteTitle) + '</span>' +
+ '</a>'
);
var $container = context.$file.find('td:last');
$container.find('.delete').remove();
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 7abbf2c80b2..09cb3d3287d 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -94,6 +94,12 @@
fileActions: null,
/**
+ * Whether selection is allowed, checkboxes and selection overlay will
+ * be rendered
+ */
+ _allowSelection: true,
+
+ /**
* Map of file id to file data
* @type Object.<int, Object>
*/
@@ -203,7 +209,7 @@
this.$el.on('show', this._onResize);
this.$fileList.on('click','td.filename>a.name', _.bind(this._onClickFile, this));
- this.$fileList.on('change', 'td.filename>input:checkbox', _.bind(this._onClickFileCheckbox, this));
+ this.$fileList.on('change', 'td.filename>.selectCheckBox', _.bind(this._onClickFileCheckbox, this));
this.$el.on('urlChanged', _.bind(this._onUrlChanged, this));
this.$el.find('.select-all').click(_.bind(this._onClickSelectAll, this));
this.$el.find('.download').click(_.bind(this._onClickDownloadSelected, this));
@@ -281,7 +287,7 @@
* @param state true to select, false to deselect
*/
_selectFileEl: function($tr, state) {
- var $checkbox = $tr.find('td.filename>input:checkbox');
+ var $checkbox = $tr.find('td.filename>.selectCheckBox');
var oldData = !!this._selectedFiles[$tr.data('id')];
var data;
$checkbox.prop('checked', state);
@@ -330,7 +336,7 @@
else {
this._lastChecked = $tr;
}
- var $checkbox = $tr.find('td.filename>input:checkbox');
+ var $checkbox = $tr.find('td.filename>.selectCheckBox');
this._selectFileEl($tr, !$checkbox.prop('checked'));
this.updateSelectionSummary();
} else {
@@ -372,7 +378,7 @@
*/
_onClickSelectAll: function(e) {
var checked = $(e.target).prop('checked');
- this.$fileList.find('td.filename>input:checkbox').prop('checked', checked)
+ this.$fileList.find('td.filename>.selectCheckBox').prop('checked', checked)
.closest('tr').toggleClass('selected', checked);
this._selectedFiles = {};
this._selectionSummary.clear();
@@ -560,7 +566,7 @@
this.$fileList.append(tr);
if (isAllSelected || this._selectedFiles[fileData.id]) {
tr.addClass('selected');
- tr.find('input:checkbox').prop('checked', true);
+ tr.find('.selectCheckBox').prop('checked', true);
}
if (animate) {
tr.addClass('appear transparent');
@@ -643,12 +649,16 @@
icon = OC.Util.replaceSVGIcon(fileData.icon),
name = fileData.name,
type = fileData.type || 'file',
- mtime = parseInt(fileData.mtime, 10) || new Date().getTime(),
+ mtime = parseInt(fileData.mtime, 10),
mime = fileData.mimetype,
path = fileData.path,
linkUrl;
options = options || {};
+ if (isNaN(mtime)) {
+ mtime = new Date().getTime()
+ }
+
if (type === 'dir') {
mime = mime || 'httpd/unix-directory';
}
@@ -685,10 +695,8 @@
}
// filename td
- td = $('<td></td>').attr({
- "class": "filename",
- "style": 'background-image:url(' + icon + '); background-size: 32px;'
- });
+ td = $('<td class="filename"></td>');
+
// linkUrl
if (type === 'dir') {
@@ -697,8 +705,17 @@
else {
linkUrl = this.getDownloadUrl(name, path);
}
- td.append('<input id="select-' + this.id + '-' + fileData.id +
- '" type="checkbox" /><label for="select-' + this.id + '-' + fileData.id + '"></label>');
+ if (this._allowSelection) {
+ td.append(
+ '<input id="select-' + this.id + '-' + fileData.id +
+ '" type="checkbox" class="selectCheckBox"/><label for="select-' + this.id + '-' + fileData.id + '">' +
+ '<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>' +
+ '<span class="hidden-visually">' + t('files', 'Select') + '</span>' +
+ '</label>'
+ );
+ } else {
+ td.append('<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>');
+ }
var linkElem = $('<a></a>').attr({
"class": "name",
"href": linkUrl
@@ -759,12 +776,21 @@
if (modifiedColor >= '160') {
modifiedColor = 160;
}
+ var formatted;
+ var text;
+ if (mtime > 0) {
+ formatted = formatDate(mtime);
+ text = OC.Util.relativeModifiedDate(mtime);
+ } else {
+ formatted = t('files', 'Unable to determine date');
+ text = '?';
+ }
td = $('<td></td>').attr({ "class": "date" });
td.append($('<span></span>').attr({
"class": "modified",
- "title": formatDate(mtime),
+ "title": formatted,
"style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')'
- }).text(OC.Util.relativeModifiedDate(mtime)));
+ }).text(text));
tr.find('.filesize').text(simpleSize);
tr.append(td);
return tr;
@@ -894,6 +920,7 @@
this.fileActions.display(filenameTd, !options.silent, this);
if (fileData.isPreviewAvailable) {
+ var iconDiv = filenameTd.find('.thumbnail');
// lazy load / newly inserted td ?
if (options.animate) {
this.lazyLoadPreview({
@@ -901,7 +928,7 @@
mime: mime,
etag: fileData.etag,
callback: function(url) {
- filenameTd.css('background-image', 'url(' + url + ')');
+ iconDiv.css('background-image', 'url(' + url + ')');
}
});
}
@@ -913,7 +940,7 @@
};
var previewUrl = this.generatePreviewUrl(urlSpec);
previewUrl = previewUrl.replace('(', '%28').replace(')', '%29');
- filenameTd.css('background-image', 'url(' + previewUrl + ')');
+ iconDiv.css('background-image', 'url(' + previewUrl + ')');
}
}
return tr;
@@ -1281,9 +1308,9 @@
}
_.each(fileNames, function(fileName) {
var $tr = self.findFileEl(fileName);
- var $td = $tr.children('td.filename');
- var oldBackgroundImage = $td.css('background-image');
- $td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
+ var $thumbEl = $tr.find('.thumbnail');
+ var oldBackgroundImage = $thumbEl.css('background-image');
+ $thumbEl.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
// TODO: improve performance by sending all file names in a single call
$.post(
OC.filePath('files', 'ajax', 'move.php'),
@@ -1325,7 +1352,7 @@
} else {
OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error'));
}
- $td.css('background-image', oldBackgroundImage);
+ $thumbEl.css('background-image', oldBackgroundImage);
}
);
});
@@ -1386,13 +1413,14 @@
try {
var newName = input.val();
+ var $thumbEl = tr.find('.thumbnail');
input.tipsy('hide');
form.remove();
if (newName !== oldname) {
checkInput();
// mark as loading (temp element)
- td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
+ $thumbEl.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
tr.attr('data-file', newName);
var basename = newName;
if (newName.indexOf('.') > 0 && tr.data('type') !== 'dir') {
@@ -1519,7 +1547,7 @@
var fileEl = self.remove(file, {updateSummary: false});
// FIXME: not sure why we need this after the
// element isn't even in the DOM any more
- fileEl.find('input[type="checkbox"]').prop('checked', false);
+ fileEl.find('.selectCheckBox').prop('checked', false);
fileEl.removeClass('selected');
self.fileSummary.remove({type: fileEl.attr('data-type'), size: fileEl.attr('data-size')});
});
@@ -1815,7 +1843,7 @@
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 1) {
var img = OC.imagePath('core', 'loading.gif');
- data.context.find('td.filename').attr('style','background-image:url('+img+')');
+ data.context.find('.thumbnail').css('background-image', 'url(' + img + ')');
uploadText.text(translatedText);
uploadText.show();
} else {
@@ -1854,7 +1882,7 @@
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 0) {
var img = OC.imagePath('core', 'filetypes/folder');
- data.context.find('td.filename').attr('style','background-image:url('+img+')');
+ data.context.find('.thumbnail').css('background-image', 'url(' + img + ')');
uploadText.text(translatedText);
uploadText.hide();
} else {
@@ -1939,7 +1967,7 @@
//cleanup uploading to a dir
var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
- uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
+ uploadText.parents('td.filename').find('.thumbnail').css('background-image', 'url(' + img + ')');
uploadText.fadeOut();
uploadText.attr('currentUploads', 0);
}
@@ -1953,7 +1981,7 @@
//cleanup uploading to a dir
var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
- uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
+ uploadText.parents('td.filename').find('.thumbnail').css('background-image', 'url(' + img + ')');
uploadText.fadeOut();
uploadText.attr('currentUploads', 0);
}
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index b11ef03eab2..314b8bf39c6 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -369,19 +369,22 @@ var createDragShadow = function(event) {
var dir = FileList.getCurrentDirectory();
$(selectedFiles).each(function(i,elem) {
+ // TODO: refactor this with the table row creation code
var newtr = $('<tr/>')
.attr('data-dir', dir)
.attr('data-file', elem.name)
.attr('data-origin', elem.origin);
- newtr.append($('<td/>').addClass('filename').text(elem.name));
- newtr.append($('<td/>').addClass('size').text(OC.Util.humanFileSize(elem.size)));
+ newtr.append($('<td class="filename" />').text(elem.name).css('background-size', 32));
+ newtr.append($('<td class="size" />').text(OC.Util.humanFileSize(elem.size)));
tbody.append(newtr);
if (elem.type === 'dir') {
- newtr.find('td.filename').attr('style','background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')');
+ newtr.find('td.filename')
+ .css('background-image', 'url(' + OC.imagePath('core', 'filetypes/folder.png') + ')');
} else {
var path = dir + '/' + elem.name;
OCA.Files.App.files.lazyLoadPreview(path, elem.mime, function(previewpath) {
- newtr.find('td.filename').attr('style','background-image:url('+previewpath+')');
+ newtr.find('td.filename')
+ .css('background-image', 'url(' + previewpath + ')');
}, null, null, elem.etag);
}
});
diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js
new file mode 100644
index 00000000000..a6757431ffa
--- /dev/null
+++ b/apps/files/js/tagsplugin.js
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+/* global Handlebars */
+
+(function(OCA) {
+
+ var TEMPLATE_FAVORITE_ACTION =
+ '<a href="#" ' +
+ 'class="action action-favorite {{#isFavorite}}permanent{{/isFavorite}}">' +
+ '<img class="svg" alt="{{altText}}" src="{{imgFile}}" />' +
+ '</a>';
+
+ /**
+ * Returns the path to the star image
+ *
+ * @param {boolean} state true if starred, false otherwise
+ * @return {string} path to star image
+ */
+ function getStarImage(state) {
+ return OC.imagePath('core', state ? 'actions/starred' : 'actions/star');
+ }
+
+ /**
+ * Render the star icon with the given state
+ *
+ * @param {boolean} state true if starred, false otherwise
+ * @return {Object} jQuery object
+ */
+ function renderStar(state) {
+ if (!this._template) {
+ this._template = Handlebars.compile(TEMPLATE_FAVORITE_ACTION);
+ }
+ return this._template({
+ isFavorite: state,
+ altText: state ? t('core', 'Favorited') : t('core', 'Favorite'),
+ imgFile: getStarImage(state)
+ });
+ }
+
+ /**
+ * Toggle star icon on action element
+ *
+ * @param {Object} action element
+ * @param {boolean} state true if starred, false otherwise
+ */
+ function toggleStar($actionEl, state) {
+ $actionEl.find('img').attr('src', getStarImage(state));
+ $actionEl.toggleClass('permanent', state);
+ }
+
+ OCA.Files = OCA.Files || {};
+
+ /**
+ * @namespace OCA.Files.TagsPlugin
+ *
+ * Extends the file actions and file list to include a favorite action icon
+ * and addition "data-tags" and "data-favorite" attributes.
+ */
+ OCA.Files.TagsPlugin = {
+ name: 'Tags',
+
+ allowedLists: [
+ 'files',
+ 'favorites'
+ ],
+
+ _extendFileActions: function(fileActions) {
+ var self = this;
+ // register "star" action
+ fileActions.registerAction({
+ name: 'favorite',
+ displayName: 'Favorite',
+ mime: 'all',
+ permissions: OC.PERMISSION_READ,
+ render: function(actionSpec, isDefault, context) {
+ var $file = context.$file;
+ var isFavorite = $file.data('favorite') === true;
+ var $icon = $(renderStar(isFavorite));
+ $file.find('td:first>.favorite').replaceWith($icon);
+ return $icon;
+ },
+ actionHandler: function(fileName, context) {
+ var $actionEl = context.$file.find('.action-favorite');
+ var $file = context.$file;
+ var dir = context.dir || context.fileList.getCurrentDirectory();
+ var tags = $file.attr('data-tags');
+ if (_.isUndefined(tags)) {
+ tags = '';
+ }
+ tags = tags.split('|');
+ tags = _.without(tags, '');
+ var isFavorite = tags.indexOf(OC.TAG_FAVORITE) >= 0;
+ if (isFavorite) {
+ // remove tag from list
+ tags = _.without(tags, OC.TAG_FAVORITE);
+ } else {
+ tags.push(OC.TAG_FAVORITE);
+ }
+ toggleStar($actionEl, !isFavorite);
+
+ self.applyFileTags(
+ dir + '/' + fileName,
+ tags
+ ).then(function(result) {
+ // read latest state from result
+ toggleStar($actionEl, (result.tags.indexOf(OC.TAG_FAVORITE) >= 0));
+ $file.attr('data-tags', tags.join('|'));
+ $file.attr('data-favorite', !isFavorite);
+ });
+ }
+ });
+ },
+
+ _extendFileList: function(fileList) {
+ // extend row prototype
+ fileList.$el.addClass('has-favorites');
+ var oldCreateRow = fileList._createRow;
+ fileList._createRow = function(fileData) {
+ var $tr = oldCreateRow.apply(this, arguments);
+ if (fileData.tags) {
+ $tr.attr('data-tags', fileData.tags.join('|'));
+ if (fileData.tags.indexOf(OC.TAG_FAVORITE) >= 0) {
+ $tr.attr('data-favorite', true);
+ }
+ }
+ $tr.find('td:first').prepend('<div class="favorite"></div>');
+ return $tr;
+ };
+ },
+
+ attach: function(fileList) {
+ if (this.allowedLists.indexOf(fileList.id) < 0) {
+ return;
+ }
+ this._extendFileActions(fileList.fileActions);
+ this._extendFileList(fileList);
+ },
+
+ /**
+ * Replaces the given files' tags with the specified ones.
+ *
+ * @param {String} fileName path to the file or folder to tag
+ * @param {Array.<String>} tagNames array of tag names
+ */
+ applyFileTags: function(fileName, tagNames) {
+ var encodedPath = OC.encodePath(fileName);
+ while (encodedPath[0] === '/') {
+ encodedPath = encodedPath.substr(1);
+ }
+ return $.ajax({
+ url: OC.generateUrl('/apps/files/api/v1/files/') + encodedPath,
+ contentType: 'application/json',
+ data: JSON.stringify({
+ tags: tagNames || []
+ }),
+ dataType: 'json',
+ type: 'POST'
+ });
+ }
+ };
+})(OCA);
+
+OC.Plugins.register('OCA.Files.FileList', OCA.Files.TagsPlugin);
+
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index 459a2bb2065..5c11c5f0404 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -21,14 +21,15 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.",
"Invalid directory." : "مسار غير صحيح.",
"Files" : "الملفات",
+ "Favorites" : "المفضلة ",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت",
"Upload cancelled." : "تم إلغاء عملية رفع الملفات .",
"Could not get result from server." : "تعذر الحصول على نتيجة من الخادم",
"File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.",
"{new_name} already exists" : "{new_name} موجود مسبقا",
+ "Rename" : "إعادة تسميه",
"Delete" : "إلغاء",
"Unshare" : "إلغاء المشاركة",
- "Rename" : "إعادة تسميه",
"Pending" : "قيد الانتظار",
"Error moving file" : "حدث خطأ أثناء نقل الملف",
"Error" : "خطأ",
@@ -44,6 +45,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.",
"{dirs} and {files}" : "{dirs} و {files}",
+ "Favorite" : "المفضلة",
"%s could not be renamed" : "%s لا يمكن إعادة تسميته. ",
"File handling" : "التعامل مع الملف",
"Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها",
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 068be992a3f..6ace8291ffa 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -19,14 +19,15 @@
"Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.",
"Invalid directory." : "مسار غير صحيح.",
"Files" : "الملفات",
+ "Favorites" : "المفضلة ",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت",
"Upload cancelled." : "تم إلغاء عملية رفع الملفات .",
"Could not get result from server." : "تعذر الحصول على نتيجة من الخادم",
"File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.",
"{new_name} already exists" : "{new_name} موجود مسبقا",
+ "Rename" : "إعادة تسميه",
"Delete" : "إلغاء",
"Unshare" : "إلغاء المشاركة",
- "Rename" : "إعادة تسميه",
"Pending" : "قيد الانتظار",
"Error moving file" : "حدث خطأ أثناء نقل الملف",
"Error" : "خطأ",
@@ -42,6 +43,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.",
"{dirs} and {files}" : "{dirs} و {files}",
+ "Favorite" : "المفضلة",
"%s could not be renamed" : "%s لا يمكن إعادة تسميته. ",
"File handling" : "التعامل مع الملف",
"Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها",
diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js
index e7f733d4fd0..d06a8b4ffc6 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Direutoriu non válidu.",
"Files" : "Ficheros",
"All files" : "Tolos ficheros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nun pudo xubise {filename}, paez que ye un directoriu o tien 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "El tamañu de ficheru total {size1} perpasa la llende de xuba {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nun hai abondu espaciu llibre, tas xubiendo {size1} pero namái falta {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Nun pudo crease'l ficheru",
"Could not create folder" : "Nun pudo crease la carpeta",
"Error fetching URL" : "Fallu obteniendo URL",
+ "Rename" : "Renomar",
"Delete" : "Desaniciar",
"Disconnect storage" : "Desconeutar almacenamientu",
"Unshare" : "Dexar de compartir",
- "Rename" : "Renomar",
"Pending" : "Pendiente",
"Error moving file." : "Fallu moviendo'l ficheru.",
"Error moving file" : "Fallu moviendo'l ficheru",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorite" : "Favoritu",
"%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase",
"%s could not be renamed" : "Nun se puede renomar %s ",
"Upload (max. %s)" : "Xuba (máx. %s)",
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 947079aba91..e9506978d10 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Direutoriu non válidu.",
"Files" : "Ficheros",
"All files" : "Tolos ficheros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nun pudo xubise {filename}, paez que ye un directoriu o tien 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "El tamañu de ficheru total {size1} perpasa la llende de xuba {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nun hai abondu espaciu llibre, tas xubiendo {size1} pero namái falta {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Nun pudo crease'l ficheru",
"Could not create folder" : "Nun pudo crease la carpeta",
"Error fetching URL" : "Fallu obteniendo URL",
+ "Rename" : "Renomar",
"Delete" : "Desaniciar",
"Disconnect storage" : "Desconeutar almacenamientu",
"Unshare" : "Dexar de compartir",
- "Rename" : "Renomar",
"Pending" : "Pendiente",
"Error moving file." : "Fallu moviendo'l ficheru.",
"Error moving file" : "Fallu moviendo'l ficheru",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorite" : "Favoritu",
"%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase",
"%s could not be renamed" : "Nun se puede renomar %s ",
"Upload (max. %s)" : "Xuba (máx. %s)",
diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js
index 2373dc467f5..d6fd77a9af0 100644
--- a/apps/files/l10n/az.js
+++ b/apps/files/l10n/az.js
@@ -46,8 +46,8 @@ OC.L10N.register(
"Could not create file" : "Faylı yaratmaq olmur",
"Could not create folder" : "Qovluğu yaratmaq olmur",
"Error fetching URL" : "URL-in gətirilməsində səhv baş verdi",
- "Delete" : "Sil",
"Rename" : "Adı dəyiş",
+ "Delete" : "Sil",
"Error" : "Səhv",
"Name" : "Ad",
"Size" : "Həcm",
diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json
index 9d419ca5067..a917f6018c6 100644
--- a/apps/files/l10n/az.json
+++ b/apps/files/l10n/az.json
@@ -44,8 +44,8 @@
"Could not create file" : "Faylı yaratmaq olmur",
"Could not create folder" : "Qovluğu yaratmaq olmur",
"Error fetching URL" : "URL-in gətirilməsində səhv baş verdi",
- "Delete" : "Sil",
"Rename" : "Adı dəyiş",
+ "Delete" : "Sil",
"Error" : "Səhv",
"Name" : "Ad",
"Size" : "Həcm",
diff --git a/apps/files/l10n/bg_BG.js b/apps/files/l10n/bg_BG.js
index a5c1ba5ee04..c3e05b8ecec 100644
--- a/apps/files/l10n/bg_BG.js
+++ b/apps/files/l10n/bg_BG.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Невалидна директория.",
"Files" : "Файлове",
"All files" : "Всички файлове",
+ "Favorites" : "Любими",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Неуспешно качване на {filename}, защото е директория или е с размер от 0 байта.",
"Total file size {size1} exceeds upload limit {size2}" : "Общия размер {size1} надминава лимита за качване {size2}.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Няма достатъчно свободно място, ти се опитваш да качиш {size1}, но са останали само {size2}.",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Несупешно създаване на файла.",
"Could not create folder" : "Неуспешно създаване на папка.",
"Error fetching URL" : "Грешка при отварянето на интернет адреса.",
+ "Rename" : "Преименуване",
"Delete" : "Изтрий",
"Disconnect storage" : "Извади дисковото устройство.",
"Unshare" : "Премахни Споделяне",
- "Rename" : "Преименуване",
"Pending" : "Чакащо",
"Error moving file." : "Грешка при местенето на файла.",
"Error moving file" : "Грешка при преместването на файла.",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.",
"{dirs} and {files}" : "{dirs} и {files}",
+ "Favorite" : "Любими",
"%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит",
"%s could not be renamed" : "%s не може да бъде преименуван.",
"Upload (max. %s)" : "Качи (макс. %s)",
diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json
index 421bc494021..8b6ac3bfded 100644
--- a/apps/files/l10n/bg_BG.json
+++ b/apps/files/l10n/bg_BG.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Невалидна директория.",
"Files" : "Файлове",
"All files" : "Всички файлове",
+ "Favorites" : "Любими",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Неуспешно качване на {filename}, защото е директория или е с размер от 0 байта.",
"Total file size {size1} exceeds upload limit {size2}" : "Общия размер {size1} надминава лимита за качване {size2}.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Няма достатъчно свободно място, ти се опитваш да качиш {size1}, но са останали само {size2}.",
@@ -44,10 +45,10 @@
"Could not create file" : "Несупешно създаване на файла.",
"Could not create folder" : "Неуспешно създаване на папка.",
"Error fetching URL" : "Грешка при отварянето на интернет адреса.",
+ "Rename" : "Преименуване",
"Delete" : "Изтрий",
"Disconnect storage" : "Извади дисковото устройство.",
"Unshare" : "Премахни Споделяне",
- "Rename" : "Преименуване",
"Pending" : "Чакащо",
"Error moving file." : "Грешка при местенето на файла.",
"Error moving file" : "Грешка при преместването на файла.",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.",
"{dirs} and {files}" : "{dirs} и {files}",
+ "Favorite" : "Любими",
"%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит",
"%s could not be renamed" : "%s не може да бъде преименуван.",
"Upload (max. %s)" : "Качи (макс. %s)",
diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js
index 869130f2b2c..ae3aea5ee03 100644
--- a/apps/files/l10n/bn_BD.js
+++ b/apps/files/l10n/bn_BD.js
@@ -29,12 +29,13 @@ OC.L10N.register(
"Invalid directory." : "ভুল ডিরেক্টরি",
"Files" : "ফাইল",
"All files" : "সব ফাইল",
+ "Favorites" : "প্রিয়জন",
"Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
"File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
"{new_name} already exists" : "{new_name} টি বিদ্যমান",
+ "Rename" : "পূনঃনামকরণ",
"Delete" : "মুছে",
"Unshare" : "ভাগাভাগি বাতিল ",
- "Rename" : "পূনঃনামকরণ",
"Pending" : "মুলতুবি",
"Error moving file." : "ফাইল সরাতে সমস্যা হলো।",
"Error moving file" : "ফাইল সরাতে সমস্যা হলো",
@@ -48,6 +49,7 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"],
"\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।",
"Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
+ "Favorite" : "প্রিয়জন",
"File handling" : "ফাইল হ্যার্ডলিং",
"Maximum upload size" : "আপলোডের সর্বোচ্চ আকার",
"max. possible: " : "অনুমোদিত সর্বোচ্চ আকার",
diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json
index 054113964a9..f0718fd9755 100644
--- a/apps/files/l10n/bn_BD.json
+++ b/apps/files/l10n/bn_BD.json
@@ -27,12 +27,13 @@
"Invalid directory." : "ভুল ডিরেক্টরি",
"Files" : "ফাইল",
"All files" : "সব ফাইল",
+ "Favorites" : "প্রিয়জন",
"Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
"File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
"{new_name} already exists" : "{new_name} টি বিদ্যমান",
+ "Rename" : "পূনঃনামকরণ",
"Delete" : "মুছে",
"Unshare" : "ভাগাভাগি বাতিল ",
- "Rename" : "পূনঃনামকরণ",
"Pending" : "মুলতুবি",
"Error moving file." : "ফাইল সরাতে সমস্যা হলো।",
"Error moving file" : "ফাইল সরাতে সমস্যা হলো",
@@ -46,6 +47,7 @@
"_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"],
"\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।",
"Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
+ "Favorite" : "প্রিয়জন",
"File handling" : "ফাইল হ্যার্ডলিং",
"Maximum upload size" : "আপলোডের সর্বোচ্চ আকার",
"max. possible: " : "অনুমোদিত সর্বোচ্চ আকার",
diff --git a/apps/files/l10n/bn_IN.js b/apps/files/l10n/bn_IN.js
index 1e9ca9a3314..1fe0b7c4ef6 100644
--- a/apps/files/l10n/bn_IN.js
+++ b/apps/files/l10n/bn_IN.js
@@ -14,8 +14,8 @@ OC.L10N.register(
"Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না",
"Invalid directory." : "অবৈধ ডিরেক্টরি।",
"Files" : "ফাইলস",
- "Delete" : "মুছে ফেলা",
"Rename" : "পুনঃনামকরণ",
+ "Delete" : "মুছে ফেলা",
"Pending" : "মুলতুবি",
"Error" : "ভুল",
"Name" : "নাম",
diff --git a/apps/files/l10n/bn_IN.json b/apps/files/l10n/bn_IN.json
index db6203ecd4e..7757815748e 100644
--- a/apps/files/l10n/bn_IN.json
+++ b/apps/files/l10n/bn_IN.json
@@ -12,8 +12,8 @@
"Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না",
"Invalid directory." : "অবৈধ ডিরেক্টরি।",
"Files" : "ফাইলস",
- "Delete" : "মুছে ফেলা",
"Rename" : "পুনঃনামকরণ",
+ "Delete" : "মুছে ফেলা",
"Pending" : "মুলতুবি",
"Error" : "ভুল",
"Name" : "নাম",
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index 3cf471d6e39..c0acb428c0a 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Directori no vàlid.",
"Files" : "Fitxers",
"All files" : "Tots els fitxers",
+ "Favorites" : "Preferits",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No es pot pujar {filename} perquè és una carpeta o té 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "No s'ha pogut crear el fitxer",
"Could not create folder" : "No s'ha pogut crear la carpeta",
"Error fetching URL" : "Error en obtenir la URL",
+ "Rename" : "Reanomena",
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
- "Rename" : "Reanomena",
"Pending" : "Pendent",
"Error moving file." : "Error en moure el fitxer.",
"Error moving file" : "Error en moure el fitxer",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Preferits",
"%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat",
"%s could not be renamed" : "%s no es pot canviar el nom",
"Upload (max. %s)" : "Pujada (màx. %s)",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index e8de6d9239e..a0687a1f7aa 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Directori no vàlid.",
"Files" : "Fitxers",
"All files" : "Tots els fitxers",
+ "Favorites" : "Preferits",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No es pot pujar {filename} perquè és una carpeta o té 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "No s'ha pogut crear el fitxer",
"Could not create folder" : "No s'ha pogut crear la carpeta",
"Error fetching URL" : "Error en obtenir la URL",
+ "Rename" : "Reanomena",
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
- "Rename" : "Reanomena",
"Pending" : "Pendent",
"Error moving file." : "Error en moure el fitxer.",
"Error moving file" : "Error en moure el fitxer",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Preferits",
"%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat",
"%s could not be renamed" : "%s no es pot canviar el nom",
"Upload (max. %s)" : "Pujada (màx. %s)",
diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js
index 9252417c731..6a8d2eb3d9b 100644
--- a/apps/files/l10n/cs_CZ.js
+++ b/apps/files/l10n/cs_CZ.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Neplatný adresář",
"Files" : "Soubory",
"All files" : "Všechny soubory",
+ "Favorites" : "Oblíbené",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nelze nahrát soubor {filename}, protože je to buď adresář nebo má velikost 0 bytů",
"Total file size {size1} exceeds upload limit {size2}" : "Celková velikost souboru {size1} překračuje povolenou velikost pro nahrávání {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Nepodařilo se vytvořit soubor",
"Could not create folder" : "Nepodařilo se vytvořit složku",
"Error fetching URL" : "Chyba při načítání URL",
+ "Rename" : "Přejmenovat",
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
- "Rename" : "Přejmenovat",
"Pending" : "Nevyřízené",
+ "Unable to determine date" : "Nelze určit datum",
"Error moving file." : "Chyba při přesunu souboru.",
"Error moving file" : "Chyba při přesunu souboru",
"Error" : "Chyba",
@@ -70,6 +72,8 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.",
"{dirs} and {files}" : "{dirs} a {files}",
+ "Favorited" : "Přidáno k oblíbeným",
+ "Favorite" : "Oblíbené",
"%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán",
"%s could not be renamed" : "%s nemůže být přejmenován",
"Upload (max. %s)" : "Nahrát (max. %s)",
diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json
index 3df5e4ee957..be3cf4f1812 100644
--- a/apps/files/l10n/cs_CZ.json
+++ b/apps/files/l10n/cs_CZ.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Neplatný adresář",
"Files" : "Soubory",
"All files" : "Všechny soubory",
+ "Favorites" : "Oblíbené",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nelze nahrát soubor {filename}, protože je to buď adresář nebo má velikost 0 bytů",
"Total file size {size1} exceeds upload limit {size2}" : "Celková velikost souboru {size1} překračuje povolenou velikost pro nahrávání {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}",
@@ -44,11 +45,12 @@
"Could not create file" : "Nepodařilo se vytvořit soubor",
"Could not create folder" : "Nepodařilo se vytvořit složku",
"Error fetching URL" : "Chyba při načítání URL",
+ "Rename" : "Přejmenovat",
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
- "Rename" : "Přejmenovat",
"Pending" : "Nevyřízené",
+ "Unable to determine date" : "Nelze určit datum",
"Error moving file." : "Chyba při přesunu souboru.",
"Error moving file" : "Chyba při přesunu souboru",
"Error" : "Chyba",
@@ -68,6 +70,8 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.",
"{dirs} and {files}" : "{dirs} a {files}",
+ "Favorited" : "Přidáno k oblíbeným",
+ "Favorite" : "Oblíbené",
"%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán",
"%s could not be renamed" : "%s nemůže být přejmenován",
"Upload (max. %s)" : "Nahrát (max. %s)",
diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js
index 947f4ba6631..c7c28d3007f 100644
--- a/apps/files/l10n/cy_GB.js
+++ b/apps/files/l10n/cy_GB.js
@@ -19,9 +19,9 @@ OC.L10N.register(
"Upload cancelled." : "Diddymwyd llwytho i fyny.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
"{new_name} already exists" : "{new_name} yn bodoli'n barod",
+ "Rename" : "Ailenwi",
"Delete" : "Dileu",
"Unshare" : "Dad-rannu",
- "Rename" : "Ailenwi",
"Pending" : "I ddod",
"Error" : "Gwall",
"Name" : "Enw",
diff --git a/apps/files/l10n/cy_GB.json b/apps/files/l10n/cy_GB.json
index 2edf129976c..b48462e0883 100644
--- a/apps/files/l10n/cy_GB.json
+++ b/apps/files/l10n/cy_GB.json
@@ -17,9 +17,9 @@
"Upload cancelled." : "Diddymwyd llwytho i fyny.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
"{new_name} already exists" : "{new_name} yn bodoli'n barod",
+ "Rename" : "Ailenwi",
"Delete" : "Dileu",
"Unshare" : "Dad-rannu",
- "Rename" : "Ailenwi",
"Pending" : "I ddod",
"Error" : "Gwall",
"Name" : "Enw",
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 9ddf620b63b..c1ed6f2176b 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Ugyldig mappe.",
"Files" : "Filer",
"All files" : "Alle filer",
+ "Favorites" : "Foretrukne",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.",
"Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Kunne ikke oprette fil",
"Could not create folder" : "Kunne ikke oprette mappe",
"Error fetching URL" : "Fejl ved URL",
+ "Rename" : "Omdøb",
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
- "Rename" : "Omdøb",
"Pending" : "Afventer",
+ "Unable to determine date" : "Kan ikke fastslå datoen",
"Error moving file." : "Fejl ved flytning af fil",
"Error moving file" : "Fejl ved flytning af fil",
"Error" : "Fejl",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Foretrukken",
"%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet",
"%s could not be renamed" : "%s kunne ikke omdøbes",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 7e6a88f2486..44cab9be49b 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Ugyldig mappe.",
"Files" : "Filer",
"All files" : "Alle filer",
+ "Favorites" : "Foretrukne",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.",
"Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage",
@@ -44,11 +45,12 @@
"Could not create file" : "Kunne ikke oprette fil",
"Could not create folder" : "Kunne ikke oprette mappe",
"Error fetching URL" : "Fejl ved URL",
+ "Rename" : "Omdøb",
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
- "Rename" : "Omdøb",
"Pending" : "Afventer",
+ "Unable to determine date" : "Kan ikke fastslå datoen",
"Error moving file." : "Fejl ved flytning af fil",
"Error moving file" : "Fejl ved flytning af fil",
"Error" : "Fejl",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Foretrukken",
"%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet",
"%s could not be renamed" : "%s kunne ikke omdøbes",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 0ed91061f94..fd789a2e8e0 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Ungültiges Verzeichnis.",
"Files" : "Dateien",
"All files" : "Alle Dateien",
+ "Favorites" : "Favoriten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
"Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, du möchtest {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
+ "Rename" : "Umbenennen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Rename" : "Umbenennen",
"Pending" : "Ausstehend",
+ "Unable to determine date" : "Datum konnte nicht ermittelt werden",
"Error moving file." : "Fehler beim Verschieben der Datei.",
"Error moving file" : "Fehler beim Verschieben der Datei",
"Error" : "Fehler",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.",
"{dirs} and {files}" : "{dirs} und {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
"%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index fa567f7b4f3..a5ca0eac31a 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Ungültiges Verzeichnis.",
"Files" : "Dateien",
"All files" : "Alle Dateien",
+ "Favorites" : "Favoriten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
"Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, du möchtest {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
@@ -44,11 +45,12 @@
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
+ "Rename" : "Umbenennen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Rename" : "Umbenennen",
"Pending" : "Ausstehend",
+ "Unable to determine date" : "Datum konnte nicht ermittelt werden",
"Error moving file." : "Fehler beim Verschieben der Datei.",
"Error moving file" : "Fehler beim Verschieben der Datei",
"Error" : "Fehler",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.",
"{dirs} and {files}" : "{dirs} und {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
"%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 51bbdc08692..c544408fda2 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Ungültiges Verzeichnis.",
"Files" : "Dateien",
"All files" : "Alle Dateien",
+ "Favorites" : "Favoriten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
"Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
+ "Rename" : "Umbenennen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Rename" : "Umbenennen",
"Pending" : "Ausstehend",
+ "Unable to determine date" : "Datum konnte nicht ermittelt werden",
"Error moving file." : "Fehler beim Verschieben der Datei.",
"Error moving file" : "Fehler beim Verschieben der Datei",
"Error" : "Fehler",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.",
"{dirs} and {files}" : "{dirs} und {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
"%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 02c8c411d4c..dbab38cc467 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Ungültiges Verzeichnis.",
"Files" : "Dateien",
"All files" : "Alle Dateien",
+ "Favorites" : "Favoriten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
"Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
@@ -44,11 +45,12 @@
"Could not create file" : "Die Datei konnte nicht erstellt werden",
"Could not create folder" : "Der Ordner konnte nicht erstellt werden",
"Error fetching URL" : "Fehler beim Abrufen der URL",
+ "Rename" : "Umbenennen",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
- "Rename" : "Umbenennen",
"Pending" : "Ausstehend",
+ "Unable to determine date" : "Datum konnte nicht ermittelt werden",
"Error moving file." : "Fehler beim Verschieben der Datei.",
"Error moving file" : "Fehler beim Verschieben der Datei",
"Error" : "Fehler",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.",
"{dirs} and {files}" : "{dirs} und {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde",
"%s could not be renamed" : "%s konnte nicht umbenannt werden",
"Upload (max. %s)" : "Hochladen (max. %s)",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index 3ac2eedd126..6ea1478b956 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Μη έγκυρος φάκελος.",
"Files" : "Αρχεία",
"All files" : "Όλα τα αρχεία",
+ "Favorites" : "Αγαπημένες",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Αδυναμία φόρτωσης {filename} καθώς είναι κατάλογος αρχείων ή έχει 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Δεν υπάρχει αρκετός ελεύθερος χώρος, μεταφορτώνετε μέγεθος {size1} αλλά υπάρχει χώρος μόνο {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Αδυναμία δημιουργίας αρχείου",
"Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
"Error fetching URL" : "Σφάλμα φόρτωσης URL",
+ "Rename" : "Μετονομασία",
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
- "Rename" : "Μετονομασία",
"Pending" : "Εκκρεμεί",
"Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
"Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις",
"{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}",
+ "Favorite" : "Αγαπημένο",
"%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί",
"%s could not be renamed" : "Αδυναμία μετονομασίας του %s",
"Upload (max. %s)" : "Διαμοιρασμός (max. %s)",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 630eddd616b..013a71b82c9 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Μη έγκυρος φάκελος.",
"Files" : "Αρχεία",
"All files" : "Όλα τα αρχεία",
+ "Favorites" : "Αγαπημένες",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Αδυναμία φόρτωσης {filename} καθώς είναι κατάλογος αρχείων ή έχει 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Δεν υπάρχει αρκετός ελεύθερος χώρος, μεταφορτώνετε μέγεθος {size1} αλλά υπάρχει χώρος μόνο {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Αδυναμία δημιουργίας αρχείου",
"Could not create folder" : "Αδυναμία δημιουργίας φακέλου",
"Error fetching URL" : "Σφάλμα φόρτωσης URL",
+ "Rename" : "Μετονομασία",
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
- "Rename" : "Μετονομασία",
"Pending" : "Εκκρεμεί",
"Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.",
"Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις",
"{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}",
+ "Favorite" : "Αγαπημένο",
"%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί",
"%s could not be renamed" : "Αδυναμία μετονομασίας του %s",
"Upload (max. %s)" : "Διαμοιρασμός (max. %s)",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index d940540bc88..653667b0efe 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Invalid directory.",
"Files" : "Files",
"All files" : "All files",
+ "Favorites" : "Favourites",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Unable to upload {filename} as it is a directory or has 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Total file size {size1} exceeds upload limit {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Not enough free space, you are uploading {size1} but only {size2} is left",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Could not create file",
"Could not create folder" : "Could not create folder",
"Error fetching URL" : "Error fetching URL",
+ "Rename" : "Rename",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
- "Rename" : "Rename",
"Pending" : "Pending",
+ "Unable to determine date" : "Unable to determine date",
"Error moving file." : "Error moving file.",
"Error moving file" : "Error moving file",
"Error" : "Error",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.",
"{dirs} and {files}" : "{dirs} and {files}",
+ "Favorite" : "Favourite",
"%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted",
"%s could not be renamed" : "%s could not be renamed",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 88d2c3d848e..f414ec2a2f2 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Invalid directory.",
"Files" : "Files",
"All files" : "All files",
+ "Favorites" : "Favourites",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Unable to upload {filename} as it is a directory or has 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Total file size {size1} exceeds upload limit {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Not enough free space, you are uploading {size1} but only {size2} is left",
@@ -44,11 +45,12 @@
"Could not create file" : "Could not create file",
"Could not create folder" : "Could not create folder",
"Error fetching URL" : "Error fetching URL",
+ "Rename" : "Rename",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
- "Rename" : "Rename",
"Pending" : "Pending",
+ "Unable to determine date" : "Unable to determine date",
"Error moving file." : "Error moving file.",
"Error moving file" : "Error moving file",
"Error" : "Error",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.",
"{dirs} and {files}" : "{dirs} and {files}",
+ "Favorite" : "Favourite",
"%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted",
"%s could not be renamed" : "%s could not be renamed",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index 91349252c8f..6e100fb3214 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -26,6 +26,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero.",
"Invalid directory." : "Nevalida dosierujo.",
"Files" : "Dosieroj",
+ "Favorites" : "Favoratoj",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝutiĝi {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 duumokojn",
"Upload cancelled." : "La alŝuto nuliĝis.",
"Could not get result from server." : "Ne povis ekhaviĝi rezulto el la servilo.",
@@ -34,9 +35,9 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} jam ekzistas",
"Could not create file" : "Ne povis kreiĝi dosiero",
"Could not create folder" : "Ne povis kreiĝi dosierujo",
+ "Rename" : "Alinomigi",
"Delete" : "Forigi",
"Unshare" : "Malkunhavigi",
- "Rename" : "Alinomigi",
"Pending" : "Traktotaj",
"Error moving file" : "Eraris movo de dosiero",
"Error" : "Eraro",
@@ -51,6 +52,7 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
"Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} kaj {files}",
+ "Favorite" : "Favorato",
"%s could not be renamed" : "%s ne povis alinomiĝi",
"Upload (max. %s)" : "Alŝuti (maks. %s)",
"File handling" : "Dosieradministro",
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 59b8178aca0..594a064981e 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -24,6 +24,7 @@
"Upload failed. Could not get file info." : "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero.",
"Invalid directory." : "Nevalida dosierujo.",
"Files" : "Dosieroj",
+ "Favorites" : "Favoratoj",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝutiĝi {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 duumokojn",
"Upload cancelled." : "La alŝuto nuliĝis.",
"Could not get result from server." : "Ne povis ekhaviĝi rezulto el la servilo.",
@@ -32,9 +33,9 @@
"{new_name} already exists" : "{new_name} jam ekzistas",
"Could not create file" : "Ne povis kreiĝi dosiero",
"Could not create folder" : "Ne povis kreiĝi dosierujo",
+ "Rename" : "Alinomigi",
"Delete" : "Forigi",
"Unshare" : "Malkunhavigi",
- "Rename" : "Alinomigi",
"Pending" : "Traktotaj",
"Error moving file" : "Eraris movo de dosiero",
"Error" : "Eraro",
@@ -49,6 +50,7 @@
"Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
"Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} kaj {files}",
+ "Favorite" : "Favorato",
"%s could not be renamed" : "%s ne povis alinomiĝi",
"Upload (max. %s)" : "Alŝuti (maks. %s)",
"File handling" : "Dosieradministro",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index b73452ba416..3d436ed8ba4 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
"All files" : "Todos los archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
+ "Rename" : "Renombrar",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "Rename" : "Renombrar",
"Pending" : "Pendiente",
+ "Unable to determine date" : "No se pudo determinar la fecha",
"Error moving file." : "Error al mover el archivo.",
"Error moving file" : "Error moviendo archivo",
"Error" : "Error",
@@ -70,6 +72,8 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorited" : "Agregado a favoritos",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado",
"%s could not be renamed" : "%s no pudo ser renombrado",
"Upload (max. %s)" : "Subida (máx. %s)",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 8b8166575cd..09b1eed3a0d 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
"All files" : "Todos los archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
@@ -44,11 +45,12 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
+ "Rename" : "Renombrar",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "Rename" : "Renombrar",
"Pending" : "Pendiente",
+ "Unable to determine date" : "No se pudo determinar la fecha",
"Error moving file." : "Error al mover el archivo.",
"Error moving file" : "Error moviendo archivo",
"Error" : "Error",
@@ -68,6 +70,8 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorited" : "Agregado a favoritos",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado",
"%s could not be renamed" : "%s no pudo ser renombrado",
"Upload (max. %s)" : "Subida (máx. %s)",
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
index cc3c7f157a4..06816c6f901 100644
--- a/apps/files/l10n/es_AR.js
+++ b/apps/files/l10n/es_AR.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.",
"Upload cancelled." : "La subida fue cancelada",
"Could not get result from server." : "No se pudo obtener resultados del servidor.",
@@ -37,9 +38,9 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear el directorio",
"Error fetching URL" : "Error al obtener la URL",
+ "Rename" : "Cambiar nombre",
"Delete" : "Borrar",
"Unshare" : "Dejar de compartir",
- "Rename" : "Cambiar nombre",
"Pending" : "Pendientes",
"Error moving file" : "Error moviendo el archivo",
"Error" : "Error",
@@ -58,6 +59,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.",
"{dirs} and {files}" : "{carpetas} y {archivos}",
+ "Favorite" : "Favorito",
"%s could not be renamed" : "No se pudo renombrar %s",
"File handling" : "Tratamiento de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
index c1dc14422f2..e1c258985a0 100644
--- a/apps/files/l10n/es_AR.json
+++ b/apps/files/l10n/es_AR.json
@@ -26,6 +26,7 @@
"Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.",
"Upload cancelled." : "La subida fue cancelada",
"Could not get result from server." : "No se pudo obtener resultados del servidor.",
@@ -35,9 +36,9 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear el directorio",
"Error fetching URL" : "Error al obtener la URL",
+ "Rename" : "Cambiar nombre",
"Delete" : "Borrar",
"Unshare" : "Dejar de compartir",
- "Rename" : "Cambiar nombre",
"Pending" : "Pendientes",
"Error moving file" : "Error moviendo el archivo",
"Error" : "Error",
@@ -56,6 +57,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.",
"{dirs} and {files}" : "{carpetas} y {archivos}",
+ "Favorite" : "Favorito",
"%s could not be renamed" : "No se pudo renombrar %s",
"File handling" : "Tratamiento de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 2a62b597d3a..83de362bd44 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
"Upload cancelled." : "Subida cancelada.",
"Could not get result from server." : "No se pudo obtener respuesta del servidor.",
@@ -37,9 +38,9 @@ OC.L10N.register(
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
+ "Rename" : "Renombrar",
"Delete" : "Eliminar",
"Unshare" : "Dejar de compartir",
- "Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file" : "Error moviendo archivo",
"Error" : "Error",
@@ -58,6 +59,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed" : "%s no pudo ser renombrado",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 94111d2095d..cc781ac4ce4 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -26,6 +26,7 @@
"Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.",
"Invalid directory." : "Directorio inválido.",
"Files" : "Archivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
"Upload cancelled." : "Subida cancelada.",
"Could not get result from server." : "No se pudo obtener respuesta del servidor.",
@@ -35,9 +36,9 @@
"Could not create file" : "No se pudo crear el archivo",
"Could not create folder" : "No se pudo crear la carpeta",
"Error fetching URL" : "Error al descargar URL.",
+ "Rename" : "Renombrar",
"Delete" : "Eliminar",
"Unshare" : "Dejar de compartir",
- "Rename" : "Renombrar",
"Pending" : "Pendiente",
"Error moving file" : "Error moviendo archivo",
"Error" : "Error",
@@ -56,6 +57,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
"{dirs} and {files}" : "{dirs} y {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed" : "%s no pudo ser renombrado",
"File handling" : "Administración de archivos",
"Maximum upload size" : "Tamaño máximo de subida",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index 1e2004a07d9..21bd8119c6e 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Vigane kaust.",
"Files" : "Failid",
"All files" : "Kõik failid",
+ "Favorites" : "Lemmikud",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ei saa üles laadida {filename}, kuna see on kataloog või selle suurus on 0 baiti",
"Total file size {size1} exceeds upload limit {size2}" : "Faili suurus {size1} ületab faili üleslaadimise mahu piirangu {size2}.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Ei suuda luua faili",
"Could not create folder" : "Ei suuda luua kataloogi",
"Error fetching URL" : "Viga URL-i haaramisel",
+ "Rename" : "Nimeta ümber",
"Delete" : "Kustuta",
"Disconnect storage" : "Ühenda andmehoidla lahti.",
"Unshare" : "Lõpeta jagamine",
- "Rename" : "Nimeta ümber",
"Pending" : "Ootel",
"Error moving file." : "Viga faili liigutamisel.",
"Error moving file" : "Viga faili eemaldamisel",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorite" : "Lemmik",
"%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud",
"%s could not be renamed" : "%s ümbernimetamine ebaõnnestus",
"Upload (max. %s)" : "Üleslaadimine (max. %s)",
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 1c4c7b56680..a1e85bd09e7 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Vigane kaust.",
"Files" : "Failid",
"All files" : "Kõik failid",
+ "Favorites" : "Lemmikud",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ei saa üles laadida {filename}, kuna see on kataloog või selle suurus on 0 baiti",
"Total file size {size1} exceeds upload limit {size2}" : "Faili suurus {size1} ületab faili üleslaadimise mahu piirangu {size2}.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.",
@@ -44,10 +45,10 @@
"Could not create file" : "Ei suuda luua faili",
"Could not create folder" : "Ei suuda luua kataloogi",
"Error fetching URL" : "Viga URL-i haaramisel",
+ "Rename" : "Nimeta ümber",
"Delete" : "Kustuta",
"Disconnect storage" : "Ühenda andmehoidla lahti.",
"Unshare" : "Lõpeta jagamine",
- "Rename" : "Nimeta ümber",
"Pending" : "Ootel",
"Error moving file." : "Viga faili liigutamisel.",
"Error moving file" : "Viga faili eemaldamisel",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorite" : "Lemmik",
"%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud",
"%s could not be renamed" : "%s ümbernimetamine ebaõnnestus",
"Upload (max. %s)" : "Üleslaadimine (max. %s)",
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 3b154222ab5..cd722345cad 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Baliogabeko karpeta.",
"Files" : "Fitxategiak",
"All files" : "Fitxategi guztiak",
+ "Favorites" : "Gogokoak",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ezin da {filename} igo karpeta bat delako edo 0 byte dituelako",
"Total file size {size1} exceeds upload limit {size2}" : "Fitxategiaren tamainak {size1} igotzeko muga {size2} gainditzen du",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Ezin izan da fitxategia sortu",
"Could not create folder" : "Ezin izan da karpeta sortu",
"Error fetching URL" : "Errorea URLa eskuratzerakoan",
+ "Rename" : "Berrizendatu",
"Delete" : "Ezabatu",
"Disconnect storage" : "Deskonektatu biltegia",
"Unshare" : "Ez elkarbanatu",
- "Rename" : "Berrizendatu",
"Pending" : "Zain",
"Error moving file." : "Errorea fitxategia mugitzean.",
"Error moving file" : "Errorea fitxategia mugitzean",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.",
"{dirs} and {files}" : "{dirs} eta {files}",
+ "Favorite" : "Gogokoa",
"%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta",
"%s could not be renamed" : "%s ezin da berrizendatu",
"Upload (max. %s)" : "Igo (max. %s)",
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 22aa1f8f3a8..6841adb35f6 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Baliogabeko karpeta.",
"Files" : "Fitxategiak",
"All files" : "Fitxategi guztiak",
+ "Favorites" : "Gogokoak",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ezin da {filename} igo karpeta bat delako edo 0 byte dituelako",
"Total file size {size1} exceeds upload limit {size2}" : "Fitxategiaren tamainak {size1} igotzeko muga {size2} gainditzen du",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago",
@@ -44,10 +45,10 @@
"Could not create file" : "Ezin izan da fitxategia sortu",
"Could not create folder" : "Ezin izan da karpeta sortu",
"Error fetching URL" : "Errorea URLa eskuratzerakoan",
+ "Rename" : "Berrizendatu",
"Delete" : "Ezabatu",
"Disconnect storage" : "Deskonektatu biltegia",
"Unshare" : "Ez elkarbanatu",
- "Rename" : "Berrizendatu",
"Pending" : "Zain",
"Error moving file." : "Errorea fitxategia mugitzean.",
"Error moving file" : "Errorea fitxategia mugitzean",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.",
"{dirs} and {files}" : "{dirs} eta {files}",
+ "Favorite" : "Gogokoa",
"%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta",
"%s could not be renamed" : "%s ezin da berrizendatu",
"Upload (max. %s)" : "Igo (max. %s)",
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index d81213191fd..606016442e8 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -19,12 +19,13 @@ OC.L10N.register(
"Not enough storage available" : "فضای کافی در دسترس نیست",
"Invalid directory." : "فهرست راهنما نامعتبر می باشد.",
"Files" : "پرونده‌ها",
+ "Favorites" : "موارد محبوب",
"Upload cancelled." : "بار گذاری لغو شد",
"File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ",
"{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
+ "Rename" : "تغییرنام",
"Delete" : "حذف",
"Unshare" : "لغو اشتراک",
- "Rename" : "تغییرنام",
"Pending" : "در انتظار",
"Error" : "خطا",
"Name" : "نام",
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index ddc1cce6c5c..8dfa96cff30 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -17,12 +17,13 @@
"Not enough storage available" : "فضای کافی در دسترس نیست",
"Invalid directory." : "فهرست راهنما نامعتبر می باشد.",
"Files" : "پرونده‌ها",
+ "Favorites" : "موارد محبوب",
"Upload cancelled." : "بار گذاری لغو شد",
"File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ",
"{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.",
+ "Rename" : "تغییرنام",
"Delete" : "حذف",
"Unshare" : "لغو اشتراک",
- "Rename" : "تغییرنام",
"Pending" : "در انتظار",
"Error" : "خطا",
"Name" : "نام",
diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js
new file mode 100644
index 00000000000..40046cc33ee
--- /dev/null
+++ b/apps/files/l10n/fi.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "files",
+ {
+ "Rename" : "Nimeä uudelleen",
+ "Delete" : "Poista",
+ "Error" : "Virhe",
+ "_%n folder_::_%n folders_" : ["",""],
+ "_%n file_::_%n files_" : ["",""],
+ "_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "Favorite" : "Suosikit",
+ "Save" : "Tallenna",
+ "New folder" : "Luo kansio",
+ "Folder" : "Kansio",
+ "Nothing in here. Upload something!" : "Ei sisältöä. Siirrä tänne jotakin!"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json
new file mode 100644
index 00000000000..47ed7606bb1
--- /dev/null
+++ b/apps/files/l10n/fi.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Rename" : "Nimeä uudelleen",
+ "Delete" : "Poista",
+ "Error" : "Virhe",
+ "_%n folder_::_%n folders_" : ["",""],
+ "_%n file_::_%n files_" : ["",""],
+ "_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "Favorite" : "Suosikit",
+ "Save" : "Tallenna",
+ "New folder" : "Luo kansio",
+ "Folder" : "Kansio",
+ "Nothing in here. Upload something!" : "Ei sisältöä. Siirrä tänne jotakin!"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index 4d78fa413e4..990ab6ac735 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Virheellinen kansio.",
"Files" : "Tiedostot",
"All files" : "Kaikki tiedostot",
+ "Favorites" : "Suosikit",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kohdetta {filename} ei voi lähettää, koska se on joko kansio tai sen koko on 0 tavua",
"Total file size {size1} exceeds upload limit {size2}" : "Yhteiskoko {size1} ylittää lähetysrajan {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Tiedoston luominen epäonnistui",
"Could not create folder" : "Kansion luominen epäonnistui",
"Error fetching URL" : "Virhe noutaessa verkko-osoitetta",
+ "Rename" : "Nimeä uudelleen",
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
- "Rename" : "Nimeä uudelleen",
"Pending" : "Odottaa",
+ "Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"Error moving file." : "Virhe tiedostoa siirrettäessä.",
"Error moving file" : "Virhe tiedostoa siirrettäessä",
"Error" : "Virhe",
@@ -70,6 +72,8 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorited" : "Lisätty suosikkeihin",
+ "Favorite" : "Suosikki",
"%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu",
"%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui",
"Upload (max. %s)" : "Lähetys (enintään %s)",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index 8052b0f3287..fb6b20a0ce7 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Virheellinen kansio.",
"Files" : "Tiedostot",
"All files" : "Kaikki tiedostot",
+ "Favorites" : "Suosikit",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kohdetta {filename} ei voi lähettää, koska se on joko kansio tai sen koko on 0 tavua",
"Total file size {size1} exceeds upload limit {size2}" : "Yhteiskoko {size1} ylittää lähetysrajan {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä",
@@ -44,11 +45,12 @@
"Could not create file" : "Tiedoston luominen epäonnistui",
"Could not create folder" : "Kansion luominen epäonnistui",
"Error fetching URL" : "Virhe noutaessa verkko-osoitetta",
+ "Rename" : "Nimeä uudelleen",
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
- "Rename" : "Nimeä uudelleen",
"Pending" : "Odottaa",
+ "Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"Error moving file." : "Virhe tiedostoa siirrettäessä.",
"Error moving file" : "Virhe tiedostoa siirrettäessä",
"Error" : "Virhe",
@@ -68,6 +70,8 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorited" : "Lisätty suosikkeihin",
+ "Favorite" : "Suosikki",
"%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu",
"%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui",
"Upload (max. %s)" : "Lähetys (enintään %s)",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 86d10b2a8c4..49da663e80d 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -2,9 +2,9 @@ OC.L10N.register(
"files",
{
"Storage not available" : "Support de stockage non disponible",
- "Storage invalid" : "Support de stockage invalide",
+ "Storage invalid" : "Support de stockage non valable",
"Unknown error" : "Erreur Inconnue ",
- "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà",
+ "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier portant ce nom existe déjà",
"Could not move %s" : "Impossible de déplacer %s",
"Permission denied" : "Permission refusée",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Dossier invalide.",
"Files" : "Fichiers",
"All files" : "Tous les fichiers",
+ "Favorites" : "Favoris",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible d'envoyer {filename} car il s'agit d'un répertoire ou d'un fichier de taille nulle",
"Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Impossible de créer le fichier",
"Could not create folder" : "Impossible de créer le dossier",
"Error fetching URL" : "Erreur d'accès à l'URL",
+ "Rename" : "Renommer",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
- "Rename" : "Renommer",
"Pending" : "En attente",
+ "Unable to determine date" : "Impossible de déterminer la date",
"Error moving file." : "Erreur lors du déplacement du fichier.",
"Error moving file" : "Erreur lors du déplacement du fichier",
"Error" : "Erreur",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour l'application de chiffrement est invalide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.",
"{dirs} and {files}" : "{dirs} et {files}",
+ "Favorite" : "Favoris",
"%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
"%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 8c2a7b4ca3e..1ad29e46017 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -1,8 +1,8 @@
{ "translations": {
"Storage not available" : "Support de stockage non disponible",
- "Storage invalid" : "Support de stockage invalide",
+ "Storage invalid" : "Support de stockage non valable",
"Unknown error" : "Erreur Inconnue ",
- "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà",
+ "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier portant ce nom existe déjà",
"Could not move %s" : "Impossible de déplacer %s",
"Permission denied" : "Permission refusée",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
@@ -33,6 +33,7 @@
"Invalid directory." : "Dossier invalide.",
"Files" : "Fichiers",
"All files" : "Tous les fichiers",
+ "Favorites" : "Favoris",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible d'envoyer {filename} car il s'agit d'un répertoire ou d'un fichier de taille nulle",
"Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles",
@@ -44,11 +45,12 @@
"Could not create file" : "Impossible de créer le fichier",
"Could not create folder" : "Impossible de créer le dossier",
"Error fetching URL" : "Erreur d'accès à l'URL",
+ "Rename" : "Renommer",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
- "Rename" : "Renommer",
"Pending" : "En attente",
+ "Unable to determine date" : "Impossible de déterminer la date",
"Error moving file." : "Erreur lors du déplacement du fichier.",
"Error moving file" : "Erreur lors du déplacement du fichier",
"Error" : "Erreur",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour l'application de chiffrement est invalide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.",
"{dirs} and {files}" : "{dirs} et {files}",
+ "Favorite" : "Favoris",
"%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
"%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 28dad5d7757..163e32076ae 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "O directorio é incorrecto.",
"Files" : "Ficheiros",
"All files" : "Todos os ficheiros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Non é posíbel enviar {filename}, xa que ou é un directorio ou ten 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamaño total do ficheiro {size1} excede do límite de envío {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Non hai espazo libre abondo, o seu envío é de {size1} mais só dispón de {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Non foi posíbel crear o ficheiro",
"Could not create folder" : "Non foi posíbel crear o cartafol",
"Error fetching URL" : "Produciuse un erro ao obter o URL",
+ "Rename" : "Renomear",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
- "Rename" : "Renomear",
"Pending" : "Pendentes",
"Error moving file." : "Produciuse un erro ao mover o ficheiro.",
"Error moving file" : "Produciuse un erro ao mover o ficheiro",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado",
"%s could not be renamed" : "%s non pode cambiar de nome",
"Upload (max. %s)" : "Envío (máx. %s)",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index cdb404bfad4..4147920c626 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -33,6 +33,7 @@
"Invalid directory." : "O directorio é incorrecto.",
"Files" : "Ficheiros",
"All files" : "Todos os ficheiros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Non é posíbel enviar {filename}, xa que ou é un directorio ou ten 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamaño total do ficheiro {size1} excede do límite de envío {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Non hai espazo libre abondo, o seu envío é de {size1} mais só dispón de {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Non foi posíbel crear o ficheiro",
"Could not create folder" : "Non foi posíbel crear o cartafol",
"Error fetching URL" : "Produciuse un erro ao obter o URL",
+ "Rename" : "Renomear",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
- "Rename" : "Renomear",
"Pending" : "Pendentes",
"Error moving file." : "Produciuse un erro ao mover o ficheiro.",
"Error moving file" : "Produciuse un erro ao mover o ficheiro",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado",
"%s could not be renamed" : "%s non pode cambiar de nome",
"Upload (max. %s)" : "Envío (máx. %s)",
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 6ad6a9d58c3..7cb36280ed8 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -18,13 +18,14 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ.",
"Invalid directory." : "תיקייה שגויה.",
"Files" : "קבצים",
+ "Favorites" : "מועדפים",
"Upload cancelled." : "ההעלאה בוטלה.",
"Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"{new_name} already exists" : "{new_name} כבר קיים",
+ "Rename" : "שינוי שם",
"Delete" : "מחיקה",
"Unshare" : "הסר שיתוף",
- "Rename" : "שינוי שם",
"Pending" : "ממתין",
"Error" : "שגיאה",
"Name" : "שם",
@@ -34,6 +35,7 @@ OC.L10N.register(
"_%n file_::_%n files_" : ["",""],
"_Uploading %n file_::_Uploading %n files_" : ["",""],
"Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)",
+ "Favorite" : "מועדף",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"File handling" : "טיפול בקבצים",
"Maximum upload size" : "גודל העלאה מקסימלי",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index c9caf1093e3..a10c1b342af 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -16,13 +16,14 @@
"Upload failed. Could not get file info." : "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ.",
"Invalid directory." : "תיקייה שגויה.",
"Files" : "קבצים",
+ "Favorites" : "מועדפים",
"Upload cancelled." : "ההעלאה בוטלה.",
"Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"{new_name} already exists" : "{new_name} כבר קיים",
+ "Rename" : "שינוי שם",
"Delete" : "מחיקה",
"Unshare" : "הסר שיתוף",
- "Rename" : "שינוי שם",
"Pending" : "ממתין",
"Error" : "שגיאה",
"Name" : "שם",
@@ -32,6 +33,7 @@
"_%n file_::_%n files_" : ["",""],
"_Uploading %n file_::_Uploading %n files_" : ["",""],
"Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)",
+ "Favorite" : "מועדף",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"File handling" : "טיפול בקבצים",
"Maximum upload size" : "גודל העלאה מקסימלי",
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
index f840cf3fa41..39d3877ff74 100644
--- a/apps/files/l10n/hr.js
+++ b/apps/files/l10n/hr.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Neispravan direktorij",
"Files" : "Datoteke",
"All files" : "Sve datoteke",
+ "Favorites" : "Favoriti",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta",
"Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Datoteku nije moguće kreirati",
"Could not create folder" : "Mapu nije moguće kreirati",
"Error fetching URL" : "Pogrešan dohvat URL",
+ "Rename" : "Preimenujte",
"Delete" : "Izbrišite",
"Disconnect storage" : "Isključite pohranu",
"Unshare" : "Prestanite dijeliti",
- "Rename" : "Preimenujte",
"Pending" : "Na čekanju",
"Error moving file." : "Pogrešno premještanje datoteke",
"Error moving file" : "Pogrešno premještanje datoteke",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
"%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Prijenos (max. %s)",
diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json
index fb94891580d..16d93d076cc 100644
--- a/apps/files/l10n/hr.json
+++ b/apps/files/l10n/hr.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Neispravan direktorij",
"Files" : "Datoteke",
"All files" : "Sve datoteke",
+ "Favorites" : "Favoriti",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta",
"Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo",
@@ -44,10 +45,10 @@
"Could not create file" : "Datoteku nije moguće kreirati",
"Could not create folder" : "Mapu nije moguće kreirati",
"Error fetching URL" : "Pogrešan dohvat URL",
+ "Rename" : "Preimenujte",
"Delete" : "Izbrišite",
"Disconnect storage" : "Isključite pohranu",
"Unshare" : "Prestanite dijeliti",
- "Rename" : "Preimenujte",
"Pending" : "Na čekanju",
"Error moving file." : "Pogrešno premještanje datoteke",
"Error moving file" : "Pogrešno premještanje datoteke",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan",
"%s could not be renamed" : "%s nije moguće preimenovati",
"Upload (max. %s)" : "Prijenos (max. %s)",
diff --git a/apps/files/l10n/hu_HU.js b/apps/files/l10n/hu_HU.js
index 3b1f298e5f2..77a14b8d7bd 100644
--- a/apps/files/l10n/hu_HU.js
+++ b/apps/files/l10n/hu_HU.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Érvénytelen mappa.",
"Files" : "Fájlkezelő",
"All files" : "Az összes állomány",
+ "Favorites" : "Kedvencek",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.",
"Total file size {size1} exceeds upload limit {size2}" : "A teljes fájlméret: {size1} meghaladja a feltöltési limitet: {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Az állomány nem hozható létre",
"Could not create folder" : "A mappa nem hozható létre",
"Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni",
+ "Rename" : "Átnevezés",
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
- "Rename" : "Átnevezés",
"Pending" : "Folyamatban",
"Error moving file." : "Hiba történt a fájl áthelyezése közben.",
"Error moving file" : "Az állomány áthelyezése nem sikerült.",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.",
"{dirs} and {files}" : "{dirs} és {files}",
+ "Favorite" : "Kedvenc",
"%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett",
"%s could not be renamed" : "%s átnevezése nem sikerült",
"Upload (max. %s)" : "Feltöltés (max. %s)",
diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json
index c5fd6b93bd6..9ecec512231 100644
--- a/apps/files/l10n/hu_HU.json
+++ b/apps/files/l10n/hu_HU.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Érvénytelen mappa.",
"Files" : "Fájlkezelő",
"All files" : "Az összes állomány",
+ "Favorites" : "Kedvencek",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.",
"Total file size {size1} exceeds upload limit {size2}" : "A teljes fájlméret: {size1} meghaladja a feltöltési limitet: {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.",
@@ -44,10 +45,10 @@
"Could not create file" : "Az állomány nem hozható létre",
"Could not create folder" : "A mappa nem hozható létre",
"Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni",
+ "Rename" : "Átnevezés",
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
- "Rename" : "Átnevezés",
"Pending" : "Folyamatban",
"Error moving file." : "Hiba történt a fájl áthelyezése közben.",
"Error moving file" : "Az állomány áthelyezése nem sikerült.",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.",
"{dirs} and {files}" : "{dirs} és {files}",
+ "Favorite" : "Kedvenc",
"%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett",
"%s could not be renamed" : "%s átnevezése nem sikerült",
"Upload (max. %s)" : "Feltöltés (max. %s)",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index d8438537792..c28775af6a9 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Direktori tidak valid.",
"Files" : "Berkas",
"All files" : "Semua berkas",
+ "Favorites" : "Favorit",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte",
"Total file size {size1} exceeds upload limit {size2}" : "Jumlah ukuran berkas {size1} melampaui batas unggah {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Tidak dapat membuat berkas",
"Could not create folder" : "Tidak dapat membuat folder",
"Error fetching URL" : "Kesalahan saat mengambil URL",
+ "Rename" : "Ubah nama",
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
- "Rename" : "Ubah nama",
"Pending" : "Menunggu",
"Error moving file." : "Kesalahan saat memindahkan berkas.",
"Error moving file" : "Kesalahan saat memindahkan berkas",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.",
"{dirs} and {files}" : "{dirs} dan {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus",
"%s could not be renamed" : "%s tidak dapat diubah nama",
"Upload (max. %s)" : "Unggah (maks. %s)",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 38668a71d0a..3fa88e913e6 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Direktori tidak valid.",
"Files" : "Berkas",
"All files" : "Semua berkas",
+ "Favorites" : "Favorit",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte",
"Total file size {size1} exceeds upload limit {size2}" : "Jumlah ukuran berkas {size1} melampaui batas unggah {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa",
@@ -44,10 +45,10 @@
"Could not create file" : "Tidak dapat membuat berkas",
"Could not create folder" : "Tidak dapat membuat folder",
"Error fetching URL" : "Kesalahan saat mengambil URL",
+ "Rename" : "Ubah nama",
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
- "Rename" : "Ubah nama",
"Pending" : "Menunggu",
"Error moving file." : "Kesalahan saat memindahkan berkas.",
"Error moving file" : "Kesalahan saat memindahkan berkas",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.",
"{dirs} and {files}" : "{dirs} dan {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus",
"%s could not be renamed" : "%s tidak dapat diubah nama",
"Upload (max. %s)" : "Unggah (maks. %s)",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 72dcb93b3ff..04920dc308e 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -18,9 +18,9 @@ OC.L10N.register(
"Upload cancelled." : "Hætt við innsendingu.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.",
"{new_name} already exists" : "{new_name} er þegar til",
+ "Rename" : "Endurskýra",
"Delete" : "Eyða",
"Unshare" : "Hætta deilingu",
- "Rename" : "Endurskýra",
"Pending" : "Bíður",
"Error" : "Villa",
"Name" : "Nafn",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index ba575238d16..9db6d54bf4e 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -16,9 +16,9 @@
"Upload cancelled." : "Hætt við innsendingu.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.",
"{new_name} already exists" : "{new_name} er þegar til",
+ "Rename" : "Endurskýra",
"Delete" : "Eyða",
"Unshare" : "Hætta deilingu",
- "Rename" : "Endurskýra",
"Pending" : "Bíður",
"Error" : "Villa",
"Name" : "Nafn",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index b54e95685a1..eae685d1fe9 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Cartella non valida.",
"Files" : "File",
"All files" : "Tutti i file",
+ "Favorites" : "Preferiti",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile caricare {filename} poiché è una cartella oppure ha una dimensione di 0 byte.",
"Total file size {size1} exceeds upload limit {size2}" : "La dimensione totale del file {size1} supera il limite di caricamento {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Spazio insufficiente, stai caricando {size1}, ma è rimasto solo {size2}",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Impossibile creare il file",
"Could not create folder" : "Impossibile creare la cartella",
"Error fetching URL" : "Errore durante il recupero dello URL",
+ "Rename" : "Rinomina",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
- "Rename" : "Rinomina",
"Pending" : "In corso",
+ "Unable to determine date" : "Impossibile determinare la data",
"Error moving file." : "Errore durante lo spostamento del file.",
"Error moving file" : "Errore durante lo spostamento del file",
"Error" : "Errore",
@@ -70,6 +72,8 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Preferiti",
+ "Favorite" : "Preferito",
"%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato",
"%s could not be renamed" : "%s non può essere rinominato",
"Upload (max. %s)" : "Carica (massimo %s)",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index cbdb66c118f..9ba47017ca6 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Cartella non valida.",
"Files" : "File",
"All files" : "Tutti i file",
+ "Favorites" : "Preferiti",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile caricare {filename} poiché è una cartella oppure ha una dimensione di 0 byte.",
"Total file size {size1} exceeds upload limit {size2}" : "La dimensione totale del file {size1} supera il limite di caricamento {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Spazio insufficiente, stai caricando {size1}, ma è rimasto solo {size2}",
@@ -44,11 +45,12 @@
"Could not create file" : "Impossibile creare il file",
"Could not create folder" : "Impossibile creare la cartella",
"Error fetching URL" : "Errore durante il recupero dello URL",
+ "Rename" : "Rinomina",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
- "Rename" : "Rinomina",
"Pending" : "In corso",
+ "Unable to determine date" : "Impossibile determinare la data",
"Error moving file." : "Errore durante lo spostamento del file.",
"Error moving file" : "Errore durante lo spostamento del file",
"Error" : "Errore",
@@ -68,6 +70,8 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Preferiti",
+ "Favorite" : "Preferito",
"%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato",
"%s could not be renamed" : "%s non può essere rinominato",
"Upload (max. %s)" : "Carica (massimo %s)",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 0f11ad44f82..1dc320377b5 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "無効なディレクトリです。",
"Files" : "ファイル",
"All files" : "すべてのファイル",
+ "Favorites" : "お気に入り",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
"Total file size {size1} exceeds upload limit {size2}" : "合計ファイルサイズ {size1} はアップロード制限 {size2} を超過しています。",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "ファイルを作成できませんでした",
"Could not create folder" : "フォルダーを作成できませんでした",
"Error fetching URL" : "URL取得エラー",
+ "Rename" : "名前の変更",
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
- "Rename" : "名前の変更",
"Pending" : "中断",
"Error moving file." : "ファイル移動でエラー",
"Error moving file" : "ファイルの移動エラー",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。",
"{dirs} and {files}" : "{dirs} と {files}",
+ "Favorite" : "お気に入り",
"%s could not be renamed as it has been deleted" : "%s は削除された為、ファイル名を変更できません",
"%s could not be renamed" : "%sの名前を変更できませんでした",
"Upload (max. %s)" : "アップロード ( 最大 %s )",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index b18b25c2432..ce8ea8d9817 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -33,6 +33,7 @@
"Invalid directory." : "無効なディレクトリです。",
"Files" : "ファイル",
"All files" : "すべてのファイル",
+ "Favorites" : "お気に入り",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
"Total file size {size1} exceeds upload limit {size2}" : "合計ファイルサイズ {size1} はアップロード制限 {size2} を超過しています。",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
@@ -44,10 +45,10 @@
"Could not create file" : "ファイルを作成できませんでした",
"Could not create folder" : "フォルダーを作成できませんでした",
"Error fetching URL" : "URL取得エラー",
+ "Rename" : "名前の変更",
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
- "Rename" : "名前の変更",
"Pending" : "中断",
"Error moving file." : "ファイル移動でエラー",
"Error moving file" : "ファイルの移動エラー",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。",
"{dirs} and {files}" : "{dirs} と {files}",
+ "Favorite" : "お気に入り",
"%s could not be renamed as it has been deleted" : "%s は削除された為、ファイル名を変更できません",
"%s could not be renamed" : "%sの名前を変更できませんでした",
"Upload (max. %s)" : "アップロード ( 最大 %s )",
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index d23d8b860b4..fbd0da0438d 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -17,12 +17,13 @@ OC.L10N.register(
"Not enough storage available" : "საცავში საკმარისი ადგილი არ არის",
"Invalid directory." : "დაუშვებელი დირექტორია.",
"Files" : "ფაილები",
+ "Favorites" : "ფავორიტები",
"Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
"File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას",
"{new_name} already exists" : "{new_name} უკვე არსებობს",
+ "Rename" : "გადარქმევა",
"Delete" : "წაშლა",
"Unshare" : "გაუზიარებადი",
- "Rename" : "გადარქმევა",
"Pending" : "მოცდის რეჟიმში",
"Error" : "შეცდომა",
"Name" : "სახელი",
@@ -33,6 +34,7 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : [""],
"Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!",
"Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)",
+ "Favorite" : "ფავორიტი",
"File handling" : "ფაილის დამუშავება",
"Maximum upload size" : "მაქსიმუმ ატვირთის ზომა",
"max. possible: " : "მაქს. შესაძლებელი:",
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 512e96864f2..e0f585e74df 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -15,12 +15,13 @@
"Not enough storage available" : "საცავში საკმარისი ადგილი არ არის",
"Invalid directory." : "დაუშვებელი დირექტორია.",
"Files" : "ფაილები",
+ "Favorites" : "ფავორიტები",
"Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
"File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას",
"{new_name} already exists" : "{new_name} უკვე არსებობს",
+ "Rename" : "გადარქმევა",
"Delete" : "წაშლა",
"Unshare" : "გაუზიარებადი",
- "Rename" : "გადარქმევა",
"Pending" : "მოცდის რეჟიმში",
"Error" : "შეცდომა",
"Name" : "სახელი",
@@ -31,6 +32,7 @@
"_Uploading %n file_::_Uploading %n files_" : [""],
"Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!",
"Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)",
+ "Favorite" : "ფავორიტი",
"File handling" : "ფაილის დამუშავება",
"Maximum upload size" : "მაქსიმუმ ატვირთის ზომა",
"max. possible: " : "მაქს. შესაძლებელი:",
diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js
index f329a51bcf4..914996cee4f 100644
--- a/apps/files/l10n/km.js
+++ b/apps/files/l10n/km.js
@@ -11,9 +11,9 @@ OC.L10N.register(
"Files" : "ឯកសារ",
"Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
"{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
+ "Rename" : "ប្ដូរ​ឈ្មោះ",
"Delete" : "លុប",
"Unshare" : "លែង​ចែក​រំលែក",
- "Rename" : "ប្ដូរ​ឈ្មោះ",
"Pending" : "កំពុង​រង់ចាំ",
"Error" : "កំហុស",
"Name" : "ឈ្មោះ",
diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json
index bcd7be4c977..ef33a857c2a 100644
--- a/apps/files/l10n/km.json
+++ b/apps/files/l10n/km.json
@@ -9,9 +9,9 @@
"Files" : "ឯកសារ",
"Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
"{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ",
+ "Rename" : "ប្ដូរ​ឈ្មោះ",
"Delete" : "លុប",
"Unshare" : "លែង​ចែក​រំលែក",
- "Rename" : "ប្ដូរ​ឈ្មោះ",
"Pending" : "កំពុង​រង់ចាំ",
"Error" : "កំហុស",
"Name" : "ឈ្មោះ",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index a587e324998..7951ea1bee1 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.",
"Invalid directory." : "올바르지 않은 디렉터리입니다.",
"Files" : "파일",
+ "Favorites" : "즐겨찾기",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.",
"Upload cancelled." : "업로드가 취소되었습니다.",
"Could not get result from server." : "서버에서 결과를 가져올 수 없습니다.",
@@ -37,9 +38,9 @@ OC.L10N.register(
"Could not create file" : "파일을 만들 수 없음",
"Could not create folder" : "폴더를 만들 수 없음",
"Error fetching URL" : "URL을 가져올 수 없음",
+ "Rename" : "이름 바꾸기",
"Delete" : "삭제",
"Unshare" : "공유 해제",
- "Rename" : "이름 바꾸기",
"Pending" : "대기 중",
"Error moving file" : "파일 이동 오류",
"Error" : "오류",
@@ -58,6 +59,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.",
"{dirs} and {files}" : "{dirs} 그리고 {files}",
+ "Favorite" : "즐겨찾기",
"%s could not be renamed" : "%s의 이름을 변경할 수 없습니다",
"File handling" : "파일 처리",
"Maximum upload size" : "최대 업로드 크기",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 031925b5f5e..1718353d18f 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -26,6 +26,7 @@
"Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.",
"Invalid directory." : "올바르지 않은 디렉터리입니다.",
"Files" : "파일",
+ "Favorites" : "즐겨찾기",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.",
"Upload cancelled." : "업로드가 취소되었습니다.",
"Could not get result from server." : "서버에서 결과를 가져올 수 없습니다.",
@@ -35,9 +36,9 @@
"Could not create file" : "파일을 만들 수 없음",
"Could not create folder" : "폴더를 만들 수 없음",
"Error fetching URL" : "URL을 가져올 수 없음",
+ "Rename" : "이름 바꾸기",
"Delete" : "삭제",
"Unshare" : "공유 해제",
- "Rename" : "이름 바꾸기",
"Pending" : "대기 중",
"Error moving file" : "파일 이동 오류",
"Error" : "오류",
@@ -56,6 +57,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.",
"{dirs} and {files}" : "{dirs} 그리고 {files}",
+ "Favorite" : "즐겨찾기",
"%s could not be renamed" : "%s의 이름을 변경할 수 없습니다",
"File handling" : "파일 처리",
"Maximum upload size" : "최대 업로드 크기",
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 6b5211e1d9d..5601c0af159 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -9,11 +9,12 @@ OC.L10N.register(
"Missing a temporary folder" : "Et feelt en temporären Dossier",
"Failed to write to disk" : "Konnt net op den Disk schreiwen",
"Files" : "Dateien",
+ "Favorites" : "Favoriten",
"Upload cancelled." : "Upload ofgebrach.",
"File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.",
+ "Rename" : "Ëm-benennen",
"Delete" : "Läschen",
"Unshare" : "Net méi deelen",
- "Rename" : "Ëm-benennen",
"Error" : "Fehler",
"Name" : "Numm",
"Size" : "Gréisst",
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index 7b7ad7d5cff..46a656f1b2e 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -7,11 +7,12 @@
"Missing a temporary folder" : "Et feelt en temporären Dossier",
"Failed to write to disk" : "Konnt net op den Disk schreiwen",
"Files" : "Dateien",
+ "Favorites" : "Favoriten",
"Upload cancelled." : "Upload ofgebrach.",
"File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.",
+ "Rename" : "Ëm-benennen",
"Delete" : "Läschen",
"Unshare" : "Net méi deelen",
- "Rename" : "Ëm-benennen",
"Error" : "Fehler",
"Name" : "Numm",
"Size" : "Gréisst",
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index 089eb1d83ff..4c140e456a1 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.",
"Invalid directory." : "Neteisingas aplankas",
"Files" : "Failai",
+ "Favorites" : "Mėgstamiausi",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio",
"Upload cancelled." : "Įkėlimas atšauktas.",
"Could not get result from server." : "Nepavyko gauti rezultato iš serverio.",
@@ -37,9 +38,9 @@ OC.L10N.register(
"Could not create file" : "Neįmanoma sukurti failo",
"Could not create folder" : "Neįmanoma sukurti aplanko",
"Error fetching URL" : "Klauda gaunant URL",
+ "Rename" : "Pervadinti",
"Delete" : "Ištrinti",
"Unshare" : "Nebesidalinti",
- "Rename" : "Pervadinti",
"Pending" : "Laukiantis",
"Error moving file" : "Klaida perkeliant failą",
"Error" : "Klaida",
@@ -58,6 +59,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.",
"{dirs} and {files}" : "{dirs} ir {files}",
+ "Favorite" : "Mėgiamas",
"%s could not be renamed" : "%s negali būti pervadintas",
"File handling" : "Failų tvarkymas",
"Maximum upload size" : "Maksimalus įkeliamo failo dydis",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index d3de21aef97..ffff5c3b1df 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -26,6 +26,7 @@
"Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.",
"Invalid directory." : "Neteisingas aplankas",
"Files" : "Failai",
+ "Favorites" : "Mėgstamiausi",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio",
"Upload cancelled." : "Įkėlimas atšauktas.",
"Could not get result from server." : "Nepavyko gauti rezultato iš serverio.",
@@ -35,9 +36,9 @@
"Could not create file" : "Neįmanoma sukurti failo",
"Could not create folder" : "Neįmanoma sukurti aplanko",
"Error fetching URL" : "Klauda gaunant URL",
+ "Rename" : "Pervadinti",
"Delete" : "Ištrinti",
"Unshare" : "Nebesidalinti",
- "Rename" : "Pervadinti",
"Pending" : "Laukiantis",
"Error moving file" : "Klaida perkeliant failą",
"Error" : "Klaida",
@@ -56,6 +57,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.",
"{dirs} and {files}" : "{dirs} ir {files}",
+ "Favorite" : "Mėgiamas",
"%s could not be renamed" : "%s negali būti pervadintas",
"File handling" : "Failų tvarkymas",
"Maximum upload size" : "Maksimalus įkeliamo failo dydis",
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index 74bc5b50763..db9dccd432d 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -19,12 +19,13 @@ OC.L10N.register(
"Not enough storage available" : "Nav pietiekami daudz vietas",
"Invalid directory." : "Nederīga direktorija.",
"Files" : "Datnes",
+ "Favorites" : "Iecienītie",
"Upload cancelled." : "Augšupielāde ir atcelta.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.",
"{new_name} already exists" : "{new_name} jau eksistē",
+ "Rename" : "Pārsaukt",
"Delete" : "Dzēst",
"Unshare" : "Pārtraukt dalīšanos",
- "Rename" : "Pārsaukt",
"Pending" : "Gaida savu kārtu",
"Error" : "Kļūda",
"Name" : "Nosaukums",
@@ -36,6 +37,7 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!",
"Your storage is almost full ({usedSpacePercent}%)" : "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.",
+ "Favorite" : "Iecienītais",
"%s could not be renamed" : "%s nevar tikt pārsaukts",
"File handling" : "Datņu pārvaldība",
"Maximum upload size" : "Maksimālais datņu augšupielādes apjoms",
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index ebc5df7026f..13209f77980 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -17,12 +17,13 @@
"Not enough storage available" : "Nav pietiekami daudz vietas",
"Invalid directory." : "Nederīga direktorija.",
"Files" : "Datnes",
+ "Favorites" : "Iecienītie",
"Upload cancelled." : "Augšupielāde ir atcelta.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.",
"{new_name} already exists" : "{new_name} jau eksistē",
+ "Rename" : "Pārsaukt",
"Delete" : "Dzēst",
"Unshare" : "Pārtraukt dalīšanos",
- "Rename" : "Pārsaukt",
"Pending" : "Gaida savu kārtu",
"Error" : "Kļūda",
"Name" : "Nosaukums",
@@ -34,6 +35,7 @@
"Your storage is full, files can not be updated or synced anymore!" : "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!",
"Your storage is almost full ({usedSpacePercent}%)" : "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.",
+ "Favorite" : "Iecienītais",
"%s could not be renamed" : "%s nevar tikt pārsaukts",
"File handling" : "Datņu pārvaldība",
"Maximum upload size" : "Maksimālais datņu augšupielādes apjoms",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 218d014f8de..51c7843a773 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Upload failed. Could not find uploaded file" : "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека.",
"Invalid directory." : "Погрешна папка.",
"Files" : "Датотеки",
+ "Favorites" : "Омилени",
"Upload cancelled." : "Преземањето е прекинато.",
"Could not get result from server." : "Не можам да добијам резултат од серверот.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.",
@@ -32,9 +33,9 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} веќе постои",
"Could not create file" : "Не множам да креирам датотека",
"Could not create folder" : "Не можам да креирам папка",
+ "Rename" : "Преименувај",
"Delete" : "Избриши",
"Unshare" : "Не споделувај",
- "Rename" : "Преименувај",
"Pending" : "Чека",
"Error moving file" : "Грешка при префрлање на датотека",
"Error" : "Грешка",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 0ff8dd00d87..148f1201d88 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -23,6 +23,7 @@
"Upload failed. Could not find uploaded file" : "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека.",
"Invalid directory." : "Погрешна папка.",
"Files" : "Датотеки",
+ "Favorites" : "Омилени",
"Upload cancelled." : "Преземањето е прекинато.",
"Could not get result from server." : "Не можам да добијам резултат од серверот.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.",
@@ -30,9 +31,9 @@
"{new_name} already exists" : "{new_name} веќе постои",
"Could not create file" : "Не множам да креирам датотека",
"Could not create folder" : "Не можам да креирам папка",
+ "Rename" : "Преименувај",
"Delete" : "Избриши",
"Unshare" : "Не споделувај",
- "Rename" : "Преименувај",
"Pending" : "Чека",
"Error moving file" : "Грешка при префрлање на датотека",
"Error" : "Грешка",
diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js
index a97e955417e..97a0e0a6336 100644
--- a/apps/files/l10n/ms_MY.js
+++ b/apps/files/l10n/ms_MY.js
@@ -10,8 +10,8 @@ OC.L10N.register(
"Failed to write to disk" : "Gagal untuk disimpan",
"Files" : "Fail-fail",
"Upload cancelled." : "Muatnaik dibatalkan.",
- "Delete" : "Padam",
"Rename" : "Namakan",
+ "Delete" : "Padam",
"Pending" : "Dalam proses",
"Error" : "Ralat",
"Name" : "Nama",
diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json
index 8a64b1b7a7b..cab3a1013b0 100644
--- a/apps/files/l10n/ms_MY.json
+++ b/apps/files/l10n/ms_MY.json
@@ -8,8 +8,8 @@
"Failed to write to disk" : "Gagal untuk disimpan",
"Files" : "Fail-fail",
"Upload cancelled." : "Muatnaik dibatalkan.",
- "Delete" : "Padam",
"Rename" : "Namakan",
+ "Delete" : "Padam",
"Pending" : "Dalam proses",
"Error" : "Ralat",
"Name" : "Nama",
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index 32f1e97bd27..36f0d6d9f40 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Ugyldig katalog.",
"Files" : "Filer",
"All files" : "Alle filer",
+ "Favorites" : "Favoritter",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke laste opp {filename} fordi det er en mappe eller har 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Total filstørrelse {size1} overstiger grense for opplasting {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Klarte ikke å opprette fil",
"Could not create folder" : "Klarte ikke å opprette mappe",
"Error fetching URL" : "Feil ved henting av URL",
+ "Rename" : "Gi nytt navn",
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
- "Rename" : "Gi nytt navn",
"Pending" : "Ventende",
"Error moving file." : "Feil ved flytting av fil.",
"Error moving file" : "Feil ved flytting av fil",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Favoritt",
"%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet",
"%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index 47cab7d2615..f1f4cf54745 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Ugyldig katalog.",
"Files" : "Filer",
"All files" : "Alle filer",
+ "Favorites" : "Favoritter",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke laste opp {filename} fordi det er en mappe eller har 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "Total filstørrelse {size1} overstiger grense for opplasting {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig",
@@ -44,10 +45,10 @@
"Could not create file" : "Klarte ikke å opprette fil",
"Could not create folder" : "Klarte ikke å opprette mappe",
"Error fetching URL" : "Feil ved henting av URL",
+ "Rename" : "Gi nytt navn",
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
- "Rename" : "Gi nytt navn",
"Pending" : "Ventende",
"Error moving file." : "Feil ved flytting av fil.",
"Error moving file" : "Feil ved flytting av fil",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Favoritt",
"%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet",
"%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 07d4a559685..32f3571d350 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Ongeldige directory.",
"Files" : "Bestanden",
"All files" : "Alle bestanden",
+ "Favorites" : "Favorieten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan {filename} niet uploaden omdat het een map is of 0 bytes groot is",
"Total file size {size1} exceeds upload limit {size2}" : "Totale bestandsgrootte {size1} groter dan uploadlimiet {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. U upload {size1}, maar is is slechts {size2} beschikbaar",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Kon bestand niet creëren",
"Could not create folder" : "Kon niet creëren map",
"Error fetching URL" : "Fout bij ophalen URL",
+ "Rename" : "Naam wijzigen",
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
- "Rename" : "Naam wijzigen",
"Pending" : "In behandeling",
+ "Unable to determine date" : "Kon datum niet vaststellen",
"Error moving file." : "Fout bij verplaatsen bestand.",
"Error moving file" : "Fout bij verplaatsen bestand",
"Error" : "Fout",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.",
"{dirs} and {files}" : "{dirs} en {files}",
+ "Favorite" : "Favoriet",
"%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is",
"%s could not be renamed" : "%s kon niet worden hernoemd",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 30551f59cf0..2c656f981b2 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Ongeldige directory.",
"Files" : "Bestanden",
"All files" : "Alle bestanden",
+ "Favorites" : "Favorieten",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan {filename} niet uploaden omdat het een map is of 0 bytes groot is",
"Total file size {size1} exceeds upload limit {size2}" : "Totale bestandsgrootte {size1} groter dan uploadlimiet {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. U upload {size1}, maar is is slechts {size2} beschikbaar",
@@ -44,11 +45,12 @@
"Could not create file" : "Kon bestand niet creëren",
"Could not create folder" : "Kon niet creëren map",
"Error fetching URL" : "Fout bij ophalen URL",
+ "Rename" : "Naam wijzigen",
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
- "Rename" : "Naam wijzigen",
"Pending" : "In behandeling",
+ "Unable to determine date" : "Kon datum niet vaststellen",
"Error moving file." : "Fout bij verplaatsen bestand.",
"Error moving file" : "Fout bij verplaatsen bestand",
"Error" : "Fout",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.",
"{dirs} and {files}" : "{dirs} en {files}",
+ "Favorite" : "Favoriet",
"%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is",
"%s could not be renamed" : "%s kon niet worden hernoemd",
"Upload (max. %s)" : "Upload (max. %s)",
diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js
index 5889930e7f1..c0f3bcbecd5 100644
--- a/apps/files/l10n/nn_NO.js
+++ b/apps/files/l10n/nn_NO.js
@@ -21,14 +21,15 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.",
"Invalid directory." : "Ugyldig mappe.",
"Files" : "Filer",
+ "Favorites" : "Favorittar",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.",
"Upload cancelled." : "Opplasting avbroten.",
"Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
"{new_name} already exists" : "{new_name} finst allereie",
+ "Rename" : "Endra namn",
"Delete" : "Slett",
"Unshare" : "Udel",
- "Rename" : "Endra namn",
"Pending" : "Under vegs",
"Error moving file" : "Feil ved flytting av fil",
"Error" : "Feil",
@@ -42,6 +43,7 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Favoritt",
"%s could not be renamed" : "Klarte ikkje å omdøypa på %s",
"File handling" : "Filhandtering",
"Maximum upload size" : "Maksimal opplastingsstorleik",
diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json
index 3f3026655d8..cf263065c25 100644
--- a/apps/files/l10n/nn_NO.json
+++ b/apps/files/l10n/nn_NO.json
@@ -19,14 +19,15 @@
"Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.",
"Invalid directory." : "Ugyldig mappe.",
"Files" : "Filer",
+ "Favorites" : "Favorittar",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.",
"Upload cancelled." : "Opplasting avbroten.",
"Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
"{new_name} already exists" : "{new_name} finst allereie",
+ "Rename" : "Endra namn",
"Delete" : "Slett",
"Unshare" : "Udel",
- "Rename" : "Endra namn",
"Pending" : "Under vegs",
"Error moving file" : "Feil ved flytting av fil",
"Error" : "Feil",
@@ -40,6 +41,7 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.",
"{dirs} and {files}" : "{dirs} og {files}",
+ "Favorite" : "Favoritt",
"%s could not be renamed" : "Klarte ikkje å omdøypa på %s",
"File handling" : "Filhandtering",
"Maximum upload size" : "Maksimal opplastingsstorleik",
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index 4d427297080..8d7159bce18 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -10,9 +10,9 @@ OC.L10N.register(
"Files" : "Fichièrs",
"Upload cancelled." : "Amontcargar anullat.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
+ "Rename" : "Torna nomenar",
"Delete" : "Escafa",
"Unshare" : "Pas partejador",
- "Rename" : "Torna nomenar",
"Pending" : "Al esperar",
"Error" : "Error",
"Name" : "Nom",
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index 4f316b62e9e..7255d151b8d 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -8,9 +8,9 @@
"Files" : "Fichièrs",
"Upload cancelled." : "Amontcargar anullat.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
+ "Rename" : "Torna nomenar",
"Delete" : "Escafa",
"Unshare" : "Pas partejador",
- "Rename" : "Torna nomenar",
"Pending" : "Al esperar",
"Error" : "Error",
"Name" : "Nom",
diff --git a/apps/files/l10n/pa.js b/apps/files/l10n/pa.js
index ec6847929e3..342d4e8d9e6 100644
--- a/apps/files/l10n/pa.js
+++ b/apps/files/l10n/pa.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ",
"Files" : "ਫਾਇਲਾਂ",
- "Delete" : "ਹਟਾਓ",
"Rename" : "ਨਾਂ ਬਦਲੋ",
+ "Delete" : "ਹਟਾਓ",
"Error" : "ਗਲਤੀ",
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
diff --git a/apps/files/l10n/pa.json b/apps/files/l10n/pa.json
index b8c98948c73..38f8a859333 100644
--- a/apps/files/l10n/pa.json
+++ b/apps/files/l10n/pa.json
@@ -1,8 +1,8 @@
{ "translations": {
"Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ",
"Files" : "ਫਾਇਲਾਂ",
- "Delete" : "ਹਟਾਓ",
"Rename" : "ਨਾਂ ਬਦਲੋ",
+ "Delete" : "ਹਟਾਓ",
"Error" : "ਗਲਤੀ",
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index da1966b203c..da1d141df7e 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Zła ścieżka.",
"Files" : "Pliki",
"All files" : "Wszystkie pliki",
+ "Favorites" : "Ulubione",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nie można przesłać {filename} być może jest katalogiem lub posiada 0 bajtów",
"Total file size {size1} exceeds upload limit {size2}" : "Całkowity rozmiar {size1} przekracza limit uploadu {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Brak wolnej przestrzeni, przesyłasz {size1} a pozostało tylko {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Nie można utworzyć pliku",
"Could not create folder" : "Nie można utworzyć folderu",
"Error fetching URL" : "Błąd przy pobieraniu adresu URL",
+ "Rename" : "Zmień nazwę",
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
- "Rename" : "Zmień nazwę",
"Pending" : "Oczekujące",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
"Error moving file" : "Błąd prz przenoszeniu pliku",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Ulubione",
"%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty",
"%s could not be renamed" : "%s nie można zmienić nazwy",
"Upload (max. %s)" : "Wysyłka (max. %s)",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 447145f221c..5c6c12329eb 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Zła ścieżka.",
"Files" : "Pliki",
"All files" : "Wszystkie pliki",
+ "Favorites" : "Ulubione",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nie można przesłać {filename} być może jest katalogiem lub posiada 0 bajtów",
"Total file size {size1} exceeds upload limit {size2}" : "Całkowity rozmiar {size1} przekracza limit uploadu {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Brak wolnej przestrzeni, przesyłasz {size1} a pozostało tylko {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Nie można utworzyć pliku",
"Could not create folder" : "Nie można utworzyć folderu",
"Error fetching URL" : "Błąd przy pobieraniu adresu URL",
+ "Rename" : "Zmień nazwę",
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
- "Rename" : "Zmień nazwę",
"Pending" : "Oczekujące",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
"Error moving file" : "Błąd prz przenoszeniu pliku",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorite" : "Ulubione",
"%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty",
"%s could not be renamed" : "%s nie można zmienić nazwy",
"Upload (max. %s)" : "Wysyłka (max. %s)",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index ede4f2521f3..d8b8d58541d 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Diretório inválido.",
"Files" : "Arquivos",
"All files" : "Todos os arquivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de fazer o envio de {filename}, pois é um diretório ou tem 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do arquivo {size1} excede o limite de envio {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Não foi possível criar o arquivo",
"Could not create folder" : "Não foi possível criar a pasta",
"Error fetching URL" : "Erro ao buscar URL",
+ "Rename" : "Renomear",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
- "Rename" : "Renomear",
"Pending" : "Pendente",
+ "Unable to determine date" : "Impossível determinar a data",
"Error moving file." : "Erro movendo o arquivo.",
"Error moving file" : "Erro movendo o arquivo",
"Error" : "Erro",
@@ -70,6 +72,8 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Favorito",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado",
"%s could not be renamed" : "%s não pode ser renomeado",
"Upload (max. %s)" : "Envio (max. %s)",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 10faf5ce8c8..f44ea4d1156 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Diretório inválido.",
"Files" : "Arquivos",
"All files" : "Todos os arquivos",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de fazer o envio de {filename}, pois é um diretório ou tem 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do arquivo {size1} excede o limite de envio {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}",
@@ -44,11 +45,12 @@
"Could not create file" : "Não foi possível criar o arquivo",
"Could not create folder" : "Não foi possível criar a pasta",
"Error fetching URL" : "Erro ao buscar URL",
+ "Rename" : "Renomear",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
- "Rename" : "Renomear",
"Pending" : "Pendente",
+ "Unable to determine date" : "Impossível determinar a data",
"Error moving file." : "Erro movendo o arquivo.",
"Error moving file" : "Erro movendo o arquivo",
"Error" : "Erro",
@@ -68,6 +70,8 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Favorito",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado",
"%s could not be renamed" : "%s não pode ser renomeado",
"Upload (max. %s)" : "Envio (max. %s)",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 2bb9e4d27d6..2af3528ce15 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Diretoria inválida.",
"Files" : "Ficheiros",
"All files" : "Todos os ficheiros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de enviar {filename}, dado que é uma pasta, ou tem 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do ficheiro {size1} excede o limite de carregamento {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não existe espaço suficiente. Está a enviar {size1} mas apenas existe {size2} disponível",
@@ -46,10 +47,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",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado",
"%s could not be renamed" : "%s não pode ser renomeada",
"Upload (max. %s)" : "Enviar (max. %s)",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 075e9b30006..861d6e189a6 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Diretoria inválida.",
"Files" : "Ficheiros",
"All files" : "Todos os ficheiros",
+ "Favorites" : "Favoritos",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de enviar {filename}, dado que é uma pasta, ou tem 0 bytes",
"Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do ficheiro {size1} excede o limite de carregamento {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não existe espaço suficiente. Está a enviar {size1} mas apenas existe {size2} disponível",
@@ -44,10 +45,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",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.",
"{dirs} and {files}" : "{dirs} e {files}",
+ "Favorite" : "Favorito",
"%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado",
"%s could not be renamed" : "%s não pode ser renomeada",
"Upload (max. %s)" : "Enviar (max. %s)",
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index fb242789296..33cd69a9685 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Dosar nevalid.",
"Files" : "Fișiere",
"All files" : "Toate fișierele.",
+ "Favorites" : "Favorite",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți",
"Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Nu s-a putut crea fisierul",
"Could not create folder" : "Nu s-a putut crea folderul",
"Error fetching URL" : "Eroare încarcare URL",
+ "Rename" : "Redenumește",
"Delete" : "Șterge",
"Disconnect storage" : "Stocare deconectata",
"Unshare" : "Anulare",
- "Rename" : "Redenumește",
"Pending" : "În așteptare",
"Error moving file." : "Eroare la mutarea fișierului.",
"Error moving file" : "Eroare la mutarea fișierului",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele",
"{dirs} and {files}" : "{dirs} și {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters",
"%s could not be renamed" : "%s nu a putut fi redenumit",
"Upload (max. %s)" : "Încarcă (max. %s)",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index 5ebb191e2e1..0a960185212 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Dosar nevalid.",
"Files" : "Fișiere",
"All files" : "Toate fișierele.",
+ "Favorites" : "Favorite",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți",
"Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas",
@@ -44,10 +45,10 @@
"Could not create file" : "Nu s-a putut crea fisierul",
"Could not create folder" : "Nu s-a putut crea folderul",
"Error fetching URL" : "Eroare încarcare URL",
+ "Rename" : "Redenumește",
"Delete" : "Șterge",
"Disconnect storage" : "Stocare deconectata",
"Unshare" : "Anulare",
- "Rename" : "Redenumește",
"Pending" : "În așteptare",
"Error moving file." : "Eroare la mutarea fișierului.",
"Error moving file" : "Eroare la mutarea fișierului",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele",
"{dirs} and {files}" : "{dirs} și {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters",
"%s could not be renamed" : "%s nu a putut fi redenumit",
"Upload (max. %s)" : "Încarcă (max. %s)",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 7d3f3dd8a85..59074e43ec6 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Неверный каталог.",
"Files" : "Файлы",
"All files" : "Все файлы",
+ "Favorites" : "Избранное",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера",
"Total file size {size1} exceeds upload limit {size2}" : "Полный размер файла {size1} превышает лимит по загрузке {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Не удалось создать файл",
"Could not create folder" : "Не удалось создать каталог",
"Error fetching URL" : "Ошибка получения URL",
+ "Rename" : "Переименовать",
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединиться от хранилища",
"Unshare" : "Закрыть доступ",
- "Rename" : "Переименовать",
"Pending" : "Ожидание",
"Error moving file." : "Ошибка перемещения файла.",
"Error moving file" : "Ошибка при перемещении файла",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.",
"{dirs} and {files}" : "{dirs} и {files}",
+ "Favorite" : "Избранное",
"%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.",
"%s could not be renamed" : "%s не может быть переименован",
"Upload (max. %s)" : "Загрузка (Максимум: %s)",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index d6a3759b5a0..a4d775b37ff 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Неверный каталог.",
"Files" : "Файлы",
"All files" : "Все файлы",
+ "Favorites" : "Избранное",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера",
"Total file size {size1} exceeds upload limit {size2}" : "Полный размер файла {size1} превышает лимит по загрузке {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Не удалось создать файл",
"Could not create folder" : "Не удалось создать каталог",
"Error fetching URL" : "Ошибка получения URL",
+ "Rename" : "Переименовать",
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединиться от хранилища",
"Unshare" : "Закрыть доступ",
- "Rename" : "Переименовать",
"Pending" : "Ожидание",
"Error moving file." : "Ошибка перемещения файла.",
"Error moving file" : "Ошибка при перемещении файла",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.",
"{dirs} and {files}" : "{dirs} и {files}",
+ "Favorite" : "Избранное",
"%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.",
"%s could not be renamed" : "%s не может быть переименован",
"Upload (max. %s)" : "Загрузка (Максимум: %s)",
diff --git a/apps/files/l10n/si_LK.js b/apps/files/l10n/si_LK.js
index fbba973c6c2..5b0c15bb9c8 100644
--- a/apps/files/l10n/si_LK.js
+++ b/apps/files/l10n/si_LK.js
@@ -11,9 +11,9 @@ OC.L10N.register(
"Files" : "ගොනු",
"Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
+ "Rename" : "නැවත නම් කරන්න",
"Delete" : "මකා දමන්න",
"Unshare" : "නොබෙදු",
- "Rename" : "නැවත නම් කරන්න",
"Error" : "දෝෂයක්",
"Name" : "නම",
"Size" : "ප්‍රමාණය",
diff --git a/apps/files/l10n/si_LK.json b/apps/files/l10n/si_LK.json
index b76adf30052..7321f24d766 100644
--- a/apps/files/l10n/si_LK.json
+++ b/apps/files/l10n/si_LK.json
@@ -9,9 +9,9 @@
"Files" : "ගොනු",
"Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
+ "Rename" : "නැවත නම් කරන්න",
"Delete" : "මකා දමන්න",
"Unshare" : "නොබෙදු",
- "Rename" : "නැවත නම් කරන්න",
"Error" : "දෝෂයක්",
"Name" : "නම",
"Size" : "ප්‍රමාණය",
diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js
index f4f2ecb66ea..78da2ae1e3c 100644
--- a/apps/files/l10n/sk_SK.js
+++ b/apps/files/l10n/sk_SK.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Neplatný priečinok.",
"Files" : "Súbory",
"All files" : "Všetky súbory",
+ "Favorites" : "Obľúbené",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemožno nahrať súbor {filename}, pretože je to priečinok, alebo má 0 bitov",
"Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Nemožno vytvoriť súbor",
"Could not create folder" : "Nemožno vytvoriť priečinok",
"Error fetching URL" : "Chyba pri načítavaní URL",
+ "Rename" : "Premenovať",
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zrušiť zdieľanie",
- "Rename" : "Premenovať",
"Pending" : "Čaká",
"Error moving file." : "Chyba pri presune súboru.",
"Error moving file" : "Chyba pri presúvaní súboru",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.",
"{dirs} and {files}" : "{dirs} a {files}",
+ "Favorite" : "Obľúbené",
"%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný",
"%s could not be renamed" : "%s nemohol byť premenovaný",
"Upload (max. %s)" : "Nahrať (max. %s)",
diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json
index ab4e176c9c6..b413bc88b87 100644
--- a/apps/files/l10n/sk_SK.json
+++ b/apps/files/l10n/sk_SK.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Neplatný priečinok.",
"Files" : "Súbory",
"All files" : "Všetky súbory",
+ "Favorites" : "Obľúbené",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemožno nahrať súbor {filename}, pretože je to priečinok, alebo má 0 bitov",
"Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Nemožno vytvoriť súbor",
"Could not create folder" : "Nemožno vytvoriť priečinok",
"Error fetching URL" : "Chyba pri načítavaní URL",
+ "Rename" : "Premenovať",
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zrušiť zdieľanie",
- "Rename" : "Premenovať",
"Pending" : "Čaká",
"Error moving file." : "Chyba pri presune súboru.",
"Error moving file" : "Chyba pri presúvaní súboru",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.",
"{dirs} and {files}" : "{dirs} a {files}",
+ "Favorite" : "Obľúbené",
"%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný",
"%s could not be renamed" : "%s nemohol byť premenovaný",
"Upload (max. %s)" : "Nahrať (max. %s)",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index d9dfb5bec46..6f2eac23659 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Neveljavna mapa.",
"Files" : "Datoteke",
"All files" : "Vse datoteke",
+ "Favorites" : "Priljubljeni",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.",
"Total file size {size1} exceeds upload limit {size2}" : "Skupna velikost {size1} presega omejitev velikosti {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.",
@@ -46,11 +47,12 @@ OC.L10N.register(
"Could not create file" : "Ni mogoče ustvariti datoteke",
"Could not create folder" : "Ni mogoče ustvariti mape",
"Error fetching URL" : "Napaka pridobivanja naslova URL",
+ "Rename" : "Preimenuj",
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
- "Rename" : "Preimenuj",
"Pending" : "V čakanju ...",
+ "Unable to determine date" : "Ni mogoče določiti datuma",
"Error moving file." : "Napaka premikanja datoteke.",
"Error moving file" : "Napaka premikanja datoteke",
"Error" : "Napaka",
@@ -70,6 +72,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.",
"{dirs} and {files}" : "{dirs} in {files}",
+ "Favorite" : "Priljubljeno",
"%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.",
"%s could not be renamed" : "%s ni mogoče preimenovati",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index a2e28a2e058..5d7b55ac45b 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Neveljavna mapa.",
"Files" : "Datoteke",
"All files" : "Vse datoteke",
+ "Favorites" : "Priljubljeni",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.",
"Total file size {size1} exceeds upload limit {size2}" : "Skupna velikost {size1} presega omejitev velikosti {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.",
@@ -44,11 +45,12 @@
"Could not create file" : "Ni mogoče ustvariti datoteke",
"Could not create folder" : "Ni mogoče ustvariti mape",
"Error fetching URL" : "Napaka pridobivanja naslova URL",
+ "Rename" : "Preimenuj",
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
- "Rename" : "Preimenuj",
"Pending" : "V čakanju ...",
+ "Unable to determine date" : "Ni mogoče določiti datuma",
"Error moving file." : "Napaka premikanja datoteke.",
"Error moving file" : "Napaka premikanja datoteke",
"Error" : "Napaka",
@@ -68,6 +70,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.",
"{dirs} and {files}" : "{dirs} in {files}",
+ "Favorite" : "Priljubljeno",
"%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.",
"%s could not be renamed" : "%s ni mogoče preimenovati",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 00eb892333f..dcebeb73d2c 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -46,10 +46,10 @@ OC.L10N.register(
"Could not create file" : "Skedari nuk mund të krijohet",
"Could not create folder" : "I pamundur krijimi i kartelës",
"Error fetching URL" : "Gabim në ngarkimin e URL",
+ "Rename" : "Riemëro",
"Delete" : "Fshi",
"Disconnect storage" : "Shkëput hapësirën e memorizimit",
"Unshare" : "Hiq ndarjen",
- "Rename" : "Riemëro",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
"Error moving file" : "Gabim lëvizjen dokumentave",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 3abc90c7427..f0eee84f707 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -44,10 +44,10 @@
"Could not create file" : "Skedari nuk mund të krijohet",
"Could not create folder" : "I pamundur krijimi i kartelës",
"Error fetching URL" : "Gabim në ngarkimin e URL",
+ "Rename" : "Riemëro",
"Delete" : "Fshi",
"Disconnect storage" : "Shkëput hapësirën e memorizimit",
"Unshare" : "Hiq ndarjen",
- "Rename" : "Riemëro",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
"Error moving file" : "Gabim lëvizjen dokumentave",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index a9c17d8c7c9..bdf93300749 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -19,9 +19,9 @@ OC.L10N.register(
"Upload cancelled." : "Отпремање је прекинуто.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.",
"{new_name} already exists" : "{new_name} већ постоји",
+ "Rename" : "Преименуј",
"Delete" : "Обриши",
"Unshare" : "Укини дељење",
- "Rename" : "Преименуј",
"Pending" : "На чекању",
"Error" : "Грешка",
"Name" : "Име",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index b486c13f640..a373aea5154 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -17,9 +17,9 @@
"Upload cancelled." : "Отпремање је прекинуто.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.",
"{new_name} already exists" : "{new_name} већ постоји",
+ "Rename" : "Преименуј",
"Delete" : "Обриши",
"Unshare" : "Укини дељење",
- "Rename" : "Преименуј",
"Pending" : "На чекању",
"Error" : "Грешка",
"Name" : "Име",
diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js
index 85fb77f2474..29c740bac3f 100644
--- a/apps/files/l10n/sr@latin.js
+++ b/apps/files/l10n/sr@latin.js
@@ -7,9 +7,9 @@ OC.L10N.register(
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Files" : "Fajlovi",
+ "Rename" : "Preimenij",
"Delete" : "Obriši",
"Unshare" : "Ukljoni deljenje",
- "Rename" : "Preimenij",
"Error" : "Greška",
"Name" : "Ime",
"Size" : "Veličina",
diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json
index 8c91d7a58b3..c971c6e10c2 100644
--- a/apps/files/l10n/sr@latin.json
+++ b/apps/files/l10n/sr@latin.json
@@ -5,9 +5,9 @@
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Files" : "Fajlovi",
+ "Rename" : "Preimenij",
"Delete" : "Obriši",
"Unshare" : "Ukljoni deljenje",
- "Rename" : "Preimenij",
"Error" : "Greška",
"Name" : "Ime",
"Size" : "Veličina",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index fddc56639d6..343fefebd92 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -31,6 +31,7 @@ OC.L10N.register(
"Invalid directory." : "Felaktig mapp.",
"Files" : "Filer",
"All files" : "Alla filer",
+ "Favorites" : "Favoriter",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan inte ladda upp {filename} eftersom den antingen är en mapp eller har 0 bytes.",
"Total file size {size1} exceeds upload limit {size2}" : "Totala filstorleken {size1} överskrider uppladdningsgränsen {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.",
@@ -42,9 +43,9 @@ OC.L10N.register(
"Could not create file" : "Kunde ej skapa fil",
"Could not create folder" : "Kunde ej skapa katalog",
"Error fetching URL" : "Fel vid hämtning av URL",
+ "Rename" : "Byt namn",
"Delete" : "Radera",
"Unshare" : "Sluta dela",
- "Rename" : "Byt namn",
"Pending" : "Väntar",
"Error moving file." : "Fel vid flytt av fil.",
"Error moving file" : "Fel uppstod vid flyttning av fil",
@@ -65,6 +66,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.",
"{dirs} and {files}" : "{dirs} och {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed" : "%s kunde inte namnändras",
"Upload (max. %s)" : "Ladda upp (max. %s)",
"File handling" : "Filhantering",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 1fca280c405..46d2ce062e3 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -29,6 +29,7 @@
"Invalid directory." : "Felaktig mapp.",
"Files" : "Filer",
"All files" : "Alla filer",
+ "Favorites" : "Favoriter",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan inte ladda upp {filename} eftersom den antingen är en mapp eller har 0 bytes.",
"Total file size {size1} exceeds upload limit {size2}" : "Totala filstorleken {size1} överskrider uppladdningsgränsen {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.",
@@ -40,9 +41,9 @@
"Could not create file" : "Kunde ej skapa fil",
"Could not create folder" : "Kunde ej skapa katalog",
"Error fetching URL" : "Fel vid hämtning av URL",
+ "Rename" : "Byt namn",
"Delete" : "Radera",
"Unshare" : "Sluta dela",
- "Rename" : "Byt namn",
"Pending" : "Väntar",
"Error moving file." : "Fel vid flytt av fil.",
"Error moving file" : "Fel uppstod vid flyttning av fil",
@@ -63,6 +64,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.",
"{dirs} and {files}" : "{dirs} och {files}",
+ "Favorite" : "Favorit",
"%s could not be renamed" : "%s kunde inte namnändras",
"Upload (max. %s)" : "Ladda upp (max. %s)",
"File handling" : "Filhantering",
diff --git a/apps/files/l10n/ta_LK.js b/apps/files/l10n/ta_LK.js
index 4dfdcd82faf..e4611e1c2f6 100644
--- a/apps/files/l10n/ta_LK.js
+++ b/apps/files/l10n/ta_LK.js
@@ -10,12 +10,13 @@ OC.L10N.register(
"Missing a temporary folder" : "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை",
"Failed to write to disk" : "வட்டில் எழுத முடியவில்லை",
"Files" : "கோப்புகள்",
+ "Favorites" : "விருப்பங்கள்",
"Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
"File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.",
"{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
+ "Rename" : "பெயர்மாற்றம்",
"Delete" : "நீக்குக",
"Unshare" : "பகிரப்படாதது",
- "Rename" : "பெயர்மாற்றம்",
"Pending" : "நிலுவையிலுள்ள",
"Error" : "வழு",
"Name" : "பெயர்",
@@ -24,6 +25,7 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
"_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "Favorite" : "விருப்பமான",
"File handling" : "கோப்பு கையாளுதல்",
"Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ",
"max. possible: " : "ஆகக் கூடியது:",
diff --git a/apps/files/l10n/ta_LK.json b/apps/files/l10n/ta_LK.json
index ec79b1713e9..59018427a8f 100644
--- a/apps/files/l10n/ta_LK.json
+++ b/apps/files/l10n/ta_LK.json
@@ -8,12 +8,13 @@
"Missing a temporary folder" : "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை",
"Failed to write to disk" : "வட்டில் எழுத முடியவில்லை",
"Files" : "கோப்புகள்",
+ "Favorites" : "விருப்பங்கள்",
"Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
"File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.",
"{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது",
+ "Rename" : "பெயர்மாற்றம்",
"Delete" : "நீக்குக",
"Unshare" : "பகிரப்படாதது",
- "Rename" : "பெயர்மாற்றம்",
"Pending" : "நிலுவையிலுள்ள",
"Error" : "வழு",
"Name" : "பெயர்",
@@ -22,6 +23,7 @@
"_%n folder_::_%n folders_" : ["",""],
"_%n file_::_%n files_" : ["",""],
"_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "Favorite" : "விருப்பமான",
"File handling" : "கோப்பு கையாளுதல்",
"Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ",
"max. possible: " : "ஆகக் கூடியது:",
diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js
index 8da4193704d..c9aadba18a8 100644
--- a/apps/files/l10n/th_TH.js
+++ b/apps/files/l10n/th_TH.js
@@ -17,12 +17,13 @@ OC.L10N.register(
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" : "ไฟล์",
+ "Favorites" : "รายการโปรด",
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
+ "Rename" : "เปลี่ยนชื่อ",
"Delete" : "ลบ",
"Unshare" : "ยกเลิกการแชร์",
- "Rename" : "เปลี่ยนชื่อ",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Error" : "ข้อผิดพลาด",
"Name" : "ชื่อ",
@@ -33,6 +34,7 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : [""],
"Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป",
"Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)",
+ "Favorite" : "รายการโปรด",
"File handling" : "การจัดกาไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
"max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ",
diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json
index 90fd9c7bd3d..21a9eb71165 100644
--- a/apps/files/l10n/th_TH.json
+++ b/apps/files/l10n/th_TH.json
@@ -15,12 +15,13 @@
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" : "ไฟล์",
+ "Favorites" : "รายการโปรด",
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
+ "Rename" : "เปลี่ยนชื่อ",
"Delete" : "ลบ",
"Unshare" : "ยกเลิกการแชร์",
- "Rename" : "เปลี่ยนชื่อ",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Error" : "ข้อผิดพลาด",
"Name" : "ชื่อ",
@@ -31,6 +32,7 @@
"_Uploading %n file_::_Uploading %n files_" : [""],
"Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป",
"Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)",
+ "Favorite" : "รายการโปรด",
"File handling" : "การจัดกาไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
"max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index be5bebd6a24..73e16fe1355 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Geçersiz dizin.",
"Files" : "Dosyalar",
"All files" : "Tüm dosyalar",
+ "Favorites" : "Sık Kullanılanlar",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi",
"Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Dosya oluşturulamadı",
"Could not create folder" : "Klasör oluşturulamadı",
"Error fetching URL" : "Adres getirilirken hata",
+ "Rename" : "Yeniden adlandır",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
- "Rename" : "Yeniden adlandır",
"Pending" : "Bekliyor",
"Error moving file." : "Dosya taşıma hatası.",
"Error moving file" : "Dosya taşıma hatası",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.",
"{dirs} and {files}" : "{dirs} ve {files}",
+ "Favorite" : "Sık Kullanılan",
"%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı",
"%s could not be renamed" : "%s yeniden adlandırılamadı",
"Upload (max. %s)" : "Yükle (azami: %s)",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 6c03db5090b..ed310b82cf8 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Geçersiz dizin.",
"Files" : "Dosyalar",
"All files" : "Tüm dosyalar",
+ "Favorites" : "Sık Kullanılanlar",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi",
"Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut",
@@ -44,10 +45,10 @@
"Could not create file" : "Dosya oluşturulamadı",
"Could not create folder" : "Klasör oluşturulamadı",
"Error fetching URL" : "Adres getirilirken hata",
+ "Rename" : "Yeniden adlandır",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
- "Rename" : "Yeniden adlandır",
"Pending" : "Bekliyor",
"Error moving file." : "Dosya taşıma hatası.",
"Error moving file" : "Dosya taşıma hatası",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.",
"{dirs} and {files}" : "{dirs} ve {files}",
+ "Favorite" : "Sık Kullanılan",
"%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı",
"%s could not be renamed" : "%s yeniden adlandırılamadı",
"Upload (max. %s)" : "Yükle (azami: %s)",
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index c3d9d839c2f..d01ecdec9db 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -9,12 +9,13 @@ OC.L10N.register(
"Failed to write to disk" : "دىسكىغا يازالمىدى",
"Not enough storage available" : "يېتەرلىك ساقلاش بوشلۇقى يوق",
"Files" : "ھۆججەتلەر",
+ "Favorites" : "يىغقۇچ",
"Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.",
"File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.",
"{new_name} already exists" : "{new_name} مەۋجۇت",
+ "Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
"Unshare" : "ھەمبەھىرلىمە",
- "Rename" : "ئات ئۆزگەرت",
"Pending" : "كۈتۈۋاتىدۇ",
"Error" : "خاتالىق",
"Name" : "ئاتى",
@@ -23,6 +24,7 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : [""],
"_%n file_::_%n files_" : [""],
"_Uploading %n file_::_Uploading %n files_" : [""],
+ "Favorite" : "يىغقۇچ",
"Save" : "ساقلا",
"WebDAV" : "WebDAV",
"New" : "يېڭى",
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index b0a267e31e8..06b3e86a52d 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -7,12 +7,13 @@
"Failed to write to disk" : "دىسكىغا يازالمىدى",
"Not enough storage available" : "يېتەرلىك ساقلاش بوشلۇقى يوق",
"Files" : "ھۆججەتلەر",
+ "Favorites" : "يىغقۇچ",
"Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.",
"File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.",
"{new_name} already exists" : "{new_name} مەۋجۇت",
+ "Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
"Unshare" : "ھەمبەھىرلىمە",
- "Rename" : "ئات ئۆزگەرت",
"Pending" : "كۈتۈۋاتىدۇ",
"Error" : "خاتالىق",
"Name" : "ئاتى",
@@ -21,6 +22,7 @@
"_%n folder_::_%n folders_" : [""],
"_%n file_::_%n files_" : [""],
"_Uploading %n file_::_Uploading %n files_" : [""],
+ "Favorite" : "يىغقۇچ",
"Save" : "ساقلا",
"WebDAV" : "WebDAV",
"New" : "يېڭى",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 14ca3192469..0a912e9641d 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "Невірний каталог.",
"Files" : "Файли",
"All files" : "Усі файли",
+ "Favorites" : "Улюблені",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Неможливо завантажити {filename}, оскільки це каталог або має нульовий розмір.",
"Total file size {size1} exceeds upload limit {size2}" : "Розмір файлу {size1} перевищує обмеження {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостатньо вільного місця, ви завантажуєте {size1}, а залишилося лише {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "Не вдалося створити файл",
"Could not create folder" : "Не вдалося створити теку",
"Error fetching URL" : "Помилка отримання URL",
+ "Rename" : "Перейменувати",
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
- "Rename" : "Перейменувати",
"Pending" : "Очікування",
"Error moving file." : "Помилка переміщення файлу.",
"Error moving file" : "Помилка переміщення файлу",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.",
"{dirs} and {files}" : "{dirs} і {files}",
+ "Favorite" : "Улюблений",
"%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений",
"%s could not be renamed" : "%s не може бути перейменований",
"Upload (max. %s)" : "Завантаження (макс. %s)",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index d1340773365..dfba94d5f09 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -33,6 +33,7 @@
"Invalid directory." : "Невірний каталог.",
"Files" : "Файли",
"All files" : "Усі файли",
+ "Favorites" : "Улюблені",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Неможливо завантажити {filename}, оскільки це каталог або має нульовий розмір.",
"Total file size {size1} exceeds upload limit {size2}" : "Розмір файлу {size1} перевищує обмеження {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостатньо вільного місця, ви завантажуєте {size1}, а залишилося лише {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "Не вдалося створити файл",
"Could not create folder" : "Не вдалося створити теку",
"Error fetching URL" : "Помилка отримання URL",
+ "Rename" : "Перейменувати",
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
- "Rename" : "Перейменувати",
"Pending" : "Очікування",
"Error moving file." : "Помилка переміщення файлу.",
"Error moving file" : "Помилка переміщення файлу",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.",
"{dirs} and {files}" : "{dirs} і {files}",
+ "Favorite" : "Улюблений",
"%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений",
"%s could not be renamed" : "%s не може бути перейменований",
"Upload (max. %s)" : "Завантаження (макс. %s)",
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index c718d000f29..57b8687e809 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Upload failed. Could not get file info." : "Tải lên thất bại. Không thể có được thông tin tập tin.",
"Invalid directory." : "Thư mục không hợp lệ",
"Files" : "Tập tin",
+ "Favorites" : "Ưa thích",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "không thể tải {filename} lên do nó là một thư mục hoặc có kích thước bằng 0 byte",
"Upload cancelled." : "Hủy tải lên",
"Could not get result from server." : "Không thể nhận được kết quả từ máy chủ.",
@@ -36,9 +37,9 @@ OC.L10N.register(
"{new_name} already exists" : "{new_name} đã tồn tại",
"Could not create file" : "Không thể tạo file",
"Could not create folder" : "Không thể tạo thư mục",
+ "Rename" : "Sửa tên",
"Delete" : "Xóa",
"Unshare" : "Bỏ chia sẻ",
- "Rename" : "Sửa tên",
"Pending" : "Đang chờ",
"Error moving file" : "Lỗi di chuyển tập tin",
"Error" : "Lỗi",
@@ -56,6 +57,7 @@ OC.L10N.register(
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.",
"{dirs} and {files}" : "{dirs} và {files}",
+ "Favorite" : "Ưu thích",
"%s could not be renamed" : "%s không thể đổi tên",
"File handling" : "Xử lý tập tin",
"Maximum upload size" : "Kích thước tối đa ",
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index 8e3273c751c..df63c2a0f04 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -26,6 +26,7 @@
"Upload failed. Could not get file info." : "Tải lên thất bại. Không thể có được thông tin tập tin.",
"Invalid directory." : "Thư mục không hợp lệ",
"Files" : "Tập tin",
+ "Favorites" : "Ưa thích",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "không thể tải {filename} lên do nó là một thư mục hoặc có kích thước bằng 0 byte",
"Upload cancelled." : "Hủy tải lên",
"Could not get result from server." : "Không thể nhận được kết quả từ máy chủ.",
@@ -34,9 +35,9 @@
"{new_name} already exists" : "{new_name} đã tồn tại",
"Could not create file" : "Không thể tạo file",
"Could not create folder" : "Không thể tạo thư mục",
+ "Rename" : "Sửa tên",
"Delete" : "Xóa",
"Unshare" : "Bỏ chia sẻ",
- "Rename" : "Sửa tên",
"Pending" : "Đang chờ",
"Error moving file" : "Lỗi di chuyển tập tin",
"Error" : "Lỗi",
@@ -54,6 +55,7 @@
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.",
"{dirs} and {files}" : "{dirs} và {files}",
+ "Favorite" : "Ưu thích",
"%s could not be renamed" : "%s không thể đổi tên",
"File handling" : "Xử lý tập tin",
"Maximum upload size" : "Kích thước tối đa ",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 95fb863e320..06a4762a195 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Invalid directory." : "无效文件夹。",
"Files" : "文件",
"All files" : "全部文件",
+ "Favorites" : "收藏",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "不能上传文件 {filename} ,由于它是一个目录或者为0字节",
"Total file size {size1} exceeds upload limit {size2}" : "总文件大小 {size1} 超过上传限制 {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "没有足够的可用空间,您正在上传 {size1} 的文件但是只有 {size2} 可用。",
@@ -44,10 +45,10 @@ OC.L10N.register(
"Could not create file" : "不能创建文件",
"Could not create folder" : "不能创建文件夹",
"Error fetching URL" : "获取URL出错",
+ "Rename" : "重命名",
"Delete" : "删除",
"Disconnect storage" : "断开储存连接",
"Unshare" : "取消共享",
- "Rename" : "重命名",
"Pending" : "等待",
"Error moving file." : "移动文件出错。",
"Error moving file" : "移动文件错误",
@@ -68,6 +69,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。",
"{dirs} and {files}" : "{dirs} 和 {files}",
+ "Favorite" : "收藏",
"%s could not be renamed" : "%s 不能被重命名",
"Upload (max. %s)" : "上传 (最大 %s)",
"File handling" : "文件处理",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index 1368060a9d4..f7fe1a8011b 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -31,6 +31,7 @@
"Invalid directory." : "无效文件夹。",
"Files" : "文件",
"All files" : "全部文件",
+ "Favorites" : "收藏",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "不能上传文件 {filename} ,由于它是一个目录或者为0字节",
"Total file size {size1} exceeds upload limit {size2}" : "总文件大小 {size1} 超过上传限制 {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "没有足够的可用空间,您正在上传 {size1} 的文件但是只有 {size2} 可用。",
@@ -42,10 +43,10 @@
"Could not create file" : "不能创建文件",
"Could not create folder" : "不能创建文件夹",
"Error fetching URL" : "获取URL出错",
+ "Rename" : "重命名",
"Delete" : "删除",
"Disconnect storage" : "断开储存连接",
"Unshare" : "取消共享",
- "Rename" : "重命名",
"Pending" : "等待",
"Error moving file." : "移动文件出错。",
"Error moving file" : "移动文件错误",
@@ -66,6 +67,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。",
"{dirs} and {files}" : "{dirs} 和 {files}",
+ "Favorite" : "收藏",
"%s could not be renamed" : "%s 不能被重命名",
"Upload (max. %s)" : "上传 (最大 %s)",
"File handling" : "文件处理",
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index 17c47da37bf..2d98e99f615 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Unknown error" : "不明錯誤",
"Files" : "文件",
"All files" : "所有文件",
+ "Rename" : "重新命名",
"Delete" : "刪除",
"Unshare" : "取消分享",
- "Rename" : "重新命名",
"Error" : "錯誤",
"Name" : "名稱",
"Size" : "大小",
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index 56af7599e2e..42607fdf62b 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -2,9 +2,9 @@
"Unknown error" : "不明錯誤",
"Files" : "文件",
"All files" : "所有文件",
+ "Rename" : "重新命名",
"Delete" : "刪除",
"Unshare" : "取消分享",
- "Rename" : "重新命名",
"Error" : "錯誤",
"Name" : "名稱",
"Size" : "大小",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 17998c7c8d7..bf9579fbff6 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Invalid directory." : "無效的資料夾",
"Files" : "檔案",
"All files" : "所有檔案",
+ "Favorites" : "最愛",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "因為 {filename} 是個目錄或是大小為零,所以無法上傳",
"Total file size {size1} exceeds upload limit {size2}" : "檔案大小總和 {size1} 超過上傳限制 {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "可用空間不足,你正要上傳 {size1} 可是只剩下 {size2}",
@@ -46,10 +47,10 @@ OC.L10N.register(
"Could not create file" : "無法建立檔案",
"Could not create folder" : "無法建立資料夾",
"Error fetching URL" : "抓取 URL 發生錯誤",
+ "Rename" : "重新命名",
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
- "Rename" : "重新命名",
"Pending" : "等候中",
"Error moving file." : "移動檔案發生錯誤",
"Error moving file" : "移動檔案失敗",
@@ -70,6 +71,7 @@ OC.L10N.register(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。",
"{dirs} and {files}" : "{dirs} 和 {files}",
+ "Favorite" : "我的最愛",
"%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名",
"%s could not be renamed" : "無法重新命名 %s",
"Upload (max. %s)" : "上傳(至多 %s)",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 7ce3ca7bc6a..bcbee72f623 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -33,6 +33,7 @@
"Invalid directory." : "無效的資料夾",
"Files" : "檔案",
"All files" : "所有檔案",
+ "Favorites" : "最愛",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "因為 {filename} 是個目錄或是大小為零,所以無法上傳",
"Total file size {size1} exceeds upload limit {size2}" : "檔案大小總和 {size1} 超過上傳限制 {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "可用空間不足,你正要上傳 {size1} 可是只剩下 {size2}",
@@ -44,10 +45,10 @@
"Could not create file" : "無法建立檔案",
"Could not create folder" : "無法建立資料夾",
"Error fetching URL" : "抓取 URL 發生錯誤",
+ "Rename" : "重新命名",
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
- "Rename" : "重新命名",
"Pending" : "等候中",
"Error moving file." : "移動檔案發生錯誤",
"Error moving file" : "移動檔案失敗",
@@ -68,6 +69,7 @@
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。",
"{dirs} and {files}" : "{dirs} 和 {files}",
+ "Favorite" : "我的最愛",
"%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名",
"%s could not be renamed" : "無法重新命名 %s",
"Upload (max. %s)" : "上傳(至多 %s)",
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 97b9d8e7044..7adca3ffa6d 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -122,6 +122,9 @@ class Helper
$entry['size'] = $i['size'];
$entry['type'] = $i['type'];
$entry['etag'] = $i['etag'];
+ if (isset($i['tags'])) {
+ $entry['tags'] = $i['tags'];
+ }
if (isset($i['displayname_owner'])) {
$entry['shareOwner'] = $i['displayname_owner'];
}
@@ -171,11 +174,33 @@ class Helper
*/
public static function getFiles($dir, $sortAttribute = 'name', $sortDescending = false) {
$content = \OC\Files\Filesystem::getDirectoryContent($dir);
+ $content = self::populateTags($content);
return self::sortFiles($content, $sortAttribute, $sortDescending);
}
/**
+ * Populate the result set with file tags
+ *
+ * @param array file list
+ * @return file list populated with tags
+ */
+ public static function populateTags($fileList) {
+ $filesById = array();
+ foreach ($fileList as $fileData) {
+ $filesById[$fileData['fileid']] = $fileData;
+ }
+ $tagger = \OC::$server->getTagManager()->load('files');
+ $tags = $tagger->getTagsForObjects(array_keys($filesById));
+ if ($tags) {
+ foreach ($tags as $fileId => $fileTags) {
+ $filesById[$fileId]['tags'] = $fileTags;
+ }
+ }
+ return $fileList;
+ }
+
+ /**
* Sort the given file info array
*
* @param \OCP\Files\FileInfo[] $files files to sort
diff --git a/apps/files/service/tagservice.php b/apps/files/service/tagservice.php
new file mode 100644
index 00000000000..86885e38ddd
--- /dev/null
+++ b/apps/files/service/tagservice.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files\Service;
+
+/**
+ * Service class to manage tags on files.
+ */
+class TagService {
+
+ /**
+ * @var \OCP\IUserSession
+ */
+ private $userSession;
+
+ /**
+ * @var \OCP\ITags
+ */
+ private $tagger;
+
+ /**
+ * @var \OCP\Files\Folder
+ */
+ private $homeFolder;
+
+ public function __construct(
+ \OCP\IUserSession $userSession,
+ \OCP\ITags $tagger,
+ \OCP\Files\Folder $homeFolder
+ ) {
+ $this->userSession = $userSession;
+ $this->tagger = $tagger;
+ $this->homeFolder = $homeFolder;
+ }
+
+ /**
+ * Updates the tags of the specified file path.
+ * The passed tags are absolute, which means they will
+ * replace the actual tag selection.
+ *
+ * @param string $path path
+ * @param array $tags array of tags
+ * @return array list of tags
+ * @throws \OCP\NotFoundException if the file does not exist
+ */
+ public function updateFileTags($path, $tags) {
+ $fileId = $this->homeFolder->get($path)->getId();
+
+ $currentTags = $this->tagger->getTagsForObjects(array($fileId));
+
+ if (!empty($currentTags)) {
+ $currentTags = current($currentTags);
+ }
+
+ $newTags = array_diff($tags, $currentTags);
+ foreach ($newTags as $tag) {
+ $this->tagger->tagAs($fileId, $tag);
+ }
+ $deletedTags = array_diff($currentTags, $tags);
+ foreach ($deletedTags as $tag) {
+ $this->tagger->unTag($fileId, $tag);
+ }
+
+ // TODO: re-read from tagger to make sure the
+ // list is up to date, in case of concurrent changes ?
+ return $tags;
+ }
+
+ /**
+ * Updates the tags of the specified file path.
+ * The passed tags are absolute, which means they will
+ * replace the actual tag selection.
+ *
+ * @param array $tagName tag name to filter by
+ * @return FileInfo[] list of matching files
+ * @throws \Exception if the tag does not exist
+ */
+ public function getFilesByTag($tagName) {
+ $nodes = $this->homeFolder->searchByTag(
+ $tagName, $this->userSession->getUser()->getUId()
+ );
+ foreach ($nodes as &$node) {
+ $node = $node->getFileInfo();
+ }
+
+ return $nodes;
+ }
+}
+
diff --git a/apps/files/simplelist.php b/apps/files/simplelist.php
new file mode 100644
index 00000000000..53e56b4ed32
--- /dev/null
+++ b/apps/files/simplelist.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * ownCloud - Simple files list
+ *
+ * @author Vincent Petry
+ * @copyright 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// TODO: move to handlebars
+
+// renders the controls and table headers template
+$tmpl = new OCP\Template('files', 'simplelist', '');
+$tmpl->printPage();
+
diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php
index 30f0a5afdf1..faf2be39b03 100644
--- a/apps/files/templates/appnavigation.php
+++ b/apps/files/templates/appnavigation.php
@@ -6,7 +6,9 @@
</ul>
<div id="app-settings">
<div id="app-settings-header">
- <button class="settings-button" data-apps-slide-toggle="#app-settings-content"></button>
+ <button class="settings-button" data-apps-slide-toggle="#app-settings-content">
+ <span class="hidden-visually"><?php p($l->t('Settings'));?></span>
+ </button>
</div>
<div id="app-settings-content">
<h2><?php p($l->t('WebDAV'));?></h2>
diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php
index a0138967cd2..8ecec066a51 100644
--- a/apps/files/templates/list.php
+++ b/apps/files/templates/list.php
@@ -39,7 +39,8 @@
<div id="uploadprogresswrapper">
<div id="uploadprogressbar"></div>
<input type="button" class="stop icon-close"
- style="display:none" value="" />
+ style="display:none" value=""
+ alt="<?php p($l->t('Cancel upload'))?>" />
</div>
</div>
<div id="file_action_panel"></div>
@@ -49,7 +50,11 @@
<input type="hidden" name="permissions" value="" id="permissions">
</div>
-<div id="emptycontent" class="hidden"><?php p($l->t('Nothing in here. Upload something!'))?></div>
+<div id="emptycontent" class="hidden">
+ <div class="icon-folder"></div>
+ <h2><?php p($l->t('No files yet')); ?></h2>
+ <p><?php p($l->t('Upload some content or sync with your devices!')); ?></p>
+</div>
<table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="36" data-preview-y="36">
<thead>
@@ -57,7 +62,9 @@
<th id='headerName' class="hidden column-name">
<div id="headerName-container">
<input type="checkbox" id="select_all_files" class="select-all"/>
- <label for="select_all_files"></label>
+ <label for="select_all_files">
+ <span class="hidden-visually"><?php p($l->t('Select all'))?></span>
+ </label>
<a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
<span id="selectedActionsList" class="selectedActions">
<a href="" class="download">
diff --git a/apps/files/templates/simplelist.php b/apps/files/templates/simplelist.php
new file mode 100644
index 00000000000..d806a220ac0
--- /dev/null
+++ b/apps/files/templates/simplelist.php
@@ -0,0 +1,40 @@
+<div id="controls">
+ <div id="file_action_panel"></div>
+</div>
+<div id='notification'></div>
+
+<div id="emptycontent" class="hidden">
+ <div class="icon-starred"></div>
+ <h2><?php p($l->t('No favorites')); ?></h2>
+ <p><?php p($l->t('Files and folders you mark as favorite will show up here')); ?></p>
+</div>
+
+<input type="hidden" name="dir" value="" id="dir">
+
+<table id="filestable">
+ <thead>
+ <tr>
+ <th id='headerName' class="hidden column-name">
+ <div id="headerName-container">
+ <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
+ </div>
+ </th>
+ <th id="headerSize" class="hidden column-size">
+ <a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
+ </th>
+ <th id="headerDate" class="hidden column-mtime">
+ <a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t( 'Modified' )); ?></span><span class="sort-indicator"></span></a>
+ <span class="selectedActions"><a href="" class="delete-selected">
+ <?php p($l->t('Delete'))?>
+ <img class="svg" alt="<?php p($l->t('Delete'))?>"
+ src="<?php print_unescaped(OCP\image_path("core", "actions/delete.svg")); ?>" />
+ </a></span>
+ </th>
+ </tr>
+ </thead>
+ <tbody id="fileList">
+ </tbody>
+ <tfoot>
+ </tfoot>
+</table>
+
diff --git a/apps/files/tests/js/favoritesfilelistspec.js b/apps/files/tests/js/favoritesfilelistspec.js
new file mode 100644
index 00000000000..608ddaca18b
--- /dev/null
+++ b/apps/files/tests/js/favoritesfilelistspec.js
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+describe('OCA.Files.FavoritesFileList tests', function() {
+ var fileList;
+
+ beforeEach(function() {
+ // init parameters and test table elements
+ $('#testArea').append(
+ '<div id="app-content-container">' +
+ // init horrible parameters
+ '<input type="hidden" id="dir" value="/"></input>' +
+ '<input type="hidden" id="permissions" value="31"></input>' +
+ // dummy controls
+ '<div id="controls">' +
+ ' <div class="actions creatable"></div>' +
+ ' <div class="notCreatable"></div>' +
+ '</div>' +
+ // dummy table
+ // TODO: at some point this will be rendered by the fileList class itself!
+ '<table id="filestable">' +
+ '<thead><tr>' +
+ '<th id="headerName" class="hidden column-name">' +
+ '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
+ '</th>' +
+ '<th class="hidden column-mtime">' +
+ '<a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a>' +
+ '</th>' +
+ '</tr></thead>' +
+ '<tbody id="fileList"></tbody>' +
+ '<tfoot></tfoot>' +
+ '</table>' +
+ '<div id="emptycontent">Empty content message</div>' +
+ '</div>'
+ );
+ });
+ afterEach(function() {
+ fileList.destroy();
+ fileList = undefined;
+ });
+
+ describe('loading file list', function() {
+ var response;
+
+ beforeEach(function() {
+ fileList = new OCA.Files.FavoritesFileList(
+ $('#app-content-container')
+ );
+ OCA.Files.FavoritesPlugin.attach(fileList);
+
+ fileList.reload();
+
+ /* jshint camelcase: false */
+ response = {
+ files: [{
+ id: 7,
+ name: 'test.txt',
+ path: '/somedir',
+ size: 123,
+ mtime: 11111000,
+ tags: [OC.TAG_FAVORITE],
+ permissions: OC.PERMISSION_ALL,
+ mimetype: 'text/plain'
+ }]
+ };
+ });
+ it('render files', function() {
+ var request;
+
+ expect(fakeServer.requests.length).toEqual(1);
+ request = fakeServer.requests[0];
+ expect(request.url).toEqual(
+ OC.generateUrl('apps/files/api/v1/tags/{tagName}/files', {tagName: OC.TAG_FAVORITE})
+ );
+
+ fakeServer.requests[0].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify(response)
+ );
+
+ var $rows = fileList.$el.find('tbody tr');
+ var $tr = $rows.eq(0);
+ expect($rows.length).toEqual(1);
+ expect($tr.attr('data-id')).toEqual('7');
+ expect($tr.attr('data-type')).toEqual('file');
+ expect($tr.attr('data-file')).toEqual('test.txt');
+ expect($tr.attr('data-path')).toEqual('/somedir');
+ expect($tr.attr('data-size')).toEqual('123');
+ expect(parseInt($tr.attr('data-permissions'), 10))
+ .toEqual(OC.PERMISSION_ALL);
+ expect($tr.attr('data-mime')).toEqual('text/plain');
+ expect($tr.attr('data-mtime')).toEqual('11111000');
+ expect($tr.find('a.name').attr('href')).toEqual(
+ OC.webroot +
+ '/index.php/apps/files/ajax/download.php' +
+ '?dir=%2Fsomedir&files=test.txt'
+ );
+ expect($tr.find('.nametext').text().trim()).toEqual('test.txt');
+ });
+ });
+});
diff --git a/apps/files/tests/js/favoritespluginspec.js b/apps/files/tests/js/favoritespluginspec.js
new file mode 100644
index 00000000000..90b40ede74b
--- /dev/null
+++ b/apps/files/tests/js/favoritespluginspec.js
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+describe('OCA.Files.FavoritesPlugin tests', function() {
+ var Plugin = OCA.Files.FavoritesPlugin;
+ var fileList;
+
+ beforeEach(function() {
+ $('#testArea').append(
+ '<div id="app-navigation">' +
+ '<ul><li data-id="files"><a>Files</a></li>' +
+ '<li data-id="sharingin"><a></a></li>' +
+ '<li data-id="sharingout"><a></a></li>' +
+ '</ul></div>' +
+ '<div id="app-content">' +
+ '<div id="app-content-files" class="hidden">' +
+ '</div>' +
+ '<div id="app-content-favorites" class="hidden">' +
+ '</div>' +
+ '</div>' +
+ '</div>'
+ );
+ OC.Plugins.attach('OCA.Files.App', Plugin);
+ fileList = Plugin.showFileList($('#app-content-favorites'));
+ });
+ afterEach(function() {
+ OC.Plugins.detach('OCA.Files.App', Plugin);
+ });
+
+ describe('initialization', function() {
+ it('inits favorites list on show', function() {
+ expect(fileList).toBeDefined();
+ });
+ });
+ describe('file actions', function() {
+ var oldLegacyFileActions;
+
+ beforeEach(function() {
+ oldLegacyFileActions = window.FileActions;
+ window.FileActions = new OCA.Files.FileActions();
+ });
+
+ afterEach(function() {
+ window.FileActions = oldLegacyFileActions;
+ });
+ it('provides default file actions', function() {
+ var fileActions = fileList.fileActions;
+
+ expect(fileActions.actions.all).toBeDefined();
+ expect(fileActions.actions.all.Delete).toBeDefined();
+ expect(fileActions.actions.all.Rename).toBeDefined();
+ expect(fileActions.actions.all.Download).toBeDefined();
+
+ expect(fileActions.defaults.dir).toEqual('Open');
+ });
+ it('provides custom file actions', function() {
+ var actionStub = sinon.stub();
+ // regular file action
+ OCA.Files.fileActions.register(
+ 'all',
+ 'RegularTest',
+ OC.PERMISSION_READ,
+ OC.imagePath('core', 'actions/shared'),
+ actionStub
+ );
+
+ Plugin.favoritesFileList = null;
+ fileList = Plugin.showFileList($('#app-content-favorites'));
+
+ expect(fileList.fileActions.actions.all.RegularTest).toBeDefined();
+ });
+ it('does not provide legacy file actions', function() {
+ var actionStub = sinon.stub();
+ // legacy file action
+ window.FileActions.register(
+ 'all',
+ 'LegacyTest',
+ OC.PERMISSION_READ,
+ OC.imagePath('core', 'actions/shared'),
+ actionStub
+ );
+
+ Plugin.favoritesFileList = null;
+ fileList = Plugin.showFileList($('#app-content-favorites'));
+
+ expect(fileList.fileActions.actions.all.LegacyTest).not.toBeDefined();
+ });
+ it('redirects to files app when opening a directory', function() {
+ var oldList = OCA.Files.App.fileList;
+ // dummy new list to make sure it exists
+ OCA.Files.App.fileList = new OCA.Files.FileList($('<table><thead></thead><tbody></tbody></table>'));
+
+ var setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView');
+ // create dummy table so we can click the dom
+ var $table = '<table><thead></thead><tbody id="fileList"></tbody></table>';
+ $('#app-content-favorites').append($table);
+
+ Plugin.favoritesFileList = null;
+ fileList = Plugin.showFileList($('#app-content-favorites'));
+
+ fileList.setFiles([{
+ name: 'testdir',
+ type: 'dir',
+ path: '/somewhere/inside/subdir',
+ counterParts: ['user2'],
+ shareOwner: 'user2'
+ }]);
+
+ fileList.findFileEl('testdir').find('td a.name').click();
+
+ expect(OCA.Files.App.fileList.getCurrentDirectory()).toEqual('/somewhere/inside/subdir/testdir');
+
+ expect(setActiveViewStub.calledOnce).toEqual(true);
+ expect(setActiveViewStub.calledWith('files')).toEqual(true);
+
+ setActiveViewStub.restore();
+
+ // restore old list
+ OCA.Files.App.fileList = oldList;
+ });
+ });
+});
+
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 21f8a12f4b5..6c83f214c39 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -183,6 +183,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.find('.nametext').text().trim()).toEqual('testName.txt');
expect($tr.find('.filesize').text()).toEqual('1 kB');
+ expect($tr.find('.date').text()).not.toEqual('?');
expect(fileList.findFileEl('testName.txt')[0]).toEqual($tr[0]);
});
it('generates dir element with correct attributes when calling add() with dir data', function() {
@@ -209,6 +210,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('1 kB');
+ expect($tr.find('.date').text()).not.toEqual('?');
expect(fileList.findFileEl('testFolder')[0]).toEqual($tr[0]);
});
@@ -233,6 +235,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('Pending');
+ expect($tr.find('.date').text()).not.toEqual('?');
});
it('generates dir element with default attributes when calling add() with minimal data', function() {
var fileData = {
@@ -254,6 +257,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('Pending');
+ expect($tr.find('.date').text()).not.toEqual('?');
});
it('generates file element with zero size when size is explicitly zero', function() {
var fileData = {
@@ -264,6 +268,15 @@ describe('OCA.Files.FileList tests', function() {
var $tr = fileList.add(fileData);
expect($tr.find('.filesize').text()).toEqual('0 kB');
});
+ it('generates file element with unknown date when mtime invalid', function() {
+ var fileData = {
+ type: 'dir',
+ name: 'testFolder',
+ mtime: -1
+ };
+ var $tr = fileList.add(fileData);
+ expect($tr.find('.date').text()).toEqual('?');
+ });
it('adds new file to the end of the list', function() {
var $tr;
var fileData = {
@@ -648,6 +661,23 @@ describe('OCA.Files.FileList tests', function() {
expect(fileList.$fileList.find('input.filename').length).toEqual(0);
expect(fileList.$fileList.find('form').length).toEqual(0);
});
+ it('Restores thumbnail when rename was cancelled', function() {
+ doRename();
+
+ expect(OC.TestUtil.getImageUrl(fileList.findFileEl('Tu_after_three.txt').find('.thumbnail')))
+ .toEqual(OC.imagePath('core', 'loading.gif'));
+
+ fakeServer.requests[0].respond(200, {'Content-Type': 'application/json'}, JSON.stringify({
+ status: 'error',
+ data: {
+ message: 'Something went wrong'
+ }
+ }));
+
+ expect(fileList.findFileEl('One.txt').length).toEqual(1);
+ expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
+ .toEqual(OC.imagePath('core', 'filetypes/file.svg'));
+ });
});
describe('Moving files', function() {
beforeEach(function() {
@@ -742,6 +772,31 @@ describe('OCA.Files.FileList tests', function() {
expect(notificationStub.calledOnce).toEqual(true);
expect(notificationStub.getCall(0).args[0]).toEqual('Error while moving file');
});
+ it('Restores thumbnail if a file could not be moved', function() {
+ var request;
+ fileList.move('One.txt', '/somedir');
+
+ expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
+ .toEqual(OC.imagePath('core', 'loading.gif'));
+
+ expect(fakeServer.requests.length).toEqual(1);
+ request = fakeServer.requests[0];
+
+ fakeServer.requests[0].respond(200, {'Content-Type': 'application/json'}, JSON.stringify({
+ status: 'error',
+ data: {
+ message: 'Error while moving file',
+ }
+ }));
+
+ expect(fileList.findFileEl('One.txt').length).toEqual(1);
+
+ expect(notificationStub.calledOnce).toEqual(true);
+ expect(notificationStub.getCall(0).args[0]).toEqual('Error while moving file');
+
+ expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
+ .toEqual(OC.imagePath('core', 'filetypes/file.svg'));
+ });
});
describe('List rendering', function() {
it('renders a list of files using add()', function() {
@@ -955,8 +1010,8 @@ describe('OCA.Files.FileList tests', function() {
name: 'testFile.txt'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders default icon for dir when none provided and no preview is available', function() {
@@ -965,8 +1020,8 @@ describe('OCA.Files.FileList tests', function() {
name: 'test dir'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders provided icon for file when provided', function() {
@@ -976,8 +1031,8 @@ describe('OCA.Files.FileList tests', function() {
icon: OC.webroot + '/core/img/filetypes/application-pdf.svg'
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
it('renders preview when no icon was provided and preview is available', function() {
@@ -988,11 +1043,11 @@ describe('OCA.Files.FileList tests', function() {
};
var $tr = fileList.add(fileData);
var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.calledOnce).toEqual(true);
// third argument is callback
previewLoadStub.getCall(0).args[0].callback(OC.webroot + '/somepath.png');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/somepath.png');
+ expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/somepath.png');
});
it('renders default file type icon when no icon was provided and no preview is available', function() {
var fileData = {
@@ -1001,8 +1056,8 @@ describe('OCA.Files.FileList tests', function() {
isPreviewAvailable: false
};
var $tr = fileList.add(fileData);
- var $td = $tr.find('td.filename');
- expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
+ var $imgDiv = $tr.find('td.filename .thumbnail');
+ expect(OC.TestUtil.getImageUrl($imgDiv)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
expect(previewLoadStub.notCalled).toEqual(true);
});
});
diff --git a/apps/files/tests/js/tagspluginspec.js b/apps/files/tests/js/tagspluginspec.js
new file mode 100644
index 00000000000..66240575a5c
--- /dev/null
+++ b/apps/files/tests/js/tagspluginspec.js
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+describe('OCA.Files.TagsPlugin tests', function() {
+ var fileList;
+ var testFiles;
+
+ beforeEach(function() {
+ var $content = $('<div id="content"></div>');
+ $('#testArea').append($content);
+ // dummy file list
+ var $div = $(
+ '<div>' +
+ '<table id="filestable">' +
+ '<thead></thead>' +
+ '<tbody id="fileList"></tbody>' +
+ '</table>' +
+ '</div>');
+ $('#content').append($div);
+
+ fileList = new OCA.Files.FileList($div);
+ OCA.Files.TagsPlugin.attach(fileList);
+
+ testFiles = [{
+ id: 1,
+ type: 'file',
+ name: 'One.txt',
+ path: '/subdir',
+ mimetype: 'text/plain',
+ size: 12,
+ permissions: OC.PERMISSION_ALL,
+ etag: 'abc',
+ shareOwner: 'User One',
+ isShareMountPoint: false,
+ tags: ['tag1', 'tag2']
+ }];
+ });
+ afterEach(function() {
+ fileList.destroy();
+ fileList = null;
+ });
+
+ describe('Favorites icon', function() {
+ it('renders favorite icon and extra data', function() {
+ var $action, $tr;
+ fileList.setFiles(testFiles);
+ $tr = fileList.$el.find('tbody tr:first');
+ $action = $tr.find('.action-favorite');
+ expect($action.length).toEqual(1);
+ expect($action.hasClass('permanent')).toEqual(false);
+
+ expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2']);
+ expect($tr.attr('data-favorite')).not.toBeDefined();
+ });
+ it('renders permanent favorite icon and extra data', function() {
+ var $action, $tr;
+ testFiles[0].tags.push(OC.TAG_FAVORITE);
+ fileList.setFiles(testFiles);
+ $tr = fileList.$el.find('tbody tr:first');
+ $action = $tr.find('.action-favorite');
+ expect($action.length).toEqual(1);
+ expect($action.hasClass('permanent')).toEqual(true);
+
+ expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', OC.TAG_FAVORITE]);
+ expect($tr.attr('data-favorite')).toEqual('true');
+ });
+ it('adds has-favorites class on table', function() {
+ expect(fileList.$el.hasClass('has-favorites')).toEqual(true);
+ });
+ });
+ describe('Applying tags', function() {
+ it('sends request to server and updates icon', function() {
+ // TODO
+ fileList.setFiles(testFiles);
+ });
+ it('sends all tags to server when applyFileTags() is called ', function() {
+ // TODO
+ });
+ });
+});
diff --git a/apps/files/tests/service/tagservice.php b/apps/files/tests/service/tagservice.php
new file mode 100644
index 00000000000..158dd77e858
--- /dev/null
+++ b/apps/files/tests/service/tagservice.php
@@ -0,0 +1,121 @@
+<?php
+
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * @copyright 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OCA\Files;
+
+use \OCA\Files\Service\TagService;
+
+class TagServiceTest extends \Test\TestCase {
+
+ /**
+ * @var string
+ */
+ private $user;
+
+ /**
+ * @var \OCP\Files\Folder
+ */
+ private $root;
+
+ /**
+ * @var \OCA\Files\Service\TagService
+ */
+ private $tagService;
+
+ /**
+ * @var \OCP\ITags
+ */
+ private $tagger;
+
+ protected function setUp() {
+ parent::setUp();
+ $this->user = $this->getUniqueId('user');
+ \OC_User::createUser($this->user, 'test');
+ \OC_User::setUserId($this->user);
+ \OC_Util::setupFS($this->user);
+ /**
+ * @var \OCP\IUser
+ */
+ $user = new \OC\User\User($this->user, null);
+ /**
+ * @var \OCP\IUserSession
+ */
+ $userSession = $this->getMock('\OCP\IUserSession');
+ $userSession->expects($this->any())
+ ->method('getUser')
+ ->withAnyParameters()
+ ->will($this->returnValue($user));
+
+ $this->root = \OC::$server->getUserFolder();
+
+ $this->tagger = \OC::$server->getTagManager()->load('files');
+ $this->tagService = new TagService(
+ $userSession,
+ $this->tagger,
+ $this->root
+ );
+ }
+
+ protected function tearDown() {
+ \OC_User::setUserId('');
+ \OC_User::deleteUser($this->user);
+ }
+
+ public function testUpdateFileTags() {
+ $tag1 = 'tag1';
+ $tag2 = 'tag2';
+
+ $subdir = $this->root->newFolder('subdir');
+ $testFile = $subdir->newFile('test.txt');
+ $testFile->putContent('test contents');
+
+ $fileId = $testFile->getId();
+
+ // set tags
+ $this->tagService->updateFileTags('subdir/test.txt', array($tag1, $tag2));
+
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag2));
+
+ // remove tag
+ $result = $this->tagService->updateFileTags('subdir/test.txt', array($tag2));
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag2));
+
+ // clear tags
+ $result = $this->tagService->updateFileTags('subdir/test.txt', array());
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag2));
+
+ // non-existing file
+ $caught = false;
+ try {
+ $this->tagService->updateFileTags('subdir/unexist.txt', array($tag1));
+ } catch (\OCP\Files\NotFoundException $e) {
+ $caught = true;
+ }
+ $this->assertTrue($caught);
+
+ $subdir->delete();
+ }
+}
+
diff --git a/apps/files_encryption/l10n/fr.js b/apps/files_encryption/l10n/fr.js
index 34d5f7a13f2..b0f4d1d5edf 100644
--- a/apps/files_encryption/l10n/fr.js
+++ b/apps/files_encryption/l10n/fr.js
@@ -18,16 +18,16 @@ OC.L10N.register(
"The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.",
"Private key password successfully updated." : "Mot de passe de la clé privé mis à jour avec succès.",
"File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour",
- "Could not update file recovery" : "Ne peut pas remettre à jour les fichiers de récupération",
+ "Could not update file recovery" : "Impossible de mettre à jour les fichiers de récupération",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.",
"Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.",
+ "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
+ "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
"Missing requirements." : "Système minimum requis non respecté.",
"Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.",
"Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
- "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
- "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
"Go directly to your %spersonal settings%s." : "Allerz directement à vos %spersonal settings%s.",
"Encryption" : "Chiffrement",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.",
diff --git a/apps/files_encryption/l10n/fr.json b/apps/files_encryption/l10n/fr.json
index 998947b8053..fffe581ac5e 100644
--- a/apps/files_encryption/l10n/fr.json
+++ b/apps/files_encryption/l10n/fr.json
@@ -16,16 +16,16 @@
"The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.",
"Private key password successfully updated." : "Mot de passe de la clé privé mis à jour avec succès.",
"File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour",
- "Could not update file recovery" : "Ne peut pas remettre à jour les fichiers de récupération",
+ "Could not update file recovery" : "Impossible de mettre à jour les fichiers de récupération",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.",
"Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.",
+ "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
+ "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
"Missing requirements." : "Système minimum requis non respecté.",
"Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.",
"Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
- "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.",
- "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.",
"Go directly to your %spersonal settings%s." : "Allerz directement à vos %spersonal settings%s.",
"Encryption" : "Chiffrement",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.",
diff --git a/apps/files_external/l10n/fi.js b/apps/files_external/l10n/fi.js
new file mode 100644
index 00000000000..eaa9b89fc04
--- /dev/null
+++ b/apps/files_external/l10n/fi.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "files_external",
+ {
+ "Username" : "Käyttäjätunnus",
+ "Password" : "Salasana",
+ "URL" : "URL",
+ "Delete" : "Poista"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/fi.json b/apps/files_external/l10n/fi.json
new file mode 100644
index 00000000000..8a702552ca1
--- /dev/null
+++ b/apps/files_external/l10n/fi.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "Username" : "Käyttäjätunnus",
+ "Password" : "Salasana",
+ "URL" : "URL",
+ "Delete" : "Poista"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 08bee38a2d8..32081eb9619 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
- "and" : "et",
+ "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 a58251b5ee2..011716ae0c7 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -52,7 +52,7 @@
"(group)" : "(groupe)",
"Saved" : "Sauvegarder",
"<b>Note:</b> " : "<b>Attention :</b>",
- "and" : "et",
+ "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/hu_HU.js b/apps/files_external/l10n/hu_HU.js
index bf2e0badb20..47fd2214ae5 100644
--- a/apps/files_external/l10n/hu_HU.js
+++ b/apps/files_external/l10n/hu_HU.js
@@ -5,23 +5,45 @@ OC.L10N.register(
"External storage" : "Külső tárolók",
"Local" : "Helyi",
"Location" : "Hely",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "Kulcs",
+ "Secret" : "Titkos",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3-mal kompatibilisek",
+ "Access Key" : "Hozzáférési kulcs",
+ "Secret Key" : "Titkos kulcs",
+ "Hostname" : "Hosztnév",
"Port" : "Port",
"Region" : "Megye",
+ "Enable SSL" : "SSL engedélyezése",
+ "App key" : "App kulcs",
+ "App secret" : "App titkos kulcs",
"Host" : "Kiszolgáló",
"Username" : "Felhasználónév",
"Password" : "Jelszó",
+ "Secure ftps://" : "Biztonságos ftps://",
+ "Timeout of HTTP requests in seconds" : "A HTTP-kérés időkorlátja másodpercben",
"Share" : "Megosztás",
+ "Username as share" : "Felhasználónév és megosztás",
"URL" : "URL",
+ "Secure https://" : "Biztonságos https://",
+ "Remote subfolder" : "Távoli alkönyvtár",
"Access granted" : "Érvényes hozzáférés",
"Error configuring Dropbox storage" : "A Dropbox tárolót nem sikerült beállítani",
"Grant access" : "Megadom a hozzáférést",
"Error configuring Google Drive storage" : "A Google Drive tárolót nem sikerült beállítani",
"Personal" : "Személyes",
+ "System" : "Rendszer",
+ "(group)" : "(csoport)",
"Saved" : "Elmentve",
+ "<b>Note:</b> " : "<b>Megjegyzés:</b>",
+ "and" : "és",
"Name" : "Név",
+ "Storage type" : "Tároló típusa",
"External Storage" : "Külső tárolási szolgáltatások becsatolása",
"Folder name" : "Mappanév",
"Configuration" : "Beállítások",
+ "Available for" : "Elérhető számukra",
"Add storage" : "Tároló becsatolása",
"Delete" : "Törlés",
"Enable User External Storage" : "Külső tárolók engedélyezése a felhasználók részére"
diff --git a/apps/files_external/l10n/hu_HU.json b/apps/files_external/l10n/hu_HU.json
index 430188e2144..27619b9b0ab 100644
--- a/apps/files_external/l10n/hu_HU.json
+++ b/apps/files_external/l10n/hu_HU.json
@@ -3,23 +3,45 @@
"External storage" : "Külső tárolók",
"Local" : "Helyi",
"Location" : "Hely",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "Kulcs",
+ "Secret" : "Titkos",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3-mal kompatibilisek",
+ "Access Key" : "Hozzáférési kulcs",
+ "Secret Key" : "Titkos kulcs",
+ "Hostname" : "Hosztnév",
"Port" : "Port",
"Region" : "Megye",
+ "Enable SSL" : "SSL engedélyezése",
+ "App key" : "App kulcs",
+ "App secret" : "App titkos kulcs",
"Host" : "Kiszolgáló",
"Username" : "Felhasználónév",
"Password" : "Jelszó",
+ "Secure ftps://" : "Biztonságos ftps://",
+ "Timeout of HTTP requests in seconds" : "A HTTP-kérés időkorlátja másodpercben",
"Share" : "Megosztás",
+ "Username as share" : "Felhasználónév és megosztás",
"URL" : "URL",
+ "Secure https://" : "Biztonságos https://",
+ "Remote subfolder" : "Távoli alkönyvtár",
"Access granted" : "Érvényes hozzáférés",
"Error configuring Dropbox storage" : "A Dropbox tárolót nem sikerült beállítani",
"Grant access" : "Megadom a hozzáférést",
"Error configuring Google Drive storage" : "A Google Drive tárolót nem sikerült beállítani",
"Personal" : "Személyes",
+ "System" : "Rendszer",
+ "(group)" : "(csoport)",
"Saved" : "Elmentve",
+ "<b>Note:</b> " : "<b>Megjegyzés:</b>",
+ "and" : "és",
"Name" : "Név",
+ "Storage type" : "Tároló típusa",
"External Storage" : "Külső tárolási szolgáltatások becsatolása",
"Folder name" : "Mappanév",
"Configuration" : "Beállítások",
+ "Available for" : "Elérhető számukra",
"Add storage" : "Tároló becsatolása",
"Delete" : "Törlés",
"Enable User External Storage" : "Külső tárolók engedélyezése a felhasználók részére"
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 5742b8f47e2..f09b29a522b 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -1,25 +1,25 @@
<?php
/**
-* ownCloud
-*
-* @author Michael Gapczynski
-* @copyright 2012 Michael Gapczynski mtgap@owncloud.com
-* @copyright 2014 Vincent Petry <pvince81@owncloud.com>
-* @copyright 2014 Robin McCorkell <rmccorkell@karoshi.org.uk>
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * ownCloud
+ *
+ * @author Michael Gapczynski
+ * @copyright 2012 Michael Gapczynski mtgap@owncloud.com
+ * @copyright 2014 Vincent Petry <pvince81@owncloud.com>
+ * @copyright 2014 Robin McCorkell <rmccorkell@karoshi.org.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
/**
* Class to configure mount.json globally and for users
@@ -64,16 +64,17 @@ class OC_Mount_Config {
}
/**
- * Get details on each of the external storage backends, used for the mount config UI
- * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
- * If the configuration parameter should be secret, add a '*' to the beginning of the value
- * If the configuration parameter is a boolean, add a '!' to the beginning of the value
- * If the configuration parameter is optional, add a '&' to the beginning of the value
- * If the configuration parameter is hidden, add a '#' to the beginning of the value
- * @return array
- */
+ * Get details on each of the external storage backends, used for the mount config UI
+ * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
+ * If the configuration parameter should be secret, add a '*' to the beginning of the value
+ * If the configuration parameter is a boolean, add a '!' to the beginning of the value
+ * If the configuration parameter is optional, add a '&' to the beginning of the value
+ * If the configuration parameter is hidden, add a '#' to the beginning of the value
+ *
+ * @return array
+ */
public static function getBackends() {
- $sortFunc = function($a, $b) {
+ $sortFunc = function ($a, $b) {
return strcasecmp($a['backend'], $b['backend']);
};
@@ -100,10 +101,13 @@ class OC_Mount_Config {
/**
* Hook that mounts the given user's visible mount points
+ *
* @param array $data
*/
public static function initMountPointsHook($data) {
+ self::addStorageIdToConfig(null);
if ($data['user']) {
+ self::addStorageIdToConfig($data['user']);
$user = \OC::$server->getUserManager()->get($data['user']);
if (!$user) {
\OC_Log::write(
@@ -161,8 +165,9 @@ class OC_Mount_Config {
}
// Override if priority greater
- if ( (!isset($mountPoints[$mountPoint]))
- || ($options['priority'] >= $mountPoints[$mountPoint]['priority']) ) {
+ if ((!isset($mountPoints[$mountPoint]))
+ || ($options['priority'] >= $mountPoints[$mountPoint]['priority'])
+ ) {
$options['priority_type'] = self::MOUNT_TYPE_GLOBAL;
$options['backend'] = $backends[$options['class']]['backend'];
$mountPoints[$mountPoint] = $options;
@@ -184,8 +189,9 @@ class OC_Mount_Config {
}
// Override if priority greater
- if ( (!isset($mountPoints[$mountPoint]))
- || ($options['priority'] >= $mountPoints[$mountPoint]['priority']) ) {
+ if ((!isset($mountPoints[$mountPoint]))
+ || ($options['priority'] >= $mountPoints[$mountPoint]['priority'])
+ ) {
$options['priority_type'] = self::MOUNT_TYPE_GLOBAL;
$options['backend'] = $backends[$options['class']]['backend'];
$mountPoints[$mountPoint] = $options;
@@ -208,9 +214,10 @@ class OC_Mount_Config {
}
// Override if priority greater or if priority type different
- if ( (!isset($mountPoints[$mountPoint]))
+ if ((!isset($mountPoints[$mountPoint]))
|| ($options['priority'] >= $mountPoints[$mountPoint]['priority'])
- || ($mountPoints[$mountPoint]['priority_type'] !== self::MOUNT_TYPE_GROUP) ) {
+ || ($mountPoints[$mountPoint]['priority_type'] !== self::MOUNT_TYPE_GROUP)
+ ) {
$options['priority_type'] = self::MOUNT_TYPE_GROUP;
$options['backend'] = $backends[$options['class']]['backend'];
$mountPoints[$mountPoint] = $options;
@@ -235,9 +242,10 @@ class OC_Mount_Config {
}
// Override if priority greater or if priority type different
- if ( (!isset($mountPoints[$mountPoint]))
+ if ((!isset($mountPoints[$mountPoint]))
|| ($options['priority'] >= $mountPoints[$mountPoint]['priority'])
- || ($mountPoints[$mountPoint]['priority_type'] !== self::MOUNT_TYPE_USER) ) {
+ || ($mountPoints[$mountPoint]['priority_type'] !== self::MOUNT_TYPE_USER)
+ ) {
$options['priority_type'] = self::MOUNT_TYPE_USER;
$options['backend'] = $backends[$options['class']]['backend'];
$mountPoints[$mountPoint] = $options;
@@ -281,22 +289,23 @@ class OC_Mount_Config {
/**
- * Get details on each of the external storage backends, used for the mount config UI
- * Some backends are not available as a personal backend, f.e. Local and such that have
- * been disabled by the admin.
- *
- * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
- * If the configuration parameter should be secret, add a '*' to the beginning of the value
- * If the configuration parameter is a boolean, add a '!' to the beginning of the value
- * If the configuration parameter is optional, add a '&' to the beginning of the value
- * If the configuration parameter is hidden, add a '#' to the beginning of the value
- * @return array
- */
+ * Get details on each of the external storage backends, used for the mount config UI
+ * Some backends are not available as a personal backend, f.e. Local and such that have
+ * been disabled by the admin.
+ *
+ * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
+ * If the configuration parameter should be secret, add a '*' to the beginning of the value
+ * If the configuration parameter is a boolean, add a '!' to the beginning of the value
+ * If the configuration parameter is optional, add a '&' to the beginning of the value
+ * If the configuration parameter is hidden, add a '#' to the beginning of the value
+ *
+ * @return array
+ */
public static function getPersonalBackends() {
// Check whether the user has permissions to add personal storage backends
// return an empty array if this is not the case
- if(OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') !== 'yes') {
+ if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') !== 'yes') {
return array();
}
@@ -316,10 +325,11 @@ class OC_Mount_Config {
}
/**
- * Get the system mount points
- * The returned array is not in the same format as getUserMountPoints()
- * @return array
- */
+ * Get the system mount points
+ * The returned array is not in the same format as getUserMountPoints()
+ *
+ * @return array
+ */
public static function getSystemMountPoints() {
$mountPoints = self::readData();
$backends = self::getBackends();
@@ -329,7 +339,7 @@ class OC_Mount_Config {
foreach ($mounts as $mountPoint => $mount) {
// Update old classes to new namespace
if (strpos($mount['class'], 'OC_Filestorage_') !== false) {
- $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15);
+ $mount['class'] = '\OC\Files\Storage\\' . substr($mount['class'], 15);
}
$mount['options'] = self::decryptPasswords($mount['options']);
if (!isset($mount['priority'])) {
@@ -364,7 +374,7 @@ class OC_Mount_Config {
foreach ($mounts as $mountPoint => $mount) {
// Update old classes to new namespace
if (strpos($mount['class'], 'OC_Filestorage_') !== false) {
- $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15);
+ $mount['class'] = '\OC\Files\Storage\\' . substr($mount['class'], 15);
}
$mount['options'] = self::decryptPasswords($mount['options']);
if (!isset($mount['priority'])) {
@@ -397,10 +407,11 @@ class OC_Mount_Config {
}
/**
- * Get the personal mount points of the current user
- * The returned array is not in the same format as getUserMountPoints()
- * @return array
- */
+ * Get the personal mount points of the current user
+ * The returned array is not in the same format as getUserMountPoints()
+ *
+ * @return array
+ */
public static function getPersonalMountPoints() {
$mountPoints = self::readData(OCP\User::getUser());
$backEnds = self::getBackends();
@@ -410,7 +421,7 @@ class OC_Mount_Config {
foreach ($mountPoints[self::MOUNT_TYPE_USER][$uid] as $mountPoint => $mount) {
// Update old classes to new namespace
if (strpos($mount['class'], 'OC_Filestorage_') !== false) {
- $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15);
+ $mount['class'] = '\OC\Files\Storage\\' . substr($mount['class'], 15);
}
$mount['options'] = self::decryptPasswords($mount['options']);
$personal[] = array(
@@ -428,6 +439,7 @@ class OC_Mount_Config {
/**
* Test connecting using the given backend configuration
+ *
* @param string $class backend class name
* @param array $options backend configuration options
* @return bool true if the connection succeeded, false otherwise
@@ -452,16 +464,17 @@ class OC_Mount_Config {
}
/**
- * Add a mount point to the filesystem
- * @param string $mountPoint Mount point
- * @param string $class Backend class
- * @param array $classOptions Backend parameters for the class
- * @param string $mountType MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
- * @param string $applicable User or group to apply mount to
- * @param bool $isPersonal Personal or system mount point i.e. is this being called from the personal or admin page
- * @param int|null $priority Mount point priority, null for default
- * @return boolean
- */
+ * Add a mount point to the filesystem
+ *
+ * @param string $mountPoint Mount point
+ * @param string $class Backend class
+ * @param array $classOptions Backend parameters for the class
+ * @param string $mountType MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
+ * @param string $applicable User or group to apply mount to
+ * @param bool $isPersonal Personal or system mount point i.e. is this being called from the personal or admin page
+ * @param int|null $priority Mount point priority, null for default
+ * @return boolean
+ */
public static function addMountPoint($mountPoint,
$class,
$classOptions,
@@ -488,22 +501,22 @@ class OC_Mount_Config {
if ($applicable != OCP\User::getUser() || !isset($allowed_backends[$class])) {
return false;
}
- $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
+ $mountPoint = '/' . $applicable . '/files/' . ltrim($mountPoint, '/');
} else {
- $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
+ $mountPoint = '/$user/files/' . ltrim($mountPoint, '/');
}
$mount = array($applicable => array(
$mountPoint => array(
'class' => $class,
'options' => self::encryptPasswords($classOptions))
- )
+ )
);
- if (! $isPersonal && !is_null($priority)) {
+ if (!$isPersonal && !is_null($priority)) {
$mount[$applicable][$mountPoint]['priority'] = $priority;
}
- $mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL);
+ $mountPoints = self::readData($isPersonal ? OCP\User::getUser() : null);
// who else loves multi-dimensional array ?
$isNew = !isset($mountPoints[$mountType]) ||
!isset($mountPoints[$mountType][$applicable]) ||
@@ -521,7 +534,7 @@ class OC_Mount_Config {
}
}
- self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
+ self::writeData($isPersonal ? OCP\User::getUser() : null, $mountPoints);
$result = self::getBackendStatus($class, $classOptions, $isPersonal);
if ($result && $isNew) {
@@ -539,13 +552,13 @@ class OC_Mount_Config {
}
/**
- *
- * @param string $mountPoint Mount point
- * @param string $mountType MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
- * @param string $applicable User or group to remove mount from
- * @param bool $isPersonal Personal or system mount point
- * @return bool
- */
+ *
+ * @param string $mountPoint Mount point
+ * @param string $mountType MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
+ * @param string $applicable User or group to remove mount from
+ * @param bool $isPersonal Personal or system mount point
+ * @return bool
+ */
public static function removeMountPoint($mountPoint, $mountType, $applicable, $isPersonal = false) {
// Verify that the mount point applies for the current user
$relMountPoints = $mountPoint;
@@ -553,12 +566,12 @@ class OC_Mount_Config {
if ($applicable != OCP\User::getUser()) {
return false;
}
- $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
+ $mountPoint = '/' . $applicable . '/files/' . ltrim($mountPoint, '/');
} else {
- $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
+ $mountPoint = '/$user/files/' . ltrim($mountPoint, '/');
}
$mountPoint = \OC\Files\Filesystem::normalizePath($mountPoint);
- $mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL);
+ $mountPoints = self::readData($isPersonal ? OCP\User::getUser() : null);
// Remove mount point
unset($mountPoints[$mountType][$applicable][$mountPoint]);
// Unset parent arrays if empty
@@ -568,7 +581,7 @@ class OC_Mount_Config {
unset($mountPoints[$mountType]);
}
}
- self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
+ self::writeData($isPersonal ? OCP\User::getUser() : null, $mountPoints);
\OC_Hook::emit(
\OC\Files\Filesystem::CLASSNAME,
\OC\Files\Filesystem::signal_delete_mount,
@@ -604,17 +617,18 @@ class OC_Mount_Config {
}
/**
- * Read the mount points in the config file into an array
- * @param string|null $user If not null, personal for $user, otherwise system
- * @return array
- */
- private static function readData($user = NULL) {
+ * Read the mount points in the config file into an array
+ *
+ * @param string|null $user If not null, personal for $user, otherwise system
+ * @return array
+ */
+ private static function readData($user = null) {
$parser = new \OC\ArrayParser();
if (isset($user)) {
- $phpFile = OC_User::getHome($user).'/mount.php';
- $jsonFile = OC_User::getHome($user).'/mount.json';
+ $phpFile = OC_User::getHome($user) . '/mount.php';
+ $jsonFile = OC_User::getHome($user) . '/mount.json';
} else {
- $phpFile = OC::$SERVERROOT.'/config/mount.php';
+ $phpFile = OC::$SERVERROOT . '/config/mount.php';
$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
$jsonFile = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
}
@@ -633,17 +647,27 @@ class OC_Mount_Config {
}
/**
- * Write the mount points to the config file
- * @param string|null $user If not null, personal for $user, otherwise system
- * @param array $data Mount points
- */
+ * Write the mount points to the config file
+ *
+ * @param string|null $user If not null, personal for $user, otherwise system
+ * @param array $data Mount points
+ */
private static function writeData($user, $data) {
if (isset($user)) {
- $file = OC_User::getHome($user).'/mount.json';
+ $file = OC_User::getHome($user) . '/mount.json';
} else {
$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
$file = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
}
+
+ foreach ($data as &$applicables) {
+ foreach ($applicables as &$mountPoints) {
+ foreach ($mountPoints as &$options) {
+ self::addStorageId($options);
+ }
+ }
+ }
+
$content = json_encode($data, JSON_PRETTY_PRINT);
@file_put_contents($file, $content);
@chmod($file, 0640);
@@ -678,7 +702,7 @@ class OC_Mount_Config {
return '';
}
- private static function addDependency(&$dependencies, $module, $backend, $message=null) {
+ private static function addDependency(&$dependencies, $module, $backend, $message = null) {
if (!isset($dependencies[$module])) {
$dependencies[$module] = array();
}
@@ -708,7 +732,7 @@ class OC_Mount_Config {
$backends = '';
for ($i = 0; $i < $dependencyGroupCount; $i++) {
if ($i > 0 && $i === $dependencyGroupCount - 1) {
- $backends .= ' '.$l->t('and').' ';
+ $backends .= ' ' . $l->t('and') . ' ';
} elseif ($i > 0) {
$backends .= ', ';
}
@@ -722,6 +746,7 @@ class OC_Mount_Config {
/**
* Returns a dependency missing message
+ *
* @param OC_L10N $l
* @param string $module
* @param string $backend
@@ -740,6 +765,7 @@ class OC_Mount_Config {
/**
* Encrypt passwords in the given config options
+ *
* @param array $options mount options
* @return array updated options
*/
@@ -755,6 +781,7 @@ class OC_Mount_Config {
/**
* Decrypt passwords in the given config options
+ *
* @param array $options mount options
* @return array updated options
*/
@@ -769,6 +796,7 @@ class OC_Mount_Config {
/**
* Encrypt a single password
+ *
* @param string $password plain text password
* @return string encrypted password
*/
@@ -781,6 +809,7 @@ class OC_Mount_Config {
/**
* Decrypts a single password
+ *
* @param string $encryptedPassword encrypted password
* @return string plain text password
*/
@@ -795,6 +824,7 @@ class OC_Mount_Config {
/**
* Merges mount points
+ *
* @param array $data Existing mount points
* @param array $mountPoint New mount point
* @param string $mountType
@@ -808,7 +838,8 @@ class OC_Mount_Config {
// Merge priorities
if (isset($data[$mountType][$applicable][$mountPath])
&& isset($data[$mountType][$applicable][$mountPath]['priority'])
- && !isset($mountPoint[$applicable][$mountPath]['priority'])) {
+ && !isset($mountPoint[$applicable][$mountPath]['priority'])
+ ) {
$mountPoint[$applicable][$mountPath]['priority']
= $data[$mountType][$applicable][$mountPath]['priority'];
}
@@ -850,4 +881,32 @@ class OC_Mount_Config {
);
return hash('md5', $data);
}
+
+ private static function addStorageIdToConfig($user) {
+ $config = self::readData($user);
+
+ $needUpdate = false;
+ foreach ($config as &$applicables) {
+ foreach ($applicables as &$mountPoints) {
+ foreach ($mountPoints as &$options) {
+ $needUpdate |= !isset($options['storage_id']);
+ }
+ }
+ }
+
+ if ($needUpdate) {
+ self::writeData($user, $config);
+ }
+ }
+
+ private static function addStorageId(&$options) {
+ if (isset($options['storage_id'])) {
+ return false;
+ }
+ $class = $options['class'];
+ /** @var \OC\Files\Storage\Storage $storage */
+ $storage = new $class($options['options']);
+ $options['storage_id'] = $storage->getCache()->getNumericStorageId();
+ return true;
+ }
}
diff --git a/apps/files_external/templates/list.php b/apps/files_external/templates/list.php
index 4e06bc7024c..09923fe3879 100644
--- a/apps/files_external/templates/list.php
+++ b/apps/files_external/templates/list.php
@@ -4,7 +4,11 @@
</div>
<div id='notification'></div>
-<div id="emptycontent" class="hidden"><?php p($l->t( 'You don\'t have any external storages' )); ?></div>
+<div id="emptycontent" class="hidden">
+ <div class="icon-external"></div>
+ <h2><?php p($l->t('No external storages')); ?></h2>
+ <p><?php p($l->t('You can configure external storages in the personal settings')); ?></p>
+</div>
<input type="hidden" name="dir" value="" id="dir">
diff --git a/apps/files_external/tests/amazons3.php b/apps/files_external/tests/backends/amazons3.php
index fbb8744bd8d..fbb8744bd8d 100644
--- a/apps/files_external/tests/amazons3.php
+++ b/apps/files_external/tests/backends/amazons3.php
diff --git a/apps/files_external/tests/dropbox.php b/apps/files_external/tests/backends/dropbox.php
index 3f25d5a31e8..3f25d5a31e8 100644
--- a/apps/files_external/tests/dropbox.php
+++ b/apps/files_external/tests/backends/dropbox.php
diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/backends/ftp.php
index 842b7f43fa8..842b7f43fa8 100644
--- a/apps/files_external/tests/ftp.php
+++ b/apps/files_external/tests/backends/ftp.php
diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/backends/google.php
index 79023fac9e1..79023fac9e1 100644
--- a/apps/files_external/tests/google.php
+++ b/apps/files_external/tests/backends/google.php
diff --git a/apps/files_external/tests/owncloud.php b/apps/files_external/tests/backends/owncloud.php
index ab9101cfe5f..ab9101cfe5f 100644
--- a/apps/files_external/tests/owncloud.php
+++ b/apps/files_external/tests/backends/owncloud.php
diff --git a/apps/files_external/tests/sftp.php b/apps/files_external/tests/backends/sftp.php
index 703b37d93f1..703b37d93f1 100644
--- a/apps/files_external/tests/sftp.php
+++ b/apps/files_external/tests/backends/sftp.php
diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/backends/smb.php
index 9e5ab2b331f..9e5ab2b331f 100644
--- a/apps/files_external/tests/smb.php
+++ b/apps/files_external/tests/backends/smb.php
diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/backends/swift.php
index d2c884a8b4c..d2c884a8b4c 100644
--- a/apps/files_external/tests/swift.php
+++ b/apps/files_external/tests/backends/swift.php
diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/backends/webdav.php
index 5f53568b91a..c390612810d 100644
--- a/apps/files_external/tests/webdav.php
+++ b/apps/files_external/tests/backends/webdav.php
@@ -16,15 +16,15 @@ class DAV extends Storage {
parent::setUp();
$id = $this->getUniqueID();
- $this->config = include('files_external/tests/config.php');
- if ( ! is_array($this->config) or ! isset($this->config['webdav']) or ! $this->config['webdav']['run']) {
+ $config = include('files_external/tests/config.webdav.php');
+ if ( ! is_array($config) or !$config['run']) {
$this->markTestSkipped('WebDAV backend not configured');
}
- if (isset($this->config['webdav']['wait'])) {
- $this->waitDelay = $this->config['webdav']['wait'];
+ if (isset($config['wait'])) {
+ $this->waitDelay = $config['wait'];
}
- $this->config['webdav']['root'] .= '/' . $id; //make sure we have an new empty folder to work in
- $this->instance = new \OC\Files\Storage\DAV($this->config['webdav']);
+ $config['root'] .= '/' . $id; //make sure we have an new empty folder to work in
+ $this->instance = new \OC\Files\Storage\DAV($config);
$this->instance->mkdir('/');
}
diff --git a/apps/files_external/tests/env/start-webdav-ownCloud.sh b/apps/files_external/tests/env/start-webdav-ownCloud.sh
new file mode 100755
index 00000000000..c7267cff341
--- /dev/null
+++ b/apps/files_external/tests/env/start-webdav-ownCloud.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# This script start a docker container to test the files_external tests
+# against. It will also change the files_external config to use the docker
+# container as testing environment. This is reverted in the stop step.
+#
+# If the environment variable RUN_DOCKER_MYSQL is set the ownCloud will
+# be set up using MySQL instead of SQLite.
+#
+# Set environment variable DEBUG to print config file
+#
+# @author Morris Jobke
+# @copyright 2014 Morris Jobke <hey@morrisjobke.de>
+#
+
+if ! command -v docker >/dev/null 2>&1; then
+ echo "No docker executable found - skipped docker setup"
+ exit 0;
+fi
+
+echo "Docker executable found - setup docker"
+
+echo "Fetch recent morrisjobke/owncloud docker image"
+docker pull morrisjobke/owncloud
+
+# retrieve current folder to place the config in the parent folder
+thisFolder=`echo $0 | replace "env/start-webdav-ownCloud.sh" ""`
+
+if [ -n "$RUN_DOCKER_MYSQL" ]; then
+ echo "Fetch recent mysql docker image"
+ docker pull mysql
+
+ echo "Setup MySQL ..."
+ # user/password will be read by ENV variables in owncloud container (they are generated by docker)
+ databaseContainer=`docker run -e MYSQL_ROOT_PASSWORD=mysupersecretpassword -d mysql`
+ containerName=`docker inspect $databaseContainer | grep Name | grep _ | cut -d \" -f 4 | cut -d / -f 2`
+
+ parameter="--link $containerName:db"
+fi
+
+container=`docker run -P $parameter -d -e ADMINLOGIN=test -e ADMINPWD=test morrisjobke/owncloud`
+
+# TODO find a way to determine the successful initialization inside the docker container
+echo "Waiting 30 seconds for ownCloud initialization ... "
+sleep 30
+
+# get mapped port on host for internal port 80 - output is IP:PORT - we need to extract the port with 'cut'
+port=`docker port $container 80 | cut -f 2 -d :`
+
+
+cat > $thisFolder/config.webdav.php <<DELIM
+<?php
+
+return array(
+ 'run'=>true,
+ 'host'=>'localhost:$port/owncloud/remote.php/webdav/',
+ 'user'=>'test',
+ 'password'=>'test',
+ 'root'=>'',
+ // wait delay in seconds after write operations
+ // (only in tests)
+ // set to higher value for lighttpd webdav
+ 'wait'=> 0
+);
+
+DELIM
+
+echo "ownCloud container: $container"
+
+# put container IDs into a file to drop them after the test run (keep in mind that multiple tests run in parallel on the same host)
+echo $container >> $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav
+
+if [ -n "$databaseContainer" ]; then
+ echo "Database container: $databaseContainer"
+ echo $databaseContainer >> $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav
+fi
+
+if [ -n "$DEBUG" ]; then
+ echo $thisFolder/config.webdav.php
+fi
diff --git a/apps/files_external/tests/env/stop-webdav-ownCloud.sh b/apps/files_external/tests/env/stop-webdav-ownCloud.sh
new file mode 100755
index 00000000000..2f06eadcf7c
--- /dev/null
+++ b/apps/files_external/tests/env/stop-webdav-ownCloud.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# This script stops the docker container the files_external tests were run
+# against. It will also revert the config changes done in start step.
+#
+# @author Morris Jobke
+# @copyright 2014 Morris Jobke <hey@morrisjobke.de>
+#
+
+if ! command -v docker >/dev/null 2>&1; then
+ echo "No docker executable found - skipped docker stop"
+ exit 0;
+fi
+
+echo "Docker executable found - stop and remove docker containers"
+
+# retrieve current folder to remove the config from the parent folder
+thisFolder=`echo $0 | replace "env/stop-webdav-ownCloud.sh" ""`
+
+echo "DEBUG"
+
+netstat -tlpen
+
+echo "CONFIG:"
+
+cat $thisFolder/config.webdav.php
+cat $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav
+
+# stopping and removing docker containers
+for container in `cat $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav`; do
+ echo "Stopping and removing docker container $container"
+ # kills running container and removes it
+ docker rm -f $container
+done;
+
+# cleanup
+rm $thisFolder/config.webdav.php
+rm $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav
+
diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js
index ff6997ab12f..3168e930829 100644
--- a/apps/files_sharing/js/app.js
+++ b/apps/files_sharing/js/app.js
@@ -39,7 +39,9 @@ OCA.Sharing.App = {
this._extendFileList(this._inFileList);
this._inFileList.appName = t('files_sharing', 'Shared with you');
- this._inFileList.$el.find('#emptycontent').text(t('files_sharing', 'No files have been shared with you yet.'));
+ this._inFileList.$el.find('#emptycontent').html('<div class="icon-share"></div>' +
+ '<h2>' + t('files_sharing', 'Nothing shared with you yet') + '</h2>' +
+ '<p>' + t('files_sharing', 'Files and folders others share with you will show up here') + '</p>');
return this._inFileList;
},
@@ -59,7 +61,9 @@ OCA.Sharing.App = {
this._extendFileList(this._outFileList);
this._outFileList.appName = t('files_sharing', 'Shared with others');
- this._outFileList.$el.find('#emptycontent').text(t('files_sharing', 'You haven\'t shared any files yet.'));
+ this._outFileList.$el.find('#emptycontent').html('<div class="icon-share"></div>' +
+ '<h2>' + t('files_sharing', 'Nothing shared yet') + '</h2>' +
+ '<p>' + t('files_sharing', 'Files and folders you share will show up here') + '</p>');
return this._outFileList;
},
@@ -79,7 +83,9 @@ OCA.Sharing.App = {
this._extendFileList(this._linkFileList);
this._linkFileList.appName = t('files_sharing', 'Shared by link');
- this._linkFileList.$el.find('#emptycontent').text(t('files_sharing', 'You haven\'t shared any files by link yet.'));
+ this._linkFileList.$el.find('#emptycontent').html('<div class="icon-public"></div>' +
+ '<h2>' + t('files_sharing', 'No shared links') + '</h2>' +
+ '<p>' + t('files_sharing', 'Files and folders you share by link will show up here') + '</p>');
return this._linkFileList;
},
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index bd26b13b78a..2c7d6c7d43a 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -38,6 +38,7 @@
_sharedWithUser: false,
_linksOnly: false,
_clientSideSort: true,
+ _allowSelection: false,
/**
* @private
diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js
index 10c8497b502..3bba6675a4c 100644
--- a/apps/files_sharing/l10n/cs_CZ.js
+++ b/apps/files_sharing/l10n/cs_CZ.js
@@ -21,9 +21,9 @@ 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>",
+ "%1$s accepted remote share %2$s" : "%1$s přijal(a) vzdálené sdílení %2$s",
+ "%1$s declined remote share %2$s" : "%1$s odmítl(a) vzdálené sdílení %2$s",
+ "%1$s unshared %2$s" : "%1$s zrušil(a) sdílení %2$s",
"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..76d951e980a 100644
--- a/apps/files_sharing/l10n/cs_CZ.json
+++ b/apps/files_sharing/l10n/cs_CZ.json
@@ -19,9 +19,9 @@
"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>",
+ "%1$s accepted remote share %2$s" : "%1$s přijal(a) vzdálené sdílení %2$s",
+ "%1$s declined remote share %2$s" : "%1$s odmítl(a) vzdálené sdílení %2$s",
+ "%1$s unshared %2$s" : "%1$s zrušil(a) sdílení %2$s",
"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..172cf282b4c 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -21,9 +21,9 @@ 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>",
+ "%1$s accepted remote share %2$s" : "%1$s accepterede den ekstern deling %2$s",
+ "%1$s declined remote share %2$s" : "%1$s afviste den eksterne deling %2$s",
+ "%1$s unshared %2$s" : "%1$s stoppede delingen af %2$s",
"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..0f13ed34626 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -19,9 +19,9 @@
"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>",
+ "%1$s accepted remote share %2$s" : "%1$s accepterede den ekstern deling %2$s",
+ "%1$s declined remote share %2$s" : "%1$s afviste den eksterne deling %2$s",
+ "%1$s unshared %2$s" : "%1$s stoppede delingen af %2$s",
"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 5fb96bdbd1e..4997905a540 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -21,9 +21,9 @@ OC.L10N.register(
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> akzeptiert",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> abgelehnt",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe <strong>%2$s</strong> entfernt",
+ "%1$s accepted remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s akzeptiert",
+ "%1$s declined remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s abgelehnt",
+ "%1$s unshared %2$s" : "%1$s hat die Remotefreigabe von %2$s entfernt",
"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 b97052cf875..5a64fed40cb 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -19,9 +19,9 @@
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> akzeptiert",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> abgelehnt",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe <strong>%2$s</strong> entfernt",
+ "%1$s accepted remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s akzeptiert",
+ "%1$s declined remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s abgelehnt",
+ "%1$s unshared %2$s" : "%1$s hat die Remotefreigabe von %2$s entfernt",
"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 7afb8d56046..3c6b7cf6a98 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -21,9 +21,9 @@ OC.L10N.register(
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> akzeptiert",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> abgelehnt",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe <strong>%2$s</strong> entfernt",
+ "%1$s accepted remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s akzeptiert",
+ "%1$s declined remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s abgelehnt",
+ "%1$s unshared %2$s" : "%1$s hat die Remotefreigabe von %2$s entfernt",
"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 1fb415cd27a..7123b9fa1f2 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -19,9 +19,9 @@
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> akzeptiert",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe von <strong>%2$s</strong> abgelehnt",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s hat die Remotefreigabe <strong>%2$s</strong> entfernt",
+ "%1$s accepted remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s akzeptiert",
+ "%1$s declined remote share %2$s" : "%1$s hat die Remotefreigabe von %2$s abgelehnt",
+ "%1$s unshared %2$s" : "%1$s hat die Remotefreigabe von %2$s entfernt",
"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..e095c4bf677 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -21,9 +21,9 @@ 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>",
+ "%1$s accepted remote share %2$s" : "%1$s accepted remote share %2$s",
+ "%1$s declined remote share %2$s" : "%1$s declined remote share %2$s",
+ "%1$s unshared %2$s" : "%1$s unshared %2$s",
"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..056d6723a5a 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -19,9 +19,9 @@
"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>",
+ "%1$s accepted remote share %2$s" : "%1$s accepted remote share %2$s",
+ "%1$s declined remote share %2$s" : "%1$s declined remote share %2$s",
+ "%1$s unshared %2$s" : "%1$s unshared %2$s",
"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/es.js b/apps/files_sharing/l10n/es.js
index d7bfe45928f..70473b1daa6 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -20,6 +20,10 @@ OC.L10N.register(
"Invalid ownCloud url" : "URL de ownCloud inválido",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
+ "You received a new remote share from %s" : "Ha recibido un nuevo recurso compartido remoto de %s",
+ "%1$s accepted remote share %2$s" : "%1$s aceptó el recurso compartido remoto %2$s",
+ "%1$s declined remote share %2$s" : "%1$s ha rechazado el recurso compartido remoto %2$s",
+ "%1$s unshared %2$s" : "%1$s dejó de compartir %2$s",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
"Password" : "Contraseña",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index d7d3331ab22..9675ae0e75c 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -18,6 +18,10 @@
"Invalid ownCloud url" : "URL de ownCloud inválido",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
+ "You received a new remote share from %s" : "Ha recibido un nuevo recurso compartido remoto de %s",
+ "%1$s accepted remote share %2$s" : "%1$s aceptó el recurso compartido remoto %2$s",
+ "%1$s declined remote share %2$s" : "%1$s ha rechazado el recurso compartido remoto %2$s",
+ "%1$s unshared %2$s" : "%1$s dejó de compartir %2$s",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
"Password" : "Contraseña",
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
new file mode 100644
index 00000000000..1f1bf5377b3
--- /dev/null
+++ b/apps/files_sharing/l10n/fi.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "files_sharing",
+ {
+ "Cancel" : "Peruuta",
+ "Password" : "Salasana"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
new file mode 100644
index 00000000000..a80ddde0fed
--- /dev/null
+++ b/apps/files_sharing/l10n/fi.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Cancel" : "Peruuta",
+ "Password" : "Salasana"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index 2c14bd5841b..6c4d209c822 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -21,9 +21,9 @@ 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>",
+ "%1$s accepted remote share %2$s" : "%1$s hyväksyi etäjaon %2$s",
+ "%1$s declined remote share %2$s" : "%1$s kieltäytyi etäjaosta %2$s",
+ "%1$s unshared %2$s" : "%1$s lopetti kohteen %2$s jakamisen",
"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..c1eb5f1ca39 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -19,9 +19,9 @@
"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>",
+ "%1$s accepted remote share %2$s" : "%1$s hyväksyi etäjaon %2$s",
+ "%1$s declined remote share %2$s" : "%1$s kieltäytyi etäjaosta %2$s",
+ "%1$s unshared %2$s" : "%1$s lopetti kohteen %2$s jakamisen",
"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 08ee440fb00..9e15354734b 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur",
"The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalide ou non-fiable",
- "Couldn't add remote share" : "Impossible d'ajouter un partage distant",
+ "Invalid or untrusted SSL certificate" : "Certificat SSL non valable ou non fiable",
+ "Couldn't add remote share" : "Impossible d'ajouter le partage distant",
"Shared with you" : "Partagés avec vous",
"Shared with others" : "Partagés avec d'autres",
"Shared by link" : "Partagés par lien",
@@ -21,9 +21,9 @@ OC.L10N.register(
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s partage distant accepté <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s partage distant refusé <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s non partagé <strong>%2$s</strong>",
+ "%1$s accepted remote share %2$s" : "%1$s a accepté le partage distant %2$s",
+ "%1$s declined remote share %2$s" : "%1$s a refusé le partage distant %2$s",
+ "%1$s unshared %2$s" : "%1$s a cessé de partager %2$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 9fbc3432e3c..bcdea171c31 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -1,8 +1,8 @@
{ "translations": {
"Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur",
"The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalide ou non-fiable",
- "Couldn't add remote share" : "Impossible d'ajouter un partage distant",
+ "Invalid or untrusted SSL certificate" : "Certificat SSL non valable ou non fiable",
+ "Couldn't add remote share" : "Impossible d'ajouter le partage distant",
"Shared with you" : "Partagés avec vous",
"Shared with others" : "Partagés avec d'autres",
"Shared by link" : "Partagés par lien",
@@ -19,9 +19,9 @@
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s partage distant accepté <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s partage distant refusé <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s non partagé <strong>%2$s</strong>",
+ "%1$s accepted remote share %2$s" : "%1$s a accepté le partage distant %2$s",
+ "%1$s declined remote share %2$s" : "%1$s a refusé le partage distant %2$s",
+ "%1$s unshared %2$s" : "%1$s a cessé de partager %2$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/it.js b/apps/files_sharing/l10n/it.js
index 64ee7b18f6f..d7ead5c2693 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -19,6 +19,11 @@ OC.L10N.register(
"No ownCloud installation found at {remote}" : "Nessuna installazione di ownCloud trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
"Shared by" : "Condiviso da",
+ "A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
+ "You received a new remote share from %s" : "Hai ricevuto una nuova condivisione remota da %s",
+ "%1$s accepted remote share %2$s" : "%1$s ha accettato la condivisione remota %2$s",
+ "%1$s declined remote share %2$s" : "%1$s ha rifiutato la condivisione remota %2$s",
+ "%1$s unshared %2$s" : "%1$s ha rimosso la condivisione %2$s",
"This share is password-protected" : "Questa condivione è protetta da password",
"The password is wrong. Try again." : "La password è errata. Prova ancora.",
"Password" : "Password",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 241c24febed..a3a5ba52eec 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -17,6 +17,11 @@
"No ownCloud installation found at {remote}" : "Nessuna installazione di ownCloud trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
"Shared by" : "Condiviso da",
+ "A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
+ "You received a new remote share from %s" : "Hai ricevuto una nuova condivisione remota da %s",
+ "%1$s accepted remote share %2$s" : "%1$s ha accettato la condivisione remota %2$s",
+ "%1$s declined remote share %2$s" : "%1$s ha rifiutato la condivisione remota %2$s",
+ "%1$s unshared %2$s" : "%1$s ha rimosso la condivisione %2$s",
"This share is password-protected" : "Questa condivione è protetta da password",
"The password is wrong. Try again." : "La password è errata. Prova ancora.",
"Password" : "Password",
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 4f3cbdf721a..6da405b9a47 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -21,9 +21,9 @@ OC.L10N.register(
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepteerde externe share <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s weigerde externe share <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s stopte met delen van <strong>%2$s</strong>",
+ "%1$s accepted remote share %2$s" : "%1$s accepteerde externe share %2$s",
+ "%1$s declined remote share %2$s" : "%1$s weigerde externe share %2$s",
+ "%1$s unshared %2$s" : "%1$s stopte met delen van %2$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 ebf434e0226..2f7c56d8183 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -19,9 +19,9 @@
"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",
- "%1$s accepted remote share <strong>%2$s</strong>" : "%1$s accepteerde externe share <strong>%2$s</strong>",
- "%1$s declined remote share <strong>%2$s</strong>" : "%1$s weigerde externe share <strong>%2$s</strong>",
- "%1$s unshared <strong>%2$s</strong>" : "%1$s stopte met delen van <strong>%2$s</strong>",
+ "%1$s accepted remote share %2$s" : "%1$s accepteerde externe share %2$s",
+ "%1$s declined remote share %2$s" : "%1$s weigerde externe share %2$s",
+ "%1$s unshared %2$s" : "%1$s stopte met delen van %2$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..b7814e2d0ab 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -21,9 +21,9 @@ 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>",
+ "%1$s accepted remote share %2$s" : "%1$s aceitou o compartilhamento remoto %2$s",
+ "%1$s declined remote share %2$s" : "%1$s declinou o compartilhamento remoto %2$s",
+ "%1$s unshared %2$s" : "%1$s descompartilhou %2$s",
"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..38a74d0b559 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -19,9 +19,9 @@
"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>",
+ "%1$s accepted remote share %2$s" : "%1$s aceitou o compartilhamento remoto %2$s",
+ "%1$s declined remote share %2$s" : "%1$s declinou o compartilhamento remoto %2$s",
+ "%1$s unshared %2$s" : "%1$s descompartilhou %2$s",
"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/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
index 33c9c83b970..e5b5de314d7 100644
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ b/apps/files_sharing/tests/js/shareSpec.js
@@ -99,7 +99,7 @@ describe('OCA.Sharing.Util tests', function() {
$action = $tr.find('.action-share');
expect($action.hasClass('permanent')).toEqual(false);
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows simple share text with share icon', function() {
@@ -119,7 +119,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows simple share text with public icon when shared with link', function() {
@@ -140,7 +140,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared');
expect(OC.basename($action.find('img').attr('src'))).toEqual('public.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-public.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-public.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows owner name when owner is available', function() {
@@ -161,7 +161,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('User One');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
});
it('shows recipients when recipients are available', function() {
var $action, $tr;
@@ -181,7 +181,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text()).toEqual('Shared with User One, User Two');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
it('shows static share text when file shared with user that has no share permission', function() {
@@ -203,7 +203,7 @@ describe('OCA.Sharing.Util tests', function() {
expect($action.hasClass('permanent')).toEqual(true);
expect($action.find('>span').text().trim()).toEqual('User One');
expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
- expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
});
diff --git a/apps/files_trashbin/l10n/fi.js b/apps/files_trashbin/l10n/fi.js
new file mode 100644
index 00000000000..e3b5a93ead8
--- /dev/null
+++ b/apps/files_trashbin/l10n/fi.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "files_trashbin",
+ {
+ "Error" : "Virhe",
+ "Delete" : "Poista"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/fi.json b/apps/files_trashbin/l10n/fi.json
new file mode 100644
index 00000000000..639a5749f28
--- /dev/null
+++ b/apps/files_trashbin/l10n/fi.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Error" : "Virhe",
+ "Delete" : "Poista"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php
index fc18e88c41e..82bc360a9f5 100644
--- a/apps/files_trashbin/templates/index.php
+++ b/apps/files_trashbin/templates/index.php
@@ -4,7 +4,11 @@
</div>
<div id='notification'></div>
-<div id="emptycontent" class="hidden"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
+<div id="emptycontent" class="hidden">
+ <div class="icon-delete"></div>
+ <h2><?php p($l->t('No deleted files')); ?></h2>
+ <p><?php p($l->t('You will be able to recover deleted files from here')); ?></p>
+</div>
<input type="hidden" name="dir" value="" id="dir">
diff --git a/apps/user_ldap/l10n/fi.js b/apps/user_ldap/l10n/fi.js
new file mode 100644
index 00000000000..909c5227514
--- /dev/null
+++ b/apps/user_ldap/l10n/fi.js
@@ -0,0 +1,13 @@
+OC.L10N.register(
+ "user_ldap",
+ {
+ "Error" : "Virhe",
+ "_%s group found_::_%s groups found_" : ["",""],
+ "_%s user found_::_%s users found_" : ["",""],
+ "Server" : "Palvelin",
+ "Save" : "Tallenna",
+ "Help" : "Apua",
+ "Password" : "Salasana",
+ "Back" : "Takaisin"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/fi.json b/apps/user_ldap/l10n/fi.json
new file mode 100644
index 00000000000..053bb453f7f
--- /dev/null
+++ b/apps/user_ldap/l10n/fi.json
@@ -0,0 +1,11 @@
+{ "translations": {
+ "Error" : "Virhe",
+ "_%s group found_::_%s groups found_" : ["",""],
+ "_%s user found_::_%s users found_" : ["",""],
+ "Server" : "Palvelin",
+ "Save" : "Tallenna",
+ "Help" : "Apua",
+ "Password" : "Salasana",
+ "Back" : "Takaisin"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index 3aeaaf0bb5c..6d7ce8bc499 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -4,8 +4,8 @@ OC.L10N.register(
"Failed to clear the mappings." : "Erreur lors de la suppression des associations.",
"Failed to delete the server configuration" : "Échec de la suppression de la configuration du serveur",
"The configuration is valid and the connection could be established!" : "La configuration est valide et la connexion peut être établie !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuration est invalide. Veuillez consulter les logs pour plus de détails.",
+ "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valable, mais le bind a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
+ "The configuration is invalid. Please have a look at the logs for further details." : "La configuration n'est pas valable. Veuillez consulter les logs pour plus de détails.",
"No action specified" : "Aucune action spécifiée",
"No configuration specified" : "Aucune configuration spécifiée",
"No data specified" : "Aucune donnée spécifiée",
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 31d56f28b40..79606f3eb6e 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -2,8 +2,8 @@
"Failed to clear the mappings." : "Erreur lors de la suppression des associations.",
"Failed to delete the server configuration" : "Échec de la suppression de la configuration du serveur",
"The configuration is valid and the connection could be established!" : "La configuration est valide et la connexion peut être établie !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuration est invalide. Veuillez consulter les logs pour plus de détails.",
+ "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valable, mais le bind a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
+ "The configuration is invalid. Please have a look at the logs for further details." : "La configuration n'est pas valable. Veuillez consulter les logs pour plus de détails.",
"No action specified" : "Aucune action spécifiée",
"No configuration specified" : "Aucune configuration spécifiée",
"No data specified" : "Aucune donnée spécifiée",
diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php
index 3b448aec757..5527cf2c6da 100644
--- a/apps/user_ldap/settings.php
+++ b/apps/user_ldap/settings.php
@@ -31,7 +31,6 @@ OCP\Util::addScript('user_ldap', 'settings');
\OC_Util::addVendorScript('user_ldap', 'ui-multiselect/src/jquery.multiselect');
OCP\Util::addStyle('user_ldap', 'settings');
\OC_Util::addVendorStyle('user_ldap', 'ui-multiselect/jquery.multiselect');
-OCP\Util::addStyle('core', 'jquery-ui-1.10.0.custom');
// fill template
$tmpl = new OCP\Template('user_ldap', 'settings');
diff --git a/apps/user_webdavauth/l10n/fi.js b/apps/user_webdavauth/l10n/fi.js
new file mode 100644
index 00000000000..09bd8e55e7f
--- /dev/null
+++ b/apps/user_webdavauth/l10n/fi.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "user_webdavauth",
+ {
+ "Save" : "Tallenna"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_webdavauth/l10n/fi.json b/apps/user_webdavauth/l10n/fi.json
new file mode 100644
index 00000000000..f4a8647859b
--- /dev/null
+++ b/apps/user_webdavauth/l10n/fi.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Save" : "Tallenna"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/user_webdavauth/l10n/fr.js b/apps/user_webdavauth/l10n/fr.js
index 5b36d5aa5b1..a53302d4a6d 100644
--- a/apps/user_webdavauth/l10n/fr.js
+++ b/apps/user_webdavauth/l10n/fr.js
@@ -4,6 +4,6 @@ OC.L10N.register(
"WebDAV Authentication" : "Authentification WebDAV",
"Address:" : "Adresse :",
"Save" : "Sauvegarder",
- "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide."
+ "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification non valable et toute autre valeur comme une authentification valable."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_webdavauth/l10n/fr.json b/apps/user_webdavauth/l10n/fr.json
index fe8c4b521ad..93d631c8ed6 100644
--- a/apps/user_webdavauth/l10n/fr.json
+++ b/apps/user_webdavauth/l10n/fr.json
@@ -2,6 +2,6 @@
"WebDAV Authentication" : "Authentification WebDAV",
"Address:" : "Adresse :",
"Save" : "Sauvegarder",
- "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide."
+ "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification non valable et toute autre valeur comme une authentification valable."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file