summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
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",