summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@owncloud.com>2014-04-15 15:44:44 +0200
committerAndreas Fischer <bantu@owncloud.com>2014-04-15 15:44:44 +0200
commitbd37010f354b8bfcba578b44558fca2035df1923 (patch)
treef7c2177bd9587281b2238868cd056b12db14d367 /core
parent9cc41a24603b250b9c657edfc7007bf10e795899 (diff)
parent2eeab60378a3e22e19c4f435aa2bf65cc9da7c2a (diff)
downloadnextcloud-server-bd37010f354b8bfcba578b44558fca2035df1923.tar.gz
nextcloud-server-bd37010f354b8bfcba578b44558fca2035df1923.zip
Merge remote-tracking branch 'owncloud/master' into db-convert-tool
* owncloud/master: (61 commits) [tx-robot] updated from transifex Make email display name change translatable again Ignore jquery.multiselect.js - it's 3rdparty javascript code cleanup + fixing syntax errors Revert "close-button for share_dropdown" close-button for share_dropdown [tx-robot] updated from transifex The latest developer manual link The latest developer manual link p() and print_unescaped() also take arrays as parameter Check whether the user has permissions to add personal storage backends [tx-robot] updated from transifex Fix a wrong WebDAV Warning with self-signed-certs fix translation link upda mailinglist address fix contribute link default to GET request when no method is set to fix unittests, also set parsed json parameters on the post attribute Correctly process request parameters other than GET or POST, dont use globals in the class but inject it [tx-robot] updated from transifex use references for middleware to fix problems on 5.3 ...
Diffstat (limited to 'core')
-rw-r--r--core/ajax/share.php28
-rw-r--r--core/js/js.js6
-rw-r--r--core/js/oc-dialogs.js339
-rw-r--r--core/js/share.js20
-rw-r--r--core/js/tests/specs/coreSpec.js6
-rw-r--r--core/l10n/ast.php3
-rw-r--r--core/l10n/de.php1
-rw-r--r--core/l10n/de_DE.php1
-rw-r--r--core/l10n/fr.php1
-rw-r--r--core/l10n/it.php1
-rw-r--r--core/l10n/tr.php2
11 files changed, 228 insertions, 180 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php
index e667d9b5faa..2b41bd8a5da 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -205,6 +205,34 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
OC_JSON::success(array('data' => array('reshare' => $reshare, 'shares' => $shares)));
}
break;
+ case 'getShareWithEmail':
+ $result = array();
+ if (isset($_GET['search'])) {
+ $cm = OC::$server->getContactsManager();
+ if (!is_null($cm) && $cm->isEnabled()) {
+ $contacts = $cm->search($_GET['search'], array('FN', 'EMAIL'));
+ foreach ($contacts as $contact) {
+ if (!isset($contact['EMAIL'])) {
+ continue;
+ }
+
+ $emails = $contact['EMAIL'];
+ if (!is_array($emails)) {
+ $emails = array($emails);
+ }
+
+ foreach($emails as $email) {
+ $result[] = array(
+ 'id' => $contact['id'],
+ 'email' => $email,
+ 'displayname' => $contact['FN'],
+ );
+ }
+ }
+ }
+ }
+ OC_JSON::success(array('data' => $result));
+ break;
case 'getShareWith':
if (isset($_GET['search'])) {
$sharePolicy = OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global');
diff --git a/core/js/js.js b/core/js/js.js
index 1cbb9636dbe..f10c7163092 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -295,7 +295,7 @@ var OC={
*/
imagePath:function(app,file){
if(file.indexOf('.')==-1){//if no extension is given, use png or svg depending on browser support
- file+=(SVGSupport())?'.svg':'.png';
+ file+=(OC.Util.hasSVGSupport())?'.svg':'.png';
}
return OC.filePath(app,'img',file);
},
@@ -497,7 +497,7 @@ var OC={
throw e;
});
}
- if(!SVGSupport()) {
+ if(!OC.Util.hasSVGSupport()) {
OC.Util.replaceSVG();
}
}).show();
@@ -874,7 +874,7 @@ function initCore() {
initSessionHeartBeat();
}
- if(!SVGSupport()){ //replace all svg images with png images for browser that dont support svg
+ if(!OC.Util.hasSVGSupport()){ //replace all svg images with png images for browser that dont support svg
OC.Util.replaceSVG();
}else{
SVGSupport.checkMimeType();
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 2233b983ad4..11833f12e2d 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -19,7 +19,7 @@
*
*/
-/* global OC, t */
+/* global OC, t, alert */
/**
* this class to ease the usage of jquery dialogs
@@ -29,7 +29,7 @@ var OCdialogs = {
YES_NO_BUTTONS: 70,
OK_BUTTONS: 71,
// used to name each dialog
- dialogs_counter: 0,
+ dialogsCounter: 0,
/**
* displays alert dialog
* @param text content of dialog
@@ -54,7 +54,8 @@ var OCdialogs = {
* displays confirmation dialog
* @param text content of dialog
* @param title dialog title
- * @param callback which will be triggered when user presses YES or NO (true or false would be passed to callback respectively)
+ * @param callback which will be triggered when user presses YES or NO
+ * (true or false would be passed to callback respectively)
* @param modal make the dialog modal
*/
confirm:function(text, title, callback, modal) {
@@ -65,21 +66,20 @@ var OCdialogs = {
* @param title dialog title
* @param callback which will be triggered when user presses Choose
* @param multiselect whether it should be possible to select multiple files
- * @param mimetype_filter mimetype to filter by
+ * @param mimetypeFilter mimetype to filter by
* @param modal make the dialog modal
*/
- filepicker:function(title, callback, multiselect, mimetype_filter, modal) {
+ filepicker:function(title, callback, multiselect, mimetypeFilter, modal) {
var self = this;
$.when(this._getFilePickerTemplate()).then(function($tmpl) {
- var dialog_name = 'oc-dialog-filepicker-content';
- var dialog_id = '#' + dialog_name;
+ var dialogName = 'oc-dialog-filepicker-content';
if(self.$filePicker) {
self.$filePicker.ocdialog('close');
}
self.$filePicker = $tmpl.octemplate({
- dialog_name: dialog_name,
+ dialog_name: dialogName,
title: title
- }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetype_filter);
+ }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetypeFilter);
if (modal === undefined) {
modal = false;
@@ -87,8 +87,8 @@ var OCdialogs = {
if (multiselect === undefined) {
multiselect = false;
}
- if (mimetype_filter === undefined) {
- mimetype_filter = '';
+ if (mimetypeFilter === undefined) {
+ mimetypeFilter = '';
}
$('body').append(self.$filePicker);
@@ -133,7 +133,7 @@ var OCdialogs = {
height: 420,
modal: modal,
buttons: buttonlist,
- close: function(event, ui) {
+ close: function() {
try {
$(this).ocdialog('destroy').remove();
} catch(e) {}
@@ -156,15 +156,15 @@ var OCdialogs = {
* Displays raw dialog
* You better use a wrapper instead ...
*/
- message:function(content, title, dialog_type, buttons, callback, modal) {
+ message:function(content, title, dialogType, buttons, callback, modal) {
$.when(this._getMessageTemplate()).then(function($tmpl) {
- var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content';
- var dialog_id = '#' + dialog_name;
+ var dialogName = 'oc-dialog-' + OCdialogs.dialogsCounter + '-content';
+ var dialogId = '#' + dialogName;
var $dlg = $tmpl.octemplate({
- dialog_name: dialog_name,
+ dialog_name: dialogName,
title: title,
message: content,
- type: dialog_type
+ type: dialogType
});
if (modal === undefined) {
modal = false;
@@ -172,48 +172,48 @@ var OCdialogs = {
$('body').append($dlg);
var buttonlist = [];
switch (buttons) {
- case OCdialogs.YES_NO_BUTTONS:
- buttonlist = [{
- text: t('core', 'Yes'),
- click: function(){
- if (callback !== undefined) {
- callback(true);
- }
- $(dialog_id).ocdialog('close');
- },
- defaultButton: true
+ case OCdialogs.YES_NO_BUTTONS:
+ buttonlist = [{
+ text: t('core', 'Yes'),
+ click: function(){
+ if (callback !== undefined) {
+ callback(true);
+ }
+ $(dialogId).ocdialog('close');
},
- {
- text: t('core', 'No'),
- click: function(){
- if (callback !== undefined) {
- callback(false);
- }
- $(dialog_id).ocdialog('close');
+ defaultButton: true
+ },
+ {
+ text: t('core', 'No'),
+ click: function(){
+ if (callback !== undefined) {
+ callback(false);
}
- }];
+ $(dialogId).ocdialog('close');
+ }
+ }];
break;
- case OCdialogs.OK_BUTTON:
- var functionToCall = function() {
- $(dialog_id).ocdialog('close');
- if(callback !== undefined) {
- callback();
- }
- };
- buttonlist[0] = {
- text: t('core', 'Ok'),
- click: functionToCall,
- defaultButton: true
- };
+ case OCdialogs.OK_BUTTON:
+ var functionToCall = function() {
+ $(dialogId).ocdialog('close');
+ if(callback !== undefined) {
+ callback();
+ }
+ };
+ buttonlist[0] = {
+ text: t('core', 'Ok'),
+ click: functionToCall,
+ defaultButton: true
+ };
break;
}
- $(dialog_id).ocdialog({
+ $(dialogId).ocdialog({
closeOnEscape: true,
modal: modal,
buttons: buttonlist
});
- OCdialogs.dialogs_counter++;
+ OCdialogs.dialogsCounter++;
})
.fail(function(status, error) {
// If the method is called while navigating away from
@@ -251,7 +251,7 @@ var OCdialogs = {
image.onload = function () {
var url = crop(image);
deferred.resolve(url);
- }
+ };
};
reader.readAsArrayBuffer(file);
} else {
@@ -339,132 +339,133 @@ var OCdialogs = {
//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 dialogName = 'oc-dialog-fileexists-content';
+ var dialogId = '#' + dialogName;
+ if (this._fileexistsshown) {
+ // add conflict
+
+ var conflicts = $(dialogId+ ' .conflicts');
+ addConflict(conflicts, original, replacement);
+
+ var count = $(dialogId+ ' .conflict').length;
+ var title = n('core',
+ '{count} file conflict',
+ '{count} file conflicts',
+ count,
+ {count:count}
+ );
+ $(dialogId).parent().children('.oc-dialog-title').text(title);
+
+ //recalculate dimensions
+ $(window).trigger('resize');
- var count = $(dialog_id+ ' .conflict').length;
- var title = n('core',
- '{count} file conflict',
- '{count} file conflicts',
- count,
- {count:count}
- );
- $(dialog_id).parent().children('.oc-dialog-title').text(title);
+ } else {
+ //create dialog
+ this._fileexistsshown = true;
+ $.when(this._getFileExistsTemplate()).then(function($tmpl) {
+ var title = t('core','One file conflict');
+ var $dlg = $tmpl.octemplate({
+ dialog_name: dialogName,
+ title: title,
+ type: 'fileexists',
+
+ allnewfiles: t('core','New Files'),
+ allexistingfiles: t('core','Already existing files'),
+
+ why: t('core','Which files do you want to keep?'),
+ what: t('core','If you select both versions, the copied file will have a number added to its name.')
+ });
+ $('body').append($dlg);
- //recalculate dimensions
- $(window).trigger('resize');
+ var conflicts = $($dlg).find('.conflicts');
+ addConflict(conflicts, original, replacement);
- } else {
- //create dialog
- this._fileexistsshown = true;
- $.when(this._getFileExistsTemplate()).then(function($tmpl) {
- var title = t('core','One file conflict');
- var $dlg = $tmpl.octemplate({
- dialog_name: dialog_name,
- title: title,
- type: 'fileexists',
-
- allnewfiles: t('core','New Files'),
- allexistingfiles: t('core','Already existing files'),
-
- why: t('core','Which files do you want to keep?'),
- what: t('core','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');
+ var buttonlist = [{
+ text: t('core', 'Cancel'),
+ classes: 'cancel',
+ click: function(){
+ if ( typeof controller.onCancel !== 'undefined') {
+ controller.onCancel(data);
}
- },
- {
- text: t('core', 'Continue'),
- classes: 'continue',
- click: function(){
- if ( typeof controller.onContinue !== 'undefined') {
- controller.onContinue($(dialog_id + ' .conflict'));
- }
- $(dialog_id).ocdialog('close');
+ $(dialogId).ocdialog('close');
+ }
+ },
+ {
+ text: t('core', 'Continue'),
+ classes: 'continue',
+ click: function(){
+ if ( typeof controller.onContinue !== 'undefined') {
+ controller.onContinue($(dialogId + ' .conflict'));
}
- }];
-
- $(dialog_id).ocdialog({
- width: 500,
- closeOnEscape: true,
- modal: true,
- buttons: buttonlist,
- closeButton: null,
- close: function(event, ui) {
- self._fileexistsshown = false;
+ $(dialogId).ocdialog('close');
+ }
+ }];
+
+ $(dialogId).ocdialog({
+ width: 500,
+ closeOnEscape: true,
+ modal: true,
+ buttons: buttonlist,
+ closeButton: null,
+ close: function() {
+ self._fileexistsshown = false;
$(this).ocdialog('destroy').remove();
}
- });
+ });
- $(dialog_id).css('height','auto');
+ $(dialogId).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'));
- });
+ //add checkbox toggling actions
+ $(dialogId).find('.allnewfiles').on('click', function() {
+ var checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
+ checkboxes.prop('checked', $(this).prop('checked'));
+ });
+ $(dialogId).find('.allexistingfiles').on('click', function() {
+ var checkboxes = $(dialogId).find('.conflict .original input[type="checkbox"]');
+ checkboxes.prop('checked', $(this).prop('checked'));
+ });
+ $(dialogId).find('.conflicts').on('click', '.replacement,.original', function() {
+ var checkbox = $(this).find('input[type="checkbox"]');
+ checkbox.prop('checked', !checkbox.prop('checked'));
+ });
+ $(dialogId).find('.conflicts').on('click', '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('core','(all selected)'));
- } else if (count > 0) {
- $(dialog_id).find('.allnewfiles').prop('checked', false);
- $(dialog_id).find('.allnewfiles + .count').text(t('core','({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('core','(all selected)'));
- } else if (count > 0) {
- $(dialog_id).find('.allexistingfiles').prop('checked', false);
- $(dialog_id).find('.allexistingfiles + .count').text(t('core','({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'));
+ //update counters
+ $(dialogId).on('click', '.replacement,.allnewfiles', function() {
+ var count = $(dialogId).find('.conflict .replacement input[type="checkbox"]:checked').length;
+ if (count === $(dialogId+ ' .conflict').length) {
+ $(dialogId).find('.allnewfiles').prop('checked', true);
+ $(dialogId).find('.allnewfiles + .count').text(t('core','(all selected)'));
+ } else if (count > 0) {
+ $(dialogId).find('.allnewfiles').prop('checked', false);
+ $(dialogId).find('.allnewfiles + .count').text(t('core','({count} selected)',{count:count}));
+ } else {
+ $(dialogId).find('.allnewfiles').prop('checked', false);
+ $(dialogId).find('.allnewfiles + .count').text('');
+ }
});
- }
+ $(dialogId).on('click', '.original,.allexistingfiles', function(){
+ var count = $(dialogId).find('.conflict .original input[type="checkbox"]:checked').length;
+ if (count === $(dialogId+ ' .conflict').length) {
+ $(dialogId).find('.allexistingfiles').prop('checked', true);
+ $(dialogId).find('.allexistingfiles + .count').text(t('core','(all selected)'));
+ } else if (count > 0) {
+ $(dialogId).find('.allexistingfiles').prop('checked', false);
+ $(dialogId).find('.allexistingfiles + .count')
+ .text(t('core','({count} selected)',{count:count}));
+ } else {
+ $(dialogId).find('.allexistingfiles').prop('checked', false);
+ $(dialogId).find('.allexistingfiles + .count').text('');
+ }
+ });
+ })
+ .fail(function() {
+ alert(t('core', 'Error loading file exists template'));
+ });
+ }
//}
},
_getFilePickerTemplate: function() {
@@ -529,13 +530,6 @@ var OCdialogs = {
}
);
},
- _determineValue: function(element) {
- if ( $(element).attr('type') === 'checkbox' ) {
- return element.checked;
- } else {
- return $(element).val();
- }
- },
/**
* fills the filepicker with files
@@ -627,7 +621,6 @@ var OCdialogs = {
this.$filelist.find('.filepicker_element_selected').removeClass('filepicker_element_selected');
}
$element.toggleClass('filepicker_element_selected');
- return;
} else if ( $element.data('type') === 'dir' ) {
this._fillFilePicker(this.$filePicker.data('path') + '/' + $element.data('entryname'));
}
diff --git a/core/js/share.js b/core/js/share.js
index ef71cc7999a..5cabc614563 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -331,6 +331,26 @@ OC.Share={
.append( insert )
.appendTo( ul );
};
+ $('#email').autocomplete({
+ minLength: 1,
+ source: function (search, response) {
+ $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
+ if (result.status == 'success' && result.data.length > 0) {
+ response(result.data);
+ }
+ });
+ },
+ select: function( event, item ) {
+ $('#email').val(item.item.email);
+ return false;
+ }
+ })
+ .data("ui-autocomplete")._renderItem = function( ul, item ) {
+ return $( "<li>" )
+ .append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
+ .appendTo( ul );
+ };
+
} else {
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Resharing is not allowed')+'" style="width:90%;" disabled="disabled"/>';
html += '</div>';
diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
index 89056807788..ccd9f7a1288 100644
--- a/core/js/tests/specs/coreSpec.js
+++ b/core/js/tests/specs/coreSpec.js
@@ -147,19 +147,19 @@ describe('Core base tests', function() {
});
describe('Images', function() {
it('Generates image path with given extension', function() {
- var svgSupportStub = sinon.stub(window, 'SVGSupport', function() { return true; });
+ var svgSupportStub = sinon.stub(OC.Util, 'hasSVGSupport', function() { return true; });
expect(OC.imagePath('core', 'somefile.jpg')).toEqual(OC.webroot + '/core/img/somefile.jpg');
expect(OC.imagePath(TESTAPP, 'somefile.jpg')).toEqual(TESTAPP_ROOT + '/img/somefile.jpg');
svgSupportStub.restore();
});
it('Generates image path with svg extension when svg support exists', function() {
- var svgSupportStub = sinon.stub(window, 'SVGSupport', function() { return true; });
+ var svgSupportStub = sinon.stub(OC.Util, 'hasSVGSupport', function() { return true; });
expect(OC.imagePath('core', 'somefile')).toEqual(OC.webroot + '/core/img/somefile.svg');
expect(OC.imagePath(TESTAPP, 'somefile')).toEqual(TESTAPP_ROOT + '/img/somefile.svg');
svgSupportStub.restore();
});
it('Generates image path with png ext when svg support is not available', function() {
- var svgSupportStub = sinon.stub(window, 'SVGSupport', function() { return false; });
+ var svgSupportStub = sinon.stub(OC.Util, 'hasSVGSupport', function() { return false; });
expect(OC.imagePath('core', 'somefile')).toEqual(OC.webroot + '/core/img/somefile.png');
expect(OC.imagePath(TESTAPP, 'somefile')).toEqual(TESTAPP_ROOT + '/img/somefile.png');
svgSupportStub.restore();
diff --git a/core/l10n/ast.php b/core/l10n/ast.php
index 9ae1685347c..0fcda328dc0 100644
--- a/core/l10n/ast.php
+++ b/core/l10n/ast.php
@@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Updated database" => "Base de datos anovada",
+"Invalid image" => "Imaxe inválida",
"Sunday" => "Domingu",
"Monday" => "Llunes",
"Tuesday" => "Martes",
@@ -41,6 +42,7 @@ $TRANSLATIONS = array(
"Continue" => "Continuar",
"Shared" => "Compartíu",
"Share" => "Compartir",
+"Error" => "Fallu",
"Share link" => "Compartir enllaz",
"Password" => "Contraseña",
"Send" => "Unviar",
@@ -62,6 +64,7 @@ $TRANSLATIONS = array(
"Reset" => "Reaniciar",
"For the best results, please consider using a GNU/Linux server instead." => "Pa los meyores resultaos, por favor considera l'usu d'un sirvidor GNU/Linux nel so llugar.",
"Personal" => "Personal",
+"Users" => "Usuarios",
"Cheers!" => "¡Salú!",
"will be used" => "usaráse",
"Finishing …" => "Finando ...",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 4d8c583e164..fabf35440cb 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} Dateikonflikt","{count} Dateikonflikte"),
"One file conflict" => "Ein Dateikonflikt",
"New Files" => "Neue Dateien",
+"Already existing files" => "Die Dateien existieren bereits",
"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",
diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php
index 900d3c03172..a65714f26f6 100644
--- a/core/l10n/de_DE.php
+++ b/core/l10n/de_DE.php
@@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} Dateikonflikt","{count} Dateikonflikte"),
"One file conflict" => "Ein Dateikonflikt",
"New Files" => "Neue Dateien",
+"Already existing files" => "Die Dateien existieren bereits",
"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 Sie beide Versionen auswählen, erhält die kopierte Datei eine Zahl am Ende des Dateinamens.",
"Cancel" => "Abbrechen",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index 2475eddee8a..623f129c860 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} fichier en conflit","{count} fichiers en conflit"),
"One file conflict" => "Un conflit de fichier",
"New Files" => "Nouveaux fichiers",
+"Already existing files" => "Fichiers déjà existants",
"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",
diff --git a/core/l10n/it.php b/core/l10n/it.php
index 43e9752f5e0..98d0d5e3b0e 100644
--- a/core/l10n/it.php
+++ b/core/l10n/it.php
@@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} file in conflitto","{count} file in conflitto"),
"One file conflict" => "Un file in conflitto",
"New Files" => "File nuovi",
+"Already existing files" => "File già esistenti",
"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",
diff --git a/core/l10n/tr.php b/core/l10n/tr.php
index 7e75cdf4b01..8f9c60c157b 100644
--- a/core/l10n/tr.php
+++ b/core/l10n/tr.php
@@ -42,7 +42,7 @@ $TRANSLATIONS = array(
"months ago" => "ay önce",
"last year" => "geçen yıl",
"years ago" => "yıl önce",
-"Choose" => "seç",
+"Choose" => "Seç",
"Error loading file picker template: {error}" => "Dosya seçici şablonu yüklenirken hata: {error}",
"Yes" => "Evet",
"No" => "Hayır",