summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-10-02 18:23:59 +0200
committerBart Visscher <bartv@thisnet.nl>2013-10-02 18:23:59 +0200
commita90ea2c069998d378ec49825ce53b7651a459c1a (patch)
tree7b1afe4ef7dd5509f25c4be7829aa6834877a979 /core
parent5db98aadd30b9f1218dda8f836acca0062ce1d9f (diff)
parent551e80979046358b9cbc8a0f8db0ff9cdf919e33 (diff)
downloadnextcloud-server-a90ea2c069998d378ec49825ce53b7651a459c1a.tar.gz
nextcloud-server-a90ea2c069998d378ec49825ce53b7651a459c1a.zip
Merge remote-tracking branch 'origin/master' into setup
Diffstat (limited to 'core')
-rw-r--r--core/avatar/controller.php158
-rw-r--r--core/command/status.php34
-rw-r--r--core/css/apps.css7
-rw-r--r--core/css/styles.css20
-rw-r--r--core/img/actions/triangle-e.pngbin0 -> 174 bytes
-rw-r--r--core/img/actions/triangle-e.svg4
-rw-r--r--core/js/avatar.js11
-rw-r--r--core/js/jquery.avatar.js87
-rw-r--r--core/js/jquery.ocdialog.js3
-rw-r--r--core/js/js.js56
-rw-r--r--core/js/oc-dialogs.js287
-rw-r--r--core/js/placeholder.js15
-rw-r--r--core/js/share.js25
-rw-r--r--core/l10n/ach.php3
-rw-r--r--core/l10n/af_ZA.php1
-rw-r--r--core/l10n/ar.php4
-rw-r--r--core/l10n/be.php1
-rw-r--r--core/l10n/bg_BG.php2
-rw-r--r--core/l10n/bn_BD.php2
-rw-r--r--core/l10n/bs.php1
-rw-r--r--core/l10n/ca.php17
-rw-r--r--core/l10n/cs_CZ.php13
-rw-r--r--core/l10n/cy_GB.php2
-rw-r--r--core/l10n/da.php5
-rw-r--r--core/l10n/de.php17
-rw-r--r--core/l10n/de_AT.php3
-rw-r--r--core/l10n/de_CH.php3
-rw-r--r--core/l10n/de_DE.php17
-rw-r--r--core/l10n/el.php3
-rw-r--r--core/l10n/en@pirate.php1
-rw-r--r--core/l10n/en_GB.php19
-rw-r--r--core/l10n/eo.php2
-rw-r--r--core/l10n/es.php3
-rw-r--r--core/l10n/es_AR.php3
-rw-r--r--core/l10n/es_MX.php3
-rw-r--r--core/l10n/et_EE.php10
-rw-r--r--core/l10n/eu.php3
-rw-r--r--core/l10n/fa.php3
-rw-r--r--core/l10n/fi_FI.php8
-rw-r--r--core/l10n/fr.php17
-rw-r--r--core/l10n/gl.php17
-rw-r--r--core/l10n/he.php3
-rw-r--r--core/l10n/hi.php3
-rw-r--r--core/l10n/hr.php2
-rw-r--r--core/l10n/hu_HU.php24
-rw-r--r--core/l10n/hy.php3
-rw-r--r--core/l10n/ia.php2
-rw-r--r--core/l10n/id.php2
-rw-r--r--core/l10n/is.php2
-rw-r--r--core/l10n/it.php17
-rw-r--r--core/l10n/ja_JP.php17
-rw-r--r--core/l10n/ka.php1
-rw-r--r--core/l10n/ka_GE.php2
-rw-r--r--core/l10n/km.php9
-rw-r--r--core/l10n/kn.php3
-rw-r--r--core/l10n/ko.php2
-rw-r--r--core/l10n/ku_IQ.php1
-rw-r--r--core/l10n/lb.php3
-rw-r--r--core/l10n/lt_LT.php31
-rw-r--r--core/l10n/lv.php3
-rw-r--r--core/l10n/mk.php2
-rw-r--r--core/l10n/ml_IN.php3
-rw-r--r--core/l10n/ms_MY.php2
-rw-r--r--core/l10n/my_MM.php2
-rw-r--r--core/l10n/nb_NO.php2
-rw-r--r--core/l10n/ne.php3
-rw-r--r--core/l10n/nl.php16
-rw-r--r--core/l10n/nn_NO.php17
-rw-r--r--core/l10n/nqo.php3
-rw-r--r--core/l10n/oc.php2
-rw-r--r--core/l10n/pa.php47
-rw-r--r--core/l10n/pl.php9
-rw-r--r--core/l10n/pt_BR.php17
-rw-r--r--core/l10n/pt_PT.php11
-rw-r--r--core/l10n/ro.php16
-rw-r--r--core/l10n/ru.php27
-rw-r--r--core/l10n/si_LK.php2
-rw-r--r--core/l10n/sk.php3
-rw-r--r--core/l10n/sk_SK.php3
-rw-r--r--core/l10n/sl.php3
-rw-r--r--core/l10n/sq.php3
-rw-r--r--core/l10n/sr.php2
-rw-r--r--core/l10n/sr@latin.php71
-rw-r--r--core/l10n/sv.php17
-rw-r--r--core/l10n/sw_KE.php3
-rw-r--r--core/l10n/ta_LK.php2
-rw-r--r--core/l10n/te.php2
-rw-r--r--core/l10n/th_TH.php2
-rw-r--r--core/l10n/tr.php3
-rw-r--r--core/l10n/ug.php2
-rw-r--r--core/l10n/uk.php2
-rw-r--r--core/l10n/ur_PK.php2
-rw-r--r--core/l10n/vi.php2
-rw-r--r--core/l10n/zh_CN.php3
-rw-r--r--core/l10n/zh_HK.php2
-rw-r--r--core/l10n/zh_TW.php3
-rw-r--r--core/register_command.php9
-rw-r--r--core/routes.php17
-rw-r--r--core/templates/layout.user.php3
-rw-r--r--core/templates/login.php3
100 files changed, 1281 insertions, 82 deletions
diff --git a/core/avatar/controller.php b/core/avatar/controller.php
new file mode 100644
index 00000000000..22693824461
--- /dev/null
+++ b/core/avatar/controller.php
@@ -0,0 +1,158 @@
+<?php
+/**
+ * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Avatar;
+
+class Controller {
+ public static function getAvatar($args) {
+ \OC_JSON::checkLoggedIn();
+ \OC_JSON::callCheck();
+
+ $user = stripslashes($args['user']);
+ $size = (int)$args['size'];
+ if ($size > 2048) {
+ $size = 2048;
+ }
+ // Undefined size
+ elseif ($size === 0) {
+ $size = 64;
+ }
+
+ $avatar = new \OC_Avatar($user);
+ $image = $avatar->get($size);
+
+ \OC_Response::disableCaching();
+ \OC_Response::setLastModifiedHeader(time());
+ if ($image instanceof \OC_Image) {
+ \OC_Response::setETagHeader(crc32($image->data()));
+ $image->show();
+ } else {
+ // Signalizes $.avatar() to display a defaultavatar
+ \OC_JSON::success(array("data"=> array("displayname"=> \OC_User::getDisplayName($user)) ));
+ }
+ }
+
+ public static function postAvatar($args) {
+ \OC_JSON::checkLoggedIn();
+ \OC_JSON::callCheck();
+
+ $user = \OC_User::getUser();
+
+ if (isset($_POST['path'])) {
+ $path = stripslashes($_POST['path']);
+ $view = new \OC\Files\View('/'.$user.'/files');
+ $newAvatar = $view->file_get_contents($path);
+ } elseif (!empty($_FILES)) {
+ $files = $_FILES['files'];
+ if (
+ $files['error'][0] === 0 &&
+ is_uploaded_file($files['tmp_name'][0]) &&
+ !\OC\Files\Filesystem::isFileBlacklisted($files['tmp_name'][0])
+ ) {
+ $newAvatar = file_get_contents($files['tmp_name'][0]);
+ unlink($files['tmp_name'][0]);
+ }
+ } else {
+ $l = new \OC_L10n('core');
+ \OC_JSON::error(array("data" => array("message" => $l->t("No image or file provided")) ));
+ return;
+ }
+
+ try {
+ $avatar = new \OC_Avatar($user);
+ $avatar->set($newAvatar);
+ \OC_JSON::success();
+ } catch (\OC\NotSquareException $e) {
+ $image = new \OC_Image($newAvatar);
+
+ if ($image->valid()) {
+ \OC_Cache::set('tmpavatar', $image->data(), 7200);
+ \OC_JSON::error(array("data" => "notsquare"));
+ } else {
+ $l = new \OC_L10n('core');
+
+ $mimeType = $image->mimeType();
+ if ($mimeType !== 'image/jpeg' && $mimeType !== 'image/png') {
+ \OC_JSON::error(array("data" => array("message" => $l->t("Unknown filetype")) ));
+ }
+
+ if (!$image->valid()) {
+ \OC_JSON::error(array("data" => array("message" => $l->t("Invalid image")) ));
+ }
+ }
+ } catch (\Exception $e) {
+ \OC_JSON::error(array("data" => array("message" => $e->getMessage()) ));
+ }
+ }
+
+ public static function deleteAvatar($args) {
+ \OC_JSON::checkLoggedIn();
+ \OC_JSON::callCheck();
+
+ $user = \OC_User::getUser();
+
+ try {
+ $avatar = new \OC_Avatar($user);
+ $avatar->remove();
+ \OC_JSON::success();
+ } catch (\Exception $e) {
+ \OC_JSON::error(array("data" => array("message" => $e->getMessage()) ));
+ }
+ }
+
+ public static function getTmpAvatar($args) {
+ \OC_JSON::checkLoggedIn();
+ \OC_JSON::callCheck();
+
+ $tmpavatar = \OC_Cache::get('tmpavatar');
+ if (is_null($tmpavatar)) {
+ $l = new \OC_L10n('core');
+ \OC_JSON::error(array("data" => array("message" => $l->t("No temporary profile picture available, try again")) ));
+ return;
+ }
+
+ $image = new \OC_Image($tmpavatar);
+ \OC_Response::disableCaching();
+ \OC_Response::setLastModifiedHeader(time());
+ \OC_Response::setETagHeader(crc32($image->data()));
+ $image->show();
+ }
+
+ public static function postCroppedAvatar($args) {
+ \OC_JSON::checkLoggedIn();
+ \OC_JSON::callCheck();
+
+ $user = \OC_User::getUser();
+ if (isset($_POST['crop'])) {
+ $crop = $_POST['crop'];
+ } else {
+ $l = new \OC_L10n('core');
+ \OC_JSON::error(array("data" => array("message" => $l->t("No crop data provided")) ));
+ return;
+ }
+
+ $tmpavatar = \OC_Cache::get('tmpavatar');
+ if (is_null($tmpavatar)) {
+ $l = new \OC_L10n('core');
+ \OC_JSON::error(array("data" => array("message" => $l->t("No temporary profile picture available, try again")) ));
+ return;
+ }
+
+ $image = new \OC_Image($tmpavatar);
+ $image->crop($crop['x'], $crop['y'], $crop['w'], $crop['h']);
+ try {
+ $avatar = new \OC_Avatar($user);
+ $avatar->set($image->data());
+ // Clean up
+ \OC_Cache::remove('tmpavatar');
+ \OC_JSON::success();
+ } catch (\Exception $e) {
+ \OC_JSON::error(array("data" => array("message" => $e->getMessage()) ));
+ }
+ }
+}
diff --git a/core/command/status.php b/core/command/status.php
new file mode 100644
index 00000000000..ea9825b0f61
--- /dev/null
+++ b/core/command/status.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Status extends Command {
+ protected function configure() {
+ $this
+ ->setName('status')
+ ->setDescription('show some status information')
+ ;
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $values = array(
+ 'installed' => \OC_Config::getValue('installed') ? 'true' : 'false',
+ 'version' => implode('.', \OC_Util::getVersion()),
+ 'versionstring' => \OC_Util::getVersionString(),
+ 'edition' => \OC_Util::getEditionString(),
+ );
+ print_r($values);
+ }
+}
diff --git a/core/css/apps.css b/core/css/apps.css
index 5de146feb1f..f6c20e6cc6a 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -16,6 +16,7 @@
-moz-box-sizing: border-box; box-sizing: border-box;
background-color: #f8f8f8;
border-right: 1px solid #ccc;
+ padding-bottom: 44px;
}
#app-navigation > ul {
height: 100%;
@@ -50,8 +51,8 @@
#app-navigation li > a {
display: block;
width: 100%;
- height: 44px;
- padding: 12px;
+ line-height: 44px;
+ padding: 0 12px;
overflow: hidden;
-moz-box-sizing: border-box; box-sizing: border-box;
white-space: nowrap;
@@ -192,7 +193,7 @@
.settings-button {
display: block;
- height: 32px;
+ height: 44px;
width: 100%;
padding: 0;
margin: 0;
diff --git a/core/css/styles.css b/core/css/styles.css
index bf78af15af5..dcdeda8a9c9 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -40,6 +40,11 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
.header-right { float:right; vertical-align:middle; padding:0.5em; }
.header-right > * { vertical-align:middle; }
+#header .avatardiv {
+ text-shadow: none;
+ float: left;
+ display: inline-block;
+}
/* INPUTS */
input[type="text"], input[type="password"], input[type="search"], input[type="number"], input[type="email"], input[type="url"],
@@ -583,8 +588,18 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
/* USER MENU */
-#settings { float:right; margin-top:7px; color:#bbb; text-shadow:0 -1px 0 #000; }
-#expand { padding:15px; cursor:pointer; font-weight:bold; }
+#settings {
+ float: right;
+ margin-top: 7px;
+ margin-left: 10px;
+ color: #bbb;
+ text-shadow: 0 -1px 0 #000;
+}
+#expand {
+ padding: 15px 15px 15px 5px;
+ cursor: pointer;
+ font-weight: bold;
+}
#expand:hover, #expand:focus, #expand:active { color:#fff; }
#expand img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70); opacity:.7; margin-bottom:-2px; }
#expand:hover img, #expand:focus img, #expand:active img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
@@ -624,6 +639,7 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
.hidden { display:none; }
.bold { font-weight:bold; }
.center { text-align:center; }
+.inlineblock { display: inline-block; }
#notification-container { position: fixed; top: 0px; width: 100%; text-align: center; z-index: 101; line-height: 1.2;}
#notification, #update-notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; }
diff --git a/core/img/actions/triangle-e.png b/core/img/actions/triangle-e.png
new file mode 100644
index 00000000000..09d398f602e
--- /dev/null
+++ b/core/img/actions/triangle-e.png
Binary files differ
diff --git a/core/img/actions/triangle-e.svg b/core/img/actions/triangle-e.svg
new file mode 100644
index 00000000000..c3d908b366f
--- /dev/null
+++ b/core/img/actions/triangle-e.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16px" width="16px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m4 12 8-4-7.989-4z"/>
+</svg>
diff --git a/core/js/avatar.js b/core/js/avatar.js
new file mode 100644
index 00000000000..57e6daa0930
--- /dev/null
+++ b/core/js/avatar.js
@@ -0,0 +1,11 @@
+$(document).ready(function(){
+ if (OC.currentUser) {
+ $('#header .avatardiv').avatar(OC.currentUser, 32);
+ // Personal settings
+ $('#avatar .avatardiv').avatar(OC.currentUser, 128);
+ }
+ // User settings
+ $.each($('td.avatar .avatardiv'), function(i, element) {
+ $(element).avatar($(element).parent().parent().data('uid'), 32);
+ });
+});
diff --git a/core/js/jquery.avatar.js b/core/js/jquery.avatar.js
new file mode 100644
index 00000000000..88a4c25d1ee
--- /dev/null
+++ b/core/js/jquery.avatar.js
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+/**
+ * This plugin inserts the right avatar for the user, depending on, whether a
+ * custom avatar is uploaded - which it uses then - or not, and display a
+ * placeholder with the first letter of the users name instead.
+ * For this it queries the core_avatar_get route, thus this plugin is fit very
+ * tightly for owncloud, and it may not work anywhere else.
+ *
+ * You may use this on any <div></div>
+ * Here I'm using <div class="avatardiv"></div> as an example.
+ *
+ * There are 4 ways to call this:
+ *
+ * 1. $('.avatardiv').avatar('jdoe', 128);
+ * This will make the div to jdoe's fitting avatar, with a size of 128px.
+ *
+ * 2. $('.avatardiv').avatar('jdoe');
+ * This will make the div to jdoe's fitting avatar. If the div aready has a
+ * height, it will be used for the avatars size. Otherwise this plugin will
+ * search for 'size' DOM data, to use for avatar size. If neither are available
+ * it will default to 64px.
+ *
+ * 3. $('.avatardiv').avatar();
+ * This will search the DOM for 'user' data, to use as the username. If there
+ * is no username available it will default to a placeholder with the value of
+ * "x". The size will be determined the same way, as the second example.
+ *
+ * 4. $('.avatardiv').avatar('jdoe', 128, true);
+ * This will behave like the first example, except it will also append random
+ * hashes to the custom avatar images, to force image reloading in IE8.
+ */
+
+(function ($) {
+ $.fn.avatar = function(user, size, ie8fix) {
+ if (typeof(size) === 'undefined') {
+ if (this.height() > 0) {
+ size = this.height();
+ } else if (this.data('size') > 0) {
+ size = this.data('size');
+ } else {
+ size = 64;
+ }
+ }
+
+ this.height(size);
+ this.width(size);
+
+ if (typeof(user) === 'undefined') {
+ if (typeof(this.data('user')) !== 'undefined') {
+ user = this.data('user');
+ } else {
+ this.placeholder('x');
+ return;
+ }
+ }
+
+ // sanitize
+ user = user.replace(/\//g,'');
+
+ var $div = this;
+
+ OC.Router.registerLoadedCallback(function() {
+ var url = OC.Router.generate('core_avatar_get', {user: user, size: size})+'?requesttoken='+oc_requesttoken;
+ $.get(url, function(result) {
+ if (typeof(result) === 'object') {
+ if (result.data && result.data.displayname) {
+ $div.placeholder(user, result.data.displayname);
+ } else {
+ $div.placeholder(user);
+ }
+ } else {
+ if (ie8fix === true) {
+ $div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
+ } else {
+ $div.html('<img src="'+url+'">');
+ }
+ }
+ });
+ });
+ };
+}(jQuery));
diff --git a/core/js/jquery.ocdialog.js b/core/js/jquery.ocdialog.js
index f1836fd4727..02cd6ac1466 100644
--- a/core/js/jquery.ocdialog.js
+++ b/core/js/jquery.ocdialog.js
@@ -103,6 +103,9 @@
}
$.each(value, function(idx, val) {
var $button = $('<button>').text(val.text);
+ if (val.classes) {
+ $button.addClass(val.classes);
+ }
if(val.defaultButton) {
$button.addClass('primary');
self.$defaultButton = $button;
diff --git a/core/js/js.js b/core/js/js.js
index 1999ff73d23..b7f7ff1ac15 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -322,6 +322,38 @@ var OC={
return date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes();
},
/**
+ * Parses a URL query string into a JS map
+ * @param queryString query string in the format param1=1234&param2=abcde&param3=xyz
+ * @return map containing key/values matching the URL parameters
+ */
+ parseQueryString:function(queryString){
+ var parts,
+ components,
+ result = {},
+ key,
+ value;
+ if (!queryString){
+ return null;
+ }
+ if (queryString[0] === '?'){
+ queryString = queryString.substr(1);
+ }
+ parts = queryString.split('&');
+ for (var i = 0; i < parts.length; i++){
+ components = parts[i].split('=');
+ if (!components.length){
+ continue;
+ }
+ key = decodeURIComponent(components[0]);
+ if (!key){
+ continue;
+ }
+ value = components[1];
+ result[key] = value && decodeURIComponent(value);
+ }
+ return result;
+ },
+ /**
* Opens a popup with the setting for an app.
* @param appid String. The ID of the app e.g. 'calendar', 'contacts' or 'files'.
* @param loadJS boolean or String. If true 'js/settings.js' is loaded. If it's a string
@@ -691,11 +723,17 @@ $(document).ready(function(){
}
}else if(event.keyCode===27){//esc
OC.search.hide();
+ if (FileList && typeof FileList.unfilter === 'function') { //TODO add hook system
+ FileList.unfilter();
+ }
}else{
var query=$('#searchbox').val();
if(OC.search.lastQuery!==query){
OC.search.lastQuery=query;
OC.search.currentResult=-1;
+ if (FileList && typeof FileList.filter === 'function') { //TODO add hook system
+ FileList.filter(query);
+ }
if(query.length>2){
OC.search(query);
}else{
@@ -808,6 +846,13 @@ function formatDate(date){
return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes();
}
+// taken from http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery
+function getURLParameter(name) {
+ return decodeURI(
+ (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]
+ );
+}
+
/**
* takes an absolute timestamp and return a string with a human-friendly relative date
* @param int a Unix timestamp
@@ -874,7 +919,7 @@ OC.set=function(name, value) {
* @param {type} start
* @param {type} end
*/
-$.fn.selectRange = function(start, end) {
+jQuery.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
@@ -890,6 +935,15 @@ $.fn.selectRange = function(start, end) {
};
/**
+ * check if an element exists.
+ * allows you to write if ($('#myid').exists()) to increase readability
+ * @link http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery
+ */
+jQuery.fn.exists = function(){
+ return this.length > 0;
+}
+
+/**
* Calls the server periodically every 15 mins to ensure that session doesnt
* time out
*/
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 61b58d00fa6..ac37b109e76 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -139,8 +139,12 @@ var OCdialogs = {
}
});
})
- .fail(function() {
- alert(t('core', 'Error loading file picker template'));
+ .fail(function(status, error) {
+ // If the method is called while navigating away
+ // from the page, it is probably not needed ;)
+ if(status !== 0) {
+ alert(t('core', 'Error loading file picker template: {error}', {error: error}));
+ }
});
},
/**
@@ -206,10 +210,255 @@ var OCdialogs = {
});
OCdialogs.dialogs_counter++;
})
- .fail(function() {
- alert(t('core', 'Error loading file picker template'));
+ .fail(function(status, error) {
+ // If the method is called while navigating away from
+ // the page, we still want to deliver the message.
+ if(status === 0) {
+ alert(title + ': ' + content);
+ } else {
+ alert(t('core', 'Error loading message template: {error}', {error: error}));
+ }
});
},
+ _fileexistsshown: false,
+ /**
+ * Displays file exists dialog
+ * @param {object} data upload object
+ * @param {object} original file with name, size and mtime
+ * @param {object} replacement file with name, size and mtime
+ * @param {object} controller with onCancel, onSkip, onReplace and onRename methods
+ */
+ fileexists:function(data, original, replacement, controller) {
+ var self = this;
+
+ var getCroppedPreview = function(file) {
+ var deferred = new $.Deferred();
+ // Only process image files.
+ var type = file.type.split('/').shift();
+ if (window.FileReader && type === 'image') {
+ var reader = new FileReader();
+ reader.onload = function (e) {
+ var blob = new Blob([e.target.result]);
+ window.URL = window.URL || window.webkitURL;
+ var originalUrl = window.URL.createObjectURL(blob);
+ var image = new Image();
+ image.src = originalUrl;
+ image.onload = function () {
+ var url = crop(image);
+ deferred.resolve(url);
+ }
+ };
+ reader.readAsArrayBuffer(file);
+ } else {
+ deferred.reject();
+ }
+ return deferred;
+ };
+
+ var crop = function(img) {
+ var canvas = document.createElement('canvas'),
+ width = img.width,
+ height = img.height,
+ x, y, size;
+
+ // calculate the width and height, constraining the proportions
+ if (width > height) {
+ y = 0;
+ x = (width - height) / 2;
+ } else {
+ y = (height - width) / 2;
+ x = 0;
+ }
+ size = Math.min(width, height);
+
+ // resize the canvas and draw the image data into it
+ canvas.width = 64;
+ canvas.height = 64;
+ var ctx = canvas.getContext("2d");
+ ctx.drawImage(img, x, y, size, size, 0, 0, 64, 64);
+ return canvas.toDataURL("image/png", 0.7);
+ };
+
+ var addConflict = function(conflicts, original, replacement) {
+
+ var conflict = conflicts.find('.template').clone().removeClass('template').addClass('conflict');
+
+ conflict.data('data',data);
+
+ conflict.find('.filename').text(original.name);
+ conflict.find('.original .size').text(humanFileSize(original.size));
+ conflict.find('.original .mtime').text(formatDate(original.mtime*1000));
+ // ie sucks
+ if (replacement.size && replacement.lastModifiedDate) {
+ conflict.find('.replacement .size').text(humanFileSize(replacement.size));
+ conflict.find('.replacement .mtime').text(formatDate(replacement.lastModifiedDate));
+ }
+ var path = getPathForPreview(original.name);
+ lazyLoadPreview(path, original.type, function(previewpath){
+ conflict.find('.original .icon').css('background-image','url('+previewpath+')');
+ }, 96, 96);
+ getCroppedPreview(replacement).then(
+ function(path){
+ conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ }, function(){
+ getMimeIcon(replacement.type,function(path){
+ conflict.find('.replacement .icon').css('background-image','url(' + path + ')');
+ });
+ }
+ );
+ conflicts.append(conflict);
+
+ //set more recent mtime bold
+ // ie sucks
+ if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() > original.mtime*1000) {
+ conflict.find('.replacement .mtime').css('font-weight', 'bold');
+ } else if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() < original.mtime*1000) {
+ conflict.find('.original .mtime').css('font-weight', 'bold');
+ } else {
+ //TODO add to same mtime collection?
+ }
+
+ // set bigger size bold
+ if (replacement.size && replacement.size > original.size) {
+ conflict.find('.replacement .size').css('font-weight', 'bold');
+ } else if (replacement.size && replacement.size < original.size) {
+ conflict.find('.original .size').css('font-weight', 'bold');
+ } else {
+ //TODO add to same size collection?
+ }
+
+ //TODO show skip action for files with same size and mtime in bottom row
+
+ };
+ //var selection = controller.getSelection(data.originalFiles);
+ //if (selection.defaultAction) {
+ // controller[selection.defaultAction](data);
+ //} else {
+ var dialog_name = 'oc-dialog-fileexists-content';
+ var dialog_id = '#' + dialog_name;
+ if (this._fileexistsshown) {
+ // add conflict
+
+ var conflicts = $(dialog_id+ ' .conflicts');
+ addConflict(conflicts, original, replacement);
+
+ var count = $(dialog_id+ ' .conflict').length;
+ var title = n('files',
+ '{count} file conflict',
+ '{count} file conflicts',
+ count,
+ {count:count}
+ );
+ $(dialog_id).parent().children('.oc-dialog-title').text(title);
+
+ //recalculate dimensions
+ $(window).trigger('resize');
+
+ } else {
+ //create dialog
+ this._fileexistsshown = true;
+ $.when(this._getFileExistsTemplate()).then(function($tmpl) {
+ var title = t('files','One file conflict');
+ var $dlg = $tmpl.octemplate({
+ dialog_name: dialog_name,
+ title: title,
+ type: 'fileexists',
+
+ why: t('files','Which files do you want to keep?'),
+ what: t('files','If you select both versions, the copied file will have a number added to its name.')
+ });
+ $('body').append($dlg);
+
+ var conflicts = $($dlg).find('.conflicts');
+ addConflict(conflicts, original, replacement);
+
+ buttonlist = [{
+ text: t('core', 'Cancel'),
+ classes: 'cancel',
+ click: function(){
+ if ( typeof controller.onCancel !== 'undefined') {
+ controller.onCancel(data);
+ }
+ $(dialog_id).ocdialog('close');
+ }
+ },
+ {
+ text: t('core', 'Continue'),
+ classes: 'continue',
+ click: function(){
+ if ( typeof controller.onContinue !== 'undefined') {
+ controller.onContinue($(dialog_id + ' .conflict'));
+ }
+ $(dialog_id).ocdialog('close');
+ }
+ }];
+
+ $(dialog_id).ocdialog({
+ width: 500,
+ closeOnEscape: true,
+ modal: true,
+ buttons: buttonlist,
+ closeButton: null,
+ close: function(event, ui) {
+ self._fileexistsshown = false;
+ $(this).ocdialog('destroy').remove();
+ }
+ });
+
+ $(dialog_id).css('height','auto');
+
+ //add checkbox toggling actions
+ $(dialog_id).find('.allnewfiles').on('click', function() {
+ var checkboxes = $(dialog_id).find('.conflict .replacement input[type="checkbox"]');
+ checkboxes.prop('checked', $(this).prop('checked'));
+ });
+ $(dialog_id).find('.allexistingfiles').on('click', function() {
+ var checkboxes = $(dialog_id).find('.conflict .original input[type="checkbox"]');
+ checkboxes.prop('checked', $(this).prop('checked'));
+ });
+ $(dialog_id).find('.conflicts').on('click', '.replacement,.original', function() {
+ var checkbox = $(this).find('input[type="checkbox"]');
+ checkbox.prop('checked', !checkbox.prop('checked'));
+ });
+ $(dialog_id).find('.conflicts').on('click', 'input[type="checkbox"]', function() {
+ var checkbox = $(this);
+ checkbox.prop('checked', !checkbox.prop('checked'));
+ });
+
+ //update counters
+ $(dialog_id).on('click', '.replacement,.allnewfiles', function() {
+ var count = $(dialog_id).find('.conflict .replacement input[type="checkbox"]:checked').length;
+ if (count === $(dialog_id+ ' .conflict').length) {
+ $(dialog_id).find('.allnewfiles').prop('checked', true);
+ $(dialog_id).find('.allnewfiles + .count').text(t('files','(all selected)'));
+ } else if (count > 0) {
+ $(dialog_id).find('.allnewfiles').prop('checked', false);
+ $(dialog_id).find('.allnewfiles + .count').text(t('files','({count} selected)',{count:count}));
+ } else {
+ $(dialog_id).find('.allnewfiles').prop('checked', false);
+ $(dialog_id).find('.allnewfiles + .count').text('');
+ }
+ });
+ $(dialog_id).on('click', '.original,.allexistingfiles', function(){
+ var count = $(dialog_id).find('.conflict .original input[type="checkbox"]:checked').length;
+ if (count === $(dialog_id+ ' .conflict').length) {
+ $(dialog_id).find('.allexistingfiles').prop('checked', true);
+ $(dialog_id).find('.allexistingfiles + .count').text(t('files','(all selected)'));
+ } else if (count > 0) {
+ $(dialog_id).find('.allexistingfiles').prop('checked', false);
+ $(dialog_id).find('.allexistingfiles + .count').text(t('files','({count} selected)',{count:count}));
+ } else {
+ $(dialog_id).find('.allexistingfiles').prop('checked', false);
+ $(dialog_id).find('.allexistingfiles + .count').text('');
+ }
+ });
+ })
+ .fail(function() {
+ alert(t('core', 'Error loading file exists template'));
+ });
+ }
+ //}
+ },
_getFilePickerTemplate: function() {
var defer = $.Deferred();
if(!this.$filePickerTemplate) {
@@ -219,8 +468,8 @@ var OCdialogs = {
self.$listTmpl = self.$filePickerTemplate.find('.filelist li:first-child').detach();
defer.resolve(self.$filePickerTemplate);
})
- .fail(function() {
- defer.reject();
+ .fail(function(jqXHR, textStatus, errorThrown) {
+ defer.reject(jqXHR.status, errorThrown);
});
} else {
defer.resolve(this.$filePickerTemplate);
@@ -235,14 +484,30 @@ var OCdialogs = {
self.$messageTemplate = $(tmpl);
defer.resolve(self.$messageTemplate);
})
- .fail(function() {
- defer.reject();
+ .fail(function(jqXHR, textStatus, errorThrown) {
+ defer.reject(jqXHR.status, errorThrown);
});
} else {
defer.resolve(this.$messageTemplate);
}
return defer.promise();
},
+ _getFileExistsTemplate: function () {
+ var defer = $.Deferred();
+ if (!this.$fileexistsTemplate) {
+ var self = this;
+ $.get(OC.filePath('files', 'templates', 'fileexists.html'), function (tmpl) {
+ self.$fileexistsTemplate = $(tmpl);
+ defer.resolve(self.$fileexistsTemplate);
+ })
+ .fail(function () {
+ defer.reject();
+ });
+ } else {
+ defer.resolve(this.$fileexistsTemplate);
+ }
+ return defer.promise();
+ },
_getFileList: function(dir, mimeType) {
if (typeof(mimeType) === "string") {
mimeType = [mimeType];
@@ -292,11 +557,7 @@ var OCdialogs = {
filename: entry.name,
date: OC.mtime2date(entry.mtime)
});
- if (entry.mimetype === "httpd/unix-directory") {
- $li.find('img').attr('src', OC.imagePath('core', 'filetypes/folder.png'));
- } else {
- $li.find('img').attr('src', OC.Router.generate('core_ajax_preview', {x:32, y:32, file:escapeHTML(dir+'/'+entry.name)}) );
- }
+ $li.find('img').attr('src', entry.mimetype_icon);
self.$filelist.append($li);
});
diff --git a/core/js/placeholder.js b/core/js/placeholder.js
index d63730547d7..ee2a8ce84c4 100644
--- a/core/js/placeholder.js
+++ b/core/js/placeholder.js
@@ -36,10 +36,21 @@
*
* <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">T</div>
*
+ * You may also call it like this, to have a different background, than the seed:
+ *
+ * $('#albumart').placeholder('The Album Title', 'Album Title');
+ *
+ * Resulting in:
+ *
+ * <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">A</div>
+ *
*/
(function ($) {
- $.fn.placeholder = function(seed) {
+ $.fn.placeholder = function(seed, text) {
+ // set optional argument "text" to value of "seed" if undefined
+ text = text || seed;
+
var hash = md5(seed),
maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16),
hue = parseInt(hash, 16) / maxRange * 256,
@@ -56,7 +67,7 @@
this.css('font-size', (height * 0.55) + 'px');
if(seed !== null && seed.length) {
- this.html(seed[0].toUpperCase());
+ this.html(text[0].toUpperCase());
}
};
}(jQuery));
diff --git a/core/js/share.js b/core/js/share.js
index 27c16f38b92..82f5da0baea 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -174,10 +174,10 @@ OC.Share={
var allowPublicUploadStatus = false;
$.each(data.shares, function(key, value) {
- if (allowPublicUploadStatus) {
+ if (value.share_type === OC.Share.SHARE_TYPE_LINK) {
+ allowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;
return true;
}
- allowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;
});
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Share with')+'" />';
@@ -233,6 +233,7 @@ OC.Share={
// } else {
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: OC.Share.itemShares }, function(result) {
if (result.status == 'success' && result.data.length > 0) {
+ $( "#shareWith" ).autocomplete( "option", "autoFocus", true );
response(result.data);
} else {
// Suggest sharing via email if valid email address
@@ -240,6 +241,7 @@ OC.Share={
// if (pattern.test(search.term)) {
// response([{label: t('core', 'Share via email:')+' '+search.term, value: {shareType: OC.Share.SHARE_TYPE_EMAIL, shareWith: search.term}}]);
// } else {
+ $( "#shareWith" ).autocomplete( "option", "autoFocus", false );
response([t('core', 'No people found')]);
// }
}
@@ -423,7 +425,7 @@ OC.Share={
dateFormat : 'dd-mm-yy'
});
}
-}
+};
$(document).ready(function() {
@@ -481,7 +483,7 @@ $(document).ready(function() {
if (!$('.cruds', this).is(':visible')) {
$('a', this).hide();
if (!$('input[name="edit"]', this).is(':checked')) {
- $('input:[type=checkbox]', this).hide();
+ $('input[type="checkbox"]', this).hide();
$('label', this).hide();
}
} else {
@@ -512,7 +514,7 @@ $(document).ready(function() {
$(document).on('change', '#dropdown .permissions', function() {
if ($(this).attr('name') == 'edit') {
- var li = $(this).parent().parent()
+ var li = $(this).parent().parent();
var checkboxes = $('.permissions', li);
var checked = $(this).is(':checked');
// Check/uncheck Create, Update, and Delete checkboxes if Edit is checked/unck
@@ -601,7 +603,18 @@ $(document).ready(function() {
if (!$('#showPassword').is(':checked') ) {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
- OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', OC.PERMISSION_READ);
+ var allowPublicUpload = $('#sharingDialogAllowPublicUpload').is(':checked');
+ var permissions = 0;
+
+ // Calculate permissions
+ if (allowPublicUpload) {
+ permissions = OC.PERMISSION_UPDATE + OC.PERMISSION_CREATE + OC.PERMISSION_READ;
+ } else {
+ permissions = OC.PERMISSION_READ;
+ }
+
+
+ OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, '', permissions);
} else {
$('#linkPassText').focus();
}
diff --git a/core/l10n/ach.php b/core/l10n/ach.php
index 25f1137e8cd..2cbbaa45ca7 100644
--- a/core/l10n/ach.php
+++ b/core/l10n/ach.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/core/l10n/af_ZA.php b/core/l10n/af_ZA.php
index 41447055609..6a0bbc53ac9 100644
--- a/core/l10n/af_ZA.php
+++ b/core/l10n/af_ZA.php
@@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Password" => "Wagwoord",
"Use the following link to reset your password: {link}" => "Gebruik die volgende skakel om jou wagwoord te herstel: {link}",
"You will receive a link to reset your password via Email." => "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel.",
diff --git a/core/l10n/ar.php b/core/l10n/ar.php
index 17c3ab293c6..f61014e19e1 100644
--- a/core/l10n/ar.php
+++ b/core/l10n/ar.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "نعم",
"No" => "لا",
"Ok" => "موافق",
+"_{count} file conflict_::_{count} file conflicts_" => array("","","","","",""),
+"Cancel" => "الغاء",
"The object type is not specified." => "نوع العنصر غير محدد.",
"Error" => "خطأ",
"The app name is not specified." => "اسم التطبيق غير محدد.",
@@ -82,6 +84,8 @@ $TRANSLATIONS = array(
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "حصل خطأ في عملية التحديث, يرجى ارسال تقرير بهذه المشكلة الى <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>.",
"The update was successful. Redirecting you to ownCloud now." => "تم التحديث بنجاح , يتم اعادة توجيهك الان الى Owncloud",
"Use the following link to reset your password: {link}" => "استخدم هذه الوصلة لاسترجاع كلمة السر: {link}",
+"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "وصلة تحديث كلمة المرور بعثت الى بريدك الالكتروني.<br> اذا لم تستقبل البريد خلال فترة زمنية قصيره, ابحث في سلة مهملات بريدك.",
+"Request failed!<br>Did you make sure your email/username was right?" => "الطلب رفض! <br> هل انت متأكد أن الاسم/العنوان البريدي صحيح؟",
"You will receive a link to reset your password via Email." => "سوف نرسل لك بريد يحتوي على وصلة لتجديد كلمة السر.",
"Username" => "إسم المستخدم",
"Request reset" => "طلب تعديل",
diff --git a/core/l10n/be.php b/core/l10n/be.php
index 83f0d99a2e4..2481806bcb9 100644
--- a/core/l10n/be.php
+++ b/core/l10n/be.php
@@ -4,6 +4,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("","","",""),
"_%n day ago_::_%n days ago_" => array("","","",""),
"_%n month ago_::_%n months ago_" => array("","","",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","","",""),
"Advanced" => "Дасведчаны",
"Finish setup" => "Завяршыць ўстаноўку."
);
diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php
index 8afe42f206b..4f5ae5993f4 100644
--- a/core/l10n/bg_BG.php
+++ b/core/l10n/bg_BG.php
@@ -34,6 +34,8 @@ $TRANSLATIONS = array(
"Yes" => "Да",
"No" => "Не",
"Ok" => "Добре",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Отказ",
"Error" => "Грешка",
"Share" => "Споделяне",
"Share with" => "Споделено с",
diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php
index 5e65d681ec2..3b4b990ac28 100644
--- a/core/l10n/bn_BD.php
+++ b/core/l10n/bn_BD.php
@@ -42,6 +42,8 @@ $TRANSLATIONS = array(
"Yes" => "হ্যাঁ",
"No" => "না",
"Ok" => "তথাস্তু",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "বাতির",
"The object type is not specified." => "অবজেক্টের ধরণটি সুনির্দিষ্ট নয়।",
"Error" => "সমস্যা",
"The app name is not specified." => "অ্যাপের নামটি সুনির্দিষ্ট নয়।",
diff --git a/core/l10n/bs.php b/core/l10n/bs.php
index 885518f9136..ee8196e9741 100644
--- a/core/l10n/bs.php
+++ b/core/l10n/bs.php
@@ -4,6 +4,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("","",""),
"_%n day ago_::_%n days ago_" => array("","",""),
"_%n month ago_::_%n months ago_" => array("","",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
"Share" => "Podijeli",
"Add" => "Dodaj"
);
diff --git a/core/l10n/ca.php b/core/l10n/ca.php
index 76973490125..938d668b362 100644
--- a/core/l10n/ca.php
+++ b/core/l10n/ca.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Error en afegir %s als preferits.",
"No categories selected for deletion." => "No hi ha categories per eliminar.",
"Error removing %s from favorites." => "Error en eliminar %s dels preferits.",
+"No image or file provided" => "No s'han proporcionat imatges o fitxers",
+"Unknown filetype" => "Tipus de fitxer desconegut",
+"Invalid image" => "Imatge no vàlida",
+"No temporary profile picture available, try again" => "No hi ha imatge temporal de perfil disponible, torneu a intentar-ho",
+"No crop data provided" => "No heu proporcionat dades del retall",
"Sunday" => "Diumenge",
"Monday" => "Dilluns",
"Tuesday" => "Dimarts",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "l'any passat",
"years ago" => "anys enrere",
"Choose" => "Escull",
-"Error loading file picker template" => "Error en carregar la plantilla del seleccionador de fitxers",
+"Error loading file picker template: {error}" => "Error en carregar la plantilla de càrrega de fitxers: {error}",
"Yes" => "Sí",
"No" => "No",
"Ok" => "D'acord",
+"Error loading message template: {error}" => "Error en carregar la plantilla de missatge: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflicte de fitxer","{count} conflictes de fitxer"),
+"One file conflict" => "Un fitxer en conflicte",
+"Which files do you want to keep?" => "Quin fitxer voleu conservar?",
+"If you select both versions, the copied file will have a number added to its name." => "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.",
+"Cancel" => "Cancel·la",
+"Continue" => "Continua",
+"(all selected)" => "(selecciona-ho tot)",
+"({count} selected)" => "({count} seleccionats)",
+"Error loading file exists template" => "Error en carregar la plantilla de fitxer existent",
"The object type is not specified." => "No s'ha especificat el tipus d'objecte.",
"Error" => "Error",
"The app name is not specified." => "No s'ha especificat el nom de l'aplicació.",
diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php
index 1301dae32f3..8b63079c87a 100644
--- a/core/l10n/cs_CZ.php
+++ b/core/l10n/cs_CZ.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Chyba při přidávání %s k oblíbeným.",
"No categories selected for deletion." => "Žádné kategorie nebyly vybrány ke smazání.",
"Error removing %s from favorites." => "Chyba při odebírání %s z oblíbených.",
+"No image or file provided" => "Soubor nebo obrázek nebyl zadán",
+"Unknown filetype" => "Neznámý typ souboru",
+"Invalid image" => "Chybný obrázek",
+"No temporary profile picture available, try again" => "Dočasný profilový obrázek není k dispozici, zkuste to znovu",
+"No crop data provided" => "Nebyla poskytnuta data pro oříznutí obrázku",
"Sunday" => "Neděle",
"Monday" => "Pondělí",
"Tuesday" => "Úterý",
@@ -48,10 +53,16 @@ $TRANSLATIONS = array(
"last year" => "minulý rok",
"years ago" => "před lety",
"Choose" => "Vybrat",
-"Error loading file picker template" => "Chyba při načítání šablony výběru souborů",
+"Error loading file picker template: {error}" => "Chyba při nahrávání šablony výběru souborů: {error}",
"Yes" => "Ano",
"No" => "Ne",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Chyba při nahrávání šablony zprávy: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"One file conflict" => "Jeden konflikt souboru",
+"Which files do you want to keep?" => "Které soubory chcete ponechat?",
+"Cancel" => "Zrušit",
+"Continue" => "Pokračovat",
"The object type is not specified." => "Není určen typ objektu.",
"Error" => "Chyba",
"The app name is not specified." => "Není určen název aplikace.",
diff --git a/core/l10n/cy_GB.php b/core/l10n/cy_GB.php
index 1f6c50524b3..78eb6ba9698 100644
--- a/core/l10n/cy_GB.php
+++ b/core/l10n/cy_GB.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "Ie",
"No" => "Na",
"Ok" => "Iawn",
+"_{count} file conflict_::_{count} file conflicts_" => array("","","",""),
+"Cancel" => "Diddymu",
"The object type is not specified." => "Nid yw'r math o wrthrych wedi cael ei nodi.",
"Error" => "Gwall",
"The app name is not specified." => "Nid yw enw'r pecyn wedi cael ei nodi.",
diff --git a/core/l10n/da.php b/core/l10n/da.php
index abaea4ba6a5..8938f2107fa 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -16,6 +16,8 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fejl ved tilføjelse af %s til favoritter.",
"No categories selected for deletion." => "Ingen kategorier valgt",
"Error removing %s from favorites." => "Fejl ved fjernelse af %s fra favoritter.",
+"Unknown filetype" => "Ukendt filtype",
+"Invalid image" => "Ugyldigt billede",
"Sunday" => "Søndag",
"Monday" => "Mandag",
"Tuesday" => "Tirsdag",
@@ -48,10 +50,11 @@ $TRANSLATIONS = array(
"last year" => "sidste år",
"years ago" => "år siden",
"Choose" => "Vælg",
-"Error loading file picker template" => "Fejl ved indlæsning af filvælger skabelon",
"Yes" => "Ja",
"No" => "Nej",
"Ok" => "OK",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Annuller",
"The object type is not specified." => "Objekttypen er ikke angivet.",
"Error" => "Fejl",
"The app name is not specified." => "Den app navn er ikke angivet.",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 1f205a9db5b..b5ff8826ad8 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fehler beim Hinzufügen von %s zu den Favoriten.",
"No categories selected for deletion." => "Es wurde keine Kategorien zum Löschen ausgewählt.",
"Error removing %s from favorites." => "Fehler beim Entfernen von %s von den Favoriten.",
+"No image or file provided" => "Kein Bild oder Datei zur Verfügung gestellt",
+"Unknown filetype" => "Unbekannter Dateityp",
+"Invalid image" => "Ungültiges Bild",
+"No temporary profile picture available, try again" => "Kein temporäres Profilbild verfügbar, bitte versuche es nochmal",
+"No crop data provided" => "Keine Zuschnittdaten zur Verfügung gestellt",
"Sunday" => "Sonntag",
"Monday" => "Montag",
"Tuesday" => "Dienstag",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "Letztes Jahr",
"years ago" => "Vor Jahren",
"Choose" => "Auswählen",
-"Error loading file picker template" => "Dateiauswahltemplate konnte nicht geladen werden",
+"Error loading file picker template: {error}" => "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Yes" => "Ja",
"No" => "Nein",
"Ok" => "OK",
+"Error loading message template: {error}" => "Fehler beim Laden der Nachrichtenvorlage: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} Dateikonflikt","{count} Dateikonflikte"),
+"One file conflict" => "Ein Dateikonflikt",
+"Which files do you want to keep?" => "Welche Dateien möchtest du behalten?",
+"If you select both versions, the copied file will have a number added to its name." => "Wenn du beide Versionen auswählst, erhält die kopierte Datei eine Zahl am Ende des Dateinamens.",
+"Cancel" => "Abbrechen",
+"Continue" => "Fortsetzen",
+"(all selected)" => "(Alle ausgewählt)",
+"({count} selected)" => "({count} ausgewählt)",
+"Error loading file exists template" => "Fehler beim Laden der vorhanden Dateivorlage",
"The object type is not specified." => "Der Objekttyp ist nicht angegeben.",
"Error" => "Fehler",
"The app name is not specified." => "Der App-Name ist nicht angegeben.",
diff --git a/core/l10n/de_AT.php b/core/l10n/de_AT.php
index 93c8e33f3e2..ffcdde48d47 100644
--- a/core/l10n/de_AT.php
+++ b/core/l10n/de_AT.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/de_CH.php b/core/l10n/de_CH.php
index 6e01b3e2083..1fc6f6b7e1e 100644
--- a/core/l10n/de_CH.php
+++ b/core/l10n/de_CH.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "Letztes Jahr",
"years ago" => "Vor Jahren",
"Choose" => "Auswählen",
-"Error loading file picker template" => "Es ist ein Fehler in der Vorlage des Datei-Auswählers aufgetreten.",
"Yes" => "Ja",
"No" => "Nein",
"Ok" => "OK",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Abbrechen",
"The object type is not specified." => "Der Objekttyp ist nicht angegeben.",
"Error" => "Fehler",
"The app name is not specified." => "Der App-Name ist nicht angegeben.",
diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php
index a29fc4547c6..5b9b199f416 100644
--- a/core/l10n/de_DE.php
+++ b/core/l10n/de_DE.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fehler beim Hinzufügen von %s zu den Favoriten.",
"No categories selected for deletion." => "Es wurden keine Kategorien zum Löschen ausgewählt.",
"Error removing %s from favorites." => "Fehler beim Entfernen von %s von den Favoriten.",
+"No image or file provided" => "Kein Bild oder Datei zur Verfügung gestellt",
+"Unknown filetype" => "Unbekannter Dateityp",
+"Invalid image" => "Ungültiges Bild",
+"No temporary profile picture available, try again" => "Kein temporäres Profilbild verfügbar, bitte versuchen Sie es nochmal",
+"No crop data provided" => "Keine Zuschnittdaten zur Verfügung gestellt",
"Sunday" => "Sonntag",
"Monday" => "Montag",
"Tuesday" => "Dienstag",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "Letztes Jahr",
"years ago" => "Vor Jahren",
"Choose" => "Auswählen",
-"Error loading file picker template" => "Es ist ein Fehler in der Vorlage des Datei-Auswählers aufgetreten.",
+"Error loading file picker template: {error}" => "Fehler beim Laden der Dateiauswahlvorlage: {error}",
"Yes" => "Ja",
"No" => "Nein",
"Ok" => "OK",
+"Error loading message template: {error}" => "Fehler beim Laden der Nachrichtenvorlage: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} Dateikonflikt","{count} Dateikonflikte"),
+"One file conflict" => "Ein Dateikonflikt",
+"Which files do you want to keep?" => "Welche Dateien möchten Sie behalten?",
+"If you select both versions, the copied file will have a number added to its name." => "Wenn Siebeide Versionen auswählen, erhält die kopierte Datei eine Zahl am Ende des Dateinamens.",
+"Cancel" => "Abbrechen",
+"Continue" => "Fortsetzen",
+"(all selected)" => "(Alle ausgewählt)",
+"({count} selected)" => "({count} ausgewählt)",
+"Error loading file exists template" => "Fehler beim Laden der vorhanden Dateivorlage",
"The object type is not specified." => "Der Objekttyp ist nicht angegeben.",
"Error" => "Fehler",
"The app name is not specified." => "Der App-Name ist nicht angegeben.",
diff --git a/core/l10n/el.php b/core/l10n/el.php
index 54c13c89bfa..7fc58ca3527 100644
--- a/core/l10n/el.php
+++ b/core/l10n/el.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "τελευταίο χρόνο",
"years ago" => "χρόνια πριν",
"Choose" => "Επιλέξτε",
-"Error loading file picker template" => "Σφάλμα φόρτωσης αρχείου επιλογέα προτύπου",
"Yes" => "Ναι",
"No" => "Όχι",
"Ok" => "Οκ",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Άκυρο",
"The object type is not specified." => "Δεν καθορίστηκε ο τύπος του αντικειμένου.",
"Error" => "Σφάλμα",
"The app name is not specified." => "Δεν καθορίστηκε το όνομα της εφαρμογής.",
diff --git a/core/l10n/en@pirate.php b/core/l10n/en@pirate.php
index 997d1f88c46..461a44dd235 100644
--- a/core/l10n/en@pirate.php
+++ b/core/l10n/en@pirate.php
@@ -4,6 +4,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Password" => "Passcode"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/en_GB.php b/core/l10n/en_GB.php
index 3a42872366a..bb26f1469dd 100644
--- a/core/l10n/en_GB.php
+++ b/core/l10n/en_GB.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Error adding %s to favourites.",
"No categories selected for deletion." => "No categories selected for deletion.",
"Error removing %s from favorites." => "Error removing %s from favourites.",
+"No image or file provided" => "No image or file provided",
+"Unknown filetype" => "Unknown filetype",
+"Invalid image" => "Invalid image",
+"No temporary profile picture available, try again" => "No temporary profile picture available, try again",
+"No crop data provided" => "No crop data provided",
"Sunday" => "Sunday",
"Monday" => "Monday",
"Tuesday" => "Tuesday",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "last year",
"years ago" => "years ago",
"Choose" => "Choose",
-"Error loading file picker template" => "Error loading file picker template",
+"Error loading file picker template: {error}" => "Error loading file picker template: {error}",
"Yes" => "Yes",
"No" => "No",
"Ok" => "OK",
+"Error loading message template: {error}" => "Error loading message template: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} file conflict","{count} file conflicts"),
+"One file conflict" => "One file conflict",
+"Which files do you want to keep?" => "Which files do you wish to keep?",
+"If you select both versions, the copied file will have a number added to its name." => "If you select both versions, the copied file will have a number added to its name.",
+"Cancel" => "Cancel",
+"Continue" => "Continue",
+"(all selected)" => "(all selected)",
+"({count} selected)" => "({count} selected)",
+"Error loading file exists template" => "Error loading file exists template",
"The object type is not specified." => "The object type is not specified.",
"Error" => "Error",
"The app name is not specified." => "The app name is not specified.",
@@ -94,7 +109,7 @@ $TRANSLATIONS = array(
"Use the following link to reset your password: {link}" => "Use the following link to reset your password: {link}",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator .",
"Request failed!<br>Did you make sure your email/username was right?" => "Request failed!<br>Did you make sure your email/username was correct?",
-"You will receive a link to reset your password via Email." => "You will receive a link to reset your password via Email.",
+"You will receive a link to reset your password via Email." => "You will receive a link to reset your password via email.",
"Username" => "Username",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?",
"Yes, I really want to reset my password now" => "Yes, I really want to reset my password now",
diff --git a/core/l10n/eo.php b/core/l10n/eo.php
index 669f677d46d..712f97538f3 100644
--- a/core/l10n/eo.php
+++ b/core/l10n/eo.php
@@ -45,6 +45,8 @@ $TRANSLATIONS = array(
"Yes" => "Jes",
"No" => "Ne",
"Ok" => "Akcepti",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Nuligi",
"The object type is not specified." => "Ne indikiĝis tipo de la objekto.",
"Error" => "Eraro",
"The app name is not specified." => "Ne indikiĝis nomo de la aplikaĵo.",
diff --git a/core/l10n/es.php b/core/l10n/es.php
index 9e34e6f4ac3..3aa0c3f732c 100644
--- a/core/l10n/es.php
+++ b/core/l10n/es.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "el año pasado",
"years ago" => "años antes",
"Choose" => "Seleccionar",
-"Error loading file picker template" => "Error cargando la plantilla del seleccionador de archivos",
"Yes" => "Sí",
"No" => "No",
"Ok" => "Aceptar",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Cancelar",
"The object type is not specified." => "El tipo de objeto no está especificado.",
"Error" => "Error",
"The app name is not specified." => "El nombre de la aplicación no está especificado.",
diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php
index 953a30c01d5..6dce47f760d 100644
--- a/core/l10n/es_AR.php
+++ b/core/l10n/es_AR.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "el año pasado",
"years ago" => "años atrás",
"Choose" => "Elegir",
-"Error loading file picker template" => "Error al cargar la plantilla del seleccionador de archivos",
"Yes" => "Sí",
"No" => "No",
"Ok" => "Aceptar",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Cancelar",
"The object type is not specified." => "El tipo de objeto no está especificado. ",
"Error" => "Error",
"The app name is not specified." => "El nombre de la App no está especificado.",
diff --git a/core/l10n/es_MX.php b/core/l10n/es_MX.php
index 93c8e33f3e2..ffcdde48d47 100644
--- a/core/l10n/es_MX.php
+++ b/core/l10n/es_MX.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php
index 5391a144349..17ce89543a6 100644
--- a/core/l10n/et_EE.php
+++ b/core/l10n/et_EE.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Viga %s lisamisel lemmikutesse.",
"No categories selected for deletion." => "Kustutamiseks pole kategooriat valitud.",
"Error removing %s from favorites." => "Viga %s eemaldamisel lemmikutest.",
+"No image or file provided" => "Ühtegi pilti või faili ei pakutud",
+"Unknown filetype" => "Tundmatu failitüüp",
+"Invalid image" => "Vigane pilt",
+"No temporary profile picture available, try again" => "Ühtegi ajutist profiili pilti pole saadaval, proovi uuesti",
+"No crop data provided" => "Lõikeandmeid ei leitud",
"Sunday" => "Pühapäev",
"Monday" => "Esmaspäev",
"Tuesday" => "Teisipäev",
@@ -48,10 +53,13 @@ $TRANSLATIONS = array(
"last year" => "viimasel aastal",
"years ago" => "aastat tagasi",
"Choose" => "Vali",
-"Error loading file picker template" => "Viga failivalija malli laadimisel",
+"Error loading file picker template: {error}" => "Viga faili valija malli laadimisel: {error}",
"Yes" => "Jah",
"No" => "Ei",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Viga sõnumi malli laadimisel: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Loobu",
"The object type is not specified." => "Objekti tüüp pole määratletud.",
"Error" => "Viga",
"The app name is not specified." => "Rakenduse nimi ole määratletud.",
diff --git a/core/l10n/eu.php b/core/l10n/eu.php
index 1e0eb36e1e3..1e6594adf6f 100644
--- a/core/l10n/eu.php
+++ b/core/l10n/eu.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "joan den urtean",
"years ago" => "urte",
"Choose" => "Aukeratu",
-"Error loading file picker template" => "Errorea fitxategi hautatzaile txantiloiak kargatzerakoan",
"Yes" => "Bai",
"No" => "Ez",
"Ok" => "Ados",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Ezeztatu",
"The object type is not specified." => "Objetu mota ez dago zehaztuta.",
"Error" => "Errorea",
"The app name is not specified." => "App izena ez dago zehaztuta.",
diff --git a/core/l10n/fa.php b/core/l10n/fa.php
index 82356c0ab12..930a5b0dcbc 100644
--- a/core/l10n/fa.php
+++ b/core/l10n/fa.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "سال قبل",
"years ago" => "سال‌های قبل",
"Choose" => "انتخاب کردن",
-"Error loading file picker template" => "خطا در بارگذاری قالب انتخاب کننده فایل",
"Yes" => "بله",
"No" => "نه",
"Ok" => "قبول",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "منصرف شدن",
"The object type is not specified." => "نوع شی تعیین نشده است.",
"Error" => "خطا",
"The app name is not specified." => "نام برنامه تعیین نشده است.",
diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php
index 25f5f466ef9..cf215159c39 100644
--- a/core/l10n/fi_FI.php
+++ b/core/l10n/fi_FI.php
@@ -14,6 +14,9 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Virhe lisätessä kohdetta %s suosikkeihin.",
"No categories selected for deletion." => "Luokkia ei valittu poistettavaksi.",
"Error removing %s from favorites." => "Virhe poistaessa kohdetta %s suosikeista.",
+"Unknown filetype" => "Tuntematon tiedostotyyppi",
+"Invalid image" => "Virhellinen kuva",
+"No temporary profile picture available, try again" => "Väliaikaista profiilikuvaa ei ole käytettävissä, yritä uudelleen",
"Sunday" => "sunnuntai",
"Monday" => "maanantai",
"Tuesday" => "tiistai",
@@ -49,6 +52,11 @@ $TRANSLATIONS = array(
"Yes" => "Kyllä",
"No" => "Ei",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Peru",
+"Continue" => "Jatka",
+"(all selected)" => "(kaikki valittu)",
+"({count} selected)" => "({count} valittu)",
"Error" => "Virhe",
"The app name is not specified." => "Sovelluksen nimeä ei ole määritelty.",
"The required file {file} is not installed!" => "Vaadittua tiedostoa {file} ei ole asennettu!",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index 0f338a09340..e7cb75e53f0 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Erreur lors de l'ajout de %s aux favoris.",
"No categories selected for deletion." => "Pas de catégorie sélectionnée pour la suppression.",
"Error removing %s from favorites." => "Erreur lors de la suppression de %s des favoris.",
+"No image or file provided" => "Aucune image ou fichier fourni",
+"Unknown filetype" => "Type de fichier inconnu",
+"Invalid image" => "Image invalide",
+"No temporary profile picture available, try again" => "Aucune image temporaire disponible pour le profil. Essayez à nouveau.",
+"No crop data provided" => "Aucune donnée de culture fournie",
"Sunday" => "Dimanche",
"Monday" => "Lundi",
"Tuesday" => "Mardi",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "l'année dernière",
"years ago" => "il y a plusieurs années",
"Choose" => "Choisir",
-"Error loading file picker template" => "Erreur de chargement du modèle du sélecteur de fichier",
+"Error loading file picker template: {error}" => "Erreur de chargement du modèle de sélectionneur de fichiers : {error}",
"Yes" => "Oui",
"No" => "Non",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Erreur de chargement du modèle de message : {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} fichier en conflit","{count} fichiers en conflit"),
+"One file conflict" => "Un conflit de fichier",
+"Which files do you want to keep?" => "Quels fichiers désirez-vous garder ?",
+"If you select both versions, the copied file will have a number added to its name." => "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.",
+"Cancel" => "Annuler",
+"Continue" => "Poursuivre",
+"(all selected)" => "(tous sélectionnés)",
+"({count} selected)" => "({count} sélectionnés)",
+"Error loading file exists template" => "Erreur de chargement du modèle de fichier existant",
"The object type is not specified." => "Le type d'objet n'est pas spécifié.",
"Error" => "Erreur",
"The app name is not specified." => "Le nom de l'application n'est pas spécifié.",
diff --git a/core/l10n/gl.php b/core/l10n/gl.php
index 663d769ee98..e3be94537e5 100644
--- a/core/l10n/gl.php
+++ b/core/l10n/gl.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Produciuse un erro ao engadir %s aos favoritos.",
"No categories selected for deletion." => "Non se seleccionaron categorías para eliminación.",
"Error removing %s from favorites." => "Produciuse un erro ao eliminar %s dos favoritos.",
+"No image or file provided" => "Non forneceu ningunha imaxe ou ficheiro",
+"Unknown filetype" => "Tipo de ficheiro descoñecido",
+"Invalid image" => "Imaxe incorrecta",
+"No temporary profile picture available, try again" => "Non hai unha imaxe temporal de perfil dispoñíbel, volva tentalo",
+"No crop data provided" => "Non indicou como recortar",
"Sunday" => "Domingo",
"Monday" => "Luns",
"Tuesday" => "Martes",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "último ano",
"years ago" => "anos atrás",
"Choose" => "Escoller",
-"Error loading file picker template" => "Produciuse un erro ao cargar o modelo do selector de ficheiros",
+"Error loading file picker template: {error}" => "Produciuse un erro ao cargar o modelo do selector: {error}",
"Yes" => "Si",
"No" => "Non",
"Ok" => "Aceptar",
+"Error loading message template: {error}" => "Produciuse un erro ao cargar o modelo da mensaxe: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflito de ficheiro","{count} conflitos de ficheiros"),
+"One file conflict" => "Un conflito de ficheiro",
+"Which files do you want to keep?" => "Que ficheiros quere conservar?",
+"If you select both versions, the copied file will have a number added to its name." => "Se selecciona ambas versións, o ficheiro copiado terá un número engadido ao nome.",
+"Cancel" => "Cancelar",
+"Continue" => "Continuar",
+"(all selected)" => "(todo o seleccionado)",
+"({count} selected)" => "({count} seleccionados)",
+"Error loading file exists template" => "Produciuse un erro ao cargar o modelo de ficheiro existente",
"The object type is not specified." => "Non se especificou o tipo de obxecto.",
"Error" => "Erro",
"The app name is not specified." => "Non se especificou o nome do aplicativo.",
diff --git a/core/l10n/he.php b/core/l10n/he.php
index d5d83fea330..704755da07f 100644
--- a/core/l10n/he.php
+++ b/core/l10n/he.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "שנה שעברה",
"years ago" => "שנים",
"Choose" => "בחירה",
-"Error loading file picker template" => "שגיאה בטעינת תבנית בחירת הקבצים",
"Yes" => "כן",
"No" => "לא",
"Ok" => "בסדר",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "ביטול",
"The object type is not specified." => "סוג הפריט לא צוין.",
"Error" => "שגיאה",
"The app name is not specified." => "שם היישום לא צוין.",
diff --git a/core/l10n/hi.php b/core/l10n/hi.php
index 29e67f68abf..e783ec88d17 100644
--- a/core/l10n/hi.php
+++ b/core/l10n/hi.php
@@ -27,11 +27,13 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Error" => "त्रुटि",
"Share" => "साझा करें",
"Share with" => "के साथ साझा",
"Password" => "पासवर्ड",
"Send" => "भेजें",
+"No people found" => "कोई व्यक्ति नहीं मिले ",
"Sending ..." => "भेजा जा रहा है",
"Email sent" => "ईमेल भेज दिया गया है ",
"Use the following link to reset your password: {link}" => "आगे दिये गये लिंक का उपयोग पासवर्ड बदलने के लिये किजीये: {link}",
@@ -45,6 +47,7 @@ $TRANSLATIONS = array(
"Help" => "सहयोग",
"Cloud not found" => "क्लौड नहीं मिला ",
"Add" => "डाले",
+"Security Warning" => "सुरक्षा चेतावनी ",
"Create an <strong>admin account</strong>" => "व्यवस्थापक खाता बनाएँ",
"Advanced" => "उन्नत",
"Data folder" => "डाटा फोल्डर",
diff --git a/core/l10n/hr.php b/core/l10n/hr.php
index 97fbfb8b97f..7fa81db8a21 100644
--- a/core/l10n/hr.php
+++ b/core/l10n/hr.php
@@ -37,6 +37,8 @@ $TRANSLATIONS = array(
"Yes" => "Da",
"No" => "Ne",
"Ok" => "U redu",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Odustani",
"Error" => "Greška",
"Share" => "Podijeli",
"Error while sharing" => "Greška prilikom djeljenja",
diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php
index 93f96e17847..107a5f04c05 100644
--- a/core/l10n/hu_HU.php
+++ b/core/l10n/hu_HU.php
@@ -2,6 +2,12 @@
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s megosztotta Önnel ezt: »%s«",
"group" => "csoport",
+"Turned on maintenance mode" => "A karbantartási mód bekapcsolva",
+"Turned off maintenance mode" => "A karbantartási mód kikapcsolva",
+"Updated database" => "Frissítet adatbázis",
+"Updating filecache, this may take really long..." => "A filecache frissítése folyamatban, ez a folyamat hosszabb ideig is eltarthat...",
+"Updated filecache" => "Filecache frissítve",
+"... %d%% done ..." => "... %d%% kész ...",
"Category type not provided." => "Nincs megadva a kategória típusa.",
"No category to add?" => "Nincs hozzáadandó kategória?",
"This category already exists: %s" => "Ez a kategória már létezik: %s",
@@ -10,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Nem sikerült a kedvencekhez adni ezt: %s",
"No categories selected for deletion." => "Nincs törlésre jelölt kategória",
"Error removing %s from favorites." => "Nem sikerült a kedvencekből törölni ezt: %s",
+"No image or file provided" => "Nincs kép vagy file megadva",
+"Unknown filetype" => "Ismeretlen file tipús",
+"Invalid image" => "Hibás kép",
+"No temporary profile picture available, try again" => "Az átmeneti profil kép nem elérhető, próbáld újra",
+"No crop data provided" => "Vágáshoz nincs adat megadva",
"Sunday" => "vasárnap",
"Monday" => "hétfő",
"Tuesday" => "kedd",
@@ -42,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "tavaly",
"years ago" => "több éve",
"Choose" => "Válasszon",
-"Error loading file picker template" => "Nem sikerült betölteni a fájlkiválasztó sablont",
+"Error loading file picker template: {error}" => "Nem sikerült betölteni a fájlkiválasztó sablont: {error}",
"Yes" => "Igen",
"No" => "Nem",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Nem sikerült betölteni az üzenet sablont: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"One file conflict" => "Egy file ütközik",
+"Which files do you want to keep?" => "Melyik file-okat akarod megtartani?",
+"If you select both versions, the copied file will have a number added to its name." => "Ha kiválasztod mindazokaz a verziókat, a másolt fileok neve sorszámozva lesz.",
+"Cancel" => "Mégsem",
+"Continue" => "Folytatás",
+"(all selected)" => "(all selected)",
+"({count} selected)" => "({count} kiválasztva)",
+"Error loading file exists template" => "Hiba a létező sablon betöltésekor",
"The object type is not specified." => "Az objektum típusa nincs megadva.",
"Error" => "Hiba",
"The app name is not specified." => "Az alkalmazás neve nincs megadva.",
@@ -84,6 +105,7 @@ $TRANSLATIONS = array(
"Email sent" => "Az emailt elküldtük",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "A frissítés nem sikerült. Kérem értesítse erről a problémáról az <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud közösséget</a>.",
"The update was successful. Redirecting you to ownCloud now." => "A frissítés sikeres volt. Visszairányítjuk az ownCloud szolgáltatáshoz.",
+"%s password reset" => "%s jelszó visszaállítás",
"Use the following link to reset your password: {link}" => "Használja ezt a linket a jelszó ismételt beállításához: {link}",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Emailben fog kapni egy linket, amivel új jelszót tud majd beállítani magának. <br>Ha a levél nem jött meg, holott úgy érzi, hogy már meg kellett volna érkeznie, akkor ellenőrizze a spam/levélszemét mappáját. <br>Ha ott sincsen, akkor érdeklődjön a rendszergazdánál.",
"Request failed!<br>Did you make sure your email/username was right?" => "A kérést nem sikerült teljesíteni! <br>Biztos, hogy jó emailcímet/felhasználónevet adott meg?",
diff --git a/core/l10n/hy.php b/core/l10n/hy.php
index 9965d4731b0..d2b68819c72 100644
--- a/core/l10n/hy.php
+++ b/core/l10n/hy.php
@@ -22,6 +22,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/ia.php b/core/l10n/ia.php
index 0556d5d1295..48d2588c002 100644
--- a/core/l10n/ia.php
+++ b/core/l10n/ia.php
@@ -24,6 +24,8 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Cancellar",
"Error" => "Error",
"Share" => "Compartir",
"Password" => "Contrasigno",
diff --git a/core/l10n/id.php b/core/l10n/id.php
index 0f222918c95..69993d44055 100644
--- a/core/l10n/id.php
+++ b/core/l10n/id.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "Ya",
"No" => "Tidak",
"Ok" => "Oke",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "Batal",
"The object type is not specified." => "Tipe objek tidak ditentukan.",
"Error" => "Galat",
"The app name is not specified." => "Nama aplikasi tidak ditentukan.",
diff --git a/core/l10n/is.php b/core/l10n/is.php
index 8211421cf35..729aaa4c9e6 100644
--- a/core/l10n/is.php
+++ b/core/l10n/is.php
@@ -42,6 +42,8 @@ $TRANSLATIONS = array(
"Yes" => "Já",
"No" => "Nei",
"Ok" => "Í lagi",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Hætta við",
"The object type is not specified." => "Tegund ekki tilgreind",
"Error" => "Villa",
"The app name is not specified." => "Nafn forrits ekki tilgreint",
diff --git a/core/l10n/it.php b/core/l10n/it.php
index 71f6ffdf50e..bd2fad79c87 100644
--- a/core/l10n/it.php
+++ b/core/l10n/it.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Errore durante l'aggiunta di %s ai preferiti.",
"No categories selected for deletion." => "Nessuna categoria selezionata per l'eliminazione.",
"Error removing %s from favorites." => "Errore durante la rimozione di %s dai preferiti.",
+"No image or file provided" => "Non è stata fornita alcun immagine o file",
+"Unknown filetype" => "Tipo di file sconosciuto",
+"Invalid image" => "Immagine non valida",
+"No temporary profile picture available, try again" => "Nessuna immagine di profilo provvisoria disponibile, riprova",
+"No crop data provided" => "Dati di ritaglio non forniti",
"Sunday" => "Domenica",
"Monday" => "Lunedì",
"Tuesday" => "Martedì",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "anno scorso",
"years ago" => "anni fa",
"Choose" => "Scegli",
-"Error loading file picker template" => "Errore durante il caricamento del modello del selezionatore di file",
+"Error loading file picker template: {error}" => "Errore durante il caricamento del modello del selettore file: {error}",
"Yes" => "Sì",
"No" => "No",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Errore durante il caricamento del modello di messaggio: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} file in conflitto","{count} file in conflitto"),
+"One file conflict" => "Un file in conflitto",
+"Which files do you want to keep?" => "Quali file vuoi mantenere?",
+"If you select both versions, the copied file will have a number added to its name." => "Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file copiato.",
+"Cancel" => "Annulla",
+"Continue" => "Continua",
+"(all selected)" => "(tutti i selezionati)",
+"({count} selected)" => "({count} selezionati)",
+"Error loading file exists template" => "Errore durante il caricamento del modello del file esistente",
"The object type is not specified." => "Il tipo di oggetto non è specificato.",
"Error" => "Errore",
"The app name is not specified." => "Il nome dell'applicazione non è specificato.",
diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php
index 82e4153367d..110e5b21201 100644
--- a/core/l10n/ja_JP.php
+++ b/core/l10n/ja_JP.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "お気に入りに %s を追加エラー",
"No categories selected for deletion." => "削除するカテゴリが選択されていません。",
"Error removing %s from favorites." => "お気に入りから %s の削除エラー",
+"No image or file provided" => "画像もしくはファイルが提供されていません",
+"Unknown filetype" => "不明なファイルタイプ",
+"Invalid image" => "無効な画像",
+"No temporary profile picture available, try again" => "一時的なプロファイル用画像が利用できません。もう一度試して下さい",
+"No crop data provided" => "クロップデータは提供されません",
"Sunday" => "日",
"Monday" => "月",
"Tuesday" => "火",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "一年前",
"years ago" => "年前",
"Choose" => "選択",
-"Error loading file picker template" => "ファイルピッカーのテンプレートの読み込みエラー",
+"Error loading file picker template: {error}" => "ファイル選択テンプレートの読み込みエラー: {error}",
"Yes" => "はい",
"No" => "いいえ",
"Ok" => "OK",
+"Error loading message template: {error}" => "メッセージテンプレートの読み込みエラー: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} ファイルが競合"),
+"One file conflict" => "1ファイルが競合",
+"Which files do you want to keep?" => "どちらのファイルを保持したいですか?",
+"If you select both versions, the copied file will have a number added to its name." => "両方のバージョンを選択した場合は、ファイル名の後ろに数字を追加したファイルのコピーを作成します。",
+"Cancel" => "キャンセル",
+"Continue" => "続ける",
+"(all selected)" => "(全て選択)",
+"({count} selected)" => "({count} 選択)",
+"Error loading file exists template" => "既存ファイルのテンプレートの読み込みエラー",
"The object type is not specified." => "オブジェクタイプが指定されていません。",
"Error" => "エラー",
"The app name is not specified." => "アプリ名がしていされていません。",
diff --git a/core/l10n/ka.php b/core/l10n/ka.php
index b6700f00f94..4805886c32c 100644
--- a/core/l10n/ka.php
+++ b/core/l10n/ka.php
@@ -7,6 +7,7 @@ $TRANSLATIONS = array(
"yesterday" => "გუშინ",
"_%n day ago_::_%n days ago_" => array(""),
"_%n month ago_::_%n months ago_" => array(""),
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
"Password" => "პაროლი",
"Personal" => "პერსონა",
"Users" => "მომხმარებლები",
diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php
index 15cacc8b218..e051f9ce1d2 100644
--- a/core/l10n/ka_GE.php
+++ b/core/l10n/ka_GE.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "კი",
"No" => "არა",
"Ok" => "დიახ",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "უარყოფა",
"The object type is not specified." => "ობიექტის ტიპი არ არის მითითებული.",
"Error" => "შეცდომა",
"The app name is not specified." => "აპლიკაციის სახელი არ არის მითითებული.",
diff --git a/core/l10n/km.php b/core/l10n/km.php
new file mode 100644
index 00000000000..dbedde7e637
--- /dev/null
+++ b/core/l10n/km.php
@@ -0,0 +1,9 @@
+<?php
+$TRANSLATIONS = array(
+"_%n minute ago_::_%n minutes ago_" => array(""),
+"_%n hour ago_::_%n hours ago_" => array(""),
+"_%n day ago_::_%n days ago_" => array(""),
+"_%n month ago_::_%n months ago_" => array(""),
+"_{count} file conflict_::_{count} file conflicts_" => array("")
+);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/core/l10n/kn.php b/core/l10n/kn.php
index 556cca20dac..dbedde7e637 100644
--- a/core/l10n/kn.php
+++ b/core/l10n/kn.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array(""),
"_%n hour ago_::_%n hours ago_" => array(""),
"_%n day ago_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
+"_%n month ago_::_%n months ago_" => array(""),
+"_{count} file conflict_::_{count} file conflicts_" => array("")
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/core/l10n/ko.php b/core/l10n/ko.php
index 0265f38dc07..947f5e9ee26 100644
--- a/core/l10n/ko.php
+++ b/core/l10n/ko.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "예",
"No" => "아니요",
"Ok" => "승락",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "취소",
"The object type is not specified." => "객체 유형이 지정되지 않았습니다.",
"Error" => "오류",
"The app name is not specified." => "앱 이름이 지정되지 않았습니다.",
diff --git a/core/l10n/ku_IQ.php b/core/l10n/ku_IQ.php
index 5ce6ce9c821..2feb6db2723 100644
--- a/core/l10n/ku_IQ.php
+++ b/core/l10n/ku_IQ.php
@@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Error" => "هه‌ڵه",
"Share" => "هاوبەشی کردن",
"Password" => "وشەی تێپەربو",
diff --git a/core/l10n/lb.php b/core/l10n/lb.php
index 5f4c415bed7..9e127d867c6 100644
--- a/core/l10n/lb.php
+++ b/core/l10n/lb.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "Lescht Joer",
"years ago" => "Joren hir",
"Choose" => "Auswielen",
-"Error loading file picker template" => "Feeler beim Luede vun der Virlag fir d'Fichiers-Selektioun",
"Yes" => "Jo",
"No" => "Nee",
"Ok" => "OK",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Ofbriechen",
"The object type is not specified." => "Den Typ vum Object ass net uginn.",
"Error" => "Feeler",
"The app name is not specified." => "Den Numm vun der App ass net uginn.",
diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php
index 7b0c3ed4f80..610e7aeadeb 100644
--- a/core/l10n/lt_LT.php
+++ b/core/l10n/lt_LT.php
@@ -2,6 +2,12 @@
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s pasidalino »%s« su tavimi",
"group" => "grupė",
+"Turned on maintenance mode" => "Įjungta priežiūros veiksena",
+"Turned off maintenance mode" => "Išjungta priežiūros veiksena",
+"Updated database" => "Atnaujinta duomenų bazė",
+"Updating filecache, this may take really long..." => "Atnaujinama failų talpykla, tai gali užtrukti labai ilgai...",
+"Updated filecache" => "Atnaujinta failų talpykla",
+"... %d%% done ..." => "... %d%% atlikta ...",
"Category type not provided." => "Kategorija nenurodyta.",
"No category to add?" => "Nepridėsite jokios kategorijos?",
"This category already exists: %s" => "Ši kategorija jau egzistuoja: %s",
@@ -10,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Klaida perkeliant %s į jūsų mėgstamiausius.",
"No categories selected for deletion." => "Trynimui nepasirinkta jokia kategorija.",
"Error removing %s from favorites." => "Klaida ištrinant %s iš jūsų mėgstamiausius.",
+"No image or file provided" => "Nenurodytas paveikslėlis ar failas",
+"Unknown filetype" => "Nežinomas failo tipas",
+"Invalid image" => "Netinkamas paveikslėlis",
+"No temporary profile picture available, try again" => "Nėra laikino profilio paveikslėlio, bandykite dar kartą",
+"No crop data provided" => "Nenurodyti apkirpimo duomenys",
"Sunday" => "Sekmadienis",
"Monday" => "Pirmadienis",
"Tuesday" => "Antradienis",
@@ -35,17 +46,27 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("prieš %n valandą","prieš %n valandų","prieš %n valandų"),
"today" => "šiandien",
"yesterday" => "vakar",
-"_%n day ago_::_%n days ago_" => array("","",""),
+"_%n day ago_::_%n days ago_" => array("prieš %n dieną","prieš %n dienas","prieš %n dienų"),
"last month" => "praeitą mėnesį",
"_%n month ago_::_%n months ago_" => array("prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių"),
"months ago" => "prieš mėnesį",
"last year" => "praeitais metais",
"years ago" => "prieš metus",
"Choose" => "Pasirinkite",
-"Error loading file picker template" => "Klaida pakraunant failų naršyklę",
+"Error loading file picker template: {error}" => "Klaida įkeliant failo parinkimo ruošinį: {error}",
"Yes" => "Taip",
"No" => "Ne",
"Ok" => "Gerai",
+"Error loading message template: {error}" => "Klaida įkeliant žinutės ruošinį: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} failas konfliktuoja","{count} failai konfliktuoja","{count} failų konfliktų"),
+"One file conflict" => "Vienas failo konfliktas",
+"Which files do you want to keep?" => "Kuriuos failus norite laikyti?",
+"If you select both versions, the copied file will have a number added to its name." => "Jei pasirenkate abi versijas, nukopijuotas failas turės pridėtą numerį pavadinime.",
+"Cancel" => "Atšaukti",
+"Continue" => "Tęsti",
+"(all selected)" => "(visi pažymėti)",
+"({count} selected)" => "({count} pažymėtų)",
+"Error loading file exists template" => "Klaida įkeliant esančių failų ruošinį",
"The object type is not specified." => "Objekto tipas nenurodytas.",
"Error" => "Klaida",
"The app name is not specified." => "Nenurodytas programos pavadinimas.",
@@ -61,6 +82,7 @@ $TRANSLATIONS = array(
"Share with link" => "Dalintis nuoroda",
"Password protect" => "Apsaugotas slaptažodžiu",
"Password" => "Slaptažodis",
+"Allow Public Upload" => "Leisti viešą įkėlimą",
"Email link to person" => "Nusiųsti nuorodą paštu",
"Send" => "Siųsti",
"Set expiration date" => "Nustatykite galiojimo laiką",
@@ -89,6 +111,7 @@ $TRANSLATIONS = array(
"Request failed!<br>Did you make sure your email/username was right?" => "Klaida!<br>Ar tikrai jūsų el paštas/vartotojo vardas buvo teisingi?",
"You will receive a link to reset your password via Email." => "Elektroniniu paštu gausite nuorodą, su kuria galėsite iš naujo nustatyti slaptažodį.",
"Username" => "Prisijungimo vardas",
+"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Jūsų failai yra užšifruoti. Jei neįjungėte atstatymo rakto, nebus galimybės atstatyti duomenų po slaptažodžio atstatymo. Jei nesate tikri ką daryti, prašome susisiekti su administratoriumi prie tęsiant. Ar tikrai tęsti?",
"Yes, I really want to reset my password now" => "Taip, aš tikrai noriu atnaujinti slaptažodį",
"Request reset" => "Prašyti nustatymo iš najo",
"Your password was reset" => "Jūsų slaptažodis buvo nustatytas iš naujo",
@@ -102,13 +125,16 @@ $TRANSLATIONS = array(
"Help" => "Pagalba",
"Access forbidden" => "Priėjimas draudžiamas",
"Cloud not found" => "Negalima rasti",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\nCheers!" => "Labas,\n\nInformuojame, kad %s pasidalino su Jumis %s.\nPažiūrėkite: %s\n\nLinkėjimai!",
"Edit categories" => "Redaguoti kategorijas",
"Add" => "Pridėti",
"Security Warning" => "Saugumo pranešimas",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Jūsų PHP versija yra pažeidžiama prieš NULL Byte ataką (CVE-2006-7243)",
+"Please update your PHP installation to use %s securely." => "Prašome atnaujinti savo PHP, kad saugiai naudoti %s.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Saugaus atsitiktinių skaičių generatoriaus nėra, prašome įjungti PHP OpenSSL modulį.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Be saugaus atsitiktinių skaičių generatoriaus, piktavaliai gali atspėti Jūsų slaptažodį ir pasisavinti paskyrą.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Jūsų failai yra tikriausiai prieinami per internetą nes .htaccess failas neveikia.",
+"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Kad gauti informaciją apie tai kaip tinkamai sukonfigūruoti savo serverį, prašome skaityti <a href=\"%s\" target=\"_blank\">dokumentaciją</a>.",
"Create an <strong>admin account</strong>" => "Sukurti <strong>administratoriaus paskyrą</strong>",
"Advanced" => "Išplėstiniai",
"Data folder" => "Duomenų katalogas",
@@ -129,6 +155,7 @@ $TRANSLATIONS = array(
"remember" => "prisiminti",
"Log in" => "Prisijungti",
"Alternative Logins" => "Alternatyvūs prisijungimai",
+"Hey there,<br><br>just letting you know that %s shared »%s« with you.<br><a href=\"%s\">View it!</a><br><br>Cheers!" => "Labas,<br><br>tik informuojame, kad %s pasidalino su Jumis »%s«.<br><a href=\"%s\">Peržiūrėk!</a><br><br>Linkėjimai!",
"Updating ownCloud to version %s, this may take a while." => "Atnaujinama ownCloud į %s versiją. tai gali šiek tiek užtrukti."
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/core/l10n/lv.php b/core/l10n/lv.php
index 57b9186f3cf..6bdbeaf5e20 100644
--- a/core/l10n/lv.php
+++ b/core/l10n/lv.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "gājušajā gadā",
"years ago" => "gadus atpakaļ",
"Choose" => "Izvēlieties",
-"Error loading file picker template" => "Kļūda ielādējot datņu ņēmēja veidni",
"Yes" => "Jā",
"No" => "Nē",
"Ok" => "Labi",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Atcelt",
"The object type is not specified." => "Nav norādīts objekta tips.",
"Error" => "Kļūda",
"The app name is not specified." => "Nav norādīts lietotnes nosaukums.",
diff --git a/core/l10n/mk.php b/core/l10n/mk.php
index 6a8ec50061c..1c998bb636a 100644
--- a/core/l10n/mk.php
+++ b/core/l10n/mk.php
@@ -43,6 +43,8 @@ $TRANSLATIONS = array(
"Yes" => "Да",
"No" => "Не",
"Ok" => "Во ред",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Откажи",
"The object type is not specified." => "Не е специфициран типот на објект.",
"Error" => "Грешка",
"The app name is not specified." => "Името на апликацијата не е специфицирано.",
diff --git a/core/l10n/ml_IN.php b/core/l10n/ml_IN.php
index 93c8e33f3e2..ffcdde48d47 100644
--- a/core/l10n/ml_IN.php
+++ b/core/l10n/ml_IN.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/ms_MY.php b/core/l10n/ms_MY.php
index fc3698d58d1..5aea25a3fd4 100644
--- a/core/l10n/ms_MY.php
+++ b/core/l10n/ms_MY.php
@@ -29,6 +29,8 @@ $TRANSLATIONS = array(
"Yes" => "Ya",
"No" => "Tidak",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "Batal",
"Error" => "Ralat",
"Share" => "Kongsi",
"Password" => "Kata laluan",
diff --git a/core/l10n/my_MM.php b/core/l10n/my_MM.php
index 1016ec5f512..0a07d151185 100644
--- a/core/l10n/my_MM.php
+++ b/core/l10n/my_MM.php
@@ -28,6 +28,8 @@ $TRANSLATIONS = array(
"Yes" => "ဟုတ်",
"No" => "မဟုတ်ဘူး",
"Ok" => "အိုကေ",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "ပယ်ဖျက်မည်",
"Password" => "စကားဝှက်",
"Set expiration date" => "သက်တမ်းကုန်ဆုံးမည့်ရက်သတ်မှတ်မည်",
"Expiration date" => "သက်တမ်းကုန်ဆုံးမည့်ရက်",
diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php
index 132b65daab2..01dec885574 100644
--- a/core/l10n/nb_NO.php
+++ b/core/l10n/nb_NO.php
@@ -40,6 +40,8 @@ $TRANSLATIONS = array(
"Yes" => "Ja",
"No" => "Nei",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Avbryt",
"Error" => "Feil",
"Shared" => "Delt",
"Share" => "Del",
diff --git a/core/l10n/ne.php b/core/l10n/ne.php
index 93c8e33f3e2..ffcdde48d47 100644
--- a/core/l10n/ne.php
+++ b/core/l10n/ne.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index 6d5d5dc9917..3dcdeaedec2 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -2,6 +2,12 @@
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s deelde »%s« met jou",
"group" => "groep",
+"Turned on maintenance mode" => "Onderhoudsmodus ingeschakeld",
+"Turned off maintenance mode" => "Onderhoudsmodus uitgeschakeld",
+"Updated database" => "Database bijgewerkt",
+"Updating filecache, this may take really long..." => "Bijwerken bestandscache. Dit kan even duren...",
+"Updated filecache" => "Bestandscache bijgewerkt",
+"... %d%% done ..." => "... %d%% gereed ...",
"Category type not provided." => "Categorie type niet opgegeven.",
"No category to add?" => "Geen categorie om toe te voegen?",
"This category already exists: %s" => "Deze categorie bestaat al: %s",
@@ -10,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Toevoegen van %s aan favorieten is mislukt.",
"No categories selected for deletion." => "Geen categorie geselecteerd voor verwijdering.",
"Error removing %s from favorites." => "Verwijderen %s van favorieten is mislukt.",
+"No image or file provided" => "Geen afbeelding of bestand opgegeven",
+"Unknown filetype" => "Onbekend bestandsformaat",
+"Invalid image" => "Ongeldige afbeelding",
+"No temporary profile picture available, try again" => "Geen tijdelijke profielafbeelding beschikbaar. Probeer het opnieuw",
+"No crop data provided" => "Geen bijsnijdingsgegevens opgegeven",
"Sunday" => "zondag",
"Monday" => "maandag",
"Tuesday" => "dinsdag",
@@ -42,10 +53,13 @@ $TRANSLATIONS = array(
"last year" => "vorig jaar",
"years ago" => "jaar geleden",
"Choose" => "Kies",
-"Error loading file picker template" => "Fout bij laden van bestandsselectie sjabloon",
+"Error loading file picker template: {error}" => "Fout bij laden bestandenselecteur sjabloon: {error}",
"Yes" => "Ja",
"No" => "Nee",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Fout bij laden berichtensjabloon: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Annuleer",
"The object type is not specified." => "Het object type is niet gespecificeerd.",
"Error" => "Fout",
"The app name is not specified." => "De app naam is niet gespecificeerd.",
diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php
index 6d34d6e23c3..d596605dbcd 100644
--- a/core/l10n/nn_NO.php
+++ b/core/l10n/nn_NO.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Klarte ikkje leggja til %s i favorittar.",
"No categories selected for deletion." => "Ingen kategoriar valt for sletting.",
"Error removing %s from favorites." => "Klarte ikkje fjerna %s frå favorittar.",
+"No image or file provided" => "Inga bilete eller fil gitt",
+"Unknown filetype" => "Ukjend filtype",
+"Invalid image" => "Ugyldig bilete",
+"No temporary profile picture available, try again" => "Inga midlertidig profilbilete tilgjengeleg, prøv igjen",
+"No crop data provided" => "Ingen beskjeringsdata gitt",
"Sunday" => "Søndag",
"Monday" => "Måndag",
"Tuesday" => "Tysdag",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "i fjor",
"years ago" => "år sidan",
"Choose" => "Vel",
-"Error loading file picker template" => "Klarte ikkje å lasta filveljarmalen",
+"Error loading file picker template: {error}" => "Klarte ikkje å lasta filplukkarmal: {error}",
"Yes" => "Ja",
"No" => "Nei",
"Ok" => "Greitt",
+"Error loading message template: {error}" => "Klarte ikkje å lasta meldingsmal: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} filkonflikt","{count} filkonfliktar"),
+"One file conflict" => "Éin filkonflikt",
+"Which files do you want to keep?" => "Kva filer vil du spara?",
+"If you select both versions, the copied file will have a number added to its name." => "Viss du vel begge utgåvene, vil den kopierte fila få eit tal lagt til namnet.",
+"Cancel" => "Avbryt",
+"Continue" => "Gå vidare",
+"(all selected)" => "(alle valte)",
+"({count} selected)" => "({count} valte)",
+"Error loading file exists template" => "Klarte ikkje å lasta fil-finst-mal",
"The object type is not specified." => "Objekttypen er ikkje spesifisert.",
"Error" => "Feil",
"The app name is not specified." => "Programnamnet er ikkje spesifisert.",
diff --git a/core/l10n/nqo.php b/core/l10n/nqo.php
index 556cca20dac..dbedde7e637 100644
--- a/core/l10n/nqo.php
+++ b/core/l10n/nqo.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array(""),
"_%n hour ago_::_%n hours ago_" => array(""),
"_%n day ago_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
+"_%n month ago_::_%n months ago_" => array(""),
+"_{count} file conflict_::_{count} file conflicts_" => array("")
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/core/l10n/oc.php b/core/l10n/oc.php
index 0ca3cc427a0..fd84d0b2e30 100644
--- a/core/l10n/oc.php
+++ b/core/l10n/oc.php
@@ -38,6 +38,8 @@ $TRANSLATIONS = array(
"Yes" => "Òc",
"No" => "Non",
"Ok" => "D'accòrdi",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Annula",
"Error" => "Error",
"Share" => "Parteja",
"Error while sharing" => "Error al partejar",
diff --git a/core/l10n/pa.php b/core/l10n/pa.php
new file mode 100644
index 00000000000..c8078d06c73
--- /dev/null
+++ b/core/l10n/pa.php
@@ -0,0 +1,47 @@
+<?php
+$TRANSLATIONS = array(
+"Sunday" => "ਐਤਵਾਰ",
+"Monday" => "ਸੋਮਵਾਰ",
+"Tuesday" => "ਮੰਗਲਵਾਰ",
+"Wednesday" => "ਬੁੱਧਵਾਰ",
+"Thursday" => "ਵੀਰਵਾਰ",
+"Friday" => "ਸ਼ੁੱਕਰਵਾਰ",
+"Saturday" => "ਸ਼ਨਿੱਚਰਵਾਰ",
+"January" => "ਜਨਵਰੀ",
+"February" => "ਫਰਵਰੀ",
+"March" => "ਮਾਰਚ",
+"April" => "ਅਪਰੈ",
+"May" => "ਮਈ",
+"June" => "ਜੂਨ",
+"July" => "ਜੁਲਾਈ",
+"August" => "ਅਗਸਤ",
+"September" => "ਸਤੰਬ",
+"October" => "ਅਕਤੂਬਰ",
+"November" => "ਨਵੰਬ",
+"December" => "ਦਸੰਬਰ",
+"Settings" => "ਸੈਟਿੰਗ",
+"seconds ago" => "ਸਕਿੰਟ ਪਹਿਲਾਂ",
+"_%n minute ago_::_%n minutes ago_" => array("",""),
+"_%n hour ago_::_%n hours ago_" => array("",""),
+"today" => "ਅੱਜ",
+"yesterday" => "ਕੱਲ੍ਹ",
+"_%n day ago_::_%n days ago_" => array("",""),
+"last month" => "ਪਿਛਲੇ ਮਹੀਨੇ",
+"_%n month ago_::_%n months ago_" => array("",""),
+"months ago" => "ਮਹੀਨੇ ਪਹਿਲਾਂ",
+"last year" => "ਪਿਛਲੇ ਸਾਲ",
+"years ago" => "ਸਾਲਾਂ ਪਹਿਲਾਂ",
+"Choose" => "ਚੁਣੋ",
+"Yes" => "ਹਾਂ",
+"No" => "ਨਹੀਂ",
+"Ok" => "ਠੀਕ ਹੈ",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "ਰੱਦ ਕਰੋ",
+"Error" => "ਗਲ",
+"Share" => "ਸਾਂਝਾ ਕਰੋ",
+"Password" => "ਪਾਸਵਰ",
+"Send" => "ਭੇਜੋ",
+"Username" => "ਯੂਜ਼ਰ-ਨਾਂ",
+"Security Warning" => "ਸੁਰੱਖਿਆ ਚੇਤਾਵਨੀ"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/pl.php b/core/l10n/pl.php
index 2162de0e48c..ad467fe100e 100644
--- a/core/l10n/pl.php
+++ b/core/l10n/pl.php
@@ -16,6 +16,8 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Błąd podczas dodawania %s do ulubionych.",
"No categories selected for deletion." => "Nie zaznaczono kategorii do usunięcia.",
"Error removing %s from favorites." => "Błąd podczas usuwania %s z ulubionych.",
+"Unknown filetype" => "Nieznany typ pliku",
+"Invalid image" => "Nieprawidłowe zdjęcie",
"Sunday" => "Niedziela",
"Monday" => "Poniedziałek",
"Tuesday" => "Wtorek",
@@ -48,10 +50,15 @@ $TRANSLATIONS = array(
"last year" => "w zeszłym roku",
"years ago" => "lat temu",
"Choose" => "Wybierz",
-"Error loading file picker template" => "Błąd podczas ładowania pliku wybranego szablonu",
"Yes" => "Tak",
"No" => "Nie",
"Ok" => "OK",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"),
+"One file conflict" => "Konflikt pliku",
+"Cancel" => "Anuluj",
+"Continue" => "Kontynuuj ",
+"(all selected)" => "(wszystkie zaznaczone)",
+"({count} selected)" => "({count} zaznaczonych)",
"The object type is not specified." => "Nie określono typu obiektu.",
"Error" => "Błąd",
"The app name is not specified." => "Nie określono nazwy aplikacji.",
diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php
index 7b1c7b3702c..5f8903a8ff5 100644
--- a/core/l10n/pt_BR.php
+++ b/core/l10n/pt_BR.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Erro ao adicionar %s aos favoritos.",
"No categories selected for deletion." => "Nenhuma categoria selecionada para remoção.",
"Error removing %s from favorites." => "Erro ao remover %s dos favoritos.",
+"No image or file provided" => "Nenhuma imagem ou arquivo fornecido",
+"Unknown filetype" => "Tipo de arquivo desconhecido",
+"Invalid image" => "Imagem inválida",
+"No temporary profile picture available, try again" => "Sem imagem no perfil temporário disponível, tente novamente",
+"No crop data provided" => "Nenhum dado para coleta foi fornecido",
"Sunday" => "Domingo",
"Monday" => "Segunda-feira",
"Tuesday" => "Terça-feira",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "último ano",
"years ago" => "anos atrás",
"Choose" => "Escolha",
-"Error loading file picker template" => "Template selecionador Erro ao carregar arquivo",
+"Error loading file picker template: {error}" => "Erro no seletor de carregamento modelo de arquivos: {error}",
"Yes" => "Sim",
"No" => "Não",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Erro no carregamento de modelo de mensagem: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflito de arquivo","{count} conflitos de arquivos"),
+"One file conflict" => "Conflito em um arquivo",
+"Which files do you want to keep?" => "Qual arquivo você quer manter?",
+"If you select both versions, the copied file will have a number added to its name." => "Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome.",
+"Cancel" => "Cancelar",
+"Continue" => "Continuar",
+"(all selected)" => "(todos os selecionados)",
+"({count} selected)" => "({count} selecionados)",
+"Error loading file exists template" => "Erro ao carregar arquivo existe modelo",
"The object type is not specified." => "O tipo de objeto não foi especificado.",
"Error" => "Erro",
"The app name is not specified." => "O nome do app não foi especificado.",
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 7f4e34cb555..977d8e38cb2 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -5,6 +5,8 @@ $TRANSLATIONS = array(
"Turned on maintenance mode" => "Activado o modo de manutenção",
"Turned off maintenance mode" => "Desactivado o modo de manutenção",
"Updated database" => "Base de dados actualizada",
+"Updating filecache, this may take really long..." => "A actualizar o cache dos ficheiros, poderá demorar algum tempo...",
+"Updated filecache" => "Actualizado o cache dos ficheiros",
"... %d%% done ..." => "... %d%% feito ...",
"Category type not provided." => "Tipo de categoria não fornecido",
"No category to add?" => "Nenhuma categoria para adicionar?",
@@ -14,6 +16,10 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Erro a adicionar %s aos favoritos",
"No categories selected for deletion." => "Nenhuma categoria seleccionada para eliminar.",
"Error removing %s from favorites." => "Erro a remover %s dos favoritos.",
+"No image or file provided" => "Não foi selecionado nenhum ficheiro para importar",
+"Unknown filetype" => "Ficheiro desconhecido",
+"Invalid image" => "Imagem inválida",
+"No temporary profile picture available, try again" => "Foto temporária de perfil indisponível, tente novamente",
"Sunday" => "Domingo",
"Monday" => "Segunda",
"Tuesday" => "Terça",
@@ -46,10 +52,12 @@ $TRANSLATIONS = array(
"last year" => "ano passado",
"years ago" => "anos atrás",
"Choose" => "Escolha",
-"Error loading file picker template" => "Erro ao carregar arquivo do separador modelo",
"Yes" => "Sim",
"No" => "Não",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Erro ao carregar o template: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Cancelar",
"The object type is not specified." => "O tipo de objecto não foi especificado",
"Error" => "Erro",
"The app name is not specified." => "O nome da aplicação não foi especificado",
@@ -88,6 +96,7 @@ $TRANSLATIONS = array(
"Email sent" => "E-mail enviado",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "A actualização falhou. Por favor reporte este incidente seguindo este link <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>.",
"The update was successful. Redirecting you to ownCloud now." => "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.",
+"%s password reset" => "%s reposição da password",
"Use the following link to reset your password: {link}" => "Use o seguinte endereço para repor a sua password: {link}",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "O link para fazer reset à sua password foi enviado para o seu e-mail. <br> Se não o recebeu dentro um espaço de tempo aceitável, por favor verifique a sua pasta de SPAM.<br> Se não o encontrar, por favor contacte o seu administrador.",
"Request failed!<br>Did you make sure your email/username was right?" => "O pedido falhou! <br> Tem a certeza que introduziu o seu email/username correcto?",
diff --git a/core/l10n/ro.php b/core/l10n/ro.php
index ca0e409f71f..12fbfa5f0ca 100644
--- a/core/l10n/ro.php
+++ b/core/l10n/ro.php
@@ -2,6 +2,7 @@
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s Partajat »%s« cu tine de",
"group" => "grup",
+"Updated database" => "Bază de date actualizată",
"Category type not provided." => "Tipul de categorie nu a fost specificat.",
"No category to add?" => "Nici o categorie de adăugat?",
"This category already exists: %s" => "Această categorie deja există: %s",
@@ -10,6 +11,8 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Eroare la adăugarea %s la favorite.",
"No categories selected for deletion." => "Nicio categorie selectată pentru ștergere.",
"Error removing %s from favorites." => "Eroare la ștergerea %s din favorite.",
+"Unknown filetype" => "Tip fișier necunoscut",
+"Invalid image" => "Imagine invalidă",
"Sunday" => "Duminică",
"Monday" => "Luni",
"Tuesday" => "Marți",
@@ -31,21 +34,26 @@ $TRANSLATIONS = array(
"December" => "Decembrie",
"Settings" => "Setări",
"seconds ago" => "secunde în urmă",
-"_%n minute ago_::_%n minutes ago_" => array("","",""),
-"_%n hour ago_::_%n hours ago_" => array("","",""),
+"_%n minute ago_::_%n minutes ago_" => array("acum %n minut","acum %n minute","acum %n minute"),
+"_%n hour ago_::_%n hours ago_" => array("acum %n oră","acum %n ore","acum %n ore"),
"today" => "astăzi",
"yesterday" => "ieri",
-"_%n day ago_::_%n days ago_" => array("","",""),
+"_%n day ago_::_%n days ago_" => array("acum %n zi","acum %n zile","acum %n zile"),
"last month" => "ultima lună",
"_%n month ago_::_%n months ago_" => array("","",""),
"months ago" => "luni în urmă",
"last year" => "ultimul an",
"years ago" => "ani în urmă",
"Choose" => "Alege",
-"Error loading file picker template" => "Eroare la încărcarea șablonului selectorului de fișiere",
"Yes" => "Da",
"No" => "Nu",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"One file conflict" => "Un conflict de fișier",
+"Which files do you want to keep?" => "Ce fișiere vrei să păstrezi?",
+"If you select both versions, the copied file will have a number added to its name." => "Dacă alegi ambele versiuni, fișierul copiat va avea un număr atașat la denumirea sa.",
+"Cancel" => "Anulare",
+"Continue" => "Continuă",
"The object type is not specified." => "Tipul obiectului nu este specificat.",
"Error" => "Eroare",
"The app name is not specified." => "Numele aplicației nu este specificat.",
diff --git a/core/l10n/ru.php b/core/l10n/ru.php
index d79326aff32..1b3133a1a6f 100644
--- a/core/l10n/ru.php
+++ b/core/l10n/ru.php
@@ -2,6 +2,12 @@
$TRANSLATIONS = array(
"%s shared »%s« with you" => "%s поделился »%s« с вами",
"group" => "группа",
+"Turned on maintenance mode" => "Режим отладки включён",
+"Turned off maintenance mode" => "Режим отладки отключён",
+"Updated database" => "База данных обновлена",
+"Updating filecache, this may take really long..." => "Обновление файлового кэша, это может занять некоторое время...",
+"Updated filecache" => "Обновлен файловый кэш",
+"... %d%% done ..." => "... %d%% завершено ...",
"Category type not provided." => "Тип категории не предоставлен",
"No category to add?" => "Нет категорий для добавления?",
"This category already exists: %s" => "Эта категория уже существует: %s",
@@ -10,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Ошибка добавления %s в избранное",
"No categories selected for deletion." => "Нет категорий для удаления.",
"Error removing %s from favorites." => "Ошибка удаления %s из избранного",
+"No image or file provided" => "Не указано изображение или файл",
+"Unknown filetype" => "Неизвестный тип файла",
+"Invalid image" => "Изображение повреждено",
+"No temporary profile picture available, try again" => "Временная картинка профиля недоступна, повторите попытку",
+"No crop data provided" => "Не указана информация о кадрировании",
"Sunday" => "Воскресенье",
"Monday" => "Понедельник",
"Tuesday" => "Вторник",
@@ -42,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "в прошлом году",
"years ago" => "несколько лет назад",
"Choose" => "Выбрать",
-"Error loading file picker template" => "Ошибка при загрузке файла выбора шаблона",
+"Error loading file picker template: {error}" => "Ошибка при загрузке шаблона выбора файлов: {error}",
"Yes" => "Да",
"No" => "Нет",
"Ok" => "Ок",
+"Error loading message template: {error}" => "Ошибка загрузки шаблона сообщений: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах"),
+"One file conflict" => "Один конфликт в файлах",
+"Which files do you want to keep?" => "Какие файлы вы хотите сохранить?",
+"If you select both versions, the copied file will have a number added to its name." => "При выборе обоих версий, к названию копируемого файла будет добавлена цифра",
+"Cancel" => "Отменить",
+"Continue" => "Продолжить",
+"(all selected)" => "(выбраны все)",
+"({count} selected)" => "({count} выбрано)",
+"Error loading file exists template" => "Ошибка при загрузке шаблона существующего файла",
"The object type is not specified." => "Тип объекта не указан",
"Error" => "Ошибка",
"The app name is not specified." => "Имя приложения не указано",
@@ -119,8 +140,8 @@ $TRANSLATIONS = array(
"Data folder" => "Директория с данными",
"Configure the database" => "Настройка базы данных",
"will be used" => "будет использовано",
-"Database user" => "Имя пользователя для базы данных",
-"Database password" => "Пароль для базы данных",
+"Database user" => "Пользователь базы данных",
+"Database password" => "Пароль базы данных",
"Database name" => "Название базы данных",
"Database tablespace" => "Табличое пространство базы данных",
"Database host" => "Хост базы данных",
diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php
index 184566b5f1c..2d922657ea0 100644
--- a/core/l10n/si_LK.php
+++ b/core/l10n/si_LK.php
@@ -37,6 +37,8 @@ $TRANSLATIONS = array(
"Yes" => "ඔව්",
"No" => "එපා",
"Ok" => "හරි",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "එපා",
"Error" => "දෝෂයක්",
"Share" => "බෙදා හදා ගන්න",
"Share with" => "බෙදාගන්න",
diff --git a/core/l10n/sk.php b/core/l10n/sk.php
index 7285020288b..50c3ecaf664 100644
--- a/core/l10n/sk.php
+++ b/core/l10n/sk.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("","",""),
"_%n hour ago_::_%n hours ago_" => array("","",""),
"_%n day ago_::_%n days ago_" => array("","",""),
-"_%n month ago_::_%n months ago_" => array("","","")
+"_%n month ago_::_%n months ago_" => array("","",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","","")
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php
index ed061068b4b..ac45947459b 100644
--- a/core/l10n/sk_SK.php
+++ b/core/l10n/sk_SK.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "minulý rok",
"years ago" => "pred rokmi",
"Choose" => "Výber",
-"Error loading file picker template" => "Chyba pri načítaní šablóny výberu súborov",
"Yes" => "Áno",
"No" => "Nie",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Zrušiť",
"The object type is not specified." => "Nešpecifikovaný typ objektu.",
"Error" => "Chyba",
"The app name is not specified." => "Nešpecifikované meno aplikácie.",
diff --git a/core/l10n/sl.php b/core/l10n/sl.php
index 460ca99eeab..84cd83fa2f3 100644
--- a/core/l10n/sl.php
+++ b/core/l10n/sl.php
@@ -42,10 +42,11 @@ $TRANSLATIONS = array(
"last year" => "lansko leto",
"years ago" => "let nazaj",
"Choose" => "Izbor",
-"Error loading file picker template" => "Napaka pri nalaganju predloge za izbor dokumenta",
"Yes" => "Da",
"No" => "Ne",
"Ok" => "V redu",
+"_{count} file conflict_::_{count} file conflicts_" => array("","","",""),
+"Cancel" => "Prekliči",
"The object type is not specified." => "Vrsta predmeta ni podana.",
"Error" => "Napaka",
"The app name is not specified." => "Ime programa ni podano.",
diff --git a/core/l10n/sq.php b/core/l10n/sq.php
index 6eaa909cad1..e0fde3f1297 100644
--- a/core/l10n/sq.php
+++ b/core/l10n/sq.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "vitin e shkuar",
"years ago" => "vite më parë",
"Choose" => "Zgjidh",
-"Error loading file picker template" => "Veprim i gabuar gjatë ngarkimit të modelit të zgjedhësit të skedarëve",
"Yes" => "Po",
"No" => "Jo",
"Ok" => "Në rregull",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "Anulo",
"The object type is not specified." => "Nuk është specifikuar tipi i objektit.",
"Error" => "Veprim i gabuar",
"The app name is not specified." => "Nuk është specifikuar emri i app-it.",
diff --git a/core/l10n/sr.php b/core/l10n/sr.php
index 89c13c49254..064984cca5f 100644
--- a/core/l10n/sr.php
+++ b/core/l10n/sr.php
@@ -43,6 +43,8 @@ $TRANSLATIONS = array(
"Yes" => "Да",
"No" => "Не",
"Ok" => "У реду",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Откажи",
"The object type is not specified." => "Врста објекта није подешена.",
"Error" => "Грешка",
"The app name is not specified." => "Име програма није унето.",
diff --git a/core/l10n/sr@latin.php b/core/l10n/sr@latin.php
index 62ed061ca06..8c0d28ef1c0 100644
--- a/core/l10n/sr@latin.php
+++ b/core/l10n/sr@latin.php
@@ -1,5 +1,13 @@
<?php
$TRANSLATIONS = array(
+"Category type not provided." => "Tip kategorije nije zadan.",
+"No category to add?" => "Bez dodavanja kategorije?",
+"This category already exists: %s" => "Kategorija već postoji: %s",
+"Object type not provided." => "Tip objekta nije zadan.",
+"%s ID not provided." => "%s ID nije zadan.",
+"Error adding %s to favorites." => "Greška u dodavanju %s u omiljeno.",
+"No categories selected for deletion." => "Kategorije za brisanje nisu izabrane.",
+"Error removing %s from favorites." => "Greška u uklanjanju %s iz omiljeno.",
"Sunday" => "Nedelja",
"Monday" => "Ponedeljak",
"Tuesday" => "Utorak",
@@ -20,15 +28,66 @@ $TRANSLATIONS = array(
"November" => "Novembar",
"December" => "Decembar",
"Settings" => "Podešavanja",
+"seconds ago" => "Pre par sekundi",
"_%n minute ago_::_%n minutes ago_" => array("","",""),
"_%n hour ago_::_%n hours ago_" => array("","",""),
+"today" => "Danas",
+"yesterday" => "juče",
"_%n day ago_::_%n days ago_" => array("","",""),
+"last month" => "prošlog meseca",
"_%n month ago_::_%n months ago_" => array("","",""),
+"months ago" => "pre nekoliko meseci",
+"last year" => "prošle godine",
+"years ago" => "pre nekoliko godina",
+"Choose" => "Izaberi",
+"Yes" => "Da",
+"No" => "Ne",
+"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Otkaži",
+"The object type is not specified." => "Tip objekta nije zadan.",
+"Error" => "Greška",
+"The app name is not specified." => "Ime aplikacije nije precizirano.",
+"The required file {file} is not installed!" => "Potreban fajl {file} nije instaliran!",
+"Shared" => "Deljeno",
+"Share" => "Podeli",
+"Error while sharing" => "Greška pri deljenju",
+"Error while unsharing" => "Greška u uklanjanju deljenja",
+"Error while changing permissions" => "Greška u promeni dozvola",
+"Shared with you and the group {group} by {owner}" => "{owner} podelio sa Vama i grupom {group} ",
+"Shared with you by {owner}" => "Sa vama podelio {owner}",
+"Share with" => "Podeli sa",
+"Share with link" => "Podeli koristei link",
+"Password protect" => "Zaštita lozinkom",
"Password" => "Lozinka",
+"Email link to person" => "Pošalji link e-mailom",
+"Send" => "Pošalji",
+"Set expiration date" => "Datum isteka",
+"Expiration date" => "Datum isteka",
+"Share via email:" => "Deli putem e-maila",
+"No people found" => "Nema pronađenih ljudi",
+"Resharing is not allowed" => "Dalje deljenje nije dozvoljeno",
+"Shared in {item} with {user}" => "Deljeno u {item} sa {user}",
+"Unshare" => "Ukljoni deljenje",
+"can edit" => "dozvoljene izmene",
+"access control" => "kontrola pristupa",
+"create" => "napravi",
+"update" => "ažuriranje",
+"delete" => "brisanje",
+"share" => "deljenje",
+"Password protected" => "Zaštćeno lozinkom",
+"Error unsetting expiration date" => "Greška u uklanjanju datuma isteka",
+"Error setting expiration date" => "Greška u postavljanju datuma isteka",
+"Sending ..." => "Slanje...",
+"Email sent" => "Email poslat",
+"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "Ažuriranje nije uspelo. Molimo obavestite <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud zajednicu</a>.",
+"The update was successful. Redirecting you to ownCloud now." => "Ažuriranje je uspelo. Prosleđivanje na ownCloud.",
+"Use the following link to reset your password: {link}" => "Koristite sledeći link za reset lozinke: {link}",
"You will receive a link to reset your password via Email." => "Dobićete vezu za resetovanje lozinke putem e-pošte.",
"Username" => "Korisničko ime",
"Request reset" => "Zahtevaj resetovanje",
"Your password was reset" => "Vaša lozinka je resetovana",
+"To login page" => "Na login stranicu",
"New password" => "Nova lozinka",
"Reset password" => "Resetuj lozinku",
"Personal" => "Lično",
@@ -36,18 +95,28 @@ $TRANSLATIONS = array(
"Apps" => "Programi",
"Admin" => "Adninistracija",
"Help" => "Pomoć",
+"Access forbidden" => "Pristup zabranjen",
"Cloud not found" => "Oblak nije nađen",
+"Edit categories" => "Izmena kategorija",
+"Add" => "Dodaj",
+"Security Warning" => "Bezbednosno upozorenje",
+"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Vaša PHP verzija je ranjiva na ",
+"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nije dostupan generator slučajnog broja, molimo omogućite PHP OpenSSL ekstenziju.",
+"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez generatora slučajnog broja napadač može predvideti token za reset lozinke i preuzeti Vaš nalog.",
+"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Vaši podaci i direktorijumi su verovatno dostupni sa interneta jer .htaccess fajl ne funkcioniše.",
"Create an <strong>admin account</strong>" => "Napravi <strong>administrativni nalog</strong>",
"Advanced" => "Napredno",
-"Data folder" => "Facikla podataka",
+"Data folder" => "Fascikla podataka",
"Configure the database" => "Podešavanje baze",
"will be used" => "će biti korišćen",
"Database user" => "Korisnik baze",
"Database password" => "Lozinka baze",
"Database name" => "Ime baze",
+"Database tablespace" => "tablespace baze",
"Database host" => "Domaćin baze",
"Finish setup" => "Završi podešavanje",
"Log out" => "Odjava",
+"Automatic logon rejected!" => "Automatsko logovanje odbijeno!",
"Lost your password?" => "Izgubili ste lozinku?",
"remember" => "upamti"
);
diff --git a/core/l10n/sv.php b/core/l10n/sv.php
index 9bfd91d2691..0ea3259df68 100644
--- a/core/l10n/sv.php
+++ b/core/l10n/sv.php
@@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fel vid tillägg av %s till favoriter.",
"No categories selected for deletion." => "Inga kategorier valda för radering.",
"Error removing %s from favorites." => "Fel vid borttagning av %s från favoriter.",
+"No image or file provided" => "Ingen bild eller fil har tillhandahållits",
+"Unknown filetype" => "Okänd filtyp",
+"Invalid image" => "Ogiltig bild",
+"No temporary profile picture available, try again" => "Ingen temporär profilbild finns tillgänglig, försök igen",
+"No crop data provided" => "Ingen beskärdata har angivits",
"Sunday" => "Söndag",
"Monday" => "Måndag",
"Tuesday" => "Tisdag",
@@ -48,10 +53,20 @@ $TRANSLATIONS = array(
"last year" => "förra året",
"years ago" => "år sedan",
"Choose" => "Välj",
-"Error loading file picker template" => "Fel vid inläsning av filväljarens mall",
+"Error loading file picker template: {error}" => "Fel uppstod för filväljarmall: {error}",
"Yes" => "Ja",
"No" => "Nej",
"Ok" => "Ok",
+"Error loading message template: {error}" => "Fel uppstod under inläsningen av meddelandemallen: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} filkonflikt","{count} filkonflikter"),
+"One file conflict" => "En filkonflikt",
+"Which files do you want to keep?" => "Vilken fil vill du behålla?",
+"If you select both versions, the copied file will have a number added to its name." => "Om du väljer båda versionerna kommer de kopierade filerna ha nummer tillagda i filnamnet.",
+"Cancel" => "Avbryt",
+"Continue" => "Fortsätt",
+"(all selected)" => "(Alla valda)",
+"({count} selected)" => "({count} valda)",
+"Error loading file exists template" => "Fel uppstod filmall existerar",
"The object type is not specified." => "Objekttypen är inte specificerad.",
"Error" => "Fel",
"The app name is not specified." => " Namnet på appen är inte specificerad.",
diff --git a/core/l10n/sw_KE.php b/core/l10n/sw_KE.php
index 93c8e33f3e2..ffcdde48d47 100644
--- a/core/l10n/sw_KE.php
+++ b/core/l10n/sw_KE.php
@@ -3,6 +3,7 @@ $TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
+"_%n month ago_::_%n months ago_" => array("",""),
+"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php
index a1a286275eb..43c7f451e49 100644
--- a/core/l10n/ta_LK.php
+++ b/core/l10n/ta_LK.php
@@ -43,6 +43,8 @@ $TRANSLATIONS = array(
"Yes" => "ஆம்",
"No" => "இல்லை",
"Ok" => "சரி",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "இரத்து செய்க",
"The object type is not specified." => "பொருள் வகை குறிப்பிடப்படவில்லை.",
"Error" => "வழு",
"The app name is not specified." => "செயலி பெயர் குறிப்பிடப்படவில்லை.",
diff --git a/core/l10n/te.php b/core/l10n/te.php
index 2e2bb8f8fe8..d54eeabb692 100644
--- a/core/l10n/te.php
+++ b/core/l10n/te.php
@@ -35,6 +35,8 @@ $TRANSLATIONS = array(
"Yes" => "అవును",
"No" => "కాదు",
"Ok" => "సరే",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "రద్దుచేయి",
"Error" => "పొరపాటు",
"Password" => "సంకేతపదం",
"Send" => "పంపించు",
diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php
index 90fec245c95..8eab771822d 100644
--- a/core/l10n/th_TH.php
+++ b/core/l10n/th_TH.php
@@ -43,6 +43,8 @@ $TRANSLATIONS = array(
"Yes" => "ตกลง",
"No" => "ไม่ตกลง",
"Ok" => "ตกลง",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "ยกเลิก",
"The object type is not specified." => "ชนิดของวัตถุยังไม่ได้รับการระบุ",
"Error" => "ข้อผิดพลาด",
"The app name is not specified." => "ชื่อของแอปยังไม่ได้รับการระบุชื่อ",
diff --git a/core/l10n/tr.php b/core/l10n/tr.php
index 267e07189c7..d8d9709949c 100644
--- a/core/l10n/tr.php
+++ b/core/l10n/tr.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "geçen yıl",
"years ago" => "yıl önce",
"Choose" => "seç",
-"Error loading file picker template" => "Seçici şablon dosya yüklemesinde hata",
"Yes" => "Evet",
"No" => "Hayır",
"Ok" => "Tamam",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "İptal",
"The object type is not specified." => "Nesne türü belirtilmemiş.",
"Error" => "Hata",
"The app name is not specified." => "uygulama adı belirtilmedi.",
diff --git a/core/l10n/ug.php b/core/l10n/ug.php
index e77718233de..36023cb1653 100644
--- a/core/l10n/ug.php
+++ b/core/l10n/ug.php
@@ -30,6 +30,8 @@ $TRANSLATIONS = array(
"Yes" => "ھەئە",
"No" => "ياق",
"Ok" => "جەزملە",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "ۋاز كەچ",
"Error" => "خاتالىق",
"Share" => "ھەمبەھىر",
"Share with" => "ھەمبەھىر",
diff --git a/core/l10n/uk.php b/core/l10n/uk.php
index 8e74855dd08..23207654731 100644
--- a/core/l10n/uk.php
+++ b/core/l10n/uk.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "Так",
"No" => "Ні",
"Ok" => "Ok",
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Відмінити",
"The object type is not specified." => "Не визначено тип об'єкту.",
"Error" => "Помилка",
"The app name is not specified." => "Не визначено ім'я програми.",
diff --git a/core/l10n/ur_PK.php b/core/l10n/ur_PK.php
index 96871a54d0b..fc736779122 100644
--- a/core/l10n/ur_PK.php
+++ b/core/l10n/ur_PK.php
@@ -23,6 +23,8 @@ $TRANSLATIONS = array(
"Yes" => "ہاں",
"No" => "نہیں",
"Ok" => "اوکے",
+"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Cancel" => "منسوخ کریں",
"Error" => "ایرر",
"Error while sharing" => "شئیرنگ کے دوران ایرر",
"Error while unsharing" => "شئیرنگ ختم کرنے کے دوران ایرر",
diff --git a/core/l10n/vi.php b/core/l10n/vi.php
index 1ccf03c0aaa..1c99aad9a4d 100644
--- a/core/l10n/vi.php
+++ b/core/l10n/vi.php
@@ -44,6 +44,8 @@ $TRANSLATIONS = array(
"Yes" => "Có",
"No" => "Không",
"Ok" => "Đồng ý",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "Hủy",
"The object type is not specified." => "Loại đối tượng không được chỉ định.",
"Error" => "Lỗi",
"The app name is not specified." => "Tên ứng dụng không được chỉ định.",
diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php
index ddcc902c8d7..04c4630b222 100644
--- a/core/l10n/zh_CN.php
+++ b/core/l10n/zh_CN.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "去年",
"years ago" => "年前",
"Choose" => "选择(&C)...",
-"Error loading file picker template" => "加载文件选择器模板出错",
"Yes" => "是",
"No" => "否",
"Ok" => "好",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "取消",
"The object type is not specified." => "未指定对象类型。",
"Error" => "错误",
"The app name is not specified." => "未指定应用名称。",
diff --git a/core/l10n/zh_HK.php b/core/l10n/zh_HK.php
index 8bfa1f58616..f6c4003af61 100644
--- a/core/l10n/zh_HK.php
+++ b/core/l10n/zh_HK.php
@@ -31,6 +31,8 @@ $TRANSLATIONS = array(
"Yes" => "Yes",
"No" => "No",
"Ok" => "OK",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "取消",
"Error" => "錯誤",
"Shared" => "已分享",
"Share" => "分享",
diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php
index c25a58dc8ea..759a4fdc35e 100644
--- a/core/l10n/zh_TW.php
+++ b/core/l10n/zh_TW.php
@@ -48,10 +48,11 @@ $TRANSLATIONS = array(
"last year" => "去年",
"years ago" => "幾年前",
"Choose" => "選擇",
-"Error loading file picker template" => "載入檔案選擇器樣板發生錯誤",
"Yes" => "是",
"No" => "否",
"Ok" => "好",
+"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Cancel" => "取消",
"The object type is not specified." => "未指定物件類型。",
"Error" => "錯誤",
"The app name is not specified." => "沒有指定 app 名稱。",
diff --git a/core/register_command.php b/core/register_command.php
new file mode 100644
index 00000000000..1eed347b7b5
--- /dev/null
+++ b/core/register_command.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+$application->add(new OC\Core\Command\Status);
diff --git a/core/routes.php b/core/routes.php
index d8c2d03236f..57e25c0f1f7 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -57,6 +57,23 @@ $this->create('core_lostpassword_reset_password', '/lostpassword/reset/{token}/{
->post()
->action('OC\Core\LostPassword\Controller', 'resetPassword');
+// Avatar routes
+$this->create('core_avatar_get_tmp', '/avatar/tmp')
+ ->get()
+ ->action('OC\Core\Avatar\Controller', 'getTmpAvatar');
+$this->create('core_avatar_get', '/avatar/{user}/{size}')
+ ->get()
+ ->action('OC\Core\Avatar\Controller', 'getAvatar');
+$this->create('core_avatar_post', '/avatar/')
+ ->post()
+ ->action('OC\Core\Avatar\Controller', 'postAvatar');
+$this->create('core_avatar_delete', '/avatar/')
+ ->delete()
+ ->action('OC\Core\Avatar\Controller', 'deleteAvatar');
+$this->create('core_avatar_post_cropped', '/avatar/cropped')
+ ->post()
+ ->action('OC\Core\Avatar\Controller', 'postCroppedAvatar');
+
// Not specifically routed
$this->create('app_css', '/apps/{app}/{file}')
->requirements(array('file' => '.*.css'))
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 1e0f4a75c3c..71bec11d219 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -49,6 +49,9 @@
<span id="expand" tabindex="0" role="link">
<span id="expandDisplayName"><?php p(trim($_['user_displayname']) != '' ? $_['user_displayname'] : $_['user_uid']) ?></span>
<img class="svg" src="<?php print_unescaped(image_path('', 'actions/caret.svg')); ?>" />
+ <?php if ($_['enableAvatars']): ?>
+ <div class="avatardiv"></div>
+ <?php endif; ?>
</span>
<div id="expanddiv">
<?php foreach($_['settingsnavigation'] as $entry):?>
diff --git a/core/templates/login.php b/core/templates/login.php
index ee761f0aa52..06f64d41e39 100644
--- a/core/templates/login.php
+++ b/core/templates/login.php
@@ -32,9 +32,10 @@
<?php p($l->t('Lost your password?')); ?>
</a>
<?php endif; ?>
-
+ <?php if ($_['rememberLoginAllowed'] === true) : ?>
<input type="checkbox" name="remember_login" value="1" id="remember_login" checked />
<label for="remember_login"><?php p($l->t('remember')); ?></label>
+ <?php endif; ?>
<input type="hidden" name="timezone-offset" id="timezone-offset"/>
<input type="submit" id="submit" class="login primary" value="<?php p($l->t('Log in')); ?>"/>
</fieldset>