summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/api.php6
-rw-r--r--lib/base.php26
-rw-r--r--lib/files/cache/cache.php49
-rw-r--r--lib/files/cache/scanner.php2
-rw-r--r--lib/files/cache/storage.php59
-rw-r--r--lib/files/filesystem.php39
-rw-r--r--lib/files/mount.php (renamed from lib/files/mount/mount.php)106
-rw-r--r--lib/files/mount/manager.php120
-rw-r--r--lib/files/storage/common.php10
-rw-r--r--lib/files/storage/local.php437
-rw-r--r--lib/files/storage/storage.php5
-rw-r--r--lib/files/view.php2
-rw-r--r--lib/l10n/ar.php5
-rw-r--r--lib/l10n/bg_BG.php3
-rw-r--r--lib/l10n/bn_BD.php10
-rw-r--r--lib/l10n/ca.php5
-rw-r--r--lib/l10n/cs_CZ.php9
-rw-r--r--lib/l10n/cy_GB.php3
-rw-r--r--lib/l10n/da.php13
-rw-r--r--lib/l10n/de.php11
-rw-r--r--lib/l10n/de_DE.php7
-rw-r--r--lib/l10n/el.php9
-rw-r--r--lib/l10n/eo.php11
-rw-r--r--lib/l10n/es.php7
-rw-r--r--lib/l10n/es_AR.php15
-rw-r--r--lib/l10n/et_EE.php9
-rw-r--r--lib/l10n/eu.php13
-rw-r--r--lib/l10n/fi_FI.php5
-rw-r--r--lib/l10n/fr.php7
-rw-r--r--lib/l10n/gl.php7
-rw-r--r--lib/l10n/he.php3
-rw-r--r--lib/l10n/hr.php1
-rw-r--r--lib/l10n/hu_HU.php9
-rw-r--r--lib/l10n/ia.php1
-rw-r--r--lib/l10n/id.php3
-rw-r--r--lib/l10n/is.php3
-rw-r--r--lib/l10n/it.php9
-rw-r--r--lib/l10n/ja_JP.php13
-rw-r--r--lib/l10n/ka_GE.php3
-rw-r--r--lib/l10n/ko.php3
-rw-r--r--lib/l10n/ku_IQ.php1
-rw-r--r--lib/l10n/lb.php2
-rw-r--r--lib/l10n/lt_LT.php13
-rw-r--r--lib/l10n/lv.php3
-rw-r--r--lib/l10n/mk.php5
-rw-r--r--lib/l10n/ms_MY.php1
-rw-r--r--lib/l10n/my_MM.php3
-rw-r--r--lib/l10n/nb_NO.php7
-rw-r--r--lib/l10n/nl.php3
-rw-r--r--lib/l10n/nn_NO.php13
-rw-r--r--lib/l10n/oc.php4
-rw-r--r--lib/l10n/pl.php15
-rw-r--r--lib/l10n/pt_BR.php3
-rw-r--r--lib/l10n/pt_PT.php11
-rw-r--r--lib/l10n/ro.php3
-rw-r--r--lib/l10n/ru.php9
-rw-r--r--lib/l10n/ru_RU.php36
-rw-r--r--lib/l10n/si_LK.php7
-rw-r--r--lib/l10n/sk_SK.php5
-rw-r--r--lib/l10n/sl.php9
-rw-r--r--lib/l10n/sq.php5
-rw-r--r--lib/l10n/sr.php5
-rw-r--r--lib/l10n/sr@latin.php1
-rw-r--r--lib/l10n/sv.php7
-rw-r--r--lib/l10n/ta_LK.php5
-rw-r--r--lib/l10n/th_TH.php9
-rw-r--r--lib/l10n/tr.php5
-rw-r--r--lib/l10n/uk.php3
-rw-r--r--lib/l10n/vi.php7
-rw-r--r--lib/l10n/zh_CN.GB2312.php5
-rw-r--r--lib/l10n/zh_CN.php9
-rw-r--r--lib/l10n/zh_TW.php3
-rw-r--r--lib/public/share.php2
-rwxr-xr-xlib/request.php13
-rw-r--r--lib/templatelayout.php73
-rw-r--r--lib/updater.php46
-rw-r--r--lib/user.php2
-rwxr-xr-xlib/util.php32
78 files changed, 741 insertions, 702 deletions
diff --git a/lib/api.php b/lib/api.php
index 249d7a90350..8d6bbb7cc09 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -89,7 +89,7 @@ class OC_API {
$responses = array();
foreach(self::$actions[$name] as $action) {
// Check authentication and availability
- if(!self::isAuthorised($action)) {
+ if(!self::isAuthorised(self::$actions[$name])) {
$responses[] = array(
'app' => $action['app'],
'response' => new OC_OCS_Result(null, OC_API::RESPOND_UNAUTHORISED, 'Unauthorised'),
@@ -155,11 +155,11 @@ class OC_API {
// They may have failed for different reasons (different status codes)
// Which reponse code should we return?
// Maybe any that are not OC_API::RESPOND_SERVER_ERROR
- $response = reset($shipped['failed']);
+ $response = $shipped['failed'][0];
return $response;
} else {
// Return the third party failure result
- $response = reset($thirdparty['failed']);
+ $response = $thirdparty['failed'][0];
return $response;
}
// Merge the successful responses
diff --git a/lib/base.php b/lib/base.php
index 8633ae9b637..7b0967df9f9 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -97,15 +97,8 @@ class OC {
$path = 'public/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
} elseif (strpos($className, 'OCA\\') === 0) {
foreach (self::$APPSROOTS as $appDir) {
- $path = strtolower(str_replace('\\', '/', substr($className, 4)) . '.php');
- $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $path);
- if (file_exists($fullPath)) {
- require_once $fullPath;
- return false;
- }
- // If not found in the root of the app directory, insert '/lib' after app id and try again.
- $libpath = substr($path, 0, strpos($path, '/')) . '/lib' . substr($path, strpos($path, '/'));
- $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $libpath);
+ $path = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
+ $fullPath = stream_resolve_include_path($path);
if (file_exists($fullPath)) {
require_once $fullPath;
return false;
@@ -474,13 +467,11 @@ class OC {
stream_wrapper_register('close', 'OC\Files\Stream\Close');
stream_wrapper_register('oc', 'OC\Files\Stream\OC');
- self::initTemplateEngine();
self::checkConfig();
self::checkInstalled();
self::checkSSL();
- if ( !self::$CLI ) {
- self::initSession();
- }
+ self::initSession();
+ self::initTemplateEngine();
$errors = OC_Util::checkServer();
if (count($errors) > 0) {
@@ -640,13 +631,8 @@ class OC {
// Handle redirect URL for logged in users
if (isset($_REQUEST['redirect_url']) && OC_User::isLoggedIn()) {
$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url']));
-
- // Deny the redirect if the URL contains a @
- // This prevents unvalidated redirects like ?redirect_url=:user@domain.com
- if (strpos($location, '@') === FALSE) {
- header('Location: ' . $location);
- return;
- }
+ header('Location: ' . $location);
+ return;
}
// Handle WebDAV
if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND') {
diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php
index 76a23c2573b..4e32ff2ba8a 100644
--- a/lib/files/cache/cache.php
+++ b/lib/files/cache/cache.php
@@ -30,9 +30,11 @@ class Cache {
private $storageId;
/**
- * @var Storage $storageCache
+ * numeric storage id
+ *
+ * @var int $numericId
*/
- private $storageCache;
+ private $numericId;
private $mimetypeIds = array();
private $mimetypes = array();
@@ -50,11 +52,19 @@ class Cache {
$this->storageId = md5($this->storageId);
}
- $this->storageCache = new Storage($storage);
+ $query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?');
+ $result = $query->execute(array($this->storageId));
+ if ($row = $result->fetchRow()) {
+ $this->numericId = $row['numeric_id'];
+ } else {
+ $query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)');
+ $query->execute(array($this->storageId));
+ $this->numericId = \OC_DB::insertid('*PREFIX*storages');
+ }
}
public function getNumericStorageId() {
- return $this->storageCache->getNumericId();
+ return $this->numericId;
}
/**
@@ -101,7 +111,7 @@ class Cache {
public function get($file) {
if (is_string($file) or $file == '') {
$where = 'WHERE `storage` = ? AND `path_hash` = ?';
- $params = array($this->getNumericStorageId(), md5($file));
+ $params = array($this->numericId, md5($file));
} else { //file id
$where = 'WHERE `fileid` = ?';
$params = array($file);
@@ -189,14 +199,14 @@ class Cache {
list($queryParts, $params) = $this->buildParts($data);
$queryParts[] = '`storage`';
- $params[] = $this->getNumericStorageId();
+ $params[] = $this->numericId;
$valuesPlaceholder = array_fill(0, count($queryParts), '?');
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ')'
. ' VALUES(' . implode(', ', $valuesPlaceholder) . ')');
$result = $query->execute($params);
if (\OC_DB::isError($result)) {
- \OCP\Util::writeLog('cache', 'Insert to cache failed: ' . $result, \OCP\Util::ERROR);
+ \OCP\Util::writeLog('cache', 'Insert to cache failed: '.$result, \OCP\Util::ERROR);
}
return (int)\OC_DB::insertid('*PREFIX*filecache');
@@ -255,7 +265,7 @@ class Cache {
$pathHash = md5($file);
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
- $result = $query->execute(array($this->getNumericStorageId(), $pathHash));
+ $result = $query->execute(array($this->numericId, $pathHash));
if ($row = $result->fetchRow()) {
return $row['fileid'];
@@ -344,7 +354,7 @@ class Cache {
*/
public function clear() {
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE storage = ?');
- $query->execute(array($this->getNumericStorageId()));
+ $query->execute(array($this->numericId));
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*storages` WHERE id = ?');
$query->execute(array($this->storageId));
@@ -358,7 +368,7 @@ class Cache {
public function getStatus($file) {
$pathHash = md5($file);
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
- $result = $query->execute(array($this->getNumericStorageId(), $pathHash));
+ $result = $query->execute(array($this->numericId, $pathHash));
if ($row = $result->fetchRow()) {
if ((int)$row['size'] === -1) {
return self::SHALLOW;
@@ -385,7 +395,7 @@ class Cache {
SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `storage` = ?'
);
- $result = $query->execute(array($pattern, $this->getNumericStorageId()));
+ $result = $query->execute(array($pattern, $this->numericId));
$files = array();
while ($row = $result->fetchRow()) {
$row['mimetype'] = $this->getMimetype($row['mimetype']);
@@ -412,7 +422,7 @@ class Cache {
FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `storage` = ?'
);
$mimetype = $this->getMimetypeId($mimetype);
- $result = $query->execute(array($mimetype, $this->getNumericStorageId()));
+ $result = $query->execute(array($mimetype, $this->numericId));
$files = array();
while ($row = $result->fetchRow()) {
$row['mimetype'] = $this->getMimetype($row['mimetype']);
@@ -431,7 +441,7 @@ class Cache {
$this->calculateFolderSize($path);
if ($path !== '') {
$parent = dirname($path);
- if ($parent === '.' or $parent === '/') {
+ if ($parent === '.') {
$parent = '';
}
$this->correctFolderSize($parent);
@@ -450,7 +460,7 @@ class Cache {
return 0;
}
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?');
- $result = $query->execute(array($id, $this->getNumericStorageId()));
+ $result = $query->execute(array($id, $this->numericId));
$totalSize = 0;
$hasChilds = 0;
while ($row = $result->fetchRow()) {
@@ -477,7 +487,7 @@ class Cache {
*/
public function getAll() {
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ?');
- $result = $query->execute(array($this->getNumericStorageId()));
+ $result = $query->execute(array($this->numericId));
$ids = array();
while ($row = $result->fetchRow()) {
$ids[] = $row['fileid'];
@@ -497,7 +507,7 @@ class Cache {
public function getIncomplete() {
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`'
. ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1');
- $result = $query->execute(array($this->getNumericStorageId()));
+ $result = $query->execute(array($this->numericId));
if ($row = $result->fetchRow()) {
return $row['path'];
} else {
@@ -508,7 +518,6 @@ class Cache {
/**
* get the storage id of the storage for a file and the internal path of the file
*
- * @param int $id
* @return array, first element holding the storage id, second the path
*/
static public function getById($id) {
@@ -521,8 +530,10 @@ class Cache {
return null;
}
- if ($id = Storage::getStorageId($numericId)) {
- return array($id, $path);
+ $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
+ $result = $query->execute(array($numericId));
+ if ($row = $result->fetchRow()) {
+ return array($row['id'], $path);
} else {
return null;
}
diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
index 5241acec1ee..f019d4fc608 100644
--- a/lib/files/cache/scanner.php
+++ b/lib/files/cache/scanner.php
@@ -68,7 +68,7 @@ class Scanner {
if ($data) {
if ($file) {
$parent = dirname($file);
- if ($parent === '.' or $parent === '/') {
+ if ($parent === '.') {
$parent = '';
}
if (!$this->cache->inCache($parent)) {
diff --git a/lib/files/cache/storage.php b/lib/files/cache/storage.php
deleted file mode 100644
index 72de376798c..00000000000
--- a/lib/files/cache/storage.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC\Files\Cache;
-
-/**
- * Class Storage
- *
- * cache storage specific data
- *
- * @package OC\Files\Cache
- */
-class Storage {
- private $storageId;
- private $numericId;
-
- /**
- * @param \OC\Files\Storage\Storage|string $storage
- */
- public function __construct($storage) {
- if ($storage instanceof \OC\Files\Storage\Storage) {
- $this->storageId = $storage->getId();
- } else {
- $this->storageId = $storage;
- }
- if (strlen($this->storageId) > 64) {
- $this->storageId = md5($this->storageId);
- }
-
- $query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?');
- $result = $query->execute(array($this->storageId));
- if ($row = $result->fetchRow()) {
- $this->numericId = $row['numeric_id'];
- } else {
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)');
- $query->execute(array($this->storageId));
- $this->numericId = \OC_DB::insertid('*PREFIX*storages');
- }
- }
-
- public function getNumericId() {
- return $this->numericId;
- }
-
- public static function getStorageId($numericId) {
- $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
- $result = $query->execute(array($numericId));
- if ($row = $result->fetchRow()) {
- return $row['id'];
- } else {
- return null;
- }
- }
-}
diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php
index 467973f09d8..c0e9d215fb5 100644
--- a/lib/files/filesystem.php
+++ b/lib/files/filesystem.php
@@ -34,11 +34,6 @@ const FREE_SPACE_UNKNOWN = -2;
const FREE_SPACE_UNLIMITED = -3;
class Filesystem {
- /**
- * @var Mount\Manager $mounts
- */
- private static $mounts;
-
public static $loaded = false;
/**
* @var \OC\Files\View $defaultInstance
@@ -152,7 +147,7 @@ class Filesystem {
* @return string
*/
static public function getMountPoint($path) {
- $mount = self::$mounts->find($path);
+ $mount = Mount::find($path);
if ($mount) {
return $mount->getMountPoint();
} else {
@@ -168,7 +163,7 @@ class Filesystem {
*/
static public function getMountPoints($path) {
$result = array();
- $mounts = self::$mounts->findIn($path);
+ $mounts = Mount::findIn($path);
foreach ($mounts as $mount) {
$result[] = $mount->getMountPoint();
}
@@ -182,34 +177,18 @@ class Filesystem {
* @return \OC\Files\Storage\Storage
*/
public static function getStorage($mountPoint) {
- $mount = self::$mounts->find($mountPoint);
+ $mount = Mount::find($mountPoint);
return $mount->getStorage();
}
/**
- * @param $id
- * @return Mount\Mount[]
- */
- public static function getMountByStorageId($id) {
- return self::$mounts->findByStorageId($id);
- }
-
- /**
- * @param $id
- * @return Mount\Mount[]
- */
- public static function getMountByNumericId($id) {
- return self::$mounts->findByStorageId($id);
- }
-
- /**
* resolve a path to a storage and internal path
*
* @param string $path
* @return array consisting of the storage and the internal path
*/
static public function resolvePath($path) {
- $mount = self::$mounts->find($path);
+ $mount = Mount::find($path);
if ($mount) {
return array($mount->getStorage(), $mount->getInternalPath($path));
} else {
@@ -222,7 +201,6 @@ class Filesystem {
return false;
}
self::$defaultInstance = new View($root);
- self::$mounts = new Mount\Manager();
//load custom mount config
self::initMountPoints($user);
@@ -232,10 +210,6 @@ class Filesystem {
return true;
}
- static public function initMounts(){
- self::$mounts = new Mount\Manager();
- }
-
/**
* Initialize system and personal mount points for a user
*
@@ -353,7 +327,7 @@ class Filesystem {
* clear all mounts and storage backends
*/
public static function clearMounts() {
- self::$mounts->clear();
+ Mount::clear();
}
/**
@@ -364,8 +338,7 @@ class Filesystem {
* @param string $mountpoint
*/
static public function mount($class, $arguments, $mountpoint) {
- $mount = new Mount\Mount($class, $mountpoint, $arguments);
- self::$mounts->addMount($mount);
+ new Mount($class, $mountpoint, $arguments);
}
/**
diff --git a/lib/files/mount/mount.php b/lib/files/mount.php
index 69b8285ab4c..59c98e9dcc8 100644
--- a/lib/files/mount/mount.php
+++ b/lib/files/mount.php
@@ -6,12 +6,13 @@
* See the COPYING-README file.
*/
-namespace OC\Files\Mount;
-
-use \OC\Files\Filesystem;
+namespace OC\Files;
class Mount {
-
+ /**
+ * @var Mount[]
+ */
+ static private $mounts = array();
/**
* @var \OC\Files\Storage\Storage $storage
@@ -32,7 +33,7 @@ class Mount {
$arguments = array();
}
- $mountpoint = $this->formatPath($mountpoint);
+ $mountpoint = self::formatPath($mountpoint);
if ($storage instanceof \OC\Files\Storage\Storage) {
$this->class = get_class($storage);
$this->storage = $storage;
@@ -45,6 +46,8 @@ class Mount {
$this->arguments = $arguments;
}
$this->mountPoint = $mountpoint;
+
+ self::$mounts[$this->mountPoint] = $this;
}
/**
@@ -55,8 +58,6 @@ class Mount {
}
/**
- * create the storage that is mounted
- *
* @return \OC\Files\Storage\Storage
*/
private function createStorage() {
@@ -120,11 +121,100 @@ class Mount {
* @param string $path
* @return string
*/
- private function formatPath($path) {
+ private static function formatPath($path) {
$path = Filesystem::normalizePath($path);
if (strlen($path) > 1) {
$path .= '/';
}
return $path;
}
+
+ /**
+ * Find the mount for $path
+ *
+ * @param $path
+ * @return Mount
+ */
+ public static function find($path) {
+ $path = self::formatPath($path);
+ if (isset(self::$mounts[$path])) {
+ return self::$mounts[$path];
+ }
+
+ \OC_Hook::emit('OC_Filesystem', 'get_mountpoint', array('path' => $path));
+ $foundMountPoint = '';
+ $mountPoints = array_keys(self::$mounts);
+ foreach ($mountPoints as $mountpoint) {
+ if (strpos($path, $mountpoint) === 0 and strlen($mountpoint) > strlen($foundMountPoint)) {
+ $foundMountPoint = $mountpoint;
+ }
+ }
+ if (isset(self::$mounts[$foundMountPoint])) {
+ return self::$mounts[$foundMountPoint];
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Find all mounts in $path
+ *
+ * @param $path
+ * @return Mount[]
+ */
+ public static function findIn($path) {
+ $path = self::formatPath($path);
+ $result = array();
+ $pathLength = strlen($path);
+ $mountPoints = array_keys(self::$mounts);
+ foreach ($mountPoints as $mountPoint) {
+ if (substr($mountPoint, 0, $pathLength) === $path and strlen($mountPoint) > $pathLength) {
+ $result[] = self::$mounts[$mountPoint];
+ }
+ }
+ return $result;
+ }
+
+ public static function clear() {
+ self::$mounts = array();
+ }
+
+ /**
+ * Find mounts by storage id
+ *
+ * @param string $id
+ * @return Mount[]
+ */
+ public static function findByStorageId($id) {
+ if (strlen($id) > 64) {
+ $id = md5($id);
+ }
+ $result = array();
+ foreach (self::$mounts as $mount) {
+ if ($mount->getStorageId() === $id) {
+ $result[] = $mount;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * Find mounts by numeric storage id
+ *
+ * @param string $id
+ * @return Mount
+ */
+ public static function findByNumericId($id) {
+ $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
+ $result = $query->execute(array($id))->fetchOne();
+ if ($result) {
+ $id = $result;
+ foreach (self::$mounts as $mount) {
+ if ($mount->getStorageId() === $id) {
+ return $mount;
+ }
+ }
+ }
+ return false;
+ }
}
diff --git a/lib/files/mount/manager.php b/lib/files/mount/manager.php
deleted file mode 100644
index 25a5fe241cc..00000000000
--- a/lib/files/mount/manager.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/**
- * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC\Files\Mount;
-
-use \OC\Files\Filesystem;
-
-class Manager {
- /**
- * @var Mount[]
- */
- private $mounts = array();
-
- /**
- * @param Mount $mount
- */
- public function addMount($mount) {
- $this->mounts[$mount->getMountPoint()] = $mount;
- }
-
- /**
- * Find the mount for $path
- *
- * @param $path
- * @return Mount
- */
- public function find($path) {
- \OC_Util::setupFS();
- $path = $this->formatPath($path);
- if (isset($this->mounts[$path])) {
- return $this->mounts[$path];
- }
-
- \OC_Hook::emit('OC_Filesystem', 'get_mountpoint', array('path' => $path));
- $foundMountPoint = '';
- $mountPoints = array_keys($this->mounts);
- foreach ($mountPoints as $mountpoint) {
- if (strpos($path, $mountpoint) === 0 and strlen($mountpoint) > strlen($foundMountPoint)) {
- $foundMountPoint = $mountpoint;
- }
- }
- if (isset($this->mounts[$foundMountPoint])) {
- return $this->mounts[$foundMountPoint];
- } else {
- return null;
- }
- }
-
- /**
- * Find all mounts in $path
- *
- * @param $path
- * @return Mount[]
- */
- public function findIn($path) {
- \OC_Util::setupFS();
- $path = $this->formatPath($path);
- $result = array();
- $pathLength = strlen($path);
- $mountPoints = array_keys($this->mounts);
- foreach ($mountPoints as $mountPoint) {
- if (substr($mountPoint, 0, $pathLength) === $path and strlen($mountPoint) > $pathLength) {
- $result[] = $this->mounts[$mountPoint];
- }
- }
- return $result;
- }
-
- public function clear() {
- $this->mounts = array();
- }
-
- /**
- * Find mounts by storage id
- *
- * @param string $id
- * @return Mount[]
- */
- public function findByStorageId($id) {
- \OC_Util::setupFS();
- if (strlen($id) > 64) {
- $id = md5($id);
- }
- $result = array();
- foreach ($this->mounts as $mount) {
- if ($mount->getStorageId() === $id) {
- $result[] = $mount;
- }
- }
- return $result;
- }
-
- /**
- * Find mounts by numeric storage id
- *
- * @param string $id
- * @return Mount
- */
- public function findByNumericId($id) {
- $storageId = \OC\Files\Cache\Storage::getStorageId($id);
- return $this->findByStorageId($storageId);
- }
-
- /**
- * @param string $path
- * @return string
- */
- private function formatPath($path) {
- $path = Filesystem::normalizePath($path);
- if (strlen($path) > 1) {
- $path .= '/';
- }
- return $path;
- }
-}
diff --git a/lib/files/storage/common.php b/lib/files/storage/common.php
index e87fe3b5239..38fe5e546f6 100644
--- a/lib/files/storage/common.php
+++ b/lib/files/storage/common.php
@@ -25,7 +25,6 @@ abstract class Common implements \OC\Files\Storage\Storage {
private $scanner;
private $permissioncache;
private $watcher;
- private $storageCache;
public function __construct($parameters) {
}
@@ -301,13 +300,6 @@ abstract class Common implements \OC\Files\Storage\Storage {
return $this->watcher;
}
- public function getStorageCache(){
- if (!isset($this->storageCache)) {
- $this->storageCache = new \OC\Files\Cache\Storage($this);
- }
- return $this->storageCache;
- }
-
/**
* get the owner of a path
*
@@ -369,7 +361,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
* get the free space in the storage
*
* @param $path
- * @return int
+ * return int
*/
public function free_space($path) {
return \OC\Files\FREE_SPACE_UNKNOWN;
diff --git a/lib/files/storage/local.php b/lib/files/storage/local.php
index d684905bf9a..81e32587fca 100644
--- a/lib/files/storage/local.php
+++ b/lib/files/storage/local.php
@@ -14,277 +14,252 @@ if (\OC_Util::runningOnWindows()) {
}
} else {
- /**
- * for local filestore, we only have to map the paths
- */
- class Local extends \OC\Files\Storage\Common {
- protected $datadir;
-
- public function __construct($arguments) {
- $this->datadir = $arguments['datadir'];
- if (substr($this->datadir, -1) !== '/') {
- $this->datadir .= '/';
- }
- }
-
- public function __destruct() {
- }
-
- public function getId() {
- return 'local::' . $this->datadir;
- }
-
- public function mkdir($path) {
- return @mkdir($this->datadir . $path);
- }
-
- public function rmdir($path) {
- return @rmdir($this->datadir . $path);
+/**
+ * for local filestore, we only have to map the paths
+ */
+class Local extends \OC\Files\Storage\Common{
+ protected $datadir;
+ public function __construct($arguments) {
+ $this->datadir=$arguments['datadir'];
+ if(substr($this->datadir, -1)!=='/') {
+ $this->datadir.='/';
}
-
- public function opendir($path) {
- return opendir($this->datadir . $path);
+ }
+ public function __destruct() {
+ }
+ public function getId(){
+ return 'local::'.$this->datadir;
+ }
+ public function mkdir($path) {
+ return @mkdir($this->datadir.$path);
+ }
+ public function rmdir($path) {
+ return @rmdir($this->datadir.$path);
+ }
+ public function opendir($path) {
+ return opendir($this->datadir.$path);
+ }
+ public function is_dir($path) {
+ if(substr($path, -1)=='/') {
+ $path=substr($path, 0, -1);
}
+ return is_dir($this->datadir.$path);
+ }
+ public function is_file($path) {
+ return is_file($this->datadir.$path);
+ }
+ public function stat($path) {
+ $fullPath = $this->datadir . $path;
+ $statResult = stat($fullPath);
- public function is_dir($path) {
- if (substr($path, -1) == '/') {
- $path = substr($path, 0, -1);
- }
- return is_dir($this->datadir . $path);
+ if ($statResult['size'] < 0) {
+ $size = self::getFileSizeFromOS($fullPath);
+ $statResult['size'] = $size;
+ $statResult[7] = $size;
}
-
- public function is_file($path) {
- return is_file($this->datadir . $path);
+ return $statResult;
+ }
+ public function filetype($path) {
+ $filetype=filetype($this->datadir.$path);
+ if($filetype=='link') {
+ $filetype=filetype(realpath($this->datadir.$path));
}
-
- public function stat($path) {
+ return $filetype;
+ }
+ public function filesize($path) {
+ if($this->is_dir($path)) {
+ return 0;
+ }else{
$fullPath = $this->datadir . $path;
- $statResult = stat($fullPath);
-
- if ($statResult['size'] < 0) {
- $size = self::getFileSizeFromOS($fullPath);
- $statResult['size'] = $size;
- $statResult[7] = $size;
+ $fileSize = filesize($fullPath);
+ if ($fileSize < 0) {
+ return self::getFileSizeFromOS($fullPath);
}
- return $statResult;
- }
- public function filetype($path) {
- $filetype = filetype($this->datadir . $path);
- if ($filetype == 'link') {
- $filetype = filetype(realpath($this->datadir . $path));
- }
- return $filetype;
+ return $fileSize;
}
-
- public function filesize($path) {
- if ($this->is_dir($path)) {
- return 0;
- } else {
- $fullPath = $this->datadir . $path;
- $fileSize = filesize($fullPath);
- if ($fileSize < 0) {
- return self::getFileSizeFromOS($fullPath);
- }
-
- return $fileSize;
- }
- }
-
- public function isReadable($path) {
- return is_readable($this->datadir . $path);
- }
-
- public function isUpdatable($path) {
- return is_writable($this->datadir . $path);
+ }
+ public function isReadable($path) {
+ return is_readable($this->datadir.$path);
+ }
+ public function isUpdatable($path) {
+ return is_writable($this->datadir.$path);
+ }
+ public function file_exists($path) {
+ return file_exists($this->datadir.$path);
+ }
+ public function filemtime($path) {
+ return filemtime($this->datadir.$path);
+ }
+ public function touch($path, $mtime=null) {
+ // sets the modification time of the file to the given value.
+ // If mtime is nil the current time is set.
+ // note that the access time of the file always changes to the current time.
+ if($this->file_exists($path) and !$this->isUpdatable($path)) {
+ return false;
}
-
- public function file_exists($path) {
- return file_exists($this->datadir . $path);
+ if(!is_null($mtime)) {
+ $result=touch( $this->datadir.$path, $mtime );
+ }else{
+ $result=touch( $this->datadir.$path);
}
-
- public function filemtime($path) {
- return filemtime($this->datadir . $path);
+ if( $result ) {
+ clearstatcache( true, $this->datadir.$path );
}
- public function touch($path, $mtime = null) {
- // sets the modification time of the file to the given value.
- // If mtime is nil the current time is set.
- // note that the access time of the file always changes to the current time.
- if ($this->file_exists($path) and !$this->isUpdatable($path)) {
- return false;
- }
- if (!is_null($mtime)) {
- $result = touch($this->datadir . $path, $mtime);
- } else {
- $result = touch($this->datadir . $path);
- }
- if ($result) {
- clearstatcache(true, $this->datadir . $path);
- }
-
- return $result;
+ return $result;
+ }
+ public function file_get_contents($path) {
+ return file_get_contents($this->datadir.$path);
+ }
+ public function file_put_contents($path, $data) {//trigger_error("$path = ".var_export($path, 1));
+ return file_put_contents($this->datadir.$path, $data);
+ }
+ public function unlink($path) {
+ return $this->delTree($path);
+ }
+ public function rename($path1, $path2) {
+ if (!$this->isUpdatable($path1)) {
+ \OC_Log::write('core', 'unable to rename, file is not writable : '.$path1, \OC_Log::ERROR);
+ return false;
}
-
- public function file_get_contents($path) {
- return file_get_contents($this->datadir . $path);
+ if(! $this->file_exists($path1)) {
+ \OC_Log::write('core', 'unable to rename, file does not exists : '.$path1, \OC_Log::ERROR);
+ return false;
}
- public function file_put_contents($path, $data) { //trigger_error("$path = ".var_export($path, 1));
- return file_put_contents($this->datadir . $path, $data);
+ if($return=rename($this->datadir.$path1, $this->datadir.$path2)) {
}
-
- public function unlink($path) {
- return $this->delTree($path);
- }
-
- public function rename($path1, $path2) {
- if (!$this->isUpdatable($path1)) {
- \OC_Log::write('core', 'unable to rename, file is not writable : ' . $path1, \OC_Log::ERROR);
- return false;
- }
- if (!$this->file_exists($path1)) {
- \OC_Log::write('core', 'unable to rename, file does not exists : ' . $path1, \OC_Log::ERROR);
- return false;
+ return $return;
+ }
+ public function copy($path1, $path2) {
+ if($this->is_dir($path2)) {
+ if(!$this->file_exists($path2)) {
+ $this->mkdir($path2);
}
-
- if ($return = rename($this->datadir . $path1, $this->datadir . $path2)) {
+ $source=substr($path1, strrpos($path1, '/')+1);
+ $path2.=$source;
+ }
+ return copy($this->datadir.$path1, $this->datadir.$path2);
+ }
+ public function fopen($path, $mode) {
+ if($return=fopen($this->datadir.$path, $mode)) {
+ switch($mode) {
+ case 'r':
+ break;
+ case 'r+':
+ case 'w+':
+ case 'x+':
+ case 'a+':
+ break;
+ case 'w':
+ case 'x':
+ case 'a':
+ break;
}
- return $return;
}
+ return $return;
+ }
- public function copy($path1, $path2) {
- if ($this->is_dir($path2)) {
- if (!$this->file_exists($path2)) {
- $this->mkdir($path2);
- }
- $source = substr($path1, strrpos($path1, '/') + 1);
- $path2 .= $source;
- }
- return copy($this->datadir . $path1, $this->datadir . $path2);
+ public function getMimeType($path) {
+ if($this->isReadable($path)) {
+ return \OC_Helper::getMimeType($this->datadir . $path);
+ }else{
+ return false;
}
+ }
- public function fopen($path, $mode) {
- if ($return = fopen($this->datadir . $path, $mode)) {
- switch ($mode) {
- case 'r':
- break;
- case 'r+':
- case 'w+':
- case 'x+':
- case 'a+':
- break;
- case 'w':
- case 'x':
- case 'a':
- break;
+ private function delTree($dir) {
+ $dirRelative=$dir;
+ $dir=$this->datadir.$dir;
+ if (!file_exists($dir)) return true;
+ if (!is_dir($dir) || is_link($dir)) return unlink($dir);
+ foreach (scandir($dir) as $item) {
+ if ($item == '.' || $item == '..') continue;
+ if(is_file($dir.'/'.$item)) {
+ if(unlink($dir.'/'.$item)) {
}
+ }elseif(is_dir($dir.'/'.$item)) {
+ if (!$this->delTree($dirRelative. "/" . $item)) {
+ return false;
+ };
}
- return $return;
}
-
- public function getMimeType($path) {
- if ($this->isReadable($path)) {
- return \OC_Helper::getMimeType($this->datadir . $path);
- } else {
- return false;
- }
+ if($return=rmdir($dir)) {
}
+ return $return;
+ }
- private function delTree($dir) {
- $dirRelative = $dir;
- $dir = $this->datadir . $dir;
- if (!file_exists($dir)) return true;
- if (!is_dir($dir) || is_link($dir)) return unlink($dir);
- foreach (scandir($dir) as $item) {
- if ($item == '.' || $item == '..') continue;
- if (is_file($dir . '/' . $item)) {
- if (unlink($dir . '/' . $item)) {
- }
- } elseif (is_dir($dir . '/' . $item)) {
- if (!$this->delTree($dirRelative . "/" . $item)) {
- return false;
- };
- }
+ private static function getFileSizeFromOS($fullPath) {
+ $name = strtolower(php_uname('s'));
+ // Windows OS: we use COM to access the filesystem
+ if (strpos($name, 'win') !== false) {
+ if (class_exists('COM')) {
+ $fsobj = new \COM("Scripting.FileSystemObject");
+ $f = $fsobj->GetFile($fullPath);
+ return $f->Size;
}
- if ($return = rmdir($dir)) {
+ } else if (strpos($name, 'bsd') !== false) {
+ if (\OC_Helper::is_function_enabled('exec')) {
+ return (float)exec('stat -f %z ' . escapeshellarg($fullPath));
}
- return $return;
- }
-
- private static function getFileSizeFromOS($fullPath) {
- $name = strtolower(php_uname('s'));
- // Windows OS: we use COM to access the filesystem
- if (strpos($name, 'win') !== false) {
- if (class_exists('COM')) {
- $fsobj = new \COM("Scripting.FileSystemObject");
- $f = $fsobj->GetFile($fullPath);
- return $f->Size;
- }
- } else if (strpos($name, 'bsd') !== false) {
- if (\OC_Helper::is_function_enabled('exec')) {
- return (float)exec('stat -f %z ' . escapeshellarg($fullPath));
- }
- } else if (strpos($name, 'linux') !== false) {
- if (\OC_Helper::is_function_enabled('exec')) {
- return (float)exec('stat -c %s ' . escapeshellarg($fullPath));
- }
- } else {
- \OC_Log::write('core',
- 'Unable to determine file size of "' . $fullPath . '". Unknown OS: ' . $name,
- \OC_Log::ERROR);
+ } else if (strpos($name, 'linux') !== false) {
+ if (\OC_Helper::is_function_enabled('exec')) {
+ return (float)exec('stat -c %s ' . escapeshellarg($fullPath));
}
-
- return 0;
- }
-
- public function hash($path, $type, $raw = false) {
- return hash_file($type, $this->datadir . $path, $raw);
+ } else {
+ \OC_Log::write('core',
+ 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name,
+ \OC_Log::ERROR);
}
- public function free_space($path) {
- $space = @disk_free_space($this->datadir . $path);
- if ($space === false) {
- return \OC\Files\FREE_SPACE_UNKNOWN;
- }
- return $space;
- }
+ return 0;
+ }
- public function search($query) {
- return $this->searchInDir($query);
- }
+ public function hash($path, $type, $raw=false) {
+ return hash_file($type, $this->datadir.$path, $raw);
+ }
- public function getLocalFile($path) {
- return $this->datadir . $path;
+ public function free_space($path) {
+ $space = @disk_free_space($this->datadir.$path);
+ if($space === false){
+ return \OC\Files\FREE_SPACE_UNKNOWN;
}
+ return $space;
+ }
- public function getLocalFolder($path) {
- return $this->datadir . $path;
- }
+ public function search($query) {
+ return $this->searchInDir($query);
+ }
+ public function getLocalFile($path) {
+ return $this->datadir.$path;
+ }
+ public function getLocalFolder($path) {
+ return $this->datadir.$path;
+ }
- protected function searchInDir($query, $dir = '') {
- $files = array();
- foreach (scandir($this->datadir . $dir) as $item) {
- if ($item == '.' || $item == '..') continue;
- if (strstr(strtolower($item), strtolower($query)) !== false) {
- $files[] = $dir . '/' . $item;
- }
- if (is_dir($this->datadir . $dir . '/' . $item)) {
- $files = array_merge($files, $this->searchInDir($query, $dir . '/' . $item));
- }
+ protected function searchInDir($query, $dir='') {
+ $files=array();
+ foreach (scandir($this->datadir.$dir) as $item) {
+ if ($item == '.' || $item == '..') continue;
+ if(strstr(strtolower($item), strtolower($query))!==false) {
+ $files[]=$dir.'/'.$item;
+ }
+ if(is_dir($this->datadir.$dir.'/'.$item)) {
+ $files=array_merge($files, $this->searchInDir($query, $dir.'/'.$item));
}
- return $files;
}
+ return $files;
+ }
- /**
- * check if a file or folder has been updated since $time
- *
- * @param string $path
- * @param int $time
- * @return bool
- */
- public function hasUpdated($path, $time) {
- return $this->filemtime($path) > $time;
- }
+ /**
+ * check if a file or folder has been updated since $time
+ * @param string $path
+ * @param int $time
+ * @return bool
+ */
+ public function hasUpdated($path, $time) {
+ return $this->filemtime($path)>$time;
}
}
+}
diff --git a/lib/files/storage/storage.php b/lib/files/storage/storage.php
index c96caebf4af..1da82da2163 100644
--- a/lib/files/storage/storage.php
+++ b/lib/files/storage/storage.php
@@ -329,11 +329,6 @@ interface Storage {
public function getWatcher($path = '');
/**
- * @return \OC\Files\Cache\Storage
- */
- public function getStorageCache();
-
- /**
* get the ETag for a file or folder
*
* @param string $path
diff --git a/lib/files/view.php b/lib/files/view.php
index b1f24c514a4..bd4812f8f81 100644
--- a/lib/files/view.php
+++ b/lib/files/view.php
@@ -972,7 +972,7 @@ class View {
*/
public function getPath($id) {
list($storage, $internalPath) = Cache\Cache::getById($id);
- $mounts = Filesystem::getMountByStorageId($storage);
+ $mounts = Mount::findByStorageId($storage);
foreach ($mounts as $mount) {
/**
* @var \OC\Files\Mount $mount
diff --git a/lib/l10n/ar.php b/lib/l10n/ar.php
index 98b9608ce02..ae8233f80da 100644
--- a/lib/l10n/ar.php
+++ b/lib/l10n/ar.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "المساعدة",
"Personal" => "شخصي",
-"Settings" => "إعدادات",
+"Settings" => "تعديلات",
"Users" => "المستخدمين",
"Apps" => "التطبيقات",
"Admin" => "المدير",
@@ -48,5 +48,8 @@
"%d months ago" => "%d شهر مضت",
"last year" => "السنةالماضية",
"years ago" => "سنة مضت",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s متاح . احصل على <a href=\"%s\">المزيد من المعلومات </a>",
+"up to date" => "محدّث",
+"updates check is disabled" => "فحص التحديثات معطّل",
"Could not find category \"%s\"" => "تعذر العثور على المجلد \"%s\""
);
diff --git a/lib/l10n/bg_BG.php b/lib/l10n/bg_BG.php
index 73a7fdce481..2d4775a89f3 100644
--- a/lib/l10n/bg_BG.php
+++ b/lib/l10n/bg_BG.php
@@ -44,5 +44,8 @@
"%d months ago" => "преди %d месеца",
"last year" => "последната година",
"years ago" => "последните години",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s е налична. Получете <a href=\"%s\">повече информация</a>",
+"up to date" => "е актуална",
+"updates check is disabled" => "проверката за обновления е изключена",
"Could not find category \"%s\"" => "Невъзможно откриване на категорията \"%s\""
);
diff --git a/lib/l10n/bn_BD.php b/lib/l10n/bn_BD.php
index f7c8f57466d..cb6ff4455a9 100644
--- a/lib/l10n/bn_BD.php
+++ b/lib/l10n/bn_BD.php
@@ -2,9 +2,9 @@
"Help" => "সহায়িকা",
"Personal" => "ব্যক্তিগত",
"Settings" => "নিয়ামকসমূহ",
-"Users" => "ব্যবহারকারী",
+"Users" => "ব্যভহারকারী",
"Apps" => "অ্যাপ",
-"Admin" => "প্রশাসন",
+"Admin" => "প্রশাসক",
"ZIP download is turned off." => "ZIP ডাউনলোড বন্ধ করা আছে।",
"Files need to be downloaded one by one." => "ফাইলগুলো একে একে ডাউনলোড করা আবশ্যক।",
"Back to Files" => "ফাইলে ফিরে চল",
@@ -13,7 +13,6 @@
"Authentication error" => "অনুমোদন ঘটিত সমস্যা",
"Token expired. Please reload page." => "টোকেন মেয়াদোত্তীর্ণ। দয়া করে পৃষ্ঠাটি পূনরায় লোড করুন।",
"Files" => "ফাইল",
-"Text" => "টেক্সট",
"seconds ago" => "সেকেন্ড পূর্বে",
"1 minute ago" => "১ মিনিট পূর্বে",
"%d minutes ago" => "%d মিনিট পূর্বে",
@@ -23,5 +22,8 @@
"%d days ago" => "%d দিন পূর্বে",
"last month" => "গত মাস",
"last year" => "গত বছর",
-"years ago" => "বছর পূর্বে"
+"years ago" => "বছর পূর্বে",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s এখন সুলভ। <a href=\"%s\">আরও জানুন</a>",
+"up to date" => "সর্বশেষ",
+"updates check is disabled" => "পরিবর্ধন পরীক্ষণ করা বন্ধ রাখা হয়েছে"
);
diff --git a/lib/l10n/ca.php b/lib/l10n/ca.php
index 028bf2343a7..16dc74f40c4 100644
--- a/lib/l10n/ca.php
+++ b/lib/l10n/ca.php
@@ -47,6 +47,9 @@
"last month" => "el mes passat",
"%d months ago" => "fa %d mesos",
"last year" => "l'any passat",
-"years ago" => "anys enrere",
+"years ago" => "fa anys",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s està disponible. Obtén <a href=\"%s\">més informació</a>",
+"up to date" => "actualitzat",
+"updates check is disabled" => "la comprovació d'actualitzacions està desactivada",
"Could not find category \"%s\"" => "No s'ha trobat la categoria \"%s\""
);
diff --git a/lib/l10n/cs_CZ.php b/lib/l10n/cs_CZ.php
index e3007f687d9..79161c74e8e 100644
--- a/lib/l10n/cs_CZ.php
+++ b/lib/l10n/cs_CZ.php
@@ -36,8 +36,8 @@
"MS SQL username and/or password not valid: %s" => "Uživatelské jméno, či heslo MSSQL není platné: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Váš webový server není správně nastaven pro umožnění synchronizace, protože rozhraní WebDAV je rozbité.",
"Please double check the <a href='%s'>installation guides</a>." => "Zkonzultujte, prosím, <a href='%s'>průvodce instalací</a>.",
-"seconds ago" => "před pár vteřinami",
-"1 minute ago" => "před minutou",
+"seconds ago" => "před vteřinami",
+"1 minute ago" => "před 1 minutou",
"%d minutes ago" => "před %d minutami",
"1 hour ago" => "před hodinou",
"%d hours ago" => "před %d hodinami",
@@ -46,7 +46,10 @@
"%d days ago" => "před %d dny",
"last month" => "minulý měsíc",
"%d months ago" => "Před %d měsíci",
-"last year" => "minulý rok",
+"last year" => "loni",
"years ago" => "před lety",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s je dostupná. Získat <a href=\"%s\">více informací</a>",
+"up to date" => "aktuální",
+"updates check is disabled" => "kontrola aktualizací je vypnuta",
"Could not find category \"%s\"" => "Nelze nalézt kategorii \"%s\""
);
diff --git a/lib/l10n/cy_GB.php b/lib/l10n/cy_GB.php
index ab5623bbf44..6cf88c15ccc 100644
--- a/lib/l10n/cy_GB.php
+++ b/lib/l10n/cy_GB.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d mis yn ôl",
"last year" => "y llynedd",
"years ago" => "blwyddyn yn ôl",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ar gael. <a href=\"%s\">Mwy o wybodaeth</a>",
+"up to date" => "cyfredol",
+"updates check is disabled" => "gwirio am ddiweddariadau wedi'i analluogi",
"Could not find category \"%s\"" => "Methu canfod categori \"%s\""
);
diff --git a/lib/l10n/da.php b/lib/l10n/da.php
index dad64700e52..4850d0be19a 100644
--- a/lib/l10n/da.php
+++ b/lib/l10n/da.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
"Help" => "Hjælp",
-"Personal" => "Personligt",
+"Personal" => "Personlig",
"Settings" => "Indstillinger",
"Users" => "Brugere",
"Apps" => "Apps",
@@ -41,12 +41,15 @@
"%d minutes ago" => "%d minutter siden",
"1 hour ago" => "1 time siden",
"%d hours ago" => "%d timer siden",
-"today" => "i dag",
-"yesterday" => "i går",
+"today" => "I dag",
+"yesterday" => "I går",
"%d days ago" => "%d dage siden",
-"last month" => "sidste måned",
+"last month" => "Sidste måned",
"%d months ago" => "%d måneder siden",
-"last year" => "sidste år",
+"last year" => "Sidste år",
"years ago" => "år siden",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s er tilgængelig. Få <a href=\"%s\">mere information</a>",
+"up to date" => "opdateret",
+"updates check is disabled" => "Check for opdateringer er deaktiveret",
"Could not find category \"%s\"" => "Kunne ikke finde kategorien \"%s\""
);
diff --git a/lib/l10n/de.php b/lib/l10n/de.php
index cd1bf104d35..7a680574bfa 100644
--- a/lib/l10n/de.php
+++ b/lib/l10n/de.php
@@ -4,14 +4,14 @@
"Settings" => "Einstellungen",
"Users" => "Benutzer",
"Apps" => "Apps",
-"Admin" => "Administration",
+"Admin" => "Administrator",
"ZIP download is turned off." => "Der ZIP-Download ist deaktiviert.",
"Files need to be downloaded one by one." => "Die Dateien müssen einzeln heruntergeladen werden.",
"Back to Files" => "Zurück zu \"Dateien\"",
"Selected files too large to generate zip file." => "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen.",
"couldn't be determined" => "konnte nicht festgestellt werden",
"Application is not enabled" => "Die Anwendung ist nicht aktiviert",
-"Authentication error" => "Fehler bei der Anmeldung",
+"Authentication error" => "Authentifizierungs-Fehler",
"Token expired. Please reload page." => "Token abgelaufen. Bitte lade die Seite neu.",
"Files" => "Dateien",
"Text" => "Text",
@@ -35,9 +35,9 @@
"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
"MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Password ungültig: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
-"Please double check the <a href='%s'>installation guides</a>." => "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.",
+"Please double check the <a href='%s'>installation guides</a>." => "Bitte prüfe die <a href='%s'>Installationsanleitungen</a>.",
"seconds ago" => "Gerade eben",
-"1 minute ago" => "vor einer Minute",
+"1 minute ago" => "Vor einer Minute",
"%d minutes ago" => "Vor %d Minuten",
"1 hour ago" => "Vor einer Stunde",
"%d hours ago" => "Vor %d Stunden",
@@ -48,5 +48,8 @@
"%d months ago" => "Vor %d Monaten",
"last year" => "Letztes Jahr",
"years ago" => "Vor Jahren",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ist verfügbar. <a href=\"%s\">Weitere Informationen</a>",
+"up to date" => "aktuell",
+"updates check is disabled" => "Die Update-Überprüfung ist ausgeschaltet",
"Could not find category \"%s\"" => "Die Kategorie \"%s\" konnte nicht gefunden werden."
);
diff --git a/lib/l10n/de_DE.php b/lib/l10n/de_DE.php
index 566e98b85ce..eb002c97be2 100644
--- a/lib/l10n/de_DE.php
+++ b/lib/l10n/de_DE.php
@@ -34,10 +34,10 @@
"Drop this user from MySQL." => "Lösche diesen Benutzer aus MySQL.",
"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
"MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Passwort ungültig: %s",
-"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ihr Web-Server ist noch nicht für eine Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
+"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ihr Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.",
"Please double check the <a href='%s'>installation guides</a>." => "Bitte prüfen Sie die <a href='%s'>Installationsanleitungen</a>.",
"seconds ago" => "Gerade eben",
-"1 minute ago" => "Vor 1 Minute",
+"1 minute ago" => "Vor einer Minute",
"%d minutes ago" => "Vor %d Minuten",
"1 hour ago" => "Vor einer Stunde",
"%d hours ago" => "Vor %d Stunden",
@@ -48,5 +48,8 @@
"%d months ago" => "Vor %d Monaten",
"last year" => "Letztes Jahr",
"years ago" => "Vor Jahren",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ist verfügbar. <a href=\"%s\">Weitere Informationen</a>",
+"up to date" => "aktuell",
+"updates check is disabled" => "Die Update-Überprüfung ist ausgeschaltet",
"Could not find category \"%s\"" => "Die Kategorie \"%s\" konnte nicht gefunden werden."
);
diff --git a/lib/l10n/el.php b/lib/l10n/el.php
index 14b63a8184c..63f5d8eb836 100644
--- a/lib/l10n/el.php
+++ b/lib/l10n/el.php
@@ -42,11 +42,14 @@
"1 hour ago" => "1 ώρα πριν",
"%d hours ago" => "%d ώρες πριν",
"today" => "σήμερα",
-"yesterday" => "χτες",
+"yesterday" => "χθές",
"%d days ago" => "%d ημέρες πριν",
-"last month" => "τελευταίο μήνα",
+"last month" => "τον προηγούμενο μήνα",
"%d months ago" => "%d μήνες πριν",
-"last year" => "τελευταίο χρόνο",
+"last year" => "τον προηγούμενο χρόνο",
"years ago" => "χρόνια πριν",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s είναι διαθέσιμο. Δείτε <a href=\"%s\">περισσότερες πληροφορίες</a>",
+"up to date" => "ενημερωμένο",
+"updates check is disabled" => "ο έλεγχος ενημερώσεων είναι απενεργοποιημένος",
"Could not find category \"%s\"" => "Αδυναμία εύρεσης κατηγορίας \"%s\""
);
diff --git a/lib/l10n/eo.php b/lib/l10n/eo.php
index 2782be65da9..dac11ffe7e6 100644
--- a/lib/l10n/eo.php
+++ b/lib/l10n/eo.php
@@ -15,7 +15,7 @@
"Files" => "Dosieroj",
"Text" => "Teksto",
"Images" => "Bildoj",
-"seconds ago" => "sekundoj antaŭe",
+"seconds ago" => "sekundojn antaŭe",
"1 minute ago" => "antaŭ 1 minuto",
"%d minutes ago" => "antaŭ %d minutoj",
"1 hour ago" => "antaŭ 1 horo",
@@ -23,9 +23,12 @@
"today" => "hodiaŭ",
"yesterday" => "hieraŭ",
"%d days ago" => "antaŭ %d tagoj",
-"last month" => "lastamonate",
+"last month" => "lasta monato",
"%d months ago" => "antaŭ %d monatoj",
-"last year" => "lastajare",
-"years ago" => "jaroj antaŭe",
+"last year" => "lasta jaro",
+"years ago" => "jarojn antaŭe",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s haveblas. Ekhavu <a href=\"%s\">pli da informo</a>",
+"up to date" => "ĝisdata",
+"updates check is disabled" => "ĝisdateckontrolo estas malkapabligita",
"Could not find category \"%s\"" => "Ne troviĝis kategorio “%s”"
);
diff --git a/lib/l10n/es.php b/lib/l10n/es.php
index af96e693d1c..5b868e2d451 100644
--- a/lib/l10n/es.php
+++ b/lib/l10n/es.php
@@ -44,9 +44,12 @@
"today" => "hoy",
"yesterday" => "ayer",
"%d days ago" => "hace %d días",
-"last month" => "mes pasado",
+"last month" => "este mes",
"%d months ago" => "Hace %d meses",
-"last year" => "año pasado",
+"last year" => "este año",
"years ago" => "hace años",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está disponible. Obtén <a href=\"%s\">más información</a>",
+"up to date" => "actualizado",
+"updates check is disabled" => "comprobar actualizaciones está desactivado",
"Could not find category \"%s\"" => "No puede encontrar la categoria \"%s\""
);
diff --git a/lib/l10n/es_AR.php b/lib/l10n/es_AR.php
index e9da37e0a3d..fc25cd6b1d8 100644
--- a/lib/l10n/es_AR.php
+++ b/lib/l10n/es_AR.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "Ayuda",
"Personal" => "Personal",
-"Settings" => "Configuración",
+"Settings" => "Ajustes",
"Users" => "Usuarios",
"Apps" => "Aplicaciones",
"Admin" => "Administración",
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "Los archivos seleccionados son demasiado grandes para generar el archivo zip.",
"couldn't be determined" => "no pudo ser determinado",
"Application is not enabled" => "La aplicación no está habilitada",
-"Authentication error" => "Error al autenticar",
+"Authentication error" => "Error de autenticación",
"Token expired. Please reload page." => "Token expirado. Por favor, recargá la página.",
"Files" => "Archivos",
"Text" => "Texto",
@@ -36,7 +36,7 @@
"MS SQL username and/or password not valid: %s" => "Nombre de usuario y contraseña de MS SQL no son válidas: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar.",
"Please double check the <a href='%s'>installation guides</a>." => "Por favor, comprobá nuevamente la <a href='%s'>guía de instalación</a>.",
-"seconds ago" => "segundos atrás",
+"seconds ago" => "hace unos segundos",
"1 minute ago" => "hace 1 minuto",
"%d minutes ago" => "hace %d minutos",
"1 hour ago" => "1 hora atrás",
@@ -44,9 +44,12 @@
"today" => "hoy",
"yesterday" => "ayer",
"%d days ago" => "hace %d días",
-"last month" => "el mes pasado",
+"last month" => "este mes",
"%d months ago" => "%d meses atrás",
-"last year" => "el año pasado",
-"years ago" => "años atrás",
+"last year" => "este año",
+"years ago" => "hace años",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está disponible. Conseguí <a href=\"%s\">más información</a>",
+"up to date" => "actualizado",
+"updates check is disabled" => "comprobar actualizaciones está desactivado",
"Could not find category \"%s\"" => "No fue posible encontrar la categoría \"%s\""
);
diff --git a/lib/l10n/et_EE.php b/lib/l10n/et_EE.php
index 90c9c416827..25909e1555e 100644
--- a/lib/l10n/et_EE.php
+++ b/lib/l10n/et_EE.php
@@ -18,7 +18,7 @@
"Images" => "Pildid",
"Set an admin username." => "Määra admin kasutajanimi.",
"Set an admin password." => "Määra admini parool.",
-"%s enter the database username." => "%s sisesta andmebaasi kasutajatunnus.",
+"%s enter the database username." => "%s sisesta andmebaasi kasutajatunnus",
"%s enter the database name." => "%s sisesta andmebaasi nimi.",
"%s you may not use dots in the database name" => "%s punktide kasutamine andmebaasi nimes pole lubatud",
"%s set the database host." => "%s määra andmebaasi server.",
@@ -44,9 +44,12 @@
"today" => "täna",
"yesterday" => "eile",
"%d days ago" => "%d päeva tagasi",
-"last month" => "viimasel kuul",
+"last month" => "eelmisel kuul",
"%d months ago" => "%d kuud tagasi",
-"last year" => "viimasel aastal",
+"last year" => "eelmisel aastal",
"years ago" => "aastat tagasi",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s on saadaval. Vaata <a href=\"%s\">lisainfot</a>",
+"up to date" => "ajakohane",
+"updates check is disabled" => "uuenduste kontrollimine on välja lülitatud",
"Could not find category \"%s\"" => "Ei leia kategooriat \"%s\""
);
diff --git a/lib/l10n/eu.php b/lib/l10n/eu.php
index 934a4d19ab5..fde65572d8a 100644
--- a/lib/l10n/eu.php
+++ b/lib/l10n/eu.php
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "Hautatuko fitxategiak oso handiak dira zip fitxategia sortzeko.",
"couldn't be determined" => "ezin izan da zehaztu",
"Application is not enabled" => "Aplikazioa ez dago gaituta",
-"Authentication error" => "Autentifikazio errorea",
+"Authentication error" => "Autentikazio errorea",
"Token expired. Please reload page." => "Tokena iraungitu da. Mesedez birkargatu orria.",
"Files" => "Fitxategiak",
"Text" => "Testua",
@@ -36,7 +36,7 @@
"MS SQL username and/or password not valid: %s" => "MS SQL erabiltzaile izena edota pasahitza ez dira egokiak: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi.",
"Please double check the <a href='%s'>installation guides</a>." => "Mesedez begiratu <a href='%s'>instalazio gidak</a>.",
-"seconds ago" => "segundu",
+"seconds ago" => "orain dela segundu batzuk",
"1 minute ago" => "orain dela minutu 1",
"%d minutes ago" => "orain dela %d minutu",
"1 hour ago" => "orain dela ordu bat",
@@ -44,9 +44,12 @@
"today" => "gaur",
"yesterday" => "atzo",
"%d days ago" => "orain dela %d egun",
-"last month" => "joan den hilabetean",
+"last month" => "joan den hilabetea",
"%d months ago" => "orain dela %d hilabete",
-"last year" => "joan den urtean",
-"years ago" => "urte",
+"last year" => "joan den urtea",
+"years ago" => "orain dela urte batzuk",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s eskuragarri dago. Lortu <a href=\"%s\">informazio gehiago</a>",
+"up to date" => "eguneratuta",
+"updates check is disabled" => "eguneraketen egiaztapena ez dago gaituta",
"Could not find category \"%s\"" => "Ezin da \"%s\" kategoria aurkitu"
);
diff --git a/lib/l10n/fi_FI.php b/lib/l10n/fi_FI.php
index c2e83f66166..201cae19536 100644
--- a/lib/l10n/fi_FI.php
+++ b/lib/l10n/fi_FI.php
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "Valitut tiedostot ovat liian suurikokoisia mahtuakseen zip-tiedostoon.",
"couldn't be determined" => "ei voitu määrittää",
"Application is not enabled" => "Sovellusta ei ole otettu käyttöön",
-"Authentication error" => "Tunnistautumisvirhe",
+"Authentication error" => "Todennusvirhe",
"Token expired. Please reload page." => "Valtuutus vanheni. Lataa sivu uudelleen.",
"Files" => "Tiedostot",
"Text" => "Teksti",
@@ -43,5 +43,8 @@
"%d months ago" => "%d kuukautta sitten",
"last year" => "viime vuonna",
"years ago" => "vuotta sitten",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s on saatavilla. Lue <a href=\"%s\">lisätietoja</a>",
+"up to date" => "ajan tasalla",
+"updates check is disabled" => "päivitysten tarkistus on pois käytöstä",
"Could not find category \"%s\"" => "Luokkaa \"%s\" ei löytynyt"
);
diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php
index c0920179dbb..ffc29450461 100644
--- a/lib/l10n/fr.php
+++ b/lib/l10n/fr.php
@@ -36,8 +36,8 @@
"MS SQL username and/or password not valid: %s" => "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.",
"Please double check the <a href='%s'>installation guides</a>." => "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
-"seconds ago" => "il y a quelques secondes",
-"1 minute ago" => "il y a une minute",
+"seconds ago" => "à l'instant",
+"1 minute ago" => "il y a 1 minute",
"%d minutes ago" => "il y a %d minutes",
"1 hour ago" => "Il y a une heure",
"%d hours ago" => "Il y a %d heures",
@@ -48,5 +48,8 @@
"%d months ago" => "Il y a %d mois",
"last year" => "l'année dernière",
"years ago" => "il y a plusieurs années",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s est disponible. Obtenez <a href=\"%s\">plus d'informations</a>",
+"up to date" => "À jour",
+"updates check is disabled" => "la vérification des mises à jour est désactivée",
"Could not find category \"%s\"" => "Impossible de trouver la catégorie \"%s\""
);
diff --git a/lib/l10n/gl.php b/lib/l10n/gl.php
index 783826508c9..d38bf8329d1 100644
--- a/lib/l10n/gl.php
+++ b/lib/l10n/gl.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "Axuda",
"Personal" => "Persoal",
-"Settings" => "Axustes",
+"Settings" => "Configuracións",
"Users" => "Usuarios",
"Apps" => "Aplicativos",
"Admin" => "Administración",
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "Os ficheiros seleccionados son demasiado grandes como para xerar un ficheiro zip.",
"couldn't be determined" => "non foi posíbel determinalo",
"Application is not enabled" => "O aplicativo non está activado",
-"Authentication error" => "Produciuse un erro de autenticación",
+"Authentication error" => "Produciuse un erro na autenticación",
"Token expired. Please reload page." => "Testemuña caducada. Recargue a páxina.",
"Files" => "Ficheiros",
"Text" => "Texto",
@@ -48,5 +48,8 @@
"%d months ago" => "Vai %d meses",
"last year" => "último ano",
"years ago" => "anos atrás",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está dispoñíbel. Obtéña <a href=\"%s\">máis información</a>",
+"up to date" => "actualizado",
+"updates check is disabled" => "a comprobación de actualizacións está desactivada",
"Could not find category \"%s\"" => "Non foi posíbel atopar a categoría «%s»"
);
diff --git a/lib/l10n/he.php b/lib/l10n/he.php
index dcd0545adba..078a731afc0 100644
--- a/lib/l10n/he.php
+++ b/lib/l10n/he.php
@@ -27,5 +27,8 @@
"%d months ago" => "לפני %d חודשים",
"last year" => "שנה שעברה",
"years ago" => "שנים",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s זמין. קבלת <a href=\"%s\">מידע נוסף</a>",
+"up to date" => "עדכני",
+"updates check is disabled" => "בדיקת עדכונים מנוטרלת",
"Could not find category \"%s\"" => "לא ניתן למצוא את הקטגוריה „%s“"
);
diff --git a/lib/l10n/hr.php b/lib/l10n/hr.php
index 3ce75c99f0e..8b0dd6de0a1 100644
--- a/lib/l10n/hr.php
+++ b/lib/l10n/hr.php
@@ -3,7 +3,6 @@
"Personal" => "Osobno",
"Settings" => "Postavke",
"Users" => "Korisnici",
-"Apps" => "Aplikacije",
"Admin" => "Administrator",
"Authentication error" => "Greška kod autorizacije",
"Files" => "Datoteke",
diff --git a/lib/l10n/hu_HU.php b/lib/l10n/hu_HU.php
index 841020183b0..4621c5074b8 100644
--- a/lib/l10n/hu_HU.php
+++ b/lib/l10n/hu_HU.php
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "A kiválasztott fájlok túl nagyok a zip tömörítéshez.",
"couldn't be determined" => "nem határozható meg",
"Application is not enabled" => "Az alkalmazás nincs engedélyezve",
-"Authentication error" => "Azonosítási hiba",
+"Authentication error" => "Hitelesítési hiba",
"Token expired. Please reload page." => "A token lejárt. Frissítse az oldalt.",
"Files" => "Fájlok",
"Text" => "Szöveg",
@@ -36,7 +36,7 @@
"MS SQL username and/or password not valid: %s" => "Az MS SQL felhasználónév és/vagy jelszó érvénytelen: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik.",
"Please double check the <a href='%s'>installation guides</a>." => "Kérjük tüzetesen tanulmányozza át a <a href='%s'>telepítési útmutatót</a>.",
-"seconds ago" => "pár másodperce",
+"seconds ago" => "másodperce",
"1 minute ago" => "1 perce",
"%d minutes ago" => "%d perce",
"1 hour ago" => "1 órája",
@@ -47,6 +47,9 @@
"last month" => "múlt hónapban",
"%d months ago" => "%d hónapja",
"last year" => "tavaly",
-"years ago" => "több éve",
+"years ago" => "éve",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s elérhető. <a href=\"%s\">További információ</a>.",
+"up to date" => "a legfrissebb változat",
+"updates check is disabled" => "A frissitések ellenőrzése nincs engedélyezve.",
"Could not find category \"%s\"" => "Ez a kategória nem található: \"%s\""
);
diff --git a/lib/l10n/ia.php b/lib/l10n/ia.php
index 573281553fc..e790c41d072 100644
--- a/lib/l10n/ia.php
+++ b/lib/l10n/ia.php
@@ -3,7 +3,6 @@
"Personal" => "Personal",
"Settings" => "Configurationes",
"Users" => "Usatores",
-"Apps" => "Applicationes",
"Admin" => "Administration",
"Files" => "Files",
"Text" => "Texto"
diff --git a/lib/l10n/id.php b/lib/l10n/id.php
index 54b46cd8961..7eb26c5eb86 100644
--- a/lib/l10n/id.php
+++ b/lib/l10n/id.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d bulan yang lalu",
"last year" => "tahun kemarin",
"years ago" => "beberapa tahun lalu",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s tersedia. Dapatkan <a href=\"%s\">info lebih lanjut</a>",
+"up to date" => "terbaru",
+"updates check is disabled" => "Pemeriksaan pembaruan dinonaktifkan.",
"Could not find category \"%s\"" => "Tidak dapat menemukan kategori \"%s\""
);
diff --git a/lib/l10n/is.php b/lib/l10n/is.php
index 05bb6883953..8fdb45a05cd 100644
--- a/lib/l10n/is.php
+++ b/lib/l10n/is.php
@@ -27,5 +27,8 @@
"%d months ago" => "fyrir %d mánuðum",
"last year" => "síðasta ári",
"years ago" => "einhverjum árum",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s er í boði. Sækja <a href=\"%s\">meiri upplýsingar</a>",
+"up to date" => "nýjasta útgáfa",
+"updates check is disabled" => "uppfærslupróf er ekki virkjað",
"Could not find category \"%s\"" => "Fann ekki flokkinn \"%s\""
);
diff --git a/lib/l10n/it.php b/lib/l10n/it.php
index 1db48dbc80d..847f767fa76 100644
--- a/lib/l10n/it.php
+++ b/lib/l10n/it.php
@@ -37,16 +37,19 @@
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra essere danneggiata.",
"Please double check the <a href='%s'>installation guides</a>." => "Leggi attentamente le <a href='%s'>guide d'installazione</a>.",
"seconds ago" => "secondi fa",
-"1 minute ago" => "Un minuto fa",
+"1 minute ago" => "1 minuto fa",
"%d minutes ago" => "%d minuti fa",
"1 hour ago" => "1 ora fa",
"%d hours ago" => "%d ore fa",
"today" => "oggi",
"yesterday" => "ieri",
"%d days ago" => "%d giorni fa",
-"last month" => "mese scorso",
+"last month" => "il mese scorso",
"%d months ago" => "%d mesi fa",
-"last year" => "anno scorso",
+"last year" => "l'anno scorso",
"years ago" => "anni fa",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s è disponibile. Ottieni <a href=\"%s\">ulteriori informazioni</a>",
+"up to date" => "aggiornato",
+"updates check is disabled" => "il controllo degli aggiornamenti è disabilitato",
"Could not find category \"%s\"" => "Impossibile trovare la categoria \"%s\""
);
diff --git a/lib/l10n/ja_JP.php b/lib/l10n/ja_JP.php
index 3b97ffc431f..18d0833792d 100644
--- a/lib/l10n/ja_JP.php
+++ b/lib/l10n/ja_JP.php
@@ -1,10 +1,10 @@
<?php $TRANSLATIONS = array(
"Help" => "ヘルプ",
-"Personal" => "個人",
+"Personal" => "個人設定",
"Settings" => "設定",
"Users" => "ユーザ",
"Apps" => "アプリ",
-"Admin" => "管理",
+"Admin" => "管理者",
"ZIP download is turned off." => "ZIPダウンロードは無効です。",
"Files need to be downloaded one by one." => "ファイルは1つずつダウンロードする必要があります。",
"Back to Files" => "ファイルに戻る",
@@ -37,16 +37,19 @@
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。",
"Please double check the <a href='%s'>installation guides</a>." => "<a href='%s'>インストールガイド</a>をよく確認してください。",
"seconds ago" => "数秒前",
-"1 minute ago" => "1 分前",
+"1 minute ago" => "1分前",
"%d minutes ago" => "%d 分前",
"1 hour ago" => "1 時間前",
"%d hours ago" => "%d 時間前",
"today" => "今日",
"yesterday" => "昨日",
"%d days ago" => "%d 日前",
-"last month" => "一月前",
+"last month" => "先月",
"%d months ago" => "%d 分前",
-"last year" => "一年前",
+"last year" => "昨年",
"years ago" => "年前",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s が利用可能です。<a href=\"%s\">詳細情報</a> を確認ください",
+"up to date" => "最新です",
+"updates check is disabled" => "更新チェックは無効です",
"Could not find category \"%s\"" => "カテゴリ \"%s\" が見つかりませんでした"
);
diff --git a/lib/l10n/ka_GE.php b/lib/l10n/ka_GE.php
index a55323832ec..ffdf549f480 100644
--- a/lib/l10n/ka_GE.php
+++ b/lib/l10n/ka_GE.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d თვის წინ",
"last year" => "ბოლო წელს",
"years ago" => "წლის წინ",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ხელმისაწვდომია. მიიღეთ <a href=\"%s\">უფრო მეტი ინფორმაცია</a>",
+"up to date" => "განახლებულია",
+"updates check is disabled" => "განახლების ძებნა გათიშულია",
"Could not find category \"%s\"" => "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა"
);
diff --git a/lib/l10n/ko.php b/lib/l10n/ko.php
index bf2a68369f1..859657f46b4 100644
--- a/lib/l10n/ko.php
+++ b/lib/l10n/ko.php
@@ -28,5 +28,8 @@
"%d months ago" => "%d개월 전",
"last year" => "작년",
"years ago" => "년 전",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s을(를) 사용할 수 있습니다. <a href=\"%s\">자세한 정보 보기</a>",
+"up to date" => "최신",
+"updates check is disabled" => "업데이트 확인이 비활성화됨",
"Could not find category \"%s\"" => "분류 \"%s\"을(를) 찾을 수 없습니다."
);
diff --git a/lib/l10n/ku_IQ.php b/lib/l10n/ku_IQ.php
index 20d0249f569..f3165b8586b 100644
--- a/lib/l10n/ku_IQ.php
+++ b/lib/l10n/ku_IQ.php
@@ -2,6 +2,5 @@
"Help" => "یارمەتی",
"Settings" => "ده‌ستكاری",
"Users" => "به‌كارهێنه‌ر",
-"Apps" => "به‌رنامه‌كان",
"Admin" => "به‌ڕێوه‌به‌ری سه‌ره‌كی"
);
diff --git a/lib/l10n/lb.php b/lib/l10n/lb.php
index 889fc3a377d..16f1f674e95 100644
--- a/lib/l10n/lb.php
+++ b/lib/l10n/lb.php
@@ -2,8 +2,6 @@
"Help" => "Hëllef",
"Personal" => "Perséinlech",
"Settings" => "Astellungen",
-"Users" => "Benotzer",
-"Apps" => "Applicatiounen",
"Admin" => "Admin",
"Authentication error" => "Authentifikatioun's Fehler",
"Files" => "Dateien",
diff --git a/lib/l10n/lt_LT.php b/lib/l10n/lt_LT.php
index cebaa6937d8..b84c155633b 100644
--- a/lib/l10n/lt_LT.php
+++ b/lib/l10n/lt_LT.php
@@ -14,13 +14,16 @@
"Token expired. Please reload page." => "Sesija baigėsi. Prašome perkrauti puslapį.",
"Files" => "Failai",
"Text" => "Žinučių",
-"seconds ago" => "prieš sekundę",
-"1 minute ago" => "Prieš 1 minutę",
+"seconds ago" => "prieš kelias sekundes",
+"1 minute ago" => "prieš 1 minutę",
"%d minutes ago" => "prieš %d minučių",
"today" => "šiandien",
"yesterday" => "vakar",
"%d days ago" => "prieš %d dienų",
-"last month" => "praeitą mėnesį",
-"last year" => "praeitais metais",
-"years ago" => "prieš metus"
+"last month" => "praėjusį mėnesį",
+"last year" => "pereitais metais",
+"years ago" => "prieš metus",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s yra galimas. Platesnė <a href=\"%s\">informacija čia</a>",
+"up to date" => "pilnai atnaujinta",
+"updates check is disabled" => "atnaujinimų tikrinimas išjungtas"
);
diff --git a/lib/l10n/lv.php b/lib/l10n/lv.php
index 28b96c56e10..38793914073 100644
--- a/lib/l10n/lv.php
+++ b/lib/l10n/lv.php
@@ -48,5 +48,8 @@
"%d months ago" => "pirms %d mēnešiem",
"last year" => "gājušajā gadā",
"years ago" => "gadus atpakaļ",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ir pieejams. Iegūt <a href=\"%s\">vairāk informācijas</a>",
+"up to date" => "ir aktuāls",
+"updates check is disabled" => "atjauninājumu pārbaude ir deaktivēta",
"Could not find category \"%s\"" => "Nevarēja atrast kategoriju “%s”"
);
diff --git a/lib/l10n/mk.php b/lib/l10n/mk.php
index 34790c93745..5b3efffb22a 100644
--- a/lib/l10n/mk.php
+++ b/lib/l10n/mk.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "Помош",
"Personal" => "Лично",
-"Settings" => "Подесувања",
+"Settings" => "Параметри",
"Users" => "Корисници",
"Apps" => "Аппликации",
"Admin" => "Админ",
@@ -27,5 +27,8 @@
"%d months ago" => "пред %d месеци",
"last year" => "минатата година",
"years ago" => "пред години",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s е достапно. Земи <a href=\"%s\">повеќе информации</a>",
+"up to date" => "ажурно",
+"updates check is disabled" => "проверката за ажурирања е оневозможена",
"Could not find category \"%s\"" => "Не можам да најдам категорија „%s“"
);
diff --git a/lib/l10n/ms_MY.php b/lib/l10n/ms_MY.php
index 6abbbe86e80..732ea96c6b7 100644
--- a/lib/l10n/ms_MY.php
+++ b/lib/l10n/ms_MY.php
@@ -3,7 +3,6 @@
"Personal" => "Peribadi",
"Settings" => "Tetapan",
"Users" => "Pengguna",
-"Apps" => "Aplikasi",
"Admin" => "Admin",
"Authentication error" => "Ralat pengesahan",
"Files" => "Fail-fail",
diff --git a/lib/l10n/my_MM.php b/lib/l10n/my_MM.php
index 5d1812fd742..d725a06a3a9 100644
--- a/lib/l10n/my_MM.php
+++ b/lib/l10n/my_MM.php
@@ -24,5 +24,8 @@
"%d months ago" => "%d လအရင်က",
"last year" => "မနှစ်က",
"years ago" => "နှစ် အရင်က",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s ကိုရရှိနိုင်ပါပြီ။ <a href=\"%s\">နောက်ထပ်အချက်အလက်များ</a>ရယူပါ။",
+"up to date" => "နောက်ဆုံးပေါ်",
+"updates check is disabled" => "နောက်ဆုံးပေါ်စစ်ဆေးခြင်းကိုပိတ်ထားသည်",
"Could not find category \"%s\"" => "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ"
);
diff --git a/lib/l10n/nb_NO.php b/lib/l10n/nb_NO.php
index fc95561d3b4..01144672caa 100644
--- a/lib/l10n/nb_NO.php
+++ b/lib/l10n/nb_NO.php
@@ -10,7 +10,7 @@
"Back to Files" => "Tilbake til filer",
"Selected files too large to generate zip file." => "De valgte filene er for store til å kunne generere ZIP-fil",
"Application is not enabled" => "Applikasjon er ikke påslått",
-"Authentication error" => "Autentikasjonsfeil",
+"Authentication error" => "Autentiseringsfeil",
"Token expired. Please reload page." => "Symbol utløpt. Vennligst last inn siden på nytt.",
"Files" => "Filer",
"Text" => "Tekst",
@@ -25,7 +25,10 @@
"%d days ago" => "%d dager siden",
"last month" => "forrige måned",
"%d months ago" => "%d måneder siden",
-"last year" => "forrige år",
+"last year" => "i fjor",
"years ago" => "år siden",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s er tilgjengelig. Få <a href=\"%s\">mer informasjon</a>",
+"up to date" => "oppdatert",
+"updates check is disabled" => "versjonssjekk er avslått",
"Could not find category \"%s\"" => "Kunne ikke finne kategori \"%s\""
);
diff --git a/lib/l10n/nl.php b/lib/l10n/nl.php
index 0c387142619..f7cc6ad899c 100644
--- a/lib/l10n/nl.php
+++ b/lib/l10n/nl.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d maanden geleden",
"last year" => "vorig jaar",
"years ago" => "jaar geleden",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s is beschikbaar. Verkrijg <a href=\"%s\">meer informatie</a>",
+"up to date" => "bijgewerkt",
+"updates check is disabled" => "Meest recente versie controle is uitgeschakeld",
"Could not find category \"%s\"" => "Kon categorie \"%s\" niet vinden"
);
diff --git a/lib/l10n/nn_NO.php b/lib/l10n/nn_NO.php
index f8f15c9fba6..4de21cd9c23 100644
--- a/lib/l10n/nn_NO.php
+++ b/lib/l10n/nn_NO.php
@@ -3,19 +3,8 @@
"Personal" => "Personleg",
"Settings" => "Innstillingar",
"Users" => "Brukarar",
-"Apps" => "Applikasjonar",
"Admin" => "Administrer",
"Authentication error" => "Feil i autentisering",
"Files" => "Filer",
-"Text" => "Tekst",
-"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.",
-"Please double check the <a href='%s'>installation guides</a>." => "Ver vennleg og dobbeltsjekk <a href='%s'>installasjonsrettleiinga</a>.",
-"seconds ago" => "sekund sidan",
-"1 minute ago" => "1 minutt sidan",
-"1 hour ago" => "1 time sidan",
-"today" => "i dag",
-"yesterday" => "i går",
-"last month" => "førre månad",
-"last year" => "i fjor",
-"years ago" => "år sidan"
+"Text" => "Tekst"
);
diff --git a/lib/l10n/oc.php b/lib/l10n/oc.php
index 85e2a27b431..89161393380 100644
--- a/lib/l10n/oc.php
+++ b/lib/l10n/oc.php
@@ -18,5 +18,7 @@
"%d days ago" => "%d jorns a",
"last month" => "mes passat",
"last year" => "an passat",
-"years ago" => "ans a"
+"years ago" => "ans a",
+"up to date" => "a jorn",
+"updates check is disabled" => "la verificacion de mesa a jorn es inactiva"
);
diff --git a/lib/l10n/pl.php b/lib/l10n/pl.php
index 4ac1c14439f..c508794c42a 100644
--- a/lib/l10n/pl.php
+++ b/lib/l10n/pl.php
@@ -34,19 +34,22 @@
"Drop this user from MySQL." => "Usuń tego użytkownika z MySQL.",
"Offending command was: \"%s\", name: %s, password: %s" => "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s",
"MS SQL username and/or password not valid: %s" => "Nazwa i/lub hasło serwera MS SQL jest niepoprawne: %s.",
-"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Serwer internetowy nie jest jeszcze poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.",
-"Please double check the <a href='%s'>installation guides</a>." => "Sprawdź ponownie <a href='%s'>przewodniki instalacji</a>.",
+"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Serwer www nie jest jeszcze poprawnie ustawiony, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony. Sprawdź ustawienia serwera.",
+"Please double check the <a href='%s'>installation guides</a>." => "Proszę sprawdź ponownie <a href='%s'>przewodnik instalacji</a>.",
"seconds ago" => "sekund temu",
"1 minute ago" => "1 minutę temu",
"%d minutes ago" => "%d minut temu",
-"1 hour ago" => "1 godzinę temu",
+"1 hour ago" => "1 godzine temu",
"%d hours ago" => "%d godzin temu",
-"today" => "dziś",
+"today" => "dzisiaj",
"yesterday" => "wczoraj",
"%d days ago" => "%d dni temu",
-"last month" => "w zeszłym miesiącu",
+"last month" => "ostatni miesiąc",
"%d months ago" => "%d miesiecy temu",
-"last year" => "w zeszłym roku",
+"last year" => "ostatni rok",
"years ago" => "lat temu",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s jest dostępna. Uzyskaj <a href=\"%s\">więcej informacji</a>",
+"up to date" => "Aktualne",
+"updates check is disabled" => "wybór aktualizacji jest wyłączony",
"Could not find category \"%s\"" => "Nie można odnaleźć kategorii \"%s\""
);
diff --git a/lib/l10n/pt_BR.php b/lib/l10n/pt_BR.php
index 4c50f8de9e6..8196b43be23 100644
--- a/lib/l10n/pt_BR.php
+++ b/lib/l10n/pt_BR.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d meses atrás",
"last year" => "último ano",
"years ago" => "anos atrás",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está disponível. Obtenha <a href=\"%s\">mais informações</a>",
+"up to date" => "atualizado",
+"updates check is disabled" => "checagens de atualização estão desativadas",
"Could not find category \"%s\"" => "Impossível localizar categoria \"%s\""
);
diff --git a/lib/l10n/pt_PT.php b/lib/l10n/pt_PT.php
index b3befe96e03..12470686e7e 100644
--- a/lib/l10n/pt_PT.php
+++ b/lib/l10n/pt_PT.php
@@ -36,17 +36,20 @@
"MS SQL username and/or password not valid: %s" => "Nome de utilizador/password do MySQL é inválido: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas.",
"Please double check the <a href='%s'>installation guides</a>." => "Por favor verifique <a href='%s'>installation guides</a>.",
-"seconds ago" => "Minutos atrás",
-"1 minute ago" => "Há 1 minuto",
+"seconds ago" => "há alguns segundos",
+"1 minute ago" => "há 1 minuto",
"%d minutes ago" => "há %d minutos",
"1 hour ago" => "Há 1 horas",
"%d hours ago" => "Há %d horas",
"today" => "hoje",
"yesterday" => "ontem",
"%d days ago" => "há %d dias",
-"last month" => "ultímo mês",
+"last month" => "mês passado",
"%d months ago" => "Há %d meses atrás",
"last year" => "ano passado",
-"years ago" => "anos atrás",
+"years ago" => "há anos",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está disponível. Obtenha <a href=\"%s\">mais informação</a>",
+"up to date" => "actualizado",
+"updates check is disabled" => "a verificação de actualizações está desligada",
"Could not find category \"%s\"" => "Não foi encontrado a categoria \"%s\""
);
diff --git a/lib/l10n/ro.php b/lib/l10n/ro.php
index 6661caf86e7..3f8e59cdac2 100644
--- a/lib/l10n/ro.php
+++ b/lib/l10n/ro.php
@@ -28,5 +28,8 @@
"%d months ago" => "%d luni in urma",
"last year" => "ultimul an",
"years ago" => "ani în urmă",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s este disponibil. Vezi <a href=\"%s\">mai multe informații</a>",
+"up to date" => "la zi",
+"updates check is disabled" => "verificarea după actualizări este dezactivată",
"Could not find category \"%s\"" => "Cloud nu a gasit categoria \"%s\""
);
diff --git a/lib/l10n/ru.php b/lib/l10n/ru.php
index e716f6d1c11..6f351cd4584 100644
--- a/lib/l10n/ru.php
+++ b/lib/l10n/ru.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "Помощь",
"Personal" => "Личное",
-"Settings" => "Конфигурация",
+"Settings" => "Настройки",
"Users" => "Пользователи",
"Apps" => "Приложения",
"Admin" => "Admin",
@@ -36,7 +36,7 @@
"MS SQL username and/or password not valid: %s" => "Имя пользователя и/или пароль MS SQL не подходит: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш веб сервер до сих пор не настроен правильно для возможности синхронизации файлов, похоже что проблема в неисправности интерфейса WebDAV.",
"Please double check the <a href='%s'>installation guides</a>." => "Пожалуйста, дважды просмотрите <a href='%s'>инструкции по установке</a>.",
-"seconds ago" => "несколько секунд назад",
+"seconds ago" => "менее минуты",
"1 minute ago" => "1 минуту назад",
"%d minutes ago" => "%d минут назад",
"1 hour ago" => "час назад",
@@ -47,6 +47,9 @@
"last month" => "в прошлом месяце",
"%d months ago" => "%d месяцев назад",
"last year" => "в прошлом году",
-"years ago" => "несколько лет назад",
+"years ago" => "годы назад",
+"%s is available. Get <a href=\"%s\">more information</a>" => "Возможно обновление до %s. <a href=\"%s\">Подробнее</a>",
+"up to date" => "актуальная версия",
+"updates check is disabled" => "проверка обновлений отключена",
"Could not find category \"%s\"" => "Категория \"%s\" не найдена"
);
diff --git a/lib/l10n/ru_RU.php b/lib/l10n/ru_RU.php
index 8fb568aee7e..de770563662 100644
--- a/lib/l10n/ru_RU.php
+++ b/lib/l10n/ru_RU.php
@@ -1,3 +1,37 @@
<?php $TRANSLATIONS = array(
-"Settings" => "Настройки"
+"Help" => "Помощь",
+"Personal" => "Персональный",
+"Settings" => "Настройки",
+"Users" => "Пользователи",
+"Apps" => "Приложения",
+"Admin" => "Админ",
+"ZIP download is turned off." => "Загрузка ZIP выключена.",
+"Files need to be downloaded one by one." => "Файлы должны быть загружены один за другим.",
+"Back to Files" => "Обратно к файлам",
+"Selected files too large to generate zip file." => "Выбранные файлы слишком велики для генерации zip-архива.",
+"couldn't be determined" => "не может быть определено",
+"Application is not enabled" => "Приложение не запущено",
+"Authentication error" => "Ошибка аутентификации",
+"Token expired. Please reload page." => "Маркер истек. Пожалуйста, перезагрузите страницу.",
+"Files" => "Файлы",
+"Text" => "Текст",
+"Images" => "Изображения",
+"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш веб сервер ещё не достаточно точно настроен для возможности синхронизации, т.к. похоже, что интерфейс WebDAV сломан.",
+"Please double check the <a href='%s'>installation guides</a>." => "Пожалуйста проверте дважды <a href='%s'>гиды по установке</a>.",
+"seconds ago" => "секунд назад",
+"1 minute ago" => "1 минуту назад",
+"%d minutes ago" => "%d минут назад",
+"1 hour ago" => "1 час назад",
+"%d hours ago" => "%d часов назад",
+"today" => "сегодня",
+"yesterday" => "вчера",
+"%d days ago" => "%d дней назад",
+"last month" => "в прошлом месяце",
+"%d months ago" => "%d месяцев назад",
+"last year" => "в прошлом году",
+"years ago" => "год назад",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s доступно. Получите <a href=\"%s\">more information</a>",
+"up to date" => "до настоящего времени",
+"updates check is disabled" => "Проверка обновлений отключена",
+"Could not find category \"%s\"" => "Не удалось найти категорию \"%s\""
);
diff --git a/lib/l10n/si_LK.php b/lib/l10n/si_LK.php
index 4846fdcc066..25624acf705 100644
--- a/lib/l10n/si_LK.php
+++ b/lib/l10n/si_LK.php
@@ -10,7 +10,7 @@
"Back to Files" => "ගොනු වෙතට නැවත යන්න",
"Selected files too large to generate zip file." => "තෝරාගත් ගොනු ZIP ගොනුවක් තැනීමට විශාල වැඩිය.",
"Application is not enabled" => "යෙදුම සක්‍රිය කර නොමැත",
-"Authentication error" => "සත්‍යාපන දෝෂයක්",
+"Authentication error" => "සත්‍යාපනය කිරීමේ දෝශයක්",
"Token expired. Please reload page." => "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
"Files" => "ගොනු",
"Text" => "පෙළ",
@@ -23,5 +23,8 @@
"%d days ago" => "%d දිනකට පෙර",
"last month" => "පෙර මාසයේ",
"last year" => "පෙර අවුරුද්දේ",
-"years ago" => "අවුරුදු කීපයකට පෙර"
+"years ago" => "අවුරුදු කීපයකට පෙර",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s යොදාගත හැක. <a href=\"%s\">තව විස්තර</a> ලබාගන්න",
+"up to date" => "යාවත්කාලීනයි",
+"updates check is disabled" => "යාවත්කාලීන බව පරීක්ෂණය අක්‍රියයි"
);
diff --git a/lib/l10n/sk_SK.php b/lib/l10n/sk_SK.php
index e074ed78c3c..2ab255ef8fe 100644
--- a/lib/l10n/sk_SK.php
+++ b/lib/l10n/sk_SK.php
@@ -37,7 +37,7 @@
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené.",
"Please double check the <a href='%s'>installation guides</a>." => "Prosím skontrolujte <a href='%s'>inštalačnú príručku</a>.",
"seconds ago" => "pred sekundami",
-"1 minute ago" => "pred minútou",
+"1 minute ago" => "pred 1 minútou",
"%d minutes ago" => "pred %d minútami",
"1 hour ago" => "Pred 1 hodinou",
"%d hours ago" => "Pred %d hodinami.",
@@ -48,5 +48,8 @@
"%d months ago" => "Pred %d mesiacmi.",
"last year" => "minulý rok",
"years ago" => "pred rokmi",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s je dostupné. Získať <a href=\"%s\">pre viac informácií</a>",
+"up to date" => "aktuálny",
+"updates check is disabled" => "sledovanie aktualizácií je vypnuté",
"Could not find category \"%s\"" => "Nemožno nájsť danú kategóriu \"%s\""
);
diff --git a/lib/l10n/sl.php b/lib/l10n/sl.php
index 0c42f44d2aa..8775cdd0303 100644
--- a/lib/l10n/sl.php
+++ b/lib/l10n/sl.php
@@ -11,7 +11,7 @@
"Selected files too large to generate zip file." => "Izbrane datoteke so prevelike za ustvarjanje datoteke arhiva zip.",
"couldn't be determined" => "ni mogoče določiti",
"Application is not enabled" => "Program ni omogočen",
-"Authentication error" => "Napaka pri overjanju",
+"Authentication error" => "Napaka overitve",
"Token expired. Please reload page." => "Žeton je potekel. Stran je treba ponovno naložiti.",
"Files" => "Datoteke",
"Text" => "Besedilo",
@@ -44,9 +44,12 @@
"today" => "danes",
"yesterday" => "včeraj",
"%d days ago" => "pred %d dnevi",
-"last month" => "zadnji mesec",
+"last month" => "prejšnji mesec",
"%d months ago" => "Pred %d meseci",
"last year" => "lansko leto",
-"years ago" => "let nazaj",
+"years ago" => "pred nekaj leti",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s je na voljo. <a href=\"%s\">Več podrobnosti.</a>",
+"up to date" => "posodobljeno",
+"updates check is disabled" => "preverjanje za posodobitve je onemogočeno",
"Could not find category \"%s\"" => "Kategorije \"%s\" ni mogoče najti."
);
diff --git a/lib/l10n/sq.php b/lib/l10n/sq.php
index 60d83ca48c3..649af3c5c25 100644
--- a/lib/l10n/sq.php
+++ b/lib/l10n/sq.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"Help" => "Ndihmë",
"Personal" => "Personale",
-"Settings" => "Parametra",
+"Settings" => "Parametrat",
"Users" => "Përdoruesit",
"Apps" => "App",
"Admin" => "Admin",
@@ -48,5 +48,8 @@
"%d months ago" => "%d muaj më parë",
"last year" => "vitin e shkuar",
"years ago" => "vite më parë",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s është i disponueshëm. <a href=\"%s\">Informohuni këtu</a>",
+"up to date" => "i azhornuar",
+"updates check is disabled" => "kontrollimi i azhurnimeve është i çaktivizuar",
"Could not find category \"%s\"" => "Kategoria \"%s\" nuk u gjet"
);
diff --git a/lib/l10n/sr.php b/lib/l10n/sr.php
index 45b8e06200c..5c6620f82ba 100644
--- a/lib/l10n/sr.php
+++ b/lib/l10n/sr.php
@@ -21,7 +21,7 @@
"seconds ago" => "пре неколико секунди",
"1 minute ago" => "пре 1 минут",
"%d minutes ago" => "пре %d минута",
-"1 hour ago" => "Пре једног сата",
+"1 hour ago" => "пре 1 сат",
"%d hours ago" => "пре %d сата/и",
"today" => "данас",
"yesterday" => "јуче",
@@ -30,5 +30,8 @@
"%d months ago" => "пре %d месеца/и",
"last year" => "прошле године",
"years ago" => "година раније",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s је доступна. Погледајте <a href=\"%s\">више информација</a>.",
+"up to date" => "је ажурна",
+"updates check is disabled" => "провера ажурирања је онемогућена",
"Could not find category \"%s\"" => "Не могу да пронађем категорију „%s“."
);
diff --git a/lib/l10n/sr@latin.php b/lib/l10n/sr@latin.php
index 13cedc83279..2f0a97fd77f 100644
--- a/lib/l10n/sr@latin.php
+++ b/lib/l10n/sr@latin.php
@@ -3,7 +3,6 @@
"Personal" => "Lično",
"Settings" => "Podešavanja",
"Users" => "Korisnici",
-"Apps" => "Programi",
"Admin" => "Adninistracija",
"Authentication error" => "Greška pri autentifikaciji",
"Files" => "Fajlovi",
diff --git a/lib/l10n/sv.php b/lib/l10n/sv.php
index 3dcb26d5d8d..63ca60e89cd 100644
--- a/lib/l10n/sv.php
+++ b/lib/l10n/sv.php
@@ -23,12 +23,15 @@
"%d minutes ago" => "%d minuter sedan",
"1 hour ago" => "1 timme sedan",
"%d hours ago" => "%d timmar sedan",
-"today" => "i dag",
-"yesterday" => "i går",
+"today" => "idag",
+"yesterday" => "igår",
"%d days ago" => "%d dagar sedan",
"last month" => "förra månaden",
"%d months ago" => "%d månader sedan",
"last year" => "förra året",
"years ago" => "år sedan",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s finns. Få <a href=\"%s\">mer information</a>",
+"up to date" => "uppdaterad",
+"updates check is disabled" => "uppdateringskontroll är inaktiverad",
"Could not find category \"%s\"" => "Kunde inte hitta kategorin \"%s\""
);
diff --git a/lib/l10n/ta_LK.php b/lib/l10n/ta_LK.php
index c9bb578b40f..c76394bcb4f 100644
--- a/lib/l10n/ta_LK.php
+++ b/lib/l10n/ta_LK.php
@@ -2,7 +2,7 @@
"Help" => "உதவி",
"Personal" => "தனிப்பட்ட",
"Settings" => "அமைப்புகள்",
-"Users" => "பயனாளர்",
+"Users" => "பயனாளர்கள்",
"Apps" => "செயலிகள்",
"Admin" => "நிர்வாகம்",
"ZIP download is turned off." => "வீசொலிப் பூட்டு பதிவிறக்கம் நிறுத்தப்பட்டுள்ளது.",
@@ -27,5 +27,8 @@
"%d months ago" => "%d மாதத்திற்கு முன்",
"last year" => "கடந்த வருடம்",
"years ago" => "வருடங்களுக்கு முன்",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s இன்னும் இருக்கின்றன. <a href=\"%s\">மேலதிக தகவல்களுக்கு</a> எடுக்க",
+"up to date" => "நவீன",
+"updates check is disabled" => "இற்றைப்படுத்தலை சரிபார்ப்பதை செயலற்றதாக்குக",
"Could not find category \"%s\"" => "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை"
);
diff --git a/lib/l10n/th_TH.php b/lib/l10n/th_TH.php
index 7cda4ab6ae6..0da607a0589 100644
--- a/lib/l10n/th_TH.php
+++ b/lib/l10n/th_TH.php
@@ -16,8 +16,8 @@
"Files" => "ไฟล์",
"Text" => "ข้อความ",
"Images" => "รูปภาพ",
-"seconds ago" => "วินาที ก่อนหน้านี้",
-"1 minute ago" => "1 นาทีก่อนหน้านี้",
+"seconds ago" => "วินาทีที่ผ่านมา",
+"1 minute ago" => "1 นาทีมาแล้ว",
"%d minutes ago" => "%d นาทีที่ผ่านมา",
"1 hour ago" => "1 ชั่วโมงก่อนหน้านี้",
"%d hours ago" => "%d ชั่วโมงก่อนหน้านี้",
@@ -27,6 +27,9 @@
"last month" => "เดือนที่แล้ว",
"%d months ago" => "%d เดือนมาแล้ว",
"last year" => "ปีที่แล้ว",
-"years ago" => "ปี ที่ผ่านมา",
+"years ago" => "ปีที่ผ่านมา",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s พร้อมให้ใช้งานได้แล้ว. <a href=\"%s\">ดูรายละเอียดเพิ่มเติม</a>",
+"up to date" => "ทันสมัย",
+"updates check is disabled" => "การตรวจสอบชุดอัพเดทถูกปิดใช้งานไว้",
"Could not find category \"%s\"" => "ไม่พบหมวดหมู่ \"%s\""
);
diff --git a/lib/l10n/tr.php b/lib/l10n/tr.php
index 94ffed067c6..4a8292989ab 100644
--- a/lib/l10n/tr.php
+++ b/lib/l10n/tr.php
@@ -1,5 +1,5 @@
<?php $TRANSLATIONS = array(
-"Help" => "Yardım",
+"Help" => "Yardı",
"Personal" => "Kişisel",
"Settings" => "Ayarlar",
"Users" => "Kullanıcılar",
@@ -40,5 +40,8 @@
"%d months ago" => "%d ay önce",
"last year" => "geçen yıl",
"years ago" => "yıl önce",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s kullanılabilir durumda. <a href=\"%s\">Daha fazla bilgi</a> alın",
+"up to date" => "güncel",
+"updates check is disabled" => "güncelleme kontrolü kapalı",
"Could not find category \"%s\"" => "\"%s\" kategorisi bulunamadı"
);
diff --git a/lib/l10n/uk.php b/lib/l10n/uk.php
index a5448901247..9dfc16c3464 100644
--- a/lib/l10n/uk.php
+++ b/lib/l10n/uk.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d місяців тому",
"last year" => "минулого року",
"years ago" => "роки тому",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s доступно. Отримати <a href=\"%s\">детальну інформацію</a>",
+"up to date" => "оновлено",
+"updates check is disabled" => "перевірка оновлень відключена",
"Could not find category \"%s\"" => "Не вдалося знайти категорію \"%s\""
);
diff --git a/lib/l10n/vi.php b/lib/l10n/vi.php
index 6a4b8ebac93..ea9660093ae 100644
--- a/lib/l10n/vi.php
+++ b/lib/l10n/vi.php
@@ -13,10 +13,10 @@
"Application is not enabled" => "Ứng dụng không được BẬT",
"Authentication error" => "Lỗi xác thực",
"Token expired. Please reload page." => "Mã Token đã hết hạn. Hãy tải lại trang.",
-"Files" => "Tập tin",
+"Files" => "Các tập tin",
"Text" => "Văn bản",
"Images" => "Hình ảnh",
-"seconds ago" => "vài giây trước",
+"seconds ago" => "1 giây trước",
"1 minute ago" => "1 phút trước",
"%d minutes ago" => "%d phút trước",
"1 hour ago" => "1 giờ trước",
@@ -28,5 +28,8 @@
"%d months ago" => "%d tháng trước",
"last year" => "năm trước",
"years ago" => "năm trước",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s có sẵn. <a href=\"%s\">xem thêm ở đây</a>",
+"up to date" => "đến ngày",
+"updates check is disabled" => "đã TĂT chức năng cập nhật ",
"Could not find category \"%s\"" => "không thể tìm thấy mục \"%s\""
);
diff --git a/lib/l10n/zh_CN.GB2312.php b/lib/l10n/zh_CN.GB2312.php
index 3ab35f2bafa..16487339421 100644
--- a/lib/l10n/zh_CN.GB2312.php
+++ b/lib/l10n/zh_CN.GB2312.php
@@ -26,5 +26,8 @@
"%d days ago" => "%d 天前",
"last month" => "上个月",
"last year" => "去年",
-"years ago" => "年前"
+"years ago" => "年前",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s 不可用。获知 <a href=\"%s\">详情</a>",
+"up to date" => "最新",
+"updates check is disabled" => "更新检测已禁用"
);
diff --git a/lib/l10n/zh_CN.php b/lib/l10n/zh_CN.php
index cab5142e5d5..2dea94dec36 100644
--- a/lib/l10n/zh_CN.php
+++ b/lib/l10n/zh_CN.php
@@ -36,8 +36,8 @@
"MS SQL username and/or password not valid: %s" => "MS SQL 用户名和/或密码无效:%s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "您的Web服务器尚未正确设置以允许文件同步, 因为WebDAV的接口似乎已损坏.",
"Please double check the <a href='%s'>installation guides</a>." => "请认真检查<a href='%s'>安装指南</a>.",
-"seconds ago" => "秒前",
-"1 minute ago" => "一分钟前",
+"seconds ago" => "几秒前",
+"1 minute ago" => "1分钟前",
"%d minutes ago" => "%d 分钟前",
"1 hour ago" => "1小时前",
"%d hours ago" => "%d小时前",
@@ -47,6 +47,9 @@
"last month" => "上月",
"%d months ago" => "%d 月前",
"last year" => "去年",
-"years ago" => "年前",
+"years ago" => "几年前",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s 已存在。点此 <a href=\"%s\">获取更多信息</a>",
+"up to date" => "已更新。",
+"updates check is disabled" => "更新检查功能被禁用。",
"Could not find category \"%s\"" => "无法找到分类 \"%s\""
);
diff --git a/lib/l10n/zh_TW.php b/lib/l10n/zh_TW.php
index 5affb1ccf35..fbcf81ad3a4 100644
--- a/lib/l10n/zh_TW.php
+++ b/lib/l10n/zh_TW.php
@@ -48,5 +48,8 @@
"%d months ago" => "%d 個月之前",
"last year" => "去年",
"years ago" => "幾年前",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s 已經可用。取得 <a href=\"%s\">更多資訊</a>",
+"up to date" => "最新的",
+"updates check is disabled" => "更新檢查已停用",
"Could not find category \"%s\"" => "找不到分類:\"%s\""
);
diff --git a/lib/public/share.php b/lib/public/share.php
index c1eabee60d4..e0aedf35694 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -991,7 +991,7 @@ class Share {
$row['path'] = '/Shared/'.basename($row['path']);
} else {
if (!isset($mounts[$row['storage']])) {
- $mounts[$row['storage']] = \OC\Files\Filesystem::getMountByNumericId($row['storage']);
+ $mounts[$row['storage']] = \OC\Files\Mount::findByNumericId($row['storage']);
}
if ($mounts[$row['storage']]) {
$path = $mounts[$row['storage']]->getMountPoint().$row['path'];
diff --git a/lib/request.php b/lib/request.php
index 4d8380eb9ac..9f74cf9beb5 100755
--- a/lib/request.php
+++ b/lib/request.php
@@ -11,10 +11,9 @@ class OC_Request {
* @brief Check overwrite condition
* @returns true/false
*/
- private static function isOverwriteCondition($type = '') {
+ private static function isOverwriteCondition() {
$regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/';
- return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1
- or ($type !== 'protocol' and OC_Config::getValue('forcessl', false));
+ return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1;
}
/**
@@ -28,7 +27,7 @@ class OC_Request {
if(OC::$CLI) {
return 'localhost';
}
- if(OC_Config::getValue('overwritehost', '') !== '' and self::isOverwriteCondition()) {
+ if(OC_Config::getValue('overwritehost', '')<>'' and self::isOverwriteCondition()) {
return OC_Config::getValue('overwritehost');
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
@@ -53,7 +52,7 @@ class OC_Request {
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function serverProtocol() {
- if(OC_Config::getValue('overwriteprotocol', '') !== '' and self::isOverwriteCondition('protocol')) {
+ if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) {
return OC_Config::getValue('overwriteprotocol');
}
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
@@ -77,7 +76,7 @@ class OC_Request {
*/
public static function requestUri() {
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
- if (OC_Config::getValue('overwritewebroot', '') !== '' and self::isOverwriteCondition()) {
+ if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) {
$uri = self::scriptName() . substr($uri, strlen($_SERVER['SCRIPT_NAME']));
}
return $uri;
@@ -92,7 +91,7 @@ class OC_Request {
*/
public static function scriptName() {
$name = $_SERVER['SCRIPT_NAME'];
- if (OC_Config::getValue('overwritewebroot', '') !== '' and self::isOverwriteCondition()) {
+ if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) {
$serverroot = str_replace("\\", '/', substr(__DIR__, 0, -4));
$suburi = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen($serverroot)));
$name = OC_Config::getValue('overwritewebroot', '') . $suburi;
diff --git a/lib/templatelayout.php b/lib/templatelayout.php
index 5e584201432..69bebac0503 100644
--- a/lib/templatelayout.php
+++ b/lib/templatelayout.php
@@ -18,20 +18,6 @@ class OC_TemplateLayout extends OC_Template {
$this->assign('bodyid', 'body-user');
}
- // Update notification
- if(OC_Config::getValue('updatechecker', true) === true) {
- $data=OC_Updater::check();
- if(isset($data['version']) && $data['version'] != '' and $data['version'] !== Array() && OC_User::isAdminUser(OC_User::getUser())) {
- $this->assign('updateAvailable', true);
- $this->assign('updateVersion', $data['versionstring']);
- $this->assign('updateLink', $data['web']);
- } else {
- $this->assign('updateAvailable', false); // No update available or not an admin user
- }
- } else {
- $this->assign('updateAvailable', false); // Update check is disabled
- }
-
// Add navigation entry
$this->assign( 'application', '', false );
$navigation = OC_App::getNavigation();
@@ -78,8 +64,25 @@ class OC_TemplateLayout extends OC_Template {
$root = $info[0];
$web = $info[1];
$file = $info[2];
+ $paths = explode('/', $file);
- $this->append( 'cssfiles', $web.'/'.$file . $versionParameter);
+ $in_root = false;
+ foreach(OC::$APPSROOTS as $app_root) {
+ if($root == $app_root['path']) {
+ $in_root = true;
+ break;
+ }
+ }
+
+ if($in_root ) {
+ $app = $paths[0];
+ unset($paths[0]);
+ $path = implode('/', $paths);
+ $this->append( 'cssfiles', OC_Helper::linkTo($app, $path) . $versionParameter);
+ }
+ else {
+ $this->append( 'cssfiles', $web.'/'.$file);
+ }
}
}
@@ -120,15 +123,20 @@ class OC_TemplateLayout extends OC_Template {
}elseif(self::appendIfExist($files, OC::$SERVERROOT, OC::$WEBROOT, "core/$style.css" )) {
}else{
- $app = substr($style, 0, strpos($style, '/'));
- $style = substr($style, strpos($style, '/')+1);
- $app_path = OC_App::getAppPath($app);
- $app_url = OC::$WEBROOT . '/index.php/apps/' . $app;
- if(self::appendIfExist($files, $app_path, $app_url, "$style$fext.css")) {
+ $append = false;
+ // or in apps?
+ foreach( OC::$APPSROOTS as $apps_dir)
+ {
+ if(self::appendIfExist($files, $apps_dir['path'], $apps_dir['url'], "$style$fext.css")) {
+ $append = true;
+ break;
+ }
+ elseif(self::appendIfExist($files, $apps_dir['path'], $apps_dir['url'], "$style.css")) {
+ $append = true;
+ break;
+ }
}
- elseif(self::appendIfExist($files, $app_path, $app_url, "$style.css")) {
- }
- else {
+ if(! $append) {
echo('css file not found: style:'.$style.' formfactor:'.$fext
.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT);
die();
@@ -187,15 +195,18 @@ class OC_TemplateLayout extends OC_Template {
}else{
// Is it part of an app?
- $app = substr($script, 0, strpos($script, '/'));
- $script = substr($script, strpos($script, '/')+1);
- $app_path = OC_App::getAppPath($app);
- $app_url = OC_App::getAppWebPath($app);
- if(self::appendIfExist($files, $app_path, $app_url, "$script$fext.js")) {
- }
- elseif(self::appendIfExist($files, $app_path, $app_url, "$script.js")) {
+ $append = false;
+ foreach( OC::$APPSROOTS as $apps_dir) {
+ if(self::appendIfExist($files, $apps_dir['path'], OC::$WEBROOT.$apps_dir['url'], "$script$fext.js")) {
+ $append = true;
+ break;
+ }
+ elseif(self::appendIfExist($files, $apps_dir['path'], OC::$WEBROOT.$apps_dir['url'], "$script.js")) {
+ $append = true;
+ break;
+ }
}
- else {
+ if(! $append) {
echo('js file not found: script:'.$script.' formfactor:'.$fext
.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT);
die();
diff --git a/lib/updater.php b/lib/updater.php
index 9081bfc4be8..e7d33ac2bb9 100644
--- a/lib/updater.php
+++ b/lib/updater.php
@@ -29,14 +29,7 @@ class OC_Updater{
* Check if a new version is available
*/
public static function check() {
-
- // Look up the cache - it is invalidated all 30 minutes
- if((OC_Appconfig::getValue('core', 'lastupdatedat') + 1800) > time()) {
- return json_decode(OC_Appconfig::getValue('core', 'lastupdateResult'), true);
- }
-
- OC_Appconfig::setValue('core', 'lastupdatedat', time());
-
+ OC_Appconfig::setValue('core', 'lastupdatedat', microtime(true));
if(OC_Appconfig::getValue('core', 'installedat', '')=='') {
OC_Appconfig::setValue('core', 'installedat', microtime(true));
}
@@ -72,9 +65,38 @@ class OC_Updater{
$tmp['url'] = $data->url;
$tmp['web'] = $data->web;
- // Cache the result
- OC_Appconfig::setValue('core', 'lastupdateResult', json_encode($data));
-
return $tmp;
}
-} \ No newline at end of file
+
+ public static function ShowUpdatingHint() {
+ $l = OC_L10N::get('lib');
+
+ if(OC_Config::getValue('updatechecker', true)==true) {
+ $data=OC_Updater::check();
+ if(isset($data['version']) and $data['version']<>'') {
+ $txt='<span style="color:#AA0000; font-weight:bold;">'
+ .$l->t('%s is available. Get <a href="%s">more information</a>',
+ array($data['versionstring'], $data['web'])).'</span>';
+ }else{
+ $txt=$l->t('up to date');
+ }
+ }else{
+ $txt=$l->t('updates check is disabled');
+ }
+ return($txt);
+ }
+
+
+ /**
+ * do ownCloud update
+ */
+ public static function doUpdate() {
+
+ //update ownCloud core
+
+ //update all apps
+
+ //update version in config
+
+ }
+}
diff --git a/lib/user.php b/lib/user.php
index 226b716188d..b19af940795 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -527,7 +527,7 @@ class OC_User {
foreach (self::$_usedBackends as $backend) {
$backendDisplayNames = $backend->getDisplayNames($search, $limit, $offset);
if (is_array($backendDisplayNames)) {
- $displayNames = $displayNames + $backendDisplayNames;
+ $displayNames = array_merge($displayNames, $backendDisplayNames);
}
}
asort($displayNames);
diff --git a/lib/util.php b/lib/util.php
index 322e5cf909d..38453c1ce92 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -38,7 +38,6 @@ class OC_Util {
$CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
//first set up the local "root" storage
- \OC\Files\Filesystem::initMounts();
if(!self::$rootMounted) {
\OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$CONFIG_DATADIRECTORY), '/');
self::$rootMounted=true;
@@ -221,63 +220,63 @@ class OC_Util {
if(!class_exists('ZipArchive')) {
$errors[]=array('error'=>'PHP module zip not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!class_exists('DOMDocument')) {
$errors[] = array('error' => 'PHP module dom not installed.',
'hint' => 'Please ask your server administrator to install the module.');
- $web_server_restart =true;
+ $web_server_restart = false;
}
if(!function_exists('xml_parser_create')) {
$errors[] = array('error' => 'PHP module libxml not installed.',
'hint' => 'Please ask your server administrator to install the module.');
- $web_server_restart =true;
+ $web_server_restart = false;
}
if(!function_exists('mb_detect_encoding')) {
$errors[]=array('error'=>'PHP module mb multibyte not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('ctype_digit')) {
$errors[]=array('error'=>'PHP module ctype is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('json_encode')) {
$errors[]=array('error'=>'PHP module JSON is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('imagepng')) {
$errors[]=array('error'=>'PHP module GD is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('gzencode')) {
$errors[]=array('error'=>'PHP module zlib is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('iconv')) {
$errors[]=array('error'=>'PHP module iconv is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!function_exists('simplexml_load_string')) {
$errors[]=array('error'=>'PHP module SimpleXML is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(floatval(phpversion())<5.3) {
$errors[]=array('error'=>'PHP 5.3 is required.',
'hint'=>'Please ask your server administrator to update PHP to version 5.3 or higher.'
.' PHP 5.2 is no longer supported by ownCloud and the PHP community.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if(!defined('PDO::ATTR_DRIVER_NAME')) {
$errors[]=array('error'=>'PHP PDO module is not installed.',
'hint'=>'Please ask your server administrator to install the module.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if (((strtolower(@ini_get('safe_mode')) == 'on')
|| (strtolower(@ini_get('safe_mode')) == 'yes')
@@ -285,12 +284,7 @@ class OC_Util {
|| (ini_get("safe_mode") == 1 ))) {
$errors[]=array('error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.',
'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.');
- $web_server_restart=true;
- }
- if (get_magic_quotes_gpc() == 1 ) {
- $errors[]=array('error'=>'Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.',
- 'hint'=>'Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.');
- $web_server_restart=true;
+ $web_server_restart= false;
}
if($web_server_restart) {