').addClass('size').text(humanFileSize(elem.size)));
tbody.append(newtr);
@@ -511,13 +511,30 @@ var createDragShadow = function(event) {
};
//options for file drag/drop
+//start&stop handlers needs some cleaning up
var dragOptions={
revert: 'invalid', revertDuration: 300,
opacity: 0.7, zIndex: 100, appendTo: 'body', cursorAt: { left: 24, top: 18 },
helper: createDragShadow, cursor: 'move',
- stop: function(event, ui) {
- $('#fileList tr td.filename').addClass('ui-draggable');
- }
+ start: function(event, ui){
+ var $selectedFiles = $('td.filename input:checkbox:checked');
+ if($selectedFiles.length > 1){
+ $selectedFiles.parents('tr').fadeTo(250, 0.2);
+ }
+ else{
+ $(this).fadeTo(250, 0.2);
+ }
+ },
+ stop: function(event, ui) {
+ var $selectedFiles = $('td.filename input:checkbox:checked');
+ if($selectedFiles.length > 1){
+ $selectedFiles.parents('tr').fadeTo(250, 1);
+ }
+ else{
+ $(this).fadeTo(250, 1);
+ }
+ $('#fileList tr td.filename').addClass('ui-draggable');
+ }
};
// sane browsers support using the distance option
if ( $('html.ie').length === 0) {
@@ -525,6 +542,7 @@ if ( $('html.ie').length === 0) {
}
var folderDropOptions={
+ hoverClass: "canDrop",
drop: function( event, ui ) {
//don't allow moving a file into a selected folder
if ($(event.target).parents('tr').find('td input:first').prop('checked') === true) {
@@ -537,14 +555,21 @@ var folderDropOptions={
$(files).each(function(i,row) {
var dir = $(row).data('dir');
var file = $(row).data('filename');
+ //slapdash selector, tracking down our original element that the clone budded off of.
+ var origin = $('tr[data-id=' + $(row).data('origin') + ']');
+ var td = origin.children('td.filename');
+ var oldBackgroundImage = td.css('background-image');
+ td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
$.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: dir+'/'+target }, function(result) {
if (result) {
if (result.status === 'success') {
//recalculate folder size
- var oldSize = $('#fileList tr[data-file="'+target+'"]').data('size');
- var newSize = oldSize + $('#fileList tr[data-file="'+file+'"]').data('size');
- $('#fileList tr[data-file="'+target+'"]').data('size', newSize);
- $('#fileList tr[data-file="'+target+'"]').find('td.filesize').text(humanFileSize(newSize));
+ var oldFile = FileList.findFileEl(target);
+ var newFile = FileList.findFileEl(file);
+ var oldSize = oldFile.data('size');
+ var newSize = oldSize + newFile.data('size');
+ oldFile.data('size', newSize);
+ oldFile.find('td.filesize').text(humanFileSize(newSize));
FileList.remove(file);
procesSelection();
@@ -557,6 +582,7 @@ var folderDropOptions={
} else {
OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error'));
}
+ td.css('background-image', oldBackgroundImage);
});
});
},
@@ -581,6 +607,11 @@ var crumbDropOptions={
$(files).each(function(i,row) {
var dir = $(row).data('dir');
var file = $(row).data('filename');
+ //slapdash selector, tracking down our original element that the clone budded off of.
+ var origin = $('tr[data-id=' + $(row).data('origin') + ']');
+ var td = origin.children('td.filename');
+ var oldBackgroundImage = td.css('background-image');
+ td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
$.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: target }, function(result) {
if (result) {
if (result.status === 'success') {
@@ -595,6 +626,7 @@ var crumbDropOptions={
} else {
OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error'));
}
+ td.css('background-image', oldBackgroundImage);
});
});
},
@@ -610,11 +642,12 @@ function procesSelection() {
return el.type==='dir';
});
if (selectedFiles.length === 0 && selectedFolders.length === 0) {
- $('#headerName>span.name').text(t('files','Name'));
+ $('#headerName span.name').text(t('files','Name'));
$('#headerSize').text(t('files','Size'));
$('#modified').text(t('files','Modified'));
$('table').removeClass('multiselect');
$('.selectedActions').hide();
+ $('#select_all').removeAttr('checked');
}
else {
$('.selectedActions').show();
@@ -660,7 +693,8 @@ function getSelectedFilesTrash(property) {
mime:$(element).data('mime'),
type:$(element).data('type'),
size:$(element).data('size'),
- etag:$(element).data('etag')
+ etag:$(element).data('etag'),
+ origin: $(element).data('id')
};
if (property) {
files.push(file[property]);
@@ -717,7 +751,7 @@ Files.lazyLoadPreview = function(path, mime, ready, width, height, etag) {
console.warn('Files.lazyLoadPreview(): missing etag argument');
}
- if ( $('#publicUploadButtonMock').length ) {
+ if ( $('#isPublic').length ) {
urlSpec.t = $('#dirToken').val();
previewURL = OC.Router.generate('core_ajax_public_preview', urlSpec);
} else {
@@ -738,7 +772,7 @@ Files.lazyLoadPreview = function(path, mime, ready, width, height, etag) {
}
function getUniqueName(name) {
- if ($('tr[data-file="'+name+'"]').exists()) {
+ if (FileList.findFileEl(name).exists()) {
var parts=name.split('.');
var extension = "";
if (parts.length > 1) {
@@ -780,3 +814,4 @@ function onClickBreadcrumb(e) {
FileList.changeDirectory(decodeURIComponent($targetDir));
}
}
+
diff --git a/apps/files/l10n/ak.php b/apps/files/l10n/ak.php
new file mode 100644
index 00000000000..f229792722d
--- /dev/null
+++ b/apps/files/l10n/ak.php
@@ -0,0 +1,7 @@
+ array("",""),
+"_%n file_::_%n files_" => array("",""),
+"_Uploading %n file_::_Uploading %n files_" => array("","")
+);
+$PLURAL_FORMS = "nplurals=2; plural=n > 1;";
diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php
index 23f8030de12..0148f5ca3c1 100644
--- a/apps/files/l10n/ar.php
+++ b/apps/files/l10n/ar.php
@@ -65,7 +65,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "إلغاء رفع الملفات",
"Nothing in here. Upload something!" => "لا يوجد شيء هنا. إرفع بعض الملفات!",
"Download" => "تحميل",
-"Unshare" => "إلغاء مشاركة",
"Delete" => "إلغاء",
"Upload too large" => "حجم الترفيع أعلى من المسموح",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم.",
diff --git a/apps/files/l10n/az.php b/apps/files/l10n/az.php
new file mode 100644
index 00000000000..70ab6572ba4
--- /dev/null
+++ b/apps/files/l10n/az.php
@@ -0,0 +1,7 @@
+ array(""),
+"_%n file_::_%n files_" => array(""),
+"_Uploading %n file_::_Uploading %n files_" => array("")
+);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files/l10n/be.php b/apps/files/l10n/be.php
index 17262d2184d..830400b93fb 100644
--- a/apps/files/l10n/be.php
+++ b/apps/files/l10n/be.php
@@ -2,6 +2,7 @@
$TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("","","",""),
"_%n file_::_%n files_" => array("","","",""),
-"_Uploading %n file_::_Uploading %n files_" => array("","","","")
+"_Uploading %n file_::_Uploading %n files_" => array("","","",""),
+"Error" => "Памылка"
);
$PLURAL_FORMS = "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php
index b24aa979e2e..f7266517e9e 100644
--- a/apps/files/l10n/bn_BD.php
+++ b/apps/files/l10n/bn_BD.php
@@ -47,7 +47,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "আপলোড বাতিল কর",
"Nothing in here. Upload something!" => "এখানে কিছুই নেই। কিছু আপলোড করুন !",
"Download" => "ডাউনলোড",
-"Unshare" => "ভাগাভাগি বাতিল ",
"Delete" => "মুছে",
"Upload too large" => "আপলোডের আকারটি অনেক বড়",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ",
diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php
index 26eb4276246..261713bc581 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -83,7 +83,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "No teniu permisos per a pujar o crear els fitxers aquí",
"Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!",
"Download" => "Baixa",
-"Unshare" => "Deixa de compartir",
"Delete" => "Esborra",
"Upload too large" => "La pujada és massa gran",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index e1a1ed53b32..44e0fdae1f1 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Název souboru nesmí obsahovat \"/\". Vyberte prosím jiné jméno.",
"The name %s is already used in the folder %s. Please choose a different name." => "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.",
"Not a valid source" => "Neplatný zdroj",
+"Server is not allowed to open URLs, please check the server configuration" => "Server není oprávněn otevírat adresy URL. Ověřte, prosím, konfiguraci serveru.",
"Error while downloading %s to %s" => "Chyba při stahování %s do %s",
"Error when creating the file" => "Chyba při vytváření souboru",
"Folder name cannot be empty." => "Název složky nemůže být prázdný.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} již existuje",
"Could not create file" => "Nepodařilo se vytvořit soubor",
"Could not create folder" => "Nepodařilo se vytvořit složku",
+"Error fetching URL" => "Chyba při načítání URL",
"Share" => "Sdílet",
"Delete permanently" => "Trvale odstranit",
"Rename" => "Přejmenovat",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Nemáte oprávnění zde nahrávat či vytvářet soubory",
"Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.",
"Download" => "Stáhnout",
-"Unshare" => "Zrušit sdílení",
"Delete" => "Smazat",
"Upload too large" => "Odesílaný soubor je příliš velký",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.",
diff --git a/apps/files/l10n/cy_GB.php b/apps/files/l10n/cy_GB.php
index b08c02d8d07..2a007761c52 100644
--- a/apps/files/l10n/cy_GB.php
+++ b/apps/files/l10n/cy_GB.php
@@ -53,7 +53,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Diddymu llwytho i fyny",
"Nothing in here. Upload something!" => "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!",
"Download" => "Llwytho i lawr",
-"Unshare" => "Dad-rannu",
"Delete" => "Dileu",
"Upload too large" => "Maint llwytho i fyny'n rhy fawr",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.",
diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php
index f5bb13e870f..9b7722444a8 100644
--- a/apps/files/l10n/da.php
+++ b/apps/files/l10n/da.php
@@ -3,6 +3,15 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Kunne ikke flytte %s - der findes allerede en fil med dette navn",
"Could not move %s" => "Kunne ikke flytte %s",
"File name cannot be empty." => "Filnavnet kan ikke stå tomt.",
+"File name must not contain \"/\". Please choose a different name." => "Filnavnet må ikke indeholde \"/\". Vælg venligst et andet navn.",
+"The name %s is already used in the folder %s. Please choose a different name." => "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.",
+"Not a valid source" => "Ikke en gyldig kilde",
+"Server is not allowed to open URLs, please check the server configuration" => "Server har ikke tilladelse til at åbne URL'er. Kontroller venligst serverens indstillinger",
+"Error while downloading %s to %s" => "Fejl ved hentning af %s til %s",
+"Error when creating the file" => "Fejl ved oprettelse af fil",
+"Folder name cannot be empty." => "Mappenavnet kan ikke være tomt.",
+"Folder name must not contain \"/\". Please choose a different name." => "Mappenavnet må ikke indeholde \"/\". Vælg venligst et andet navn.",
+"Error when creating the folder" => "Fejl ved oprettelse af mappen",
"Unable to set upload directory." => "Ude af stand til at vælge upload mappe.",
"Invalid Token" => "Ugyldig Token ",
"No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.",
@@ -23,13 +32,20 @@ $TRANSLATIONS = array(
"Upload cancelled." => "Upload afbrudt.",
"Could not get result from server." => "Kunne ikke hente resultat fra server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.",
+"URL cannot be empty" => "URL kan ikke være tom",
+"In the home folder 'Shared' is a reserved filename" => "Navnet 'Shared' er reserveret i hjemmemappen.",
"{new_name} already exists" => "{new_name} eksisterer allerede",
+"Could not create file" => "Kunne ikke oprette fil",
+"Could not create folder" => "Kunne ikke oprette mappe",
+"Error fetching URL" => "Fejl ved URL",
"Share" => "Del",
"Delete permanently" => "Slet permanent",
"Rename" => "Omdøb",
"Pending" => "Afventer",
+"Could not rename file" => "Kunne ikke omdøbe filen",
"replaced {new_name} with {old_name}" => "erstattede {new_name} med {old_name}",
"undo" => "fortryd",
+"Error deleting file." => "Fejl ved sletnign af fil.",
"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"),
"_%n file_::_%n files_" => array("%n fil","%n filer"),
"{dirs} and {files}" => "{dirs} og {files}",
@@ -38,6 +54,8 @@ $TRANSLATIONS = array(
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.",
"Your storage is full, files can not be updated or synced anymore!" => "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!",
"Your storage is almost full ({usedSpacePercent}%)" => "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ",
"Your download is being prepared. This might take some time if the files are big." => "Dit download forberedes. Dette kan tage lidt tid ved større filer.",
"Error moving file" => "Fejl ved flytning af fil",
@@ -45,6 +63,7 @@ $TRANSLATIONS = array(
"Name" => "Navn",
"Size" => "Størrelse",
"Modified" => "Ændret",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Ugyldig mappenavn. 'Shared' er reserveret.",
"%s could not be renamed" => "%s kunne ikke omdøbes",
"Upload" => "Upload",
"File handling" => "Filhåndtering",
@@ -56,15 +75,16 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "Maksimal størrelse på ZIP filer",
"Save" => "Gem",
"New" => "Ny",
+"New text file" => "Ny tekstfil",
"Text file" => "Tekstfil",
"New folder" => "Ny Mappe",
"Folder" => "Mappe",
"From link" => "Fra link",
"Deleted files" => "Slettede filer",
"Cancel upload" => "Fortryd upload",
+"You don’t have permission to upload or create files here" => "Du har ikke tilladelse til at uploade eller oprette filer her",
"Nothing in here. Upload something!" => "Her er tomt. Upload noget!",
"Download" => "Download",
-"Unshare" => "Fjern deling",
"Delete" => "Slet",
"Upload too large" => "Upload er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 4301e2d1afb..b209fee88ae 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Der Dateiname darf kein \"/\" enthalten. Bitte wähle einen anderen Namen.",
"The name %s is already used in the folder %s. Please choose a different name." => "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.",
"Not a valid source" => "Keine gültige Quelle",
+"Server is not allowed to open URLs, please check the server configuration" => "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen",
"Error while downloading %s to %s" => "Fehler beim Herunterladen von %s nach %s",
"Error when creating the file" => "Fehler beim Erstellen der Datei",
"Folder name cannot be empty." => "Der Ordner-Name darf nicht leer sein.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} existiert bereits",
"Could not create file" => "Die Datei konnte nicht erstellt werden",
"Could not create folder" => "Der Ordner konnte nicht erstellt werden",
+"Error fetching URL" => "Fehler beim Abrufen der URL",
"Share" => "Teilen",
"Delete permanently" => "Endgültig löschen",
"Rename" => "Umbenennen",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Du besitzt hier keine Berechtigung, um Dateien hochzuladen oder zu erstellen",
"Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!",
"Download" => "Herunterladen",
-"Unshare" => "Freigabe aufheben",
"Delete" => "Löschen",
"Upload too large" => "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
diff --git a/apps/files/l10n/de_CH.php b/apps/files/l10n/de_CH.php
index 144df3ee7d7..b9504293467 100644
--- a/apps/files/l10n/de_CH.php
+++ b/apps/files/l10n/de_CH.php
@@ -58,7 +58,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Upload abbrechen",
"Nothing in here. Upload something!" => "Alles leer. Laden Sie etwas hoch!",
"Download" => "Herunterladen",
-"Unshare" => "Freigabe aufheben",
"Delete" => "Löschen",
"Upload too large" => "Der Upload ist zu gross",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server.",
diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php
index 6a2e3885251..76cdce00e4c 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Der Dateiname darf kein \"/\" enthalten. Bitte wählen Sie einen anderen Namen.",
"The name %s is already used in the folder %s. Please choose a different name." => "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.",
"Not a valid source" => "Keine gültige Quelle",
+"Server is not allowed to open URLs, please check the server configuration" => "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen",
"Error while downloading %s to %s" => "Fehler beim Herunterladen von %s nach %s",
"Error when creating the file" => "Fehler beim Erstellen der Datei",
"Folder name cannot be empty." => "Der Ordner-Name darf nicht leer sein.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} existiert bereits",
"Could not create file" => "Die Datei konnte nicht erstellt werden",
"Could not create folder" => "Der Ordner konnte nicht erstellt werden",
+"Error fetching URL" => "Fehler beim Abrufen der URL",
"Share" => "Teilen",
"Delete permanently" => "Endgültig löschen",
"Rename" => "Umbenennen",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Sie besitzen hier keine Berechtigung Dateien hochzuladen oder zu erstellen",
"Nothing in here. Upload something!" => "Alles leer. Laden Sie etwas hoch!",
"Download" => "Herunterladen",
-"Unshare" => "Freigabe aufheben",
"Delete" => "Löschen",
"Upload too large" => "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index 0c0b59ea881..9efe1af7dd3 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -3,6 +3,15 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα",
"Could not move %s" => "Αδυναμία μετακίνησης του %s",
"File name cannot be empty." => "Το όνομα αρχείου δεν μπορεί να είναι κενό.",
+"File name must not contain \"/\". Please choose a different name." => "Το όνομα αρχείου δεν μπορεί να περιέχει \"/\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. ",
+"The name %s is already used in the folder %s. Please choose a different name." => "Το όνομα %s χρησιμοποιείτε ήδη στον φάκελο %s. Παρακαλώ επιλέξτε ένα άλλο όνομα.",
+"Not a valid source" => "Μη έγκυρη πηγή",
+"Server is not allowed to open URLs, please check the server configuration" => "Ο διακομιστής δεν επιτρέπεται να ανοίγει URL, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή",
+"Error while downloading %s to %s" => "Σφάλμα κατά τη λήψη του %s στο %s",
+"Error when creating the file" => "Σφάλμα κατά τη δημιουργία του αρχείου",
+"Folder name cannot be empty." => "Το όνομα φακέλου δεν μπορεί να είναι κενό.",
+"Folder name must not contain \"/\". Please choose a different name." => "Το όνομα φακέλου δεν μπορεί να περιέχει \"/\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. ",
+"Error when creating the folder" => "Σφάλμα δημιουργίας φακέλου",
"Unable to set upload directory." => "Αδυναμία ορισμού καταλόγου αποστολής.",
"Invalid Token" => "Μη έγκυρο Token",
"No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα",
@@ -14,25 +23,39 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο",
"Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος",
+"Upload failed. Could not get file info." => "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.",
+"Upload failed. Could not find uploaded file" => "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.",
"Invalid directory." => "Μη έγκυρος φάκελος.",
"Files" => "Αρχεία",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "Αδυναμία φόρτωσης {filename} καθώς είναι κατάλογος αρχείων ή έχει 0 bytes",
"Not enough space available" => "Δεν υπάρχει αρκετός διαθέσιμος χώρος",
"Upload cancelled." => "Η αποστολή ακυρώθηκε.",
+"Could not get result from server." => "Αδυναμία λήψης αποτελέσματος από το διακομιστή.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.",
+"URL cannot be empty" => "Η URL δεν πρέπει να είναι κενή",
+"In the home folder 'Shared' is a reserved filename" => "Στον αρχικό φάκελο το όνομα 'Shared' διατηρείται από το σύστημα",
"{new_name} already exists" => "{new_name} υπάρχει ήδη",
+"Could not create file" => "Αδυναμία δημιουργίας αρχείου",
+"Could not create folder" => "Αδυναμία δημιουργίας φακέλου",
+"Error fetching URL" => "Σφάλμα φόρτωσης URL",
"Share" => "Διαμοιρασμός",
"Delete permanently" => "Μόνιμη διαγραφή",
"Rename" => "Μετονομασία",
"Pending" => "Εκκρεμεί",
+"Could not rename file" => "Αδυναμία μετονομασίας αρχείου",
"replaced {new_name} with {old_name}" => "αντικαταστάθηκε το {new_name} με {old_name}",
"undo" => "αναίρεση",
+"Error deleting file." => "Σφάλμα διαγραφής αρχείου.",
"_%n folder_::_%n folders_" => array("%n φάκελος","%n φάκελοι"),
"_%n file_::_%n files_" => array("%n αρχείο","%n αρχεία"),
+"{dirs} and {files}" => "{Κατάλογοι αρχείων} και {αρχεία}",
"_Uploading %n file_::_Uploading %n files_" => array("Ανέβασμα %n αρχείου","Ανέβασμα %n αρχείων"),
"'.' is an invalid file name." => "'.' είναι μη έγκυρο όνομα αρχείου.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται.",
"Your storage is full, files can not be updated or synced anymore!" => "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!",
"Your storage is almost full ({usedSpacePercent}%)" => "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις",
"Your download is being prepared. This might take some time if the files are big." => "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος.",
"Error moving file" => "Σφάλμα κατά τη μετακίνηση του αρχείου",
@@ -40,6 +63,7 @@ $TRANSLATIONS = array(
"Name" => "Όνομα",
"Size" => "Μέγεθος",
"Modified" => "Τροποποιήθηκε",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Άκυρο όνομα φακέλου. Η χρήση του 'Shared' διατηρείται από το σύστημα.",
"%s could not be renamed" => "Αδυναμία μετονομασίας του %s",
"Upload" => "Μεταφόρτωση",
"File handling" => "Διαχείριση αρχείων",
@@ -51,15 +75,16 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "Μέγιστο μέγεθος για αρχεία ZIP",
"Save" => "Αποθήκευση",
"New" => "Νέο",
+"New text file" => "Νέο αρχείο κειμένου",
"Text file" => "Αρχείο κειμένου",
"New folder" => "Νέος κατάλογος",
"Folder" => "Φάκελος",
"From link" => "Από σύνδεσμο",
"Deleted files" => "Διαγραμμένα αρχεία",
"Cancel upload" => "Ακύρωση αποστολής",
+"You don’t have permission to upload or create files here" => "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ",
"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!",
"Download" => "Λήψη",
-"Unshare" => "Σταμάτημα διαμοιρασμού",
"Delete" => "Διαγραφή",
"Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.",
diff --git a/apps/files/l10n/en_GB.php b/apps/files/l10n/en_GB.php
index 40de4f714af..ac93aa68abb 100644
--- a/apps/files/l10n/en_GB.php
+++ b/apps/files/l10n/en_GB.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "File name must not contain \"/\". Please choose a different name.",
"The name %s is already used in the folder %s. Please choose a different name." => "The name %s is already used in the folder %s. Please choose a different name.",
"Not a valid source" => "Not a valid source",
+"Server is not allowed to open URLs, please check the server configuration" => "Server is not allowed to open URLs, please check the server configuration",
"Error while downloading %s to %s" => "Error whilst downloading %s to %s",
"Error when creating the file" => "Error when creating the file",
"Folder name cannot be empty." => "Folder name cannot be empty.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} already exists",
"Could not create file" => "Could not create file",
"Could not create folder" => "Could not create folder",
+"Error fetching URL" => "Error fetching URL",
"Share" => "Share",
"Delete permanently" => "Delete permanently",
"Rename" => "Rename",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "You don’t have permission to upload or create files here",
"Nothing in here. Upload something!" => "Nothing in here. Upload something!",
"Download" => "Download",
-"Unshare" => "Unshare",
"Delete" => "Delete",
"Upload too large" => "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "The files you are trying to upload exceed the maximum size for file uploads on this server.",
diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php
index 8f7d4de5702..81cfa03fd6d 100644
--- a/apps/files/l10n/eo.php
+++ b/apps/files/l10n/eo.php
@@ -75,7 +75,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie",
"Nothing in here. Upload something!" => "Nenio estas ĉi tie. Alŝutu ion!",
"Download" => "Elŝuti",
-"Unshare" => "Malkunhavigi",
"Delete" => "Forigi",
"Upload too large" => "Alŝuto tro larĝa",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.",
diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php
index a711e97a42d..bfbb80e8962 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "El nombre del archivo, NO puede contener el simbolo\"/\", por favor elija un nombre diferente.",
"The name %s is already used in the folder %s. Please choose a different name." => "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
"Not a valid source" => "No es un origen válido",
+"Server is not allowed to open URLs, please check the server configuration" => "El servidor no puede acceder URLs; revise la configuración del servidor.",
"Error while downloading %s to %s" => "Error mientras se descargaba %s a %s",
"Error when creating the file" => "Error al crear el archivo",
"Folder name cannot be empty." => "El nombre de la carpeta no puede estar vacío.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} ya existe",
"Could not create file" => "No se pudo crear el archivo",
"Could not create folder" => "No se pudo crear la carpeta",
+"Error fetching URL" => "Error al descargar URL.",
"Share" => "Compartir",
"Delete permanently" => "Eliminar permanentemente",
"Rename" => "Renombrar",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.",
"Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!",
"Download" => "Descargar",
-"Unshare" => "Dejar de compartir",
"Delete" => "Eliminar",
"Upload too large" => "Subida demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php
index 9f54a65af33..78d6388cd9b 100644
--- a/apps/files/l10n/es_AR.php
+++ b/apps/files/l10n/es_AR.php
@@ -59,7 +59,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Cancelar subida",
"Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!",
"Download" => "Descargar",
-"Unshare" => "Dejar de compartir",
"Delete" => "Borrar",
"Upload too large" => "El tamaño del archivo que querés subir es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ",
diff --git a/apps/files/l10n/es_CL.php b/apps/files/l10n/es_CL.php
new file mode 100644
index 00000000000..6f97758878f
--- /dev/null
+++ b/apps/files/l10n/es_CL.php
@@ -0,0 +1,9 @@
+ "Archivos",
+"_%n folder_::_%n folders_" => array("",""),
+"_%n file_::_%n files_" => array("",""),
+"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"Upload" => "Subir"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files/l10n/es_MX.php b/apps/files/l10n/es_MX.php
index 0157af093e9..0b7571defc7 100644
--- a/apps/files/l10n/es_MX.php
+++ b/apps/files/l10n/es_MX.php
@@ -1,7 +1,95 @@
array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("","")
+"Could not move %s - File with this name already exists" => "No se pudo mover %s - Ya existe un archivo con ese nombre.",
+"Could not move %s" => "No se pudo mover %s",
+"File name cannot be empty." => "El nombre de archivo no puede estar vacío.",
+"File name must not contain \"/\". Please choose a different name." => "El nombre del archivo, NO puede contener el simbolo\"/\", por favor elija un nombre diferente.",
+"The name %s is already used in the folder %s. Please choose a different name." => "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.",
+"Not a valid source" => "No es un origen válido",
+"Server is not allowed to open URLs, please check the server configuration" => "El servidor no puede acceder URLs; revise la configuración del servidor.",
+"Error while downloading %s to %s" => "Error mientras se descargaba %s a %s",
+"Error when creating the file" => "Error al crear el archivo",
+"Folder name cannot be empty." => "El nombre de la carpeta no puede estar vacío.",
+"Folder name must not contain \"/\". Please choose a different name." => "El nombre de la carpeta, NO puede contener el simbolo\"/\", por favor elija un nombre diferente.",
+"Error when creating the folder" => "Error al crear la carpeta.",
+"Unable to set upload directory." => "Incapaz de crear directorio de subida.",
+"Invalid Token" => "Token Inválido",
+"No file was uploaded. Unknown error" => "No se subió ningún archivo. Error desconocido",
+"There is no error, the file uploaded with success" => "No hubo ningún problema, el archivo se subió con éxito",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML",
+"The uploaded file was only partially uploaded" => "El archivo subido fue sólo subido parcialmente",
+"No file was uploaded" => "No se subió ningún archivo",
+"Missing a temporary folder" => "Falta la carpeta temporal",
+"Failed to write to disk" => "Falló al escribir al disco",
+"Not enough storage available" => "No hay suficiente espacio disponible",
+"Upload failed. Could not get file info." => "Actualización fallida. No se pudo obtener información del archivo.",
+"Upload failed. Could not find uploaded file" => "Actualización fallida. No se pudo encontrar el archivo subido",
+"Invalid directory." => "Directorio inválido.",
+"Files" => "Archivos",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
+"Not enough space available" => "No hay suficiente espacio disponible",
+"Upload cancelled." => "Subida cancelada.",
+"Could not get result from server." => "No se pudo obtener respuesta del servidor.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.",
+"URL cannot be empty" => "La dirección URL no puede estar vacía",
+"In the home folder 'Shared' is a reserved filename" => "En la carpeta de inicio, 'Shared' es un nombre reservado",
+"{new_name} already exists" => "{new_name} ya existe",
+"Could not create file" => "No se pudo crear el archivo",
+"Could not create folder" => "No se pudo crear la carpeta",
+"Error fetching URL" => "Error al descargar URL.",
+"Share" => "Compartir",
+"Delete permanently" => "Eliminar permanentemente",
+"Rename" => "Renombrar",
+"Pending" => "Pendiente",
+"Could not rename file" => "No se pudo renombrar el archivo",
+"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
+"undo" => "deshacer",
+"Error deleting file." => "Error borrando el archivo.",
+"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"),
+"_%n file_::_%n files_" => array("%n archivo","%n archivos"),
+"{dirs} and {files}" => "{dirs} y {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"),
+"'.' is an invalid file name." => "'.' no es un nombre de archivo válido.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ",
+"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
+"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
+"Your download is being prepared. This might take some time if the files are big." => "Su descarga está siendo preparada. Esto podría tardar algo de tiempo si los archivos son grandes.",
+"Error moving file" => "Error moviendo archivo",
+"Error" => "Error",
+"Name" => "Nombre",
+"Size" => "Tamaño",
+"Modified" => "Modificado",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Nombre de carpeta inválido. El uso de \"Shared\" esta reservado.",
+"%s could not be renamed" => "%s no pudo ser renombrado",
+"Upload" => "Subir",
+"File handling" => "Administración de archivos",
+"Maximum upload size" => "Tamaño máximo de subida",
+"max. possible: " => "máx. posible:",
+"Needed for multi-file and folder downloads." => "Necesario para multi-archivo y descarga de carpetas",
+"Enable ZIP-download" => "Habilitar descarga en ZIP",
+"0 is unlimited" => "0 significa ilimitado",
+"Maximum input size for ZIP files" => "Tamaño máximo para archivos ZIP de entrada",
+"Save" => "Guardar",
+"New" => "Nuevo",
+"New text file" => "Nuevo archivo de texto",
+"Text file" => "Archivo de texto",
+"New folder" => "Nueva carpeta",
+"Folder" => "Carpeta",
+"From link" => "Desde enlace",
+"Deleted files" => "Archivos eliminados",
+"Cancel upload" => "Cancelar subida",
+"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.",
+"Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!",
+"Download" => "Descargar",
+"Delete" => "Eliminar",
+"Upload too large" => "Subida demasido grande",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
+"Files are being scanned, please wait." => "Los archivos están siendo escaneados, por favor espere.",
+"Current scanning" => "Escaneo actual",
+"Upgrading filesystem cache..." => "Actualizando caché del sistema de archivos..."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index 4830835ead3..fd031527738 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Faili nimi ei tohi sisaldada \"/\". Palun vali mõni teine nimi.",
"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.",
"Not a valid source" => "Pole korrektne lähteallikas",
+"Server is not allowed to open URLs, please check the server configuration" => "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust",
"Error while downloading %s to %s" => "Viga %s allalaadimisel %s",
"Error when creating the file" => "Viga faili loomisel",
"Folder name cannot be empty." => "Kataloogi nimi ei saa olla tühi.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} on juba olemas",
"Could not create file" => "Ei suuda luua faili",
"Could not create folder" => "Ei suuda luua kataloogi",
+"Error fetching URL" => "Viga URL-i haaramisel",
"Share" => "Jaga",
"Delete permanently" => "Kustuta jäädavalt",
"Rename" => "Nimeta ümber",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks",
"Nothing in here. Upload something!" => "Siin pole midagi. Lae midagi üles!",
"Download" => "Lae alla",
-"Unshare" => "Lõpeta jagamine",
"Delete" => "Kustuta",
"Upload too large" => "Üleslaadimine on liiga suur",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.",
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index e68cb5acd2e..5df480c2bc3 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -3,6 +3,14 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da",
"Could not move %s" => "Ezin dira fitxategiak mugitu %s",
"File name cannot be empty." => "Fitxategi izena ezin da hutsa izan.",
+"File name must not contain \"/\". Please choose a different name." => "Fitxategi izenak ezin du \"/\" izan. Mesedez hautatu beste izen bat.",
+"The name %s is already used in the folder %s. Please choose a different name." => "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.",
+"Not a valid source" => "Ez da jatorri baliogarria",
+"Error while downloading %s to %s" => "Errorea %s %sra deskargatzerakoan",
+"Error when creating the file" => "Errorea fitxategia sortzerakoan",
+"Folder name cannot be empty." => "Karpeta izena ezin da hutsa izan.",
+"Folder name must not contain \"/\". Please choose a different name." => "Karpeta izenak ezin du \"/\" izan. Mesedez hautatu beste izen bat.",
+"Error when creating the folder" => "Errorea karpeta sortzerakoan",
"Unable to set upload directory." => "Ezin da igoera direktorioa ezarri.",
"Invalid Token" => "Lekuko baliogabea",
"No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna",
@@ -23,13 +31,19 @@ $TRANSLATIONS = array(
"Upload cancelled." => "Igoera ezeztatuta",
"Could not get result from server." => "Ezin da zerbitzaritik emaitzik lortu",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.",
+"URL cannot be empty" => "URLa ezin da hutsik egon",
+"In the home folder 'Shared' is a reserved filename" => "Etxeko (home) karpetan 'Shared' erreserbatutako fitxategi izena da",
"{new_name} already exists" => "{new_name} dagoeneko existitzen da",
+"Could not create file" => "Ezin izan da fitxategia sortu",
+"Could not create folder" => "Ezin izan da karpeta sortu",
"Share" => "Elkarbanatu",
"Delete permanently" => "Ezabatu betirako",
"Rename" => "Berrizendatu",
"Pending" => "Zain",
+"Could not rename file" => "Ezin izan da fitxategia berrizendatu",
"replaced {new_name} with {old_name}" => " {new_name}-k {old_name} ordezkatu du",
"undo" => "desegin",
+"Error deleting file." => "Errorea fitxategia ezabatzerakoan.",
"_%n folder_::_%n folders_" => array("karpeta %n","%n karpeta"),
"_%n file_::_%n files_" => array("fitxategi %n","%n fitxategi"),
"{dirs} and {files}" => "{dirs} eta {files}",
@@ -47,6 +61,7 @@ $TRANSLATIONS = array(
"Name" => "Izena",
"Size" => "Tamaina",
"Modified" => "Aldatuta",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Baliogabeako karpeta izena. 'Shared' izena erreserbatuta dago.",
"%s could not be renamed" => "%s ezin da berrizendatu",
"Upload" => "Igo",
"File handling" => "Fitxategien kudeaketa",
@@ -58,15 +73,16 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "ZIP fitxategien gehienezko tamaina",
"Save" => "Gorde",
"New" => "Berria",
+"New text file" => "Testu fitxategi berria",
"Text file" => "Testu fitxategia",
"New folder" => "Karpeta berria",
"Folder" => "Karpeta",
"From link" => "Estekatik",
"Deleted files" => "Ezabatutako fitxategiak",
"Cancel upload" => "Ezeztatu igoera",
+"You don’t have permission to upload or create files here" => "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik",
"Nothing in here. Upload something!" => "Ez dago ezer. Igo zerbait!",
"Download" => "Deskargatu",
-"Unshare" => "Ez elkarbanatu",
"Delete" => "Ezabatu",
"Upload too large" => "Igoera handiegia da",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.",
diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php
index 78311c03990..4f3257bc075 100644
--- a/apps/files/l10n/fa.php
+++ b/apps/files/l10n/fa.php
@@ -57,7 +57,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "متوقف کردن بار گذاری",
"Nothing in here. Upload something!" => "اینجا هیچ چیز نیست.",
"Download" => "دانلود",
-"Unshare" => "لغو اشتراک",
"Delete" => "حذف",
"Upload too large" => "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index e9099d0b491..d1241b77da0 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Tiedoston nimessä ei saa olla merkkiä \"/\". Valitse toinen nimi.",
"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.",
"Not a valid source" => "Virheellinen lähde",
+"Server is not allowed to open URLs, please check the server configuration" => "Palvelimen ei ole lupa avata verkko-osoitteita. Tarkista palvelimen asetukset",
"Error while downloading %s to %s" => "Virhe ladatessa kohdetta %s sijaintiin %s",
"Error when creating the file" => "Virhe tiedostoa luotaessa",
"Folder name cannot be empty." => "Kansion nimi ei voi olla tyhjä.",
@@ -32,6 +33,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} on jo olemassa",
"Could not create file" => "Tiedoston luominen epäonnistui",
"Could not create folder" => "Kansion luominen epäonnistui",
+"Error fetching URL" => "Virhe noutaessa verkko-osoitetta",
"Share" => "Jaa",
"Delete permanently" => "Poista pysyvästi",
"Rename" => "Nimeä uudelleen",
@@ -76,7 +78,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin",
"Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!",
"Download" => "Lataa",
-"Unshare" => "Peru jakaminen",
"Delete" => "Poista",
"Upload too large" => "Lähetettävä tiedosto on liian suuri",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 2ada24187bc..73b89434778 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Le nom de fichier ne doit pas contenir \"/\". Merci de choisir un nom différent.",
"The name %s is already used in the folder %s. Please choose a different name." => "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.",
"Not a valid source" => "La source n'est pas valide",
+"Server is not allowed to open URLs, please check the server configuration" => "Le serveur n'est pas autorisé à ouvrir des URL, veuillez vérifier la configuration du serveur",
"Error while downloading %s to %s" => "Erreur pendant le téléchargement de %s à %s",
"Error when creating the file" => "Erreur pendant la création du fichier",
"Folder name cannot be empty." => "Le nom de dossier ne peux pas être vide.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} existe déjà",
"Could not create file" => "Impossible de créer le fichier",
"Could not create folder" => "Impossible de créer le dossier",
+"Error fetching URL" => "Erreur d'accès à l'URL",
"Share" => "Partager",
"Delete permanently" => "Supprimer de façon définitive",
"Rename" => "Renommer",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici",
"Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)",
"Download" => "Télécharger",
-"Unshare" => "Ne plus partager",
"Delete" => "Supprimer",
"Upload too large" => "Téléversement trop volumineux",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index fba3db66da9..1d22691d93c 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "O nome do ficheiro non pode conter «/». Escolla outro nome.",
"The name %s is already used in the folder %s. Please choose a different name." => "Xa existe o nome %s no cartafol %s. Escolla outro nome.",
"Not a valid source" => "Esta orixe non é correcta",
+"Server is not allowed to open URLs, please check the server configuration" => "O servidor non ten permisos para abrir os enderezos URL, comprobe a configuración do servidor",
"Error while downloading %s to %s" => "Produciuse un erro ao descargar %s en %s",
"Error when creating the file" => "Produciuse un erro ao crear o ficheiro",
"Folder name cannot be empty." => "O nome de cartafol non pode estar baleiro.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "Xa existe un {new_name}",
"Could not create file" => "Non foi posíbel crear o ficheiro",
"Could not create folder" => "Non foi posíbel crear o cartafol",
+"Error fetching URL" => "Produciuse un erro ao obter o URL",
"Share" => "Compartir",
"Delete permanently" => "Eliminar permanentemente",
"Rename" => "Renomear",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Non ten permisos para enviar ou crear ficheiros aquí.",
"Nothing in here. Upload something!" => "Aquí non hai nada. Envíe algo.",
"Download" => "Descargar",
-"Unshare" => "Deixar de compartir",
"Delete" => "Eliminar",
"Upload too large" => "Envío demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor",
diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php
index 1d33c42446a..0cdb178254e 100644
--- a/apps/files/l10n/he.php
+++ b/apps/files/l10n/he.php
@@ -51,7 +51,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "ביטול ההעלאה",
"Nothing in here. Upload something!" => "אין כאן שום דבר. אולי ברצונך להעלות משהו?",
"Download" => "הורדה",
-"Unshare" => "הסר שיתוף",
"Delete" => "מחיקה",
"Upload too large" => "העלאה גדולה מידי",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.",
diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php
index 157b73b9f5c..5048a15c8bb 100644
--- a/apps/files/l10n/hr.php
+++ b/apps/files/l10n/hr.php
@@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Prekini upload",
"Nothing in here. Upload something!" => "Nema ničega u ovoj mapi. Pošalji nešto!",
"Download" => "Preuzimanje",
-"Unshare" => "Makni djeljenje",
"Delete" => "Obriši",
"Upload too large" => "Prijenos je preobiman",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke koje pokušavate prenijeti prelaze maksimalnu veličinu za prijenos datoteka na ovom poslužitelju.",
diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php
index cb253a7e5a1..22c3926ed1c 100644
--- a/apps/files/l10n/hu_HU.php
+++ b/apps/files/l10n/hu_HU.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Az állomány neve nem tartalmazhatja a \"/\" karaktert. Kérem válasszon másik nevet!",
"The name %s is already used in the folder %s. Please choose a different name." => "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!",
"Not a valid source" => "A kiinduló állomány érvénytelen",
+"Server is not allowed to open URLs, please check the server configuration" => "A kiszolgálón nincs engedélyezve URL-ek megnyitása, kérem ellenőrizze a beállításokat",
"Error while downloading %s to %s" => "Hiba történt miközben %s-t letöltöttük %s-be",
"Error when creating the file" => "Hiba történt az állomány létrehozásakor",
"Folder name cannot be empty." => "A mappa neve nem maradhat kitöltetlenül",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} már létezik",
"Could not create file" => "Az állomány nem hozható létre",
"Could not create folder" => "A mappa nem hozható létre",
+"Error fetching URL" => "A megadott URL-ről nem sikerül adatokat kapni",
"Share" => "Megosztás",
"Delete permanently" => "Végleges törlés",
"Rename" => "Átnevezés",
@@ -43,6 +45,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Az állomány nem nevezhető át",
"replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}",
"undo" => "visszavonás",
+"Error deleting file." => "Hiba a file törlése közben.",
"_%n folder_::_%n folders_" => array("%n mappa","%n mappa"),
"_%n file_::_%n files_" => array("%n állomány","%n állomány"),
"{dirs} and {files}" => "{dirs} és {files}",
@@ -72,6 +75,7 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "ZIP-fájlok maximális kiindulási mérete",
"Save" => "Mentés",
"New" => "Új",
+"New text file" => "Új szöveges file",
"Text file" => "Szövegfájl",
"New folder" => "Új mappa",
"Folder" => "Mappa",
@@ -81,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre",
"Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!",
"Download" => "Letöltés",
-"Unshare" => "A megosztás visszavonása",
"Delete" => "Törlés",
"Upload too large" => "A feltöltés túl nagy",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.",
diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php
index e1e0b97e607..4e254ff6f60 100644
--- a/apps/files/l10n/id.php
+++ b/apps/files/l10n/id.php
@@ -3,6 +3,16 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada",
"Could not move %s" => "Tidak dapat memindahkan %s",
"File name cannot be empty." => "Nama berkas tidak boleh kosong.",
+"File name must not contain \"/\". Please choose a different name." => "Nama berkas tidak boleh mengandung \"/\". Silakan pilih nama yang berbeda.",
+"The name %s is already used in the folder %s. Please choose a different name." => "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.",
+"Not a valid source" => "Sumber tidak sah",
+"Error while downloading %s to %s" => "Galat saat mengunduh %s ke %s",
+"Error when creating the file" => "Galat saat membuat berkas",
+"Folder name cannot be empty." => "Nama folder tidak bolh kosong.",
+"Folder name must not contain \"/\". Please choose a different name." => "Nama folder tidak boleh mengandung \"/\". Silakan pilih nama yang berbeda.",
+"Error when creating the folder" => "Galat saat membuat folder",
+"Unable to set upload directory." => "Tidak dapat mengatur folder unggah",
+"Invalid Token" => "Token tidak sah",
"No file was uploaded. Unknown error" => "Tidak ada berkas yang diunggah. Galat tidak dikenal.",
"There is no error, the file uploaded with success" => "Tidak ada galat, berkas sukses diunggah",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini",
@@ -12,30 +22,47 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Folder sementara tidak ada",
"Failed to write to disk" => "Gagal menulis ke disk",
"Not enough storage available" => "Ruang penyimpanan tidak mencukupi",
+"Upload failed. Could not get file info." => "Unggah gagal. Tidak mendapatkan informasi berkas.",
+"Upload failed. Could not find uploaded file" => "Unggah gagal. Tidak menemukan berkas yang akan diunggah",
"Invalid directory." => "Direktori tidak valid.",
"Files" => "Berkas",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte",
"Not enough space available" => "Ruang penyimpanan tidak mencukupi",
"Upload cancelled." => "Pengunggahan dibatalkan.",
+"Could not get result from server." => "Tidak mendapatkan hasil dari server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.",
+"URL cannot be empty" => "URL tidak boleh kosong",
+"In the home folder 'Shared' is a reserved filename" => "Pada folder home, 'Shared' adalah nama berkas yang sudah digunakan",
"{new_name} already exists" => "{new_name} sudah ada",
+"Could not create file" => "Tidak dapat membuat berkas",
+"Could not create folder" => "Tidak dapat membuat folder",
"Share" => "Bagikan",
"Delete permanently" => "Hapus secara permanen",
"Rename" => "Ubah nama",
"Pending" => "Menunggu",
+"Could not rename file" => "Tidak dapat mengubah nama berkas",
"replaced {new_name} with {old_name}" => "mengganti {new_name} dengan {old_name}",
"undo" => "urungkan",
-"_%n folder_::_%n folders_" => array(""),
-"_%n file_::_%n files_" => array(""),
-"_Uploading %n file_::_Uploading %n files_" => array(""),
+"Error deleting file." => "Galat saat menghapus berkas.",
+"_%n folder_::_%n folders_" => array("%n folder"),
+"_%n file_::_%n files_" => array("%n berkas"),
+"{dirs} and {files}" => "{dirs} dan {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Mengunggah %n berkas"),
"'.' is an invalid file name." => "'.' bukan nama berkas yang valid.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nama tidak valid, karakter '\\', '/', '<', '>', ':', '\"', '|', '?' dan '*' tidak diizinkan.",
"Your storage is full, files can not be updated or synced anymore!" => "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!",
"Your storage is almost full ({usedSpacePercent}%)" => "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.",
"Your download is being prepared. This might take some time if the files are big." => "Unduhan Anda sedang disiapkan. Prosesnya dapat berlangsung agak lama jika ukuran berkasnya besar.",
+"Error moving file" => "Galat saat memindahkan berkas",
"Error" => "Galat",
"Name" => "Nama",
"Size" => "Ukuran",
"Modified" => "Dimodifikasi",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Nama folder tidak sah. Menggunakan 'Shared' sudah digunakan.",
+"%s could not be renamed" => "%s tidak dapat diubah nama",
"Upload" => "Unggah",
"File handling" => "Penanganan berkas",
"Maximum upload size" => "Ukuran pengunggahan maksimum",
@@ -46,15 +73,16 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "Ukuran masukan maksimum untuk berkas ZIP",
"Save" => "Simpan",
"New" => "Baru",
+"New text file" => "Berkas teks baru",
"Text file" => "Berkas teks",
"New folder" => "Map baru",
"Folder" => "Folder",
"From link" => "Dari tautan",
"Deleted files" => "Berkas yang dihapus",
"Cancel upload" => "Batal pengunggahan",
+"You don’t have permission to upload or create files here" => "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini",
"Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!",
"Download" => "Unduh",
-"Unshare" => "Batalkan berbagi",
"Delete" => "Hapus",
"Upload too large" => "Yang diunggah terlalu besar",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.",
diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php
index 9aae5390db9..5c5cc7d5d73 100644
--- a/apps/files/l10n/is.php
+++ b/apps/files/l10n/is.php
@@ -47,7 +47,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Hætta við innsendingu",
"Nothing in here. Upload something!" => "Ekkert hér. Settu eitthvað inn!",
"Download" => "Niðurhal",
-"Unshare" => "Hætta deilingu",
"Delete" => "Eyða",
"Upload too large" => "Innsend skrá er of stór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index 9e5d82296bf..2a10e9977f4 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Il nome del file non può contenere il carattere \"/\". Scegli un nome diverso.",
"The name %s is already used in the folder %s. Please choose a different name." => "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.",
"Not a valid source" => "Non è una sorgente valida",
+"Server is not allowed to open URLs, please check the server configuration" => "Al server non è permesso aprire URL, controlla la configurazione del server",
"Error while downloading %s to %s" => "Errore durante lo scaricamento di %s su %s",
"Error when creating the file" => "Errore durante la creazione del file",
"Folder name cannot be empty." => "Il nome della cartella non può essere vuoto.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} esiste già",
"Could not create file" => "Impossibile creare il file",
"Could not create folder" => "Impossibile creare la cartella",
+"Error fetching URL" => "Errore durante il recupero dello URL",
"Share" => "Condividi",
"Delete permanently" => "Elimina definitivamente",
"Rename" => "Rinomina",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Qui non hai i permessi di caricare o creare file",
"Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!",
"Download" => "Scarica",
-"Unshare" => "Rimuovi condivisione",
"Delete" => "Elimina",
"Upload too large" => "Caricamento troppo grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server.",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index 495af244250..8019b825d3c 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "ファイル名には \"/\" を含めることはできません。別の名前を選択してください。",
"The name %s is already used in the folder %s. Please choose a different name." => "%s はフォルダ %s ないですでに使われています。別の名前を選択してください。",
"Not a valid source" => "有効なソースではありません",
+"Server is not allowed to open URLs, please check the server configuration" => "サーバーは、URLを開くことは許されません。サーバーの設定をチェックしてください。",
"Error while downloading %s to %s" => "%s から %s へのダウンロードエラー",
"Error when creating the file" => "ファイルの生成エラー",
"Folder name cannot be empty." => "フォルダ名は空にできません",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} はすでに存在しています",
"Could not create file" => "ファイルを作成できませんでした",
"Could not create folder" => "フォルダを作成できませんでした",
+"Error fetching URL" => "URL取得エラー",
"Share" => "共有",
"Delete permanently" => "完全に削除する",
"Rename" => "名前の変更",
@@ -73,6 +75,7 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "ZIPファイルへの最大入力サイズ",
"Save" => "保存",
"New" => "新規作成",
+"New text file" => "新規のテキストファイル作成",
"Text file" => "テキストファイル",
"New folder" => "新しいフォルダ",
"Folder" => "フォルダ",
@@ -82,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "ここにファイルをアップロードもしくは作成する権限がありません",
"Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。",
"Download" => "ダウンロード",
-"Unshare" => "共有解除",
"Delete" => "削除",
"Upload too large" => "アップロードには大きすぎます。",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。",
diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php
index b2e656ca190..eafa0c083f7 100644
--- a/apps/files/l10n/ka_GE.php
+++ b/apps/files/l10n/ka_GE.php
@@ -54,7 +54,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "ატვირთვის გაუქმება",
"Nothing in here. Upload something!" => "აქ არაფერი არ არის. ატვირთე რამე!",
"Download" => "ჩამოტვირთვა",
-"Unshare" => "გაუზიარებადი",
"Delete" => "წაშლა",
"Upload too large" => "ასატვირთი ფაილი ძალიან დიდია",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index d8da49acbca..35a9f2fb85c 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -1,11 +1,20 @@
"%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함",
-"Could not move %s" => "%s 항목을 이딩시키지 못하였음",
+"Could not move %s - File with this name already exists" => "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함",
+"Could not move %s" => "항목 %s을(를) 이동시킬 수 없음",
"File name cannot be empty." => "파일 이름이 비어 있을 수 없습니다.",
-"Unable to set upload directory." => "업로드 디렉터리를 정할수 없습니다",
+"File name must not contain \"/\". Please choose a different name." => "파일 이름에는 \"/\"가 들어갈 수 없습니다. 다른 이름을 사용하십시오.",
+"The name %s is already used in the folder %s. Please choose a different name." => "이름 %s이(가) 폴더 %s에서 이미 사용 중입니다. 다른 이름을 사용하십시오.",
+"Not a valid source" => "올바르지 않은 원본",
+"Server is not allowed to open URLs, please check the server configuration" => "서버에서 URL을 열 수 없습니다. 서버 설정을 확인하십시오",
+"Error while downloading %s to %s" => "%s을(를) %s(으)로 다운로드하는 중 오류 발생",
+"Error when creating the file" => "파일 생성 중 오류 발생",
+"Folder name cannot be empty." => "폴더 이름이 비어있을 수 없습니다.",
+"Folder name must not contain \"/\". Please choose a different name." => "폴더 이름에는 \"/\"가 들어갈 수 없습니다. 다른 이름을 사용하십시오.",
+"Error when creating the folder" => "폴더 생성 중 오류 발생",
+"Unable to set upload directory." => "업로드 디렉터리를 설정할 수 없습니다.",
"Invalid Token" => "잘못된 토큰",
-"No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다",
+"No file was uploaded. Unknown error" => "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다",
"There is no error, the file uploaded with success" => "파일 업로드에 성공하였습니다.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼",
@@ -14,38 +23,48 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "임시 폴더가 없음",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Not enough storage available" => "저장소가 용량이 충분하지 않습니다.",
-"Upload failed. Could not get file info." => "업로드에 실패했습니다. 파일 정보를 가져올수 없습니다.",
-"Upload failed. Could not find uploaded file" => "업로드에 실패했습니다. 업로드할 파일을 찾을수 없습니다",
+"Upload failed. Could not get file info." => "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.",
+"Upload failed. Could not find uploaded file" => "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다",
"Invalid directory." => "올바르지 않은 디렉터리입니다.",
"Files" => "파일",
-"Unable to upload {filename} as it is a directory or has 0 bytes" => "{filename}을 업로드 할수 없습니다. 폴더이거나 0 바이트 파일입니다.",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.",
"Not enough space available" => "여유 공간이 부족합니다",
"Upload cancelled." => "업로드가 취소되었습니다.",
-"Could not get result from server." => "서버에서 결과를 가져올수 없습니다.",
+"Could not get result from server." => "서버에서 결과를 가져올 수 없습니다.",
"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.",
+"URL cannot be empty" => "URL이 비어있을 수 없음",
+"In the home folder 'Shared' is a reserved filename" => "'공유됨'은 홈 폴더의 예약된 파일 이름임",
"{new_name} already exists" => "{new_name}이(가) 이미 존재함",
+"Could not create file" => "파일을 만들 수 없음",
+"Could not create folder" => "폴더를 만들 수 없음",
+"Error fetching URL" => "URL을 가져올 수 없음",
"Share" => "공유",
-"Delete permanently" => "영원히 삭제",
+"Delete permanently" => "영구히 삭제",
"Rename" => "이름 바꾸기",
"Pending" => "대기 중",
+"Could not rename file" => "이름을 변경할 수 없음",
"replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨",
-"undo" => "되돌리기",
-"_%n folder_::_%n folders_" => array("폴더 %n"),
-"_%n file_::_%n files_" => array("파일 %n 개"),
+"undo" => "실행 취소",
+"Error deleting file." => "파일 삭제 오류.",
+"_%n folder_::_%n folders_" => array("폴더 %n개"),
+"_%n file_::_%n files_" => array("파일 %n개"),
"{dirs} and {files}" => "{dirs} 그리고 {files}",
-"_Uploading %n file_::_Uploading %n files_" => array("%n 개의 파일을 업로드중"),
-"'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름 입니다.",
+"_Uploading %n file_::_Uploading %n files_" => array("파일 %n개 업로드 중"),
+"'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름입니다.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.",
"Your storage is full, files can not be updated or synced anymore!" => "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!",
"Your storage is almost full ({usedSpacePercent}%)" => "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)",
-"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "암호화는 해제되어 있지만, 파일은 아직 암호화 되어 있습니다. 개인 설저에 가셔서 암호를 해제하십시오",
-"Your download is being prepared. This might take some time if the files are big." => "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다.",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.",
+"Your download is being prepared. This might take some time if the files are big." => "다운로드 준비 중입니다. 파일 크기가 크면 시간이 오래 걸릴 수도 있습니다.",
"Error moving file" => "파일 이동 오류",
"Error" => "오류",
"Name" => "이름",
"Size" => "크기",
"Modified" => "수정됨",
-"%s could not be renamed" => "%s 의 이름을 변경할수 없습니다",
+"Invalid folder name. Usage of 'Shared' is reserved." => "폴더 이름이 잘못되었습니다. '공유됨'은 예약된 폴더 이름입니다.",
+"%s could not be renamed" => "%s의 이름을 변경할 수 없습니다",
"Upload" => "업로드",
"File handling" => "파일 처리",
"Maximum upload size" => "최대 업로드 크기",
@@ -56,15 +75,16 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "ZIP 파일 최대 크기",
"Save" => "저장",
"New" => "새로 만들기",
+"New text file" => "새 텍스트 파일",
"Text file" => "텍스트 파일",
"New folder" => "새 폴더",
"Folder" => "폴더",
"From link" => "링크에서",
-"Deleted files" => "파일 삭제됨",
+"Deleted files" => "삭제된 파일",
"Cancel upload" => "업로드 취소",
+"You don’t have permission to upload or create files here" => "여기에 파일을 업로드하거나 만들 권한이 없습니다",
"Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!",
"Download" => "다운로드",
-"Unshare" => "공유 해제",
"Delete" => "삭제",
"Upload too large" => "업로드한 파일이 너무 큼",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.",
diff --git a/apps/files/l10n/lb.php b/apps/files/l10n/lb.php
index bd95197746e..822ca7e2d02 100644
--- a/apps/files/l10n/lb.php
+++ b/apps/files/l10n/lb.php
@@ -34,7 +34,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Upload ofbriechen",
"Nothing in here. Upload something!" => "Hei ass näischt. Lued eppes rop!",
"Download" => "Download",
-"Unshare" => "Net méi deelen",
"Delete" => "Läschen",
"Upload too large" => "Upload ze grouss",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php
index 2f039e1bb92..d9023658631 100644
--- a/apps/files/l10n/lt_LT.php
+++ b/apps/files/l10n/lt_LT.php
@@ -80,7 +80,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Jūs neturite leidimo čia įkelti arba kurti failus",
"Nothing in here. Upload something!" => "Čia tuščia. Įkelkite ką nors!",
"Download" => "Atsisiųsti",
-"Unshare" => "Nebesidalinti",
"Delete" => "Ištrinti",
"Upload too large" => "Įkėlimui failas per didelis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje",
diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php
index 11edd2bd8d2..7f8975b2940 100644
--- a/apps/files/l10n/lv.php
+++ b/apps/files/l10n/lv.php
@@ -58,7 +58,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Atcelt augšupielādi",
"Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!",
"Download" => "Lejupielādēt",
-"Unshare" => "Pārtraukt dalīšanos",
"Delete" => "Dzēst",
"Upload too large" => "Datne ir par lielu, lai to augšupielādētu",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu",
diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php
index b0c1ae330c7..fadf5efc07b 100644
--- a/apps/files/l10n/mk.php
+++ b/apps/files/l10n/mk.php
@@ -71,7 +71,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Откажи прикачување",
"Nothing in here. Upload something!" => "Тука нема ништо. Снимете нешто!",
"Download" => "Преземи",
-"Unshare" => "Не споделувај",
"Delete" => "Избриши",
"Upload too large" => "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php
index 46f4b40594d..ebd7ef38998 100644
--- a/apps/files/l10n/nb_NO.php
+++ b/apps/files/l10n/nb_NO.php
@@ -57,7 +57,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Avbryt opplasting",
"Nothing in here. Upload something!" => "Ingenting her. Last opp noe!",
"Download" => "Last ned",
-"Unshare" => "Avslutt deling",
"Delete" => "Slett",
"Upload too large" => "Filen er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er for store for å laste opp til denne serveren.",
diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php
index b212fe596ad..a391e25b952 100644
--- a/apps/files/l10n/nl.php
+++ b/apps/files/l10n/nl.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "De bestandsnaam mag geen \"/\" bevatten. Kies een andere naam.",
"The name %s is already used in the folder %s. Please choose a different name." => "De naam %s bestaat al in map %s. Kies een andere naam.",
"Not a valid source" => "Geen geldige bron",
+"Server is not allowed to open URLs, please check the server configuration" => "Server mag geen URS's openen, controleer de server configuratie",
"Error while downloading %s to %s" => "Fout bij downloaden %s naar %s",
"Error when creating the file" => "Fout bij creëren bestand",
"Folder name cannot be empty." => "Mapnaam mag niet leeg zijn.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} bestaat al",
"Could not create file" => "Kon bestand niet creëren",
"Could not create folder" => "Kon niet creëren map",
+"Error fetching URL" => "Fout bij ophalen URL",
"Share" => "Delen",
"Delete permanently" => "Verwijder definitief",
"Rename" => "Hernoem",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "U hebt geen toestemming om hier te uploaden of bestanden te maken",
"Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!",
"Download" => "Downloaden",
-"Unshare" => "Stop met delen",
"Delete" => "Verwijder",
"Upload too large" => "Upload is te groot",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.",
diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php
index 58a39cd4ff5..a5e6e737eae 100644
--- a/apps/files/l10n/nn_NO.php
+++ b/apps/files/l10n/nn_NO.php
@@ -63,7 +63,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Avbryt opplasting",
"Nothing in here. Upload something!" => "Ingenting her. Last noko opp!",
"Download" => "Last ned",
-"Unshare" => "Udel",
"Delete" => "Slett",
"Upload too large" => "For stor opplasting",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.",
diff --git a/apps/files/l10n/oc.php b/apps/files/l10n/oc.php
index a0c3cc7ca6b..eb1a9038b08 100644
--- a/apps/files/l10n/oc.php
+++ b/apps/files/l10n/oc.php
@@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Cancel upload" => " Anulla l'amontcargar",
"Nothing in here. Upload something!" => "Pas res dedins. Amontcarga qualquaren",
"Download" => "Avalcarga",
-"Unshare" => "Pas partejador",
"Delete" => "Escafa",
"Upload too large" => "Amontcargament tròp gròs",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index e7cac28ce70..031bd508700 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Nazwa pliku nie może zawierać \"/\". Proszę wybrać inną nazwę.",
"The name %s is already used in the folder %s. Please choose a different name." => "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.",
"Not a valid source" => "Niepoprawne źródło",
+"Server is not allowed to open URLs, please check the server configuration" => "Serwer nie mógł otworzyć adresów URL, należy sprawdzić konfigurację serwera",
"Error while downloading %s to %s" => "Błąd podczas pobierania %s do %S",
"Error when creating the file" => "Błąd przy tworzeniu pliku",
"Folder name cannot be empty." => "Nazwa folderu nie może być pusta.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} już istnieje",
"Could not create file" => "Nie można utworzyć pliku",
"Could not create folder" => "Nie można utworzyć folderu",
+"Error fetching URL" => "Błąd przy pobieraniu adresu URL",
"Share" => "Udostępnij",
"Delete permanently" => "Trwale usuń",
"Rename" => "Zmień nazwę",
@@ -43,9 +45,10 @@ $TRANSLATIONS = array(
"Could not rename file" => "Nie można zmienić nazwy pliku",
"replaced {new_name} with {old_name}" => "zastąpiono {new_name} przez {old_name}",
"undo" => "cofnij",
+"Error deleting file." => "Błąd podczas usuwania pliku",
"_%n folder_::_%n folders_" => array("%n katalog","%n katalogi","%n katalogów"),
"_%n file_::_%n files_" => array("%n plik","%n pliki","%n plików"),
-"{dirs} and {files}" => "{katalogi} and {pliki}",
+"{dirs} and {files}" => "{dirs} and {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"),
"'.' is an invalid file name." => "„.” jest nieprawidłową nazwą pliku.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone.",
@@ -72,6 +75,7 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "Maksymalna wielkość pliku wejściowego ZIP ",
"Save" => "Zapisz",
"New" => "Nowy",
+"New text file" => "Nowy plik tekstowy",
"Text file" => "Plik tekstowy",
"New folder" => "Nowy folder",
"Folder" => "Folder",
@@ -81,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Nie masz uprawnień do wczytywania lub tworzenia plików w tym miejscu",
"Nothing in here. Upload something!" => "Pusto. Wyślij coś!",
"Download" => "Pobierz",
-"Unshare" => "Zatrzymaj współdzielenie",
"Delete" => "Usuń",
"Upload too large" => "Ładowany plik jest za duży",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.",
diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php
index 2f41760f0d6..f84dcfcd488 100644
--- a/apps/files/l10n/pt_BR.php
+++ b/apps/files/l10n/pt_BR.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "O nome do arquivo não deve conter \"/\". Por favor, escolha um nome diferente.",
"The name %s is already used in the folder %s. Please choose a different name." => "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.",
"Not a valid source" => "Não é uma fonte válida",
+"Server is not allowed to open URLs, please check the server configuration" => "Não é permitido ao servidor abrir URLs, por favor verificar a configuração do servidor.",
"Error while downloading %s to %s" => "Erro ao baixar %s para %s",
"Error when creating the file" => "Erro ao criar o arquivo",
"Folder name cannot be empty." => "O nome da pasta não pode estar vazio.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} já existe",
"Could not create file" => "Não foi possível criar o arquivo",
"Could not create folder" => "Não foi possível criar a pasta",
+"Error fetching URL" => "Erro ao buscar URL",
"Share" => "Compartilhar",
"Delete permanently" => "Excluir permanentemente",
"Rename" => "Renomear",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Você não tem permissão para carregar ou criar arquivos aqui",
"Nothing in here. Upload something!" => "Nada aqui.Carrege alguma coisa!",
"Download" => "Baixar",
-"Unshare" => "Descompartilhar",
"Delete" => "Excluir",
"Upload too large" => "Upload muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor.",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index 4cb7266cf42..4b9fade2e22 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -62,7 +62,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Cancelar envio",
"Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!",
"Download" => "Transferir",
-"Unshare" => "Deixar de partilhar",
"Delete" => "Eliminar",
"Upload too large" => "Upload muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.",
diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php
index 322eb55e3ef..933625d8d1e 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -63,7 +63,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Anulează încărcarea",
"Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!",
"Download" => "Descarcă",
-"Unshare" => "Anulare",
"Delete" => "Șterge",
"Upload too large" => "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server.",
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index 328ece9a813..968da63aaca 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Имя файла не должно содержать символ \"/\". Пожалуйста, выберите другое имя.",
"The name %s is already used in the folder %s. Please choose a different name." => "Имя %s уже используется в папке %s. Пожалуйста выберите другое имя.",
"Not a valid source" => "Неправильный источник",
+"Server is not allowed to open URLs, please check the server configuration" => "Сервер не позволяет открывать URL-адреса, пожалуйста, проверьте настройки сервера",
"Error while downloading %s to %s" => "Ошибка при загрузке %s в %s",
"Error when creating the file" => "Ошибка при создании файла",
"Folder name cannot be empty." => "Имя папки не может быть пустым.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} уже существует",
"Could not create file" => "Не удалось создать файл",
"Could not create folder" => "Не удалось создать папку",
+"Error fetching URL" => "Ошибка получения URL",
"Share" => "Открыть доступ",
"Delete permanently" => "Удалено навсегда",
"Rename" => "Переименовать",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "У вас недостаточно прав для загрузки или создания файлов отсюда.",
"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!",
"Download" => "Скачать",
-"Unshare" => "Закрыть общий доступ",
"Delete" => "Удалить",
"Upload too large" => "Файл слишком велик",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.",
diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php
deleted file mode 100644
index 0df5b9c8c82..00000000000
--- a/apps/files/l10n/ru_RU.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "Имя файла не может быть пустым.",
-"Files" => "Файлы",
-"Share" => "Сделать общим",
-"Rename" => "Переименовать",
-"_%n folder_::_%n folders_" => array("","",""),
-"_%n file_::_%n files_" => array("","",""),
-"_Uploading %n file_::_Uploading %n files_" => array("","",""),
-"'.' is an invalid file name." => "'.' является неверным именем файла.",
-"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.",
-"Error" => "Ошибка",
-"Size" => "Размер",
-"Upload" => "Загрузка",
-"Save" => "Сохранить",
-"Cancel upload" => "Отмена загрузки",
-"Download" => "Загрузка",
-"Delete" => "Удалить"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php
index c30703c0b9d..44decfef1b0 100644
--- a/apps/files/l10n/si_LK.php
+++ b/apps/files/l10n/si_LK.php
@@ -36,7 +36,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "උඩුගත කිරීම අත් හරින්න",
"Nothing in here. Upload something!" => "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න",
"Download" => "බාන්න",
-"Unshare" => "නොබෙදු",
"Delete" => "මකා දමන්න",
"Upload too large" => "උඩුගත කිරීම විශාල වැඩිය",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය",
diff --git a/apps/files/l10n/sk.php b/apps/files/l10n/sk.php
index a3178a95c47..53daf549eaa 100644
--- a/apps/files/l10n/sk.php
+++ b/apps/files/l10n/sk.php
@@ -1,7 +1,11 @@
"Zdieľať",
"_%n folder_::_%n folders_" => array("","",""),
"_%n file_::_%n files_" => array("","",""),
-"_Uploading %n file_::_Uploading %n files_" => array("","","")
+"_Uploading %n file_::_Uploading %n files_" => array("","",""),
+"Save" => "Uložiť",
+"Download" => "Stiahnuť",
+"Delete" => "Odstrániť"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php
index c513ab80539..2d0eb25f622 100644
--- a/apps/files/l10n/sk_SK.php
+++ b/apps/files/l10n/sk_SK.php
@@ -83,7 +83,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory",
"Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!",
"Download" => "Sťahovanie",
-"Unshare" => "Zrušiť zdieľanie",
"Delete" => "Zmazať",
"Upload too large" => "Nahrávanie je príliš veľké",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.",
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index 32ac1ff1e78..037e5f6b6b0 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Ime datoteke ne sme vsebovati znaka \"/\". Določiti je treba drugo ime.",
"The name %s is already used in the folder %s. Please choose a different name." => "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.",
"Not a valid source" => "Vir ni veljaven",
+"Server is not allowed to open URLs, please check the server configuration" => "Odpiranje naslovov URL preko strežnika ni dovoljeno. Preverite nastavitve strežnika.",
"Error while downloading %s to %s" => "Napaka med prejemanjem %s v mapo %s",
"Error when creating the file" => "Napaka med ustvarjanjem datoteke",
"Folder name cannot be empty." => "Ime mape ne more biti prazna vrednost.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} že obstaja",
"Could not create file" => "Ni mogoče ustvariti datoteke",
"Could not create folder" => "Ni mogoče ustvariti mape",
+"Error fetching URL" => "Napaka pridobivanja naslova URL",
"Share" => "Souporaba",
"Delete permanently" => "Izbriši dokončno",
"Rename" => "Preimenuj",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.",
"Nothing in here. Upload something!" => "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!",
"Download" => "Prejmi",
-"Unshare" => "Prekliči souporabo",
"Delete" => "Izbriši",
"Upload too large" => "Prekoračenje omejitve velikosti",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.",
diff --git a/apps/files/l10n/sq.php b/apps/files/l10n/sq.php
index 66ca9d08992..a06b6821afe 100644
--- a/apps/files/l10n/sq.php
+++ b/apps/files/l10n/sq.php
@@ -58,7 +58,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Anullo ngarkimin",
"Nothing in here. Upload something!" => "Këtu nuk ka asgje. Ngarko dicka",
"Download" => "Shkarko",
-"Unshare" => "Hiq ndarjen",
"Delete" => "Fshi",
"Upload too large" => "Ngarkimi shumë i madh",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skedarët që po mundoheni të ngarkoni e tejkalojnë madhësinë maksimale të lejuar nga serveri.",
diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php
index 38dc6988da7..e383b66e078 100644
--- a/apps/files/l10n/sr.php
+++ b/apps/files/l10n/sr.php
@@ -53,7 +53,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Прекини отпремање",
"Nothing in here. Upload something!" => "Овде нема ничег. Отпремите нешто!",
"Download" => "Преузми",
-"Unshare" => "Укини дељење",
"Delete" => "Обриши",
"Upload too large" => "Датотека је превелика",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеке које желите да отпремите прелазе ограничење у величини.",
diff --git a/apps/files/l10n/sr@latin.php b/apps/files/l10n/sr@latin.php
index 998ca7fe0c8..13ce5ec8b3e 100644
--- a/apps/files/l10n/sr@latin.php
+++ b/apps/files/l10n/sr@latin.php
@@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Save" => "Snimi",
"Nothing in here. Upload something!" => "Ovde nema ničeg. Pošaljite nešto!",
"Download" => "Preuzmi",
-"Unshare" => "Ukljoni deljenje",
"Delete" => "Obriši",
"Upload too large" => "Pošiljka je prevelika",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru."
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index b4a23ad3b58..9e1b8110d48 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -82,7 +82,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Du har ej tillåtelse att ladda upp eller skapa filer här",
"Nothing in here. Upload something!" => "Ingenting här. Ladda upp något!",
"Download" => "Ladda ner",
-"Unshare" => "Sluta dela",
"Delete" => "Radera",
"Upload too large" => "För stor uppladdning",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.",
diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php
index 3d3bc6302a6..f91a74ee9bd 100644
--- a/apps/files/l10n/ta_LK.php
+++ b/apps/files/l10n/ta_LK.php
@@ -40,7 +40,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "பதிவேற்றலை இரத்து செய்க",
"Nothing in here. Upload something!" => "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!",
"Download" => "பதிவிறக்குக",
-"Unshare" => "பகிரப்படாதது",
"Delete" => "நீக்குக",
"Upload too large" => "பதிவேற்றல் மிகப்பெரியது",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index 86c25c6de7c..38a67c50679 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -51,7 +51,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "ยกเลิกการอัพโหลด",
"Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!",
"Download" => "ดาวน์โหลด",
-"Unshare" => "ยกเลิกการแชร์",
"Delete" => "ลบ",
"Upload too large" => "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index 0f9ea6d84ba..90b16922a76 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Dosya adı \"/\" içermemelidir. Lütfen farklı bir isim seçin.",
"The name %s is already used in the folder %s. Please choose a different name." => "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.",
"Not a valid source" => "Geçerli bir kaynak değil",
+"Server is not allowed to open URLs, please check the server configuration" => "Sunucunun adresleri açma izi yok, lütfen sunucu yapılandırmasını denetleyin",
"Error while downloading %s to %s" => "%s, %s içine indirilirken hata",
"Error when creating the file" => "Dosya oluşturulurken hata",
"Folder name cannot be empty." => "Klasör adı boş olamaz.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} zaten mevcut",
"Could not create file" => "Dosya oluşturulamadı",
"Could not create folder" => "Klasör oluşturulamadı",
+"Error fetching URL" => "Adres getirilirken hata",
"Share" => "Paylaş",
"Delete permanently" => "Kalıcı olarak sil",
"Rename" => "İsim değiştir.",
@@ -50,11 +52,11 @@ $TRANSLATIONS = array(
"_Uploading %n file_::_Uploading %n files_" => array("%n dosya yükleniyor","%n dosya yükleniyor"),
"'.' is an invalid file name." => "'.' geçersiz bir dosya adı.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.",
-"Your storage is full, files can not be updated or synced anymore!" => "Depolama alanınız dolu, artık dosyalar güncellenmeyecek yada senkronizasyon edilmeyecek.",
+"Your storage is full, files can not be updated or synced anymore!" => "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.",
"Your storage is almost full ({usedSpacePercent}%)" => "Depolama alanınız neredeyse dolu ({usedSpacePercent}%)",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
-"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Şifreleme işlemi durduruldu ancak dosyalarınız şifreli. Dosyalarınızın şifresini kaldırmak için lütfen kişisel ayarlar kısmına geçiniz.",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Şifreleme işlemi durduruldu ancak dosyalarınız şifreli. Dosyalarınızın şifresini kaldırmak için lütfen kişisel ayarlar kısmına geçin.",
"Your download is being prepared. This might take some time if the files are big." => "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir.",
"Error moving file" => "Dosya taşıma hatası",
"Error" => "Hata",
@@ -64,13 +66,13 @@ $TRANSLATIONS = array(
"Invalid folder name. Usage of 'Shared' is reserved." => "Geçersiz dizin adı. 'Shared' ismi ayrılmıştır.",
"%s could not be renamed" => "%s yeniden adlandırılamadı",
"Upload" => "Yükle",
-"File handling" => "Dosya taşıma",
+"File handling" => "Dosya işlemleri",
"Maximum upload size" => "Maksimum yükleme boyutu",
"max. possible: " => "mümkün olan en fazla: ",
"Needed for multi-file and folder downloads." => "Çoklu dosya ve dizin indirmesi için gerekli.",
-"Enable ZIP-download" => "ZIP indirmeyi aktif et",
+"Enable ZIP-download" => "ZIP indirmeyi etkinleştir",
"0 is unlimited" => "0 limitsiz demektir",
-"Maximum input size for ZIP files" => "ZIP dosyaları için en fazla girdi sayısı",
+"Maximum input size for ZIP files" => "ZIP dosyaları için en fazla girdi boyutu",
"Save" => "Kaydet",
"New" => "Yeni",
"New text file" => "Yeni metin dosyası",
@@ -83,7 +85,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "Buraya dosya yükleme veya oluşturma izniniz yok",
"Nothing in here. Upload something!" => "Burada hiçbir şey yok. Bir şeyler yükleyin!",
"Download" => "İndir",
-"Unshare" => "Paylaşılmayan",
"Delete" => "Sil",
"Upload too large" => "Yükleme çok büyük",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Yüklemeye çalıştığınız dosyalar bu sunucudaki maksimum yükleme boyutunu aşıyor.",
diff --git a/apps/files/l10n/ug.php b/apps/files/l10n/ug.php
index 51113446c2c..45458c51af0 100644
--- a/apps/files/l10n/ug.php
+++ b/apps/files/l10n/ug.php
@@ -33,7 +33,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "يۈكلەشتىن ۋاز كەچ",
"Nothing in here. Upload something!" => "بۇ جايدا ھېچنېمە يوق. Upload something!",
"Download" => "چۈشۈر",
-"Unshare" => "ھەمبەھىرلىمە",
"Delete" => "ئۆچۈر",
"Upload too large" => "يۈكلەندىغىنى بەك چوڭ",
"Upgrading filesystem cache..." => "ھۆججەت سىستېما غەملىكىنى يۈكسەلدۈرۈۋاتىدۇ…"
diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php
index 06e9851c45d..1e37d3d77d4 100644
--- a/apps/files/l10n/uk.php
+++ b/apps/files/l10n/uk.php
@@ -62,7 +62,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Перервати завантаження",
"Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!",
"Download" => "Завантажити",
-"Unshare" => "Закрити доступ",
"Delete" => "Видалити",
"Upload too large" => "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
diff --git a/apps/files/l10n/ur.php b/apps/files/l10n/ur.php
new file mode 100644
index 00000000000..0157af093e9
--- /dev/null
+++ b/apps/files/l10n/ur.php
@@ -0,0 +1,7 @@
+ array("",""),
+"_%n file_::_%n files_" => array("",""),
+"_Uploading %n file_::_Uploading %n files_" => array("","")
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files/l10n/ur_PK.php b/apps/files/l10n/ur_PK.php
index b423291095b..3e13a7f516d 100644
--- a/apps/files/l10n/ur_PK.php
+++ b/apps/files/l10n/ur_PK.php
@@ -3,7 +3,6 @@ $TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
-"Error" => "ایرر",
-"Unshare" => "شئیرنگ ختم کریں"
+"Error" => "ایرر"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php
index 6c8a016d21f..8236d5e7efe 100644
--- a/apps/files/l10n/vi.php
+++ b/apps/files/l10n/vi.php
@@ -54,7 +54,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "Hủy upload",
"Nothing in here. Upload something!" => "Không có gì ở đây .Hãy tải lên một cái gì đó !",
"Download" => "Tải về",
-"Unshare" => "Bỏ chia sẻ",
"Delete" => "Xóa",
"Upload too large" => "Tập tin tải lên quá lớn",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index a7cac62a5f9..effcb0225ca 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -57,7 +57,6 @@ $TRANSLATIONS = array(
"Cancel upload" => "取消上传",
"Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!",
"Download" => "下载",
-"Unshare" => "取消共享",
"Delete" => "删除",
"Upload too large" => "上传文件过大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您正尝试上传的文件超过了此服务器可以上传的最大容量限制",
diff --git a/apps/files/l10n/zh_HK.php b/apps/files/l10n/zh_HK.php
index faf6c619385..4885500ce43 100644
--- a/apps/files/l10n/zh_HK.php
+++ b/apps/files/l10n/zh_HK.php
@@ -10,7 +10,6 @@ $TRANSLATIONS = array(
"Upload" => "上傳",
"Save" => "儲存",
"Download" => "下載",
-"Unshare" => "取消分享",
"Delete" => "刪除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index f4458c3daff..dd9cbfdf1a9 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -80,7 +80,6 @@ $TRANSLATIONS = array(
"You don’t have permission to upload or create files here" => "您沒有權限在這裡上傳或建立檔案",
"Nothing in here. Upload something!" => "這裡還沒有東西,上傳一些吧!",
"Download" => "下載",
-"Unshare" => "取消分享",
"Delete" => "刪除",
"Upload too large" => "上傳過大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案大小超過伺服器的限制。",
diff --git a/apps/files/lib/app.php b/apps/files/lib/app.php
index e04ac173d55..fea88faa92a 100644
--- a/apps/files/lib/app.php
+++ b/apps/files/lib/app.php
@@ -59,6 +59,13 @@ class App {
$result['data'] = array(
'message' => $this->l10n->t("Invalid folder name. Usage of 'Shared' is reserved.")
);
+ // rename to non-existing folder is denied
+ } else if (!$this->view->file_exists($dir)) {
+ $result['data'] = array('message' => (string)$this->l10n->t(
+ 'The target folder has been moved or deleted.',
+ array($dir)),
+ 'code' => 'targetnotfound'
+ );
// rename to existing file is denied
} else if ($this->view->file_exists($dir . '/' . $newname)) {
@@ -83,14 +90,17 @@ class App {
else {
$meta['type'] = 'file';
}
+ // these need to be set for determineIcon()
+ $meta['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($meta['mimetype']);
+ $meta['directory'] = $dir;
$fileinfo = array(
'id' => $meta['fileid'],
'mime' => $meta['mimetype'],
'size' => $meta['size'],
'etag' => $meta['etag'],
- 'directory' => $dir,
+ 'directory' => $meta['directory'],
'name' => $newname,
- 'isPreviewAvailable' => \OC::$server->getPreviewManager()->isMimeSupported($meta['mimetype']),
+ 'isPreviewAvailable' => $meta['isPreviewAvailable'],
'icon' => \OCA\Files\Helper::determineIcon($meta)
);
$result['success'] = true;
diff --git a/apps/files/templates/admin.php b/apps/files/templates/admin.php
index 697fc52526a..a5afd55fbc3 100644
--- a/apps/files/templates/admin.php
+++ b/apps/files/templates/admin.php
@@ -5,7 +5,7 @@
expects($this->any())
->method('t')
->will($this->returnArgument(0));
- $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath', 'getFileInfo'), array(), '', false);
+ $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath', 'getFileInfo', 'file_exists'), array(), '', false);
$viewMock->expects($this->any())
->method('normalizePath')
->will($this->returnArgument(0));
@@ -63,6 +63,11 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$oldname = 'Shared';
$newname = 'new_name';
+ $this->viewMock->expects($this->at(0))
+ ->method('file_exists')
+ ->with('/')
+ ->will($this->returnValue(true));
+
$result = $this->files->rename($dir, $oldname, $newname);
$expected = array(
'success' => false,
@@ -80,6 +85,11 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$oldname = 'Shared';
$newname = 'new_name';
+ $this->viewMock->expects($this->at(0))
+ ->method('file_exists')
+ ->with('/test')
+ ->will($this->returnValue(true));
+
$this->viewMock->expects($this->any())
->method('getFileInfo')
->will($this->returnValue(array(
@@ -129,6 +139,11 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$oldname = 'oldname';
$newname = 'newname';
+ $this->viewMock->expects($this->at(0))
+ ->method('file_exists')
+ ->with('/')
+ ->will($this->returnValue(true));
+
$this->viewMock->expects($this->any())
->method('getFileInfo')
->will($this->returnValue(array(
@@ -141,7 +156,6 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
'name' => 'new_name',
)));
-
$result = $this->files->rename($dir, $oldname, $newname);
$this->assertTrue($result['success']);
@@ -154,4 +168,35 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$this->assertEquals(\OC_Helper::mimetypeIcon('dir'), $result['data']['icon']);
$this->assertFalse($result['data']['isPreviewAvailable']);
}
+
+ /**
+ * Test rename inside a folder that doesn't exist any more
+ */
+ function testRenameInNonExistingFolder() {
+ $dir = '/unexist';
+ $oldname = 'oldname';
+ $newname = 'newname';
+
+ $this->viewMock->expects($this->at(0))
+ ->method('file_exists')
+ ->with('/unexist')
+ ->will($this->returnValue(false));
+
+ $this->viewMock->expects($this->any())
+ ->method('getFileInfo')
+ ->will($this->returnValue(array(
+ 'fileid' => 123,
+ 'type' => 'dir',
+ 'mimetype' => 'httpd/unix-directory',
+ 'size' => 18,
+ 'etag' => 'abcdef',
+ 'directory' => '/unexist',
+ 'name' => 'new_name',
+ )));
+
+ $result = $this->files->rename($dir, $oldname, $newname);
+
+ $this->assertFalse($result['success']);
+ $this->assertEquals('targetnotfound', $result['data']['code']);
+ }
}
diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js
new file mode 100644
index 00000000000..23f7b58dcd9
--- /dev/null
+++ b/apps/files/tests/js/fileactionsSpec.js
@@ -0,0 +1,61 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+describe('FileActions tests', function() {
+ beforeEach(function() {
+ // init horrible parameters
+ var $body = $('body');
+ $body.append('');
+ $body.append('');
+ // dummy files table
+ $filesTable = $body.append('
');
+ });
+ afterEach(function() {
+ $('#dir, #permissions, #filestable').remove();
+ });
+ it('calling display() sets file actions', function() {
+ // note: download_url is actually the link target, not the actual download URL...
+ var $tr = FileList.addFile('testName.txt', 1234, new Date(), false, false, {download_url: 'test/download/url'});
+
+ // no actions before call
+ expect($tr.find('.action[data-action=Download]').length).toEqual(0);
+ expect($tr.find('.action[data-action=Rename]').length).toEqual(0);
+ expect($tr.find('.action.delete').length).toEqual(0);
+
+ FileActions.display($tr.find('td.filename'), true);
+
+ // actions defined after cal
+ expect($tr.find('.action[data-action=Download]').length).toEqual(1);
+ expect($tr.find('.action[data-action=Rename]').length).toEqual(1);
+ expect($tr.find('.action.delete').length).toEqual(1);
+ });
+ it('redirects to download URL when clicking download', function() {
+ var redirectStub = sinon.stub(OC, 'redirect');
+ // note: download_url is actually the link target, not the actual download URL...
+ var $tr = FileList.addFile('test download File.txt', 1234, new Date(), false, false, {download_url: 'test/download/url'});
+ FileActions.display($tr.find('td.filename'), true);
+
+ $tr.find('.action[data-action=Download]').click();
+
+ expect(redirectStub.calledOnce).toEqual(true);
+ expect(redirectStub.getCall(0).args[0]).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=test%20download%20File.txt&dir=%2Fsubdir&download');
+ redirectStub.restore();
+ });
+});
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
new file mode 100644
index 00000000000..61e026c0725
--- /dev/null
+++ b/apps/files/tests/js/filelistSpec.js
@@ -0,0 +1,63 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+describe('FileList tests', function() {
+ beforeEach(function() {
+ // init horrible parameters
+ var $body = $('body');
+ $body.append('');
+ $body.append('');
+ // dummy files table
+ $body.append('
');
+ });
+ afterEach(function() {
+ $('#dir, #permissions, #filestable').remove();
+ });
+ it('generates file element with correct attributes when calling addFile', function() {
+ var lastMod = new Date(10000);
+ // note: download_url is actually the link target, not the actual download URL...
+ var $tr = FileList.addFile('testName.txt', 1234, lastMod, false, false, {download_url: 'test/download/url'});
+
+ expect($tr).toBeDefined();
+ expect($tr[0].tagName.toLowerCase()).toEqual('tr');
+ expect($tr.find('a:first').attr('href')).toEqual('test/download/url');
+ expect($tr.attr('data-type')).toEqual('file');
+ expect($tr.attr('data-file')).toEqual('testName.txt');
+ expect($tr.attr('data-size')).toEqual('1234');
+ expect($tr.attr('data-permissions')).toEqual('31');
+ //expect($tr.attr('data-mime')).toEqual('plain/text');
+ });
+ it('generates dir element with correct attributes when calling addDir', function() {
+ var lastMod = new Date(10000);
+ var $tr = FileList.addDir('testFolder', 1234, lastMod, false);
+
+ expect($tr).toBeDefined();
+ expect($tr[0].tagName.toLowerCase()).toEqual('tr');
+ expect($tr.attr('data-type')).toEqual('dir');
+ expect($tr.attr('data-file')).toEqual('testFolder');
+ expect($tr.attr('data-size')).toEqual('1234');
+ expect($tr.attr('data-permissions')).toEqual('31');
+ //expect($tr.attr('data-mime')).toEqual('httpd/unix-directory');
+ });
+ it('returns correct download URL', function() {
+ expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=some%20file.txt&dir=%2Fsubdir&download');
+ expect(FileList.getDownloadUrl('some file.txt', '/anotherpath/abc')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=some%20file.txt&dir=%2Fanotherpath%2Fabc&download');
+ });
+});
diff --git a/apps/files/tests/js/filesSpec.js b/apps/files/tests/js/filesSpec.js
new file mode 100644
index 00000000000..9d0a2e4f9d7
--- /dev/null
+++ b/apps/files/tests/js/filesSpec.js
@@ -0,0 +1,81 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+describe('Files tests', function() {
+ describe('File name validation', function() {
+ it('Validates correct file names', function() {
+ var fileNames = [
+ 'boringname',
+ 'something.with.extension',
+ 'now with spaces',
+ '.a',
+ '..a',
+ '.dotfile',
+ 'single\'quote',
+ ' spaces before',
+ 'spaces after ',
+ 'allowed chars including the crazy ones $%&_-^@!,()[]{}=;#',
+ '汉字也能用',
+ 'und Ümläüte sind auch willkommen'
+ ];
+ for ( var i = 0; i < fileNames.length; i++ ) {
+ try {
+ expect(Files.isFileNameValid(fileNames[i])).toEqual(true);
+ }
+ catch (e) {
+ fail();
+ }
+ }
+ });
+ it('Detects invalid file names', function() {
+ var fileNames = [
+ '',
+ ' ',
+ '.',
+ '..',
+ 'back\\slash',
+ 'sl/ash',
+ 'ltgt',
+ 'col:on',
+ 'double"quote',
+ 'pi|pe',
+ 'dont?ask?questions?',
+ 'super*star',
+ 'new\nline',
+ ' ..',
+ '.. ',
+ '. ',
+ ' .'
+ ];
+ for ( var i = 0; i < fileNames.length; i++ ) {
+ var threwException = false;
+ try {
+ Files.isFileNameValid(fileNames[i]);
+ fail();
+ }
+ catch (e) {
+ threwException = true;
+ }
+ expect(threwException).toEqual(true);
+ }
+ });
+ });
+});
diff --git a/apps/files/triggerupdate.php b/apps/files/triggerupdate.php
index 0e29edbba35..a37b9823add 100644
--- a/apps/files/triggerupdate.php
+++ b/apps/files/triggerupdate.php
@@ -6,6 +6,7 @@ if (OC::$CLI) {
if (count($argv) === 2) {
$file = $argv[1];
list(, $user) = explode('/', $file);
+ OCP\JSON::checkUserExists($owner);
OC_Util::setupFS($user);
$view = new \OC\Files\View('');
/**
diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml
index 9d495916d26..b6d9d6bb0a3 100644
--- a/apps/files_encryption/appinfo/info.xml
+++ b/apps/files_encryption/appinfo/info.xml
@@ -2,11 +2,15 @@
files_encryptionEncryption
- The new ownCloud 5 files encryption system. After the app was enabled you need to re-login to initialize your encryption keys.
+ The ownCloud files encryption system provides server side-encryption. After the app was enabled you need to re-login to initialize your encryption keys.AGPLSam Tuke, Bjoern Schiessle, Florin Peter4true
+
+ http://doc.owncloud.org/server/6.0/user_manual/files/encryption.html
+ http://doc.owncloud.org/server/6.0/admin_manual/configuration/configuration_encryption.html
+ false
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index f142f525cfa..09d5687e226 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -30,6 +30,9 @@ use OC\Files\Filesystem;
*/
class Hooks {
+ // file for which we want to rename the keys after the rename operation was successful
+ private static $renamedFiles = array();
+
/**
* @brief Startup encryption backend upon user login
* @note This method should never be called for users using client side encryption
@@ -179,9 +182,9 @@ class Hooks {
// the necessary keys)
if (Crypt::mode() === 'server') {
- if ($params['uid'] === \OCP\User::getUser()) {
+ $view = new \OC_FilesystemView('/');
- $view = new \OC_FilesystemView('/');
+ if ($params['uid'] === \OCP\User::getUser()) {
$session = new \OCA\Encryption\Session($view);
@@ -202,36 +205,41 @@ class Hooks {
} else { // admin changed the password for a different user, create new keys and reencrypt file keys
$user = $params['uid'];
- $recoveryPassword = $params['recoveryPassword'];
- $newUserPassword = $params['password'];
+ $util = new Util($view, $user);
+ $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null;
- $view = new \OC_FilesystemView('/');
+ if (($util->recoveryEnabledForUser() && $recoveryPassword)
+ || !$util->userKeysExists()) {
- // make sure that the users home is mounted
- \OC\Files\Filesystem::initMountPoints($user);
+ $recoveryPassword = $params['recoveryPassword'];
+ $newUserPassword = $params['password'];
- $keypair = Crypt::createKeypair();
+ // make sure that the users home is mounted
+ \OC\Files\Filesystem::initMountPoints($user);
- // Disable encryption proxy to prevent recursive calls
- $proxyStatus = \OC_FileProxy::$enabled;
- \OC_FileProxy::$enabled = false;
+ $keypair = Crypt::createKeypair();
- // Save public key
- $view->file_put_contents('/public-keys/' . $user . '.public.key', $keypair['publicKey']);
+ // Disable encryption proxy to prevent recursive calls
+ $proxyStatus = \OC_FileProxy::$enabled;
+ \OC_FileProxy::$enabled = false;
- // Encrypt private key empty passphrase
- $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword);
+ // Save public key
+ $view->file_put_contents('/public-keys/' . $user . '.public.key', $keypair['publicKey']);
- // Save private key
- $view->file_put_contents(
- '/' . $user . '/files_encryption/' . $user . '.private.key', $encryptedPrivateKey);
+ // Encrypt private key empty passphrase
+ $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword);
- if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files
- $util = new Util($view, $user);
- $util->recoverUsersFiles($recoveryPassword);
+ // Save private key
+ $view->file_put_contents(
+ '/' . $user . '/files_encryption/' . $user . '.private.key', $encryptedPrivateKey);
+
+ if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files
+ $util = new Util($view, $user);
+ $util->recoverUsersFiles($recoveryPassword);
+ }
+
+ \OC_FileProxy::$enabled = $proxyStatus;
}
-
- \OC_FileProxy::$enabled = $proxyStatus;
}
}
}
@@ -474,6 +482,18 @@ class Hooks {
}
}
+ /**
+ * @brief mark file as renamed so that we know the original source after the file was renamed
+ * @param array $params with the old path and the new path
+ */
+ public static function preRename($params) {
+ $util = new Util(new \OC_FilesystemView('/'), \OCP\User::getUser());
+ list($ownerOld, $pathOld) = $util->getUidAndFilename($params['oldpath']);
+ self::$renamedFiles[$params['oldpath']] = array(
+ 'uid' => $ownerOld,
+ 'path' => $pathOld);
+ }
+
/**
* @brief after a file is renamed, rename its keyfile and share-keys also fix the file size and fix also the sharing
* @param array with oldpath and newpath
@@ -496,19 +516,32 @@ class Hooks {
$userId = \OCP\User::getUser();
$util = new Util($view, $userId);
- // Format paths to be relative to user files dir
- if ($util->isSystemWideMountPoint($params['oldpath'])) {
- $baseDir = 'files_encryption/';
- $oldKeyfilePath = $baseDir . 'keyfiles/' . $params['oldpath'];
+ if (isset(self::$renamedFiles[$params['oldpath']]['uid']) &&
+ isset(self::$renamedFiles[$params['oldpath']]['path'])) {
+ $ownerOld = self::$renamedFiles[$params['oldpath']]['uid'];
+ $pathOld = self::$renamedFiles[$params['oldpath']]['path'];
} else {
- $baseDir = $userId . '/' . 'files_encryption/';
- $oldKeyfilePath = $baseDir . 'keyfiles/' . $params['oldpath'];
+ \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::ERROR);
+ return false;
}
- if ($util->isSystemWideMountPoint($params['newpath'])) {
- $newKeyfilePath = $baseDir . 'keyfiles/' . $params['newpath'];
+ list($ownerNew, $pathNew) = $util->getUidAndFilename($params['newpath']);
+
+ // Format paths to be relative to user files dir
+ if ($util->isSystemWideMountPoint($pathOld)) {
+ $oldKeyfilePath = 'files_encryption/keyfiles/' . $pathOld;
+ $oldShareKeyPath = 'files_encryption/share-keys/' . $pathOld;
} else {
- $newKeyfilePath = $baseDir . 'keyfiles/' . $params['newpath'];
+ $oldKeyfilePath = $ownerOld . '/' . 'files_encryption/keyfiles/' . $pathOld;
+ $oldShareKeyPath = $ownerOld . '/' . 'files_encryption/share-keys/' . $pathOld;
+ }
+
+ if ($util->isSystemWideMountPoint($pathNew)) {
+ $newKeyfilePath = 'files_encryption/keyfiles/' . $pathNew;
+ $newShareKeyPath = 'files_encryption/share-keys/' . $pathNew;
+ } else {
+ $newKeyfilePath = $ownerNew . '/files_encryption/keyfiles/' . $pathNew;
+ $newShareKeyPath = $ownerNew . '/files_encryption/share-keys/' . $pathNew;
}
// add key ext if this is not an folder
@@ -517,11 +550,11 @@ class Hooks {
$newKeyfilePath .= '.key';
// handle share-keys
- $localKeyPath = $view->getLocalFile($baseDir . 'share-keys/' . $params['oldpath']);
+ $localKeyPath = $view->getLocalFile($oldShareKeyPath);
$escapedPath = Helper::escapeGlobPattern($localKeyPath);
$matches = glob($escapedPath . '*.shareKey');
foreach ($matches as $src) {
- $dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src));
+ $dst = \OC\Files\Filesystem::normalizePath(str_replace($pathOld, $pathNew, $src));
// create destination folder if not exists
if (!file_exists(dirname($dst))) {
@@ -533,15 +566,13 @@ class Hooks {
} else {
// handle share-keys folders
- $oldShareKeyfilePath = $baseDir . 'share-keys/' . $params['oldpath'];
- $newShareKeyfilePath = $baseDir . 'share-keys/' . $params['newpath'];
// create destination folder if not exists
- if (!$view->file_exists(dirname($newShareKeyfilePath))) {
- $view->mkdir(dirname($newShareKeyfilePath), 0750, true);
+ if (!$view->file_exists(dirname($newShareKeyPath))) {
+ $view->mkdir(dirname($newShareKeyPath), 0750, true);
}
- $view->rename($oldShareKeyfilePath, $newShareKeyfilePath);
+ $view->rename($oldShareKeyPath, $newShareKeyPath);
}
// Rename keyfile so it isn't orphaned
@@ -556,18 +587,17 @@ class Hooks {
}
// build the path to the file
- $newPath = '/' . $userId . '/files' . $params['newpath'];
- $newPathRelative = $params['newpath'];
+ $newPath = '/' . $ownerNew . '/files' . $pathNew;
if ($util->fixFileSize($newPath)) {
// get sharing app state
$sharingEnabled = \OCP\Share::isEnabled();
// get users
- $usersSharing = $util->getSharingUsersArray($sharingEnabled, $newPathRelative);
+ $usersSharing = $util->getSharingUsersArray($sharingEnabled, $pathNew);
// update sharing-keys
- $util->setSharedFileKeyfiles($session, $usersSharing, $newPathRelative);
+ $util->setSharedFileKeyfiles($session, $usersSharing, $pathNew);
}
\OC_FileProxy::$enabled = $proxyStatus;
diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php
index 9d307f1064d..9e4290534c0 100644
--- a/apps/files_encryption/l10n/da.php
+++ b/apps/files_encryption/l10n/da.php
@@ -8,19 +8,27 @@ $TRANSLATIONS = array(
"Could not change the password. Maybe the old password was not correct." => "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
"Private key password successfully updated." => "Privat nøgle kodeord succesfuldt opdateret.",
"Could not update the private key password. Maybe the old password was not correct." => "Kunne ikke opdatere det private nøgle kodeord-. Måske var det gamle kodeord forkert.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
+"Unknown error please check your system settings or contact your administrator" => "Ukendt fejl. Kontroller venligst dit system eller kontakt din administrator",
"Missing requirements." => "Manglende betingelser.",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Sørg for at PHP 5.3.3 eller nyere er installeret og at OpenSSL sammen med PHP-udvidelsen er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.",
"Following users are not set up for encryption:" => "Følgende brugere er ikke sat op til kryptering:",
+"Initial encryption started... This can take some time. Please wait." => "Førstegangskryptering er påbegyndt... Dette kan tage nogen tid. Vent venligst.",
"Saving..." => "Gemmer...",
+"Go directly to your " => "Gå direkte til din ",
"personal settings" => "Personlige indstillinger",
"Encryption" => "Kryptering",
"Enable recovery key (allow to recover users files in case of password loss):" => "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):",
"Recovery key password" => "Gendannelsesnøgle kodeord",
+"Repeat Recovery key password" => "Gentag gendannelse af nøglekoden",
"Enabled" => "Aktiveret",
"Disabled" => "Deaktiveret",
"Change recovery key password:" => "Skift gendannelsesnøgle kodeord:",
"Old Recovery key password" => "Gammel Gendannelsesnøgle kodeord",
"New Recovery key password" => "Ny Gendannelsesnøgle kodeord",
+"Repeat New Recovery key password" => "Gentag dannelse af ny gendannaleses nøglekode",
"Change Password" => "Skift Kodeord",
"Your private key password no longer match your log-in password:" => "Dit private nøgle kodeord stemmer ikke længere overens med dit login kodeord:",
"Set your old private key password to your current log-in password." => "Sæt dit gamle private nøgle kodeord til at være dit nuværende login kodeord. ",
diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php
index 08b655d2f32..3ba50f074b9 100644
--- a/apps/files_encryption/l10n/de.php
+++ b/apps/files_encryption/l10n/de.php
@@ -1,16 +1,16 @@
"Wiederherstellungsschlüssel wurde erfolgreich aktiviert",
-"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!",
+"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
"Recovery key successfully disabled" => "Wiederherstellungsschlüssel deaktiviert.",
-"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!",
+"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
"Password successfully changed." => "Dein Passwort wurde geändert.",
"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
"Private key password successfully updated." => "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Eventuell war das alte Passwort falsch.",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.",
-"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von%s Dein Passwort geändert (z.B. in deinem gemeinsamen Verzeichnis). Du kannst das Passwort deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an deine Dateien zu gelangen.",
-"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Datei-Besitzer, dass er die Datei nochmals mit Dir teilt.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
"Unknown error please check your system settings or contact your administrator" => "Unbekannter Fehler, bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator",
"Missing requirements." => "Fehlende Vorraussetzungen",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.",
@@ -30,14 +30,14 @@ $TRANSLATIONS = array(
"New Recovery key password" => "Neues Wiederherstellungsschlüssel-Passwort",
"Repeat New Recovery key password" => "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen",
"Change Password" => "Passwort ändern",
-"Your private key password no longer match your log-in password:" => "Ihr Passwort für ihren privaten Schlüssel stimmt nicht mehr mit ihrem Loginpasswort überein.",
-"Set your old private key password to your current log-in password." => "Setzen Sie ihr altes Passwort für ihren privaten Schlüssel auf ihr aktuelles Login-Passwort",
-" If you don't remember your old password you can ask your administrator to recover your files." => "Wenn Sie Ihr altes Passwort vergessen haben, können Sie den Administrator bitten, Ihre Daten wiederherzustellen.",
-"Old log-in password" => "Altes login Passwort",
+"Your private key password no longer match your log-in password:" => "Das Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.",
+"Set your old private key password to your current log-in password." => "Setze Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Login-Passwort",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.",
+"Old log-in password" => "Altes Login Passwort",
"Current log-in password" => "Aktuelles Passwort",
"Update Private Key Password" => "Passwort für den privaten Schlüssel aktualisieren",
-"Enable password recovery:" => "Passwortwiederherstellung aktivvieren:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Wenn Sie diese Option aktivieren, können Sie Ihre verschlüsselten Dateien wiederherstellen, falls Sie Ihr Passwort vergessen",
+"Enable password recovery:" => "Passwortwiederherstellung aktivieren:",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst",
"File recovery settings updated" => "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert",
"Could not update file recovery" => "Dateiwiederherstellung konnte nicht aktualisiert werden"
);
diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php
index 6b21122027a..22c1095e284 100644
--- a/apps/files_encryption/l10n/el.php
+++ b/apps/files_encryption/l10n/el.php
@@ -8,20 +8,30 @@ $TRANSLATIONS = array(
"Could not change the password. Maybe the old password was not correct." => "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
"Private key password successfully updated." => "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Could not update the private key password. Maybe the old password was not correct." => "Αποτυχία ενημέρωσης του κωδικού για το προσωπικό κλειδί. Ενδεχομένως ο παλιός κωδικός δεν ήταν σωστός.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.",
"Unknown error please check your system settings or contact your administrator" => "Άγνωστο σφάλμα, παρακαλώ ελέγξτε τις ρυθμίσεις συστήματος ή επικοινωνήστε με τον διαχειριστή σας ",
"Missing requirements." => "Προαπαιτούμενα που απουσιάζουν.",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.",
"Following users are not set up for encryption:" => "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:",
+"Initial encryption started... This can take some time. Please wait." => "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.",
"Saving..." => "Γίνεται αποθήκευση...",
"Go directly to your " => "Πηγαίνε απευθείας στο ",
"personal settings" => "προσωπικές ρυθμίσεις",
"Encryption" => "Κρυπτογράφηση",
+"Enable recovery key (allow to recover users files in case of password loss):" => "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):",
"Recovery key password" => "Επαναφορά κωδικού κλειδιού",
+"Repeat Recovery key password" => "Επαναλάβετε το κλειδί επαναφοράς κωδικού",
"Enabled" => "Ενεργοποιημένο",
"Disabled" => "Απενεργοποιημένο",
+"Change recovery key password:" => "Αλλαγή κλειδιού επαναφοράς κωδικού:",
+"Old Recovery key password" => "Παλιό κλειδί επαναφοράς κωδικού",
"New Recovery key password" => "Νέο κλειδί επαναφοράς κωδικού",
+"Repeat New Recovery key password" => "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού",
"Change Password" => "Αλλαγή Κωδικού Πρόσβασης",
"Your private key password no longer match your log-in password:" => "Ο κωδικός του προσωπικού κλειδιού δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας:",
+"Set your old private key password to your current log-in password." => "Ορίστε το παλιό σας προσωπικό κλειδί ως τον τρέχων κωδικό πρόσβασης.",
" If you don't remember your old password you can ask your administrator to recover your files." => "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.",
"Old log-in password" => "Παλαιό συνθηματικό εισόδου",
"Current log-in password" => "Τρέχον συνθηματικό πρόσβασης",
diff --git a/apps/files_encryption/l10n/es_MX.php b/apps/files_encryption/l10n/es_MX.php
new file mode 100644
index 00000000000..3906e3cacbe
--- /dev/null
+++ b/apps/files_encryption/l10n/es_MX.php
@@ -0,0 +1,44 @@
+ "Se ha habilitado la recuperación de archivos",
+"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
+"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
+"Password successfully changed." => "Su contraseña ha sido cambiada",
+"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
+"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.",
+"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
+"Unknown error please check your system settings or contact your administrator" => "Error desconocido. Verifique la configuración de su sistema o póngase en contacto con su administrador",
+"Missing requirements." => "Requisitos incompletos.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.",
+"Following users are not set up for encryption:" => "Los siguientes usuarios no han sido configurados para el cifrado:",
+"Initial encryption started... This can take some time. Please wait." => "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.",
+"Saving..." => "Guardando...",
+"Go directly to your " => "Ir directamente a su",
+"personal settings" => "opciones personales",
+"Encryption" => "Cifrado",
+"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);",
+"Recovery key password" => "Contraseña de clave de recuperación",
+"Repeat Recovery key password" => "Repite la contraseña de clave de recuperación",
+"Enabled" => "Habilitar",
+"Disabled" => "Deshabilitado",
+"Change recovery key password:" => "Cambiar la contraseña de la clave de recuperación",
+"Old Recovery key password" => "Antigua clave de recuperación",
+"New Recovery key password" => "Nueva clave de recuperación",
+"Repeat New Recovery key password" => "Repetir la nueva clave de recuperación",
+"Change Password" => "Cambiar contraseña",
+"Your private key password no longer match your log-in password:" => "Su contraseña de clave privada ya no coincide con su contraseña de acceso:",
+"Set your old private key password to your current log-in password." => "Establecer la contraseña de su antigua clave privada a su contraseña actual de acceso.",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.",
+"Old log-in password" => "Contraseña de acceso antigua",
+"Current log-in password" => "Contraseña de acceso actual",
+"Update Private Key Password" => "Actualizar Contraseña de Clave Privada",
+"Enable password recovery:" => "Habilitar la recuperación de contraseña:",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
+"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
+"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php
index caf5f6799e0..6b1bafdda1a 100644
--- a/apps/files_encryption/l10n/eu.php
+++ b/apps/files_encryption/l10n/eu.php
@@ -8,19 +8,27 @@ $TRANSLATIONS = array(
"Could not change the password. Maybe the old password was not correct." => "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.",
"Private key password successfully updated." => "Gako pasahitz pribatu behar bezala eguneratu da.",
"Could not update the private key password. Maybe the old password was not correct." => "Ezin izan da gako pribatu pasahitza eguneratu. Agian pasahitz zaharra okerrekoa da.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.",
+"Unknown error please check your system settings or contact your administrator" => "Errore ezezaguna mesedez egiaztatu zure sistemaren ezarpenak edo harremanetan jarri zure administradorearekin",
"Missing requirements." => "Eskakizun batzuk ez dira betetzen.",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Mesedez ziurtatu PHP 5.3.3 edo berriago bat instalatuta dagoela eta OpenSSL PHP hedapenarekin gaitua eta ongi konfiguratuta dagoela. Oraingoz, enkriptazio aplikazioa desgaituta dago.",
"Following users are not set up for encryption:" => "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:",
+"Initial encryption started... This can take some time. Please wait." => "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.",
"Saving..." => "Gordetzen...",
+"Go directly to your " => "Joan zuzenean zure",
"personal settings" => "ezarpen pertsonalak",
"Encryption" => "Enkriptazioa",
"Enable recovery key (allow to recover users files in case of password loss):" => "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):",
"Recovery key password" => "Berreskuratze gako pasahitza",
+"Repeat Recovery key password" => "Errepikatu berreskuratze gakoaren pasahitza",
"Enabled" => "Gaitua",
"Disabled" => "Ez-gaitua",
"Change recovery key password:" => "Aldatu berreskuratze gako pasahitza:",
"Old Recovery key password" => "Berreskuratze gako pasahitz zaharra",
"New Recovery key password" => "Berreskuratze gako pasahitz berria",
+"Repeat New Recovery key password" => "Errepikatu berreskuratze gako berriaren pasahitza",
"Change Password" => "Aldatu Pasahitza",
"Your private key password no longer match your log-in password:" => "Zure gako pribatuaren pasahitza ez da dagoeneko zure sarrera pasahitza:",
"Set your old private key password to your current log-in password." => "Ezarri zure gako pribatu zaharraren pasahitza zure oraingo sarrerako psahitzara.",
diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php
index 323291bbfbe..163011ff80b 100644
--- a/apps/files_encryption/l10n/hu_HU.php
+++ b/apps/files_encryption/l10n/hu_HU.php
@@ -1,18 +1,44 @@
"Visszaállítási kulcs sikeresen kikapcsolva",
-"Password successfully changed." => "Jelszó sikeresen megváltoztatva.",
+"Recovery key successfully enabled" => "A helyreállítási kulcs sikeresen bekapcsolva",
+"Could not enable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett engedélyezni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
+"Recovery key successfully disabled" => "A helyreállítási kulcs sikeresen kikapcsolva",
+"Could not disable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
+"Password successfully changed." => "A jelszót sikeresen megváltoztattuk.",
"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
-"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás.",
+"Private key password successfully updated." => "A személyes kulcsának jelszava frissítésre került.",
+"Could not update the private key password. Maybe the old password was not correct." => "A személyes kulcsa jelszavát nem lehetett frissíteni. Lehet, hogy hibás volt a régi jelszó.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!",
+"Unknown error please check your system settings or contact your administrator" => "Ismeretlen hiba. Ellenőrizze a rendszer beállításait vagy forduljon a rendszergazdához!",
+"Missing requirements." => "Hiányzó követelmények.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Kérem gondoskodjon arról, hogy PHP 5.3.3 vagy annál frissebb legyen telepítve, továbbá az OpenSSL a megfelelő PHP-bővítménnyel együtt rendelkezésre álljon és helyesen legyen konfigurálva! A titkosító modul egyelőre kikapcsolásra került.",
+"Following users are not set up for encryption:" => "A következő felhasználók nem állították be a titkosítást:",
+"Initial encryption started... This can take some time. Please wait." => "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.",
"Saving..." => "Mentés...",
+"Go directly to your " => "Ugrás ide:",
"personal settings" => "személyes beállítások",
"Encryption" => "Titkosítás",
+"Enable recovery key (allow to recover users files in case of password loss):" => "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):",
+"Recovery key password" => "A helyreállítási kulcs jelszava",
+"Repeat Recovery key password" => "Ismételje meg a helyreállítási kulcs jelszavát",
"Enabled" => "Bekapcsolva",
"Disabled" => "Kikapcsolva",
+"Change recovery key password:" => "A helyreállítási kulcs jelszavának módosítása:",
+"Old Recovery key password" => "Régi Helyreállítási Kulcs Jelszava",
+"New Recovery key password" => "Új Helyreállítási kulcs jelszava",
+"Repeat New Recovery key password" => "Ismételje meg az új helyreállítási kulcs jelszavát",
"Change Password" => "Jelszó megváltoztatása",
+"Your private key password no longer match your log-in password:" => "A személyes kulcs jelszava mostantól nem azonos a belépési jelszavával:",
+"Set your old private key password to your current log-in password." => "Állítsuk be a személyes kulcs jelszavát a jelenlegi bejelentkezési jelszavunkra.",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.",
"Old log-in password" => "Régi bejelentkezési jelszó",
"Current log-in password" => "Jelenlegi bejelentkezési jelszó",
-"Update Private Key Password" => "Privát kulcs jelszó frissítése",
-"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása"
+"Update Private Key Password" => "A személyest kulcs jelszó frissítése",
+"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát",
+"File recovery settings updated" => "A fájlhelyreállítási beállítások frissültek",
+"Could not update file recovery" => "A fájlhelyreállítás nem frissíthető"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/id.php b/apps/files_encryption/l10n/id.php
index 32c348bd8ba..a719d445820 100644
--- a/apps/files_encryption/l10n/id.php
+++ b/apps/files_encryption/l10n/id.php
@@ -1,6 +1,41 @@
"Kunci pemulihan berhasil diaktifkan",
+"Could not enable recovery key. Please check your recovery key password!" => "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
+"Recovery key successfully disabled" => "Kunci pemulihan berhasil dinonaktifkan",
+"Could not disable recovery key. Please check your recovery key password!" => "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
+"Password successfully changed." => "Sandi berhasil diubah",
+"Could not change the password. Maybe the old password was not correct." => "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
+"Private key password successfully updated." => "Sandi kunci privat berhasil diperbarui.",
+"Could not update the private key password. Maybe the old password was not correct." => "Tidak dapat memperbarui sandi kunci privat. Kemungkinan sandi lama yang Anda masukkan salah.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.",
+"Unknown error please check your system settings or contact your administrator" => "Kesalahan tak dikenal, silakan periksa pengaturan sistem Anda atau hubungi admin.",
+"Missing requirements." => "Persyaratan yang hilang.",
+"Following users are not set up for encryption:" => "Pengguna berikut belum diatur untuk enkripsi:",
+"Initial encryption started... This can take some time. Please wait." => "Inisial enskripsi dijalankan... Ini dapat memakan waktu. Silakan tunggu.",
"Saving..." => "Menyimpan...",
-"Encryption" => "Enkripsi"
+"Go directly to your " => "Langsung ke anda",
+"personal settings" => "pengaturan pribadi",
+"Encryption" => "Enkripsi",
+"Enable recovery key (allow to recover users files in case of password loss):" => "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
+"Recovery key password" => "Sandi kunci pemulihan",
+"Repeat Recovery key password" => "Ulangi sandi kunci Pemulihan",
+"Enabled" => "Diaktifkan",
+"Disabled" => "Dinonaktifkan",
+"Change recovery key password:" => "Ubah sandi kunci pemulihan:",
+"Old Recovery key password" => "Sandi kunci Pemulihan Lama",
+"New Recovery key password" => "Sandi kunci Pemulihan Baru",
+"Repeat New Recovery key password" => "Ulangi sandi kunci Pemulihan baru",
+"Change Password" => "Ubah sandi",
+"Your private key password no longer match your log-in password:" => "Sandi kunci privat Anda tidak lagi cocok dengan sandi masuk:",
+"Set your old private key password to your current log-in password." => "Atur sandi kunci privat lama Anda sebagai sandi masuk Anda saat ini.",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.",
+"Old log-in password" => "Sandi masuk yang lama",
+"Current log-in password" => "Sandi masuk saat ini",
+"Update Private Key Password" => "Perbarui Sandi Kunci Privat",
+"Enable password recovery:" => "Aktifkan sandi pemulihan:",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi",
+"File recovery settings updated" => "Pengaturan pemulihan berkas diperbarui",
+"Could not update file recovery" => "Tidak dapat memperbarui pemulihan berkas"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php
index cf06136c9b6..d91e861ca5d 100644
--- a/apps/files_encryption/l10n/ko.php
+++ b/apps/files_encryption/l10n/ko.php
@@ -1,26 +1,44 @@
"복구키가 성공적으로 활성화 되었습니다",
-"Could not enable recovery key. Please check your recovery key password!" => "복구키를 활성화 할수 없습니다. 복구키의 비밀번호를 확인해주세요!",
-"Recovery key successfully disabled" => "복구키가 성공적으로 비활성화 되었습니다",
-"Could not disable recovery key. Please check your recovery key password!" => "복구키를 비활성화 할수 없습니다. 복구키의 비밀번호를 확인해주세요!",
+"Recovery key successfully enabled" => "복구 키가 성공적으로 활성화되었습니다",
+"Could not enable recovery key. Please check your recovery key password!" => "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!",
+"Recovery key successfully disabled" => "복구 키가 성공적으로 비활성화 되었습니다",
+"Could not disable recovery key. Please check your recovery key password!" => "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해주세요!",
"Password successfully changed." => "암호가 성공적으로 변경되었습니다",
-"Could not change the password. Maybe the old password was not correct." => "암호를 변경할수 없습니다. 아마도 예전 암호가 정확하지 않은것 같습니다.",
-"Private key password successfully updated." => "개인키 암호가 성공적으로 업데이트 됨.",
+"Could not change the password. Maybe the old password was not correct." => "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
+"Private key password successfully updated." => "개인 키 암호가 성공적으로 업데이트 됨.",
+"Could not update the private key password. Maybe the old password was not correct." => "개인 키 암호를 업데이트할 수 없습니다. 이전 암호가 올바르지 않은 것 같습니다.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "개인 키가 올바르지 않습니다! 암호가 %s(예: 회사 디렉터리) 외부에서 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.",
+"Unknown error please check your system settings or contact your administrator" => "알 수 없는 오류. 시스템 설정을 확인하거나 관리자에게 문의하십시오.",
+"Missing requirements." => "요구 사항이 부족합니다.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "PHP 5.3.3 이상 설치 여부, PHP의 OpenSSL 확장 기능 활성화 및 설정 여부를 확인하십시오. 암호화 앱이 비활성화 되었습니다.",
+"Following users are not set up for encryption:" => "다음 사용자는 암호화를 사용할 수 없습니다:",
+"Initial encryption started... This can take some time. Please wait." => "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.",
"Saving..." => "저장 중...",
+"Go directly to your " => "다음으로 바로 가기: ",
"personal settings" => "개인 설정",
"Encryption" => "암호화",
-"Recovery key password" => "키 비밀번호 복구",
+"Enable recovery key (allow to recover users files in case of password loss):" => "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):",
+"Recovery key password" => "복구 키 암호",
+"Repeat Recovery key password" => "복구 키 암호 재입력",
"Enabled" => "활성화",
"Disabled" => "비활성화",
-"Change recovery key password:" => "복구 키 비밀번호 변경",
-"Old Recovery key password" => "예전 복구 키 비밀번호",
-"New Recovery key password" => "새 복구 키 비밀번호",
+"Change recovery key password:" => "복구 키 암호 변경:",
+"Old Recovery key password" => "이전 복구 키 암호",
+"New Recovery key password" => "새 복구 키 암호",
+"Repeat New Recovery key password" => "새 복구 키 암호 재입력",
"Change Password" => "암호 변경",
-"Old log-in password" => "예전 로그인 암호",
+"Your private key password no longer match your log-in password:" => "개인 키 암호와 로그인 암호가 일치하지 않습니다:",
+"Set your old private key password to your current log-in password." => "이전 개인 키 암호를 현재 로그인 암호로 설정하십시오.",
+" If you don't remember your old password you can ask your administrator to recover your files." => " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.",
+"Old log-in password" => "이전 로그인 암호",
"Current log-in password" => "현재 로그인 암호",
"Update Private Key Password" => "개인 키 암호 업데이트",
+"Enable password recovery:" => "암호 복구 사용:",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다",
"File recovery settings updated" => "파일 복구 설정 업데이트됨",
-"Could not update file recovery" => "파일 복구를 업데이트 할수 없습니다"
+"Could not update file recovery" => "파일 복구를 업데이트할 수 없습니다"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php
index 5d1a48d1246..b768bd46f8c 100644
--- a/apps/files_encryption/l10n/pl.php
+++ b/apps/files_encryption/l10n/pl.php
@@ -15,6 +15,7 @@ $TRANSLATIONS = array(
"Missing requirements." => "Brak wymagań.",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Proszę upewnić się, że PHP 5.3.3 lub nowszy jest zainstalowany i że OpenSSL oraz rozszerzenie PHP jest włączone i poprawnie skonfigurowane. Obecnie szyfrowanie aplikacji zostało wyłączone.",
"Following users are not set up for encryption:" => "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:",
+"Initial encryption started... This can take some time. Please wait." => "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.",
"Saving..." => "Zapisywanie...",
"Go directly to your " => "Przejdź bezpośrednio do",
"personal settings" => "Ustawienia osobiste",
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 17bcac5c585..5dcb05fa196 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -29,6 +29,8 @@ namespace OCA\Encryption;
*/
class Helper {
+ private static $tmpFileMapping; // Map tmp files to files in data/user/files
+
/**
* @brief register share related hooks
*
@@ -59,6 +61,7 @@ class Helper {
*/
public static function registerFilesystemHooks() {
+ \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Encryption\Hooks', 'preRename');
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename');
}
@@ -274,7 +277,7 @@ class Helper {
$split = explode('/', $trimmed);
// it is not a file relative to data/user/files
- if (count($split) < 2 || $split[1] !== 'files') {
+ if (count($split) < 2 || ($split[1] !== 'files' && $split[1] !== 'cache')) {
return false;
}
@@ -423,5 +426,27 @@ class Helper {
public static function escapeGlobPattern($path) {
return preg_replace('/(\*|\?|\[)/', '[$1]', $path);
}
+
+ /**
+ * @brief remember from which file the tmp file (getLocalFile() call) was created
+ * @param string $tmpFile path of tmp file
+ * @param string $originalFile path of the original file relative to data/
+ */
+ public static function addTmpFileToMapper($tmpFile, $originalFile) {
+ self::$tmpFileMapping[$tmpFile] = $originalFile;
+ }
+
+ /**
+ * @brief get the path of the original file
+ * @param string $tmpFile path of the tmp file
+ * @return mixed path of the original file or false
+ */
+ public static function getPathFromTmpFile($tmpFile) {
+ if (isset(self::$tmpFileMapping[$tmpFile])) {
+ return self::$tmpFileMapping[$tmpFile];
+ }
+
+ return false;
+ }
}
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 5ba3bfa784f..4e71ab1dd5d 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -37,6 +37,7 @@ namespace OCA\Encryption;
class Proxy extends \OC_FileProxy {
private static $blackList = null; //mimetypes blacklisted from encryption
+ private static $unencryptedSizes = array(); // remember unencrypted size
/**
* Check if a file requires encryption
@@ -114,6 +115,13 @@ class Proxy extends \OC_FileProxy {
// get encrypted content
$data = $view->file_get_contents($tmpPath);
+ // store new unenecrypted size so that it can be updated
+ // in the post proxy
+ $tmpFileInfo = $view->getFileInfo($tmpPath);
+ if ( isset($tmpFileInfo['size']) ) {
+ self::$unencryptedSizes[\OC_Filesystem::normalizePath($path)] = $tmpFileInfo['size'];
+ }
+
// remove our temp file
$view->deleteAll('/' . \OCP\User::getUser() . '/cache/' . $cacheFolder);
@@ -127,6 +135,24 @@ class Proxy extends \OC_FileProxy {
}
+ /**
+ * @brief update file cache with the new unencrypted size after file was written
+ * @param string $path
+ * @param mixed $result
+ * @return mixed
+ */
+ public function postFile_put_contents($path, $result) {
+ $normalizedPath = \OC_Filesystem::normalizePath($path);
+ if ( isset(self::$unencryptedSizes[$normalizedPath]) ) {
+ $view = new \OC_FilesystemView('/');
+ $view->putFileInfo($normalizedPath,
+ array('encrypted' => true, 'encrypted_size' => self::$unencryptedSizes[$normalizedPath]));
+ unset(self::$unencryptedSizes[$normalizedPath]);
+ }
+
+ return $result;
+ }
+
/**
* @param string $path Path of file from which has been read
* @param string $data Data that has been read from file
@@ -182,8 +208,11 @@ class Proxy extends \OC_FileProxy {
*/
public function preUnlink($path) {
- // let the trashbin handle this
- if (\OCP\App::isEnabled('files_trashbin')) {
+ $relPath = Helper::stripUserFilesPath($path);
+
+ // skip this method if the trash bin is enabled or if we delete a file
+ // outside of /data/user/files
+ if (\OCP\App::isEnabled('files_trashbin') || $relPath === false) {
return true;
}
@@ -197,10 +226,7 @@ class Proxy extends \OC_FileProxy {
$util = new Util($view, $userId);
- // get relative path
- $relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
-
- list($owner, $ownerPath) = $util->getUidAndFilename($relativePath);
+ list($owner, $ownerPath) = $util->getUidAndFilename($relPath);
// Delete keyfile & shareKey so it isn't orphaned
if (!Keymanager::deleteFileKey($view, $ownerPath)) {
@@ -246,8 +272,8 @@ class Proxy extends \OC_FileProxy {
// split the path parts
$pathParts = explode('/', $path);
- // FIXME: handling for /userId/cache used by webdav for chunking. The cache chunks are NOT encrypted
- if (isset($pathParts[2]) && $pathParts[2] === 'cache') {
+ // don't try to encrypt/decrypt cache chunks or files in the trash bin
+ if (isset($pathParts[2]) && ($pathParts[2] === 'cache' || $pathParts[2] === 'files_trashbin')) {
return $result;
}
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 7a37d2200a4..b3bf34ddb82 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -64,6 +64,9 @@ class Stream {
private $publicKey;
private $encKeyfile;
private $newFile; // helper var, we only need to write the keyfile for new files
+ private $isLocalTmpFile = false; // do we operate on a local tmp file
+ private $localTmpFile; // path of local tmp file
+
/**
* @var \OC\Files\View
*/
@@ -91,13 +94,18 @@ class Stream {
$this->rootView = new \OC_FilesystemView('/');
}
-
$this->session = new \OCA\Encryption\Session($this->rootView);
$this->privateKey = $this->session->getPrivateKey();
- // rawPath is relative to the data directory
- $this->rawPath = \OC\Files\Filesystem::normalizePath(str_replace('crypt://', '', $path));
+ $normalizedPath = \OC\Files\Filesystem::normalizePath(str_replace('crypt://', '', $path));
+ if ($originalFile = Helper::getPathFromTmpFile($normalizedPath)) {
+ $this->rawPath = $originalFile;
+ $this->isLocalTmpFile = true;
+ $this->localTmpFile = $normalizedPath;
+ } else {
+ $this->rawPath = $normalizedPath;
+ }
$this->userId = Helper::getUser($this->rawPath);
@@ -141,10 +149,14 @@ class Stream {
\OCA\Encryption\Helper::redirectToErrorPage($this->session);
}
- $this->size = $this->rootView->filesize($this->rawPath, $mode);
+ $this->size = $this->rootView->filesize($this->rawPath);
}
- $this->handle = $this->rootView->fopen($this->rawPath, $mode);
+ if ($this->isLocalTmpFile) {
+ $this->handle = fopen($this->localTmpFile, $mode);
+ } else {
+ $this->handle = $this->rootView->fopen($this->rawPath, $mode);
+ }
\OC_FileProxy::$enabled = $proxyStatus;
@@ -163,15 +175,26 @@ class Stream {
}
+ /**
+ * @brief Returns the current position of the file pointer
+ * @return int position of the file pointer
+ */
+ public function stream_tell() {
+ return ftell($this->handle);
+ }
+
/**
* @param $offset
* @param int $whence
+ * @return bool true if fseek was successful, otherwise false
*/
public function stream_seek($offset, $whence = SEEK_SET) {
$this->flush();
- fseek($this->handle, $offset, $whence);
+ // this wrapper needs to return "true" for success.
+ // the fseek call itself returns 0 on succeess
+ return !fseek($this->handle, $offset, $whence);
}
@@ -477,7 +500,7 @@ class Stream {
if ($this->privateKey === false) {
// cleanup
- if ($this->meta['mode'] !== 'r' && $this->meta['mode'] !== 'rb') {
+ if ($this->meta['mode'] !== 'r' && $this->meta['mode'] !== 'rb' && !$this->isLocalTmpFile) {
// Disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
@@ -498,6 +521,7 @@ class Stream {
if (
$this->meta['mode'] !== 'r' &&
$this->meta['mode'] !== 'rb' &&
+ $this->isLocalTmpFile === false &&
$this->size > 0 &&
$this->unencryptedSize > 0
) {
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 434ed225644..8816d4d649a 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -2,9 +2,10 @@
/**
* ownCloud
*
- * @author Sam Tuke, Frank Karlitschek
+ * @author Sam Tuke, Frank Karlitschek, Bjoern Schiessle
* @copyright 2012 Sam Tuke ,
- * Frank Karlitschek
+ * Frank Karlitschek ,
+ * Bjoern Schiessle
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
@@ -101,15 +102,24 @@ class Util {
or !$this->view->file_exists($this->publicKeyPath)
or !$this->view->file_exists($this->privateKeyPath)
) {
-
return false;
-
} else {
-
return true;
-
}
+ }
+ /**
+ * @brief check if the users private & public key exists
+ * @return boolean
+ */
+ public function userKeysExists() {
+ if (
+ $this->view->file_exists($this->privateKeyPath) &&
+ $this->view->file_exists($this->publicKeyPath)) {
+ return true;
+ } else {
+ return false;
+ }
}
/**
@@ -232,11 +242,9 @@ class Util {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $row = $result->fetchRow();
- if (isset($row['recovery_enabled'])) {
- $recoveryEnabled[] = $row['recovery_enabled'];
- }
+ $row = $result->fetchRow();
+ if ($row && isset($row['recovery_enabled'])) {
+ $recoveryEnabled[] = $row['recovery_enabled'];
}
}
@@ -280,7 +288,7 @@ class Util {
$sql = 'UPDATE `*PREFIX*encryption` SET `recovery_enabled` = ? WHERE `uid` = ?';
$args = array(
- $enabled,
+ $enabled ? '1' : '0',
$this->userId
);
@@ -405,49 +413,6 @@ class Util {
}
- /**
- * @brief Fetch the last lines of a file efficiently
- * @note Safe to use on large files; does not read entire file to memory
- * @note Derivative of http://tekkie.flashbit.net/php/tail-functionality-in-php
- */
- public function tail($filename, $numLines) {
-
- \OC_FileProxy::$enabled = false;
-
- $text = '';
- $pos = -1;
- $handle = $this->view->fopen($filename, 'r');
-
- while ($numLines > 0) {
-
- --$pos;
-
- if (fseek($handle, $pos, SEEK_END) !== 0) {
-
- rewind($handle);
- $numLines = 0;
-
- } elseif (fgetc($handle) === "\n") {
-
- --$numLines;
-
- }
-
- $block_size = (-$pos) % 8192;
- if ($block_size === 0 || $numLines === 0) {
-
- $text = fread($handle, ($block_size === 0 ? 8192 : $block_size)) . $text;
-
- }
- }
-
- fclose($handle);
-
- \OC_FileProxy::$enabled = true;
-
- return $text;
- }
-
/**
* @brief Check if a given path identifies an encrypted file
* @param string $path
@@ -455,20 +420,36 @@ class Util {
*/
public function isEncryptedPath($path) {
- $relPath = Helper::getPathToRealFile($path);
+ // Disable encryption proxy so data retrieved is in its
+ // original form
+ $proxyStatus = \OC_FileProxy::$enabled;
+ \OC_FileProxy::$enabled = false;
- if ($relPath === false) {
- $relPath = Helper::stripUserFilesPath($path);
+ // we only need 24 byte from the last chunk
+ $data = '';
+ $handle = $this->view->fopen($path, 'r');
+ if (is_resource($handle)) {
+ // suppress fseek warining, we handle the case that fseek doesn't
+ // work in the else branch
+ if (@fseek($handle, -24, SEEK_END) === 0) {
+ $data = fgets($handle);
+ } else {
+ // if fseek failed on the storage we create a local copy from the file
+ // and read this one
+ fclose($handle);
+ $localFile = $this->view->getLocalFile($path);
+ $handle = fopen($localFile, 'r');
+ if (is_resource($handle) && fseek($handle, -24, SEEK_END) === 0) {
+ $data = fgets($handle);
+ }
+ }
+ fclose($handle);
}
- $fileKey = Keymanager::getFileKey($this->view, $this, $relPath);
-
- if ($fileKey === false) {
- return false;
- }
-
- return true;
+ // re-enable proxy
+ \OC_FileProxy::$enabled = $proxyStatus;
+ return Crypt::isCatfileContent($data);
}
/**
@@ -514,7 +495,20 @@ class Util {
$lastChunckPos = ($lastChunkNr * 8192);
// seek to end
- fseek($stream, $lastChunckPos);
+ if (@fseek($stream, $lastChunckPos) === -1) {
+ // storage doesn't support fseek, we need a local copy
+ fclose($stream);
+ $localFile = $this->view->getLocalFile($path);
+ Helper::addTmpFileToMapper($localFile, $path);
+ $stream = fopen('crypt://' . $localFile, "r");
+ if (fseek($stream, $lastChunckPos) === -1) {
+ // if fseek also fails on the local storage, than
+ // there is nothing we can do
+ fclose($stream);
+ \OCP\Util::writeLog('Encryption library', 'couldn\'t determine size of "' . $path, \OCP\Util::ERROR);
+ return $result;
+ }
+ }
// get the content of the last chunk
$lastChunkContent = fread($stream, $lastChunkSize);
@@ -761,7 +755,7 @@ class Util {
\OC\Files\Filesystem::putFileInfo($relPath, array(
'encrypted' => false,
'size' => $size,
- 'unencrypted_size' => $size,
+ 'unencrypted_size' => 0,
'etag' => $fileInfo['etag']
));
@@ -831,32 +825,35 @@ class Util {
// Open enc file handle for binary writing, with same filename as original plain file
$encHandle = fopen('crypt://' . $rawPath . '.part', 'wb');
- // Move plain file to a temporary location
- $size = stream_copy_to_stream($plainHandle, $encHandle);
+ if (is_resource($encHandle)) {
+ // Move plain file to a temporary location
+ $size = stream_copy_to_stream($plainHandle, $encHandle);
- fclose($encHandle);
- fclose($plainHandle);
+ fclose($encHandle);
+ fclose($plainHandle);
- $fakeRoot = $this->view->getRoot();
- $this->view->chroot('/' . $this->userId . '/files');
+ $fakeRoot = $this->view->getRoot();
+ $this->view->chroot('/' . $this->userId . '/files');
- $this->view->rename($relPath . '.part', $relPath);
+ $this->view->rename($relPath . '.part', $relPath);
- // set timestamp
- $this->view->touch($relPath, $timestamp);
+ // set timestamp
+ $this->view->touch($relPath, $timestamp);
- $this->view->chroot($fakeRoot);
+ $encSize = $this->view->filesize($relPath);
- // Add the file to the cache
- \OC\Files\Filesystem::putFileInfo($relPath, array(
- 'encrypted' => true,
- 'size' => $size,
- 'unencrypted_size' => $size,
- 'etag' => $fileInfo['etag']
- ));
+ $this->view->chroot($fakeRoot);
- $encryptedFiles[] = $relPath;
+ // Add the file to the cache
+ \OC\Files\Filesystem::putFileInfo($relPath, array(
+ 'encrypted' => true,
+ 'size' => $encSize,
+ 'unencrypted_size' => $size,
+ 'etag' => $fileInfo['etag']
+ ));
+ $encryptedFiles[] = $relPath;
+ }
}
// Encrypt legacy encrypted files
@@ -973,8 +970,8 @@ class Util {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $row = $result->fetchRow();
+ $row = $result->fetchRow();
+ if ($row) {
$path = substr($row['path'], strlen('files'));
}
}
@@ -1254,11 +1251,9 @@ class Util {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $row = $result->fetchRow();
- if (isset($row['migration_status'])) {
- $migrationStatus[] = $row['migration_status'];
- }
+ $row = $result->fetchRow();
+ if ($row && isset($row['migration_status'])) {
+ $migrationStatus[] = $row['migration_status'];
}
}
@@ -1366,59 +1361,32 @@ class Util {
}
}
-
/**
* @brief go recursively through a dir and collect all files and sub files.
* @param string $dir relative to the users files folder
* @return array with list of files relative to the users files folder
*/
public function getAllFiles($dir) {
-
$result = array();
+ $dirList = array($dir);
- $content = $this->view->getDirectoryContent(\OC\Files\Filesystem::normalizePath(
- $this->userFilesDir . '/' . $dir));
-
- // handling for re shared folders
- $pathSplit = explode('/', $dir);
-
- foreach ($content as $c) {
-
- $sharedPart = $pathSplit[sizeof($pathSplit) - 1];
- $targetPathSplit = array_reverse(explode('/', $c['path']));
-
- $path = '';
-
- // rebuild path
- foreach ($targetPathSplit as $pathPart) {
-
- if ($pathPart !== $sharedPart) {
-
- $path = '/' . $pathPart . $path;
+ while ($dirList) {
+ $dir = array_pop($dirList);
+ $content = $this->view->getDirectoryContent(\OC\Files\Filesystem::normalizePath(
+ $this->userFilesDir . '/' . $dir));
+ foreach ($content as $c) {
+ $usersPath = isset($c['usersPath']) ? $c['usersPath'] : $c['path'];
+ if ($c['type'] === 'dir') {
+ $dirList[] = substr($usersPath, strlen("files"));
} else {
-
- break;
-
+ $result[] = substr($usersPath, strlen("files"));
}
-
}
- $path = $dir . $path;
-
- if ($c['type'] === 'dir') {
-
- $result = array_merge($result, $this->getAllFiles($path));
-
- } else {
-
- $result[] = $path;
-
- }
}
return $result;
-
}
/**
@@ -1438,9 +1406,7 @@ class Util {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $row = $result->fetchRow();
- }
+ $row = $result->fetchRow();
}
return $row;
@@ -1464,9 +1430,7 @@ class Util {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $row = $result->fetchRow();
- }
+ $row = $result->fetchRow();
}
return $row;
@@ -1485,18 +1449,16 @@ class Util {
$result = $query->execute(array($id));
- $source = array();
+ $source = null;
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $source = $result->fetchRow();
- }
+ $source = $result->fetchRow();
}
$fileOwner = false;
- if (isset($source['parent'])) {
+ if ($source && isset($source['parent'])) {
$parent = $source['parent'];
@@ -1506,16 +1468,14 @@ class Util {
$result = $query->execute(array($parent));
- $item = array();
+ $item = null;
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
- if ($result->numRows() > 0) {
- $item = $result->fetchRow();
- }
+ $item = $result->fetchRow();
}
- if (isset($item['parent'])) {
+ if ($item && isset($item['parent'])) {
$parent = $item['parent'];
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index a4ed89b8a49..1b4239d82cd 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -2,7 +2,7 @@
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 1d527dca8eb..3ddaf4446df 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -9,64 +9,14 @@
-
';
@@ -86,8 +87,9 @@ function createVersionsDropdown(filename, files) {
html += '';
if (filename) {
- $('tr').filterAttr('data-file',filename).addClass('mouseOver');
- $(html).appendTo($('tr').filterAttr('data-file',filename).find('td.filename'));
+ fileEl = FileList.findFileEl(filename);
+ fileEl.addClass('mouseOver');
+ $(html).appendTo(fileEl.find('td.filename'));
} else {
$(html).appendTo($('thead .share'));
}
@@ -138,7 +140,7 @@ function createVersionsDropdown(filename, files) {
var preview = '';
- var download ='';
+ var download ='';
download+='';
@@ -146,8 +148,7 @@ function createVersionsDropdown(filename, files) {
download+='';
var revert='';
+ revert+=' id="' + revision.version + '">';
revert+='');
version.attr('value', revision.version);
version.html(preview + download + revert);
+ // add file here for proper name escaping
+ version.find('span.revertVersion').attr('value', files);
version.appendTo('#found_versions');
}
- $('tr').filterAttr('data-file',filename).addClass('mouseOver');
$('#dropdown').show('blind');
-
-
}
$(this).click(
diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php
index c8b45eee500..2b5bf3e9347 100644
--- a/apps/files_versions/l10n/de.php
+++ b/apps/files_versions/l10n/de.php
@@ -2,8 +2,8 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "Konnte %s nicht zurücksetzen",
"Versions" => "Versionen",
-"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.",
-"More versions..." => "Mehrere Versionen...",
+"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgängig machen.",
+"More versions..." => "Weitere Versionen...",
"No other versions available" => "Keine anderen Versionen verfügbar",
"Restore" => "Wiederherstellen"
);
diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php
index c8b45eee500..781774dcdd9 100644
--- a/apps/files_versions/l10n/de_DE.php
+++ b/apps/files_versions/l10n/de_DE.php
@@ -2,7 +2,7 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "Konnte %s nicht zurücksetzen",
"Versions" => "Versionen",
-"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.",
+"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgängig machen.",
"More versions..." => "Mehrere Versionen...",
"No other versions available" => "Keine anderen Versionen verfügbar",
"Restore" => "Wiederherstellen"
diff --git a/apps/files_versions/l10n/el.php b/apps/files_versions/l10n/el.php
index af608e7c042..5337f3b5a48 100644
--- a/apps/files_versions/l10n/el.php
+++ b/apps/files_versions/l10n/el.php
@@ -1,6 +1,6 @@
"Αδυναμία επαναφοράς του: %s",
+"Could not revert: %s" => "Αδυναμία επαναφοράς: %s",
"Versions" => "Εκδόσεις",
"Failed to revert {file} to revision {timestamp}." => "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.",
"More versions..." => "Περισσότερες εκδόσεις...",
diff --git a/apps/files_versions/l10n/es_MX.php b/apps/files_versions/l10n/es_MX.php
new file mode 100644
index 00000000000..b7acc376978
--- /dev/null
+++ b/apps/files_versions/l10n/es_MX.php
@@ -0,0 +1,10 @@
+ "No se puede revertir: %s",
+"Versions" => "Revisiones",
+"Failed to revert {file} to revision {timestamp}." => "No se ha podido revertir {archivo} a revisión {timestamp}.",
+"More versions..." => "Más versiones...",
+"No other versions available" => "No hay otras versiones disponibles",
+"Restore" => "Recuperar"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/id.php b/apps/files_versions/l10n/id.php
index ee7061805ba..14920cc52fd 100644
--- a/apps/files_versions/l10n/id.php
+++ b/apps/files_versions/l10n/id.php
@@ -2,6 +2,9 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "Tidak dapat mengembalikan: %s",
"Versions" => "Versi",
+"Failed to revert {file} to revision {timestamp}." => "Gagal mengembalikan {file} ke revisi {timestamp}.",
+"More versions..." => "Versi lebih...",
+"No other versions available" => "Tidak ada versi lain yang tersedia",
"Restore" => "Pulihkan"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/ko.php b/apps/files_versions/l10n/ko.php
index ba951c4107a..bd56c0489bf 100644
--- a/apps/files_versions/l10n/ko.php
+++ b/apps/files_versions/l10n/ko.php
@@ -2,9 +2,9 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "되돌릴 수 없습니다: %s",
"Versions" => "버전",
-"Failed to revert {file} to revision {timestamp}." => "{timestamp} 판의 {file}로 돌리는데 실패했습니다.",
-"More versions..." => "더 많은 버전들...",
-"No other versions available" => "다른 버전을 사용할수 없습니다",
+"Failed to revert {file} to revision {timestamp}." => "{file}을(를) 리비전 {timestamp}으(로) 되돌리는 데 실패하였습니다.",
+"More versions..." => "더 많은 버전...",
+"No other versions available" => "다른 버전을 사용할 수 없습니다",
"Restore" => "복원"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 42a15612d67..328ed4305f4 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -98,7 +98,6 @@ class Storage {
$files_view = new \OC\Files\View('/'.$uid .'/files');
$users_view = new \OC\Files\View('/'.$uid);
- $versions_view = new \OC\Files\View('/'.$uid.'/files_versions');
// check if filename is a directory
if($files_view->is_dir($filename)) {
@@ -132,7 +131,10 @@ class Storage {
\OC_FileProxy::$enabled = false;
// store a new version of a file
- $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename));
+ $mtime = $users_view->filemtime('files'.$filename);
+ $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'. $mtime);
+ // call getFileInfo to enforce a file cache entry for the new version
+ $users_view->getFileInfo('files_versions'.$filename.'.v'.$mtime);
// reset proxy state
\OC_FileProxy::$enabled = $proxyStatus;
@@ -259,11 +261,12 @@ class Storage {
/**
* @brief get a list of all available versions of a file in descending chronological order
- * @param $uid user id from the owner of the file
- * @param $filename file to find versions of, relative to the user files dir
- * @returns array
+ * @param string $uid user id from the owner of the file
+ * @param string $filename file to find versions of, relative to the user files dir
+ * @param string $userFullPath
+ * @returns array versions newest version first
*/
- public static function getVersions($uid, $filename) {
+ public static function getVersions($uid, $filename, $userFullPath = '') {
$versions = array();
// fetch for old versions
$view = new \OC\Files\View('/' . $uid . '/' . self::VERSIONS_ROOT);
@@ -284,7 +287,11 @@ class Storage {
$versions[$key]['cur'] = 0;
$versions[$key]['version'] = $version;
$versions[$key]['humanReadableTimestamp'] = self::getHumanReadableTimestamp($version);
- $versions[$key]['preview'] = \OCP\Util::linkToRoute('core_ajax_versions_preview', array('file' => $filename, 'version' => $version, 'user' => $uid));
+ if (empty($userFullPath)) {
+ $versions[$key]['preview'] = '';
+ } else {
+ $versions[$key]['preview'] = \OCP\Util::linkToRoute('core_ajax_versions_preview', array('file' => $userFullPath, 'version' => $version));
+ }
$versions[$key]['path'] = $filename;
$versions[$key]['name'] = $versionedFile;
$versions[$key]['size'] = $file['size'];
@@ -390,12 +397,13 @@ class Storage {
}
}
- ksort($versions);
+ // newest version first
+ krsort($versions);
$result = array();
foreach ($versions as $key => $value) {
- $size = $view->filesize($value['path']);
+ $size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']);
$filename = $value['path'];
$result['all'][$key]['version'] = $value['timestamp'];
@@ -410,6 +418,63 @@ class Storage {
return $result;
}
+ /**
+ * @brief get list of files we want to expire
+ * @param int $currentTime timestamp of current time
+ * @param array $versions list of versions
+ * @return array containing the list of to deleted versions and the size of them
+ */
+ protected static function getExpireList($time, $versions) {
+
+ $size = 0;
+ $toDelete = array(); // versions we want to delete
+
+ $interval = 1;
+ $step = Storage::$max_versions_per_interval[$interval]['step'];
+ if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
+ $nextInterval = -1;
+ } else {
+ $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
+ }
+
+ $firstVersion = reset($versions);
+ $firstKey = key($versions);
+ $prevTimestamp = $firstVersion['version'];
+ $nextVersion = $firstVersion['version'] - $step;
+ unset($versions[$firstKey]);
+
+ foreach ($versions as $key => $version) {
+ $newInterval = true;
+ while ($newInterval) {
+ if ($nextInterval == -1 || $prevTimestamp > $nextInterval) {
+ if ($version['version'] > $nextVersion) {
+ //distance between two version too small, mark to delete
+ $toDelete[$key] = $version['path'] . '.v' . $version['version'];
+ $size += $version['size'];
+ \OCP\Util::writeLog('files_versions', 'Mark to expire '. $version['path'] .' next version should be ' . $nextVersion . " or smaller. (prevTimestamp: " . $prevTimestamp . "; step: " . $step, \OCP\Util::DEBUG);
+ } else {
+ $nextVersion = $version['version'] - $step;
+ $prevTimestamp = $version['version'];
+ }
+ $newInterval = false; // version checked so we can move to the next one
+ } else { // time to move on to the next interval
+ $interval++;
+ $step = Storage::$max_versions_per_interval[$interval]['step'];
+ $nextVersion = $prevTimestamp - $step;
+ if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
+ $nextInterval = -1;
+ } else {
+ $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
+ }
+ $newInterval = true; // we changed the interval -> check same version with new interval
+ }
+ }
+ }
+
+ return array($toDelete, $size);
+
+ }
+
/**
* @brief Erase a file's versions which exceed the set quota
*/
@@ -443,7 +508,7 @@ class Storage {
// subtract size of files and current versions size from quota
if ($softQuota) {
$files_view = new \OC\Files\View('/'.$uid.'/files');
- $rootInfo = $files_view->getFileInfo('/');
+ $rootInfo = $files_view->getFileInfo('/', false);
$free = $quota-$rootInfo['size']; // remaining free space for user
if ( $free > 0 ) {
$availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - ($versionsSize + $offset); // how much space can be used for versions
@@ -454,33 +519,35 @@ class Storage {
$availableSpace = $quota - $offset;
}
-
- // with the probability of 0.1% we reduce the number of all versions not only for the current file
- $random = rand(0, 1000);
- if ($random == 0) {
- $allFiles = true;
- } else {
- $allFiles = false;
- }
-
$allVersions = Storage::getVersions($uid, $filename);
- $versionsByFile[$filename] = $allVersions;
- $sizeOfDeletedVersions = self::delOldVersions($versionsByFile, $allVersions, $versionsFileview);
+ $time = time();
+ list($toDelete, $sizeOfDeletedVersions) = self::getExpireList($time, $allVersions);
+
$availableSpace = $availableSpace + $sizeOfDeletedVersions;
$versionsSize = $versionsSize - $sizeOfDeletedVersions;
// if still not enough free space we rearrange the versions from all files
- if ($availableSpace <= 0 || $allFiles) {
+ if ($availableSpace <= 0) {
$result = Storage::getAllVersions($uid);
- $versionsByFile = $result['by_file'];
$allVersions = $result['all'];
- $sizeOfDeletedVersions = self::delOldVersions($versionsByFile, $allVersions, $versionsFileview);
+ foreach ($result['by_file'] as $versions) {
+ list($toDeleteNew, $size) = self::getExpireList($time, $versions);
+ $toDelete = array_merge($toDelete, $toDeleteNew);
+ $sizeOfDeletedVersions += $size;
+ }
$availableSpace = $availableSpace + $sizeOfDeletedVersions;
$versionsSize = $versionsSize - $sizeOfDeletedVersions;
}
+ foreach($toDelete as $key => $path) {
+ \OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $path));
+ $versionsFileview->unlink($path);
+ unset($allVersions[$key]); // update array with the versions we keep
+ \OCP\Util::writeLog('files_versions', "Expire: " . $path, \OCP\Util::DEBUG);
+ }
+
// Check if enough space is available after versions are rearranged.
// If not we delete the oldest versions until we meet the size limit for versions,
// but always keep the two latest versions
@@ -490,6 +557,7 @@ class Storage {
$version = current($allVersions);
$versionsFileview->unlink($version['path'].'.v'.$version['version']);
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $version['path'].'.v'.$version['version']));
+ \OCP\Util::writeLog('files_versions', 'running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'] , \OCP\Util::DEBUG);
$versionsSize -= $version['size'];
$availableSpace += $version['size'];
next($allVersions);
@@ -502,69 +570,6 @@ class Storage {
return false;
}
- /**
- * @brief delete old version from a given list of versions
- *
- * @param array $versionsByFile list of versions ordered by files
- * @param array $allVversions all versions accross multiple files
- * @param $versionsFileview OC\Files\View on data/user/files_versions
- * @return size of releted versions
- */
- private static function delOldVersions($versionsByFile, &$allVersions, $versionsFileview) {
-
- $time = time();
- $size = 0;
-
- // delete old versions for every given file
- foreach ($versionsByFile as $versions) {
- $versions = array_reverse($versions); // newest version first
-
- $interval = 1;
- $step = Storage::$max_versions_per_interval[$interval]['step'];
- if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
- $nextInterval = -1;
- } else {
- $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
- }
-
- $firstVersion = reset($versions);
- $firstKey = key($versions);
- $prevTimestamp = $firstVersion['version'];
- $nextVersion = $firstVersion['version'] - $step;
- unset($versions[$firstKey]);
-
- foreach ($versions as $key => $version) {
- $newInterval = true;
- while ($newInterval) {
- if ($nextInterval == -1 || $version['version'] >= $nextInterval) {
- if ($version['version'] > $nextVersion) {
- //distance between two version too small, delete version
- $versionsFileview->unlink($version['path'] . '.v' . $version['version']);
- \OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $version['path'] . '.v' . $version['version']));
- $size += $version['size'];
- unset($allVersions[$key]); // update array with all versions
- } else {
- $nextVersion = $version['version'] - $step;
- }
- $newInterval = false; // version checked so we can move to the next one
- } else { // time to move on to the next interval
- $interval++;
- $step = Storage::$max_versions_per_interval[$interval]['step'];
- $nextVersion = $prevTimestamp - $step;
- if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
- $nextInterval = -1;
- } else {
- $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
- }
- $newInterval = true; // we changed the interval -> check same version with new interval
- }
- }
- $prevTimestamp = $version['version'];
- }
- }
- return $size;
- }
-
/**
* @brief create recursively missing directories
* @param string $filename $path to a file
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
new file mode 100644
index 00000000000..25490aa1a04
--- /dev/null
+++ b/apps/files_versions/tests/versions.php
@@ -0,0 +1,188 @@
+
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see .
+ *
+ */
+
+require_once __DIR__ . '/../lib/versions.php';
+
+/**
+ * Class Test_Files_versions
+ * @brief this class provide basic files versions test
+ */
+class Test_Files_Versioning extends \PHPUnit_Framework_TestCase {
+
+
+ /**
+ * @medium
+ * @brief test expire logic
+ * @dataProvider versionsProvider
+ */
+ function testGetExpireList($versions, $sizeOfAllDeletedFiles) {
+
+ // last interval enda at 2592000
+ $startTime = 5000000;
+
+ $testClass = new VersionStorageToTest();
+ list($deleted, $size) = $testClass->callProtectedGetExpireList($startTime, $versions);
+
+ // we should have deleted 16 files each of the size 1
+ $this->assertEquals($sizeOfAllDeletedFiles, $size);
+
+ // the deleted array should only contain versions which should be deleted
+ foreach($deleted as $key => $path) {
+ unset($versions[$key]);
+ $this->assertEquals("delete", substr($path, 0, strlen("delete")));
+ }
+
+ // the versions array should only contain versions which should be kept
+ foreach ($versions as $version) {
+ $this->assertEquals("keep", $version['path']);
+ }
+
+ }
+
+ public function versionsProvider() {
+ return array(
+ // first set of versions uniformly distributed versions
+ array(
+ array(
+ // first slice (10sec) keep one version every 2 seconds
+ array("version" => 4999999, "path" => "keep", "size" => 1),
+ array("version" => 4999998, "path" => "delete", "size" => 1),
+ array("version" => 4999997, "path" => "keep", "size" => 1),
+ array("version" => 4999995, "path" => "keep", "size" => 1),
+ array("version" => 4999994, "path" => "delete", "size" => 1),
+ //next slice (60sec) starts at 4999990 keep one version every 10 secons
+ array("version" => 4999988, "path" => "keep", "size" => 1),
+ array("version" => 4999978, "path" => "keep", "size" => 1),
+ array("version" => 4999975, "path" => "delete", "size" => 1),
+ array("version" => 4999972, "path" => "delete", "size" => 1),
+ array("version" => 4999967, "path" => "keep", "size" => 1),
+ array("version" => 4999958, "path" => "delete", "size" => 1),
+ array("version" => 4999957, "path" => "keep", "size" => 1),
+ //next slice (3600sec) start at 4999940 keep one version every 60 seconds
+ array("version" => 4999900, "path" => "keep", "size" => 1),
+ array("version" => 4999841, "path" => "delete", "size" => 1),
+ array("version" => 4999840, "path" => "keep", "size" => 1),
+ array("version" => 4999780, "path" => "keep", "size" => 1),
+ array("version" => 4996401, "path" => "keep", "size" => 1),
+ // next slice (86400sec) start at 4996400 keep one version every 3600 seconds
+ array("version" => 4996350, "path" => "delete", "size" => 1),
+ array("version" => 4992800, "path" => "keep", "size" => 1),
+ array("version" => 4989800, "path" => "delete", "size" => 1),
+ array("version" => 4989700, "path" => "delete", "size" => 1),
+ array("version" => 4989200, "path" => "keep", "size" => 1),
+ // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds
+ array("version" => 4913600, "path" => "keep", "size" => 1),
+ array("version" => 4852800, "path" => "delete", "size" => 1),
+ array("version" => 4827201, "path" => "delete", "size" => 1),
+ array("version" => 4827200, "path" => "keep", "size" => 1),
+ array("version" => 4777201, "path" => "delete", "size" => 1),
+ array("version" => 4777501, "path" => "delete", "size" => 1),
+ array("version" => 4740000, "path" => "keep", "size" => 1),
+ // final slice starts at 2408000 keep one version every 604800 secons
+ array("version" => 2408000, "path" => "keep", "size" => 1),
+ array("version" => 1803201, "path" => "delete", "size" => 1),
+ array("version" => 1803200, "path" => "keep", "size" => 1),
+ array("version" => 1800199, "path" => "delete", "size" => 1),
+ array("version" => 1800100, "path" => "delete", "size" => 1),
+ array("version" => 1198300, "path" => "keep", "size" => 1),
+ ),
+ 16 // size of all deleted files (every file has the size 1)
+ ),
+ // second set of versions, here we have only really old versions
+ array(
+ array(
+ // first slice (10sec) keep one version every 2 seconds
+ // next slice (60sec) starts at 4999990 keep one version every 10 secons
+ // next slice (3600sec) start at 4999940 keep one version every 60 seconds
+ // next slice (86400sec) start at 4996400 keep one version every 3600 seconds
+ array("version" => 4996400, "path" => "keep", "size" => 1),
+ array("version" => 4996350, "path" => "delete", "size" => 1),
+ array("version" => 4996350, "path" => "delete", "size" => 1),
+ array("version" => 4992800, "path" => "keep", "size" => 1),
+ array("version" => 4989800, "path" => "delete", "size" => 1),
+ array("version" => 4989700, "path" => "delete", "size" => 1),
+ array("version" => 4989200, "path" => "keep", "size" => 1),
+ // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds
+ array("version" => 4913600, "path" => "keep", "size" => 1),
+ array("version" => 4852800, "path" => "delete", "size" => 1),
+ array("version" => 4827201, "path" => "delete", "size" => 1),
+ array("version" => 4827200, "path" => "keep", "size" => 1),
+ array("version" => 4777201, "path" => "delete", "size" => 1),
+ array("version" => 4777501, "path" => "delete", "size" => 1),
+ array("version" => 4740000, "path" => "keep", "size" => 1),
+ // final slice starts at 2408000 keep one version every 604800 secons
+ array("version" => 2408000, "path" => "keep", "size" => 1),
+ array("version" => 1803201, "path" => "delete", "size" => 1),
+ array("version" => 1803200, "path" => "keep", "size" => 1),
+ array("version" => 1800199, "path" => "delete", "size" => 1),
+ array("version" => 1800100, "path" => "delete", "size" => 1),
+ array("version" => 1198300, "path" => "keep", "size" => 1),
+ ),
+ 11 // size of all deleted files (every file has the size 1)
+ ),
+ // third set of versions, with some gaps inbetween
+ array(
+ array(
+ // first slice (10sec) keep one version every 2 seconds
+ array("version" => 4999999, "path" => "keep", "size" => 1),
+ array("version" => 4999998, "path" => "delete", "size" => 1),
+ array("version" => 4999997, "path" => "keep", "size" => 1),
+ array("version" => 4999995, "path" => "keep", "size" => 1),
+ array("version" => 4999994, "path" => "delete", "size" => 1),
+ //next slice (60sec) starts at 4999990 keep one version every 10 secons
+ array("version" => 4999988, "path" => "keep", "size" => 1),
+ array("version" => 4999978, "path" => "keep", "size" => 1),
+ //next slice (3600sec) start at 4999940 keep one version every 60 seconds
+ // next slice (86400sec) start at 4996400 keep one version every 3600 seconds
+ array("version" => 4989200, "path" => "keep", "size" => 1),
+ // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds
+ array("version" => 4913600, "path" => "keep", "size" => 1),
+ array("version" => 4852800, "path" => "delete", "size" => 1),
+ array("version" => 4827201, "path" => "delete", "size" => 1),
+ array("version" => 4827200, "path" => "keep", "size" => 1),
+ array("version" => 4777201, "path" => "delete", "size" => 1),
+ array("version" => 4777501, "path" => "delete", "size" => 1),
+ array("version" => 4740000, "path" => "keep", "size" => 1),
+ // final slice starts at 2408000 keep one version every 604800 secons
+ array("version" => 2408000, "path" => "keep", "size" => 1),
+ array("version" => 1803201, "path" => "delete", "size" => 1),
+ array("version" => 1803200, "path" => "keep", "size" => 1),
+ array("version" => 1800199, "path" => "delete", "size" => 1),
+ array("version" => 1800100, "path" => "delete", "size" => 1),
+ array("version" => 1198300, "path" => "keep", "size" => 1),
+ ),
+ 9 // size of all deleted files (every file has the size 1)
+ ),
+
+ );
+ }
+
+}
+
+// extend the original class to make it possible to test protected methods
+class VersionStorageToTest extends \OCA\Files_Versions\Storage {
+
+ public function callProtectedGetExpireList($time, $versions) {
+ return self::getExpireList($time, $versions);
+
+ }
+}
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index 490c3e95926..e09c377a907 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -33,9 +33,9 @@
width: 100% !important;
height: 50px;
background-color: lightyellow;
- border-radius: 0.5em;
- padding: 0.6em 0.5em 0.4em !important;
- margin-bottom: 0.3em;
+ border-radius: 8px;
+ padding: 10px 8px 6px !important;
+ margin-bottom: 5px;
}
#ldapWizard1 .hostPortCombinator {
@@ -68,17 +68,17 @@
}
.ldapwarning {
- margin-left: 1.4em;
+ margin-left: 22px;
color: #FF3B3B;
}
.wizSpinner {
height: 15px;
- margin: 0.3em;
+ margin: 5px;
}
.ldapSettingControls {
- margin-top: 3ex;
+ margin-top: 3px;
}
#ldap fieldset p label {
@@ -126,4 +126,4 @@ select[multiple=multiple] + button {
.ldap_grey {
color: #777;
-}
\ No newline at end of file
+}
diff --git a/apps/user_ldap/l10n/ak.php b/apps/user_ldap/l10n/ak.php
new file mode 100644
index 00000000000..dd5f66761d6
--- /dev/null
+++ b/apps/user_ldap/l10n/ak.php
@@ -0,0 +1,6 @@
+ array("",""),
+"_%s user found_::_%s users found_" => array("","")
+);
+$PLURAL_FORMS = "nplurals=2; plural=n > 1;";
diff --git a/apps/user_ldap/l10n/az.php b/apps/user_ldap/l10n/az.php
new file mode 100644
index 00000000000..bba52d53a1a
--- /dev/null
+++ b/apps/user_ldap/l10n/az.php
@@ -0,0 +1,6 @@
+ array(""),
+"_%s user found_::_%s users found_" => array("")
+);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/be.php b/apps/user_ldap/l10n/be.php
index 2641c1d1300..089b92efe7b 100644
--- a/apps/user_ldap/l10n/be.php
+++ b/apps/user_ldap/l10n/be.php
@@ -1,5 +1,6 @@
"Памылка",
"_%s group found_::_%s groups found_" => array("","","",""),
"_%s user found_::_%s users found_" => array("","","","")
);
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index 0e32abbf9c3..8369dff4895 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -4,6 +4,10 @@ $TRANSLATIONS = array(
"Failed to delete the server configuration" => "Αποτυχία διαγραφής ρυθμίσεων διακομιστή",
"The configuration is valid and the connection could be established!" => "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.",
+"The configuration is invalid. Please have a look at the logs for further details." => "Η διαμόρφωση είναι άκυρη. Παρακαλώ ελέγξτε τα αρχεία σφαλμάτων για περαιτέρω λεπτομέρειες.",
+"No action specified" => "Καμμία εντολή δεν προσδιορίστηκε",
+"No configuration specified" => "Καμμία διαμόρφωση δεν προσδιορίστηκε",
+"No data specified" => "Δεν προσδιορίστηκαν δεδομένα",
"Deletion failed" => "Η διαγραφή απέτυχε",
"Take over settings from recent server configuration?" => "Πάρτε πάνω από τις πρόσφατες ρυθμίσεις διαμόρφωσης του διακομιστή?",
"Keep settings?" => "Διατήρηση ρυθμίσεων;",
@@ -11,16 +15,35 @@ $TRANSLATIONS = array(
"mappings cleared" => "αντιστοιχίες εκκαθαρίστηκαν",
"Success" => "Επιτυχία",
"Error" => "Σφάλμα",
+"Configuration OK" => "Η διαμόρφωση είναι εντάξει",
+"Configuration incorrect" => "Η διαμόρφωση είναι λανθασμένη",
+"Configuration incomplete" => "Η διαμόρφωση είναι ελλιπής",
"Select groups" => "Επιλέξτε ομάδες",
+"Select object classes" => "Επιλογή κλάσης αντικειμένων",
+"Select attributes" => "Επιλογή χαρακτηριστικών",
"Connection test succeeded" => "Επιτυχημένη δοκιμαστική σύνδεση",
"Connection test failed" => "Αποτυχημένη δοκιμαστική σύνδεσης.",
"Do you really want to delete the current Server Configuration?" => "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;",
"Confirm Deletion" => "Επιβεβαίωση Διαγραφής",
-"_%s group found_::_%s groups found_" => array("",""),
-"_%s user found_::_%s users found_" => array("",""),
+"_%s group found_::_%s groups found_" => array("%s ομάδα βρέθηκε","%s ομάδες βρέθηκαν"),
+"_%s user found_::_%s users found_" => array("%s χρήστης βρέθηκε","%s χρήστες βρέθηκαν"),
+"Invalid Host" => "Άκυρος εξυπηρετητής",
+"Could not find the desired feature" => "Αδυναμία εύρεσης επιθυμητου χαρακτηριστικού",
"Save" => "Αποθήκευση",
"Test Configuration" => "Δοκιμαστικες ρυθμισεις",
"Help" => "Βοήθεια",
+"Limit the access to %s to groups meeting this criteria:" => "Περιορισμός πρόσβασης %s σε ομάδες που ταιριάζουν αυτά τα κριτήρια:",
+"only those object classes:" => "μόνο αυτές οι κλάσεις αντικειμένων:",
+"only from those groups:" => "μόνο από αυτές τις ομάδες:",
+"Edit raw filter instead" => "Επεξεργασία πρωτογενούς φίλτρου αντί αυτού",
+"Raw LDAP filter" => "Πρωτογενές φίλτρο ",
+"The filter specifies which LDAP groups shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
+"groups found" => "ομάδες βρέθηκαν",
+"What attribute shall be used as login name:" => "Ποια ιδιότητα θα χρησιμοποιηθεί ως όνομα σύνδεσης:",
+"LDAP Username:" => "Όνομα χρήστη LDAP:",
+"LDAP Email Address:" => "Διεύθυνση ηλ. ταχυδρομείου LDAP:",
+"Other Attributes:" => "Άλλες Ιδιότητες:",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Ορίζει το φίλτρο που θα εφαρμοστεί, όταν επιχειριθεί σύνδεση. Το %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. Παράδειγμα: \"uid=%%uid\"",
"Add Server Configuration" => "Προσθήκη Ρυθμίσεων Διακομιστή",
"Host" => "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
@@ -31,6 +54,9 @@ $TRANSLATIONS = array(
"For anonymous access, leave DN and Password empty." => "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.",
"One Base DN per line" => "Ένα DN Βάσης ανά γραμμή ",
"You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις",
+"Limit the access to %s to users meeting this criteria:" => "Περιορισμός πρόσβασης %s σε χρήστες που ταιριάζουν αυτά τα κριτήρια:",
+"The filter specifies which LDAP users shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
+"users found" => "χρήστες βρέθηκαν",
"Back" => "Επιστροφή",
"Continue" => "Συνέχεια",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Προσοχή: Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
@@ -44,15 +70,18 @@ $TRANSLATIONS = array(
"Disable Main Server" => "Απενεργοποιηση του κεντρικου διακομιστη",
"Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ",
"Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Δεν προτείνεται, χρησιμοποιείστε το μόνο για δοκιμές! Εάν η σύνδεση λειτουργεί μόνο με αυτή την επιλογή, εισάγετε το πιστοποιητικό SSL του διακομιστή LDAP στο %s διακομιστή σας.",
"Cache Time-To-Live" => "Cache Time-To-Live",
"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.",
"Directory Settings" => "Ρυθμίσεις Καταλόγου",
"User Display Name Field" => "Πεδίο Ονόματος Χρήστη",
+"The LDAP attribute to use to generate the user's display name." => "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος χρήστη.",
"Base User Tree" => "Base User Tree",
"One User Base DN per line" => "Ένα DN βάσης χρηστών ανά γραμμή",
"User Search Attributes" => "Χαρακτηριστικά αναζήτησης των χρηστών ",
"Optional; one attribute per line" => "Προαιρετικά? Ένα χαρακτηριστικό ανά γραμμή ",
"Group Display Name Field" => "Group Display Name Field",
+"The LDAP attribute to use to generate the groups's display name." => "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος ομάδας.",
"Base Group Tree" => "Base Group Tree",
"One Group Base DN per line" => "Μια ομαδικη Βάση DN ανά γραμμή",
"Group Search Attributes" => "Ομάδα Χαρακτηριστικων Αναζήτηση",
@@ -65,6 +94,15 @@ $TRANSLATIONS = array(
"User Home Folder Naming Rule" => "Χρήστης Προσωπικόςφάκελος Ονομασία Κανόνας ",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.",
"Internal Username" => "Εσωτερικό Όνομα Χρήστη",
-"Internal Username Attribute:" => "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:"
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Εξ ορισμού, το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το χαρακτηριστικό UUID. Αυτό βεβαιώνει ότι το όνομα χρήστη είναι μοναδικό και δεν χρειάζεται μετατροπή χαρακτήρων. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό ότι μόνο αυτοί οι χαρακτήρες επιτρέπονται: [ a-zA-Z0-9_.@- ]. Οι άλλοι χαρακτήρες αντικαθίστανται με τους αντίστοιχους ASCII ή απλά παραλείπονται. Στις συγκρούσεις ένας αριθμός θα προστεθεί / αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον αρχικό φάκελο χρήστη. Αποτελεί επίσης μέρος των απομακρυσμένων διευθύνσεων URL, για παράδειγμα για όλες τις υπηρεσίες *DAV. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Για να επιτευχθεί μια παρόμοια συμπεριφορά όπως πριν το ownCloud 5 εισάγετε το χαρακτηριστικό του προβαλλόμενου ονόματος χρήστη στο παρακάτω πεδίο. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε νεώτερους (προστιθέμενους) χρήστες LDAP.",
+"Internal Username Attribute:" => "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:",
+"Override UUID detection" => "Παράκαμψη ανίχνευσης UUID",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Από προεπιλογή, το χαρακτηριστικό UUID εντοπίζεται αυτόματα. Το χαρακτηριστικό UUID χρησιμοποιείται για την αναγνώριση χωρίς αμφιβολία χρηστών και ομάδων LDAP. Επίσης, το εσωτερικό όνομα χρήστη θα δημιουργηθεί με βάση το UUID, εφόσον δεν ορίζεται διαφορετικά ανωτέρω. Μπορείτε να παρακάμψετε τη ρύθμιση και να ορίσετε ένα χαρακτηριστικό της επιλογής σας. Θα πρέπει να βεβαιωθείτε ότι το χαρακτηριστικό της επιλογής σας μπορεί να ληφθεί για τους χρήστες και τις ομάδες και ότι είναι μοναδικό. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε πρόσφατα αντιστοιχισμένους (προστιθέμενους) χρήστες και ομάδες LDAP.",
+"UUID Attribute for Users:" => "Χαρακτηριστικό UUID για Χρήστες:",
+"UUID Attribute for Groups:" => "Χαρακτηριστικό UUID για Ομάδες:",
+"Username-LDAP User Mapping" => "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και την ανάθεση (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωρίστουν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκε αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα βρεθούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει κατάλοιπα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο.",
+"Clear Username-LDAP User Mapping" => "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη",
+"Clear Groupname-LDAP Group Mapping" => "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/es_CL.php b/apps/user_ldap/l10n/es_CL.php
new file mode 100644
index 00000000000..b3522617b42
--- /dev/null
+++ b/apps/user_ldap/l10n/es_CL.php
@@ -0,0 +1,7 @@
+ array("",""),
+"_%s user found_::_%s users found_" => array("",""),
+"Password" => "Clave"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/es_MX.php b/apps/user_ldap/l10n/es_MX.php
index 3a1e002311c..16aaa91fd51 100644
--- a/apps/user_ldap/l10n/es_MX.php
+++ b/apps/user_ldap/l10n/es_MX.php
@@ -1,6 +1,110 @@
array("",""),
-"_%s user found_::_%s users found_" => array("","")
+"Failed to clear the mappings." => "Ocurrió un fallo al borrar las asignaciones.",
+"Failed to delete the server configuration" => "No se pudo borrar la configuración del servidor",
+"The configuration is valid and the connection could be established!" => "¡La configuración es válida y la conexión puede establecerse!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.",
+"The configuration is invalid. Please have a look at the logs for further details." => "La configuración no es válida. Por favor, busque en el log para más detalles.",
+"No action specified" => "No se ha especificado la acción",
+"No configuration specified" => "No se ha especificado la configuración",
+"No data specified" => "No se han especificado los datos",
+" Could not set configuration %s" => "No se pudo establecer la configuración %s",
+"Deletion failed" => "Falló el borrado",
+"Take over settings from recent server configuration?" => "¿Asumir los ajustes actuales de la configuración del servidor?",
+"Keep settings?" => "¿Mantener la configuración?",
+"Cannot add server configuration" => "No se puede añadir la configuración del servidor",
+"mappings cleared" => "Asignaciones borradas",
+"Success" => "Éxito",
+"Error" => "Error",
+"Configuration OK" => "Configuración OK",
+"Configuration incorrect" => "Configuración Incorrecta",
+"Configuration incomplete" => "Configuración incompleta",
+"Select groups" => "Seleccionar grupos",
+"Select object classes" => "Seleccionar la clase de objeto",
+"Select attributes" => "Seleccionar atributos",
+"Connection test succeeded" => "La prueba de conexión fue exitosa",
+"Connection test failed" => "La prueba de conexión falló",
+"Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?",
+"Confirm Deletion" => "Confirmar eliminación",
+"_%s group found_::_%s groups found_" => array("Grupo %s encontrado","Grupos %s encontrados"),
+"_%s user found_::_%s users found_" => array("Usuario %s encontrado","Usuarios %s encontrados"),
+"Invalid Host" => "Host inválido",
+"Could not find the desired feature" => "No se puede encontrar la función deseada.",
+"Save" => "Guardar",
+"Test Configuration" => "Configuración de prueba",
+"Help" => "Ayuda",
+"Limit the access to %s to groups meeting this criteria:" => "Limitar el acceso a %s a los grupos que cumplan este criterio:",
+"only those object classes:" => "solamente de estas clases de objeto:",
+"only from those groups:" => "solamente de estos grupos:",
+"Edit raw filter instead" => "Editar el filtro en bruto en su lugar",
+"Raw LDAP filter" => "Filtro LDAP en bruto",
+"The filter specifies which LDAP groups shall have access to the %s instance." => "El filtro especifica que grupos LDAP tendrán acceso a %s.",
+"groups found" => "grupos encontrados",
+"What attribute shall be used as login name:" => "Que atributo debe ser usado como login:",
+"LDAP Username:" => "Nombre de usuario LDAP:",
+"LDAP Email Address:" => "Dirección e-mail LDAP:",
+"Other Attributes:" => "Otros atributos:",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"",
+"Add Server Configuration" => "Agregar configuracion del servidor",
+"Host" => "Servidor",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://",
+"Port" => "Puerto",
+"User DN" => "DN usuario",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.",
+"Password" => "Contraseña",
+"For anonymous access, leave DN and Password empty." => "Para acceso anónimo, deje DN y contraseña vacíos.",
+"One Base DN per line" => "Un DN Base por línea",
+"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado",
+"Limit the access to %s to users meeting this criteria:" => "Limitar el acceso a %s a los usuarios que cumplan el siguiente criterio:",
+"The filter specifies which LDAP users shall have access to the %s instance." => "El filtro especifica que usuarios LDAP pueden tener acceso a %s.",
+"users found" => "usuarios encontrados",
+"Back" => "Atrás",
+"Continue" => "Continuar",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Advertencia: Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al su administrador de sistemas para desactivar uno de ellos.",
+"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Advertencia: El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.",
+"Connection Settings" => "Configuración de conexión",
+"Configuration Active" => "Configuracion activa",
+"When unchecked, this configuration will be skipped." => "Cuando deseleccione, esta configuracion sera omitida.",
+"Backup (Replica) Host" => "Servidor de copia de seguridad (Replica)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD.",
+"Backup (Replica) Port" => "Puerto para copias de seguridad (Replica)",
+"Disable Main Server" => "Deshabilitar servidor principal",
+"Only connect to the replica server." => "Conectar sólo con el servidor de réplica.",
+"Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)",
+"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No se recomienda, ¡utilízalo únicamente para pruebas! Si la conexión únicamente funciona con esta opción, importa el certificado SSL del servidor LDAP en tu servidor %s.",
+"Cache Time-To-Live" => "Cache TTL",
+"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la caché.",
+"Directory Settings" => "Configuración de directorio",
+"User Display Name Field" => "Campo de nombre de usuario a mostrar",
+"The LDAP attribute to use to generate the user's display name." => "El campo LDAP a usar para generar el nombre para mostrar del usuario.",
+"Base User Tree" => "Árbol base de usuario",
+"One User Base DN per line" => "Un DN Base de Usuario por línea",
+"User Search Attributes" => "Atributos de la busqueda de usuario",
+"Optional; one attribute per line" => "Opcional; un atributo por linea",
+"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
+"The LDAP attribute to use to generate the groups's display name." => "El campo LDAP a usar para generar el nombre para mostrar del grupo.",
+"Base Group Tree" => "Árbol base de grupo",
+"One Group Base DN per line" => "Un DN Base de Grupo por línea",
+"Group Search Attributes" => "Atributos de busqueda de grupo",
+"Group-Member association" => "Asociación Grupo-Miembro",
+"Special Attributes" => "Atributos especiales",
+"Quota Field" => "Cuota",
+"Quota Default" => "Cuota por defecto",
+"in bytes" => "en bytes",
+"Email Field" => "E-mail",
+"User Home Folder Naming Rule" => "Regla para la carpeta Home de usuario",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.",
+"Internal Username" => "Nombre de usuario interno",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "El nombre de usuario interno será creado de forma predeterminada desde el atributo UUID. Esto asegura que el nombre de usuario es único y los caracteres no necesitan ser convertidos. En el nombre de usuario interno sólo se pueden usar estos caracteres: [ a-zA-Z0-9_.@- ]. El resto de caracteres son sustituidos por su correspondiente en ASCII o simplemente omitidos. En caso de duplicidades, se añadirá o incrementará un número. El nombre de usuario interno es usado para identificar un usuario. Es también el nombre predeterminado para la carpeta personal del usuario en ownCloud. También es parte de URLs remotas, por ejemplo, para todos los servicios *DAV. Con esta configuración el comportamiento predeterminado puede ser cambiado. Para conseguir un comportamiento similar a como era antes de ownCloud 5, introduzca el campo del nombre para mostrar del usuario en la siguiente caja. Déjelo vacío para el comportamiento predeterminado. Los cambios solo tendrán efecto en los usuarios LDAP mapeados (añadidos) recientemente.",
+"Internal Username Attribute:" => "Atributo Nombre de usuario Interno:",
+"Override UUID detection" => "Sobrescribir la detección UUID",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar indudablemente usuarios y grupos LDAP. Además, el nombre de usuario interno será creado en base al UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.",
+"UUID Attribute for Users:" => "Atributo UUID para usuarios:",
+"UUID Attribute for Groups:" => "Atributo UUID para Grupos:",
+"Username-LDAP User Mapping" => "Asignación del Nombre de usuario de un usuario LDAP",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental.",
+"Clear Username-LDAP User Mapping" => "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
+"Clear Groupname-LDAP Group Mapping" => "Borrar la asignación de los Nombres de grupo de los grupos de LDAP"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index f443c62995c..1026e017159 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -3,22 +3,43 @@ $TRANSLATIONS = array(
"Failed to delete the server configuration" => "Zerbitzariaren konfigurazioa ezabatzeak huts egin du",
"The configuration is valid and the connection could be established!" => "Konfigurazioa egokia da eta konexioa ezarri daiteke!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurazioa ongi dago, baina Bind-ek huts egin du. Mesedez egiaztatu zerbitzariaren ezarpenak eta kredentzialak.",
+"The configuration is invalid. Please have a look at the logs for further details." => "Konfigurazioa ez dago ongi. Mesedez ikusi egunerokoak (log) informazio gehiago eskuratzeko.",
+"No action specified" => "Ez da ekintzarik zehaztu",
+"No configuration specified" => "Ez da konfiguraziorik zehaztu",
+"No data specified" => "Ez da daturik zehaztu",
+" Could not set configuration %s" => "Ezin izan da %s konfigurazioa ezarri",
"Deletion failed" => "Ezabaketak huts egin du",
"Take over settings from recent server configuration?" => "oraintsuko zerbitzariaren konfigurazioaren ezarpenen ardura hartu?",
"Keep settings?" => "Mantendu ezarpenak?",
"Cannot add server configuration" => "Ezin da zerbitzariaren konfigurazioa gehitu",
"Success" => "Arrakasta",
"Error" => "Errorea",
+"Configuration OK" => "Konfigurazioa ongi dago",
+"Configuration incorrect" => "Konfigurazioa ez dago ongi",
+"Configuration incomplete" => "Konfigurazioa osatu gabe dago",
"Select groups" => "Hautatu taldeak",
+"Select object classes" => "Hautatu objektu klaseak",
+"Select attributes" => "Hautatu atributuak",
"Connection test succeeded" => "Konexio froga ongi burutu da",
"Connection test failed" => "Konexio frogak huts egin du",
"Do you really want to delete the current Server Configuration?" => "Ziur zaude Zerbitzariaren Konfigurazioa ezabatu nahi duzula?",
"Confirm Deletion" => "Baieztatu Ezabatzea",
-"_%s group found_::_%s groups found_" => array("",""),
-"_%s user found_::_%s users found_" => array("",""),
+"_%s group found_::_%s groups found_" => array("Talde %s aurkitu da","%s talde aurkitu dira"),
+"_%s user found_::_%s users found_" => array("Erabiltzaile %s aurkitu da","%s erabiltzaile aurkitu dira"),
+"Invalid Host" => "Baliogabeko hostalaria",
+"Could not find the desired feature" => "Ezin izan da nahi zen ezaugarria aurkitu",
"Save" => "Gorde",
"Test Configuration" => "Egiaztatu Konfigurazioa",
"Help" => "Laguntza",
+"Limit the access to %s to groups meeting this criteria:" => "Mugatu sarrera baldintza hauek betetzen dituzten %s taldetara:",
+"only those object classes:" => "bakarrik objektu klase hauetakoak:",
+"only from those groups:" => "bakarrik talde hauetakoak:",
+"The filter specifies which LDAP groups shall have access to the %s instance." => "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:",
+"groups found" => "talde aurkituta",
+"What attribute shall be used as login name:" => "Sarrera izen gisa erabiliko den atributua:",
+"LDAP Username:" => "LDAP Erabiltzaile izena:",
+"LDAP Email Address:" => "LDAP Eposta helbidea:",
+"Other Attributes:" => "Bestelako atributuak:",
"Add Server Configuration" => "Gehitu Zerbitzariaren Konfigurazioa",
"Host" => "Hostalaria",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://",
@@ -29,7 +50,11 @@ $TRANSLATIONS = array(
"For anonymous access, leave DN and Password empty." => "Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik.",
"One Base DN per line" => "DN Oinarri bat lerroko",
"You can specify Base DN for users and groups in the Advanced tab" => "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan",
+"Limit the access to %s to users meeting this criteria:" => "Mugatu sarrera hurrengo baldintzak betetzen duten %s erabiltzaileei:",
+"The filter specifies which LDAP users shall have access to the %s instance." => "Iragazkiak zehazten du ze LDAP erabiltzailek izango duten sarrera %s instantziara:",
+"users found" => "erabiltzaile aurkituta",
"Back" => "Atzera",
+"Continue" => "Jarraitu",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.",
"Connection Settings" => "Konexio Ezarpenak",
"Configuration Active" => "Konfigurazio Aktiboa",
@@ -38,17 +63,20 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Eman babeskopia ostalari gehigarri bat. LDAP/AD zerbitzari nagusiaren replica bat izan behar da.",
"Backup (Replica) Port" => "Babeskopia (Replica) Ataka",
"Disable Main Server" => "Desgaitu Zerbitzari Nagusia",
+"Only connect to the replica server." => "Konektatu bakarrik erreplika zerbitzarira",
"Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)",
"Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.",
"Cache Time-To-Live" => "Katxearen Bizi-Iraupena",
"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.",
"Directory Settings" => "Karpetaren Ezarpenak",
"User Display Name Field" => "Erabiltzaileen bistaratzeko izena duen eremua",
+"The LDAP attribute to use to generate the user's display name." => "Erabiltzailearen bistaratze izena sortzeko erabiliko den LDAP atributua.",
"Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza",
"One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko",
"User Search Attributes" => "Erabili Bilaketa Atributuak ",
"Optional; one attribute per line" => "Aukerakoa; atributu bat lerro bakoitzeko",
"Group Display Name Field" => "Taldeen bistaratzeko izena duen eremua",
+"The LDAP attribute to use to generate the groups's display name." => "Taldearen bistaratze izena sortzeko erabiliko den LDAP atributua.",
"Base Group Tree" => "Oinarrizko Talde Zuhaitza",
"One Group Base DN per line" => "Talde DN Oinarri bat lerroko",
"Group Search Attributes" => "Taldekatu Bilaketa Atributuak ",
@@ -60,6 +88,10 @@ $TRANSLATIONS = array(
"Email Field" => "Eposta eremua",
"User Home Folder Naming Rule" => "Erabiltzailearen Karpeta Nagusia Izendatzeko Patroia",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.",
-"Internal Username" => "Barneko erabiltzaile izena"
+"Internal Username" => "Barneko erabiltzaile izena",
+"Internal Username Attribute:" => "Baliogabeko Erabiltzaile Izen atributua",
+"Override UUID detection" => "Gainidatzi UUID antzematea",
+"UUID Attribute for Users:" => "Erabiltzaileentzako UUID atributuak:",
+"UUID Attribute for Groups:" => "Taldeentzako UUID atributuak:"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index 34f626c8c24..2799d0407c4 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Töröltük a hozzárendeléseket",
"Success" => "Sikeres végrehajtás",
"Error" => "Hiba",
+"Configuration OK" => "Konfiguráció OK",
+"Configuration incorrect" => "Konfiguráió hibás",
+"Configuration incomplete" => "Konfiguráció nincs befejezve",
"Select groups" => "Csoportok kiválasztása",
"Select object classes" => "Objektumosztályok kiválasztása",
"Select attributes" => "Attribútumok kiválasztása",
diff --git a/apps/user_ldap/l10n/ia.php b/apps/user_ldap/l10n/ia.php
index 4a23d5860c4..e138fd835f1 100644
--- a/apps/user_ldap/l10n/ia.php
+++ b/apps/user_ldap/l10n/ia.php
@@ -1,5 +1,6 @@
"Il falleva deler",
"Error" => "Error",
"_%s group found_::_%s groups found_" => array("",""),
"_%s user found_::_%s users found_" => array("",""),
diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php
index 6f4ddd21483..03071bb1d0f 100644
--- a/apps/user_ldap/l10n/id.php
+++ b/apps/user_ldap/l10n/id.php
@@ -30,6 +30,7 @@ $TRANSLATIONS = array(
"One Base DN per line" => "Satu Base DN per baris",
"You can specify Base DN for users and groups in the Advanced tab" => "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan",
"Back" => "Kembali",
+"Continue" => "Lanjutkan",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Peringatan: Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya.",
"Connection Settings" => "Pengaturan Koneksi",
"Configuration Active" => "Konfigurasi Aktif",
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index bac25ec96b9..2d861f27ba8 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -1,19 +1,53 @@
"매핑을 비울 수 없습니다.",
+"Failed to delete the server configuration" => "서버 설정을 삭제할 수 없습니다.",
+"The configuration is valid and the connection could be established!" => "설정 정보가 올바르고 연결할 수 있습니다!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "설정 정보가 올바르지만 바인딩이 실패하였습니다. 서버 설정과 인증 정보를 확인하십시오.",
+"The configuration is invalid. Please have a look at the logs for further details." => "설정이 올바르지 않습니다. 자세한 사항은 로그를 참고하십시오.",
+"No action specified" => "동작이 지정되지 않음",
+"No configuration specified" => "설정이 지정되지 않음",
+"No data specified" => "데이터가 지정되지 않음",
+" Could not set configuration %s" => " 설정 %s을(를) 지정할 수 없음",
"Deletion failed" => "삭제 실패",
-"Keep settings?" => "설정을 유지합니까?",
+"Take over settings from recent server configuration?" => "최근 서버 설정을 다시 불러오시겠습니까?",
+"Keep settings?" => "설정을 유지하겠습니까?",
+"Cannot add server configuration" => "서버 설정을 추가할 수 없음",
+"mappings cleared" => "매핑 삭제됨",
+"Success" => "성공",
"Error" => "오류",
+"Configuration OK" => "설정 올바름",
+"Configuration incorrect" => "설정 올바르지 않음",
+"Configuration incomplete" => "설정 불완전함",
"Select groups" => "그룹 선택",
+"Select object classes" => "객체 클래스 선택",
+"Select attributes" => "속성 선택",
"Connection test succeeded" => "연결 시험 성공",
"Connection test failed" => "연결 시험 실패",
"Do you really want to delete the current Server Configuration?" => "현재 서버 설정을 지우시겠습니까?",
-"_%s group found_::_%s groups found_" => array(""),
-"_%s user found_::_%s users found_" => array(""),
+"Confirm Deletion" => "삭제 확인",
+"_%s group found_::_%s groups found_" => array("그룹 %s개 찾음"),
+"_%s user found_::_%s users found_" => array("사용자 %s명 찾음"),
+"Invalid Host" => "잘못된 호스트",
+"Could not find the desired feature" => "필요한 기능을 찾을 수 없음",
"Save" => "저장",
+"Test Configuration" => "설정 시험",
"Help" => "도움말",
+"Limit the access to %s to groups meeting this criteria:" => "다음 조건을 만족하는 그룹만 %s 접근 허용:",
+"only those object classes:" => "다음 객체 클래스만:",
+"only from those groups:" => "다음 그룹에서만:",
+"Edit raw filter instead" => "필터 직접 편집",
+"Raw LDAP filter" => "LDAP 필터",
+"The filter specifies which LDAP groups shall have access to the %s instance." => "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.",
+"groups found" => "그룹 찾음",
+"What attribute shall be used as login name:" => "로그인 이름으로 사용할 속성:",
+"LDAP Username:" => "LDAP 사용자 이름:",
+"LDAP Email Address:" => "LDAP 이메일 주소:",
+"Other Attributes:" => "기타 속성:",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"",
"Add Server Configuration" => "서버 설정 추가",
"Host" => "호스트",
-"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.",
"Port" => "포트",
"User DN" => "사용자 DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
@@ -21,29 +55,56 @@ $TRANSLATIONS = array(
"For anonymous access, leave DN and Password empty." => "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
"One Base DN per line" => "기본 DN을 한 줄에 하나씩 입력하십시오",
"You can specify Base DN for users and groups in the Advanced tab" => "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.",
+"Limit the access to %s to users meeting this criteria:" => "다음 조건을 만족하는 사용자만 %s 접근 허용:",
+"The filter specifies which LDAP users shall have access to the %s instance." => "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.",
+"users found" => "사용자 찾음",
"Back" => "뒤로",
"Continue" => "계속",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "경고: user_ldap, user_webdavauth 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "경고: PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"Connection Settings" => "연결 설정",
-"Configuration Active" => "구성 활성화",
-"When unchecked, this configuration will be skipped." => "선택하지 않으시면, 설정은 무시됩니다.",
-"Backup (Replica) Host" => "백업 (복제) 포트",
+"Configuration Active" => "구성 활성",
+"When unchecked, this configuration will be skipped." => "선택하지 않으면 이 설정을 무시합니다.",
+"Backup (Replica) Host" => "백업 (복제) 호스트",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "추가적인 백업 호스트를 지정합니다. 기본 LDAP/AD 서버의 복사본이어야 합니다.",
"Backup (Replica) Port" => "백업 (복제) 포트",
"Disable Main Server" => "주 서버 비활성화",
+"Only connect to the replica server." => "복제 서버에만 연결합니다.",
"Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)",
"Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.",
-"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.",
-"Directory Settings" => "디렉토리 설정",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "테스트 목적으로만 사용하십시오! 이 옵션을 사용해야만 연결할 수 있으면 %s 서버에 LDAP 서버의 SSL 인증서를 설치하십시오.",
+"Cache Time-To-Live" => "캐시 유지 시간",
+"in seconds. A change empties the cache." => "초 단위입니다. 항목 변경 시 캐시가 갱신됩니다.",
+"Directory Settings" => "디렉터리 설정",
"User Display Name Field" => "사용자의 표시 이름 필드",
+"The LDAP attribute to use to generate the user's display name." => "사용자 표시 이름을 생성할 때 사용할 LDAP 속성입니다.",
"Base User Tree" => "기본 사용자 트리",
"One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오",
"User Search Attributes" => "사용자 검색 속성",
+"Optional; one attribute per line" => "추가적, 한 줄에 하나의 속성을 입력하십시오",
"Group Display Name Field" => "그룹의 표시 이름 필드",
+"The LDAP attribute to use to generate the groups's display name." => "그룹 표시 이름을 생성할 때 사용할 LDAP 속성입니다.",
"Base Group Tree" => "기본 그룹 트리",
"One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오",
"Group Search Attributes" => "그룹 검색 속성",
"Group-Member association" => "그룹-회원 연결",
-"in bytes" => "바이트",
-"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오."
+"Special Attributes" => "특수 속성",
+"Quota Field" => "할당량 필드",
+"Quota Default" => "기본 할당량",
+"in bytes" => "바이트 단위",
+"Email Field" => "이메일 필드",
+"User Home Folder Naming Rule" => "사용자 홈 폴더 이름 규칙",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.",
+"Internal Username" => "내부 사용자 이름",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "기본적으로 내부 사용자 이름은 UUID 속성에서 생성됩니다. 사용자 이름이 중복되지 않고 문자열을 변환할 필요가 없도록 합니다. 내부 사용자 이름에는 다음과 같은 문자열만 사용할 수 있습니다: [a-zA-Z0-9_.@-] 다른 문자열은 ASCII에 해당하는 문자열로 변경되거나 없는 글자로 취급됩니다. 충돌하는 경우 숫자가 붙거나 증가합니다. 내부 사용자 이름은 내부적으로 사용자를 식별하는 데 사용되며, 사용자 홈 폴더의 기본 이름입니다. 또한 *DAV와 같은 외부 URL의 일부로 사용됩니다. 이 설정을 사용하면 기본 설정을 재정의할 수 있습니다. ownCloud 5 이전의 행동을 사용하려면 아래 필드에 사용자의 표시 이름 속성을 입력하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자에게만 적용됩니다.",
+"Internal Username Attribute:" => "내부 사용자 이름 속성:",
+"Override UUID detection" => "UUID 확인 재정의",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "기본적으로 UUID 속성은 자동적으로 감지됩니다. UUID 속성은 LDAP 사용자와 그룹을 정확히 식별하는 데 사용됩니다. 지정하지 않은 경우 내부 사용자 이름은 UUID를 기반으로 생성됩니다. 이 설정을 다시 정의하고 임의의 속성을 지정할 수 있습니다. 사용자와 그룹 모두에게 속성을 적용할 수 있고 중복된 값이 없는지 확인하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자와 그룹에만 적용됩니다.",
+"UUID Attribute for Users:" => "사용자 UUID 속성:",
+"UUID Attribute for Groups:" => "그룹 UUID 속성:",
+"Username-LDAP User Mapping" => "사용자 이름-LDAP 사용자 매핑",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "사용자 이름은 (메타) 데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확하게 식별하기 위하여 각각 LDAP 사용자는 내부 사용자 이름을 갖습니다. 이는 사용자 이름과 LDAP 사용자 간의 매핑이 필요합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID로 매핑됩니다. 추가적으로 LDAP 통신을 줄이기 위해서 DN이 캐시에 저장되지만 식별에 사용되지는 않습니다. DN이 변경되면 변경 사항이 기록됩니다. 내부 사용자 이름은 계속 사용됩니다. 매핑을 비우면 흔적이 남아 있게 됩니다. 매핑을 비우는 작업은 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에만 사용하고, 사용 중인 서버에서는 시도하지 마십시오.",
+"Clear Username-LDAP User Mapping" => "사용자 이름-LDAP 사용자 매핑 비우기",
+"Clear Groupname-LDAP Group Mapping" => "그룹 이름-LDAP 그룹 매핑 비우기"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php
index c9bca8d4c45..625ec79d76b 100644
--- a/apps/user_ldap/l10n/nb_NO.php
+++ b/apps/user_ldap/l10n/nb_NO.php
@@ -29,6 +29,7 @@ $TRANSLATIONS = array(
"One Base DN per line" => "En hoved DN pr. linje",
"You can specify Base DN for users and groups in the Advanced tab" => "Du kan spesifisere Base DN for brukere og grupper under Avansert fanen",
"Back" => "Tilbake",
+"Continue" => "Fortsett",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warning: PHP LDAP modulen er ikke installert, hjelperen vil ikke virke. Vennligst be din system-administrator om å installere den.",
"Configuration Active" => "Konfigurasjon aktiv",
"When unchecked, this configuration will be skipped." => "Når ikke huket av så vil denne konfigurasjonen bli hoppet over.",
diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
deleted file mode 100644
index 696e44a5bb5..00000000000
--- a/apps/user_ldap/l10n/ru_RU.php
+++ /dev/null
@@ -1,12 +0,0 @@
- "Ошибка",
-"Select groups" => "Выбрать группы",
-"_%s group found_::_%s groups found_" => array("","",""),
-"_%s user found_::_%s users found_" => array("","",""),
-"Save" => "Сохранить",
-"Help" => "Помощь",
-"Password" => "Пароль",
-"Back" => "Назад"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/user_ldap/l10n/sk.php b/apps/user_ldap/l10n/sk.php
index 8a689224737..2578bb55649 100644
--- a/apps/user_ldap/l10n/sk.php
+++ b/apps/user_ldap/l10n/sk.php
@@ -1,6 +1,7 @@
array("","",""),
-"_%s user found_::_%s users found_" => array("","","")
+"_%s user found_::_%s users found_" => array("","",""),
+"Save" => "Uložiť"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index 1672545adeb..850fce24c48 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -36,7 +36,8 @@ $TRANSLATIONS = array(
"Limit the access to %s to groups meeting this criteria:" => "Obmedziť prístup %s do skupiny, ktoré spĺňajú tieto kritériá:",
"only those object classes:" => "len tieto triedy objektov:",
"only from those groups:" => "len z týchto skupín:",
-"Raw LDAP filter" => "Surový LDAP filter",
+"Edit raw filter instead" => "Miesto pre úpravu raw filtra",
+"Raw LDAP filter" => "Raw LDAP filter",
"The filter specifies which LDAP groups shall have access to the %s instance." => "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.",
"groups found" => "nájdené skupiny",
"What attribute shall be used as login name:" => "Ako prihlasovacie meno použiť atribút:",
diff --git a/apps/user_ldap/l10n/ur.php b/apps/user_ldap/l10n/ur.php
new file mode 100644
index 00000000000..3a1e002311c
--- /dev/null
+++ b/apps/user_ldap/l10n/ur.php
@@ -0,0 +1,6 @@
+ array("",""),
+"_%s user found_::_%s users found_" => array("","")
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index ecc74b6cf54..72f9c740921 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -634,6 +634,10 @@ class Access extends LDAPUtility {
return $this->search($filter, $this->connection->ldapBaseUsers, $attr, $limit, $offset);
}
+ public function countUsers($filter, $attr = array('dn'), $limit = null, $offset = null) {
+ return $this->count($filter, $this->connection->ldapBaseGroups, $attr, $limit, $offset);
+ }
+
/**
* @brief executes an LDAP search, optimized for Groups
* @param $filter the LDAP filter for the search
@@ -647,61 +651,68 @@ class Access extends LDAPUtility {
}
/**
- * @brief executes an LDAP search
+ * @brief prepares and executes an LDAP search operation
* @param $filter the LDAP filter for the search
* @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, array, one or more attributes that shall be
* retrieved. Results will according to the order in the array.
- * @returns array with the search result
- *
- * Executes an LDAP search
+ * @param $limit optional, maximum results to be counted
+ * @param $offset optional, a starting point
+ * @returns array with the search result as first value and pagedSearchOK as
+ * second | false if not successful
*/
- private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
+ private function executeSearch($filter, $base, &$attr = null, $limit = null, $offset = null) {
if(!is_null($attr) && !is_array($attr)) {
$attr = array(mb_strtolower($attr, 'UTF-8'));
}
// See if we have a resource, in case not cancel with message
- $link_resource = $this->connection->getConnectionResource();
- if(!$this->ldap->isResource($link_resource)) {
+ $cr = $this->connection->getConnectionResource();
+ if(!$this->ldap->isResource($cr)) {
// Seems like we didn't find any resource.
// Return an empty array just like before.
\OCP\Util::writeLog('user_ldap', 'Could not search, because resource is missing.', \OCP\Util::DEBUG);
- return array();
+ return false;
}
//check wether paged search should be attempted
$pagedSearchOK = $this->initPagedSearch($filter, $base, $attr, $limit, $offset);
- $linkResources = array_pad(array(), count($base), $link_resource);
+ $linkResources = array_pad(array(), count($base), $cr);
$sr = $this->ldap->search($linkResources, $base, $filter, $attr);
- $error = $this->ldap->errno($link_resource);
+ $error = $this->ldap->errno($cr);
if(!is_array($sr) || $error !== 0) {
\OCP\Util::writeLog('user_ldap',
- 'Error when searching: '.$this->ldap->error($link_resource).
- ' code '.$this->ldap->errno($link_resource),
+ 'Error when searching: '.$this->ldap->error($cr).
+ ' code '.$this->ldap->errno($cr),
\OCP\Util::ERROR);
\OCP\Util::writeLog('user_ldap', 'Attempt for Paging? '.print_r($pagedSearchOK, true), \OCP\Util::ERROR);
- return array();
+ return false;
}
- // Do the server-side sorting
- foreach(array_reverse($attr) as $sortAttr){
- foreach($sr as $searchResource) {
- $this->ldap->sort($link_resource, $searchResource, $sortAttr);
- }
- }
+ return array($sr, $pagedSearchOK);
+ }
- $findings = array();
- foreach($sr as $key => $res) {
- $findings = array_merge($findings, $this->ldap->getEntries($link_resource, $res ));
- }
+ /**
+ * @brief processes an LDAP paged search operation
+ * @param $sr the array containing the LDAP search resources
+ * @param $filter the LDAP filter for the search
+ * @param $base an array containing the LDAP subtree(s) that shall be searched
+ * @param $iFoundItems number of results in the search operation
+ * @param $limit maximum results to be counted
+ * @param $offset a starting point
+ * @param $pagedSearchOK whether a paged search has been executed
+ * @param $skipHandling required for paged search when cookies to
+ * prior results need to be gained
+ * @returns array with the search result as first value and pagedSearchOK as
+ * second | false if not successful
+ */
+ private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $limit, $offset, $pagedSearchOK, $skipHandling) {
if($pagedSearchOK) {
- \OCP\Util::writeLog('user_ldap', 'Paged search successful', \OCP\Util::INFO);
+ $cr = $this->connection->getConnectionResource();
foreach($sr as $key => $res) {
$cookie = null;
- if($this->ldap->controlPagedResultResponse($link_resource, $res, $cookie)) {
- \OCP\Util::writeLog('user_ldap', 'Set paged search cookie', \OCP\Util::INFO);
+ if($this->ldap->controlPagedResultResponse($cr, $res, $cookie)) {
$this->setPagedResultCookie($base[$key], $filter, $limit, $offset, $cookie);
}
}
@@ -713,7 +724,7 @@ class Access extends LDAPUtility {
// if count is bigger, then the server does not support
// paged search. Instead, he did a normal search. We set a
// flag here, so the callee knows how to deal with it.
- if($findings['count'] <= $limit) {
+ if($iFoundItems <= $limit) {
$this->pagedSearchedSuccessful = true;
}
} else {
@@ -721,6 +732,86 @@ class Access extends LDAPUtility {
\OCP\Util::writeLog('user_ldap', 'Paged search failed :(', \OCP\Util::INFO);
}
}
+ }
+
+ /**
+ * @brief executes an LDAP search, but counts the results only
+ * @param $filter the LDAP filter for the search
+ * @param $base an array containing the LDAP subtree(s) that shall be searched
+ * @param $attr optional, array, one or more attributes that shall be
+ * retrieved. Results will according to the order in the array.
+ * @param $limit optional, maximum results to be counted
+ * @param $offset optional, a starting point
+ * @param $skipHandling indicates whether the pages search operation is
+ * completed
+ * @returns int | false if the search could not be initialized
+ *
+ */
+ private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
+ \OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG);
+ $search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
+ if($search === false) {
+ return false;
+ }
+ list($sr, $pagedSearchOK) = $search;
+ $cr = $this->connection->getConnectionResource();
+ $counter = 0;
+ foreach($sr as $key => $res) {
+ $count = $this->ldap->countEntries($cr, $res);
+ if($count !== false) {
+ $counter += $count;
+ }
+ }
+
+ $this->processPagedSearchStatus($sr, $filter, $base, $counter, $limit,
+ $offset, $pagedSearchOK, $skipHandling);
+
+ return $counter;
+ }
+
+ /**
+ * @brief executes an LDAP search
+ * @param $filter the LDAP filter for the search
+ * @param $base an array containing the LDAP subtree(s) that shall be searched
+ * @param $attr optional, array, one or more attributes that shall be
+ * retrieved. Results will according to the order in the array.
+ * @returns array with the search result
+ *
+ * Executes an LDAP search
+ */
+ private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
+ $search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
+ if($search === false) {
+ return array();
+ }
+ list($sr, $pagedSearchOK) = $search;
+ $cr = $this->connection->getConnectionResource();
+
+ if($skipHandling) {
+ //i.e. result do not need to be fetched, we just need the cookie
+ //thus pass 1 or any other value as $iFoundItems because it is not
+ //used
+ $this->processPagedSearchStatus($sr, $filter, $base, 1, $limit,
+ $offset, $pagedSearchOK,
+ $skipHandling);
+ return;
+ }
+
+ // Do the server-side sorting
+ foreach(array_reverse($attr) as $sortAttr){
+ foreach($sr as $searchResource) {
+ $this->ldap->sort($cr, $searchResource, $sortAttr);
+ }
+ }
+
+ $findings = array();
+ foreach($sr as $key => $res) {
+ $findings = array_merge($findings, $this->ldap->getEntries($cr , $res ));
+ }
+
+ $this->processPagedSearchStatus($sr, $filter, $base, $findings['count'],
+ $limit, $offset, $pagedSearchOK,
+ $skipHandling);
// if we're here, probably no connection resource is returned.
// to make ownCloud behave nicely, we simply give back an empty array.
diff --git a/apps/user_ldap/lib/configuration.php b/apps/user_ldap/lib/configuration.php
index 874082f78f6..93f044e3152 100644
--- a/apps/user_ldap/lib/configuration.php
+++ b/apps/user_ldap/lib/configuration.php
@@ -129,6 +129,7 @@ class Configuration {
if(!empty($val) && strpos($val, 'attr:') === false) {
$val = 'attr:'.$val;
}
+ break;
case 'ldapBase':
case 'ldapBaseUsers':
case 'ldapBaseGroups':
@@ -140,11 +141,11 @@ class Configuration {
case 'ldapGroupFilterGroups':
case 'ldapLoginFilterAttributes':
$setMethod = 'setMultiLine';
- default:
- $this->$setMethod($key, $val);
- if(is_array($applied)) {
- $applied[] = $inputkey;
- }
+ break;
+ }
+ $this->$setMethod($key, $val);
+ if(is_array($applied)) {
+ $applied[] = $inputkey;
}
}
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index 14dfaa1174d..c4e4efd0483 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -50,7 +50,8 @@ class Connection extends LDAPUtility {
parent::__construct($ldap);
$this->configPrefix = $configPrefix;
$this->configID = $configID;
- $this->configuration = new Configuration($configPrefix);
+ $this->configuration = new Configuration($configPrefix,
+ !is_null($configID));
$memcache = new \OC\Memcache\Factory();
if($memcache->isAvailable()) {
$this->cache = $memcache->create();
diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php
index 09f646921e3..9727d847d27 100644
--- a/apps/user_ldap/lib/helper.php
+++ b/apps/user_ldap/lib/helper.php
@@ -48,18 +48,25 @@ class Helper {
static public function getServerConfigurationPrefixes($activeConfigurations = false) {
$referenceConfigkey = 'ldap_configuration_active';
- $query = '
+ $sql = '
SELECT DISTINCT `configkey`
FROM `*PREFIX*appconfig`
WHERE `appid` = \'user_ldap\'
AND `configkey` LIKE ?
';
- if($activeConfigurations) {
- $query .= ' AND `configvalue` = \'1\'';
- }
- $query = \OCP\DB::prepare($query);
- $serverConfigs = $query->execute(array('%'.$referenceConfigkey))->fetchAll();
+ if($activeConfigurations) {
+ if (\OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
+ //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
+ $sql .= ' AND to_char(`configvalue`)=\'1\'';
+ } else {
+ $sql .= ' AND `configvalue` = \'1\'';
+ }
+ }
+
+ $stmt = \OCP\DB::prepare($sql);
+
+ $serverConfigs = $stmt->execute(array('%'.$referenceConfigkey))->fetchAll();
$prefixes = array();
foreach($serverConfigs as $serverConfig) {
diff --git a/apps/user_ldap/lib/ldap.php b/apps/user_ldap/lib/ldap.php
index bc963191722..dda8533c41f 100644
--- a/apps/user_ldap/lib/ldap.php
+++ b/apps/user_ldap/lib/ldap.php
@@ -91,7 +91,7 @@ class LDAP implements ILDAPWrapper {
}
public function setOption($link, $option, $value) {
- $this->invokeLDAPMethod('set_option', $link, $option, $value);
+ return $this->invokeLDAPMethod('set_option', $link, $option, $value);
}
public function sort($link, $result, $sortfilter) {
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 348a871e2b3..b70ede8599c 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -792,10 +792,13 @@ class Wizard extends LDAPUtility {
\OCP\Util::writeLog('user_ldap', 'Wiz: Setting LDAP Options ', \OCP\Util::DEBUG);
//set LDAP options
- $a = $this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3);
- $c = $this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT);
+ $this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3);
+ $this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT);
if($tls) {
- $this->ldap->startTls($cr);
+ $isTlsWorking = @$this->ldap->startTls($cr);
+ if(!$isTlsWorking) {
+ return false;
+ }
}
\OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG);
@@ -809,7 +812,7 @@ class Wizard extends LDAPUtility {
if($ncc) {
throw new \Exception('Certificate cannot be validated.');
}
- \OCP\Util::writeLog('user_ldap', 'Wiz: Bind succesfull with Port '. $port, \OCP\Util::DEBUG);
+ \OCP\Util::writeLog('user_ldap', 'Wiz: Bind successfull to Port '. $port . ' TLS ' . intval($tls), \OCP\Util::DEBUG);
return true;
}
diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php
index fde7c36cdd1..0312c17ab7b 100644
--- a/apps/user_ldap/templates/part.wizard-server.php
+++ b/apps/user_ldap/templates/part.wizard-server.php
@@ -41,7 +41,7 @@
@@ -49,7 +49,7 @@
diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php
index 6b9b8b3e185..9193a005ae5 100644
--- a/apps/user_ldap/tests/user_ldap.php
+++ b/apps/user_ldap/tests/user_ldap.php
@@ -408,4 +408,58 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase {
//no test for getDisplayNames, because it just invokes getUsers and
//getDisplayName
+
+ public function testCountUsers() {
+ $access = $this->getAccessMock();
+
+ $access->connection->expects($this->once())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapLoginFilter') {
+ return 'uid=%uid';
+ }
+ return null;
+ }));
+
+ $access->expects($this->once())
+ ->method('countUsers')
+ ->will($this->returnCallback(function($filter, $a, $b, $c) {
+ if($filter !== 'uid=*') {
+ return false;
+ }
+ return 5;
+ }));
+
+ $backend = new UserLDAP($access);
+
+ $result = $backend->countUsers();
+ $this->assertEquals(5, $result);
+ }
+
+ public function testCountUsersFailing() {
+ $access = $this->getAccessMock();
+
+ $access->connection->expects($this->once())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapLoginFilter') {
+ return 'invalidFilter';
+ }
+ return null;
+ }));
+
+ $access->expects($this->once())
+ ->method('countUsers')
+ ->will($this->returnCallback(function($filter, $a, $b, $c) {
+ if($filter !== 'uid=*') {
+ return false;
+ }
+ return 5;
+ }));
+
+ $backend = new UserLDAP($access);
+
+ $result = $backend->countUsers();
+ $this->assertFalse($result);
+ }
}
\ No newline at end of file
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 527a5c10b85..a19af86086c 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -363,7 +363,8 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
return (bool)((OC_USER_BACKEND_CHECK_PASSWORD
| OC_USER_BACKEND_GET_HOME
| OC_USER_BACKEND_GET_DISPLAYNAME
- | OC_USER_BACKEND_PROVIDE_AVATAR)
+ | OC_USER_BACKEND_PROVIDE_AVATAR
+ | OC_USER_BACKEND_COUNT_USERS)
& $actions);
}
@@ -373,4 +374,16 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
public function hasUserListings() {
return true;
}
+
+ /**
+ * counts the users in LDAP
+ *
+ * @return int | bool
+ */
+ public function countUsers() {
+ $filter = \OCP\Util::mb_str_replace(
+ '%uid', '*', $this->access->connection->ldapLoginFilter, 'UTF-8');
+ $entries = $this->access->countUsers($filter);
+ return $entries;
+ }
}
diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php
index b073b143e74..5ad127197f3 100644
--- a/apps/user_ldap/user_proxy.php
+++ b/apps/user_ldap/user_proxy.php
@@ -210,4 +210,19 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
return $this->refBackend->hasUserListings();
}
+ /**
+ * @brief Count the number of users
+ * @returns int | bool
+ */
+ public function countUsers() {
+ $users = false;
+ foreach($this->backends as $backend) {
+ $backendUsers = $backend->countUsers();
+ if ($backendUsers !== false) {
+ $users += $backendUsers;
+ }
+ }
+ return $users;
+ }
+
}
diff --git a/apps/user_webdavauth/l10n/el.php b/apps/user_webdavauth/l10n/el.php
index 4a9ab3bafcc..e7403f9a8c3 100644
--- a/apps/user_webdavauth/l10n/el.php
+++ b/apps/user_webdavauth/l10n/el.php
@@ -1,6 +1,6 @@
"Αυθεντικοποίηση μέσω WebDAV ",
+"WebDAV Authentication" => "Πιστοποίηση μέσω WebDAV ",
"Address: " => "Διεύθυνση:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Τα διαπιστευτήρια του χρήστη θα σταλούν σε αυτή την διεύθυνση. Αυτό το πρόσθετο ελέγχει την απόκριση και θα ερμηνεύσει τους κωδικούς κατάστασης HTTP 401 και 402 ως μη έγκυρα διαπιστευτήρια και όλες τις άλλες αποκρίσεις ως έγκυρα διαπιστευτήρια."
);
diff --git a/apps/user_webdavauth/l10n/es_MX.php b/apps/user_webdavauth/l10n/es_MX.php
new file mode 100644
index 00000000000..951aabe24ae
--- /dev/null
+++ b/apps/user_webdavauth/l10n/es_MX.php
@@ -0,0 +1,7 @@
+ "Autenticación mediante WevDAV",
+"Address: " => "Dirección:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas."
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/sl.php b/apps/user_webdavauth/l10n/sl.php
index 269f9c3d25d..3bf3068c55f 100644
--- a/apps/user_webdavauth/l10n/sl.php
+++ b/apps/user_webdavauth/l10n/sl.php
@@ -2,6 +2,6 @@
$TRANSLATIONS = array(
"WebDAV Authentication" => "Overitev WebDAV",
"Address: " => "Naslov:",
-"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Uporabniška poverila bodo poslana na ta naslov. Vstavek preveri odziv in kodi stanja 401 in 403 kot neveljavna poverila, vse ostale odzive pa kot veljavna."
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Uporabniška poverila bodo poslana na naveden naslov. Vstavek preveri odziv in kodi stanja 401 in 403 obravnava kot neveljavna poverila, vse ostale odzive pa kot veljavna."
);
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
diff --git a/autotest-js.sh b/autotest-js.sh
new file mode 100755
index 00000000000..78f4948e7ad
--- /dev/null
+++ b/autotest-js.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+#
+# ownCloud
+#
+# Run JS tests
+#
+# @author Vincent Petry
+# @copyright 2014 Vincent Petry
+#
+NPM="$(which npm 2>/dev/null)"
+PREFIX="build"
+
+if test -z "$NPM"
+then
+ echo 'Node JS >= 0.8 is required to run the JavaScript tests' >&2
+ exit 1
+fi
+
+# update/install test packages
+mkdir -p "$PREFIX" && $NPM install --link --prefix "$PREFIX" || exit 3
+
+KARMA="$(which karma 2>/dev/null)"
+
+# If not installed globally, try local version
+if test -z "$KARMA"
+then
+ KARMA="$PREFIX/node_modules/karma/bin/karma"
+fi
+
+if test -z "$KARMA"
+then
+ echo 'Karma module executable not found' >&2
+ exit 2
+fi
+
+KARMA_TESTSUITE="$1" $KARMA start tests/karma.config.js --single-run
+
diff --git a/autotest.sh b/autotest.sh
index 3562b0feb04..94fc692a94d 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -13,6 +13,7 @@ ADMINLOGIN=admin$EXECUTOR_NUMBER
BASEDIR=$PWD
DBCONFIGS="sqlite mysql pgsql oci"
+PHPUNIT=$(which phpunit)
function print_syntax {
echo -e "Syntax: ./autotest.sh [dbconfigname] [testfile]\n" >&2
@@ -23,6 +24,20 @@ function print_syntax {
echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2
}
+if ! [ -x $PHPUNIT ]; then
+ echo "phpunit executable not found, please install phpunit version >= 3.7" >&2
+ exit 3
+fi
+
+PHPUNIT_VERSION=$($PHPUNIT --version | cut -d" " -f2)
+PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1)
+PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2)
+
+if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then
+ echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2
+ exit 4
+fi
+
if ! [ -w config -a -w config/config.php ]; then
echo "Please enable write permissions on config and config/config.php" >&2
exit 1
@@ -179,10 +194,10 @@ EOF
mkdir coverage-html-$1
php -f enable_all.php
if [ -z "$NOCOVERAGE" ]; then
- phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3
+ $PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3
else
echo "No coverage"
- phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3
+ $PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3
fi
}
diff --git a/build/package.json b/build/package.json
new file mode 100644
index 00000000000..c9ed7b96c6c
--- /dev/null
+++ b/build/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "owncloud-js-tests",
+ "description": "ownCloud tests",
+ "version": "0.0.1",
+ "author": {
+ "name": "Vincent Petry",
+ "email": "pvince81@owncloud.com"
+ },
+ "private": true,
+ "homepage": "https://github.com/owncloud/",
+ "contributors": [],
+ "dependencies": {},
+ "devDependencies": {
+ "karma": "*",
+ "karma-jasmine": "*",
+ "karma-junit-reporter": "*",
+ "karma-coverage": "*"
+ },
+ "engine": "node >= 0.8"
+}
diff --git a/config/config.sample.php b/config/config.sample.php
old mode 100644
new mode 100755
index ba068968323..01abc583688
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -80,6 +80,12 @@ $CONFIG = array(
/* Domain name used by ownCloud for the sender mail address, e.g. no-reply@example.com */
"mail_domain" => "example.com",
+/* FROM address used by ownCloud for the sender mail address, e.g. owncloud@example.com
+ This setting overwrites the built in 'sharing-noreply' and 'lostpassword-noreply'
+ FROM addresses, that ownCloud uses
+*/
+"mail_from_address" => "owncloud",
+
/* Enable SMTP class debugging */
"mail_smtpdebug" => false,
@@ -114,6 +120,9 @@ $CONFIG = array(
/* Password to use for sendmail mail, depends on mail_smtpauth if this is used */
"mail_smtppassword" => "",
+/* memcached hostname and port (Only used when xCache, APC and APCu are absent.) */
+"memcached_server" => array('localhost', 11211),
+
/* How long should ownCloud keep deleted files in the trash bin, default value: 30 days */
'trashbin_retention_obligation' => 30,
diff --git a/core/ajax/share.php b/core/ajax/share.php
index be02c056357..8b48effb458 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -119,8 +119,12 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$subject = (string)$l->t('%s shared »%s« with you', array($ownerDisplayName, $filename));
$expiration = null;
if (isset($items[0]['expiration'])) {
- $date = new DateTime($items[0]['expiration']);
- $expiration = $date->format('Y-m-d');
+ try {
+ $date = new DateTime($items[0]['expiration']);
+ $expiration = $l->l('date', $date->getTimestamp());
+ } catch (Exception $e) {
+ \OCP\Util::writeLog('sharing', "Couldn't read date: " . $e->getMessage(), \OCP\Util::ERROR);
+ }
}
if ($itemType === 'folder') {
@@ -183,6 +187,8 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
break;
case 'email':
+ // enable l10n support
+ $l = OC_L10N::get('core');
// read post variables
$user = OCP\USER::getUser();
$displayName = OCP\User::getDisplayName();
@@ -191,8 +197,16 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$file = $_POST['file'];
$to_address = $_POST['toaddress'];
- // enable l10n support
- $l = OC_L10N::get('core');
+ $expiration = null;
+ if (isset($_POST['expiration']) && $_POST['expiration'] !== '') {
+ try {
+ $date = new DateTime($_POST['expiration']);
+ $expiration = $l->l('date', $date->getTimestamp());
+ } catch (Exception $e) {
+ \OCP\Util::writeLog('sharing', "Couldn't read date: " . $e->getMessage(), \OCP\Util::ERROR);
+ }
+
+ }
// setup the email
$subject = (string)$l->t('%s shared »%s« with you', array($displayName, $file));
@@ -202,6 +216,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$content->assign ('type', $type);
$content->assign ('user_displayname', $displayName);
$content->assign ('filename', $file);
+ $content->assign('expiration', $expiration);
$text = $content->fetchPage();
$content = new OC_Template("core", "altmail", "");
@@ -209,6 +224,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$content->assign ('type', $type);
$content->assign ('user_displayname', $displayName);
$content->assign ('filename', $file);
+ $content->assign('expiration', $expiration);
$alttext = $content->fetchPage();
$default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply');
diff --git a/core/command/user/report.php b/core/command/user/report.php
new file mode 100644
index 00000000000..f95ba251bcc
--- /dev/null
+++ b/core/command/user/report.php
@@ -0,0 +1,61 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Command\User;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Helper\TableHelper;
+
+class Report extends Command {
+ protected function configure() {
+ $this
+ ->setName('user:report')
+ ->setDescription('shows how many users have access');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $table = $this->getHelperSet()->get('table');
+ $table->setHeaders(array('User Report', ''));
+ $userCountArray = $this->countUsers();
+ if(!empty($userCountArray)) {
+ $total = 0;
+ $rows = array();
+ foreach($userCountArray as $classname => $users) {
+ $total += $users;
+ $rows[] = array($classname, $users);
+ }
+
+ $rows[] = array(' ');
+ $rows[] = array('total users', $total);
+ } else {
+ $rows[] = array('No backend enabled that supports user counting', '');
+ }
+
+ $userDirectoryCount = $this->countUserDirectories();
+ $rows[] = array(' ');
+ $rows[] = array('user directories', $userDirectoryCount);
+
+ $table->setRows($rows);
+ $table->render($output);
+ }
+
+ private function countUsers() {
+ \OC_App::loadApps(array('authentication'));
+ $userManager = \OC::$server->getUserManager();
+ return $userManager->countUsers();
+ }
+
+ private function countUserDirectories() {
+ $dataview = new \OC\Files\View('/');
+ $userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory');
+ return count($userDirectories);
+ }
+}
\ No newline at end of file
diff --git a/core/css/auth.css b/core/css/auth.css
index 0adc10c77d9..70df9f0ae0f 100644
--- a/core/css/auth.css
+++ b/core/css/auth.css
@@ -1,7 +1,7 @@
h2 {
- font-size:2em;
+ font-size:32px;
font-weight:700;
- margin-bottom:1em;
+ margin-bottom:16px;
white-space:nowrap;
}
@@ -18,8 +18,8 @@ h2 img {
}
#oauth {
- width:20em;
- margin:4em auto 2em;
+ width:320px;
+ margin:64px auto 32px;
}
#allow-auth {
@@ -33,7 +33,7 @@ h2 img {
background:none;
border:0;
box-shadow:0 0 0 #fff, 0 0 0 #fff inset;
- font-size:1.2em;
- margin:.7em;
+ font-size:19px;
+ margin:11px;
padding:0;
}
diff --git a/core/css/fixes.css b/core/css/fixes.css
index 3cdeccb0387..4ee854addef 100644
--- a/core/css/fixes.css
+++ b/core/css/fixes.css
@@ -58,3 +58,14 @@
.ie9 #navigation {
width: 100px;
}
+
+/* IE8 isn't able to display transparent background. So it is specified using a gradient */
+.ie8 #nojavascript {
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4c320000', endColorstr='#4c320000'); /* IE */
+}
+
+/* IE8 doesn't have rounded corners, so the strengthify bar should be wider */
+.lte8 #body-login .strengthify-wrapper {
+ width: 271px;
+ left: 6px;
+}
diff --git a/core/css/icons.css b/core/css/icons.css
new file mode 100644
index 00000000000..2dc35084122
--- /dev/null
+++ b/core/css/icons.css
@@ -0,0 +1,244 @@
+.icon {
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+
+
+
+/* general assets */
+
+.icon-breadcrumb {
+ background-image: url('../img/breadcrumb.svg');
+}
+
+.icon-loading {
+ background-image: url('../img/loading.gif');
+}
+.icon-loading-dark {
+ background-image: url('../img/loading-dark.gif');
+}
+.icon-loading-small {
+ background-image: url('../img/loading-small.gif');
+}
+
+.icon-noise {
+ background-image: url('../img/noise.png');
+ background-repeat: no-repeat;
+}
+
+
+
+
+/* action icons */
+
+.icon-add {
+ background-image: url('../img/actions/add.svg');
+}
+
+.icon-caret {
+ background-image: url('../img/actions/caret.svg');
+}
+.icon-caret-dark {
+ background-image: url('../img/actions/caret-dark.svg');
+}
+
+.icon-checkmark {
+ background-image: url('../img/actions/checkmark.svg');
+}
+
+.icon-checkmark-white {
+ background-image: url('../img/actions/checkmark-white.svg');
+}
+
+.icon-clock {
+ background-image: url('../img/actions/clock.svg');
+}
+
+.icon-close {
+ background-image: url('../img/actions/close.svg');
+}
+
+.icon-confirm {
+ background-image: url('../img/actions/confirm.svg');
+}
+
+.icon-delete {
+ background-image: url('../img/actions/delete.svg');
+}
+.icon-delete-hover {
+ background-image: url('../img/actions/delete-hover.svg');
+}
+
+.icon-download {
+ background-image: url('../img/actions/download.svg');
+}
+
+.icon-history {
+ background-image: url('../img/actions/history.svg');
+}
+
+.icon-info {
+ background-image: url('../img/actions/info.svg');
+}
+
+.icon-lock {
+ background-image: url('../img/actions/lock.svg');
+}
+
+.icon-logout {
+ background-image: url('../img/actions/logout.svg');
+}
+
+.icon-mail {
+ background-image: url('../img/actions/mail.svg');
+}
+
+.icon-more {
+ background-image: url('../img/actions/more.svg');
+}
+
+.icon-password {
+ background-image: url('../img/actions/password.svg');
+}
+
+.icon-pause {
+ background-image: url('../img/actions/pause.svg');
+}
+.icon-pause-big {
+ background-image: url('../img/actions/pause-big.svg');
+}
+
+.icon-play {
+ background-image: url('../img/actions/play.svg');
+}
+.icon-play-add {
+ background-image: url('../img/actions/play-add.svg');
+}
+.icon-play-big {
+ background-image: url('../img/actions/play-big.svg');
+}
+.icon-play-next {
+ background-image: url('../img/actions/play-next.svg');
+}
+.icon-play-previous {
+ background-image: url('../img/actions/play-previous.svg');
+}
+
+.icon-public {
+ background-image: url('../img/actions/public.svg');
+}
+
+.icon-rename {
+ background-image: url('../img/actions/rename.svg');
+}
+
+.icon-search {
+ background-image: url('../img/actions/search.svg');
+}
+
+.icon-settings {
+ background-image: url('../img/actions/settings.svg');
+}
+
+.icon-share {
+ background-image: url('../img/actions/share.svg');
+}
+.icon-shared {
+ background-image: url('../img/actions/shared.svg');
+}
+
+.icon-sound {
+ background-image: url('../img/actions/sound.svg');
+}
+.icon-sound-off {
+ background-image: url('../img/actions/sound-off.svg');
+}
+
+.icon-star {
+ background-image: url('../img/actions/star.svg');
+}
+
+.icon-starred {
+ background-image: url('../img/actions/starred.svg');
+}
+
+.icon-toggle {
+ background-image: url('../img/actions/toggle.svg');
+}
+
+.icon-triangle-e {
+ background-image: url('../img/actions/triangle-e.svg');
+}
+.icon-triangle-n {
+ background-image: url('../img/actions/triangle-n.svg');
+}
+.icon-triangle-s {
+ background-image: url('../img/actions/triangle-s.svg');
+}
+
+.icon-upload {
+ background-image: url('../img/actions/upload.svg');
+}
+.icon-upload-white {
+ background-image: url('../img/actions/upload-white.svg');
+}
+
+.icon-user {
+ background-image: url('../img/actions/user.svg');
+}
+
+.icon-view-close {
+ background-image: url('../img/actions/view-close.svg');
+}
+.icon-view-next {
+ background-image: url('../img/actions/view-next.svg');
+}
+.icon-view-pause {
+ background-image: url('../img/actions/view-pause.svg');
+}
+.icon-view-play {
+ background-image: url('../img/actions/view-play.svg');
+}
+.icon-view-previous {
+ background-image: url('../img/actions/view-previous.svg');
+}
+
+
+
+
+/* places icons */
+
+.icon-calendar-dark {
+ background-image: url('../img/places/calendar-dark.svg');
+}
+
+.icon-contacts-dark {
+ background-image: url('../img/places/contacts-dark.svg');
+}
+
+.icon-file {
+ background-image: url('../img/places/file.svg');
+}
+.icon-files {
+ background-image: url('../img/places/files.svg');
+}
+.icon-folder {
+ background-image: url('../img/places/folder.svg');
+}
+
+.icon-home {
+ background-image: url('../img/places/home.svg');
+}
+
+.icon-link {
+ background-image: url('../img/places/link.svg');
+}
+
+.icon-music {
+ background-image: url('../img/places/music.svg');
+}
+
+.icon-picture {
+ background-image: url('../img/places/picture.svg');
+}
diff --git a/core/css/jquery.multiselect.css b/core/css/jquery.multiselect.css
index 898786a6157..9b81c3bdcfb 100644
--- a/core/css/jquery.multiselect.css
+++ b/core/css/jquery.multiselect.css
@@ -1,23 +1,23 @@
-.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
-.ui-multiselect span.ui-icon { float:right }
+.ui-multiselect { padding:2px 0 2px 4px; text-align:left; }
+.ui-multiselect span.ui-icon { float:right; }
.ui-multiselect-single .ui-multiselect-checkboxes input { position:absolute !important; top: auto !important; left:-9999px; }
-.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important }
+.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important; }
-.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
-.ui-multiselect-header ul { font-size:0.9em }
-.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
-.ui-multiselect-header a { text-decoration:none }
-.ui-multiselect-header a:hover { text-decoration:underline }
-.ui-multiselect-header span.ui-icon { float:left }
-.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }
+.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px; }
+.ui-multiselect-header ul { font-size:14px; }
+.ui-multiselect-header ul li { float:left; padding:0 10px 0 0; }
+.ui-multiselect-header a { text-decoration:none; }
+.ui-multiselect-header a:hover { text-decoration:underline; }
+.ui-multiselect-header span.ui-icon { float:left;}
+.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0; }
-.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left }
-.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:scroll }
-.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
-.ui-multiselect-checkboxes label input { position:relative; top:1px }
-.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
-.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
-.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }
+.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left; }
+.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:scroll; }
+.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px; }
+.ui-multiselect-checkboxes label input { position:relative; top:1px; }
+.ui-multiselect-checkboxes li { clear:both; font-size:14px; padding-right:3px; }
+.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid; }
+.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none; }
/* remove label borders in IE6 because IE6 does not support transparency */
-* html .ui-multiselect-checkboxes label { border:none }
+* html .ui-multiselect-checkboxes label { border:none; }
diff --git a/core/css/multiselect.css b/core/css/multiselect.css
index e2a35ac3633..60f2f47e698 100644
--- a/core/css/multiselect.css
+++ b/core/css/multiselect.css
@@ -7,7 +7,7 @@ ul.multiselectoptions {
border: 1px solid #ddd;
border-top: none;
box-shadow: 0 1px 1px #ddd;
- padding-top: .5em;
+ padding-top: 8px;
position: absolute;
max-height: 20em;
overflow-y: auto;
@@ -15,8 +15,8 @@ ul.multiselectoptions {
}
ul.multiselectoptions.down {
- border-bottom-left-radius: .5em;
- border-bottom-right-radius: .5em;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
width: 100%; /* do not cut off group names */
-webkit-box-shadow: 0px 0px 20px rgba(29,45,68,.4);
-moz-box-shadow: 0px 0px 20px rgba(29,45,68,.4);
@@ -24,8 +24,8 @@ ul.multiselectoptions.down {
}
ul.multiselectoptions.up {
- border-top-left-radius: .5em;
- border-top-right-radius: .5em;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
}
ul.multiselectoptions>li {
@@ -52,8 +52,8 @@ div.multiselect {
display: inline-block;
max-width: 400px;
min-width: 150px;
+ padding-right: 10px;
min-height: 20px;
- padding-right: .6em;
position: relative;
vertical-align: bottom;
}
@@ -78,7 +78,7 @@ div.multiselect.down {
div.multiselect>span:first-child {
float: left;
- margin-right: 2em;
+ margin-right: 32px;
overflow: hidden;
text-overflow: ellipsis;
width: 90%;
@@ -86,12 +86,12 @@ div.multiselect>span:first-child {
div.multiselect>span:last-child {
position: absolute;
- right: .8em;
+ right: 13px;
}
ul.multiselectoptions input.new {
- padding-bottom: .2em;
- padding-top: .2em;
+ padding-bottom: 3px;
+ padding-top: 3px;
margin: 0;
}
diff --git a/core/css/share.css b/core/css/share.css
index d8140242e06..4ae3b77757e 100644
--- a/core/css/share.css
+++ b/core/css/share.css
@@ -8,54 +8,53 @@
border-bottom-right-radius: 5px;
box-shadow:0 1px 1px #777;
display:block;
- margin-right:7em;
+ margin-right:112px;
position:absolute;
right:0;
- width:25em;
+ width:320px;
z-index:500;
- padding:1em;
+ padding:16px;
}
#shareWithList {
list-style-type:none;
- padding:.5em;
+ padding:8px;
}
- #shareWithList li {
- padding-top: 10px;
- padding-bottom: 10px;
- font-weight: bold;
- line-height: 21px;
- white-space: normal;
- }
+#shareWithList li {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ font-weight: bold;
+ line-height: 21px;
+ white-space: normal;
+}
- #shareWithList .unshare img, #shareWithList .showCruds img {
- vertical-align:text-bottom; /* properly align icons */
- }
+#shareWithList .unshare img, #shareWithList .showCruds img {
+ vertical-align:text-bottom; /* properly align icons */
+}
- #shareWithList label input[type=checkbox]{
- margin-left: 0;
- }
- #shareWithList .username{
- padding-right: .5em;
- white-space: nowrap;
- text-overflow: ellipsis;
- max-width: 254px;
- display: inline-block;
- overflow: hidden;
- vertical-align: middle;
- }
- #shareWithList li label{
- margin-right: .5em;
- }
+#shareWithList label input[type=checkbox]{
+ margin-left: 0;
+}
+#shareWithList .username{
+ padding-right: 8px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ max-width: 254px;
+ display: inline-block;
+ overflow: hidden;
+ vertical-align: middle;
+}
+#shareWithList li label{
+ margin-right: 8px;
+}
#dropdown label {
font-weight:400;
white-space: nowrap;
}
#dropdown input[type="checkbox"] {
- margin:0 .2em 0 .5em;
- vertical-align: middle;
+ margin:0 3px 0 8px;
}
a.showCruds {
@@ -67,13 +66,13 @@ a.unshare {
display:inline;
float:right;
opacity:.5;
- padding:.3em 0 0 .3em !important;
+ padding:5px 0 0 5px !important;
margin-top:-5px;
}
#link {
border-top:1px solid #ddd;
- padding-top:.5em;
+ padding-top:8px;
}
#dropdown input[type="text"],#dropdown input[type="password"] {
@@ -91,12 +90,12 @@ a.unshare {
}
#link #showPassword img {
- padding-left:.3em;
+ padding-left:5px;
width:12px;
}
.reshare,#link label,#expiration label {
- padding-left:.5em;
+ padding-left:8px;
}
a.showCruds:hover,a.unshare:hover {
diff --git a/core/css/styles.css b/core/css/styles.css
index fa001d41c2c..03eb76ddce5 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -46,6 +46,34 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
opacity: 1;
}
+#nojavascript {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: 999;
+ width: 100%;
+ text-align: center;
+ background-color: rgba(50,0,0,0.5);
+ color: white;
+ text-shadow: 0px 0px 5px black;
+ line-height: 125%;
+ font-size: x-large;
+}
+#nojavascript div {
+ width: 50%;
+ top: 40%;
+ position: absolute;
+ left: 50%;
+ margin-left: -25%;
+}
+#nojavascript a {
+ color: #ccc;
+ text-decoration: underline;
+}
+#nojavascript a:hover {
+ color: #aaa;
+}
+
/* INPUTS */
input[type="text"],
input[type="password"],
@@ -236,7 +264,7 @@ input[type="submit"].enabled {
top: 45px;
}
#content-wrapper {
- position:absolute; height:100%; width:100%; padding-top:3.5em; padding-left:80px;
+ position:absolute; height:100%; width:100%; padding-left:80px; padding-top: 45px;
-moz-box-sizing:border-box; box-sizing:border-box;
}
#leftcontent, .leftcontent {
@@ -313,7 +341,7 @@ input[type="submit"].enabled {
margin-bottom: 20px;
text-align: left;
}
-#body-login form #adminaccount { margin-bottom:5px; }
+#body-login form #adminaccount { margin-bottom:15px; }
#body-login form fieldset legend, #datadirContent label {
width: 100%;
font-weight: bold;
@@ -333,6 +361,21 @@ input[type="submit"].enabled {
margin-left: -4px;
}
+/* strengthify wrapper */
+#body-login .strengthify-wrapper {
+ display: inline-block;
+ position: relative;
+ left: 15px;
+ top: -21px;
+ width: 252px;
+}
+
+/* tipsy for the strengthify wrapper looks better with following font settings */
+#body-login .tipsy-inner {
+ font-weight: bold;
+ color: #ccc;
+}
+
/* Icons for username and password fields to better recognize them */
#adminlogin, #adminpass, #user, #password { width:11.7em!important; padding-left:1.8em; }
#adminlogin+label+img, #adminpass-icon, #user+label+img, #password-icon {
@@ -829,15 +872,23 @@ span.ui-icon {float: left; margin: 3px 7px 30px 0;}
#tagsdialog .taglist li:hover, #tagsdialog .taglist li:active { background:#eee; }
#tagsdialog .addinput { width: 90%; clear: both; }
-/* ---- APP SETTINGS ---- */
-.popup { background-color:white; border-radius:10px 10px 10px 10px; box-shadow:0 0 20px #888; color:#333; padding:10px; position:fixed !important; z-index:100; }
+/* ---- APP SETTINGS - LEGACY, DO NOT USE THE POPUP! ---- */
+.popup {
+ background-color: #fff;
+ border-radius: 3px;
+ box-shadow: 0 0 10px #aaa;
+ color: #333;
+ padding: 10px;
+ position: fixed !important;
+ z-index: 100;
+}
.popup.topright { top:7em; right:1em; }
.popup.bottomleft { bottom:1em; left:33em; }
.popup .close { position:absolute; top:0.2em; right:0.2em; height:20px; width:20px; background:url('../img/actions/close.svg') no-repeat center; }
.popup h2 { font-weight:bold; font-size:1.2em; }
.arrow { border-bottom:10px solid white; border-left:10px solid transparent; border-right:10px solid transparent; display:block; height:0; position:absolute; width:0; z-index:201; }
.arrow.left { left:-13px; bottom:1.2em; -webkit-transform:rotate(270deg); -moz-transform:rotate(270deg); -o-transform:rotate(270deg); -ms-transform:rotate(270deg); transform:rotate(270deg); }
-.arrow.up { top:-8px; right:2em; }
+.arrow.up { top:-8px; right:6px; }
.arrow.down { -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -o-transform:rotate(180deg); -ms-transform:rotate(180deg); transform:rotate(180deg); }
.help-includes {
overflow: hidden;
diff --git a/core/img/actions/checkmark-white.png b/core/img/actions/checkmark-white.png
new file mode 100644
index 00000000000..08b8783649f
Binary files /dev/null and b/core/img/actions/checkmark-white.png differ
diff --git a/core/img/actions/checkmark-white.svg b/core/img/actions/checkmark-white.svg
new file mode 100644
index 00000000000..5e8fe8abccc
--- /dev/null
+++ b/core/img/actions/checkmark-white.svg
@@ -0,0 +1,4 @@
+
diff --git a/core/img/actions/toggle-filelist.png b/core/img/actions/toggle-filelist.png
new file mode 100644
index 00000000000..45d363f1934
Binary files /dev/null and b/core/img/actions/toggle-filelist.png differ
diff --git a/core/img/actions/toggle-filelist.svg b/core/img/actions/toggle-filelist.svg
new file mode 100644
index 00000000000..940f6a49e63
--- /dev/null
+++ b/core/img/actions/toggle-filelist.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/core/img/actions/toggle-pictures.png b/core/img/actions/toggle-pictures.png
new file mode 100644
index 00000000000..8068d17e30d
Binary files /dev/null and b/core/img/actions/toggle-pictures.png differ
diff --git a/core/img/actions/toggle-pictures.svg b/core/img/actions/toggle-pictures.svg
new file mode 100644
index 00000000000..5205c0226d1
--- /dev/null
+++ b/core/img/actions/toggle-pictures.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/core/js/core.json b/core/js/core.json
new file mode 100644
index 00000000000..79cfc42f587
--- /dev/null
+++ b/core/js/core.json
@@ -0,0 +1,28 @@
+{
+ "modules": [
+ "jquery-1.10.0.min.js",
+ "jquery-migrate-1.2.1.min.js",
+ "jquery-ui-1.10.0.custom.js",
+ "jquery-showpassword.js",
+ "jquery.infieldlabel.js",
+ "jquery.placeholder.js",
+ "jquery-tipsy.js",
+ "compatibility.js",
+ "jquery.ocdialog.js",
+ "oc-dialogs.js",
+ "js.js",
+ "octemplate.js",
+ "eventsource.js",
+ "config.js",
+ "multiselect.js",
+ "search.js",
+ "router.js",
+ "oc-requesttoken.js",
+ "styles.js",
+ "apps.js",
+ "fixes.js",
+ "jquery-ui-2.10.0.custom.js",
+ "jquery-tipsy.js",
+ "jquery.ocdialog.js"
+ ]
+}
diff --git a/core/js/js.js b/core/js/js.js
index f5991cfc9dd..1c7d89ea055 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -12,7 +12,14 @@ var oc_current_user = document.getElementsByTagName('head')[0].getAttribute('dat
var oc_requesttoken = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken');
if (typeof oc_webroot === "undefined") {
- oc_webroot = location.pathname.substr(0, location.pathname.lastIndexOf('/'));
+ oc_webroot = location.pathname;
+ var pos = oc_webroot.indexOf('/index.php/');
+ if (pos !== -1) {
+ oc_webroot = oc_webroot.substr(0, pos);
+ }
+ else {
+ oc_webroot = oc_webroot.substr(0, oc_webroot.lastIndexOf('/'));
+ }
}
if (oc_debug !== true || typeof console === "undefined" || typeof console.log === "undefined") {
if (!window.console) {
@@ -41,8 +48,8 @@ function initL10N(app) {
t.cache[app] = [];
}
}
- if (typeof t.plural_function == 'undefined') {
- t.plural_function = function (n) {
+ if (typeof t.plural_function[app] == 'undefined') {
+ t.plural_function[app] = function (n) {
var p = (n != 1) ? 1 : 0;
return { 'nplural' : 2, 'plural' : p };
};
@@ -67,7 +74,7 @@ function initL10N(app) {
Gettext._locale_data[domain].head.plural_func = eval("("+code+")");
*/
var code = 'var plural; var nplurals; '+pf+' return { "nplural" : nplurals, "plural" : (plural === true ? 1 : plural ? plural : 0) };';
- t.plural_function = new Function("n", code);
+ t.plural_function[app] = new Function("n", code);
} else {
console.log("Syntax error in language file. Plural-Forms header is invalid ["+t.plural_forms+"]");
}
@@ -103,6 +110,10 @@ function t(app, text, vars, count){
}
}
t.cache = {};
+// different apps might or might not redefine the nplurals function correctly
+// this is to make sure that a "broken" app doesn't mess up with the
+// other app's plural function
+t.plural_function = {};
/**
* translate a string
@@ -115,11 +126,11 @@ t.cache = {};
*/
function n(app, text_singular, text_plural, count, vars) {
initL10N(app);
- var identifier = '_' + text_singular + '__' + text_plural + '_';
+ var identifier = '_' + text_singular + '_::_' + text_plural + '_';
if( typeof( t.cache[app][identifier] ) !== 'undefined' ){
var translation = t.cache[app][identifier];
if ($.isArray(translation)) {
- var plural = t.plural_function(count);
+ var plural = t.plural_function[app](count);
return t(app, translation[plural.plural], vars, count);
}
}
@@ -241,6 +252,12 @@ var OC={
}
return link;
},
+ /**
+ * Redirect to the target URL, can also be used for downloads.
+ */
+ redirect: function(targetUrl) {
+ window.location = targetUrl;
+ },
/**
* get the absolute path to an image file
* @param app the app id to which the image belongs
@@ -353,6 +370,34 @@ var OC={
}
return result;
},
+
+ /**
+ * Builds a URL query from a JS map.
+ * @param params parameter map
+ * @return string containing a URL query (without question) mark
+ */
+ buildQueryString: function(params) {
+ var s = '';
+ var first = true;
+ if (!params) {
+ return s;
+ }
+ for (var key in params) {
+ var value = params[key];
+ if (first) {
+ first = false;
+ }
+ else {
+ s += '&';
+ }
+ s += encodeURIComponent(key);
+ if (value !== null && typeof(value) !== 'undefined') {
+ s += '=' + encodeURIComponent(value);
+ }
+ }
+ return s;
+ },
+
/**
* Opens a popup with the setting for an app.
* @param appid String. The ID of the app e.g. 'calendar', 'contacts' or 'files'.
@@ -405,6 +450,9 @@ var OC={
throw e;
});
}
+ if(!SVGSupport()) {
+ replaceSVG();
+ }
}).show();
}, 'html');
}
@@ -471,11 +519,11 @@ OC.Breadcrumb={
},
_show:function(container, dir, leafname, leaflink){
var self = this;
-
+
this._clear(container);
-
+
// show home + path in subdirectories
- if (dir && dir !== '/') {
+ if (dir) {
//add home
var link = OC.linkTo('files','index.php');
@@ -502,7 +550,7 @@ OC.Breadcrumb={
}
});
}
-
+
//add leafname
if (leafname && leaflink) {
this._push(container, leafname, leaflink);
@@ -825,7 +873,10 @@ function humanFileSize(size) {
order = Math.min(humanList.length - 1, order);
var readableFormat = humanList[order];
var relativeSize = (size / Math.pow(1024, order)).toFixed(1);
- if(relativeSize.substr(relativeSize.length-2,2)=='.0'){
+ if(order < 2){
+ relativeSize = parseFloat(relativeSize).toFixed(0);
+ }
+ else if(relativeSize.substr(relativeSize.length-2,2)==='.0'){
relativeSize=relativeSize.substr(0,relativeSize.length-2);
}
return relativeSize + ' ' + readableFormat;
diff --git a/core/js/multiselect.js b/core/js/multiselect.js
index 2210df3bc7a..02699636a20 100644
--- a/core/js/multiselect.js
+++ b/core/js/multiselect.js
@@ -27,6 +27,7 @@
'onuncheck':false,
'minWidth': 'default;'
};
+ var slideDuration = 200;
$(this).attr('data-msid', multiSelectId);
$.extend(settings,options);
$.each(this.children(),function(i,option) {
@@ -68,12 +69,12 @@
var button=$(this);
if(button.parent().children('ul').length>0) {
if(self.menuDirection === 'down') {
- button.parent().children('ul').slideUp(400,function() {
+ button.parent().children('ul').slideUp(slideDuration,function() {
button.parent().children('ul').remove();
button.removeClass('active down');
});
} else {
- button.parent().children('ul').fadeOut(400,function() {
+ button.parent().children('ul').fadeOut(slideDuration,function() {
button.parent().children('ul').remove();
button.removeClass('active up');
});
@@ -81,7 +82,7 @@
return;
}
var lists=$('ul.multiselectoptions');
- lists.slideUp(400,function(){
+ lists.slideUp(slideDuration,function(){
lists.remove();
$('div.multiselect').removeClass('active');
button.addClass('active');
@@ -276,7 +277,7 @@
});
list.addClass('down');
button.addClass('down');
- list.slideDown();
+ list.slideDown(slideDuration);
} else {
list.css('max-height', $(document).height()-($(document).height()-(pos.top)+50)+'px');
list.css({
@@ -299,12 +300,12 @@
if(!button.parent().data('preventHide')) {
// How can I save the effect in a var?
if(self.menuDirection === 'down') {
- button.parent().children('ul').slideUp(400,function() {
+ button.parent().children('ul').slideUp(slideDuration,function() {
button.parent().children('ul').remove();
button.removeClass('active down');
});
} else {
- button.parent().children('ul').fadeOut(400,function() {
+ button.parent().children('ul').fadeOut(slideDuration,function() {
button.parent().children('ul').remove();
button.removeClass('active up');
});
diff --git a/core/js/router.js b/core/js/router.js
index 44e7c30602e..e6ef54a1864 100644
--- a/core/js/router.js
+++ b/core/js/router.js
@@ -3,9 +3,12 @@ OC.Router = {
// register your ajax requests to load after the loading of the routes
// has finished. otherwise you face problems with race conditions
registerLoadedCallback: function(callback){
+ if (!this.routes_request){
+ return;
+ }
this.routes_request.done(callback);
},
- routes_request: $.ajax(OC.router_base_url + '/core/routes.json', {
+ routes_request: !window.TESTING && $.ajax(OC.router_base_url + '/core/routes.json', {
dataType: 'json',
success: function(jsondata) {
if (jsondata.status === 'success') {
@@ -75,4 +78,4 @@ OC.Router = {
return OC.router_base_url + url;
}
-};
+}
diff --git a/core/js/setup.js b/core/js/setup.js
index 0863be35886..279b5fbebb9 100644
--- a/core/js/setup.js
+++ b/core/js/setup.js
@@ -7,9 +7,9 @@ $(document).ready(function() {
oracle:!!$('#hasOracle').val(),
mssql:!!$('#hasMSSQL').val()
};
-
+
$('#selectDbType').buttonset();
-
+
if($('#hasSQLite').val()){
$('#use_other_db').hide();
$('#use_oracle_db').hide();
@@ -63,17 +63,27 @@ $(document).ready(function() {
form.submit();
return false;
});
-
+
// Expand latest db settings if page was reloaded on error
var currentDbType = $('input[type="radio"]:checked').val();
-
+
if (currentDbType === undefined){
$('input[type="radio"]').first().click();
}
-
+
if (currentDbType === 'sqlite' || (dbtypes.sqlite && currentDbType === undefined)){
$('#datadirContent').hide(250);
$('#databaseField').hide(250);
}
-
+
+ $('#adminpass').strengthify({
+ zxcvbn: OC.linkTo('3rdparty','zxcvbn/js/zxcvbn.js'),
+ titles: [
+ t('core', 'Very weak password'),
+ t('core', 'Weak password'),
+ t('core', 'So-so password'),
+ t('core', 'Good password'),
+ t('core', 'Strong password')
+ ]
+ });
});
diff --git a/core/js/share.js b/core/js/share.js
index 10ab5f47f27..0939259b7da 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -181,7 +181,8 @@ OC.Share={
},
showDropDown:function(itemType, itemSource, appendTo, link, possiblePermissions, filename) {
var data = OC.Share.loadItem(itemType, itemSource);
- var html = '
';
+ var dropDownEl;
+ var html = '
';
if (data !== false && data.reshare !== false && data.reshare.uid_owner !== undefined) {
if (data.reshare.share_type == OC.Share.SHARE_TYPE_GROUP) {
html += ''+t('core', 'Shared with you and the group {group} by {owner}', {group: escapeHTML(data.reshare.share_with), owner: escapeHTML(data.reshare.displayname_owner)})+'';
@@ -239,7 +240,8 @@ OC.Share={
html += '';
html += '';
html += '
';
- $(html).appendTo(appendTo);
+ dropDownEl = $(html);
+ dropDownEl.appendTo(appendTo);
}
+ dropDownEl.attr('data-item-source-name', filename);
$('#dropdown').show('blind', function() {
OC.Share.droppedDown = true;
});
@@ -729,12 +733,16 @@ $(document).ready(function() {
var itemSource = $('#dropdown').data('item-source');
var file = $('tr').filterAttr('data-id', String(itemSource)).data('file');
var email = $('#email').val();
+ var expirationDate = '';
+ if ( $('#expirationCheckbox').is(':checked') === true ) {
+ expirationDate = $( "#expirationDate" ).val();
+ }
if (email != '') {
$('#email').prop('disabled', true);
$('#email').val(t('core', 'Sending ...'));
$('#emailButton').prop('disabled', true);
- $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file},
+ $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file, expiration: expirationDate},
function(result) {
$('#email').prop('disabled', false);
$('#emailButton').prop('disabled', false);
diff --git a/core/js/tests/lib/sinon-1.7.3.js b/core/js/tests/lib/sinon-1.7.3.js
new file mode 100644
index 00000000000..26c4bd9c46b
--- /dev/null
+++ b/core/js/tests/lib/sinon-1.7.3.js
@@ -0,0 +1,4290 @@
+/**
+ * Sinon.JS 1.7.3, 2013/06/20
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
+ *
+ * (The BSD License)
+ *
+ * Copyright (c) 2010-2013, Christian Johansen, christian@cjohansen.no
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of Christian Johansen nor the names of his contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+this.sinon = (function () {
+var buster = (function (setTimeout, B) {
+ var isNode = typeof require == "function" && typeof module == "object";
+ var div = typeof document != "undefined" && document.createElement("div");
+ var F = function () {};
+
+ var buster = {
+ bind: function bind(obj, methOrProp) {
+ var method = typeof methOrProp == "string" ? obj[methOrProp] : methOrProp;
+ var args = Array.prototype.slice.call(arguments, 2);
+ return function () {
+ var allArgs = args.concat(Array.prototype.slice.call(arguments));
+ return method.apply(obj, allArgs);
+ };
+ },
+
+ partial: function partial(fn) {
+ var args = [].slice.call(arguments, 1);
+ return function () {
+ return fn.apply(this, args.concat([].slice.call(arguments)));
+ };
+ },
+
+ create: function create(object) {
+ F.prototype = object;
+ return new F();
+ },
+
+ extend: function extend(target) {
+ if (!target) { return; }
+ for (var i = 1, l = arguments.length, prop; i < l; ++i) {
+ for (prop in arguments[i]) {
+ target[prop] = arguments[i][prop];
+ }
+ }
+ return target;
+ },
+
+ nextTick: function nextTick(callback) {
+ if (typeof process != "undefined" && process.nextTick) {
+ return process.nextTick(callback);
+ }
+ setTimeout(callback, 0);
+ },
+
+ functionName: function functionName(func) {
+ if (!func) return "";
+ if (func.displayName) return func.displayName;
+ if (func.name) return func.name;
+ var matches = func.toString().match(/function\s+([^\(]+)/m);
+ return matches && matches[1] || "";
+ },
+
+ isNode: function isNode(obj) {
+ if (!div) return false;
+ try {
+ obj.appendChild(div);
+ obj.removeChild(div);
+ } catch (e) {
+ return false;
+ }
+ return true;
+ },
+
+ isElement: function isElement(obj) {
+ return obj && obj.nodeType === 1 && buster.isNode(obj);
+ },
+
+ isArray: function isArray(arr) {
+ return Object.prototype.toString.call(arr) == "[object Array]";
+ },
+
+ flatten: function flatten(arr) {
+ var result = [], arr = arr || [];
+ for (var i = 0, l = arr.length; i < l; ++i) {
+ result = result.concat(buster.isArray(arr[i]) ? flatten(arr[i]) : arr[i]);
+ }
+ return result;
+ },
+
+ each: function each(arr, callback) {
+ for (var i = 0, l = arr.length; i < l; ++i) {
+ callback(arr[i]);
+ }
+ },
+
+ map: function map(arr, callback) {
+ var results = [];
+ for (var i = 0, l = arr.length; i < l; ++i) {
+ results.push(callback(arr[i]));
+ }
+ return results;
+ },
+
+ parallel: function parallel(fns, callback) {
+ function cb(err, res) {
+ if (typeof callback == "function") {
+ callback(err, res);
+ callback = null;
+ }
+ }
+ if (fns.length == 0) { return cb(null, []); }
+ var remaining = fns.length, results = [];
+ function makeDone(num) {
+ return function done(err, result) {
+ if (err) { return cb(err); }
+ results[num] = result;
+ if (--remaining == 0) { cb(null, results); }
+ };
+ }
+ for (var i = 0, l = fns.length; i < l; ++i) {
+ fns[i](makeDone(i));
+ }
+ },
+
+ series: function series(fns, callback) {
+ function cb(err, res) {
+ if (typeof callback == "function") {
+ callback(err, res);
+ }
+ }
+ var remaining = fns.slice();
+ var results = [];
+ function callNext() {
+ if (remaining.length == 0) return cb(null, results);
+ var promise = remaining.shift()(next);
+ if (promise && typeof promise.then == "function") {
+ promise.then(buster.partial(next, null), next);
+ }
+ }
+ function next(err, result) {
+ if (err) return cb(err);
+ results.push(result);
+ callNext();
+ }
+ callNext();
+ },
+
+ countdown: function countdown(num, done) {
+ return function () {
+ if (--num == 0) done();
+ };
+ }
+ };
+
+ if (typeof process === "object" &&
+ typeof require === "function" && typeof module === "object") {
+ var crypto = require("crypto");
+ var path = require("path");
+
+ buster.tmpFile = function (fileName) {
+ var hashed = crypto.createHash("sha1");
+ hashed.update(fileName);
+ var tmpfileName = hashed.digest("hex");
+
+ if (process.platform == "win32") {
+ return path.join(process.env["TEMP"], tmpfileName);
+ } else {
+ return path.join("/tmp", tmpfileName);
+ }
+ };
+ }
+
+ if (Array.prototype.some) {
+ buster.some = function (arr, fn, thisp) {
+ return arr.some(fn, thisp);
+ };
+ } else {
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
+ buster.some = function (arr, fun, thisp) {
+ if (arr == null) { throw new TypeError(); }
+ arr = Object(arr);
+ var len = arr.length >>> 0;
+ if (typeof fun !== "function") { throw new TypeError(); }
+
+ for (var i = 0; i < len; i++) {
+ if (arr.hasOwnProperty(i) && fun.call(thisp, arr[i], i, arr)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+ }
+
+ if (Array.prototype.filter) {
+ buster.filter = function (arr, fn, thisp) {
+ return arr.filter(fn, thisp);
+ };
+ } else {
+ // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter
+ buster.filter = function (fn, thisp) {
+ if (this == null) { throw new TypeError(); }
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (typeof fn != "function") { throw new TypeError(); }
+
+ var res = [];
+ for (var i = 0; i < len; i++) {
+ if (i in t) {
+ var val = t[i]; // in case fun mutates this
+ if (fn.call(thisp, val, i, t)) { res.push(val); }
+ }
+ }
+
+ return res;
+ };
+ }
+
+ if (isNode) {
+ module.exports = buster;
+ buster.eventEmitter = require("./buster-event-emitter");
+ Object.defineProperty(buster, "defineVersionGetter", {
+ get: function () {
+ return require("./define-version-getter");
+ }
+ });
+ }
+
+ return buster.extend(B || {}, buster);
+}(setTimeout, buster));
+if (typeof buster === "undefined") {
+ var buster = {};
+}
+
+if (typeof module === "object" && typeof require === "function") {
+ buster = require("buster-core");
+}
+
+buster.format = buster.format || {};
+buster.format.excludeConstructors = ["Object", /^.$/];
+buster.format.quoteStrings = true;
+
+buster.format.ascii = (function () {
+
+ var hasOwn = Object.prototype.hasOwnProperty;
+
+ var specialObjects = [];
+ if (typeof global != "undefined") {
+ specialObjects.push({ obj: global, value: "[object global]" });
+ }
+ if (typeof document != "undefined") {
+ specialObjects.push({ obj: document, value: "[object HTMLDocument]" });
+ }
+ if (typeof window != "undefined") {
+ specialObjects.push({ obj: window, value: "[object Window]" });
+ }
+
+ function keys(object) {
+ var k = Object.keys && Object.keys(object) || [];
+
+ if (k.length == 0) {
+ for (var prop in object) {
+ if (hasOwn.call(object, prop)) {
+ k.push(prop);
+ }
+ }
+ }
+
+ return k.sort();
+ }
+
+ function isCircular(object, objects) {
+ if (typeof object != "object") {
+ return false;
+ }
+
+ for (var i = 0, l = objects.length; i < l; ++i) {
+ if (objects[i] === object) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ function ascii(object, processed, indent) {
+ if (typeof object == "string") {
+ var quote = typeof this.quoteStrings != "boolean" || this.quoteStrings;
+ return processed || quote ? '"' + object + '"' : object;
+ }
+
+ if (typeof object == "function" && !(object instanceof RegExp)) {
+ return ascii.func(object);
+ }
+
+ processed = processed || [];
+
+ if (isCircular(object, processed)) {
+ return "[Circular]";
+ }
+
+ if (Object.prototype.toString.call(object) == "[object Array]") {
+ return ascii.array.call(this, object, processed);
+ }
+
+ if (!object) {
+ return "" + object;
+ }
+
+ if (buster.isElement(object)) {
+ return ascii.element(object);
+ }
+
+ if (typeof object.toString == "function" &&
+ object.toString !== Object.prototype.toString) {
+ return object.toString();
+ }
+
+ for (var i = 0, l = specialObjects.length; i < l; i++) {
+ if (object === specialObjects[i].obj) {
+ return specialObjects[i].value;
+ }
+ }
+
+ return ascii.object.call(this, object, processed, indent);
+ }
+
+ ascii.func = function (func) {
+ return "function " + buster.functionName(func) + "() {}";
+ };
+
+ ascii.array = function (array, processed) {
+ processed = processed || [];
+ processed.push(array);
+ var pieces = [];
+
+ for (var i = 0, l = array.length; i < l; ++i) {
+ pieces.push(ascii.call(this, array[i], processed));
+ }
+
+ return "[" + pieces.join(", ") + "]";
+ };
+
+ ascii.object = function (object, processed, indent) {
+ processed = processed || [];
+ processed.push(object);
+ indent = indent || 0;
+ var pieces = [], properties = keys(object), prop, str, obj;
+ var is = "";
+ var length = 3;
+
+ for (var i = 0, l = indent; i < l; ++i) {
+ is += " ";
+ }
+
+ for (i = 0, l = properties.length; i < l; ++i) {
+ prop = properties[i];
+ obj = object[prop];
+
+ if (isCircular(obj, processed)) {
+ str = "[Circular]";
+ } else {
+ str = ascii.call(this, obj, processed, indent + 2);
+ }
+
+ str = (/\s/.test(prop) ? '"' + prop + '"' : prop) + ": " + str;
+ length += str.length;
+ pieces.push(str);
+ }
+
+ var cons = ascii.constructorName.call(this, object);
+ var prefix = cons ? "[" + cons + "] " : ""
+
+ return (length + indent) > 80 ?
+ prefix + "{\n " + is + pieces.join(",\n " + is) + "\n" + is + "}" :
+ prefix + "{ " + pieces.join(", ") + " }";
+ };
+
+ ascii.element = function (element) {
+ var tagName = element.tagName.toLowerCase();
+ var attrs = element.attributes, attribute, pairs = [], attrName;
+
+ for (var i = 0, l = attrs.length; i < l; ++i) {
+ attribute = attrs.item(i);
+ attrName = attribute.nodeName.toLowerCase().replace("html:", "");
+
+ if (attrName == "contenteditable" && attribute.nodeValue == "inherit") {
+ continue;
+ }
+
+ if (!!attribute.nodeValue) {
+ pairs.push(attrName + "=\"" + attribute.nodeValue + "\"");
+ }
+ }
+
+ var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
+ var content = element.innerHTML;
+
+ if (content.length > 20) {
+ content = content.substr(0, 20) + "[...]";
+ }
+
+ var res = formatted + pairs.join(" ") + ">" + content + "" + tagName + ">";
+
+ return res.replace(/ contentEditable="inherit"/, "");
+ };
+
+ ascii.constructorName = function (object) {
+ var name = buster.functionName(object && object.constructor);
+ var excludes = this.excludeConstructors || buster.format.excludeConstructors || [];
+
+ for (var i = 0, l = excludes.length; i < l; ++i) {
+ if (typeof excludes[i] == "string" && excludes[i] == name) {
+ return "";
+ } else if (excludes[i].test && excludes[i].test(name)) {
+ return "";
+ }
+ }
+
+ return name;
+ };
+
+ return ascii;
+}());
+
+if (typeof module != "undefined") {
+ module.exports = buster.format;
+}
+/*jslint eqeqeq: false, onevar: false, forin: true, nomen: false, regexp: false, plusplus: false*/
+/*global module, require, __dirname, document*/
+/**
+ * Sinon core utilities. For internal use only.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+var sinon = (function (buster) {
+ var div = typeof document != "undefined" && document.createElement("div");
+ var hasOwn = Object.prototype.hasOwnProperty;
+
+ function isDOMNode(obj) {
+ var success = false;
+
+ try {
+ obj.appendChild(div);
+ success = div.parentNode == obj;
+ } catch (e) {
+ return false;
+ } finally {
+ try {
+ obj.removeChild(div);
+ } catch (e) {
+ // Remove failed, not much we can do about that
+ }
+ }
+
+ return success;
+ }
+
+ function isElement(obj) {
+ return div && obj && obj.nodeType === 1 && isDOMNode(obj);
+ }
+
+ function isFunction(obj) {
+ return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
+ }
+
+ function mirrorProperties(target, source) {
+ for (var prop in source) {
+ if (!hasOwn.call(target, prop)) {
+ target[prop] = source[prop];
+ }
+ }
+ }
+
+ function isRestorable (obj) {
+ return typeof obj === "function" && typeof obj.restore === "function" && obj.restore.sinon;
+ }
+
+ var sinon = {
+ wrapMethod: function wrapMethod(object, property, method) {
+ if (!object) {
+ throw new TypeError("Should wrap property of object");
+ }
+
+ if (typeof method != "function") {
+ throw new TypeError("Method wrapper should be function");
+ }
+
+ var wrappedMethod = object[property];
+
+ if (!isFunction(wrappedMethod)) {
+ throw new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
+ property + " as function");
+ }
+
+ if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
+ throw new TypeError("Attempted to wrap " + property + " which is already wrapped");
+ }
+
+ if (wrappedMethod.calledBefore) {
+ var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
+ throw new TypeError("Attempted to wrap " + property + " which is already " + verb);
+ }
+
+ // IE 8 does not support hasOwnProperty on the window object.
+ var owned = hasOwn.call(object, property);
+ object[property] = method;
+ method.displayName = property;
+
+ method.restore = function () {
+ // For prototype properties try to reset by delete first.
+ // If this fails (ex: localStorage on mobile safari) then force a reset
+ // via direct assignment.
+ if (!owned) {
+ delete object[property];
+ }
+ if (object[property] === method) {
+ object[property] = wrappedMethod;
+ }
+ };
+
+ method.restore.sinon = true;
+ mirrorProperties(method, wrappedMethod);
+
+ return method;
+ },
+
+ extend: function extend(target) {
+ for (var i = 1, l = arguments.length; i < l; i += 1) {
+ for (var prop in arguments[i]) {
+ if (arguments[i].hasOwnProperty(prop)) {
+ target[prop] = arguments[i][prop];
+ }
+
+ // DONT ENUM bug, only care about toString
+ if (arguments[i].hasOwnProperty("toString") &&
+ arguments[i].toString != target.toString) {
+ target.toString = arguments[i].toString;
+ }
+ }
+ }
+
+ return target;
+ },
+
+ create: function create(proto) {
+ var F = function () {};
+ F.prototype = proto;
+ return new F();
+ },
+
+ deepEqual: function deepEqual(a, b) {
+ if (sinon.match && sinon.match.isMatcher(a)) {
+ return a.test(b);
+ }
+ if (typeof a != "object" || typeof b != "object") {
+ return a === b;
+ }
+
+ if (isElement(a) || isElement(b)) {
+ return a === b;
+ }
+
+ if (a === b) {
+ return true;
+ }
+
+ if ((a === null && b !== null) || (a !== null && b === null)) {
+ return false;
+ }
+
+ var aString = Object.prototype.toString.call(a);
+ if (aString != Object.prototype.toString.call(b)) {
+ return false;
+ }
+
+ if (aString == "[object Array]") {
+ if (a.length !== b.length) {
+ return false;
+ }
+
+ for (var i = 0, l = a.length; i < l; i += 1) {
+ if (!deepEqual(a[i], b[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ if (aString == "[object Date]") {
+ return a.valueOf() === b.valueOf();
+ }
+
+ var prop, aLength = 0, bLength = 0;
+
+ for (prop in a) {
+ aLength += 1;
+
+ if (!deepEqual(a[prop], b[prop])) {
+ return false;
+ }
+ }
+
+ for (prop in b) {
+ bLength += 1;
+ }
+
+ return aLength == bLength;
+ },
+
+ functionName: function functionName(func) {
+ var name = func.displayName || func.name;
+
+ // Use function decomposition as a last resort to get function
+ // name. Does not rely on function decomposition to work - if it
+ // doesn't debugging will be slightly less informative
+ // (i.e. toString will say 'spy' rather than 'myFunc').
+ if (!name) {
+ var matches = func.toString().match(/function ([^\s\(]+)/);
+ name = matches && matches[1];
+ }
+
+ return name;
+ },
+
+ functionToString: function toString() {
+ if (this.getCall && this.callCount) {
+ var thisValue, prop, i = this.callCount;
+
+ while (i--) {
+ thisValue = this.getCall(i).thisValue;
+
+ for (prop in thisValue) {
+ if (thisValue[prop] === this) {
+ return prop;
+ }
+ }
+ }
+ }
+
+ return this.displayName || "sinon fake";
+ },
+
+ getConfig: function (custom) {
+ var config = {};
+ custom = custom || {};
+ var defaults = sinon.defaultConfig;
+
+ for (var prop in defaults) {
+ if (defaults.hasOwnProperty(prop)) {
+ config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];
+ }
+ }
+
+ return config;
+ },
+
+ format: function (val) {
+ return "" + val;
+ },
+
+ defaultConfig: {
+ injectIntoThis: true,
+ injectInto: null,
+ properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+ useFakeTimers: true,
+ useFakeServer: true
+ },
+
+ timesInWords: function timesInWords(count) {
+ return count == 1 && "once" ||
+ count == 2 && "twice" ||
+ count == 3 && "thrice" ||
+ (count || 0) + " times";
+ },
+
+ calledInOrder: function (spies) {
+ for (var i = 1, l = spies.length; i < l; i++) {
+ if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ orderByFirstCall: function (spies) {
+ return spies.sort(function (a, b) {
+ // uuid, won't ever be equal
+ var aCall = a.getCall(0);
+ var bCall = b.getCall(0);
+ var aId = aCall && aCall.callId || -1;
+ var bId = bCall && bCall.callId || -1;
+
+ return aId < bId ? -1 : 1;
+ });
+ },
+
+ log: function () {},
+
+ logError: function (label, err) {
+ var msg = label + " threw exception: "
+ sinon.log(msg + "[" + err.name + "] " + err.message);
+ if (err.stack) { sinon.log(err.stack); }
+
+ setTimeout(function () {
+ err.message = msg + err.message;
+ throw err;
+ }, 0);
+ },
+
+ typeOf: function (value) {
+ if (value === null) {
+ return "null";
+ }
+ else if (value === undefined) {
+ return "undefined";
+ }
+ var string = Object.prototype.toString.call(value);
+ return string.substring(8, string.length - 1).toLowerCase();
+ },
+
+ createStubInstance: function (constructor) {
+ if (typeof constructor !== "function") {
+ throw new TypeError("The constructor should be a function.");
+ }
+ return sinon.stub(sinon.create(constructor.prototype));
+ },
+
+ restore: function (object) {
+ if (object !== null && typeof object === "object") {
+ for (var prop in object) {
+ if (isRestorable(object[prop])) {
+ object[prop].restore();
+ }
+ }
+ }
+ else if (isRestorable(object)) {
+ object.restore();
+ }
+ }
+ };
+
+ var isNode = typeof module == "object" && typeof require == "function";
+
+ if (isNode) {
+ try {
+ buster = { format: require("buster-format") };
+ } catch (e) {}
+ module.exports = sinon;
+ module.exports.spy = require("./sinon/spy");
+ module.exports.stub = require("./sinon/stub");
+ module.exports.mock = require("./sinon/mock");
+ module.exports.collection = require("./sinon/collection");
+ module.exports.assert = require("./sinon/assert");
+ module.exports.sandbox = require("./sinon/sandbox");
+ module.exports.test = require("./sinon/test");
+ module.exports.testCase = require("./sinon/test_case");
+ module.exports.assert = require("./sinon/assert");
+ module.exports.match = require("./sinon/match");
+ }
+
+ if (buster) {
+ var formatter = sinon.create(buster.format);
+ formatter.quoteStrings = false;
+ sinon.format = function () {
+ return formatter.ascii.apply(formatter, arguments);
+ };
+ } else if (isNode) {
+ try {
+ var util = require("util");
+ sinon.format = function (value) {
+ return typeof value == "object" && value.toString === Object.prototype.toString ? util.inspect(value) : value;
+ };
+ } catch (e) {
+ /* Node, but no util module - would be very old, but better safe than
+ sorry */
+ }
+ }
+
+ return sinon;
+}(typeof buster == "object" && buster));
+
+/* @depend ../sinon.js */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Match functions
+ *
+ * @author Maximilian Antoni (mail@maxantoni.de)
+ * @license BSD
+ *
+ * Copyright (c) 2012 Maximilian Antoni
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function assertType(value, type, name) {
+ var actual = sinon.typeOf(value);
+ if (actual !== type) {
+ throw new TypeError("Expected type of " + name + " to be " +
+ type + ", but was " + actual);
+ }
+ }
+
+ var matcher = {
+ toString: function () {
+ return this.message;
+ }
+ };
+
+ function isMatcher(object) {
+ return matcher.isPrototypeOf(object);
+ }
+
+ function matchObject(expectation, actual) {
+ if (actual === null || actual === undefined) {
+ return false;
+ }
+ for (var key in expectation) {
+ if (expectation.hasOwnProperty(key)) {
+ var exp = expectation[key];
+ var act = actual[key];
+ if (match.isMatcher(exp)) {
+ if (!exp.test(act)) {
+ return false;
+ }
+ } else if (sinon.typeOf(exp) === "object") {
+ if (!matchObject(exp, act)) {
+ return false;
+ }
+ } else if (!sinon.deepEqual(exp, act)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ matcher.or = function (m2) {
+ if (!isMatcher(m2)) {
+ throw new TypeError("Matcher expected");
+ }
+ var m1 = this;
+ var or = sinon.create(matcher);
+ or.test = function (actual) {
+ return m1.test(actual) || m2.test(actual);
+ };
+ or.message = m1.message + ".or(" + m2.message + ")";
+ return or;
+ };
+
+ matcher.and = function (m2) {
+ if (!isMatcher(m2)) {
+ throw new TypeError("Matcher expected");
+ }
+ var m1 = this;
+ var and = sinon.create(matcher);
+ and.test = function (actual) {
+ return m1.test(actual) && m2.test(actual);
+ };
+ and.message = m1.message + ".and(" + m2.message + ")";
+ return and;
+ };
+
+ var match = function (expectation, message) {
+ var m = sinon.create(matcher);
+ var type = sinon.typeOf(expectation);
+ switch (type) {
+ case "object":
+ if (typeof expectation.test === "function") {
+ m.test = function (actual) {
+ return expectation.test(actual) === true;
+ };
+ m.message = "match(" + sinon.functionName(expectation.test) + ")";
+ return m;
+ }
+ var str = [];
+ for (var key in expectation) {
+ if (expectation.hasOwnProperty(key)) {
+ str.push(key + ": " + expectation[key]);
+ }
+ }
+ m.test = function (actual) {
+ return matchObject(expectation, actual);
+ };
+ m.message = "match(" + str.join(", ") + ")";
+ break;
+ case "number":
+ m.test = function (actual) {
+ return expectation == actual;
+ };
+ break;
+ case "string":
+ m.test = function (actual) {
+ if (typeof actual !== "string") {
+ return false;
+ }
+ return actual.indexOf(expectation) !== -1;
+ };
+ m.message = "match(\"" + expectation + "\")";
+ break;
+ case "regexp":
+ m.test = function (actual) {
+ if (typeof actual !== "string") {
+ return false;
+ }
+ return expectation.test(actual);
+ };
+ break;
+ case "function":
+ m.test = expectation;
+ if (message) {
+ m.message = message;
+ } else {
+ m.message = "match(" + sinon.functionName(expectation) + ")";
+ }
+ break;
+ default:
+ m.test = function (actual) {
+ return sinon.deepEqual(expectation, actual);
+ };
+ }
+ if (!m.message) {
+ m.message = "match(" + expectation + ")";
+ }
+ return m;
+ };
+
+ match.isMatcher = isMatcher;
+
+ match.any = match(function () {
+ return true;
+ }, "any");
+
+ match.defined = match(function (actual) {
+ return actual !== null && actual !== undefined;
+ }, "defined");
+
+ match.truthy = match(function (actual) {
+ return !!actual;
+ }, "truthy");
+
+ match.falsy = match(function (actual) {
+ return !actual;
+ }, "falsy");
+
+ match.same = function (expectation) {
+ return match(function (actual) {
+ return expectation === actual;
+ }, "same(" + expectation + ")");
+ };
+
+ match.typeOf = function (type) {
+ assertType(type, "string", "type");
+ return match(function (actual) {
+ return sinon.typeOf(actual) === type;
+ }, "typeOf(\"" + type + "\")");
+ };
+
+ match.instanceOf = function (type) {
+ assertType(type, "function", "type");
+ return match(function (actual) {
+ return actual instanceof type;
+ }, "instanceOf(" + sinon.functionName(type) + ")");
+ };
+
+ function createPropertyMatcher(propertyTest, messagePrefix) {
+ return function (property, value) {
+ assertType(property, "string", "property");
+ var onlyProperty = arguments.length === 1;
+ var message = messagePrefix + "(\"" + property + "\"";
+ if (!onlyProperty) {
+ message += ", " + value;
+ }
+ message += ")";
+ return match(function (actual) {
+ if (actual === undefined || actual === null ||
+ !propertyTest(actual, property)) {
+ return false;
+ }
+ return onlyProperty || sinon.deepEqual(value, actual[property]);
+ }, message);
+ };
+ }
+
+ match.has = createPropertyMatcher(function (actual, property) {
+ if (typeof actual === "object") {
+ return property in actual;
+ }
+ return actual[property] !== undefined;
+ }, "has");
+
+ match.hasOwn = createPropertyMatcher(function (actual, property) {
+ return actual.hasOwnProperty(property);
+ }, "hasOwn");
+
+ match.bool = match.typeOf("boolean");
+ match.number = match.typeOf("number");
+ match.string = match.typeOf("string");
+ match.object = match.typeOf("object");
+ match.func = match.typeOf("function");
+ match.array = match.typeOf("array");
+ match.regexp = match.typeOf("regexp");
+ match.date = match.typeOf("date");
+
+ if (commonJSModule) {
+ module.exports = match;
+ } else {
+ sinon.match = match;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend match.js
+ */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Spy calls
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Maximilian Antoni (mail@maxantoni.de)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ * Copyright (c) 2013 Maximilian Antoni
+ */
+
+var commonJSModule = typeof module == "object" && typeof require == "function";
+
+if (!this.sinon && commonJSModule) {
+ var sinon = require("../sinon");
+}
+
+(function (sinon) {
+ function throwYieldError(proxy, text, args) {
+ var msg = sinon.functionName(proxy) + text;
+ if (args.length) {
+ msg += " Received [" + slice.call(args).join(", ") + "]";
+ }
+ throw new Error(msg);
+ }
+
+ var slice = Array.prototype.slice;
+
+ var callProto = {
+ calledOn: function calledOn(thisValue) {
+ if (sinon.match && sinon.match.isMatcher(thisValue)) {
+ return thisValue.test(this.thisValue);
+ }
+ return this.thisValue === thisValue;
+ },
+
+ calledWith: function calledWith() {
+ for (var i = 0, l = arguments.length; i < l; i += 1) {
+ if (!sinon.deepEqual(arguments[i], this.args[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ calledWithMatch: function calledWithMatch() {
+ for (var i = 0, l = arguments.length; i < l; i += 1) {
+ var actual = this.args[i];
+ var expectation = arguments[i];
+ if (!sinon.match || !sinon.match(expectation).test(actual)) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ calledWithExactly: function calledWithExactly() {
+ return arguments.length == this.args.length &&
+ this.calledWith.apply(this, arguments);
+ },
+
+ notCalledWith: function notCalledWith() {
+ return !this.calledWith.apply(this, arguments);
+ },
+
+ notCalledWithMatch: function notCalledWithMatch() {
+ return !this.calledWithMatch.apply(this, arguments);
+ },
+
+ returned: function returned(value) {
+ return sinon.deepEqual(value, this.returnValue);
+ },
+
+ threw: function threw(error) {
+ if (typeof error === "undefined" || !this.exception) {
+ return !!this.exception;
+ }
+
+ return this.exception === error || this.exception.name === error;
+ },
+
+ calledWithNew: function calledWithNew(thisValue) {
+ return this.thisValue instanceof this.proxy;
+ },
+
+ calledBefore: function (other) {
+ return this.callId < other.callId;
+ },
+
+ calledAfter: function (other) {
+ return this.callId > other.callId;
+ },
+
+ callArg: function (pos) {
+ this.args[pos]();
+ },
+
+ callArgOn: function (pos, thisValue) {
+ this.args[pos].apply(thisValue);
+ },
+
+ callArgWith: function (pos) {
+ this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));
+ },
+
+ callArgOnWith: function (pos, thisValue) {
+ var args = slice.call(arguments, 2);
+ this.args[pos].apply(thisValue, args);
+ },
+
+ "yield": function () {
+ this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));
+ },
+
+ yieldOn: function (thisValue) {
+ var args = this.args;
+ for (var i = 0, l = args.length; i < l; ++i) {
+ if (typeof args[i] === "function") {
+ args[i].apply(thisValue, slice.call(arguments, 1));
+ return;
+ }
+ }
+ throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
+ },
+
+ yieldTo: function (prop) {
+ this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));
+ },
+
+ yieldToOn: function (prop, thisValue) {
+ var args = this.args;
+ for (var i = 0, l = args.length; i < l; ++i) {
+ if (args[i] && typeof args[i][prop] === "function") {
+ args[i][prop].apply(thisValue, slice.call(arguments, 2));
+ return;
+ }
+ }
+ throwYieldError(this.proxy, " cannot yield to '" + prop +
+ "' since no callback was passed.", args);
+ },
+
+ toString: function () {
+ var callStr = this.proxy.toString() + "(";
+ var args = [];
+
+ for (var i = 0, l = this.args.length; i < l; ++i) {
+ args.push(sinon.format(this.args[i]));
+ }
+
+ callStr = callStr + args.join(", ") + ")";
+
+ if (typeof this.returnValue != "undefined") {
+ callStr += " => " + sinon.format(this.returnValue);
+ }
+
+ if (this.exception) {
+ callStr += " !" + this.exception.name;
+
+ if (this.exception.message) {
+ callStr += "(" + this.exception.message + ")";
+ }
+ }
+
+ return callStr;
+ }
+ };
+
+ callProto.invokeCallback = callProto.yield;
+
+ function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
+ if (typeof id !== "number") {
+ throw new TypeError("Call id is not a number");
+ }
+ var proxyCall = sinon.create(callProto);
+ proxyCall.proxy = spy;
+ proxyCall.thisValue = thisValue;
+ proxyCall.args = args;
+ proxyCall.returnValue = returnValue;
+ proxyCall.exception = exception;
+ proxyCall.callId = id;
+
+ return proxyCall;
+ };
+ createSpyCall.toString = callProto.toString; // used by mocks
+
+ sinon.spyCall = createSpyCall;
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Spy functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+ var push = Array.prototype.push;
+ var slice = Array.prototype.slice;
+ var callId = 0;
+
+ function spy(object, property) {
+ if (!property && typeof object == "function") {
+ return spy.create(object);
+ }
+
+ if (!object && !property) {
+ return spy.create(function () { });
+ }
+
+ var method = object[property];
+ return sinon.wrapMethod(object, property, spy.create(method));
+ }
+
+ function matchingFake(fakes, args, strict) {
+ if (!fakes) {
+ return;
+ }
+
+ var alen = args.length;
+
+ for (var i = 0, l = fakes.length; i < l; i++) {
+ if (fakes[i].matches(args, strict)) {
+ return fakes[i];
+ }
+ }
+ }
+
+ function incrementCallCount() {
+ this.called = true;
+ this.callCount += 1;
+ this.notCalled = false;
+ this.calledOnce = this.callCount == 1;
+ this.calledTwice = this.callCount == 2;
+ this.calledThrice = this.callCount == 3;
+ }
+
+ function createCallProperties() {
+ this.firstCall = this.getCall(0);
+ this.secondCall = this.getCall(1);
+ this.thirdCall = this.getCall(2);
+ this.lastCall = this.getCall(this.callCount - 1);
+ }
+
+ var vars = "a,b,c,d,e,f,g,h,i,j,k,l";
+ function createProxy(func) {
+ // Retain the function length:
+ var p;
+ if (func.length) {
+ eval("p = (function proxy(" + vars.substring(0, func.length * 2 - 1) +
+ ") { return p.invoke(func, this, slice.call(arguments)); });");
+ }
+ else {
+ p = function proxy() {
+ return p.invoke(func, this, slice.call(arguments));
+ };
+ }
+ return p;
+ }
+
+ var uuid = 0;
+
+ // Public API
+ var spyApi = {
+ reset: function () {
+ this.called = false;
+ this.notCalled = true;
+ this.calledOnce = false;
+ this.calledTwice = false;
+ this.calledThrice = false;
+ this.callCount = 0;
+ this.firstCall = null;
+ this.secondCall = null;
+ this.thirdCall = null;
+ this.lastCall = null;
+ this.args = [];
+ this.returnValues = [];
+ this.thisValues = [];
+ this.exceptions = [];
+ this.callIds = [];
+ if (this.fakes) {
+ for (var i = 0; i < this.fakes.length; i++) {
+ this.fakes[i].reset();
+ }
+ }
+ },
+
+ create: function create(func) {
+ var name;
+
+ if (typeof func != "function") {
+ func = function () { };
+ } else {
+ name = sinon.functionName(func);
+ }
+
+ var proxy = createProxy(func);
+
+ sinon.extend(proxy, spy);
+ delete proxy.create;
+ sinon.extend(proxy, func);
+
+ proxy.reset();
+ proxy.prototype = func.prototype;
+ proxy.displayName = name || "spy";
+ proxy.toString = sinon.functionToString;
+ proxy._create = sinon.spy.create;
+ proxy.id = "spy#" + uuid++;
+
+ return proxy;
+ },
+
+ invoke: function invoke(func, thisValue, args) {
+ var matching = matchingFake(this.fakes, args);
+ var exception, returnValue;
+
+ incrementCallCount.call(this);
+ push.call(this.thisValues, thisValue);
+ push.call(this.args, args);
+ push.call(this.callIds, callId++);
+
+ try {
+ if (matching) {
+ returnValue = matching.invoke(func, thisValue, args);
+ } else {
+ returnValue = (this.func || func).apply(thisValue, args);
+ }
+ } catch (e) {
+ push.call(this.returnValues, undefined);
+ exception = e;
+ throw e;
+ } finally {
+ push.call(this.exceptions, exception);
+ }
+
+ push.call(this.returnValues, returnValue);
+
+ createCallProperties.call(this);
+
+ return returnValue;
+ },
+
+ getCall: function getCall(i) {
+ if (i < 0 || i >= this.callCount) {
+ return null;
+ }
+
+ return sinon.spyCall(this, this.thisValues[i], this.args[i],
+ this.returnValues[i], this.exceptions[i],
+ this.callIds[i]);
+ },
+
+ calledBefore: function calledBefore(spyFn) {
+ if (!this.called) {
+ return false;
+ }
+
+ if (!spyFn.called) {
+ return true;
+ }
+
+ return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
+ },
+
+ calledAfter: function calledAfter(spyFn) {
+ if (!this.called || !spyFn.called) {
+ return false;
+ }
+
+ return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];
+ },
+
+ withArgs: function () {
+ var args = slice.call(arguments);
+
+ if (this.fakes) {
+ var match = matchingFake(this.fakes, args, true);
+
+ if (match) {
+ return match;
+ }
+ } else {
+ this.fakes = [];
+ }
+
+ var original = this;
+ var fake = this._create();
+ fake.matchingAguments = args;
+ push.call(this.fakes, fake);
+
+ fake.withArgs = function () {
+ return original.withArgs.apply(original, arguments);
+ };
+
+ for (var i = 0; i < this.args.length; i++) {
+ if (fake.matches(this.args[i])) {
+ incrementCallCount.call(fake);
+ push.call(fake.thisValues, this.thisValues[i]);
+ push.call(fake.args, this.args[i]);
+ push.call(fake.returnValues, this.returnValues[i]);
+ push.call(fake.exceptions, this.exceptions[i]);
+ push.call(fake.callIds, this.callIds[i]);
+ }
+ }
+ createCallProperties.call(fake);
+
+ return fake;
+ },
+
+ matches: function (args, strict) {
+ var margs = this.matchingAguments;
+
+ if (margs.length <= args.length &&
+ sinon.deepEqual(margs, args.slice(0, margs.length))) {
+ return !strict || margs.length == args.length;
+ }
+ },
+
+ printf: function (format) {
+ var spy = this;
+ var args = slice.call(arguments, 1);
+ var formatter;
+
+ return (format || "").replace(/%(.)/g, function (match, specifyer) {
+ formatter = spyApi.formatters[specifyer];
+
+ if (typeof formatter == "function") {
+ return formatter.call(null, spy, args);
+ } else if (!isNaN(parseInt(specifyer), 10)) {
+ return sinon.format(args[specifyer - 1]);
+ }
+
+ return "%" + specifyer;
+ });
+ }
+ };
+
+ function delegateToCalls(method, matchAny, actual, notCalled) {
+ spyApi[method] = function () {
+ if (!this.called) {
+ if (notCalled) {
+ return notCalled.apply(this, arguments);
+ }
+ return false;
+ }
+
+ var currentCall;
+ var matches = 0;
+
+ for (var i = 0, l = this.callCount; i < l; i += 1) {
+ currentCall = this.getCall(i);
+
+ if (currentCall[actual || method].apply(currentCall, arguments)) {
+ matches += 1;
+
+ if (matchAny) {
+ return true;
+ }
+ }
+ }
+
+ return matches === this.callCount;
+ };
+ }
+
+ delegateToCalls("calledOn", true);
+ delegateToCalls("alwaysCalledOn", false, "calledOn");
+ delegateToCalls("calledWith", true);
+ delegateToCalls("calledWithMatch", true);
+ delegateToCalls("alwaysCalledWith", false, "calledWith");
+ delegateToCalls("alwaysCalledWithMatch", false, "calledWithMatch");
+ delegateToCalls("calledWithExactly", true);
+ delegateToCalls("alwaysCalledWithExactly", false, "calledWithExactly");
+ delegateToCalls("neverCalledWith", false, "notCalledWith",
+ function () { return true; });
+ delegateToCalls("neverCalledWithMatch", false, "notCalledWithMatch",
+ function () { return true; });
+ delegateToCalls("threw", true);
+ delegateToCalls("alwaysThrew", false, "threw");
+ delegateToCalls("returned", true);
+ delegateToCalls("alwaysReturned", false, "returned");
+ delegateToCalls("calledWithNew", true);
+ delegateToCalls("alwaysCalledWithNew", false, "calledWithNew");
+ delegateToCalls("callArg", false, "callArgWith", function () {
+ throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+ });
+ spyApi.callArgWith = spyApi.callArg;
+ delegateToCalls("callArgOn", false, "callArgOnWith", function () {
+ throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+ });
+ spyApi.callArgOnWith = spyApi.callArgOn;
+ delegateToCalls("yield", false, "yield", function () {
+ throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+ });
+ // "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
+ spyApi.invokeCallback = spyApi.yield;
+ delegateToCalls("yieldOn", false, "yieldOn", function () {
+ throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+ });
+ delegateToCalls("yieldTo", false, "yieldTo", function (property) {
+ throw new Error(this.toString() + " cannot yield to '" + property +
+ "' since it was not yet invoked.");
+ });
+ delegateToCalls("yieldToOn", false, "yieldToOn", function (property) {
+ throw new Error(this.toString() + " cannot yield to '" + property +
+ "' since it was not yet invoked.");
+ });
+
+ spyApi.formatters = {
+ "c": function (spy) {
+ return sinon.timesInWords(spy.callCount);
+ },
+
+ "n": function (spy) {
+ return spy.toString();
+ },
+
+ "C": function (spy) {
+ var calls = [];
+
+ for (var i = 0, l = spy.callCount; i < l; ++i) {
+ var stringifiedCall = " " + spy.getCall(i).toString();
+ if (/\n/.test(calls[i - 1])) {
+ stringifiedCall = "\n" + stringifiedCall;
+ }
+ push.call(calls, stringifiedCall);
+ }
+
+ return calls.length > 0 ? "\n" + calls.join("\n") : "";
+ },
+
+ "t": function (spy) {
+ var objects = [];
+
+ for (var i = 0, l = spy.callCount; i < l; ++i) {
+ push.call(objects, sinon.format(spy.thisValues[i]));
+ }
+
+ return objects.join(", ");
+ },
+
+ "*": function (spy, args) {
+ var formatted = [];
+
+ for (var i = 0, l = args.length; i < l; ++i) {
+ push.call(formatted, sinon.format(args[i]));
+ }
+
+ return formatted.join(", ");
+ }
+ };
+
+ sinon.extend(spy, spyApi);
+
+ spy.spyCall = sinon.spyCall;
+
+ if (commonJSModule) {
+ module.exports = spy;
+ } else {
+ sinon.spy = spy;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend spy.js
+ */
+/*jslint eqeqeq: false, onevar: false*/
+/*global module, require, sinon*/
+/**
+ * Stub functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function stub(object, property, func) {
+ if (!!func && typeof func != "function") {
+ throw new TypeError("Custom stub should be function");
+ }
+
+ var wrapper;
+
+ if (func) {
+ wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;
+ } else {
+ wrapper = stub.create();
+ }
+
+ if (!object && !property) {
+ return sinon.stub.create();
+ }
+
+ if (!property && !!object && typeof object == "object") {
+ for (var prop in object) {
+ if (typeof object[prop] === "function") {
+ stub(object, prop);
+ }
+ }
+
+ return object;
+ }
+
+ return sinon.wrapMethod(object, property, wrapper);
+ }
+
+ function getChangingValue(stub, property) {
+ var index = stub.callCount - 1;
+ var values = stub[property];
+ var prop = index in values ? values[index] : values[values.length - 1];
+ stub[property + "Last"] = prop;
+
+ return prop;
+ }
+
+ function getCallback(stub, args) {
+ var callArgAt = getChangingValue(stub, "callArgAts");
+
+ if (callArgAt < 0) {
+ var callArgProp = getChangingValue(stub, "callArgProps");
+
+ for (var i = 0, l = args.length; i < l; ++i) {
+ if (!callArgProp && typeof args[i] == "function") {
+ return args[i];
+ }
+
+ if (callArgProp && args[i] &&
+ typeof args[i][callArgProp] == "function") {
+ return args[i][callArgProp];
+ }
+ }
+
+ return null;
+ }
+
+ return args[callArgAt];
+ }
+
+ var join = Array.prototype.join;
+
+ function getCallbackError(stub, func, args) {
+ if (stub.callArgAtsLast < 0) {
+ var msg;
+
+ if (stub.callArgPropsLast) {
+ msg = sinon.functionName(stub) +
+ " expected to yield to '" + stub.callArgPropsLast +
+ "', but no object with such a property was passed."
+ } else {
+ msg = sinon.functionName(stub) +
+ " expected to yield, but no callback was passed."
+ }
+
+ if (args.length > 0) {
+ msg += " Received [" + join.call(args, ", ") + "]";
+ }
+
+ return msg;
+ }
+
+ return "argument at index " + stub.callArgAtsLast + " is not a function: " + func;
+ }
+
+ var nextTick = (function () {
+ if (typeof process === "object" && typeof process.nextTick === "function") {
+ return process.nextTick;
+ } else if (typeof setImmediate === "function") {
+ return setImmediate;
+ } else {
+ return function (callback) {
+ setTimeout(callback, 0);
+ };
+ }
+ })();
+
+ function callCallback(stub, args) {
+ if (stub.callArgAts.length > 0) {
+ var func = getCallback(stub, args);
+
+ if (typeof func != "function") {
+ throw new TypeError(getCallbackError(stub, func, args));
+ }
+
+ var callbackArguments = getChangingValue(stub, "callbackArguments");
+ var callbackContext = getChangingValue(stub, "callbackContexts");
+
+ if (stub.callbackAsync) {
+ nextTick(function() {
+ func.apply(callbackContext, callbackArguments);
+ });
+ } else {
+ func.apply(callbackContext, callbackArguments);
+ }
+ }
+ }
+
+ var uuid = 0;
+
+ sinon.extend(stub, (function () {
+ var slice = Array.prototype.slice, proto;
+
+ function throwsException(error, message) {
+ if (typeof error == "string") {
+ this.exception = new Error(message || "");
+ this.exception.name = error;
+ } else if (!error) {
+ this.exception = new Error("Error");
+ } else {
+ this.exception = error;
+ }
+
+ return this;
+ }
+
+ proto = {
+ create: function create() {
+ var functionStub = function () {
+
+ callCallback(functionStub, arguments);
+
+ if (functionStub.exception) {
+ throw functionStub.exception;
+ } else if (typeof functionStub.returnArgAt == 'number') {
+ return arguments[functionStub.returnArgAt];
+ } else if (functionStub.returnThis) {
+ return this;
+ }
+ return functionStub.returnValue;
+ };
+
+ functionStub.id = "stub#" + uuid++;
+ var orig = functionStub;
+ functionStub = sinon.spy.create(functionStub);
+ functionStub.func = orig;
+
+ functionStub.callArgAts = [];
+ functionStub.callbackArguments = [];
+ functionStub.callbackContexts = [];
+ functionStub.callArgProps = [];
+
+ sinon.extend(functionStub, stub);
+ functionStub._create = sinon.stub.create;
+ functionStub.displayName = "stub";
+ functionStub.toString = sinon.functionToString;
+
+ return functionStub;
+ },
+
+ resetBehavior: function () {
+ var i;
+
+ this.callArgAts = [];
+ this.callbackArguments = [];
+ this.callbackContexts = [];
+ this.callArgProps = [];
+
+ delete this.returnValue;
+ delete this.returnArgAt;
+ this.returnThis = false;
+
+ if (this.fakes) {
+ for (i = 0; i < this.fakes.length; i++) {
+ this.fakes[i].resetBehavior();
+ }
+ }
+ },
+
+ returns: function returns(value) {
+ this.returnValue = value;
+
+ return this;
+ },
+
+ returnsArg: function returnsArg(pos) {
+ if (typeof pos != "number") {
+ throw new TypeError("argument index is not number");
+ }
+
+ this.returnArgAt = pos;
+
+ return this;
+ },
+
+ returnsThis: function returnsThis() {
+ this.returnThis = true;
+
+ return this;
+ },
+
+ "throws": throwsException,
+ throwsException: throwsException,
+
+ callsArg: function callsArg(pos) {
+ if (typeof pos != "number") {
+ throw new TypeError("argument index is not number");
+ }
+
+ this.callArgAts.push(pos);
+ this.callbackArguments.push([]);
+ this.callbackContexts.push(undefined);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ callsArgOn: function callsArgOn(pos, context) {
+ if (typeof pos != "number") {
+ throw new TypeError("argument index is not number");
+ }
+ if (typeof context != "object") {
+ throw new TypeError("argument context is not an object");
+ }
+
+ this.callArgAts.push(pos);
+ this.callbackArguments.push([]);
+ this.callbackContexts.push(context);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ callsArgWith: function callsArgWith(pos) {
+ if (typeof pos != "number") {
+ throw new TypeError("argument index is not number");
+ }
+
+ this.callArgAts.push(pos);
+ this.callbackArguments.push(slice.call(arguments, 1));
+ this.callbackContexts.push(undefined);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ callsArgOnWith: function callsArgWith(pos, context) {
+ if (typeof pos != "number") {
+ throw new TypeError("argument index is not number");
+ }
+ if (typeof context != "object") {
+ throw new TypeError("argument context is not an object");
+ }
+
+ this.callArgAts.push(pos);
+ this.callbackArguments.push(slice.call(arguments, 2));
+ this.callbackContexts.push(context);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ yields: function () {
+ this.callArgAts.push(-1);
+ this.callbackArguments.push(slice.call(arguments, 0));
+ this.callbackContexts.push(undefined);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ yieldsOn: function (context) {
+ if (typeof context != "object") {
+ throw new TypeError("argument context is not an object");
+ }
+
+ this.callArgAts.push(-1);
+ this.callbackArguments.push(slice.call(arguments, 1));
+ this.callbackContexts.push(context);
+ this.callArgProps.push(undefined);
+
+ return this;
+ },
+
+ yieldsTo: function (prop) {
+ this.callArgAts.push(-1);
+ this.callbackArguments.push(slice.call(arguments, 1));
+ this.callbackContexts.push(undefined);
+ this.callArgProps.push(prop);
+
+ return this;
+ },
+
+ yieldsToOn: function (prop, context) {
+ if (typeof context != "object") {
+ throw new TypeError("argument context is not an object");
+ }
+
+ this.callArgAts.push(-1);
+ this.callbackArguments.push(slice.call(arguments, 2));
+ this.callbackContexts.push(context);
+ this.callArgProps.push(prop);
+
+ return this;
+ }
+ };
+
+ // create asynchronous versions of callsArg* and yields* methods
+ for (var method in proto) {
+ // need to avoid creating anotherasync versions of the newly added async methods
+ if (proto.hasOwnProperty(method) &&
+ method.match(/^(callsArg|yields|thenYields$)/) &&
+ !method.match(/Async/)) {
+ proto[method + 'Async'] = (function (syncFnName) {
+ return function () {
+ this.callbackAsync = true;
+ return this[syncFnName].apply(this, arguments);
+ };
+ })(method);
+ }
+ }
+
+ return proto;
+
+ }()));
+
+ if (commonJSModule) {
+ module.exports = stub;
+ } else {
+ sinon.stub = stub;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ */
+/*jslint eqeqeq: false, onevar: false, nomen: false*/
+/*global module, require, sinon*/
+/**
+ * Mock functions.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+ var push = [].push;
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function mock(object) {
+ if (!object) {
+ return sinon.expectation.create("Anonymous mock");
+ }
+
+ return mock.create(object);
+ }
+
+ sinon.mock = mock;
+
+ sinon.extend(mock, (function () {
+ function each(collection, callback) {
+ if (!collection) {
+ return;
+ }
+
+ for (var i = 0, l = collection.length; i < l; i += 1) {
+ callback(collection[i]);
+ }
+ }
+
+ return {
+ create: function create(object) {
+ if (!object) {
+ throw new TypeError("object is null");
+ }
+
+ var mockObject = sinon.extend({}, mock);
+ mockObject.object = object;
+ delete mockObject.create;
+
+ return mockObject;
+ },
+
+ expects: function expects(method) {
+ if (!method) {
+ throw new TypeError("method is falsy");
+ }
+
+ if (!this.expectations) {
+ this.expectations = {};
+ this.proxies = [];
+ }
+
+ if (!this.expectations[method]) {
+ this.expectations[method] = [];
+ var mockObject = this;
+
+ sinon.wrapMethod(this.object, method, function () {
+ return mockObject.invokeMethod(method, this, arguments);
+ });
+
+ push.call(this.proxies, method);
+ }
+
+ var expectation = sinon.expectation.create(method);
+ push.call(this.expectations[method], expectation);
+
+ return expectation;
+ },
+
+ restore: function restore() {
+ var object = this.object;
+
+ each(this.proxies, function (proxy) {
+ if (typeof object[proxy].restore == "function") {
+ object[proxy].restore();
+ }
+ });
+ },
+
+ verify: function verify() {
+ var expectations = this.expectations || {};
+ var messages = [], met = [];
+
+ each(this.proxies, function (proxy) {
+ each(expectations[proxy], function (expectation) {
+ if (!expectation.met()) {
+ push.call(messages, expectation.toString());
+ } else {
+ push.call(met, expectation.toString());
+ }
+ });
+ });
+
+ this.restore();
+
+ if (messages.length > 0) {
+ sinon.expectation.fail(messages.concat(met).join("\n"));
+ } else {
+ sinon.expectation.pass(messages.concat(met).join("\n"));
+ }
+
+ return true;
+ },
+
+ invokeMethod: function invokeMethod(method, thisValue, args) {
+ var expectations = this.expectations && this.expectations[method];
+ var length = expectations && expectations.length || 0, i;
+
+ for (i = 0; i < length; i += 1) {
+ if (!expectations[i].met() &&
+ expectations[i].allowsCall(thisValue, args)) {
+ return expectations[i].apply(thisValue, args);
+ }
+ }
+
+ var messages = [], available, exhausted = 0;
+
+ for (i = 0; i < length; i += 1) {
+ if (expectations[i].allowsCall(thisValue, args)) {
+ available = available || expectations[i];
+ } else {
+ exhausted += 1;
+ }
+ push.call(messages, " " + expectations[i].toString());
+ }
+
+ if (exhausted === 0) {
+ return available.apply(thisValue, args);
+ }
+
+ messages.unshift("Unexpected call: " + sinon.spyCall.toString.call({
+ proxy: method,
+ args: args
+ }));
+
+ sinon.expectation.fail(messages.join("\n"));
+ }
+ };
+ }()));
+
+ var times = sinon.timesInWords;
+
+ sinon.expectation = (function () {
+ var slice = Array.prototype.slice;
+ var _invoke = sinon.spy.invoke;
+
+ function callCountInWords(callCount) {
+ if (callCount == 0) {
+ return "never called";
+ } else {
+ return "called " + times(callCount);
+ }
+ }
+
+ function expectedCallCountInWords(expectation) {
+ var min = expectation.minCalls;
+ var max = expectation.maxCalls;
+
+ if (typeof min == "number" && typeof max == "number") {
+ var str = times(min);
+
+ if (min != max) {
+ str = "at least " + str + " and at most " + times(max);
+ }
+
+ return str;
+ }
+
+ if (typeof min == "number") {
+ return "at least " + times(min);
+ }
+
+ return "at most " + times(max);
+ }
+
+ function receivedMinCalls(expectation) {
+ var hasMinLimit = typeof expectation.minCalls == "number";
+ return !hasMinLimit || expectation.callCount >= expectation.minCalls;
+ }
+
+ function receivedMaxCalls(expectation) {
+ if (typeof expectation.maxCalls != "number") {
+ return false;
+ }
+
+ return expectation.callCount == expectation.maxCalls;
+ }
+
+ return {
+ minCalls: 1,
+ maxCalls: 1,
+
+ create: function create(methodName) {
+ var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);
+ delete expectation.create;
+ expectation.method = methodName;
+
+ return expectation;
+ },
+
+ invoke: function invoke(func, thisValue, args) {
+ this.verifyCallAllowed(thisValue, args);
+
+ return _invoke.apply(this, arguments);
+ },
+
+ atLeast: function atLeast(num) {
+ if (typeof num != "number") {
+ throw new TypeError("'" + num + "' is not number");
+ }
+
+ if (!this.limitsSet) {
+ this.maxCalls = null;
+ this.limitsSet = true;
+ }
+
+ this.minCalls = num;
+
+ return this;
+ },
+
+ atMost: function atMost(num) {
+ if (typeof num != "number") {
+ throw new TypeError("'" + num + "' is not number");
+ }
+
+ if (!this.limitsSet) {
+ this.minCalls = null;
+ this.limitsSet = true;
+ }
+
+ this.maxCalls = num;
+
+ return this;
+ },
+
+ never: function never() {
+ return this.exactly(0);
+ },
+
+ once: function once() {
+ return this.exactly(1);
+ },
+
+ twice: function twice() {
+ return this.exactly(2);
+ },
+
+ thrice: function thrice() {
+ return this.exactly(3);
+ },
+
+ exactly: function exactly(num) {
+ if (typeof num != "number") {
+ throw new TypeError("'" + num + "' is not a number");
+ }
+
+ this.atLeast(num);
+ return this.atMost(num);
+ },
+
+ met: function met() {
+ return !this.failed && receivedMinCalls(this);
+ },
+
+ verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
+ if (receivedMaxCalls(this)) {
+ this.failed = true;
+ sinon.expectation.fail(this.method + " already called " + times(this.maxCalls));
+ }
+
+ if ("expectedThis" in this && this.expectedThis !== thisValue) {
+ sinon.expectation.fail(this.method + " called with " + thisValue + " as thisValue, expected " +
+ this.expectedThis);
+ }
+
+ if (!("expectedArguments" in this)) {
+ return;
+ }
+
+ if (!args) {
+ sinon.expectation.fail(this.method + " received no arguments, expected " +
+ sinon.format(this.expectedArguments));
+ }
+
+ if (args.length < this.expectedArguments.length) {
+ sinon.expectation.fail(this.method + " received too few arguments (" + sinon.format(args) +
+ "), expected " + sinon.format(this.expectedArguments));
+ }
+
+ if (this.expectsExactArgCount &&
+ args.length != this.expectedArguments.length) {
+ sinon.expectation.fail(this.method + " received too many arguments (" + sinon.format(args) +
+ "), expected " + sinon.format(this.expectedArguments));
+ }
+
+ for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+ if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+ sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
+ ", expected " + sinon.format(this.expectedArguments));
+ }
+ }
+ },
+
+ allowsCall: function allowsCall(thisValue, args) {
+ if (this.met() && receivedMaxCalls(this)) {
+ return false;
+ }
+
+ if ("expectedThis" in this && this.expectedThis !== thisValue) {
+ return false;
+ }
+
+ if (!("expectedArguments" in this)) {
+ return true;
+ }
+
+ args = args || [];
+
+ if (args.length < this.expectedArguments.length) {
+ return false;
+ }
+
+ if (this.expectsExactArgCount &&
+ args.length != this.expectedArguments.length) {
+ return false;
+ }
+
+ for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+ if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ withArgs: function withArgs() {
+ this.expectedArguments = slice.call(arguments);
+ return this;
+ },
+
+ withExactArgs: function withExactArgs() {
+ this.withArgs.apply(this, arguments);
+ this.expectsExactArgCount = true;
+ return this;
+ },
+
+ on: function on(thisValue) {
+ this.expectedThis = thisValue;
+ return this;
+ },
+
+ toString: function () {
+ var args = (this.expectedArguments || []).slice();
+
+ if (!this.expectsExactArgCount) {
+ push.call(args, "[...]");
+ }
+
+ var callStr = sinon.spyCall.toString.call({
+ proxy: this.method || "anonymous mock expectation",
+ args: args
+ });
+
+ var message = callStr.replace(", [...", "[, ...") + " " +
+ expectedCallCountInWords(this);
+
+ if (this.met()) {
+ return "Expectation met: " + message;
+ }
+
+ return "Expected " + message + " (" +
+ callCountInWords(this.callCount) + ")";
+ },
+
+ verify: function verify() {
+ if (!this.met()) {
+ sinon.expectation.fail(this.toString());
+ } else {
+ sinon.expectation.pass(this.toString());
+ }
+
+ return true;
+ },
+
+ pass: function(message) {
+ sinon.assert.pass(message);
+ },
+ fail: function (message) {
+ var exception = new Error(message);
+ exception.name = "ExpectationError";
+
+ throw exception;
+ }
+ };
+ }());
+
+ if (commonJSModule) {
+ module.exports = mock;
+ } else {
+ sinon.mock = mock;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ * @depend mock.js
+ */
+/*jslint eqeqeq: false, onevar: false, forin: true*/
+/*global module, require, sinon*/
+/**
+ * Collections of stubs, spies and mocks.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+ var push = [].push;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function getFakes(fakeCollection) {
+ if (!fakeCollection.fakes) {
+ fakeCollection.fakes = [];
+ }
+
+ return fakeCollection.fakes;
+ }
+
+ function each(fakeCollection, method) {
+ var fakes = getFakes(fakeCollection);
+
+ for (var i = 0, l = fakes.length; i < l; i += 1) {
+ if (typeof fakes[i][method] == "function") {
+ fakes[i][method]();
+ }
+ }
+ }
+
+ function compact(fakeCollection) {
+ var fakes = getFakes(fakeCollection);
+ var i = 0;
+ while (i < fakes.length) {
+ fakes.splice(i, 1);
+ }
+ }
+
+ var collection = {
+ verify: function resolve() {
+ each(this, "verify");
+ },
+
+ restore: function restore() {
+ each(this, "restore");
+ compact(this);
+ },
+
+ verifyAndRestore: function verifyAndRestore() {
+ var exception;
+
+ try {
+ this.verify();
+ } catch (e) {
+ exception = e;
+ }
+
+ this.restore();
+
+ if (exception) {
+ throw exception;
+ }
+ },
+
+ add: function add(fake) {
+ push.call(getFakes(this), fake);
+ return fake;
+ },
+
+ spy: function spy() {
+ return this.add(sinon.spy.apply(sinon, arguments));
+ },
+
+ stub: function stub(object, property, value) {
+ if (property) {
+ var original = object[property];
+
+ if (typeof original != "function") {
+ if (!hasOwnProperty.call(object, property)) {
+ throw new TypeError("Cannot stub non-existent own property " + property);
+ }
+
+ object[property] = value;
+
+ return this.add({
+ restore: function () {
+ object[property] = original;
+ }
+ });
+ }
+ }
+ if (!property && !!object && typeof object == "object") {
+ var stubbedObj = sinon.stub.apply(sinon, arguments);
+
+ for (var prop in stubbedObj) {
+ if (typeof stubbedObj[prop] === "function") {
+ this.add(stubbedObj[prop]);
+ }
+ }
+
+ return stubbedObj;
+ }
+
+ return this.add(sinon.stub.apply(sinon, arguments));
+ },
+
+ mock: function mock() {
+ return this.add(sinon.mock.apply(sinon, arguments));
+ },
+
+ inject: function inject(obj) {
+ var col = this;
+
+ obj.spy = function () {
+ return col.spy.apply(col, arguments);
+ };
+
+ obj.stub = function () {
+ return col.stub.apply(col, arguments);
+ };
+
+ obj.mock = function () {
+ return col.mock.apply(col, arguments);
+ };
+
+ return obj;
+ }
+ };
+
+ if (commonJSModule) {
+ module.exports = collection;
+ } else {
+ sinon.collection = collection;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/
+/*global module, require, window*/
+/**
+ * Fake timer API
+ * setTimeout
+ * setInterval
+ * clearTimeout
+ * clearInterval
+ * tick
+ * reset
+ * Date
+ *
+ * Inspired by jsUnitMockTimeOut from JsUnit
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+ var sinon = {};
+}
+
+(function (global) {
+ var id = 1;
+
+ function addTimer(args, recurring) {
+ if (args.length === 0) {
+ throw new Error("Function requires at least 1 parameter");
+ }
+
+ var toId = id++;
+ var delay = args[1] || 0;
+
+ if (!this.timeouts) {
+ this.timeouts = {};
+ }
+
+ this.timeouts[toId] = {
+ id: toId,
+ func: args[0],
+ callAt: this.now + delay,
+ invokeArgs: Array.prototype.slice.call(args, 2)
+ };
+
+ if (recurring === true) {
+ this.timeouts[toId].interval = delay;
+ }
+
+ return toId;
+ }
+
+ function parseTime(str) {
+ if (!str) {
+ return 0;
+ }
+
+ var strings = str.split(":");
+ var l = strings.length, i = l;
+ var ms = 0, parsed;
+
+ if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
+ throw new Error("tick only understands numbers and 'h:m:s'");
+ }
+
+ while (i--) {
+ parsed = parseInt(strings[i], 10);
+
+ if (parsed >= 60) {
+ throw new Error("Invalid time " + str);
+ }
+
+ ms += parsed * Math.pow(60, (l - i - 1));
+ }
+
+ return ms * 1000;
+ }
+
+ function createObject(object) {
+ var newObject;
+
+ if (Object.create) {
+ newObject = Object.create(object);
+ } else {
+ var F = function () {};
+ F.prototype = object;
+ newObject = new F();
+ }
+
+ newObject.Date.clock = newObject;
+ return newObject;
+ }
+
+ sinon.clock = {
+ now: 0,
+
+ create: function create(now) {
+ var clock = createObject(this);
+
+ if (typeof now == "number") {
+ clock.now = now;
+ }
+
+ if (!!now && typeof now == "object") {
+ throw new TypeError("now should be milliseconds since UNIX epoch");
+ }
+
+ return clock;
+ },
+
+ setTimeout: function setTimeout(callback, timeout) {
+ return addTimer.call(this, arguments, false);
+ },
+
+ clearTimeout: function clearTimeout(timerId) {
+ if (!this.timeouts) {
+ this.timeouts = [];
+ }
+
+ if (timerId in this.timeouts) {
+ delete this.timeouts[timerId];
+ }
+ },
+
+ setInterval: function setInterval(callback, timeout) {
+ return addTimer.call(this, arguments, true);
+ },
+
+ clearInterval: function clearInterval(timerId) {
+ this.clearTimeout(timerId);
+ },
+
+ tick: function tick(ms) {
+ ms = typeof ms == "number" ? ms : parseTime(ms);
+ var tickFrom = this.now, tickTo = this.now + ms, previous = this.now;
+ var timer = this.firstTimerInRange(tickFrom, tickTo);
+
+ var firstException;
+ while (timer && tickFrom <= tickTo) {
+ if (this.timeouts[timer.id]) {
+ tickFrom = this.now = timer.callAt;
+ try {
+ this.callTimer(timer);
+ } catch (e) {
+ firstException = firstException || e;
+ }
+ }
+
+ timer = this.firstTimerInRange(previous, tickTo);
+ previous = tickFrom;
+ }
+
+ this.now = tickTo;
+
+ if (firstException) {
+ throw firstException;
+ }
+
+ return this.now;
+ },
+
+ firstTimerInRange: function (from, to) {
+ var timer, smallest, originalTimer;
+
+ for (var id in this.timeouts) {
+ if (this.timeouts.hasOwnProperty(id)) {
+ if (this.timeouts[id].callAt < from || this.timeouts[id].callAt > to) {
+ continue;
+ }
+
+ if (!smallest || this.timeouts[id].callAt < smallest) {
+ originalTimer = this.timeouts[id];
+ smallest = this.timeouts[id].callAt;
+
+ timer = {
+ func: this.timeouts[id].func,
+ callAt: this.timeouts[id].callAt,
+ interval: this.timeouts[id].interval,
+ id: this.timeouts[id].id,
+ invokeArgs: this.timeouts[id].invokeArgs
+ };
+ }
+ }
+ }
+
+ return timer || null;
+ },
+
+ callTimer: function (timer) {
+ if (typeof timer.interval == "number") {
+ this.timeouts[timer.id].callAt += timer.interval;
+ } else {
+ delete this.timeouts[timer.id];
+ }
+
+ try {
+ if (typeof timer.func == "function") {
+ timer.func.apply(null, timer.invokeArgs);
+ } else {
+ eval(timer.func);
+ }
+ } catch (e) {
+ var exception = e;
+ }
+
+ if (!this.timeouts[timer.id]) {
+ if (exception) {
+ throw exception;
+ }
+ return;
+ }
+
+ if (exception) {
+ throw exception;
+ }
+ },
+
+ reset: function reset() {
+ this.timeouts = {};
+ },
+
+ Date: (function () {
+ var NativeDate = Date;
+
+ function ClockDate(year, month, date, hour, minute, second, ms) {
+ // Defensive and verbose to avoid potential harm in passing
+ // explicit undefined when user does not pass argument
+ switch (arguments.length) {
+ case 0:
+ return new NativeDate(ClockDate.clock.now);
+ case 1:
+ return new NativeDate(year);
+ case 2:
+ return new NativeDate(year, month);
+ case 3:
+ return new NativeDate(year, month, date);
+ case 4:
+ return new NativeDate(year, month, date, hour);
+ case 5:
+ return new NativeDate(year, month, date, hour, minute);
+ case 6:
+ return new NativeDate(year, month, date, hour, minute, second);
+ default:
+ return new NativeDate(year, month, date, hour, minute, second, ms);
+ }
+ }
+
+ return mirrorDateProperties(ClockDate, NativeDate);
+ }())
+ };
+
+ function mirrorDateProperties(target, source) {
+ if (source.now) {
+ target.now = function now() {
+ return target.clock.now;
+ };
+ } else {
+ delete target.now;
+ }
+
+ if (source.toSource) {
+ target.toSource = function toSource() {
+ return source.toSource();
+ };
+ } else {
+ delete target.toSource;
+ }
+
+ target.toString = function toString() {
+ return source.toString();
+ };
+
+ target.prototype = source.prototype;
+ target.parse = source.parse;
+ target.UTC = source.UTC;
+ target.prototype.toUTCString = source.prototype.toUTCString;
+ return target;
+ }
+
+ var methods = ["Date", "setTimeout", "setInterval",
+ "clearTimeout", "clearInterval"];
+
+ function restore() {
+ var method;
+
+ for (var i = 0, l = this.methods.length; i < l; i++) {
+ method = this.methods[i];
+ if (global[method].hadOwnProperty) {
+ global[method] = this["_" + method];
+ } else {
+ delete global[method];
+ }
+ }
+
+ // Prevent multiple executions which will completely remove these props
+ this.methods = [];
+ }
+
+ function stubGlobal(method, clock) {
+ clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(global, method);
+ clock["_" + method] = global[method];
+
+ if (method == "Date") {
+ var date = mirrorDateProperties(clock[method], global[method]);
+ global[method] = date;
+ } else {
+ global[method] = function () {
+ return clock[method].apply(clock, arguments);
+ };
+
+ for (var prop in clock[method]) {
+ if (clock[method].hasOwnProperty(prop)) {
+ global[method][prop] = clock[method][prop];
+ }
+ }
+ }
+
+ global[method].clock = clock;
+ }
+
+ sinon.useFakeTimers = function useFakeTimers(now) {
+ var clock = sinon.clock.create(now);
+ clock.restore = restore;
+ clock.methods = Array.prototype.slice.call(arguments,
+ typeof now == "number" ? 1 : 0);
+
+ if (clock.methods.length === 0) {
+ clock.methods = methods;
+ }
+
+ for (var i = 0, l = clock.methods.length; i < l; i++) {
+ stubGlobal(clock.methods[i], clock);
+ }
+
+ return clock;
+ };
+}(typeof global != "undefined" && typeof global !== "function" ? global : this));
+
+sinon.timers = {
+ setTimeout: setTimeout,
+ clearTimeout: clearTimeout,
+ setInterval: setInterval,
+ clearInterval: clearInterval,
+ Date: Date
+};
+
+if (typeof module == "object" && typeof require == "function") {
+ module.exports = sinon;
+}
+
+/*jslint eqeqeq: false, onevar: false*/
+/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
+/**
+ * Minimal Event interface implementation
+ *
+ * Original implementation by Sven Fuchs: https://gist.github.com/995028
+ * Modifications and tests by Christian Johansen.
+ *
+ * @author Sven Fuchs (svenfuchs@artweb-design.de)
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2011 Sven Fuchs, Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+ this.sinon = {};
+}
+
+(function () {
+ var push = [].push;
+
+ sinon.Event = function Event(type, bubbles, cancelable, target) {
+ this.initEvent(type, bubbles, cancelable, target);
+ };
+
+ sinon.Event.prototype = {
+ initEvent: function(type, bubbles, cancelable, target) {
+ this.type = type;
+ this.bubbles = bubbles;
+ this.cancelable = cancelable;
+ this.target = target;
+ },
+
+ stopPropagation: function () {},
+
+ preventDefault: function () {
+ this.defaultPrevented = true;
+ }
+ };
+
+ sinon.EventTarget = {
+ addEventListener: function addEventListener(event, listener, useCapture) {
+ this.eventListeners = this.eventListeners || {};
+ this.eventListeners[event] = this.eventListeners[event] || [];
+ push.call(this.eventListeners[event], listener);
+ },
+
+ removeEventListener: function removeEventListener(event, listener, useCapture) {
+ var listeners = this.eventListeners && this.eventListeners[event] || [];
+
+ for (var i = 0, l = listeners.length; i < l; ++i) {
+ if (listeners[i] == listener) {
+ return listeners.splice(i, 1);
+ }
+ }
+ },
+
+ dispatchEvent: function dispatchEvent(event) {
+ var type = event.type;
+ var listeners = this.eventListeners && this.eventListeners[type] || [];
+
+ for (var i = 0; i < listeners.length; i++) {
+ if (typeof listeners[i] == "function") {
+ listeners[i].call(this, event);
+ } else {
+ listeners[i].handleEvent(event);
+ }
+ }
+
+ return !!event.defaultPrevented;
+ }
+ };
+}());
+
+/**
+ * @depend ../../sinon.js
+ * @depend event.js
+ */
+/*jslint eqeqeq: false, onevar: false*/
+/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
+/**
+ * Fake XMLHttpRequest object
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+ this.sinon = {};
+}
+sinon.xhr = { XMLHttpRequest: this.XMLHttpRequest };
+
+// wrapper for global
+(function(global) {
+ var xhr = sinon.xhr;
+ xhr.GlobalXMLHttpRequest = global.XMLHttpRequest;
+ xhr.GlobalActiveXObject = global.ActiveXObject;
+ xhr.supportsActiveX = typeof xhr.GlobalActiveXObject != "undefined";
+ xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != "undefined";
+ xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX
+ ? function() { return new xhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0") } : false;
+
+ /*jsl:ignore*/
+ var unsafeHeaders = {
+ "Accept-Charset": true,
+ "Accept-Encoding": true,
+ "Connection": true,
+ "Content-Length": true,
+ "Cookie": true,
+ "Cookie2": true,
+ "Content-Transfer-Encoding": true,
+ "Date": true,
+ "Expect": true,
+ "Host": true,
+ "Keep-Alive": true,
+ "Referer": true,
+ "TE": true,
+ "Trailer": true,
+ "Transfer-Encoding": true,
+ "Upgrade": true,
+ "User-Agent": true,
+ "Via": true
+ };
+ /*jsl:end*/
+
+ function FakeXMLHttpRequest() {
+ this.readyState = FakeXMLHttpRequest.UNSENT;
+ this.requestHeaders = {};
+ this.requestBody = null;
+ this.status = 0;
+ this.statusText = "";
+
+ var xhr = this;
+ var events = ["loadstart", "load", "abort", "loadend"];
+
+ function addEventListener(eventName) {
+ xhr.addEventListener(eventName, function (event) {
+ var listener = xhr["on" + eventName];
+
+ if (listener && typeof listener == "function") {
+ listener(event);
+ }
+ });
+ }
+
+ for (var i = events.length - 1; i >= 0; i--) {
+ addEventListener(events[i]);
+ }
+
+ if (typeof FakeXMLHttpRequest.onCreate == "function") {
+ FakeXMLHttpRequest.onCreate(this);
+ }
+ }
+
+ function verifyState(xhr) {
+ if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {
+ throw new Error("INVALID_STATE_ERR");
+ }
+
+ if (xhr.sendFlag) {
+ throw new Error("INVALID_STATE_ERR");
+ }
+ }
+
+ // filtering to enable a white-list version of Sinon FakeXhr,
+ // where whitelisted requests are passed through to real XHR
+ function each(collection, callback) {
+ if (!collection) return;
+ for (var i = 0, l = collection.length; i < l; i += 1) {
+ callback(collection[i]);
+ }
+ }
+ function some(collection, callback) {
+ for (var index = 0; index < collection.length; index++) {
+ if(callback(collection[index]) === true) return true;
+ };
+ return false;
+ }
+ // largest arity in XHR is 5 - XHR#open
+ var apply = function(obj,method,args) {
+ switch(args.length) {
+ case 0: return obj[method]();
+ case 1: return obj[method](args[0]);
+ case 2: return obj[method](args[0],args[1]);
+ case 3: return obj[method](args[0],args[1],args[2]);
+ case 4: return obj[method](args[0],args[1],args[2],args[3]);
+ case 5: return obj[method](args[0],args[1],args[2],args[3],args[4]);
+ };
+ };
+
+ FakeXMLHttpRequest.filters = [];
+ FakeXMLHttpRequest.addFilter = function(fn) {
+ this.filters.push(fn)
+ };
+ var IE6Re = /MSIE 6/;
+ FakeXMLHttpRequest.defake = function(fakeXhr,xhrArgs) {
+ var xhr = new sinon.xhr.workingXHR();
+ each(["open","setRequestHeader","send","abort","getResponseHeader",
+ "getAllResponseHeaders","addEventListener","overrideMimeType","removeEventListener"],
+ function(method) {
+ fakeXhr[method] = function() {
+ return apply(xhr,method,arguments);
+ };
+ });
+
+ var copyAttrs = function(args) {
+ each(args, function(attr) {
+ try {
+ fakeXhr[attr] = xhr[attr]
+ } catch(e) {
+ if(!IE6Re.test(navigator.userAgent)) throw e;
+ }
+ });
+ };
+
+ var stateChange = function() {
+ fakeXhr.readyState = xhr.readyState;
+ if(xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {
+ copyAttrs(["status","statusText"]);
+ }
+ if(xhr.readyState >= FakeXMLHttpRequest.LOADING) {
+ copyAttrs(["responseText"]);
+ }
+ if(xhr.readyState === FakeXMLHttpRequest.DONE) {
+ copyAttrs(["responseXML"]);
+ }
+ if(fakeXhr.onreadystatechange) fakeXhr.onreadystatechange.call(fakeXhr);
+ };
+ if(xhr.addEventListener) {
+ for(var event in fakeXhr.eventListeners) {
+ if(fakeXhr.eventListeners.hasOwnProperty(event)) {
+ each(fakeXhr.eventListeners[event],function(handler) {
+ xhr.addEventListener(event, handler);
+ });
+ }
+ }
+ xhr.addEventListener("readystatechange",stateChange);
+ } else {
+ xhr.onreadystatechange = stateChange;
+ }
+ apply(xhr,"open",xhrArgs);
+ };
+ FakeXMLHttpRequest.useFilters = false;
+
+ function verifyRequestSent(xhr) {
+ if (xhr.readyState == FakeXMLHttpRequest.DONE) {
+ throw new Error("Request done");
+ }
+ }
+
+ function verifyHeadersReceived(xhr) {
+ if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {
+ throw new Error("No headers received");
+ }
+ }
+
+ function verifyResponseBodyType(body) {
+ if (typeof body != "string") {
+ var error = new Error("Attempted to respond to fake XMLHttpRequest with " +
+ body + ", which is not a string.");
+ error.name = "InvalidBodyException";
+ throw error;
+ }
+ }
+
+ sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {
+ async: true,
+
+ open: function open(method, url, async, username, password) {
+ this.method = method;
+ this.url = url;
+ this.async = typeof async == "boolean" ? async : true;
+ this.username = username;
+ this.password = password;
+ this.responseText = null;
+ this.responseXML = null;
+ this.requestHeaders = {};
+ this.sendFlag = false;
+ if(sinon.FakeXMLHttpRequest.useFilters === true) {
+ var xhrArgs = arguments;
+ var defake = some(FakeXMLHttpRequest.filters,function(filter) {
+ return filter.apply(this,xhrArgs)
+ });
+ if (defake) {
+ return sinon.FakeXMLHttpRequest.defake(this,arguments);
+ }
+ }
+ this.readyStateChange(FakeXMLHttpRequest.OPENED);
+ },
+
+ readyStateChange: function readyStateChange(state) {
+ this.readyState = state;
+
+ if (typeof this.onreadystatechange == "function") {
+ try {
+ this.onreadystatechange();
+ } catch (e) {
+ sinon.logError("Fake XHR onreadystatechange handler", e);
+ }
+ }
+
+ this.dispatchEvent(new sinon.Event("readystatechange"));
+
+ switch (this.readyState) {
+ case FakeXMLHttpRequest.DONE:
+ this.dispatchEvent(new sinon.Event("load", false, false, this));
+ this.dispatchEvent(new sinon.Event("loadend", false, false, this));
+ break;
+ }
+ },
+
+ setRequestHeader: function setRequestHeader(header, value) {
+ verifyState(this);
+
+ if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {
+ throw new Error("Refused to set unsafe header \"" + header + "\"");
+ }
+
+ if (this.requestHeaders[header]) {
+ this.requestHeaders[header] += "," + value;
+ } else {
+ this.requestHeaders[header] = value;
+ }
+ },
+
+ // Helps testing
+ setResponseHeaders: function setResponseHeaders(headers) {
+ this.responseHeaders = {};
+
+ for (var header in headers) {
+ if (headers.hasOwnProperty(header)) {
+ this.responseHeaders[header] = headers[header];
+ }
+ }
+
+ if (this.async) {
+ this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);
+ } else {
+ this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
+ }
+ },
+
+ // Currently treats ALL data as a DOMString (i.e. no Document)
+ send: function send(data) {
+ verifyState(this);
+
+ if (!/^(get|head)$/i.test(this.method)) {
+ if (this.requestHeaders["Content-Type"]) {
+ var value = this.requestHeaders["Content-Type"].split(";");
+ this.requestHeaders["Content-Type"] = value[0] + ";charset=utf-8";
+ } else {
+ this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
+ }
+
+ this.requestBody = data;
+ }
+
+ this.errorFlag = false;
+ this.sendFlag = this.async;
+ this.readyStateChange(FakeXMLHttpRequest.OPENED);
+
+ if (typeof this.onSend == "function") {
+ this.onSend(this);
+ }
+
+ this.dispatchEvent(new sinon.Event("loadstart", false, false, this));
+ },
+
+ abort: function abort() {
+ this.aborted = true;
+ this.responseText = null;
+ this.errorFlag = true;
+ this.requestHeaders = {};
+
+ if (this.readyState > sinon.FakeXMLHttpRequest.UNSENT && this.sendFlag) {
+ this.readyStateChange(sinon.FakeXMLHttpRequest.DONE);
+ this.sendFlag = false;
+ }
+
+ this.readyState = sinon.FakeXMLHttpRequest.UNSENT;
+
+ this.dispatchEvent(new sinon.Event("abort", false, false, this));
+ if (typeof this.onerror === "function") {
+ this.onerror();
+ }
+ },
+
+ getResponseHeader: function getResponseHeader(header) {
+ if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+ return null;
+ }
+
+ if (/^Set-Cookie2?$/i.test(header)) {
+ return null;
+ }
+
+ header = header.toLowerCase();
+
+ for (var h in this.responseHeaders) {
+ if (h.toLowerCase() == header) {
+ return this.responseHeaders[h];
+ }
+ }
+
+ return null;
+ },
+
+ getAllResponseHeaders: function getAllResponseHeaders() {
+ if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+ return "";
+ }
+
+ var headers = "";
+
+ for (var header in this.responseHeaders) {
+ if (this.responseHeaders.hasOwnProperty(header) &&
+ !/^Set-Cookie2?$/i.test(header)) {
+ headers += header + ": " + this.responseHeaders[header] + "\r\n";
+ }
+ }
+
+ return headers;
+ },
+
+ setResponseBody: function setResponseBody(body) {
+ verifyRequestSent(this);
+ verifyHeadersReceived(this);
+ verifyResponseBodyType(body);
+
+ var chunkSize = this.chunkSize || 10;
+ var index = 0;
+ this.responseText = "";
+
+ do {
+ if (this.async) {
+ this.readyStateChange(FakeXMLHttpRequest.LOADING);
+ }
+
+ this.responseText += body.substring(index, index + chunkSize);
+ index += chunkSize;
+ } while (index < body.length);
+
+ var type = this.getResponseHeader("Content-Type");
+
+ if (this.responseText &&
+ (!type || /(text\/xml)|(application\/xml)|(\+xml)/.test(type))) {
+ try {
+ this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);
+ } catch (e) {
+ // Unable to parse XML - no biggie
+ }
+ }
+
+ if (this.async) {
+ this.readyStateChange(FakeXMLHttpRequest.DONE);
+ } else {
+ this.readyState = FakeXMLHttpRequest.DONE;
+ }
+ },
+
+ respond: function respond(status, headers, body) {
+ this.setResponseHeaders(headers || {});
+ this.status = typeof status == "number" ? status : 200;
+ this.statusText = FakeXMLHttpRequest.statusCodes[this.status];
+ this.setResponseBody(body || "");
+ if (typeof this.onload === "function"){
+ this.onload();
+ }
+
+ }
+ });
+
+ sinon.extend(FakeXMLHttpRequest, {
+ UNSENT: 0,
+ OPENED: 1,
+ HEADERS_RECEIVED: 2,
+ LOADING: 3,
+ DONE: 4
+ });
+
+ // Borrowed from JSpec
+ FakeXMLHttpRequest.parseXML = function parseXML(text) {
+ var xmlDoc;
+
+ if (typeof DOMParser != "undefined") {
+ var parser = new DOMParser();
+ xmlDoc = parser.parseFromString(text, "text/xml");
+ } else {
+ xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+ xmlDoc.async = "false";
+ xmlDoc.loadXML(text);
+ }
+
+ return xmlDoc;
+ };
+
+ FakeXMLHttpRequest.statusCodes = {
+ 100: "Continue",
+ 101: "Switching Protocols",
+ 200: "OK",
+ 201: "Created",
+ 202: "Accepted",
+ 203: "Non-Authoritative Information",
+ 204: "No Content",
+ 205: "Reset Content",
+ 206: "Partial Content",
+ 300: "Multiple Choice",
+ 301: "Moved Permanently",
+ 302: "Found",
+ 303: "See Other",
+ 304: "Not Modified",
+ 305: "Use Proxy",
+ 307: "Temporary Redirect",
+ 400: "Bad Request",
+ 401: "Unauthorized",
+ 402: "Payment Required",
+ 403: "Forbidden",
+ 404: "Not Found",
+ 405: "Method Not Allowed",
+ 406: "Not Acceptable",
+ 407: "Proxy Authentication Required",
+ 408: "Request Timeout",
+ 409: "Conflict",
+ 410: "Gone",
+ 411: "Length Required",
+ 412: "Precondition Failed",
+ 413: "Request Entity Too Large",
+ 414: "Request-URI Too Long",
+ 415: "Unsupported Media Type",
+ 416: "Requested Range Not Satisfiable",
+ 417: "Expectation Failed",
+ 422: "Unprocessable Entity",
+ 500: "Internal Server Error",
+ 501: "Not Implemented",
+ 502: "Bad Gateway",
+ 503: "Service Unavailable",
+ 504: "Gateway Timeout",
+ 505: "HTTP Version Not Supported"
+ };
+
+ sinon.useFakeXMLHttpRequest = function () {
+ sinon.FakeXMLHttpRequest.restore = function restore(keepOnCreate) {
+ if (xhr.supportsXHR) {
+ global.XMLHttpRequest = xhr.GlobalXMLHttpRequest;
+ }
+
+ if (xhr.supportsActiveX) {
+ global.ActiveXObject = xhr.GlobalActiveXObject;
+ }
+
+ delete sinon.FakeXMLHttpRequest.restore;
+
+ if (keepOnCreate !== true) {
+ delete sinon.FakeXMLHttpRequest.onCreate;
+ }
+ };
+ if (xhr.supportsXHR) {
+ global.XMLHttpRequest = sinon.FakeXMLHttpRequest;
+ }
+
+ if (xhr.supportsActiveX) {
+ global.ActiveXObject = function ActiveXObject(objId) {
+ if (objId == "Microsoft.XMLHTTP" || /^Msxml2\.XMLHTTP/i.test(objId)) {
+
+ return new sinon.FakeXMLHttpRequest();
+ }
+
+ return new xhr.GlobalActiveXObject(objId);
+ };
+ }
+
+ return sinon.FakeXMLHttpRequest;
+ };
+
+ sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
+})(this);
+
+if (typeof module == "object" && typeof require == "function") {
+ module.exports = sinon;
+}
+
+/**
+ * @depend fake_xml_http_request.js
+ */
+/*jslint eqeqeq: false, onevar: false, regexp: false, plusplus: false*/
+/*global module, require, window*/
+/**
+ * The Sinon "server" mimics a web server that receives requests from
+ * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,
+ * both synchronously and asynchronously. To respond synchronuously, canned
+ * answers have to be provided upfront.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+ var sinon = {};
+}
+
+sinon.fakeServer = (function () {
+ var push = [].push;
+ function F() {}
+
+ function create(proto) {
+ F.prototype = proto;
+ return new F();
+ }
+
+ function responseArray(handler) {
+ var response = handler;
+
+ if (Object.prototype.toString.call(handler) != "[object Array]") {
+ response = [200, {}, handler];
+ }
+
+ if (typeof response[2] != "string") {
+ throw new TypeError("Fake server response body should be string, but was " +
+ typeof response[2]);
+ }
+
+ return response;
+ }
+
+ var wloc = typeof window !== "undefined" ? window.location : {};
+ var rCurrLoc = new RegExp("^" + wloc.protocol + "//" + wloc.host);
+
+ function matchOne(response, reqMethod, reqUrl) {
+ var rmeth = response.method;
+ var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();
+ var url = response.url;
+ var matchUrl = !url || url == reqUrl || (typeof url.test == "function" && url.test(reqUrl));
+
+ return matchMethod && matchUrl;
+ }
+
+ function match(response, request) {
+ var requestMethod = this.getHTTPMethod(request);
+ var requestUrl = request.url;
+
+ if (!/^https?:\/\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {
+ requestUrl = requestUrl.replace(rCurrLoc, "");
+ }
+
+ if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {
+ if (typeof response.response == "function") {
+ var ru = response.url;
+ var args = [request].concat(!ru ? [] : requestUrl.match(ru).slice(1));
+ return response.response.apply(response, args);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ function log(response, request) {
+ var str;
+
+ str = "Request:\n" + sinon.format(request) + "\n\n";
+ str += "Response:\n" + sinon.format(response) + "\n\n";
+
+ sinon.log(str);
+ }
+
+ return {
+ create: function () {
+ var server = create(this);
+ this.xhr = sinon.useFakeXMLHttpRequest();
+ server.requests = [];
+
+ this.xhr.onCreate = function (xhrObj) {
+ server.addRequest(xhrObj);
+ };
+
+ return server;
+ },
+
+ addRequest: function addRequest(xhrObj) {
+ var server = this;
+ push.call(this.requests, xhrObj);
+
+ xhrObj.onSend = function () {
+ server.handleRequest(this);
+ };
+
+ if (this.autoRespond && !this.responding) {
+ setTimeout(function () {
+ server.responding = false;
+ server.respond();
+ }, this.autoRespondAfter || 10);
+
+ this.responding = true;
+ }
+ },
+
+ getHTTPMethod: function getHTTPMethod(request) {
+ if (this.fakeHTTPMethods && /post/i.test(request.method)) {
+ var matches = (request.requestBody || "").match(/_method=([^\b;]+)/);
+ return !!matches ? matches[1] : request.method;
+ }
+
+ return request.method;
+ },
+
+ handleRequest: function handleRequest(xhr) {
+ if (xhr.async) {
+ if (!this.queue) {
+ this.queue = [];
+ }
+
+ push.call(this.queue, xhr);
+ } else {
+ this.processRequest(xhr);
+ }
+ },
+
+ respondWith: function respondWith(method, url, body) {
+ if (arguments.length == 1 && typeof method != "function") {
+ this.response = responseArray(method);
+ return;
+ }
+
+ if (!this.responses) { this.responses = []; }
+
+ if (arguments.length == 1) {
+ body = method;
+ url = method = null;
+ }
+
+ if (arguments.length == 2) {
+ body = url;
+ url = method;
+ method = null;
+ }
+
+ push.call(this.responses, {
+ method: method,
+ url: url,
+ response: typeof body == "function" ? body : responseArray(body)
+ });
+ },
+
+ respond: function respond() {
+ if (arguments.length > 0) this.respondWith.apply(this, arguments);
+ var queue = this.queue || [];
+ var request;
+
+ while(request = queue.shift()) {
+ this.processRequest(request);
+ }
+ },
+
+ processRequest: function processRequest(request) {
+ try {
+ if (request.aborted) {
+ return;
+ }
+
+ var response = this.response || [404, {}, ""];
+
+ if (this.responses) {
+ for (var i = 0, l = this.responses.length; i < l; i++) {
+ if (match.call(this, this.responses[i], request)) {
+ response = this.responses[i].response;
+ break;
+ }
+ }
+ }
+
+ if (request.readyState != 4) {
+ log(response, request);
+
+ request.respond(response[0], response[1], response[2]);
+ }
+ } catch (e) {
+ sinon.logError("Fake server request processing", e);
+ }
+ },
+
+ restore: function restore() {
+ return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);
+ }
+ };
+}());
+
+if (typeof module == "object" && typeof require == "function") {
+ module.exports = sinon;
+}
+
+/**
+ * @depend fake_server.js
+ * @depend fake_timers.js
+ */
+/*jslint browser: true, eqeqeq: false, onevar: false*/
+/*global sinon*/
+/**
+ * Add-on for sinon.fakeServer that automatically handles a fake timer along with
+ * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery
+ * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,
+ * it polls the object for completion with setInterval. Dispite the direct
+ * motivation, there is nothing jQuery-specific in this file, so it can be used
+ * in any environment where the ajax implementation depends on setInterval or
+ * setTimeout.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function () {
+ function Server() {}
+ Server.prototype = sinon.fakeServer;
+
+ sinon.fakeServerWithClock = new Server();
+
+ sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {
+ if (xhr.async) {
+ if (typeof setTimeout.clock == "object") {
+ this.clock = setTimeout.clock;
+ } else {
+ this.clock = sinon.useFakeTimers();
+ this.resetClock = true;
+ }
+
+ if (!this.longestTimeout) {
+ var clockSetTimeout = this.clock.setTimeout;
+ var clockSetInterval = this.clock.setInterval;
+ var server = this;
+
+ this.clock.setTimeout = function (fn, timeout) {
+ server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+ return clockSetTimeout.apply(this, arguments);
+ };
+
+ this.clock.setInterval = function (fn, timeout) {
+ server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+ return clockSetInterval.apply(this, arguments);
+ };
+ }
+ }
+
+ return sinon.fakeServer.addRequest.call(this, xhr);
+ };
+
+ sinon.fakeServerWithClock.respond = function respond() {
+ var returnVal = sinon.fakeServer.respond.apply(this, arguments);
+
+ if (this.clock) {
+ this.clock.tick(this.longestTimeout || 0);
+ this.longestTimeout = 0;
+
+ if (this.resetClock) {
+ this.clock.restore();
+ this.resetClock = false;
+ }
+ }
+
+ return returnVal;
+ };
+
+ sinon.fakeServerWithClock.restore = function restore() {
+ if (this.clock) {
+ this.clock.restore();
+ }
+
+ return sinon.fakeServer.restore.apply(this, arguments);
+ };
+}());
+
+/**
+ * @depend ../sinon.js
+ * @depend collection.js
+ * @depend util/fake_timers.js
+ * @depend util/fake_server_with_clock.js
+ */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global require, module*/
+/**
+ * Manages fake collections as well as fake utilities such as Sinon's
+ * timers and fake XHR implementation in one convenient object.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof module == "object" && typeof require == "function") {
+ var sinon = require("../sinon");
+ sinon.extend(sinon, require("./util/fake_timers"));
+}
+
+(function () {
+ var push = [].push;
+
+ function exposeValue(sandbox, config, key, value) {
+ if (!value) {
+ return;
+ }
+
+ if (config.injectInto) {
+ config.injectInto[key] = value;
+ } else {
+ push.call(sandbox.args, value);
+ }
+ }
+
+ function prepareSandboxFromConfig(config) {
+ var sandbox = sinon.create(sinon.sandbox);
+
+ if (config.useFakeServer) {
+ if (typeof config.useFakeServer == "object") {
+ sandbox.serverPrototype = config.useFakeServer;
+ }
+
+ sandbox.useFakeServer();
+ }
+
+ if (config.useFakeTimers) {
+ if (typeof config.useFakeTimers == "object") {
+ sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);
+ } else {
+ sandbox.useFakeTimers();
+ }
+ }
+
+ return sandbox;
+ }
+
+ sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {
+ useFakeTimers: function useFakeTimers() {
+ this.clock = sinon.useFakeTimers.apply(sinon, arguments);
+
+ return this.add(this.clock);
+ },
+
+ serverPrototype: sinon.fakeServer,
+
+ useFakeServer: function useFakeServer() {
+ var proto = this.serverPrototype || sinon.fakeServer;
+
+ if (!proto || !proto.create) {
+ return null;
+ }
+
+ this.server = proto.create();
+ return this.add(this.server);
+ },
+
+ inject: function (obj) {
+ sinon.collection.inject.call(this, obj);
+
+ if (this.clock) {
+ obj.clock = this.clock;
+ }
+
+ if (this.server) {
+ obj.server = this.server;
+ obj.requests = this.server.requests;
+ }
+
+ return obj;
+ },
+
+ create: function (config) {
+ if (!config) {
+ return sinon.create(sinon.sandbox);
+ }
+
+ var sandbox = prepareSandboxFromConfig(config);
+ sandbox.args = sandbox.args || [];
+ var prop, value, exposed = sandbox.inject({});
+
+ if (config.properties) {
+ for (var i = 0, l = config.properties.length; i < l; i++) {
+ prop = config.properties[i];
+ value = exposed[prop] || prop == "sandbox" && sandbox;
+ exposeValue(sandbox, config, prop, value);
+ }
+ } else {
+ exposeValue(sandbox, config, "sandbox", value);
+ }
+
+ return sandbox;
+ }
+ });
+
+ sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
+
+ if (typeof module == "object" && typeof require == "function") {
+ module.exports = sinon.sandbox;
+ }
+}());
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ * @depend mock.js
+ * @depend sandbox.js
+ */
+/*jslint eqeqeq: false, onevar: false, forin: true, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Test function, sandboxes fakes
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function test(callback) {
+ var type = typeof callback;
+
+ if (type != "function") {
+ throw new TypeError("sinon.test needs to wrap a test function, got " + type);
+ }
+
+ return function () {
+ var config = sinon.getConfig(sinon.config);
+ config.injectInto = config.injectIntoThis && this || config.injectInto;
+ var sandbox = sinon.sandbox.create(config);
+ var exception, result;
+ var args = Array.prototype.slice.call(arguments).concat(sandbox.args);
+
+ try {
+ result = callback.apply(this, args);
+ } catch (e) {
+ exception = e;
+ }
+
+ if (typeof exception !== "undefined") {
+ sandbox.restore();
+ throw exception;
+ }
+ else {
+ sandbox.verifyAndRestore();
+ }
+
+ return result;
+ };
+ }
+
+ test.config = {
+ injectIntoThis: true,
+ injectInto: null,
+ properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+ useFakeTimers: true,
+ useFakeServer: true
+ };
+
+ if (commonJSModule) {
+ module.exports = test;
+ } else {
+ sinon.test = test;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend test.js
+ */
+/*jslint eqeqeq: false, onevar: false, eqeqeq: false*/
+/*global module, require, sinon*/
+/**
+ * Test case, sandboxes all test functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon || !Object.prototype.hasOwnProperty) {
+ return;
+ }
+
+ function createTest(property, setUp, tearDown) {
+ return function () {
+ if (setUp) {
+ setUp.apply(this, arguments);
+ }
+
+ var exception, result;
+
+ try {
+ result = property.apply(this, arguments);
+ } catch (e) {
+ exception = e;
+ }
+
+ if (tearDown) {
+ tearDown.apply(this, arguments);
+ }
+
+ if (exception) {
+ throw exception;
+ }
+
+ return result;
+ };
+ }
+
+ function testCase(tests, prefix) {
+ /*jsl:ignore*/
+ if (!tests || typeof tests != "object") {
+ throw new TypeError("sinon.testCase needs an object with test functions");
+ }
+ /*jsl:end*/
+
+ prefix = prefix || "test";
+ var rPrefix = new RegExp("^" + prefix);
+ var methods = {}, testName, property, method;
+ var setUp = tests.setUp;
+ var tearDown = tests.tearDown;
+
+ for (testName in tests) {
+ if (tests.hasOwnProperty(testName)) {
+ property = tests[testName];
+
+ if (/^(setUp|tearDown)$/.test(testName)) {
+ continue;
+ }
+
+ if (typeof property == "function" && rPrefix.test(testName)) {
+ method = property;
+
+ if (setUp || tearDown) {
+ method = createTest(property, setUp, tearDown);
+ }
+
+ methods[testName] = sinon.test(method);
+ } else {
+ methods[testName] = tests[testName];
+ }
+ }
+ }
+
+ return methods;
+ }
+
+ if (commonJSModule) {
+ module.exports = testCase;
+ } else {
+ sinon.testCase = testCase;
+ }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ */
+/*jslint eqeqeq: false, onevar: false, nomen: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Assertions matching the test spy retrieval interface.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon, global) {
+ var commonJSModule = typeof module == "object" && typeof require == "function";
+ var slice = Array.prototype.slice;
+ var assert;
+
+ if (!sinon && commonJSModule) {
+ sinon = require("../sinon");
+ }
+
+ if (!sinon) {
+ return;
+ }
+
+ function verifyIsStub() {
+ var method;
+
+ for (var i = 0, l = arguments.length; i < l; ++i) {
+ method = arguments[i];
+
+ if (!method) {
+ assert.fail("fake is not a spy");
+ }
+
+ if (typeof method != "function") {
+ assert.fail(method + " is not a function");
+ }
+
+ if (typeof method.getCall != "function") {
+ assert.fail(method + " is not stubbed");
+ }
+ }
+ }
+
+ function failAssertion(object, msg) {
+ object = object || global;
+ var failMethod = object.fail || assert.fail;
+ failMethod.call(object, msg);
+ }
+
+ function mirrorPropAsAssertion(name, method, message) {
+ if (arguments.length == 2) {
+ message = method;
+ method = name;
+ }
+
+ assert[name] = function (fake) {
+ verifyIsStub(fake);
+
+ var args = slice.call(arguments, 1);
+ var failed = false;
+
+ if (typeof method == "function") {
+ failed = !method(fake);
+ } else {
+ failed = typeof fake[method] == "function" ?
+ !fake[method].apply(fake, args) : !fake[method];
+ }
+
+ if (failed) {
+ failAssertion(this, fake.printf.apply(fake, [message].concat(args)));
+ } else {
+ assert.pass(name);
+ }
+ };
+ }
+
+ function exposedName(prefix, prop) {
+ return !prefix || /^fail/.test(prop) ? prop :
+ prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);
+ };
+
+ assert = {
+ failException: "AssertError",
+
+ fail: function fail(message) {
+ var error = new Error(message);
+ error.name = this.failException || assert.failException;
+
+ throw error;
+ },
+
+ pass: function pass(assertion) {},
+
+ callOrder: function assertCallOrder() {
+ verifyIsStub.apply(null, arguments);
+ var expected = "", actual = "";
+
+ if (!sinon.calledInOrder(arguments)) {
+ try {
+ expected = [].join.call(arguments, ", ");
+ var calls = slice.call(arguments);
+ var i = calls.length;
+ while (i) {
+ if (!calls[--i].called) {
+ calls.splice(i, 1);
+ }
+ }
+ actual = sinon.orderByFirstCall(calls).join(", ");
+ } catch (e) {
+ // If this fails, we'll just fall back to the blank string
+ }
+
+ failAssertion(this, "expected " + expected + " to be " +
+ "called in order but were called as " + actual);
+ } else {
+ assert.pass("callOrder");
+ }
+ },
+
+ callCount: function assertCallCount(method, count) {
+ verifyIsStub(method);
+
+ if (method.callCount != count) {
+ var msg = "expected %n to be called " + sinon.timesInWords(count) +
+ " but was called %c%C";
+ failAssertion(this, method.printf(msg));
+ } else {
+ assert.pass("callCount");
+ }
+ },
+
+ expose: function expose(target, options) {
+ if (!target) {
+ throw new TypeError("target is null or undefined");
+ }
+
+ var o = options || {};
+ var prefix = typeof o.prefix == "undefined" && "assert" || o.prefix;
+ var includeFail = typeof o.includeFail == "undefined" || !!o.includeFail;
+
+ for (var method in this) {
+ if (method != "export" && (includeFail || !/^(fail)/.test(method))) {
+ target[exposedName(prefix, method)] = this[method];
+ }
+ }
+
+ return target;
+ }
+ };
+
+ mirrorPropAsAssertion("called", "expected %n to have been called at least once but was never called");
+ mirrorPropAsAssertion("notCalled", function (spy) { return !spy.called; },
+ "expected %n to not have been called but was called %c%C");
+ mirrorPropAsAssertion("calledOnce", "expected %n to be called once but was called %c%C");
+ mirrorPropAsAssertion("calledTwice", "expected %n to be called twice but was called %c%C");
+ mirrorPropAsAssertion("calledThrice", "expected %n to be called thrice but was called %c%C");
+ mirrorPropAsAssertion("calledOn", "expected %n to be called with %1 as this but was called with %t");
+ mirrorPropAsAssertion("alwaysCalledOn", "expected %n to always be called with %1 as this but was called with %t");
+ mirrorPropAsAssertion("calledWithNew", "expected %n to be called with new");
+ mirrorPropAsAssertion("alwaysCalledWithNew", "expected %n to always be called with new");
+ mirrorPropAsAssertion("calledWith", "expected %n to be called with arguments %*%C");
+ mirrorPropAsAssertion("calledWithMatch", "expected %n to be called with match %*%C");
+ mirrorPropAsAssertion("alwaysCalledWith", "expected %n to always be called with arguments %*%C");
+ mirrorPropAsAssertion("alwaysCalledWithMatch", "expected %n to always be called with match %*%C");
+ mirrorPropAsAssertion("calledWithExactly", "expected %n to be called with exact arguments %*%C");
+ mirrorPropAsAssertion("alwaysCalledWithExactly", "expected %n to always be called with exact arguments %*%C");
+ mirrorPropAsAssertion("neverCalledWith", "expected %n to never be called with arguments %*%C");
+ mirrorPropAsAssertion("neverCalledWithMatch", "expected %n to never be called with match %*%C");
+ mirrorPropAsAssertion("threw", "%n did not throw exception%C");
+ mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
+
+ if (commonJSModule) {
+ module.exports = assert;
+ } else {
+ sinon.assert = assert;
+ }
+}(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
+
+return sinon;}.call(typeof window != 'undefined' && window || {}));
diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js
new file mode 100644
index 00000000000..4a30878df51
--- /dev/null
+++ b/core/js/tests/specHelper.js
@@ -0,0 +1,89 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+
+/**
+ * Simulate the variables that are normally set by PHP code
+ */
+
+// from core/js/config.php
+window.TESTING = true;
+window.oc_debug = true;
+window.datepickerFormatDate = 'MM d, yy';
+window.dayNames = [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday'
+];
+window.monthNames = [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December'
+];
+window.firstDay = 0;
+
+// setup dummy webroots
+window.oc_webroot = location.href + '/';
+window.oc_appswebroots = {
+ "files": window.oc_webroot + '/apps/files/'
+};
+
+// global setup for all tests
+(function setupTests() {
+ var fakeServer = null;
+
+ beforeEach(function() {
+ // enforce fake XHR, tests should not depend on the server and
+ // must use fake responses for expected calls
+ fakeServer = sinon.fakeServer.create();
+
+ // return fake translations as they might be requested for many test runs
+ fakeServer.respondWith(/\/index.php\/core\/ajax\/translations.php$/, [
+ 200, {
+ "Content-Type": "application/json"
+ },
+ '{"data": [], "plural_form": "nplurals=2; plural=(n != 1);"}'
+ ]);
+
+ // make it globally available, so that other tests can define
+ // custom responses
+ window.fakeServer = fakeServer;
+ });
+
+ afterEach(function() {
+ // uncomment this to log requests
+ // console.log(window.fakeServer.requests);
+ fakeServer.restore();
+ });
+})();
+
diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
new file mode 100644
index 00000000000..28c20a0642e
--- /dev/null
+++ b/core/js/tests/specs/coreSpec.js
@@ -0,0 +1,107 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+describe('Core base tests', function() {
+ describe('Base values', function() {
+ it('Sets webroots', function() {
+ expect(OC.webroot).toBeDefined();
+ expect(OC.appswebroots).toBeDefined();
+ });
+ });
+ describe('Link functions', function() {
+ var TESTAPP = 'testapp';
+ var TESTAPP_ROOT = OC.webroot + '/appsx/testapp';
+
+ beforeEach(function() {
+ OC.appswebroots[TESTAPP] = TESTAPP_ROOT;
+ });
+ afterEach(function() {
+ // restore original array
+ delete OC.appswebroots[TESTAPP];
+ });
+ it('Generates correct links for core apps', function() {
+ expect(OC.linkTo('core', 'somefile.php')).toEqual(OC.webroot + '/core/somefile.php');
+ expect(OC.linkTo('admin', 'somefile.php')).toEqual(OC.webroot + '/admin/somefile.php');
+ });
+ it('Generates correct links for regular apps', function() {
+ expect(OC.linkTo(TESTAPP, 'somefile.php')).toEqual(OC.webroot + '/index.php/apps/' + TESTAPP + '/somefile.php');
+ });
+ it('Generates correct remote links', function() {
+ expect(OC.linkToRemote('webdav')).toEqual(window.location.protocol + '//' + window.location.host + OC.webroot + '/remote.php/webdav');
+ });
+ describe('Images', function() {
+ it('Generates image path with given extension', function() {
+ var svgSupportStub = sinon.stub(window, 'SVGSupport', 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; });
+ 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; });
+ 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();
+ });
+ });
+ });
+ describe('Query string building', function() {
+ it('Returns empty string when empty params', function() {
+ expect(OC.buildQueryString()).toEqual('');
+ expect(OC.buildQueryString({})).toEqual('');
+ });
+ it('Encodes regular query strings', function() {
+ expect(OC.buildQueryString({
+ a: 'abc',
+ b: 'def'
+ })).toEqual('a=abc&b=def');
+ });
+ it('Encodes special characters', function() {
+ expect(OC.buildQueryString({
+ unicode: '汉字',
+ })).toEqual('unicode=%E6%B1%89%E5%AD%97');
+ expect(OC.buildQueryString({
+ b: 'spaace value',
+ 'space key': 'normalvalue',
+ 'slash/this': 'amp&ersand'
+ })).toEqual('b=spaace%20value&space%20key=normalvalue&slash%2Fthis=amp%26ersand');
+ });
+ it('Encodes data types and empty values', function() {
+ expect(OC.buildQueryString({
+ 'keywithemptystring': '',
+ 'keywithnull': null,
+ 'keywithundefined': null,
+ something: 'else'
+ })).toEqual('keywithemptystring=&keywithnull&keywithundefined&something=else');
+ expect(OC.buildQueryString({
+ 'booleanfalse': false,
+ 'booleantrue': true
+ })).toEqual('booleanfalse=false&booleantrue=true');
+ expect(OC.buildQueryString({
+ 'number': 123,
+ })).toEqual('number=123');
+ });
+ });
+});
diff --git a/core/l10n/ak.php b/core/l10n/ak.php
new file mode 100644
index 00000000000..09e36ba1786
--- /dev/null
+++ b/core/l10n/ak.php
@@ -0,0 +1,9 @@
+ 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=2; plural=n > 1;";
diff --git a/core/l10n/az.php b/core/l10n/az.php
new file mode 100644
index 00000000000..dbedde7e637
--- /dev/null
+++ b/core/l10n/az.php
@@ -0,0 +1,9 @@
+ 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/be.php b/core/l10n/be.php
index 2481806bcb9..19d330a44dd 100644
--- a/core/l10n/be.php
+++ b/core/l10n/be.php
@@ -1,10 +1,43 @@
"Нядзеля",
+"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("","","",""),
+"Error" => "Памылка",
+"The object type is not specified." => "Тып аб'екта не ўдакладняецца.",
"Advanced" => "Дасведчаны",
"Finish setup" => "Завяршыць ўстаноўку."
);
diff --git a/core/l10n/ca.php b/core/l10n/ca.php
index d24cb680653..d8076172cee 100644
--- a/core/l10n/ca.php
+++ b/core/l10n/ca.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Ordinador central de la base de dades",
"Finish setup" => "Acaba la configuració",
"Finishing …" => "Acabant...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Aquesta aplicació necessita tenir JavaScript activat per funcionar correctament. Activeu JavaScript i carregueu aquesta interfície de nou.",
"%s is available. Get more information on how to update." => "%s està disponible. Obtingueu més informació de com actualitzar.",
"Log out" => "Surt",
"Automatic logon rejected!" => "L'ha rebutjat l'acceditació automàtica!",
diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php
index 64ca7fd926f..38825aaeeac 100644
--- a/core/l10n/cs_CZ.php
+++ b/core/l10n/cs_CZ.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Hostitel databáze",
"Finish setup" => "Dokončit nastavení",
"Finishing …" => "Dokončuji...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Tato aplikace potřebuje pro svou správnou funkčnost mít povolený javascript. Prosím povolte JavaScript a znovu načtěte toto rozhraní.",
"%s is available. Get more information on how to update." => "%s je dostupná. Získejte více informací k postupu aktualizace.",
"Log out" => "Odhlásit se",
"Automatic logon rejected!" => "Automatické přihlášení odmítnuto!",
diff --git a/core/l10n/da.php b/core/l10n/da.php
index 22be60bf03b..9c7fdc889f8 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -102,6 +102,7 @@ $TRANSLATIONS = array(
"Edit tags" => "Rediger tags",
"Error loading dialog template: {error}" => "Fejl ved indlæsning dialog skabelon: {error}",
"No tags selected for deletion." => "Ingen tags markeret til sletning.",
+"Please reload the page." => "Genindlæs venligst siden",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Opdateringen blev ikke udført korrekt. Rapporter venligst problemet til ownClouds community.",
"The update was successful. Redirecting you to ownCloud now." => "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
"%s password reset" => "%s adgangskode nulstillet",
@@ -132,6 +133,7 @@ $TRANSLATIONS = array(
"Access forbidden" => "Adgang forbudt",
"Cloud not found" => "Sky ikke fundet",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Hej med dig\n\nDette blot for at lade dig vide, at %s har delt %s med dig.\nSe det her: %s\n\n",
+"The share will expire on %s." => "Delingen vil udløbe om %s.",
"Cheers!" => "Hej!",
"Security Warning" => "Sikkerhedsadvarsel",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Din PHP-version er sårbar overfor et NULL Byte angreb (CVE-2006-7243)",
@@ -151,7 +153,8 @@ $TRANSLATIONS = array(
"Database tablespace" => "Database tabelplads",
"Database host" => "Databasehost",
"Finish setup" => "Afslut opsætning",
-"Finishing …" => "Færdigbehandling ...",
+"Finishing …" => "Færdigbehandler ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Programmet forudsætter at JavaScript er aktiveret for at kunne afvikles korrekt. Aktiver JavaScript og genindlæs siden..",
"%s is available. Get more information on how to update." => "%s er tilgængelig. Få mere information om, hvordan du opdaterer.",
"Log out" => "Log ud",
"Automatic logon rejected!" => "Automatisk login afvist!",
@@ -164,6 +167,8 @@ $TRANSLATIONS = array(
"Log in" => "Log ind",
"Alternative Logins" => "Alternative logins",
"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Hej med dig,
Dette blot for at lade dig vide, at %s har delt \"%s\" med dig. Se det her!
Hej",
+"This ownCloud instance is currently in single user mode." => "Denne ownCloud instans er lige nu i enkeltbruger tilstand.",
+"This means only administrators can use the instance." => "Det betyder at det kun er administrator, som kan benytte ownCloud.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Kontakt systemadministratoren, hvis denne meddelelse fortsætter eller optrådte uventet.",
"Thank you for your patience." => "Tak for din tålmodighed.",
"Updating ownCloud to version %s, this may take a while." => "Opdatere Owncloud til version %s, dette kan tage et stykke tid.",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 7f1716bac63..9904aeb803c 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -1,6 +1,6 @@
"%s teilte »%s« mit Ihnen",
+"%s shared »%s« with you" => "%s teilte »%s« mit Dir",
"Couldn't send mail to following users: %s " => "Die E-Mail konnte nicht an folgende Benutzer gesendet werden: %s",
"Turned on maintenance mode" => "Wartungsmodus eingeschaltet",
"Turned off maintenance mode" => "Wartungsmodus ausgeschaltet",
@@ -52,8 +52,8 @@ $TRANSLATIONS = array(
"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.",
+"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)",
@@ -96,7 +96,7 @@ $TRANSLATIONS = array(
"Email sent" => "E-Mail wurde verschickt",
"Warning" => "Warnung",
"The object type is not specified." => "Der Objekttyp ist nicht angegeben.",
-"Enter new" => "Unbekannter Fehler, bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator",
+"Enter new" => "Neuen eingeben",
"Delete" => "Löschen",
"Add" => "Hinzufügen",
"Edit tags" => "Schlagwörter bearbeiten",
@@ -111,8 +111,8 @@ $TRANSLATIONS = array(
"Request failed! Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen! Hast Du darauf geachtet, dass Deine E-Mail/Dein Benutzername korrekt war?",
"You will receive a link to reset your password via Email." => "Du erhältst einen Link per E-Mail, um Dein Passwort zurückzusetzen.",
"Username" => "Benutzername",
-"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?" => "Ihre Dateien sind verschlüsselt. Sollten Sie keinen Wiederherstellungschlüssel aktiviert haben, gibt es keine Möglichkeit an Ihre Daten zu kommen, wenn das Passwort zurückgesetzt wird. Falls Sie sich nicht sicher sind, was Sie tun sollen, kontaktieren Sie bitte Ihren Administrator, bevor Sie fortfahren. Wollen Sie wirklich fortfahren?",
-"Yes, I really want to reset my password now" => "Ja, ich will mein Passwort jetzt wirklich zurücksetzen",
+"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?" => "Deine Dateien sind verschlüsselt. Solltest Du keinen Wiederherstellungschlüssel aktiviert haben, gibt es keine Möglichkeit an Deine Daten zu kommen, wenn das Passwort zurückgesetzt wird. Falls Du Dir nicht sicher bist, was Du tun sollst, kontaktiere bitte Deinen Administrator, bevor Du fortfährst. Willst Du wirklich fortfahren?",
+"Yes, I really want to reset my password now" => "Ja, ich will mein Passwort jetzt zurücksetzen",
"Reset" => "Zurücksetzen",
"Your password was reset" => "Dein Passwort wurde zurückgesetzt.",
"To login page" => "Zur Login-Seite",
@@ -128,7 +128,7 @@ $TRANSLATIONS = array(
"Error deleting tag(s)" => "Fehler beim Löschen des Schlagwortes bzw. der Schlagwörter",
"Error tagging" => "Fehler beim Hinzufügen der Schlagwörter",
"Error untagging" => "Fehler beim Entfernen der Schlagwörter",
-"Error favoriting" => "Fehler beim Hinzufügen zu den Favoriten",
+"Error favoriting" => "Fehler beim Favorisieren",
"Error unfavoriting" => "Fehler beim Entfernen aus den Favoriten",
"Access forbidden" => "Zugriff verboten",
"Cloud not found" => "Cloud nicht gefunden",
@@ -137,11 +137,11 @@ $TRANSLATIONS = array(
"Cheers!" => "Hallo!",
"Security Warning" => "Sicherheitswarnung",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Deine PHP Version ist durch die NULL Byte Attacke (CVE-2006-7243) angreifbar",
-"Please update your PHP installation to use %s securely." => "Bitte aktualisiere deine PHP-Installation um %s sicher nutzen zu können.",
+"Please update your PHP installation to use %s securely." => "Bitte aktualisiere Deine PHP-Installation um %s sicher nutzen zu können.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktiviere die PHP-Erweiterung für OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Konten zu übernehmen.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Dein Datenverzeichnis und Deine Dateien sind wahrscheinlich vom Internet aus erreichbar, weil die .htaccess-Datei nicht funktioniert.",
-"For information how to properly configure your server, please see the documentation." => "Für Informationen, wie du deinen Server richtig konfigurierst lese bitte die Dokumentation.",
+"For information how to properly configure your server, please see the documentation." => "Für Informationen, wie Du Deinen Server richtig konfigurierst, lies bitte die Dokumentation.",
"Create an admin account" => "Administrator-Konto anlegen",
"Advanced" => "Fortgeschritten",
"Data folder" => "Datenverzeichnis",
@@ -154,7 +154,8 @@ $TRANSLATIONS = array(
"Database host" => "Datenbank-Host",
"Finish setup" => "Installation abschließen",
"Finishing …" => "Abschließen ...",
-"%s is available. Get more information on how to update." => "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte aktiviere JavaScript und lade diese Schnittstelle neu.",
+"%s is available. Get more information on how to update." => "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.",
"Log out" => "Abmelden",
"Automatic logon rejected!" => "Automatischer Login zurückgewiesen!",
"If you did not change your password recently, your account may be compromised!" => "Wenn Du Dein Passwort nicht vor kurzem geändert hast, könnte Dein\nAccount kompromittiert sein!",
@@ -165,7 +166,7 @@ $TRANSLATIONS = array(
"remember" => "merken",
"Log in" => "Einloggen",
"Alternative Logins" => "Alternative Logins",
-"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Hallo,
wollte dich nur kurz informieren, dass %s gerade %s mit dir geteilt hat. Schau es dir an.
",
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Hallo,
wollte Dich nur kurz informieren, dass %s gerade %s mit Dir geteilt hat. Schau es Dir an.
",
"This ownCloud instance is currently in single user mode." => "Diese ownClound-Instanz befindet sich derzeit im Einzelbenutzermodus.",
"This means only administrators can use the instance." => "Dies bedeutet, dass diese Instanz nur von Administratoren genutzt werden kann.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Kontaktiere Deinen Systemadministrator, wenn diese Meldung dauerhaft oder unerwartet erscheint.",
diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php
index 4375512acd4..e9abf57a007 100644
--- a/core/l10n/de_DE.php
+++ b/core/l10n/de_DE.php
@@ -1,6 +1,6 @@
"%s geteilt »%s« mit Ihnen",
+"%s shared »%s« with you" => "%s hat »%s« mit Ihnen geteilt",
"Couldn't send mail to following users: %s " => "An folgende Benutzer konnte keine E-Mail gesendet werden: %s",
"Turned on maintenance mode" => "Wartungsmodus eingeschaltet ",
"Turned off maintenance mode" => "Wartungsmodus ausgeschaltet",
@@ -96,7 +96,7 @@ $TRANSLATIONS = array(
"Email sent" => "Email gesendet",
"Warning" => "Warnung",
"The object type is not specified." => "Der Objekttyp ist nicht angegeben.",
-"Enter new" => "c",
+"Enter new" => "Neuen eingeben",
"Delete" => "Löschen",
"Add" => "Hinzufügen",
"Edit tags" => "Schlagwörter bearbeiten",
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Datenbank-Host",
"Finish setup" => "Installation abschließen",
"Finishing …" => "Abschließen ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte aktivieren Sie JavaScript und laden Sie diese Schnittstelle neu.",
"%s is available. Get more information on how to update." => "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
"Log out" => "Abmelden",
"Automatic logon rejected!" => "Automatische Anmeldung verweigert!",
diff --git a/core/l10n/el.php b/core/l10n/el.php
index ab6dcff47b8..f726a232f0d 100644
--- a/core/l10n/el.php
+++ b/core/l10n/el.php
@@ -5,9 +5,14 @@ $TRANSLATIONS = array(
"Turned on maintenance mode" => "Η κατάσταση συντήρησης ενεργοποιήθηκε",
"Turned off maintenance mode" => "Η κατάσταση συντήρησης απενεργοποιήθηκε",
"Updated database" => "Ενημερωμένη βάση δεδομένων",
+"Updating filecache, this may take really long..." => "Ενημέρωση αποθηκευμένων αρχείων, αυτό μπορεί να πάρα πολύ ώρα...",
+"Updated filecache" => "Ενημέρωση αποθηκευμένων αρχείων",
+"... %d%% done ..." => "... %d%% ολοκληρώθηκαν ...",
"No image or file provided" => "Δεν δόθηκε εικόνα ή αρχείο",
"Unknown filetype" => "Άγνωστος τύπος αρχείου",
"Invalid image" => "Μη έγκυρη εικόνα",
+"No temporary profile picture available, try again" => "Δεν υπάρχει προσωρινή φωτογραφία προφίλ διαθέσιμη, δοκιμάστε ξανά",
+"No crop data provided" => "Δεν δόθηκαν δεδομένα περικοπής",
"Sunday" => "Κυριακή",
"Monday" => "Δευτέρα",
"Tuesday" => "Τρίτη",
@@ -30,25 +35,29 @@ $TRANSLATIONS = array(
"Settings" => "Ρυθμίσεις",
"seconds ago" => "δευτερόλεπτα πριν",
"_%n minute ago_::_%n minutes ago_" => array("%n λεπτό πριν","%n λεπτά πριν"),
-"_%n hour ago_::_%n hours ago_" => array("",""),
+"_%n hour ago_::_%n hours ago_" => array("%n ώρα πριν","%n ώρες πριν"),
"today" => "σήμερα",
"yesterday" => "χτες",
-"_%n day ago_::_%n days ago_" => array("",""),
+"_%n day ago_::_%n days ago_" => array("%n ημέρα πριν","%n ημέρες πριν"),
"last month" => "τελευταίο μήνα",
-"_%n month ago_::_%n months ago_" => array("",""),
+"_%n month ago_::_%n months ago_" => array("%n μήνας πριν","%n μήνες πριν"),
"months ago" => "μήνες πριν",
"last year" => "τελευταίο χρόνο",
"years ago" => "χρόνια πριν",
"Choose" => "Επιλέξτε",
+"Error loading file picker template: {error}" => "Σφάλμα κατά την φόρτωση προτύπου επιλογέα αρχείων: {σφάλμα}",
"Yes" => "Ναι",
"No" => "Όχι",
"Ok" => "Οκ",
-"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Error loading message template: {error}" => "Σφάλμα φόρτωσης προτύπου μηνυμάτων: {σφάλμα}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{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} επιλέχθησαν)",
"Shared" => "Κοινόχρηστα",
"Share" => "Διαμοιρασμός",
"Error" => "Σφάλμα",
@@ -90,8 +99,12 @@ $TRANSLATIONS = array(
"Delete" => "Διαγραφή",
"Add" => "Προσθήκη",
"Edit tags" => "Επεξεργασία ετικετών",
+"Error loading dialog template: {error}" => "Σφάλμα φόρτωσης προτύπου διαλόγων: {σφάλμα}",
+"No tags selected for deletion." => "Καμμία ετικέτα δεν επιλέχθηκε για διαγραφή.",
+"Please reload the page." => "Παρακαλώ επαναφορτώστε τη σελίδα.",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Η ενημέρωση ήταν ανεπιτυχής. Παρακαλώ στείλτε αναφορά στην κοινότητα ownCloud.",
"The update was successful. Redirecting you to ownCloud now." => "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud.",
+"%s password reset" => "%s επαναφορά κωδικού πρόσβασης",
"Use the following link to reset your password: {link}" => "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επανεκδόσετε τον κωδικό: {link}",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "Ο σύνδεσμος για να επανακτήσετε τον κωδικό σας έχει σταλεί στο email αν δεν το λάβετε μέσα σε ορισμένο διάστημα, ελέγξετε τους φακελλους σας spam/junk αν δεν είναι εκεί ρωτήστε τον τοπικό σας διαχειριστή ",
"Request failed! Did you make sure your email/username was right?" => "Η αίτηση απέτυχε! Βεβαιωθηκατε ότι το email σας / username ειναι σωστο? ",
@@ -109,10 +122,18 @@ $TRANSLATIONS = array(
"Apps" => "Εφαρμογές",
"Admin" => "Διαχειριστής",
"Help" => "Βοήθεια",
+"Error loading tags" => "Σφάλμα φόρτωσης ετικετών",
"Tag already exists" => "Υπάρχει ήδη η ετικέτα",
+"Error deleting tag(s)" => "Σφάλμα διαγραφής ετικέτας(ων)",
+"Error tagging" => "Σφάλμα προσθήκης ετικέτας",
+"Error untagging" => "Σφάλμα αφαίρεσης ετικέτας",
+"Error favoriting" => "Σφάλμα προσθήκης στα αγαπημένα",
+"Error unfavoriting" => "Σφάλμα αφαίρεσης από τα αγαπημένα",
"Access forbidden" => "Δεν επιτρέπεται η πρόσβαση",
"Cloud not found" => "Δεν βρέθηκε νέφος",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Γειά χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n",
"The share will expire on %s." => "Ο διαμοιρασμός θα λήξει σε %s.",
+"Cheers!" => "Χαιρετισμούς!",
"Security Warning" => "Προειδοποίηση Ασφαλείας",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Η PHP ειναι ευαλωτη στην NULL Byte επιθεση (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "Παρακαλώ ενημερώστε την εγκατάσταση της PHP ώστε να χρησιμοποιήσετε το %s με ασφάλεια.",
@@ -132,6 +153,7 @@ $TRANSLATIONS = array(
"Database host" => "Διακομιστής βάσης δεδομένων",
"Finish setup" => "Ολοκλήρωση εγκατάστασης",
"Finishing …" => "Ολοκλήρωση...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Αυτή η εφαρμογή απαιτεί η JavaScript να είναι ενεργοποιημένη για σωστή λειτουργία. Παρακαλώ ενεργοποιήστε τη JavaScript και επαναφορτώστε αυτή τη διεπαφή.",
"%s is available. Get more information on how to update." => "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.",
"Log out" => "Αποσύνδεση",
"Automatic logon rejected!" => "Απορρίφθηκε η αυτόματη σύνδεση!",
@@ -143,6 +165,9 @@ $TRANSLATIONS = array(
"remember" => "απομνημόνευση",
"Log in" => "Είσοδος",
"Alternative Logins" => "Εναλλακτικές Συνδέσεις",
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Γειά χαρά,
απλά σας ενημερώνω πως ο %s μοιράστηκε το »%s« με εσάς. Δείτε το!
",
+"This ownCloud instance is currently in single user mode." => "Αυτή η εγκατάσταση ownCloud είναι τώρα σε κατάσταση ενός χρήστη.",
+"This means only administrators can use the instance." => "Αυτό σημαίνει ότι μόνο διαχειριστές μπορούν να χρησιμοποιήσουν την εγκατάσταση.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Επικοινωνήστε με το διαχειριστή του συστήματος αν αυτό το μήνυμα συνεχίζει να εμφανίζεται ή εμφανίστηκε απρόσμενα.",
"Thank you for your patience." => "Σας ευχαριστούμε για την υπομονή σας.",
"Updating ownCloud to version %s, this may take a while." => "Ενημερώνοντας το ownCloud στην έκδοση %s,μπορεί να πάρει λίγο χρόνο.",
diff --git a/core/l10n/en_GB.php b/core/l10n/en_GB.php
index 3cad129d1c4..dc8b5b11fd5 100644
--- a/core/l10n/en_GB.php
+++ b/core/l10n/en_GB.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Database host",
"Finish setup" => "Finish setup",
"Finishing …" => "Finishing …",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface.",
"%s is available. Get more information on how to update." => "%s is available. Get more information on how to update.",
"Log out" => "Log out",
"Automatic logon rejected!" => "Automatic logon rejected!",
diff --git a/core/l10n/es.php b/core/l10n/es.php
index 72450ec4568..6bee4fabaf3 100644
--- a/core/l10n/es.php
+++ b/core/l10n/es.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Host de la base de datos",
"Finish setup" => "Completar la instalación",
"Finishing …" => "Finalizando...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Esta aplicación requiere que se habilite JavaScript para su correcta operación. Por favor habilite JavaScript y vuelva a cargar esta interfaz.",
"%s is available. Get more information on how to update." => "%s esta disponible. Obtener mas información de como actualizar.",
"Log out" => "Salir",
"Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!",
diff --git a/core/l10n/es_CL.php b/core/l10n/es_CL.php
new file mode 100644
index 00000000000..819cc68a1c9
--- /dev/null
+++ b/core/l10n/es_CL.php
@@ -0,0 +1,12 @@
+ "Configuración",
+"_%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("",""),
+"Password" => "Clave",
+"Username" => "Usuario"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/es_MX.php b/core/l10n/es_MX.php
index ffcdde48d47..776233c1ab5 100644
--- a/core/l10n/es_MX.php
+++ b/core/l10n/es_MX.php
@@ -1,9 +1,178 @@
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("","")
+"%s shared »%s« with you" => "%s ha compartido »%s« contigo",
+"Couldn't send mail to following users: %s " => "No se pudo enviar el mensaje a los siguientes usuarios: %s",
+"Turned on maintenance mode" => "Modo mantenimiento activado",
+"Turned off maintenance mode" => "Modo mantenimiento desactivado",
+"Updated database" => "Base de datos actualizada",
+"Updating filecache, this may take really long..." => "Actualizando caché de archivos, esto puede tardar bastante tiempo...",
+"Updated filecache" => "Caché de archivos actualizada",
+"... %d%% done ..." => "... %d%% hecho ...",
+"No image or file provided" => "No se especificó ningún archivo o imagen",
+"Unknown filetype" => "Tipo de archivo desconocido",
+"Invalid image" => "Imagen inválida",
+"No temporary profile picture available, try again" => "No hay disponible una imagen temporal de perfil, pruebe de nuevo",
+"No crop data provided" => "No se proporcionó datos del recorte",
+"Sunday" => "Domingo",
+"Monday" => "Lunes",
+"Tuesday" => "Martes",
+"Wednesday" => "Miércoles",
+"Thursday" => "Jueves",
+"Friday" => "Viernes",
+"Saturday" => "Sábado",
+"January" => "Enero",
+"February" => "Febrero",
+"March" => "Marzo",
+"April" => "Abril",
+"May" => "Mayo",
+"June" => "Junio",
+"July" => "Julio",
+"August" => "Agosto",
+"September" => "Septiembre",
+"October" => "Octubre",
+"November" => "Noviembre",
+"December" => "Diciembre",
+"Settings" => "Ajustes",
+"seconds ago" => "segundos antes",
+"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"),
+"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"),
+"today" => "hoy",
+"yesterday" => "ayer",
+"_%n day ago_::_%n days ago_" => array("Hace %n día","Hace %n días"),
+"last month" => "el mes pasado",
+"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"),
+"months ago" => "meses antes",
+"last year" => "el año pasado",
+"years ago" => "años antes",
+"Choose" => "Seleccionar",
+"Error loading file picker template: {error}" => "Error cargando plantilla del seleccionador de archivos: {error}",
+"Yes" => "Sí",
+"No" => "No",
+"Ok" => "Aceptar",
+"Error loading message template: {error}" => "Error cargando plantilla del mensaje: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflicto de archivo","{count} conflictos de archivo"),
+"One file conflict" => "Un conflicto de archivo",
+"Which files do you want to keep?" => "¿Que archivos deseas mantener?",
+"If you select both versions, the copied file will have a number added to its name." => "Si seleccionas ambas versiones, el archivo copiado tendrá añadido un número en su nombre.",
+"Cancel" => "Cancelar",
+"Continue" => "Continuar",
+"(all selected)" => "(todos seleccionados)",
+"({count} selected)" => "({count} seleccionados)",
+"Error loading file exists template" => "Error cargando plantilla de archivo existente",
+"Shared" => "Compartido",
+"Share" => "Compartir",
+"Error" => "Error",
+"Error while sharing" => "Error al compartir",
+"Error while unsharing" => "Error al dejar de compartir",
+"Error while changing permissions" => "Error al cambiar permisos",
+"Shared with you and the group {group} by {owner}" => "Compartido contigo y el grupo {group} por {owner}",
+"Shared with you by {owner}" => "Compartido contigo por {owner}",
+"Share with user or group …" => "Compartido con el usuario o con el grupo …",
+"Share link" => "Enlace compartido",
+"Password protect" => "Protección con contraseña",
+"Password" => "Contraseña",
+"Allow Public Upload" => "Permitir Subida Pública",
+"Email link to person" => "Enviar enlace por correo electrónico a una persona",
+"Send" => "Enviar",
+"Set expiration date" => "Establecer fecha de caducidad",
+"Expiration date" => "Fecha de caducidad",
+"Share via email:" => "Compartir por correo electrónico:",
+"No people found" => "No se encontró gente",
+"group" => "grupo",
+"Resharing is not allowed" => "No se permite compartir de nuevo",
+"Shared in {item} with {user}" => "Compartido en {item} con {user}",
+"Unshare" => "Dejar de compartir",
+"notify by email" => "notificar al usuario por correo electrónico",
+"can edit" => "puede editar",
+"access control" => "control de acceso",
+"create" => "crear",
+"update" => "actualizar",
+"delete" => "eliminar",
+"share" => "compartir",
+"Password protected" => "Protegido con contraseña",
+"Error unsetting expiration date" => "Error eliminando fecha de caducidad",
+"Error setting expiration date" => "Error estableciendo fecha de caducidad",
+"Sending ..." => "Enviando...",
+"Email sent" => "Correo electrónico enviado",
+"Warning" => "Precaución",
+"The object type is not specified." => "El tipo de objeto no está especificado.",
+"Enter new" => "Ingresar nueva",
+"Delete" => "Eliminar",
+"Add" => "Agregar",
+"Edit tags" => "Editar etiquetas",
+"Error loading dialog template: {error}" => "Error cargando plantilla de diálogo: {error}",
+"No tags selected for deletion." => "No hay etiquetas seleccionadas para borrar.",
+"Please reload the page." => "Vuelva a cargar la página.",
+"The update was unsuccessful. Please report this issue to the ownCloud community." => "La actualización ha fracasado. Por favor, informe de este problema a la Comunidad de ownCloud.",
+"The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.",
+"%s password reset" => "%s restablecer contraseña",
+"Use the following link to reset your password: {link}" => "Utilice el siguiente enlace para restablecer su contraseña: {link}",
+"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico. Si no lo recibe en un plazo razonable de tiempo, revise su carpeta de spam / correo no deseado. Si no está allí, pregunte a su administrador local.",
+"Request failed! Did you make sure your email/username was right?" => "La petición ha fallado! ¿Está seguro de que su dirección de correo electrónico o nombre de usuario era correcto?",
+"You will receive a link to reset your password via Email." => "Recibirá un enlace por correo electrónico para restablecer su contraseña",
+"Username" => "Nombre de usuario",
+"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?" => "Sus archivos están cifrados. Si no ha habilitado la clave de recurperación, no habrá forma de recuperar sus datos luego de que la contraseña sea reseteada. Si no está seguro de qué hacer, contacte a su administrador antes de continuar. ¿Realmente desea continuar?",
+"Yes, I really want to reset my password now" => "Sí. Realmente deseo resetear mi contraseña ahora",
+"Reset" => "Reiniciar",
+"Your password was reset" => "Su contraseña fue restablecida",
+"To login page" => "A la página de inicio de sesión",
+"New password" => "Nueva contraseña",
+"Reset password" => "Restablecer contraseña",
+"Personal" => "Personal",
+"Users" => "Usuarios",
+"Apps" => "Aplicaciones",
+"Admin" => "Administración",
+"Help" => "Ayuda",
+"Error loading tags" => "Error cargando etiquetas.",
+"Tag already exists" => "La etiqueta ya existe",
+"Error deleting tag(s)" => "Error borrando etiqueta(s)",
+"Error tagging" => "Error al etiquetar",
+"Error untagging" => "Error al quitar etiqueta",
+"Error favoriting" => "Error al marcar como favorito",
+"Error unfavoriting" => "Error al quitar como favorito",
+"Access forbidden" => "Acceso denegado",
+"Cloud not found" => "No se encuentra la nube",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Hola:\n\nTan solo queremos informarte que %s compartió %s contigo.\nMíralo aquí: %s\n\n",
+"The share will expire on %s." => "El objeto dejará de ser compartido el %s.",
+"Cheers!" => "¡Saludos!",
+"Security Warning" => "Advertencia de seguridad",
+"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Su versión de PHP es vulnerable al ataque de Byte NULL (CVE-2006-7243)",
+"Please update your PHP installation to use %s securely." => "Por favor, actualice su instalación PHP para usar %s con seguridad.",
+"No secure random number generator is available, please enable the PHP OpenSSL extension." => "No está disponible un generador de números aleatorios seguro, por favor habilite la extensión OpenSSL de PHP.",
+"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sin un generador de números aleatorios seguro, un atacante podría predecir los tokens de restablecimiento de contraseñas y tomar el control de su cuenta.",
+"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Su directorio de datos y sus archivos probablemente sean accesibles a través de internet ya que el archivo .htaccess no funciona.",
+"For information how to properly configure your server, please see the documentation." => "Para información de cómo configurar apropiadamente su servidor, por favor vea la documentación.",
+"Create an admin account" => "Crear una cuenta de administrador",
+"Advanced" => "Avanzado",
+"Data folder" => "Directorio de datos",
+"Configure the database" => "Configurar la base de datos",
+"will be used" => "se utilizarán",
+"Database user" => "Usuario de la base de datos",
+"Database password" => "Contraseña de la base de datos",
+"Database name" => "Nombre de la base de datos",
+"Database tablespace" => "Espacio de tablas de la base de datos",
+"Database host" => "Host de la base de datos",
+"Finish setup" => "Completar la instalación",
+"Finishing …" => "Finalizando …",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Esta aplicación requiere que se habilite JavaScript para su correcta operación. Por favor habilite JavaScript y vuelva a cargar esta interfaz.",
+"%s is available. Get more information on how to update." => "%s esta disponible. Obtener mas información de como actualizar.",
+"Log out" => "Salir",
+"Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!",
+"If you did not change your password recently, your account may be compromised!" => "Si no ha cambiado su contraseña recientemente, ¡puede que su cuenta esté comprometida!",
+"Please change your password to secure your account again." => "Por favor cambie su contraseña para asegurar su cuenta nuevamente.",
+"Server side authentication failed!" => "La autenticación a fallado en el servidor.",
+"Please contact your administrator." => "Por favor, contacte con el administrador.",
+"Lost your password?" => "¿Ha perdido su contraseña?",
+"remember" => "recordar",
+"Log in" => "Entrar",
+"Alternative Logins" => "Accesos Alternativos",
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Hola:
tan solo queremos informarte que %s compartió «%s» contigo. ¡Míralo acá!
",
+"This ownCloud instance is currently in single user mode." => "Esta instalación de ownCloud se encuentra en modo de usuario único.",
+"This means only administrators can use the instance." => "Esto quiere decir que solo un administrador puede usarla.",
+"Contact your system administrator if this message persists or appeared unexpectedly." => "Contacte con su administrador de sistemas si este mensaje persiste o aparece de forma inesperada.",
+"Thank you for your patience." => "Gracias por su paciencia.",
+"Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo.",
+"This ownCloud instance is currently being updated, which may take a while." => "Esta versión de ownCloud se está actualizando, esto puede demorar un tiempo.",
+"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php
index a019124d092..53928510e1d 100644
--- a/core/l10n/et_EE.php
+++ b/core/l10n/et_EE.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Andmebaasi host",
"Finish setup" => "Lõpeta seadistamine",
"Finishing …" => "Lõpetamine ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "See rakendus vajab toimimiseks JavaScripti. Palun luba JavaScript ning laadi see leht uuesti.",
"%s is available. Get more information on how to update." => "%s on saadaval. Vaata lähemalt kuidas uuendada.",
"Log out" => "Logi välja",
"Automatic logon rejected!" => "Automaatne sisselogimine lükati tagasi!",
diff --git a/core/l10n/eu.php b/core/l10n/eu.php
index 3ad11a62cd8..ff746065457 100644
--- a/core/l10n/eu.php
+++ b/core/l10n/eu.php
@@ -1,6 +1,18 @@
"%s-ek »%s« zurekin partekatu du",
+"Couldn't send mail to following users: %s " => "Ezin izan da posta bidali hurrengo erabiltzaileei: %s",
+"Turned on maintenance mode" => "Mantenu modua gaitu da",
+"Turned off maintenance mode" => "Mantenu modua desgaitu da",
+"Updated database" => "Datu basea eguneratu da",
+"Updating filecache, this may take really long..." => "Fitxategi katxea eguneratzen, honek oso denbora luzea har dezake...",
+"Updated filecache" => "Fitxategi katxea eguneratu da",
+"... %d%% done ..." => "... %d%% egina ...",
+"No image or file provided" => "Ez da irudi edo fitxategirik zehaztu",
+"Unknown filetype" => "Fitxategi mota ezezaguna",
+"Invalid image" => "Baliogabeko irudia",
+"No temporary profile picture available, try again" => "Ez dago behin-behineko profil irudirik, saiatu berriro",
+"No crop data provided" => "Ez da ebaketarako daturik zehaztu",
"Sunday" => "Igandea",
"Monday" => "Astelehena",
"Tuesday" => "Asteartea",
@@ -33,11 +45,20 @@ $TRANSLATIONS = array(
"last year" => "joan den urtean",
"years ago" => "urte",
"Choose" => "Aukeratu",
+"Error loading file picker template: {error}" => "Errorea fitxategi hautatzaile txantiloiak kargatzerakoan: {error}",
"Yes" => "Bai",
"No" => "Ez",
"Ok" => "Ados",
-"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Error loading message template: {error}" => "Errorea mezu txantiloia kargatzean: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("fitxategi {count}ek konfliktua sortu du","{count} fitxategik konfliktua sortu dute"),
+"One file conflict" => "Fitxategi batek konfliktua sortu du",
+"Which files do you want to keep?" => "Ze fitxategi mantendu nahi duzu?",
+"If you select both versions, the copied file will have a number added to its name." => "Bi bertsioak hautatzen badituzu, kopiatutako fitxategiaren izenean zenbaki bat atxikituko zaio.",
"Cancel" => "Ezeztatu",
+"Continue" => "Jarraitu",
+"(all selected)" => "(denak hautatuta)",
+"({count} selected)" => "({count} hautatuta)",
+"Error loading file exists template" => "Errorea fitxategia existitzen da txantiloiak kargatzerakoan",
"Shared" => "Elkarbanatuta",
"Share" => "Elkarbanatu",
"Error" => "Errorea",
@@ -46,6 +67,8 @@ $TRANSLATIONS = array(
"Error while changing permissions" => "Errore bat egon da baimenak aldatzean",
"Shared with you and the group {group} by {owner}" => "{owner}-k zu eta {group} taldearekin elkarbanatuta",
"Shared with you by {owner}" => "{owner}-k zurekin elkarbanatuta",
+"Share with user or group …" => "Elkarbanatu erabiltzaile edo taldearekin...",
+"Share link" => "Elkarbanatu lotura",
"Password protect" => "Babestu pasahitzarekin",
"Password" => "Pasahitza",
"Allow Public Upload" => "Gaitu igotze publikoa",
@@ -59,6 +82,7 @@ $TRANSLATIONS = array(
"Resharing is not allowed" => "Berriz elkarbanatzea ez dago baimendua",
"Shared in {item} with {user}" => "{user}ekin {item}-n elkarbanatuta",
"Unshare" => "Ez elkarbanatu",
+"notify by email" => "jakinarazi eposta bidez",
"can edit" => "editatu dezake",
"access control" => "sarrera kontrola",
"create" => "sortu",
@@ -72,8 +96,13 @@ $TRANSLATIONS = array(
"Email sent" => "Eposta bidalia",
"Warning" => "Abisua",
"The object type is not specified." => "Objetu mota ez dago zehaztuta.",
+"Enter new" => "Sartu berria",
"Delete" => "Ezabatu",
"Add" => "Gehitu",
+"Edit tags" => "Editatu etiketak",
+"Error loading dialog template: {error}" => "Errorea elkarrizketa txantiloia kargatzean: {errorea}",
+"No tags selected for deletion." => "Ez dira ezabatzeko etiketak hautatu.",
+"Please reload the page." => "Mesedez birkargatu orria.",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Eguneraketa ez da ongi egin. Mesedez egin arazoaren txosten bat ownCloud komunitatearentzako.",
"The update was successful. Redirecting you to ownCloud now." => "Eguneraketa ongi egin da. Orain zure ownClouderea berbideratua izango zara.",
"%s password reset" => "%s pasahitza berrezarri",
@@ -84,6 +113,7 @@ $TRANSLATIONS = array(
"Username" => "Erabiltzaile izena",
"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?" => "Zure fitxategiak enkriptaturik daude. Ez baduzu berreskuratze gakoa gaitzen pasahitza berrabiaraztean ez da zure fitxategiak berreskuratzeko modurik egongo. Zer egin ziur ez bazaude kudeatzailearekin harremanetan ipini jarraitu aurretik. Ziur zaude aurrera jarraitu nahi duzula?",
"Yes, I really want to reset my password now" => "Bai, nire pasahitza orain berrabiarazi nahi dut",
+"Reset" => "Berrezarri",
"Your password was reset" => "Zure pasahitza berrezarri da",
"To login page" => "Sarrera orrira",
"New password" => "Pasahitz berria",
@@ -93,8 +123,18 @@ $TRANSLATIONS = array(
"Apps" => "Aplikazioak",
"Admin" => "Admin",
"Help" => "Laguntza",
+"Error loading tags" => "Errore bat izan da etiketak kargatzearkoan.",
+"Tag already exists" => "Etiketa dagoeneko existitzen da",
+"Error deleting tag(s)" => "Errore bat izan da etiketa(k) ezabatzerakoan",
+"Error tagging" => "Errorea etiketa ezartzerakoan",
+"Error untagging" => "Errorea etiketa kentzerakoan",
+"Error favoriting" => "Errorea gogokoetara gehitzerakoan",
+"Error unfavoriting" => "Errorea gogokoetatik kentzerakoan",
"Access forbidden" => "Sarrera debekatuta",
"Cloud not found" => "Ez da hodeia aurkitu",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n",
+"The share will expire on %s." => "Elkarbanaketa %s-n iraungiko da.",
+"Cheers!" => "Ongi izan!",
"Security Warning" => "Segurtasun abisua",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Zure PHP bertsioa NULL Byte erasoak (CVE-2006-7243) mendera dezake.",
"Please update your PHP installation to use %s securely." => "Mesedez eguneratu zure PHP instalazioa %s seguru erabiltzeko",
@@ -113,15 +153,26 @@ $TRANSLATIONS = array(
"Database tablespace" => "Datu basearen taula-lekua",
"Database host" => "Datubasearen hostalaria",
"Finish setup" => "Bukatu konfigurazioa",
+"Finishing …" => "Bukatzen...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Aplikazio honek ongi funtzionatzeko JavaScript gaitua behar du. Mesedez gaitu JavaScript eta birkargatu interfaze hau.",
"%s is available. Get more information on how to update." => "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.",
"Log out" => "Saioa bukatu",
"Automatic logon rejected!" => "Saio hasiera automatikoa ez onartuta!",
"If you did not change your password recently, your account may be compromised!" => "Zure pasahitza orain dela gutxi ez baduzu aldatu, zure kontua arriskuan egon daiteke!",
"Please change your password to secure your account again." => "Mesedez aldatu zure pasahitza zure kontua berriz segurtatzeko.",
+"Server side authentication failed!" => "Zerbitzari aldeko autentifikazioak huts egin du!",
+"Please contact your administrator." => "Mesedez jarri harremetan zure administradorearekin.",
"Lost your password?" => "Galdu duzu pasahitza?",
"remember" => "gogoratu",
"Log in" => "Hasi saioa",
"Alternative Logins" => "Beste erabiltzaile izenak",
-"Updating ownCloud to version %s, this may take a while." => "ownCloud %s bertsiora eguneratzen, denbora har dezake."
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Kaixo
%s-ek %s zurekin partekatu duela jakin dezazun. \nIkusi ezazu
",
+"This ownCloud instance is currently in single user mode." => "ownCloud instantzia hau erabiltzaile bakar moduan dago.",
+"This means only administrators can use the instance." => "Honek administradoreak bakarrik erabili dezakeela esan nahi du.",
+"Contact your system administrator if this message persists or appeared unexpectedly." => "Jarri harremanetan zure sistema administratzailearekin mezu hau irauten badu edo bat-batean agertu bada.",
+"Thank you for your patience." => "Milesker zure patzientziagatik.",
+"Updating ownCloud to version %s, this may take a while." => "ownCloud %s bertsiora eguneratzen, denbora har dezake.",
+"This ownCloud instance is currently being updated, which may take a while." => "ownCloud instantzia hau eguneratzen ari da, honek denbora har dezake.",
+"Please reload this page after a short time to continue using ownCloud." => "Mesedez birkargatu orri hau denbora gutxi barru ownCloud erabiltzen jarraitzeko."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php
index b187c5689fa..4109ea8e895 100644
--- a/core/l10n/fi_FI.php
+++ b/core/l10n/fi_FI.php
@@ -143,6 +143,7 @@ $TRANSLATIONS = array(
"Database host" => "Tietokantapalvelin",
"Finish setup" => "Viimeistele asennus",
"Finishing …" => "Valmistellaan…",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Tämä sovellus vaatii toimiakseen JavaScriptin käyttöä. Ota JavaScript käyttöön ja päivitä tämä käyttöliittymä.",
"%s is available. Get more information on how to update." => "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.",
"Log out" => "Kirjaudu ulos",
"Automatic logon rejected!" => "Automaattinen sisäänkirjautuminen hylättiin!",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index c58305ea7a9..d73355a4e2c 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Serveur de la base de données",
"Finish setup" => "Terminer l'installation",
"Finishing …" => "En cours de finalisation...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Cette application nécessite que JavaScript soit activé pour fonctionner correctement. Veuillez activer JavaScript puis charger à nouveau cette interface.",
"%s is available. Get more information on how to update." => "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.",
"Log out" => "Se déconnecter",
"Automatic logon rejected!" => "Connexion automatique rejetée !",
diff --git a/core/l10n/gl.php b/core/l10n/gl.php
index 449ffad03f4..7303807e519 100644
--- a/core/l10n/gl.php
+++ b/core/l10n/gl.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Servidor da base de datos",
"Finish setup" => "Rematar a configuración",
"Finishing …" => "Rematado ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Este aplicativo require que o JavaScript estea activado para unha operativa correcta. Active o JavaScript e volva a cargar a interface.",
"%s is available. Get more information on how to update." => "%s está dispoñíbel. Obteña máis información sobre como actualizar.",
"Log out" => "Desconectar",
"Automatic logon rejected!" => "Rexeitouse a entrada automática",
diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php
index 991ae3a838d..b0b5588dfc8 100644
--- a/core/l10n/hu_HU.php
+++ b/core/l10n/hu_HU.php
@@ -102,6 +102,7 @@ $TRANSLATIONS = array(
"Edit tags" => "Címkék szerkesztése",
"Error loading dialog template: {error}" => "Hiba a párbeszédpanel-sablon betöltésekor: {error}",
"No tags selected for deletion." => "Nincs törlésre kijelölt címke.",
+"Please reload the page." => "Kérlek tölts be újra az oldalt",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "A frissítés nem sikerült. Kérem értesítse erről a problémáról az ownCloud közösséget.",
"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",
@@ -132,6 +133,7 @@ $TRANSLATIONS = array(
"Access forbidden" => "A hozzáférés nem engedélyezett",
"Cloud not found" => "A felhő nem található",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Szia!\\n\n\\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: %s.\\n\nItt tudod megnézni: %s\\n\n\\n",
+"The share will expire on %s." => "A megosztás lejár ekkor %s",
"Cheers!" => "Üdv.",
"Security Warning" => "Biztonsági figyelmeztetés",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Az Ön PHP verziója sebezhető a NULL bájtos támadással szemben (CVE-2006-7243)",
@@ -152,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Adatbázis szerver",
"Finish setup" => "A beállítások befejezése",
"Finishing …" => "Befejezés ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Az alkalmazás megfelelő működéséhez szükség van JavaScript-re. Engedélyezd a JavaScript-et és töltsd újra az interfészt.",
"%s is available. Get more information on how to update." => "%s rendelkezésre áll. További információ a frissítéshez.",
"Log out" => "Kilépés",
"Automatic logon rejected!" => "Az automatikus bejelentkezés sikertelen!",
@@ -164,6 +167,8 @@ $TRANSLATIONS = array(
"Log in" => "Bejelentkezés",
"Alternative Logins" => "Alternatív bejelentkezés",
"Hey there,
just letting you know that %s shared »%s« with you. View it!
",
+"This ownCloud instance is currently in single user mode." => "Az Owncloud frissítés elezdődött egy felhasználós módban.",
+"This means only administrators can use the instance." => "Ez azt jelenti, hogy csak az adminisztrátor használhatja ezt a példányt",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Ha ezt az üzenetet már többször látod akkor keresd meg a rendszer adminját.",
"Thank you for your patience." => "Köszönjük a türelmét.",
"Updating ownCloud to version %s, this may take a while." => "Owncloud frissítés a %s verzióra folyamatban. Kis türelmet.",
diff --git a/core/l10n/ia.php b/core/l10n/ia.php
index 301bb132827..de929650f02 100644
--- a/core/l10n/ia.php
+++ b/core/l10n/ia.php
@@ -30,6 +30,9 @@ $TRANSLATIONS = array(
"Error" => "Error",
"Password" => "Contrasigno",
"Send" => "Invia",
+"group" => "gruppo",
+"Unshare" => "Leva compartir",
+"can edit" => "pote modificar",
"Delete" => "Deler",
"Add" => "Adder",
"Username" => "Nomine de usator",
diff --git a/core/l10n/id.php b/core/l10n/id.php
index aca262a8f30..2fa7ae8e3c5 100644
--- a/core/l10n/id.php
+++ b/core/l10n/id.php
@@ -1,5 +1,18 @@
"%s membagikan »%s« dengan anda",
+"Couldn't send mail to following users: %s " => "Tidak dapat mengirim Email ke pengguna berikut: %s",
+"Turned on maintenance mode" => "Hidupkan mode perawatan",
+"Turned off maintenance mode" => "Matikan mode perawatan",
+"Updated database" => "Basis data terbaru",
+"Updating filecache, this may take really long..." => "Memperbarui filecache, mungkin memerlukan waktu sangat lama...",
+"Updated filecache" => "Filecache terbaru",
+"... %d%% done ..." => "... %d%% selesai ...",
+"No image or file provided" => "Tidak ada gambar atau file yang disediakan",
+"Unknown filetype" => "Tipe berkas tak dikenal",
+"Invalid image" => "Gambar tidak sah",
+"No temporary profile picture available, try again" => "Tidak ada gambar profil sementara yang tersedia, coba lagi",
+"No crop data provided" => "Tidak ada data krop tersedia",
"Sunday" => "Minggu",
"Monday" => "Senin",
"Tuesday" => "Selasa",
@@ -19,37 +32,49 @@ $TRANSLATIONS = array(
"October" => "Oktober",
"November" => "November",
"December" => "Desember",
-"Settings" => "Setelan",
+"Settings" => "Pengaturan",
"seconds ago" => "beberapa detik yang lalu",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
+"_%n minute ago_::_%n minutes ago_" => array("%n menit yang lalu"),
+"_%n hour ago_::_%n hours ago_" => array("%n jam yang lalu"),
"today" => "hari ini",
"yesterday" => "kemarin",
-"_%n day ago_::_%n days ago_" => array(""),
+"_%n day ago_::_%n days ago_" => array("%n hari yang lalu"),
"last month" => "bulan kemarin",
-"_%n month ago_::_%n months ago_" => array(""),
+"_%n month ago_::_%n months ago_" => array("%n bulan yang lalu"),
"months ago" => "beberapa bulan lalu",
"last year" => "tahun kemarin",
"years ago" => "beberapa tahun lalu",
"Choose" => "Pilih",
+"Error loading file picker template: {error}" => "Galat memuat templat berkas pemilih: {error}",
"Yes" => "Ya",
"No" => "Tidak",
"Ok" => "Oke",
-"_{count} file conflict_::_{count} file conflicts_" => array(""),
+"Error loading message template: {error}" => "Galat memuat templat pesan: {error}",
+"_{count} file conflict_::_{count} file conflicts_" => array("{count} berkas konflik"),
+"One file conflict" => "Satu berkas konflik",
+"Which files do you want to keep?" => "Berkas mana yang ingin anda pertahankan?",
+"If you select both versions, the copied file will have a number added to its name." => "Jika anda memilih kedua versi, berkas yang disalin akan memiliki nomor yang ditambahkan sesuai namanya.",
"Cancel" => "Batal",
+"Continue" => "Lanjutkan",
+"(all selected)" => "(semua terpilih)",
+"({count} selected)" => "({count} terpilih)",
+"Error loading file exists template" => "Galat memuat templat berkas yang sudah ada",
"Shared" => "Dibagikan",
"Share" => "Bagikan",
"Error" => "Galat",
"Error while sharing" => "Galat ketika membagikan",
"Error while unsharing" => "Galat ketika membatalkan pembagian",
"Error while changing permissions" => "Galat ketika mengubah izin",
-"Shared with you and the group {group} by {owner}" => "Dibagikan dengan Anda dan grup {group} oleh {owner}",
-"Shared with you by {owner}" => "Dibagikan dengan Anda oleh {owner}",
+"Shared with you and the group {group} by {owner}" => "Dibagikan dengan anda dan grup {group} oleh {owner}",
+"Shared with you by {owner}" => "Dibagikan dengan anda oleh {owner}",
+"Share with user or group …" => "Bagikan dengan pengguna atau grup ...",
+"Share link" => "Bagikan tautan",
"Password protect" => "Lindungi dengan sandi",
"Password" => "Sandi",
+"Allow Public Upload" => "Izinkan Unggahan Publik",
"Email link to person" => "Emailkan tautan ini ke orang",
"Send" => "Kirim",
-"Set expiration date" => "Setel tanggal kedaluwarsa",
+"Set expiration date" => "Atur tanggal kedaluwarsa",
"Expiration date" => "Tanggal kedaluwarsa",
"Share via email:" => "Bagian lewat email:",
"No people found" => "Tidak ada orang ditemukan",
@@ -57,42 +82,66 @@ $TRANSLATIONS = array(
"Resharing is not allowed" => "Berbagi ulang tidak diizinkan",
"Shared in {item} with {user}" => "Dibagikan dalam {item} dengan {user}",
"Unshare" => "Batalkan berbagi",
-"can edit" => "dapat mengedit",
+"notify by email" => "notifikasi via email",
+"can edit" => "dapat sunting",
"access control" => "kontrol akses",
"create" => "buat",
"update" => "perbarui",
"delete" => "hapus",
"share" => "bagikan",
-"Password protected" => "Dilindungi sandi",
+"Password protected" => "Sandi dilindungi",
"Error unsetting expiration date" => "Galat ketika menghapus tanggal kedaluwarsa",
-"Error setting expiration date" => "Galat ketika menyetel tanggal kedaluwarsa",
+"Error setting expiration date" => "Galat ketika mengatur tanggal kedaluwarsa",
"Sending ..." => "Mengirim ...",
"Email sent" => "Email terkirim",
"Warning" => "Peringatan",
"The object type is not specified." => "Tipe objek tidak ditentukan.",
+"Enter new" => "Masukkan baru",
"Delete" => "Hapus",
"Add" => "Tambah",
+"Edit tags" => "Sunting tag",
+"Error loading dialog template: {error}" => "Galat memuat templat dialog: {error}",
+"No tags selected for deletion." => "Tidak ada tag yang terpilih untuk dihapus.",
+"Please reload the page." => "Silakan muat ulang halaman.",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Pembaruan gagal. Silakan laporkan masalah ini ke komunitas ownCloud.",
"The update was successful. Redirecting you to ownCloud now." => "Pembaruan sukses. Anda akan diarahkan ulang ke ownCloud.",
+"%s password reset" => "%s sandi diatur ulang",
"Use the following link to reset your password: {link}" => "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}",
+"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "Tautan untuk mengatur ulang sandi anda telah dikirimkan ke email Anda. Jika anda tidak menerimanya selama waktu yang wajar, periksa folder spam/sampah Anda. Jika tidak ada juga, coba tanyakanlah kepada administrator lokal anda.",
+"Request failed! Did you make sure your email/username was right?" => "Permintaan gagal! Apakah anda yakin email/nama pengguna anda benar?",
"You will receive a link to reset your password via Email." => "Anda akan menerima tautan penyetelan ulang sandi lewat Email.",
"Username" => "Nama pengguna",
-"Your password was reset" => "Sandi Anda telah disetel ulang",
+"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?" => "Berkas anda terenkripsi. Jika sebelumnya anda belum mengaktifkan kunci pemulihan, tidak akan ada cara lagi untuk mendapatkan data anda kembali setelah sandi anda diatur ulang. Jika anda tidak yakin dengan apa yang harus dilakukan, silakan hubungi administrator anda sebelum melanjutkan. Apakah anda benar-benar ingin melanjutkan?",
+"Yes, I really want to reset my password now" => "Ya, Saya sungguh ingin mengatur ulang sandi saya sekarang",
+"Reset" => "Atur Ulang",
+"Your password was reset" => "Sandi Anda telah diatur ulang",
"To login page" => "Ke halaman masuk",
"New password" => "Sandi baru",
-"Reset password" => "Setel ulang sandi",
+"Reset password" => "Atur ulang sandi",
"Personal" => "Pribadi",
"Users" => "Pengguna",
"Apps" => "Aplikasi",
"Admin" => "Admin",
"Help" => "Bantuan",
+"Error loading tags" => "Galat saat memuat tag",
+"Tag already exists" => "Tag sudah ada",
+"Error deleting tag(s)" => "Galat saat menghapus tag",
+"Error tagging" => "Galat saat memberikan tag",
+"Error untagging" => "Galat saat menghapus tag",
+"Error favoriting" => "Galat saat memberikan sebagai favorit",
+"Error unfavoriting" => "Galat saat menghapus sebagai favorit",
"Access forbidden" => "Akses ditolak",
"Cloud not found" => "Cloud tidak ditemukan",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Hai,\n\nhanya supaya anda tahu bahwa %s membagikan %s dengan anda.\nLihat: %s\n\n",
+"The share will expire on %s." => "Pembagian akan berakhir pada %s.",
+"Cheers!" => "Horee!",
"Security Warning" => "Peringatan Keamanan",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Versi PHP Anda rentan terhadap serangan NULL Byte (CVE-2006-7243)",
+"Please update your PHP installation to use %s securely." => "Silakan perbarui instalasi PHP anda untuk menggunakan %s dengan aman.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Generator acak yang aman tidak tersedia, silakan aktifkan ekstensi OpenSSL pada PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Tanpa generator acak, penyerang mungkin dapat menebak token penyetelan sandi dan mengambil alih akun Anda.",
-"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Kemungkinan direktori data dan berkas Anda dapat diakses dari internet karena berkas .htaccess tidak berfungsi.",
+"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Kemungkinan direktori data dan berkas anda dapat diakses dari internet karena berkas .htaccess tidak berfungsi.",
+"For information how to properly configure your server, please see the documentation." => "Untuk informasi cara mengkonfigurasi server anda dengan benar, silakan lihat dokumentasi.",
"Create an admin account" => "Buat sebuah akun admin",
"Advanced" => "Lanjutan",
"Data folder" => "Folder data",
@@ -104,14 +153,26 @@ $TRANSLATIONS = array(
"Database tablespace" => "Tablespace basis data",
"Database host" => "Host basis data",
"Finish setup" => "Selesaikan instalasi",
+"Finishing …" => "Menyelesaikan ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Aplikasi ini memerlukan JavaScript yang diaktifkan untuk beroperasi dengan benar. Silahkan aktifkan JavaScript and re-load this interface.",
+"%s is available. Get more information on how to update." => "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.",
"Log out" => "Keluar",
"Automatic logon rejected!" => "Masuk otomatis ditolak!",
-"If you did not change your password recently, your account may be compromised!" => "Jika tidak pernah mengubah sandi Anda baru-baru ini, akun Anda mungkin dalam bahaya!",
-"Please change your password to secure your account again." => "Mohon ubah sandi Anda untuk mengamankan kembali akun Anda.",
+"If you did not change your password recently, your account may be compromised!" => "Jika anda tidak pernah mengubah sandi baru-baru ini, akun anda mungkin dalam bahaya!",
+"Please change your password to secure your account again." => "Silakan ubah sandi anda untuk mengamankan kembali akun anda.",
+"Server side authentication failed!" => "Otentikasi dari sisi server gagal!",
+"Please contact your administrator." => "Silahkan hubungi administrator anda.",
"Lost your password?" => "Lupa sandi?",
"remember" => "selalu masuk",
"Log in" => "Masuk",
"Alternative Logins" => "Cara Alternatif untuk Masuk",
-"Updating ownCloud to version %s, this may take a while." => "Memperbarui ownCloud ke versi %s, prosesnya akan berlangsung beberapa saat."
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
" => "Hai,
hanya supaya anda tahu bahwa %s membagikan »%s« dengan anda. Lihat!
",
+"This ownCloud instance is currently in single user mode." => "ownCloud ini sedang dalam mode pengguna tunggal.",
+"This means only administrators can use the instance." => "Ini berarti hanya administrator yang dapat menggunakan ownCloud.",
+"Contact your system administrator if this message persists or appeared unexpectedly." => "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.",
+"Thank you for your patience." => "Terima kasih atas kesabaran anda.",
+"Updating ownCloud to version %s, this may take a while." => "Memperbarui ownCloud ke versi %s, prosesnya akan berlangsung beberapa saat.",
+"This ownCloud instance is currently being updated, which may take a while." => "ownCloud ini sedang diperbarui, yang mungkin memakan waktu cukup lama.",
+"Please reload this page after a short time to continue using ownCloud." => "Muat ulang halaman ini setelah beberapa saat untuk tetap menggunakan ownCloud."
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/core/l10n/it.php b/core/l10n/it.php
index 135ce9ebe57..444d7ed250d 100644
--- a/core/l10n/it.php
+++ b/core/l10n/it.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Host del database",
"Finish setup" => "Termina la configurazione",
"Finishing …" => "Completamento...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "L'applicazione richiede che JavaScript sia abilitato per un corretto funzionamento. Abilita JavaScript e ricarica questa interfaccia.",
"%s is available. Get more information on how to update." => "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.",
"Log out" => "Esci",
"Automatic logon rejected!" => "Accesso automatico rifiutato.",
diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php
index 10a16ec903b..aa737a71d09 100644
--- a/core/l10n/ja_JP.php
+++ b/core/l10n/ja_JP.php
@@ -41,9 +41,9 @@ $TRANSLATIONS = array(
"_%n day ago_::_%n days ago_" => array("%n 日前"),
"last month" => "一月前",
"_%n month ago_::_%n months ago_" => array("%n ヶ月前"),
-"months ago" => "月前",
+"months ago" => "数ヶ月前",
"last year" => "一年前",
-"years ago" => "年前",
+"years ago" => "数年前",
"Choose" => "選択",
"Error loading file picker template: {error}" => "ファイル選択テンプレートの読み込みエラー: {error}",
"Yes" => "はい",
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "データベースのホスト名",
"Finish setup" => "セットアップを完了します",
"Finishing …" => "終了しています ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "このアプリケーションは使用する為、JavaScriptが必要です。\nJavaScriptを有効にし、インターフェースを更新してください。 ",
"%s is available. Get more information on how to update." => "%s が利用可能です。更新方法に関してさらに情報を取得して下さい。",
"Log out" => "ログアウト",
"Automatic logon rejected!" => "自動ログインは拒否されました!",
diff --git a/core/l10n/ko.php b/core/l10n/ko.php
index a25197cec3c..dc7cb8d3e73 100644
--- a/core/l10n/ko.php
+++ b/core/l10n/ko.php
@@ -1,16 +1,17 @@
"%s에게 메일을 보낼 수 없습니다.",
-"Turned on maintenance mode" => "유지보수 모드 켜기",
-"Turned off maintenance mode" => "유지보수 모드 끄기",
+"%s shared »%s« with you" => "%s 님이 %s을(를) 공유하였습니다",
+"Couldn't send mail to following users: %s " => "%s 님에게 메일을 보낼 수 없습니다.",
+"Turned on maintenance mode" => "유지 보수 모드 켜짐",
+"Turned off maintenance mode" => "유지 보수 모드 꺼짐",
"Updated database" => "데이터베이스 업데이트 됨",
-"Updating filecache, this may take really long..." => "파일 캐시 업데이트중, 시간이 약간 걸릴수 있습니다...",
-"Updated filecache" => "파일캐시 업데이트 됨",
+"Updating filecache, this may take really long..." => "파일 캐시 업데이트 중, 시간이 약간 걸릴 수 있습니다...",
+"Updated filecache" => "파일 캐시 업데이트 됨",
"... %d%% done ..." => "... %d%% 완료됨 ...",
"No image or file provided" => "이미지나 파일이 없음",
-"Unknown filetype" => "알려지지 않은 파일형식",
+"Unknown filetype" => "알려지지 않은 파일 형식",
"Invalid image" => "잘못된 이미지",
-"No temporary profile picture available, try again" => "사용가능한 프로파일 사진이 없습니다. 재시도 하세요.",
+"No temporary profile picture available, try again" => "사용 가능한 프로필 사진이 없습니다. 다시 시도하십시오.",
"No crop data provided" => "선택된 데이터가 없습니다.",
"Sunday" => "일요일",
"Monday" => "월요일",
@@ -44,17 +45,20 @@ $TRANSLATIONS = array(
"last year" => "작년",
"years ago" => "년 전",
"Choose" => "선택",
+"Error loading file picker template: {error}" => "파일 선택 템플릿을 불러오는 중 오류 발생: {error}",
"Yes" => "예",
"No" => "아니요",
-"Ok" => "승락",
-"_{count} file conflict_::_{count} file conflicts_" => array("{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." => "두 버전을 모두 선택하면, 파일이름에 번호가 추가될 것입니다.",
+"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}개가 선택됨)",
+"({count} selected)" => "({count}개 선택됨)",
+"Error loading file exists template" => "파일 존재함 템플릿을 불러오는 중 오류 발생",
"Shared" => "공유됨",
"Share" => "공유",
"Error" => "오류",
@@ -63,9 +67,11 @@ $TRANSLATIONS = array(
"Error while changing permissions" => "권한 변경하는 중 오류 발생",
"Shared with you and the group {group} by {owner}" => "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중",
"Shared with you by {owner}" => "{owner} 님이 공유 중",
+"Share with user or group …" => "사용자 및 그룹과 공유...",
+"Share link" => "링크 공유",
"Password protect" => "암호 보호",
"Password" => "암호",
-"Allow Public Upload" => "퍼블릭 업로드 허용",
+"Allow Public Upload" => "공개 업로드 허용",
"Email link to person" => "이메일 주소",
"Send" => "전송",
"Set expiration date" => "만료 날짜 설정",
@@ -76,6 +82,7 @@ $TRANSLATIONS = array(
"Resharing is not allowed" => "다시 공유할 수 없습니다",
"Shared in {item} with {user}" => "{user} 님과 {item}에서 공유 중",
"Unshare" => "공유 해제",
+"notify by email" => "이메일로 알림",
"can edit" => "편집 가능",
"access control" => "접근 제어",
"create" => "생성",
@@ -89,20 +96,23 @@ $TRANSLATIONS = array(
"Email sent" => "이메일 발송됨",
"Warning" => "경고",
"The object type is not specified." => "객체 유형이 지정되지 않았습니다.",
+"Enter new" => "새로운 값 입력",
"Delete" => "삭제",
"Add" => "추가",
-"Edit tags" => "태크 편집",
-"Please reload the page." => "페이지를 새로고침 해주세요",
+"Edit tags" => "태그 편집",
+"Error loading dialog template: {error}" => "대화 상자 템플릿을 불러오는 중 오류 발생: {error}",
+"No tags selected for deletion." => "삭제할 태그를 선택하지 않았습니다.",
+"Please reload the page." => "페이지를 새로 고치십시오.",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "업데이트가 실패하였습니다. 이 문제를 ownCloud 커뮤니티에 보고해 주십시오.",
"The update was successful. Redirecting you to ownCloud now." => "업데이트가 성공하였습니다. ownCloud로 돌아갑니다.",
-"%s password reset" => "%s 비밀번호 재설정",
+"%s password reset" => "%s 암호 재설정",
"Use the following link to reset your password: {link}" => "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}",
-"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "비밀번호를 초기화 하기 위한 링크가 이메일로 발송되었습니다. 만약 수분이내에 메일이 도착하지 않은 경우, 스팸 메일함을 확인하세요. 만약 없다면, 메일 관리자에게 문의하세요.",
-"Request failed! Did you make sure your email/username was right?" => "요청이 실패했습니다! email 주소와 사용자 명을 정확하게 넣으셨나요?",
+"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "암호를 초기화 하기 위한 링크가 이메일로 발송되었습니다. 만약 수 분 이내에 메일이 도착하지 않은 경우, 스팸 메일함을 확인하십시오. 스팸 메일함에도 없다면, 메일 관리자에게 문의하십시오.",
+"Request failed! Did you make sure your email/username was right?" => "요청이 실패했습니다! 이메일 주소와 사용자 이름을 정확하게 입력하셨습니까?",
"You will receive a link to reset your password via Email." => "이메일로 암호 재설정 링크를 보냈습니다.",
"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?" => "당신의 파일은 암호화 되어있습니다. 만약 복구키를 가지고 있지 않다면, 비밀번호를 초기화한 후에, 당신의 데이터를 복구할 수 없을 것입니다. 당신이 원하는 것이 확실하지 않다면, 계속진행하기 전에 관리자에게 문의하세요. 계속 진행하시겠습니까?",
-"Yes, I really want to reset my password now" => "네, 전 제 비밀번호를 리셋하길 원합니다",
+"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" => "예, 지금 내 암호를 재설정합니다",
"Reset" => "재설정",
"Your password was reset" => "암호가 재설정되었습니다",
"To login page" => "로그인 화면으로",
@@ -113,17 +123,25 @@ $TRANSLATIONS = array(
"Apps" => "앱",
"Admin" => "관리자",
"Help" => "도움말",
+"Error loading tags" => "태그 불러오기 오류",
"Tag already exists" => "태그가 이미 존재합니다",
+"Error deleting tag(s)" => "태그 삭제 오류",
+"Error tagging" => "태그 추가 오류",
+"Error untagging" => "태그 해제 오류",
+"Error favoriting" => "즐겨찾기 추가 오류",
+"Error unfavoriting" => "즐겨찾기 삭제 오류",
"Access forbidden" => "접근 금지됨",
"Cloud not found" => "클라우드를 찾을 수 없습니다",
-"Cheers!" => "화이팅!",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "안녕하세요,\n\n%s 님이 %s을(를) 공유하였음을 알려 드립니다.\n보기 링크: %s\n\n",
+"The share will expire on %s." => "이 공유는 %s 까지 유지됩니다.",
+"Cheers!" => "감사합니다!",
"Security Warning" => "보안 경고",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "사용 중인 PHP 버전이 NULL 바이트 공격에 취약합니다 (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "%s의 보안을 위하여 PHP 버전을 업데이트하십시오.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "안전한 난수 생성기를 사용할 수 없습니다. PHP의 OpenSSL 확장을 활성화해 주십시오.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "안전한 난수 생성기를 사용하지 않으면 공격자가 암호 초기화 토큰을 추측하여 계정을 탈취할 수 있습니다.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.",
-"For information how to properly configure your server, please see the documentation." => "올바른 서버 설정을 위한 정보는 문서를 참조하세요.",
+"For information how to properly configure your server, please see the documentation." => "올바른 서버 설정을 위한 정보는 문서를 참조하십시오.",
"Create an admin account" => "관리자 계정 만들기",
"Advanced" => "고급",
"Data folder" => "데이터 폴더",
@@ -135,18 +153,26 @@ $TRANSLATIONS = array(
"Database tablespace" => "데이터베이스 테이블 공간",
"Database host" => "데이터베이스 호스트",
"Finish setup" => "설치 완료",
-"Finishing …" => "종료중 ...",
-"%s is available. Get more information on how to update." => "%s는 사용가능합니다. 업데이트방법에 대해서 더 많은 정보를 얻으세요.",
+"Finishing …" => "완료 중 ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "이 애플리케이션을 올바르게 사용하려면 자바스크립트를 활성화해야 합니다. 자바스크립트를 활성화한 다음 인터페이스를 새로 고치십시오.",
+"%s is available. Get more information on how to update." => "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.",
"Log out" => "로그아웃",
"Automatic logon rejected!" => "자동 로그인이 거부되었습니다!",
"If you did not change your password recently, your account may be compromised!" => "최근에 암호를 변경하지 않았다면 계정이 탈취되었을 수도 있습니다!",
"Please change your password to secure your account again." => "계정의 안전을 위하여 암호를 변경하십시오.",
"Server side authentication failed!" => "서버 인증 실패!",
-"Please contact your administrator." => "관리자에게 문의하세요.",
+"Please contact your administrator." => "관리자에게 문의하십시오.",
"Lost your password?" => "암호를 잊으셨습니까?",
"remember" => "기억하기",
"Log in" => "로그인",
-"Alternative Logins" => "대체 ",
-"Updating ownCloud to version %s, this may take a while." => "ownCloud를 버전 %s(으)로 업데이트합니다. 잠시 기다려 주십시오."
+"Alternative Logins" => "대체 로그인",
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
",
+"This ownCloud instance is currently in single user mode." => "ownCloud 인스턴스가 현재 단일 사용자 모드로 동작 중입니다.",
+"This means only administrators can use the instance." => "현재 시스템 관리자만 인스턴스를 사용할 수 있습니다.",
+"Contact your system administrator if this message persists or appeared unexpectedly." => "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오",
+"Thank you for your patience." => "기다려 주셔서 감사합니다.",
+"Updating ownCloud to version %s, this may take a while." => "ownCloud를 버전 %s(으)로 업데이트합니다. 잠시 기다려 주십시오.",
+"This ownCloud instance is currently being updated, which may take a while." => "ownCloud 인스턴스가 현재 업데이트 중입니다. 잠시만 기다려 주십시오.",
+"Please reload this page after a short time to continue using ownCloud." => "잠시 후 페이지를 다시 불러온 다음 ownCloud를 사용해 주십시오."
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php
index 4fd88e4a040..ad682e46ff9 100644
--- a/core/l10n/nb_NO.php
+++ b/core/l10n/nb_NO.php
@@ -1,6 +1,8 @@
"%s delte »%s« med deg",
+"Unknown filetype" => "Ukjent filtype",
+"Invalid image" => "Ugyldig bilde",
"Sunday" => "Søndag",
"Monday" => "Mandag",
"Tuesday" => "Tirsdag",
@@ -22,13 +24,13 @@ $TRANSLATIONS = array(
"December" => "Desember",
"Settings" => "Innstillinger",
"seconds ago" => "sekunder siden",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
+"_%n minute ago_::_%n minutes ago_" => array("%n minutt siden","%n minutter siden"),
+"_%n hour ago_::_%n hours ago_" => array("%n time siden","%n timer siden"),
"today" => "i dag",
"yesterday" => "i går",
-"_%n day ago_::_%n days ago_" => array("",""),
+"_%n day ago_::_%n days ago_" => array("%n dag siden","%n dager siden"),
"last month" => "forrige måned",
-"_%n month ago_::_%n months ago_" => array("",""),
+"_%n month ago_::_%n months ago_" => array("%n dag siden","%n dager siden"),
"months ago" => "måneder siden",
"last year" => "forrige år",
"years ago" => "år siden",
@@ -38,6 +40,7 @@ $TRANSLATIONS = array(
"Ok" => "Ok",
"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Cancel" => "Avbryt",
+"Continue" => "Fortsett",
"Shared" => "Delt",
"Share" => "Del",
"Error" => "Feil",
@@ -91,6 +94,7 @@ $TRANSLATIONS = array(
"Database tablespace" => "Database tabellområde",
"Database host" => "Databasevert",
"Finish setup" => "Fullfør oppsetting",
+"Finishing …" => "Ferdigstiller ...",
"Log out" => "Logg ut",
"Automatic logon rejected!" => "Automatisk pålogging avvist!",
"If you did not change your password recently, your account may be compromised!" => "Hvis du ikke har endret passordet ditt nylig kan kontoen din være kompromitert",
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index 029ad4ab2ce..3c413010608 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Databaseserver",
"Finish setup" => "Installatie afronden",
"Finishing …" => "Afronden ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Deze applicatie heeft een werkend JavaScript nodig. activeer JavaScript en herlaad deze interface.",
"%s is available. Get more information on how to update." => "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.",
"Log out" => "Afmelden",
"Automatic logon rejected!" => "Automatische aanmelding geweigerd!",
diff --git a/core/l10n/pl.php b/core/l10n/pl.php
index 93a256bd7ff..711ebcebe29 100644
--- a/core/l10n/pl.php
+++ b/core/l10n/pl.php
@@ -1,6 +1,7 @@
"%s Współdzielone »%s« z tobą",
+"Couldn't send mail to following users: %s " => "Nie można było wysłać wiadomości do następujących użytkowników: %s",
"Turned on maintenance mode" => "Włączony tryb konserwacji",
"Turned off maintenance mode" => "Wyłączony tryb konserwacji",
"Updated database" => "Zaktualizuj bazę",
@@ -10,6 +11,8 @@ $TRANSLATIONS = array(
"No image or file provided" => "Brak obrazu lub pliku dostarczonego",
"Unknown filetype" => "Nieznany typ pliku",
"Invalid image" => "Nieprawidłowe zdjęcie",
+"No temporary profile picture available, try again" => "Brak obrazka profilu tymczasowego, spróbuj ponownie",
+"No crop data provided" => "Brak danych do przycięcia",
"Sunday" => "Niedziela",
"Monday" => "Poniedziałek",
"Tuesday" => "Wtorek",
@@ -46,13 +49,16 @@ $TRANSLATIONS = array(
"Yes" => "Tak",
"No" => "Nie",
"Ok" => "OK",
+"Error loading message template: {error}" => "Błąd podczas ładowania szablonu wiadomości: {error}",
"_{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",
"Which files do you want to keep?" => "Które pliki chcesz zachować?",
+"If you select both versions, the copied file will have a number added to its name." => "Jeśli wybierzesz obie wersje, skopiowany plik będzie miał dodany numerek w nazwie",
"Cancel" => "Anuluj",
"Continue" => "Kontynuuj ",
"(all selected)" => "(wszystkie zaznaczone)",
"({count} selected)" => "({count} zaznaczonych)",
+"Error loading file exists template" => "Błąd podczas ładowania szablonu istniejącego pliku",
"Shared" => "Udostępniono",
"Share" => "Udostępnij",
"Error" => "Błąd",
@@ -61,6 +67,7 @@ $TRANSLATIONS = array(
"Error while changing permissions" => "Błąd przy zmianie uprawnień",
"Shared with you and the group {group} by {owner}" => "Udostępnione tobie i grupie {group} przez {owner}",
"Shared with you by {owner}" => "Udostępnione tobie przez {owner}",
+"Share with user or group …" => "Współdziel z użytkownikiem lub grupą ...",
"Share link" => "Udostępnij link",
"Password protect" => "Zabezpiecz hasłem",
"Password" => "Hasło",
@@ -93,7 +100,9 @@ $TRANSLATIONS = array(
"Delete" => "Usuń",
"Add" => "Dodaj",
"Edit tags" => "Edytuj tagi",
+"Error loading dialog template: {error}" => "Błąd podczas ładowania szablonu dialogu: {error}",
"No tags selected for deletion." => "Nie zaznaczono tagów do usunięcia.",
+"Please reload the page." => "Proszę przeładować stronę",
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Aktualizacja zakończyła się niepowodzeniem. Zgłoś ten problem spoleczności ownCloud.",
"The update was successful. Redirecting you to ownCloud now." => "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.",
"%s password reset" => "%s reset hasła",
@@ -119,8 +128,12 @@ $TRANSLATIONS = array(
"Error deleting tag(s)" => "Błąd przy osuwaniu tag(ów)",
"Error tagging" => "Błąd tagowania",
"Error untagging" => "Błąd odtagowania",
+"Error favoriting" => "Błąd podczas dodawania do ulubionch",
+"Error unfavoriting" => "Błąd przy usuwaniu z ulubionych",
"Access forbidden" => "Dostęp zabroniony",
"Cloud not found" => "Nie odnaleziono chmury",
+"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Witaj,\n\ntylko informuję, że %s współdzieli z Tobą %s.\nZobacz tutaj: %s\n\n",
+"The share will expire on %s." => "Ten zasób wygaśnie %s",
"Cheers!" => "Pozdrawiam!",
"Security Warning" => "Ostrzeżenie o zabezpieczeniach",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Twója wersja PHP jest narażona na NULL Byte attack (CVE-2006-7243)",
@@ -141,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Komputer bazy danych",
"Finish setup" => "Zakończ konfigurowanie",
"Finishing …" => "Kończę ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Ta aplikacja wymaga włączenia JavaScript do poprawnego działania. Proszę włączyć JavaScript i przeładować stronę.",
"%s is available. Get more information on how to update." => "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.",
"Log out" => "Wyloguj",
"Automatic logon rejected!" => "Automatyczne logowanie odrzucone!",
@@ -153,7 +167,12 @@ $TRANSLATIONS = array(
"Log in" => "Zaloguj",
"Alternative Logins" => "Alternatywne loginy",
"Hey there,
just letting you know that %s shared »%s« with you. View it!
",
+"This ownCloud instance is currently in single user mode." => "Ta instalacja ownCloud działa obecnie w trybie pojedynczego użytkownika.",
+"This means only administrators can use the instance." => "To oznacza, że tylko administratorzy mogą w tej chwili używać aplikacji.",
+"Contact your system administrator if this message persists or appeared unexpectedly." => "Skontaktuj się z administratorem, jeśli ten komunikat pojawił się nieoczekiwanie lub wyświetla się ciągle.",
"Thank you for your patience." => "Dziękuję za cierpliwość.",
-"Updating ownCloud to version %s, this may take a while." => "Aktualizowanie ownCloud do wersji %s. Może to trochę potrwać."
+"Updating ownCloud to version %s, this may take a while." => "Aktualizowanie ownCloud do wersji %s. Może to trochę potrwać.",
+"This ownCloud instance is currently being updated, which may take a while." => "Ta instalacja ownCloud jest w tej chwili aktualizowana, co może chwilę potrwać",
+"Please reload this page after a short time to continue using ownCloud." => "Proszę przeładować tę stronę za chwilę, aby kontynuować pracę w ownCloud"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php
index 4571b9f2386..e4dd68b99d1 100644
--- a/core/l10n/pt_BR.php
+++ b/core/l10n/pt_BR.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Host do banco de dados",
"Finish setup" => "Concluir configuração",
"Finishing …" => "Finalizando ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Esta aplicação reque JavaScript habilidado para correta operação.\nPor favor habilite JavaScript e recarregue esta esta interface.",
"%s is available. Get more information on how to update." => "%s está disponível. Obtenha mais informações sobre como atualizar.",
"Log out" => "Sair",
"Automatic logon rejected!" => "Entrada Automática no Sistema Rejeitada!",
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 69b431190a0..1d6429ddf2b 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -48,6 +48,7 @@ $TRANSLATIONS = array(
"Ok" => "Ok",
"Error loading message template: {error}" => "Erro ao carregar o template: {error}",
"_{count} file conflict_::_{count} file conflicts_" => array("",""),
+"Which files do you want to keep?" => "Quais os ficheiros que pretende manter?",
"Cancel" => "Cancelar",
"Continue" => "Continuar",
"(all selected)" => "(todos seleccionados)",
@@ -60,6 +61,7 @@ $TRANSLATIONS = array(
"Error while changing permissions" => "Erro ao mudar permissões",
"Shared with you and the group {group} by {owner}" => "Partilhado consigo e com o grupo {group} por {owner}",
"Shared with you by {owner}" => "Partilhado consigo por {owner}",
+"Share link" => "Partilhar o link",
"Password protect" => "Proteger com palavra-passe",
"Password" => "Password",
"Allow Public Upload" => "Permitir Envios Públicos",
@@ -73,6 +75,7 @@ $TRANSLATIONS = array(
"Resharing is not allowed" => "Não é permitido partilhar de novo",
"Shared in {item} with {user}" => "Partilhado em {item} com {user}",
"Unshare" => "Deixar de partilhar",
+"notify by email" => "Notificar por email",
"can edit" => "pode editar",
"access control" => "Controlo de acesso",
"create" => "criar",
@@ -98,6 +101,7 @@ $TRANSLATIONS = array(
"Username" => "Nome de utilizador",
"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?" => "Os seus ficheiros estão encriptados. Se não activou a chave de recuperação, não vai ser possível recuperar os seus dados no caso da sua password ser reinicializada. Se não tem a certeza do que precisa de fazer, por favor contacte o seu administrador antes de continuar. Tem a certeza que quer continuar?",
"Yes, I really want to reset my password now" => "Sim, tenho a certeza que pretendo redefinir a minha palavra-passe agora.",
+"Reset" => "Repor",
"Your password was reset" => "A sua password foi reposta",
"To login page" => "Para a página de entrada",
"New password" => "Nova palavra-chave",
@@ -109,6 +113,7 @@ $TRANSLATIONS = array(
"Help" => "Ajuda",
"Access forbidden" => "Acesso interdito",
"Cloud not found" => "Cloud nao encontrada",
+"The share will expire on %s." => "Esta partilha vai expirar em %s.",
"Security Warning" => "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
@@ -133,10 +138,12 @@ $TRANSLATIONS = array(
"Automatic logon rejected!" => "Login automático rejeitado!",
"If you did not change your password recently, your account may be compromised!" => "Se não mudou a sua palavra-passe recentemente, a sua conta pode ter sido comprometida!",
"Please change your password to secure your account again." => "Por favor mude a sua palavra-passe para assegurar a sua conta de novo.",
+"Please contact your administrator." => "Por favor contacte o administrador.",
"Lost your password?" => "Esqueceu-se da sua password?",
"remember" => "lembrar",
"Log in" => "Entrar",
"Alternative Logins" => "Contas de acesso alternativas",
+"Thank you for your patience." => "Obrigado pela sua paciência.",
"Updating ownCloud to version %s, this may take a while." => "A actualizar o ownCloud para a versão %s, esta operação pode demorar."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/core/l10n/ru.php b/core/l10n/ru.php
index ec505f6f5fa..cd889e98e12 100644
--- a/core/l10n/ru.php
+++ b/core/l10n/ru.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Хост базы данных",
"Finish setup" => "Завершить установку",
"Finishing …" => "Завершаем...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, включите JavaScript и перезагрузите интерфейс.",
"%s is available. Get more information on how to update." => "%s доступно. Получить дополнительную информацию о порядке обновления.",
"Log out" => "Выйти",
"Automatic logon rejected!" => "Автоматический вход в систему отключен!",
diff --git a/core/l10n/ru_RU.php b/core/l10n/ru_RU.php
deleted file mode 100644
index 81ce456e142..00000000000
--- a/core/l10n/ru_RU.php
+++ /dev/null
@@ -1,21 +0,0 @@
- "Настройки",
-"_%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("","",""),
-"Yes" => "Да",
-"No" => "Нет",
-"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
-"Cancel" => "Отмена",
-"Share" => "Сделать общим",
-"Error" => "Ошибка",
-"Password" => "Пароль",
-"can edit" => "возможно редактирование",
-"Warning" => "Предупреждение",
-"Delete" => "Удалить",
-"Username" => "Имя пользователя",
-"Help" => "Помощь"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/core/l10n/sk.php b/core/l10n/sk.php
index 50c3ecaf664..d9ab70db1a8 100644
--- a/core/l10n/sk.php
+++ b/core/l10n/sk.php
@@ -1,9 +1,35 @@
"Nedeľa",
+"Monday" => "Pondelok",
+"Tuesday" => "Utorok",
+"Wednesday" => "Streda",
+"Thursday" => "Štvrtok",
+"Friday" => "Piatok",
+"Saturday" => "Sobota",
+"January" => "Január",
+"February" => "Február",
+"March" => "Marec",
+"April" => "Apríl",
+"May" => "Máj",
+"June" => "Jún",
+"July" => "Júl",
+"August" => "August",
+"September" => "September",
+"October" => "Október",
+"November" => "November",
+"December" => "December",
+"Settings" => "Nastavenia",
"_%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("","","")
+"_{count} file conflict_::_{count} file conflicts_" => array("","",""),
+"Cancel" => "Zrušiť",
+"Share" => "Zdieľať",
+"group" => "skupina",
+"Delete" => "Odstrániť",
+"Personal" => "Osobné",
+"Advanced" => "Pokročilé"
);
$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 b46b04c9fd1..8fb62cd17a4 100644
--- a/core/l10n/sk_SK.php
+++ b/core/l10n/sk_SK.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Server databázy",
"Finish setup" => "Dokončiť inštaláciu",
"Finishing …" => "Dokončujem...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Táto aplikácia vyžaduje JavaScript a tento musí byť povolený pre správnu funkciu aplikácie. Prosím povoľte JavaScript a znovunačítajte toto rozhranie.",
"%s is available. Get more information on how to update." => "%s je dostupná. Získajte viac informácií k postupu aktualizácie.",
"Log out" => "Odhlásiť",
"Automatic logon rejected!" => "Automatické prihlásenie bolo zamietnuté!",
diff --git a/core/l10n/sl.php b/core/l10n/sl.php
index 657bc60c18e..933ccf55564 100644
--- a/core/l10n/sl.php
+++ b/core/l10n/sl.php
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Gostitelj podatkovne zbirke",
"Finish setup" => "Končaj nastavitev",
"Finishing …" => "Poteka zaključevanje opravila ...",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Program zahteva omogočeno skriptno podporo. Za pravilno delovanje je treba omogočiti JavaScript in nato ponovno osvežiti vmesnik.",
"%s is available. Get more information on how to update." => "%s je na voljo. Pridobite več podrobnosti za posodobitev.",
"Log out" => "Odjava",
"Automatic logon rejected!" => "Samodejno prijavljanje je zavrnjeno!",
diff --git a/core/l10n/tr.php b/core/l10n/tr.php
index 86156b9574f..fc08d68bb14 100644
--- a/core/l10n/tr.php
+++ b/core/l10n/tr.php
@@ -66,7 +66,7 @@ $TRANSLATIONS = array(
"Error while unsharing" => "Paylaşım iptal edilirken hata",
"Error while changing permissions" => "İzinleri değiştirirken hata oluştu",
"Shared with you and the group {group} by {owner}" => "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
-"Shared with you by {owner}" => "{owner} trafından sizinle paylaştırıldı",
+"Shared with you by {owner}" => "{owner} tarafından sizinle paylaşıldı",
"Share with user or group …" => "Kullanıcı veya grup ile paylaş..",
"Share link" => "Paylaşma bağlantısı",
"Password protect" => "Parola koruması",
@@ -106,7 +106,7 @@ $TRANSLATIONS = array(
"The update was unsuccessful. Please report this issue to the ownCloud community." => "Güncelleme başarılı olmadı. Lütfen bu hatayı bildirin ownCloud community.",
"The update was successful. Redirecting you to ownCloud now." => "Güncelleme başarılı. ownCloud'a yönlendiriliyor.",
"%s password reset" => "%s parola sıfırlama",
-"Use the following link to reset your password: {link}" => "Bu bağlantıyı kullanarak parolanızı sıfırlayın: {link}",
+"Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders. If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi. Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz. Eğer orada da bulamazsanız sistem yöneticinize sorunuz.",
"Request failed! Did you make sure your email/username was right?" => "İstek başarısız! E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?",
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.",
@@ -135,13 +135,13 @@ $TRANSLATIONS = array(
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Merhaba,\n\nSadece %s sizinle %s paylaşımını yaptığını bildiriyoruz.\nBuradan bakabilirsiniz: %s\n\n",
"The share will expire on %s." => "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" => "Şerefe!",
-"Security Warning" => "Güvenlik Uyarisi",
+"Security Warning" => "Güvenlik Uyarısı",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP sürümünüz NULL Byte saldırısına açık (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "%s güvenli olarak kullanmak için, lütfen PHP kurulumunuzu güncelleyin.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Güvenli rastgele sayı üreticisi bulunamadı. Lütfen PHP OpenSSL eklentisini etkinleştirin.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Güvenli rastgele sayı üreticisi olmadan saldırganlar parola sıfırlama simgelerini tahmin edip hesabınızı ele geçirebilir.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için internet'ten erişime açık.",
-"For information how to properly configure your server, please see the documentation." => "Server'ınızı nasıl ayarlayacağınıza dair bilgi için, lütfen dokümantasyon sayfasını ziyaret edin.",
+"For information how to properly configure your server, please see the documentation." => "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen belgelendirme sayfasını ziyaret edin.",
"Create an admin account" => "Bir yönetici hesabı oluşturun",
"Advanced" => "Gelişmiş",
"Data folder" => "Veri klasörü",
@@ -154,6 +154,7 @@ $TRANSLATIONS = array(
"Database host" => "Veritabanı sunucusu",
"Finish setup" => "Kurulumu tamamla",
"Finishing …" => "Tamamlanıyor ..",
+"This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface." => "Uygulama, doğru çalışabilmesi için JavaScript'in etkinleştirilmesini gerektiriyor. Lütfen JavaScript'i etkinleştirin ve bu arayüzü yeniden yükleyin.",
"%s is available. Get more information on how to update." => "%s mevcut. Güncelleştirme hakkında daha fazla bilgi alın.",
"Log out" => "Çıkış yap",
"Automatic logon rejected!" => "Otomatik oturum açma reddedildi!",
diff --git a/core/l10n/ur.php b/core/l10n/ur.php
new file mode 100644
index 00000000000..ffcdde48d47
--- /dev/null
+++ b/core/l10n/ur.php
@@ -0,0 +1,9 @@
+ 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=2; plural=(n != 1);";
diff --git a/core/register_command.php b/core/register_command.php
index 350a817c02a..736953094b1 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -16,3 +16,4 @@ $application->add(new OC\Core\Command\App\Disable());
$application->add(new OC\Core\Command\App\Enable());
$application->add(new OC\Core\Command\App\ListApps());
$application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair()));
+$application->add(new OC\Core\Command\User\Report());
diff --git a/core/routes.php b/core/routes.php
index 5009243d59f..f8454877e03 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -7,6 +7,7 @@
*/
// Post installation check
+/** @var $this OC_Router */
$this->create('post_setup_check', '/post-setup-check')
->action('OC_Setup', 'postSetupCheck');
@@ -61,7 +62,7 @@ $this->create('core_tags_delete', '/tags/{type}/delete')
->action('OC\Core\Tags\Controller', 'deleteTags')
->requirements(array('type'));
// oC JS config
-$this->create('js_config', '/core/js/config.js')
+$this->create('js_config', '/core/js/oc.js')
->actionInclude('core/js/config.php');
// Routing
$this->create('core_ajax_routes', '/core/routes.json')
diff --git a/core/setup.php b/core/setup.php
index 781d6e572af..958376b2cce 100644
--- a/core/setup.php
+++ b/core/setup.php
@@ -20,6 +20,8 @@ if ($dbIsSet AND $directoryIsSet AND $adminAccountIsSet) {
}
}
+OC_Util::addScript( '3rdparty', 'strengthify/jquery.strengthify' );
+OC_Util::addStyle( '3rdparty', 'strengthify/strengthify' );
OC_Util::addScript('setup');
$hasSQLite = class_exists('SQLite3');
diff --git a/core/templates/installation.php b/core/templates/installation.php
index 325eb204868..182fc83a4d4 100644
--- a/core/templates/installation.php
+++ b/core/templates/installation.php
@@ -54,11 +54,12 @@
just letting you know that %s shared %s with you. View it!
', array($_['user_displayname'], $_['filename'], $_['link'])));
if ( isset($_['expiration']) ) {
p($l->t("The share will expire on %s.", array($_['expiration'])));
print_unescaped('
');
diff --git a/cron.php b/cron.php
index 8e1a3376d53..0d2c07b2d95 100644
--- a/cron.php
+++ b/cron.php
@@ -50,6 +50,8 @@ try {
session_write_close();
+ $logger = \OC_Log::$object;
+
// Don't do anything if ownCloud has not been installed
if (!OC_Config::getValue('installed', false)) {
exit(0);
@@ -98,7 +100,7 @@ try {
$jobList = new \OC\BackgroundJob\JobList();
$jobs = $jobList->getAll();
foreach ($jobs as $job) {
- $job->execute($jobList);
+ $job->execute($jobList, $logger);
}
} else {
// We call cron.php from some website
@@ -109,7 +111,7 @@ try {
// Work and success :-)
$jobList = new \OC\BackgroundJob\JobList();
$job = $jobList->getNext();
- $job->execute($jobList);
+ $job->execute($jobList, $logger);
$jobList->setLastJob($job);
OC_JSON::success();
}
diff --git a/db_structure.xml b/db_structure.xml
index db817faecee..3cb2af287af 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -60,6 +60,13 @@
ascending
+
+ appconfig_appid_key
+
+ appid
+ ascending
+
+
diff --git a/issue_template.md b/issue_template.md
index a9ff75a3b86..0ddc7667bf3 100644
--- a/issue_template.md
+++ b/issue_template.md
@@ -26,6 +26,8 @@ List of activated app:
The content of config/config.php: (Without the database password and passwordsalt)
+Are you using external storage, if yes which one:
+
### Client configuration
Browser:
diff --git a/l10n/ach/core.po b/l10n/ach/core.po
index 24204fc2a65..9808a0ee036 100644
--- a/l10n/ach/core.po
+++ b/l10n/ach/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Acoli (http://www.transifex.com/projects/p/owncloud/language/ach/)\n"
"MIME-Version: 1.0\n"
@@ -277,7 +277,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -389,7 +389,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -525,7 +525,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/ach/files.po b/l10n/ach/files.po
index 78297b9b4d4..169f2307c38 100644
--- a/l10n/ach/files.po
+++ b/l10n/ach/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Acoli (http://www.transifex.com/projects/p/owncloud/language/ach/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/ach/lib.po b/l10n/ach/lib.po
index 05450aabac5..188f480eab5 100644
--- a/l10n/ach/lib.po
+++ b/l10n/ach/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Acoli (http://www.transifex.com/projects/p/owncloud/language/ach/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/ady/core.po b/l10n/ady/core.po
index 97a01cf82c0..21767522354 100644
--- a/l10n/ady/core.po
+++ b/l10n/ady/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Adyghe (http://www.transifex.com/projects/p/owncloud/language/ady/)\n"
"MIME-Version: 1.0\n"
@@ -277,7 +277,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -389,7 +389,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -525,7 +525,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/ady/files.po b/l10n/ady/files.po
index 307d3eb12e3..95bd2e10d1d 100644
--- a/l10n/ady/files.po
+++ b/l10n/ady/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Adyghe (http://www.transifex.com/projects/p/owncloud/language/ady/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/ady/lib.po b/l10n/ady/lib.po
index a0cec5ac607..6043ba35ec8 100644
--- a/l10n/ady/lib.po
+++ b/l10n/ady/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Adyghe (http://www.transifex.com/projects/p/owncloud/language/ady/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/af/core.po b/l10n/af/core.po
index e55e4110106..a93e0580171 100644
--- a/l10n/af/core.po
+++ b/l10n/af/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (http://www.transifex.com/projects/p/owncloud/language/af/)\n"
"MIME-Version: 1.0\n"
@@ -277,7 +277,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -389,7 +389,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -525,7 +525,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/af/files.po b/l10n/af/files.po
index 82b99775f1a..b5cf6a2f4ba 100644
--- a/l10n/af/files.po
+++ b/l10n/af/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (http://www.transifex.com/projects/p/owncloud/language/af/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/af/lib.po b/l10n/af/lib.po
index 9cba7b7d1fb..8954006a8a7 100644
--- a/l10n/af/lib.po
+++ b/l10n/af/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (http://www.transifex.com/projects/p/owncloud/language/af/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/af_ZA/core.po b/l10n/af_ZA/core.po
index 0d66788b960..618d4d305d9 100644
--- a/l10n/af_ZA/core.po
+++ b/l10n/af_ZA/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
"MIME-Version: 1.0\n"
@@ -148,59 +148,59 @@ msgstr ""
msgid "December"
msgstr ""
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Instellings"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr ""
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr ""
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr ""
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr ""
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr ""
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr ""
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr ""
@@ -277,7 +277,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Wagwoord"
@@ -389,7 +389,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Gebruikersnaam"
@@ -525,7 +525,7 @@ msgstr "Persoonlik"
msgid "Users"
msgstr "Gebruikers"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Toepassings"
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Skep `n admin-rekening"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Gevorderd"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Stel databasis op"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "sal gebruik word"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Databasis-gebruiker"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Databasis-wagwoord"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Databasis naam"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Maak opstelling klaar"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Teken uit"
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Jou wagwoord verloor?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "onthou"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Teken aan"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/af_ZA/files.po b/l10n/af_ZA/files.po
index 97c261cf70b..c871aaa6c48 100644
--- a/l10n/af_ZA/files.po
+++ b/l10n/af_ZA/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/af_ZA/lib.po b/l10n/af_ZA/lib.po
index 1196cc344d3..7d0718c77d4 100644
--- a/l10n/af_ZA/lib.po
+++ b/l10n/af_ZA/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr "Admin"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "webdienste onder jou beheer"
@@ -70,23 +70,23 @@ msgstr "webdienste onder jou beheer"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/ak/core.po b/l10n/ak/core.po
new file mode 100644
index 00000000000..71758432e20
--- /dev/null
+++ b/l10n/ak/core.po
@@ -0,0 +1,775 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: ajax/share.php:119 ajax/share.php:198
+#, php-format
+msgid "%s shared »%s« with you"
+msgstr ""
+
+#: ajax/share.php:169
+#, php-format
+msgid "Couldn't send mail to following users: %s "
+msgstr ""
+
+#: ajax/update.php:11
+msgid "Turned on maintenance mode"
+msgstr ""
+
+#: ajax/update.php:14
+msgid "Turned off maintenance mode"
+msgstr ""
+
+#: ajax/update.php:17
+msgid "Updated database"
+msgstr ""
+
+#: ajax/update.php:20
+msgid "Updating filecache, this may take really long..."
+msgstr ""
+
+#: ajax/update.php:23
+msgid "Updated filecache"
+msgstr ""
+
+#: ajax/update.php:26
+#, php-format
+msgid "... %d%% done ..."
+msgstr ""
+
+#: avatar/controller.php:62
+msgid "No image or file provided"
+msgstr ""
+
+#: avatar/controller.php:81
+msgid "Unknown filetype"
+msgstr ""
+
+#: avatar/controller.php:85
+msgid "Invalid image"
+msgstr ""
+
+#: avatar/controller.php:115 avatar/controller.php:142
+msgid "No temporary profile picture available, try again"
+msgstr ""
+
+#: avatar/controller.php:135
+msgid "No crop data provided"
+msgstr ""
+
+#: js/config.php:32
+msgid "Sunday"
+msgstr ""
+
+#: js/config.php:33
+msgid "Monday"
+msgstr ""
+
+#: js/config.php:34
+msgid "Tuesday"
+msgstr ""
+
+#: js/config.php:35
+msgid "Wednesday"
+msgstr ""
+
+#: js/config.php:36
+msgid "Thursday"
+msgstr ""
+
+#: js/config.php:37
+msgid "Friday"
+msgstr ""
+
+#: js/config.php:38
+msgid "Saturday"
+msgstr ""
+
+#: js/config.php:43
+msgid "January"
+msgstr ""
+
+#: js/config.php:44
+msgid "February"
+msgstr ""
+
+#: js/config.php:45
+msgid "March"
+msgstr ""
+
+#: js/config.php:46
+msgid "April"
+msgstr ""
+
+#: js/config.php:47
+msgid "May"
+msgstr ""
+
+#: js/config.php:48
+msgid "June"
+msgstr ""
+
+#: js/config.php:49
+msgid "July"
+msgstr ""
+
+#: js/config.php:50
+msgid "August"
+msgstr ""
+
+#: js/config.php:51
+msgid "September"
+msgstr ""
+
+#: js/config.php:52
+msgid "October"
+msgstr ""
+
+#: js/config.php:53
+msgid "November"
+msgstr ""
+
+#: js/config.php:54
+msgid "December"
+msgstr ""
+
+#: js/js.js:398
+msgid "Settings"
+msgstr ""
+
+#: js/js.js:869
+msgid "seconds ago"
+msgstr ""
+
+#: js/js.js:870
+msgid "%n minute ago"
+msgid_plural "%n minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:871
+msgid "%n hour ago"
+msgid_plural "%n hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:872
+msgid "today"
+msgstr ""
+
+#: js/js.js:873
+msgid "yesterday"
+msgstr ""
+
+#: js/js.js:874
+msgid "%n day ago"
+msgid_plural "%n days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:875
+msgid "last month"
+msgstr ""
+
+#: js/js.js:876
+msgid "%n month ago"
+msgid_plural "%n months ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:877
+msgid "months ago"
+msgstr ""
+
+#: js/js.js:878
+msgid "last year"
+msgstr ""
+
+#: js/js.js:879
+msgid "years ago"
+msgstr ""
+
+#: js/oc-dialogs.js:123
+msgid "Choose"
+msgstr ""
+
+#: js/oc-dialogs.js:146
+msgid "Error loading file picker template: {error}"
+msgstr ""
+
+#: js/oc-dialogs.js:172
+msgid "Yes"
+msgstr ""
+
+#: js/oc-dialogs.js:182
+msgid "No"
+msgstr ""
+
+#: js/oc-dialogs.js:199
+msgid "Ok"
+msgstr ""
+
+#: js/oc-dialogs.js:219
+msgid "Error loading message template: {error}"
+msgstr ""
+
+#: js/oc-dialogs.js:347
+msgid "{count} file conflict"
+msgid_plural "{count} file conflicts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/oc-dialogs.js:361
+msgid "One file conflict"
+msgstr ""
+
+#: js/oc-dialogs.js:367
+msgid "Which files do you want to keep?"
+msgstr ""
+
+#: js/oc-dialogs.js:368
+msgid ""
+"If you select both versions, the copied file will have a number added to its"
+" name."
+msgstr ""
+
+#: js/oc-dialogs.js:376
+msgid "Cancel"
+msgstr ""
+
+#: js/oc-dialogs.js:386
+msgid "Continue"
+msgstr ""
+
+#: js/oc-dialogs.js:433 js/oc-dialogs.js:446
+msgid "(all selected)"
+msgstr ""
+
+#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
+msgid "({count} selected)"
+msgstr ""
+
+#: js/oc-dialogs.js:457
+msgid "Error loading file exists template"
+msgstr ""
+
+#: js/share.js:51 js/share.js:66 js/share.js:106
+msgid "Shared"
+msgstr ""
+
+#: js/share.js:109
+msgid "Share"
+msgstr ""
+
+#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
+#: js/share.js:719 templates/installation.php:10
+msgid "Error"
+msgstr ""
+
+#: js/share.js:160 js/share.js:747
+msgid "Error while sharing"
+msgstr ""
+
+#: js/share.js:171
+msgid "Error while unsharing"
+msgstr ""
+
+#: js/share.js:178
+msgid "Error while changing permissions"
+msgstr ""
+
+#: js/share.js:187
+msgid "Shared with you and the group {group} by {owner}"
+msgstr ""
+
+#: js/share.js:189
+msgid "Shared with you by {owner}"
+msgstr ""
+
+#: js/share.js:213
+msgid "Share with user or group …"
+msgstr ""
+
+#: js/share.js:219
+msgid "Share link"
+msgstr ""
+
+#: js/share.js:222
+msgid "Password protect"
+msgstr ""
+
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
+msgid "Password"
+msgstr ""
+
+#: js/share.js:229
+msgid "Allow Public Upload"
+msgstr ""
+
+#: js/share.js:233
+msgid "Email link to person"
+msgstr ""
+
+#: js/share.js:234
+msgid "Send"
+msgstr ""
+
+#: js/share.js:239
+msgid "Set expiration date"
+msgstr ""
+
+#: js/share.js:240
+msgid "Expiration date"
+msgstr ""
+
+#: js/share.js:275
+msgid "Share via email:"
+msgstr ""
+
+#: js/share.js:278
+msgid "No people found"
+msgstr ""
+
+#: js/share.js:322 js/share.js:359
+msgid "group"
+msgstr ""
+
+#: js/share.js:333
+msgid "Resharing is not allowed"
+msgstr ""
+
+#: js/share.js:375
+msgid "Shared in {item} with {user}"
+msgstr ""
+
+#: js/share.js:397
+msgid "Unshare"
+msgstr ""
+
+#: js/share.js:405
+msgid "notify by email"
+msgstr ""
+
+#: js/share.js:408
+msgid "can edit"
+msgstr ""
+
+#: js/share.js:410
+msgid "access control"
+msgstr ""
+
+#: js/share.js:413
+msgid "create"
+msgstr ""
+
+#: js/share.js:416
+msgid "update"
+msgstr ""
+
+#: js/share.js:419
+msgid "delete"
+msgstr ""
+
+#: js/share.js:422
+msgid "share"
+msgstr ""
+
+#: js/share.js:694
+msgid "Password protected"
+msgstr ""
+
+#: js/share.js:707
+msgid "Error unsetting expiration date"
+msgstr ""
+
+#: js/share.js:719
+msgid "Error setting expiration date"
+msgstr ""
+
+#: js/share.js:734
+msgid "Sending ..."
+msgstr ""
+
+#: js/share.js:745
+msgid "Email sent"
+msgstr ""
+
+#: js/share.js:769
+msgid "Warning"
+msgstr ""
+
+#: js/tags.js:4
+msgid "The object type is not specified."
+msgstr ""
+
+#: js/tags.js:13
+msgid "Enter new"
+msgstr ""
+
+#: js/tags.js:27
+msgid "Delete"
+msgstr ""
+
+#: js/tags.js:31
+msgid "Add"
+msgstr ""
+
+#: js/tags.js:39
+msgid "Edit tags"
+msgstr ""
+
+#: js/tags.js:57
+msgid "Error loading dialog template: {error}"
+msgstr ""
+
+#: js/tags.js:261
+msgid "No tags selected for deletion."
+msgstr ""
+
+#: js/update.js:8
+msgid "Please reload the page."
+msgstr ""
+
+#: js/update.js:17
+msgid ""
+"The update was unsuccessful. Please report this issue to the ownCloud "
+"community."
+msgstr ""
+
+#: js/update.js:21
+msgid "The update was successful. Redirecting you to ownCloud now."
+msgstr ""
+
+#: lostpassword/controller.php:62
+#, php-format
+msgid "%s password reset"
+msgstr ""
+
+#: lostpassword/templates/email.php:2
+msgid "Use the following link to reset your password: {link}"
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:7
+msgid ""
+"The link to reset your password has been sent to your email. If you do "
+"not receive it within a reasonable amount of time, check your spam/junk "
+"folders. If it is not there ask your local administrator ."
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:15
+msgid "Request failed! Did you make sure your email/username was right?"
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:18
+msgid "You will receive a link to reset your password via Email."
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
+msgid "Username"
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:25
+msgid ""
+"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?"
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:27
+msgid "Yes, I really want to reset my password now"
+msgstr ""
+
+#: lostpassword/templates/lostpassword.php:30
+msgid "Reset"
+msgstr ""
+
+#: lostpassword/templates/resetpassword.php:4
+msgid "Your password was reset"
+msgstr ""
+
+#: lostpassword/templates/resetpassword.php:5
+msgid "To login page"
+msgstr ""
+
+#: lostpassword/templates/resetpassword.php:8
+msgid "New password"
+msgstr ""
+
+#: lostpassword/templates/resetpassword.php:11
+msgid "Reset password"
+msgstr ""
+
+#: strings.php:5
+msgid "Personal"
+msgstr ""
+
+#: strings.php:6
+msgid "Users"
+msgstr ""
+
+#: strings.php:7 templates/layout.user.php:111
+msgid "Apps"
+msgstr ""
+
+#: strings.php:8
+msgid "Admin"
+msgstr ""
+
+#: strings.php:9
+msgid "Help"
+msgstr ""
+
+#: tags/controller.php:22
+msgid "Error loading tags"
+msgstr ""
+
+#: tags/controller.php:48
+msgid "Tag already exists"
+msgstr ""
+
+#: tags/controller.php:64
+msgid "Error deleting tag(s)"
+msgstr ""
+
+#: tags/controller.php:75
+msgid "Error tagging"
+msgstr ""
+
+#: tags/controller.php:86
+msgid "Error untagging"
+msgstr ""
+
+#: tags/controller.php:97
+msgid "Error favoriting"
+msgstr ""
+
+#: tags/controller.php:108
+msgid "Error unfavoriting"
+msgstr ""
+
+#: templates/403.php:12
+msgid "Access forbidden"
+msgstr ""
+
+#: templates/404.php:15
+msgid "Cloud not found"
+msgstr ""
+
+#: templates/altmail.php:2
+#, php-format
+msgid ""
+"Hey there,\n"
+"\n"
+"just letting you know that %s shared %s with you.\n"
+"View it: %s\n"
+"\n"
+msgstr ""
+
+#: templates/altmail.php:4 templates/mail.php:17
+#, php-format
+msgid "The share will expire on %s."
+msgstr ""
+
+#: templates/altmail.php:7 templates/mail.php:20
+msgid "Cheers!"
+msgstr ""
+
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
+msgid "Security Warning"
+msgstr ""
+
+#: templates/installation.php:26
+msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
+msgstr ""
+
+#: templates/installation.php:27
+#, php-format
+msgid "Please update your PHP installation to use %s securely."
+msgstr ""
+
+#: templates/installation.php:33
+msgid ""
+"No secure random number generator is available, please enable the PHP "
+"OpenSSL extension."
+msgstr ""
+
+#: templates/installation.php:34
+msgid ""
+"Without a secure random number generator an attacker may be able to predict "
+"password reset tokens and take over your account."
+msgstr ""
+
+#: templates/installation.php:40
+msgid ""
+"Your data directory and files are probably accessible from the internet "
+"because the .htaccess file does not work."
+msgstr ""
+
+#: templates/installation.php:42
+#, php-format
+msgid ""
+"For information how to properly configure your server, please see the documentation."
+msgstr ""
+
+#: templates/installation.php:48
+msgid "Create an admin account"
+msgstr ""
+
+#: templates/installation.php:67
+msgid "Advanced"
+msgstr ""
+
+#: templates/installation.php:74
+msgid "Data folder"
+msgstr ""
+
+#: templates/installation.php:86
+msgid "Configure the database"
+msgstr ""
+
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
+msgid "will be used"
+msgstr ""
+
+#: templates/installation.php:149
+msgid "Database user"
+msgstr ""
+
+#: templates/installation.php:156
+msgid "Database password"
+msgstr ""
+
+#: templates/installation.php:161
+msgid "Database name"
+msgstr ""
+
+#: templates/installation.php:169
+msgid "Database tablespace"
+msgstr ""
+
+#: templates/installation.php:176
+msgid "Database host"
+msgstr ""
+
+#: templates/installation.php:185
+msgid "Finish setup"
+msgstr ""
+
+#: templates/installation.php:185
+msgid "Finishing …"
+msgstr ""
+
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
+#, php-format
+msgid "%s is available. Get more information on how to update."
+msgstr ""
+
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
+msgid "Log out"
+msgstr ""
+
+#: templates/login.php:9
+msgid "Automatic logon rejected!"
+msgstr ""
+
+#: templates/login.php:10
+msgid ""
+"If you did not change your password recently, your account may be "
+"compromised!"
+msgstr ""
+
+#: templates/login.php:12
+msgid "Please change your password to secure your account again."
+msgstr ""
+
+#: templates/login.php:17
+msgid "Server side authentication failed!"
+msgstr ""
+
+#: templates/login.php:18
+msgid "Please contact your administrator."
+msgstr ""
+
+#: templates/login.php:44
+msgid "Lost your password?"
+msgstr ""
+
+#: templates/login.php:49
+msgid "remember"
+msgstr ""
+
+#: templates/login.php:52
+msgid "Log in"
+msgstr ""
+
+#: templates/login.php:58
+msgid "Alternative Logins"
+msgstr ""
+
+#: templates/mail.php:15
+#, php-format
+msgid ""
+"Hey there,
just letting you know that %s shared »%s« with you. View it!
"
+msgstr ""
+
+#: templates/singleuser.user.php:3
+msgid "This ownCloud instance is currently in single user mode."
+msgstr ""
+
+#: templates/singleuser.user.php:4
+msgid "This means only administrators can use the instance."
+msgstr ""
+
+#: templates/singleuser.user.php:5 templates/update.user.php:5
+msgid ""
+"Contact your system administrator if this message persists or appeared "
+"unexpectedly."
+msgstr ""
+
+#: templates/singleuser.user.php:7 templates/update.user.php:6
+msgid "Thank you for your patience."
+msgstr ""
+
+#: templates/update.admin.php:3
+#, php-format
+msgid "Updating ownCloud to version %s, this may take a while."
+msgstr ""
+
+#: templates/update.user.php:3
+msgid ""
+"This ownCloud instance is currently being updated, which may take a while."
+msgstr ""
+
+#: templates/update.user.php:4
+msgid "Please reload this page after a short time to continue using ownCloud."
+msgstr ""
diff --git a/l10n/ru_RU/files.po b/l10n/ak/files.po
similarity index 86%
rename from l10n/ru_RU/files.po
rename to l10n/ak/files.po
index a21a9b7bb14..4544710bb34 100644
--- a/l10n/ru_RU/files.po
+++ b/l10n/ak/files.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:40+0000\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: ajax/move.php:17
#, php-format
@@ -29,7 +29,7 @@ msgstr ""
#: ajax/newfile.php:56 js/files.js:74
msgid "File name cannot be empty."
-msgstr "Имя файла не может быть пустым."
+msgstr ""
#: ajax/newfile.php:62
msgid "File name must not contain \"/\". Please choose a different name."
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -128,7 +133,7 @@ msgstr ""
#: appinfo/app.php:11
msgid "Files"
-msgstr "Файлы"
+msgstr ""
#: js/file-upload.js:228
msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
@@ -171,9 +176,13 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
-msgstr "Сделать общим"
+msgstr ""
#: js/fileactions.js:137
msgid "Delete permanently"
@@ -181,7 +190,7 @@ msgstr ""
#: js/fileactions.js:194
msgid "Rename"
-msgstr "Переименовать"
+msgstr ""
#: js/filelist.js:69 js/filelist.js:72 js/filelist.js:889
msgid "Pending"
@@ -208,14 +217,12 @@ msgid "%n folder"
msgid_plural "%n folders"
msgstr[0] ""
msgstr[1] ""
-msgstr[2] ""
#: js/filelist.js:610 js/filelist.js:684 js/files.js:637
msgid "%n file"
msgid_plural "%n files"
msgstr[0] ""
msgstr[1] ""
-msgstr[2] ""
#: js/filelist.js:617
msgid "{dirs} and {files}"
@@ -226,17 +233,16 @@ msgid "Uploading %n file"
msgid_plural "Uploading %n files"
msgstr[0] ""
msgstr[1] ""
-msgstr[2] ""
#: js/files.js:72
msgid "'.' is an invalid file name."
-msgstr "'.' является неверным именем файла."
+msgstr ""
#: js/files.js:81
msgid ""
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not "
"allowed."
-msgstr "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы."
+msgstr ""
#: js/files.js:93
msgid "Your storage is full, files can not be updated or synced anymore!"
@@ -277,7 +283,7 @@ msgstr ""
#: js/files.js:558 js/files.js:596
msgid "Error"
-msgstr "Ошибка"
+msgstr ""
#: js/files.js:613 templates/index.php:56
msgid "Name"
@@ -285,7 +291,7 @@ msgstr ""
#: js/files.js:614 templates/index.php:68
msgid "Size"
-msgstr "Размер"
+msgstr ""
#: js/files.js:615 templates/index.php:70
msgid "Modified"
@@ -302,7 +308,7 @@ msgstr ""
#: lib/helper.php:11 templates/index.php:16
msgid "Upload"
-msgstr "Загрузка"
+msgstr ""
#: templates/admin.php:5
msgid "File handling"
@@ -334,7 +340,7 @@ msgstr ""
#: templates/admin.php:26
msgid "Save"
-msgstr "Сохранить"
+msgstr ""
#: templates/index.php:5
msgid "New"
@@ -366,7 +372,7 @@ msgstr ""
#: templates/index.php:34
msgid "Cancel upload"
-msgstr "Отмена загрузки"
+msgstr ""
#: templates/index.php:40
msgid "You don’t have permission to upload or create files here"
@@ -378,31 +384,27 @@ msgstr ""
#: templates/index.php:62
msgid "Download"
-msgstr "Загрузка"
-
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
msgstr ""
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
-msgstr "Удалить"
+msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/ak/files_encryption.po b/l10n/ak/files_encryption.po
new file mode 100644
index 00000000000..b2b29d74f0a
--- /dev/null
+++ b/l10n/ak/files_encryption.po
@@ -0,0 +1,201 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:49
+msgid "Password successfully changed."
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:51
+msgid "Could not change the password. Maybe the old password was not correct."
+msgstr ""
+
+#: ajax/updatePrivateKeyPassword.php:52
+msgid "Private key password successfully updated."
+msgstr ""
+
+#: ajax/updatePrivateKeyPassword.php:54
+msgid ""
+"Could not update the private key password. Maybe the old password was not "
+"correct."
+msgstr ""
+
+#: files/error.php:12
+msgid ""
+"Encryption app not initialized! Maybe the encryption app was re-enabled "
+"during your session. Please try to log out and log back in to initialize the"
+" encryption app."
+msgstr ""
+
+#: files/error.php:16
+#, php-format
+msgid ""
+"Your private key is not valid! Likely your password was changed outside of "
+"%s (e.g. your corporate directory). You can update your private key password"
+" in your personal settings to recover access to your encrypted files."
+msgstr ""
+
+#: files/error.php:19
+msgid ""
+"Can not decrypt this file, probably this is a shared file. Please ask the "
+"file owner to reshare the file with you."
+msgstr ""
+
+#: files/error.php:22 files/error.php:27
+msgid ""
+"Unknown error please check your system settings or contact your "
+"administrator"
+msgstr ""
+
+#: hooks/hooks.php:62
+msgid "Missing requirements."
+msgstr ""
+
+#: hooks/hooks.php:63
+msgid ""
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
+"together with the PHP extension is enabled and configured properly. For now,"
+" the encryption app has been disabled."
+msgstr ""
+
+#: hooks/hooks.php:281
+msgid "Following users are not set up for encryption:"
+msgstr ""
+
+#: js/detect-migration.js:21
+msgid "Initial encryption started... This can take some time. Please wait."
+msgstr ""
+
+#: js/settings-admin.js:13
+msgid "Saving..."
+msgstr ""
+
+#: templates/invalid_private_key.php:8
+msgid "Go directly to your "
+msgstr ""
+
+#: templates/invalid_private_key.php:8
+msgid "personal settings"
+msgstr ""
+
+#: templates/settings-admin.php:4 templates/settings-personal.php:3
+msgid "Encryption"
+msgstr ""
+
+#: templates/settings-admin.php:7
+msgid ""
+"Enable recovery key (allow to recover users files in case of password loss):"
+msgstr ""
+
+#: templates/settings-admin.php:11
+msgid "Recovery key password"
+msgstr ""
+
+#: templates/settings-admin.php:14
+msgid "Repeat Recovery key password"
+msgstr ""
+
+#: templates/settings-admin.php:21 templates/settings-personal.php:51
+msgid "Enabled"
+msgstr ""
+
+#: templates/settings-admin.php:29 templates/settings-personal.php:59
+msgid "Disabled"
+msgstr ""
+
+#: templates/settings-admin.php:34
+msgid "Change recovery key password:"
+msgstr ""
+
+#: templates/settings-admin.php:40
+msgid "Old Recovery key password"
+msgstr ""
+
+#: templates/settings-admin.php:47
+msgid "New Recovery key password"
+msgstr ""
+
+#: templates/settings-admin.php:53
+msgid "Repeat New Recovery key password"
+msgstr ""
+
+#: templates/settings-admin.php:58
+msgid "Change Password"
+msgstr ""
+
+#: templates/settings-personal.php:9
+msgid "Your private key password no longer match your log-in password:"
+msgstr ""
+
+#: templates/settings-personal.php:12
+msgid "Set your old private key password to your current log-in password."
+msgstr ""
+
+#: templates/settings-personal.php:14
+msgid ""
+" If you don't remember your old password you can ask your administrator to "
+"recover your files."
+msgstr ""
+
+#: templates/settings-personal.php:22
+msgid "Old log-in password"
+msgstr ""
+
+#: templates/settings-personal.php:28
+msgid "Current log-in password"
+msgstr ""
+
+#: templates/settings-personal.php:33
+msgid "Update Private Key Password"
+msgstr ""
+
+#: templates/settings-personal.php:42
+msgid "Enable password recovery:"
+msgstr ""
+
+#: templates/settings-personal.php:44
+msgid ""
+"Enabling this option will allow you to reobtain access to your encrypted "
+"files in case of password loss"
+msgstr ""
+
+#: templates/settings-personal.php:60
+msgid "File recovery settings updated"
+msgstr ""
+
+#: templates/settings-personal.php:61
+msgid "Could not update file recovery"
+msgstr ""
diff --git a/l10n/ru_RU/files_external.po b/l10n/ak/files_external.po
similarity index 83%
rename from l10n/ru_RU/files_external.po
rename to l10n/ak/files_external.po
index a5c9cc66b99..95dcbe86db8 100644
--- a/l10n/ru_RU/files_external.po
+++ b/l10n/ak/files_external.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-16 07:50+0000\n"
-"Last-Translator: masensio \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: js/dropbox.js:7 js/dropbox.js:28 js/google.js:8 js/google.js:39
msgid "Access granted"
@@ -37,20 +37,20 @@ msgstr ""
msgid "Error configuring Google Drive storage"
msgstr ""
-#: lib/config.php:461
+#: lib/config.php:467
msgid ""
"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it."
msgstr ""
-#: lib/config.php:465
+#: lib/config.php:471
msgid ""
"Warning: The FTP support in PHP is not enabled or installed. Mounting"
" of FTP shares is not possible. Please ask your system administrator to "
"install it."
msgstr ""
-#: lib/config.php:468
+#: lib/config.php:474
msgid ""
"Warning: The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
@@ -75,7 +75,7 @@ msgstr ""
#: templates/settings.php:12
msgid "Options"
-msgstr "Опции"
+msgstr ""
#: templates/settings.php:13
msgid "Applicable"
@@ -104,7 +104,7 @@ msgstr ""
#: templates/settings.php:113 templates/settings.php:114
#: templates/settings.php:149 templates/settings.php:150
msgid "Delete"
-msgstr "Удалить"
+msgstr ""
#: templates/settings.php:129
msgid "Enable User External Storage"
diff --git a/l10n/ru_RU/files_sharing.po b/l10n/ak/files_sharing.po
similarity index 78%
rename from l10n/ru_RU/files_sharing.po
rename to l10n/ak/files_sharing.po
index d2ba5dc90dc..da92ef7b372 100644
--- a/l10n/ru_RU/files_sharing.po
+++ b/l10n/ak/files_sharing.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-15 22:54-0500\n"
-"PO-Revision-Date: 2013-11-13 16:11+0000\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: templates/authenticate.php:4
msgid "This share is password-protected"
@@ -27,7 +27,7 @@ msgstr ""
#: templates/authenticate.php:10
msgid "Password"
-msgstr "Пароль"
+msgstr ""
#: templates/part.404.php:3
msgid "Sorry, this link doesn’t seem to work anymore."
@@ -65,15 +65,15 @@ msgstr ""
#: templates/public.php:29 templates/public.php:95
msgid "Download"
-msgstr "Загрузка"
+msgstr ""
#: templates/public.php:46 templates/public.php:49
msgid "Upload"
-msgstr "Загрузка"
+msgstr ""
#: templates/public.php:59
msgid "Cancel upload"
-msgstr "Отмена загрузки"
+msgstr ""
#: templates/public.php:92
msgid "No preview available for"
diff --git a/l10n/ak/files_trashbin.po b/l10n/ak/files_trashbin.po
new file mode 100644
index 00000000000..ee5c134734d
--- /dev/null
+++ b/l10n/ak/files_trashbin.po
@@ -0,0 +1,60 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: ajax/delete.php:63
+#, php-format
+msgid "Couldn't delete %s permanently"
+msgstr ""
+
+#: ajax/undelete.php:43
+#, php-format
+msgid "Couldn't restore %s"
+msgstr ""
+
+#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
+msgid "Error"
+msgstr ""
+
+#: lib/trashbin.php:905 lib/trashbin.php:907
+msgid "restored"
+msgstr ""
+
+#: templates/index.php:7
+msgid "Nothing in here. Your trash bin is empty!"
+msgstr ""
+
+#: templates/index.php:20
+msgid "Name"
+msgstr ""
+
+#: templates/index.php:23 templates/index.php:25
+msgid "Restore"
+msgstr ""
+
+#: templates/index.php:31
+msgid "Deleted"
+msgstr ""
+
+#: templates/index.php:34 templates/index.php:35
+msgid "Delete"
+msgstr ""
+
+#: templates/part.breadcrumb.php:8
+msgid "Deleted Files"
+msgstr ""
diff --git a/l10n/ru_RU/files_versions.po b/l10n/ak/files_versions.po
similarity index 62%
rename from l10n/ru_RU/files_versions.po
rename to l10n/ak/files_versions.po
index 62c11500eb4..8d9c2e6ff62 100644
--- a/l10n/ru_RU/files_versions.po
+++ b/l10n/ak/files_versions.po
@@ -6,16 +6,16 @@
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-10-19 08:26-0400\n"
-"PO-Revision-Date: 2013-10-18 09:15+0000\n"
-"Last-Translator: masensio \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: ajax/rollbackVersion.php:13
#, php-format
diff --git a/l10n/ak/lib.po b/l10n/ak/lib.po
new file mode 100644
index 00000000000..3778c524ce2
--- /dev/null
+++ b/l10n/ak/lib.po
@@ -0,0 +1,333 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#: private/app.php:245
+#, php-format
+msgid ""
+"App \"%s\" can't be installed because it is not compatible with this version"
+" of ownCloud."
+msgstr ""
+
+#: private/app.php:257
+msgid "No app name specified"
+msgstr ""
+
+#: private/app.php:362
+msgid "Help"
+msgstr ""
+
+#: private/app.php:375
+msgid "Personal"
+msgstr ""
+
+#: private/app.php:386
+msgid "Settings"
+msgstr ""
+
+#: private/app.php:398
+msgid "Users"
+msgstr ""
+
+#: private/app.php:411
+msgid "Admin"
+msgstr ""
+
+#: private/app.php:875
+#, php-format
+msgid "Failed to upgrade \"%s\"."
+msgstr ""
+
+#: private/avatar.php:66
+msgid "Unknown filetype"
+msgstr ""
+
+#: private/avatar.php:71
+msgid "Invalid image"
+msgstr ""
+
+#: private/defaults.php:34
+msgid "web services under your control"
+msgstr ""
+
+#: private/files.php:66 private/files.php:98
+#, php-format
+msgid "cannot open \"%s\""
+msgstr ""
+
+#: private/files.php:231
+msgid "ZIP download is turned off."
+msgstr ""
+
+#: private/files.php:232
+msgid "Files need to be downloaded one by one."
+msgstr ""
+
+#: private/files.php:233 private/files.php:261
+msgid "Back to Files"
+msgstr ""
+
+#: private/files.php:258
+msgid "Selected files too large to generate zip file."
+msgstr ""
+
+#: private/files.php:259
+msgid ""
+"Please download the files separately in smaller chunks or kindly ask your "
+"administrator."
+msgstr ""
+
+#: private/installer.php:63
+msgid "No source specified when installing app"
+msgstr ""
+
+#: private/installer.php:70
+msgid "No href specified when installing app from http"
+msgstr ""
+
+#: private/installer.php:75
+msgid "No path specified when installing app from local file"
+msgstr ""
+
+#: private/installer.php:89
+#, php-format
+msgid "Archives of type %s are not supported"
+msgstr ""
+
+#: private/installer.php:103
+msgid "Failed to open archive when installing app"
+msgstr ""
+
+#: private/installer.php:125
+msgid "App does not provide an info.xml file"
+msgstr ""
+
+#: private/installer.php:131
+msgid "App can't be installed because of not allowed code in the App"
+msgstr ""
+
+#: private/installer.php:140
+msgid ""
+"App can't be installed because it is not compatible with this version of "
+"ownCloud"
+msgstr ""
+
+#: private/installer.php:146
+msgid ""
+"App can't be installed because it contains the true tag "
+"which is not allowed for non shipped apps"
+msgstr ""
+
+#: private/installer.php:159
+msgid ""
+"App can't be installed because the version in info.xml/version is not the "
+"same as the version reported from the app store"
+msgstr ""
+
+#: private/installer.php:169
+msgid "App directory already exists"
+msgstr ""
+
+#: private/installer.php:182
+#, php-format
+msgid "Can't create app folder. Please fix permissions. %s"
+msgstr ""
+
+#: private/json.php:28
+msgid "Application is not enabled"
+msgstr ""
+
+#: private/json.php:39 private/json.php:62 private/json.php:73
+msgid "Authentication error"
+msgstr ""
+
+#: private/json.php:51
+msgid "Token expired. Please reload page."
+msgstr ""
+
+#: private/search/provider/file.php:18 private/search/provider/file.php:36
+msgid "Files"
+msgstr ""
+
+#: private/search/provider/file.php:27 private/search/provider/file.php:34
+msgid "Text"
+msgstr ""
+
+#: private/search/provider/file.php:30
+msgid "Images"
+msgstr ""
+
+#: private/setup/abstractdatabase.php:26
+#, php-format
+msgid "%s enter the database username."
+msgstr ""
+
+#: private/setup/abstractdatabase.php:29
+#, php-format
+msgid "%s enter the database name."
+msgstr ""
+
+#: private/setup/abstractdatabase.php:32
+#, php-format
+msgid "%s you may not use dots in the database name"
+msgstr ""
+
+#: private/setup/mssql.php:20
+#, php-format
+msgid "MS SQL username and/or password not valid: %s"
+msgstr ""
+
+#: private/setup/mssql.php:21 private/setup/mysql.php:13
+#: private/setup/oci.php:114 private/setup/postgresql.php:24
+#: private/setup/postgresql.php:70
+msgid "You need to enter either an existing account or the administrator."
+msgstr ""
+
+#: private/setup/mysql.php:12
+msgid "MySQL username and/or password not valid"
+msgstr ""
+
+#: private/setup/mysql.php:67 private/setup/oci.php:54
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
+#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
+#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
+#, php-format
+msgid "DB Error: \"%s\""
+msgstr ""
+
+#: private/setup/mysql.php:68 private/setup/oci.php:55
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
+#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
+#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
+#, php-format
+msgid "Offending command was: \"%s\""
+msgstr ""
+
+#: private/setup/mysql.php:85
+#, php-format
+msgid "MySQL user '%s'@'localhost' exists already."
+msgstr ""
+
+#: private/setup/mysql.php:86
+msgid "Drop this user from MySQL"
+msgstr ""
+
+#: private/setup/mysql.php:91
+#, php-format
+msgid "MySQL user '%s'@'%%' already exists"
+msgstr ""
+
+#: private/setup/mysql.php:92
+msgid "Drop this user from MySQL."
+msgstr ""
+
+#: private/setup/oci.php:34
+msgid "Oracle connection could not be established"
+msgstr ""
+
+#: private/setup/oci.php:41 private/setup/oci.php:113
+msgid "Oracle username and/or password not valid"
+msgstr ""
+
+#: private/setup/oci.php:170 private/setup/oci.php:202
+#, php-format
+msgid "Offending command was: \"%s\", name: %s, password: %s"
+msgstr ""
+
+#: private/setup/postgresql.php:23 private/setup/postgresql.php:69
+msgid "PostgreSQL username and/or password not valid"
+msgstr ""
+
+#: private/setup.php:28
+msgid "Set an admin username."
+msgstr ""
+
+#: private/setup.php:31
+msgid "Set an admin password."
+msgstr ""
+
+#: private/setup.php:195
+msgid ""
+"Your web server is not yet properly setup to allow files synchronization "
+"because the WebDAV interface seems to be broken."
+msgstr ""
+
+#: private/setup.php:196
+#, php-format
+msgid "Please double check the installation guides."
+msgstr ""
+
+#: private/tags.php:194
+#, php-format
+msgid "Could not find category \"%s\""
+msgstr ""
+
+#: private/template/functions.php:130
+msgid "seconds ago"
+msgstr ""
+
+#: private/template/functions.php:131
+msgid "%n minute ago"
+msgid_plural "%n minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: private/template/functions.php:132
+msgid "%n hour ago"
+msgid_plural "%n hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: private/template/functions.php:133
+msgid "today"
+msgstr ""
+
+#: private/template/functions.php:134
+msgid "yesterday"
+msgstr ""
+
+#: private/template/functions.php:136
+msgid "%n day go"
+msgid_plural "%n days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: private/template/functions.php:138
+msgid "last month"
+msgstr ""
+
+#: private/template/functions.php:139
+msgid "%n month ago"
+msgid_plural "%n months ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: private/template/functions.php:141
+msgid "last year"
+msgstr ""
+
+#: private/template/functions.php:142
+msgid "years ago"
+msgstr ""
diff --git a/l10n/ru_RU/settings.po b/l10n/ak/settings.po
similarity index 95%
rename from l10n/ru_RU/settings.po
rename to l10n/ak/settings.po
index a32ddd5a833..90a872fc261 100644
--- a/l10n/ru_RU/settings.po
+++ b/l10n/ak/settings.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-04 18:12-0500\n"
-"PO-Revision-Date: 2013-12-04 23:13+0000\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: ajax/apps/ocs.php:20
msgid "Unable to load list from App Store"
@@ -147,7 +147,7 @@ msgstr ""
#: js/apps.js:128
msgid "Error"
-msgstr "Ошибка"
+msgstr ""
#: js/apps.js:129 templates/apps.php:43
msgid "Update"
@@ -192,25 +192,25 @@ msgstr ""
#: js/users.js:123 templates/users.php:170
msgid "Delete"
-msgstr "Удалить"
+msgstr ""
#: js/users.js:284
msgid "add group"
msgstr ""
-#: js/users.js:451
+#: js/users.js:454
msgid "A valid username must be provided"
msgstr ""
-#: js/users.js:452 js/users.js:458 js/users.js:473
+#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr ""
-#: js/users.js:457
+#: js/users.js:460
msgid "A valid password must be provided"
msgstr ""
-#: js/users.js:481
+#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr ""
@@ -429,7 +429,7 @@ msgstr ""
#: templates/admin.php:287
msgid "More"
-msgstr "Подробнее"
+msgstr ""
#: templates/admin.php:288
msgid "Less"
@@ -508,7 +508,7 @@ msgstr ""
#: templates/personal.php:39 templates/users.php:23 templates/users.php:89
msgid "Password"
-msgstr "Пароль"
+msgstr ""
#: templates/personal.php:40
msgid "Your password was changed"
@@ -619,7 +619,7 @@ msgstr ""
#: templates/users.php:30
msgid "Create"
-msgstr "Создать"
+msgstr ""
#: templates/users.php:36
msgid "Admin Recovery Password"
@@ -649,7 +649,7 @@ msgstr ""
#: templates/users.php:87
msgid "Username"
-msgstr "Имя пользователя"
+msgstr ""
#: templates/users.php:94
msgid "Storage"
diff --git a/l10n/ru_RU/user_ldap.po b/l10n/ak/user_ldap.po
similarity index 92%
rename from l10n/ru_RU/user_ldap.po
rename to l10n/ak/user_ldap.po
index c247f96fcea..3e48b498995 100644
--- a/l10n/ru_RU/user_ldap.po
+++ b/l10n/ak/user_ldap.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: ajax/clearMappings.php:34
msgid "Failed to clear the mappings."
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -84,45 +84,45 @@ msgstr ""
#: js/settings.js:133
msgid "Error"
-msgstr "Ошибка"
+msgstr ""
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
-msgstr "Выбрать группы"
+msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -132,7 +132,6 @@ msgid "%s group found"
msgid_plural "%s groups found"
msgstr[0] ""
msgstr[1] ""
-msgstr[2] ""
#: lib/wizard.php:122
#, php-format
@@ -140,19 +139,18 @@ msgid "%s user found"
msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-msgstr[2] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
#: templates/part.settingcontrols.php:2
msgid "Save"
-msgstr "Сохранить"
+msgstr ""
#: templates/part.settingcontrols.php:4
msgid "Test Configuration"
@@ -160,7 +158,7 @@ msgstr ""
#: templates/part.settingcontrols.php:10 templates/part.wizardcontrols.php:14
msgid "Help"
-msgstr "Помощь"
+msgstr ""
#: templates/part.wizard-groupfilter.php:4
#, php-format
@@ -252,7 +250,7 @@ msgstr ""
#: templates/part.wizard-server.php:52
msgid "Password"
-msgstr "Пароль"
+msgstr ""
#: templates/part.wizard-server.php:53
msgid "For anonymous access, leave DN and Password empty."
@@ -283,7 +281,7 @@ msgstr ""
#: templates/part.wizardcontrols.php:5
msgid "Back"
-msgstr "Назад"
+msgstr ""
#: templates/part.wizardcontrols.php:8
msgid "Continue"
diff --git a/l10n/ru_RU/user_webdavauth.po b/l10n/ak/user_webdavauth.po
similarity index 56%
rename from l10n/ru_RU/user_webdavauth.po
rename to l10n/ak/user_webdavauth.po
index c8612e2f644..d1477c074ad 100644
--- a/l10n/ru_RU/user_webdavauth.po
+++ b/l10n/ak/user_webdavauth.po
@@ -3,22 +3,19 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# AnnaSch , 2013
-# AnnaSch , 2012
-# skoptev , 2012
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-10-19 08:26-0400\n"
-"PO-Revision-Date: 2013-10-18 09:15+0000\n"
-"Last-Translator: masensio \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-30 01:55-0500\n"
+"PO-Revision-Date: 2013-12-29 13:18+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Akan (http://www.transifex.com/projects/p/owncloud/language/ak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ak\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
#: templates/settings.php:3
msgid "WebDAV Authentication"
diff --git a/l10n/ar/core.po b/l10n/ar/core.po
index 8a1da67d7fc..5cc97810f1f 100644
--- a/l10n/ar/core.po
+++ b/l10n/ar/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -149,15 +149,15 @@ msgstr "تشرين الثاني"
msgid "December"
msgstr "كانون الاول"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "إعدادات"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "منذ ثواني"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
@@ -167,7 +167,7 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
@@ -177,15 +177,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "اليوم"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "يوم أمس"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
@@ -195,11 +195,11 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "الشهر الماضي"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
@@ -209,15 +209,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "شهر مضى"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "السنةالماضية"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "سنة مضت"
@@ -298,7 +298,7 @@ msgid "Share"
msgstr "شارك"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "خطأ"
@@ -334,7 +334,7 @@ msgstr ""
msgid "Password protect"
msgstr "حماية كلمة السر"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "كلمة المرور"
@@ -410,7 +410,7 @@ msgstr "حذف"
msgid "share"
msgstr "مشاركة"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "محمي بكلمة السر"
@@ -501,8 +501,8 @@ msgstr "الطلب رفض! هل انت متأكد أن الاسم/العن
msgid "You will receive a link to reset your password via Email."
msgstr "سوف نرسل لك بريد يحتوي على وصلة لتجديد كلمة السر."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "إسم المستخدم"
@@ -546,7 +546,7 @@ msgstr "شخصي"
msgid "Users"
msgstr "المستخدمين"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "التطبيقات"
@@ -613,101 +613,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "تحذير أمان"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "لا يوجد مولّد أرقام عشوائية ، الرجاء تفعيل الـ PHP OpenSSL extension."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "بدون وجود مولد أرقام عشوائية آمن قد يتمكن المهاجم من التنبؤ بكلمات اعادة ضبط كلمة المرور والتمكن من السيطرة على حسابك"
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "مجلدات البيانات والملفات الخاصة قد تكون قابلة للوصول اليها عن طريق شبكة الانترنت وذلك بسبب ان ملف .htaccess لا يعمل بشكل صحيح."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "أضف مستخدم رئيسي "
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "تعديلات متقدمه"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "مجلد المعلومات"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "أسس قاعدة البيانات"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "سيتم استخدمه"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "مستخدم قاعدة البيانات"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "كلمة سر مستخدم قاعدة البيانات"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "إسم قاعدة البيانات"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "مساحة جدول قاعدة البيانات"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "خادم قاعدة البيانات"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "انهاء التعديلات"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "الخروج"
@@ -733,19 +740,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "هل نسيت كلمة السر؟"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "تذكر"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "أدخل"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "اسماء دخول بديلة"
diff --git a/l10n/ar/files.po b/l10n/ar/files.po
index e55bddf0e24..90e08509578 100644
--- a/l10n/ar/files.po
+++ b/l10n/ar/files.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -48,12 +48,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -173,6 +178,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "شارك"
@@ -391,29 +400,25 @@ msgstr "لا يوجد شيء هنا. إرفع بعض الملفات!"
msgid "Download"
msgstr "تحميل"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "إلغاء مشاركة"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "إلغاء"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "حجم الترفيع أعلى من المسموح"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "يرجى الانتظار , جاري فحص الملفات ."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "الفحص الحالي"
diff --git a/l10n/ar/lib.po b/l10n/ar/lib.po
index 71b1097504f..1bbf18cbd76 100644
--- a/l10n/ar/lib.po
+++ b/l10n/ar/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr "المدير"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "خدمات الشبكة تحت سيطرتك"
@@ -70,23 +70,23 @@ msgstr "خدمات الشبكة تحت سيطرتك"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "تحميل ملفات ZIP متوقف"
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "الملفات بحاجة الى ان يتم تحميلها واحد تلو الاخر"
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "العودة الى الملفات"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "الملفات المحددة كبيرة جدا ليتم ضغطها في ملف zip"
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr "معلومات إضافية"
msgid "Images"
msgstr "صور"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s ادخل اسم المستخدم الخاص بقاعدة البيانات."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s ادخل اسم فاعدة البيانات"
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s لا يسمح لك باستخدام نقطه (.) في اسم قاعدة البيانات"
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr "اسم المستخدم و/أو كلمة المرور لنظام MySQL غير صحيح"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr "خطأ في قواعد البيانات : \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr "اسم المستخدم و/أو كلمة المرور لنظام Oracle غير صحيح"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "الأمر المخالف كان : \"%s\", اسم المستخدم : %s, كلمة المرور: %s"
@@ -347,7 +347,3 @@ msgstr "السنةالماضية"
#: private/template/functions.php:142
msgid "years ago"
msgstr "سنة مضت"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po
index 5d9ee639dad..3afffadb9e0 100644
--- a/l10n/ar/user_ldap.po
+++ b/l10n/ar/user_ldap.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -86,43 +86,43 @@ msgstr ""
msgid "Error"
msgstr "خطأ"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "إختر مجموعة"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -148,11 +148,11 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/ru_RU/core.po b/l10n/az/core.po
similarity index 86%
rename from l10n/ru_RU/core.po
rename to l10n/az/core.po
index 7af83e23b8d..2b88a23c466 100644
--- a/l10n/ru_RU/core.po
+++ b/l10n/az/core.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: ajax/share.php:119 ajax/share.php:198
#, php-format
@@ -150,7 +150,7 @@ msgstr ""
#: js/js.js:387
msgid "Settings"
-msgstr "Настройки"
+msgstr ""
#: js/js.js:858
msgid "seconds ago"
@@ -160,15 +160,11 @@ msgstr ""
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
#: js/js.js:860
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
#: js/js.js:861
msgid "today"
@@ -182,8 +178,6 @@ msgstr ""
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
#: js/js.js:864
msgid "last month"
@@ -193,8 +187,6 @@ msgstr ""
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
#: js/js.js:866
msgid "months ago"
@@ -218,11 +210,11 @@ msgstr ""
#: js/oc-dialogs.js:172
msgid "Yes"
-msgstr "Да"
+msgstr ""
#: js/oc-dialogs.js:182
msgid "No"
-msgstr "Нет"
+msgstr ""
#: js/oc-dialogs.js:199
msgid "Ok"
@@ -236,8 +228,6 @@ msgstr ""
msgid "{count} file conflict"
msgid_plural "{count} file conflicts"
msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
#: js/oc-dialogs.js:361
msgid "One file conflict"
@@ -255,7 +245,7 @@ msgstr ""
#: js/oc-dialogs.js:376
msgid "Cancel"
-msgstr "Отмена"
+msgstr ""
#: js/oc-dialogs.js:386
msgid "Continue"
@@ -279,12 +269,12 @@ msgstr ""
#: js/share.js:109
msgid "Share"
-msgstr "Сделать общим"
+msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
-msgstr "Ошибка"
+msgstr ""
#: js/share.js:160 js/share.js:747
msgid "Error while sharing"
@@ -318,9 +308,9 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
-msgstr "Пароль"
+msgstr ""
#: js/share.js:229
msgid "Allow Public Upload"
@@ -372,7 +362,7 @@ msgstr ""
#: js/share.js:408
msgid "can edit"
-msgstr "возможно редактирование"
+msgstr ""
#: js/share.js:410
msgid "access control"
@@ -394,7 +384,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -416,7 +406,7 @@ msgstr ""
#: js/share.js:769
msgid "Warning"
-msgstr "Предупреждение"
+msgstr ""
#: js/tags.js:4
msgid "The object type is not specified."
@@ -428,7 +418,7 @@ msgstr ""
#: js/tags.js:27
msgid "Delete"
-msgstr "Удалить"
+msgstr ""
#: js/tags.js:31
msgid "Add"
@@ -485,10 +475,10 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
-msgstr "Имя пользователя"
+msgstr ""
#: lostpassword/templates/lostpassword.php:25
msgid ""
@@ -530,7 +520,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -540,7 +530,7 @@ msgstr ""
#: strings.php:9
msgid "Help"
-msgstr "Помощь"
+msgstr ""
#: tags/controller.php:22
msgid "Error loading tags"
@@ -597,101 +587,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -717,19 +714,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/az/files.po b/l10n/az/files.po
new file mode 100644
index 00000000000..75cfc77660a
--- /dev/null
+++ b/l10n/az/files.po
@@ -0,0 +1,410 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ajax/move.php:17
+#, php-format
+msgid "Could not move %s - File with this name already exists"
+msgstr ""
+
+#: ajax/move.php:27 ajax/move.php:30
+#, php-format
+msgid "Could not move %s"
+msgstr ""
+
+#: ajax/newfile.php:56 js/files.js:74
+msgid "File name cannot be empty."
+msgstr ""
+
+#: ajax/newfile.php:62
+msgid "File name must not contain \"/\". Please choose a different name."
+msgstr ""
+
+#: ajax/newfile.php:72 ajax/newfolder.php:37 lib/app.php:67
+#, php-format
+msgid ""
+"The name %s is already used in the folder %s. Please choose a different "
+"name."
+msgstr ""
+
+#: ajax/newfile.php:81
+msgid "Not a valid source"
+msgstr ""
+
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
+#, php-format
+msgid "Error while downloading %s to %s"
+msgstr ""
+
+#: ajax/newfile.php:140
+msgid "Error when creating the file"
+msgstr ""
+
+#: ajax/newfolder.php:21
+msgid "Folder name cannot be empty."
+msgstr ""
+
+#: ajax/newfolder.php:27
+msgid "Folder name must not contain \"/\". Please choose a different name."
+msgstr ""
+
+#: ajax/newfolder.php:56
+msgid "Error when creating the folder"
+msgstr ""
+
+#: ajax/upload.php:18 ajax/upload.php:50
+msgid "Unable to set upload directory."
+msgstr ""
+
+#: ajax/upload.php:27
+msgid "Invalid Token"
+msgstr ""
+
+#: ajax/upload.php:64
+msgid "No file was uploaded. Unknown error"
+msgstr ""
+
+#: ajax/upload.php:71
+msgid "There is no error, the file uploaded with success"
+msgstr ""
+
+#: ajax/upload.php:72
+msgid ""
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: "
+msgstr ""
+
+#: ajax/upload.php:74
+msgid ""
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
+"the HTML form"
+msgstr ""
+
+#: ajax/upload.php:75
+msgid "The uploaded file was only partially uploaded"
+msgstr ""
+
+#: ajax/upload.php:76
+msgid "No file was uploaded"
+msgstr ""
+
+#: ajax/upload.php:77
+msgid "Missing a temporary folder"
+msgstr ""
+
+#: ajax/upload.php:78
+msgid "Failed to write to disk"
+msgstr ""
+
+#: ajax/upload.php:96
+msgid "Not enough storage available"
+msgstr ""
+
+#: ajax/upload.php:127 ajax/upload.php:154
+msgid "Upload failed. Could not get file info."
+msgstr ""
+
+#: ajax/upload.php:144
+msgid "Upload failed. Could not find uploaded file"
+msgstr ""
+
+#: ajax/upload.php:172
+msgid "Invalid directory."
+msgstr ""
+
+#: appinfo/app.php:11
+msgid "Files"
+msgstr ""
+
+#: js/file-upload.js:228
+msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
+msgstr ""
+
+#: js/file-upload.js:239
+msgid "Not enough space available"
+msgstr ""
+
+#: js/file-upload.js:306
+msgid "Upload cancelled."
+msgstr ""
+
+#: js/file-upload.js:344
+msgid "Could not get result from server."
+msgstr ""
+
+#: js/file-upload.js:436
+msgid ""
+"File upload is in progress. Leaving the page now will cancel the upload."
+msgstr ""
+
+#: js/file-upload.js:523
+msgid "URL cannot be empty"
+msgstr ""
+
+#: js/file-upload.js:527 js/filelist.js:377
+msgid "In the home folder 'Shared' is a reserved filename"
+msgstr ""
+
+#: js/file-upload.js:529 js/filelist.js:379
+msgid "{new_name} already exists"
+msgstr ""
+
+#: js/file-upload.js:595
+msgid "Could not create file"
+msgstr ""
+
+#: js/file-upload.js:611
+msgid "Could not create folder"
+msgstr ""
+
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
+#: js/fileactions.js:125
+msgid "Share"
+msgstr ""
+
+#: js/fileactions.js:137
+msgid "Delete permanently"
+msgstr ""
+
+#: js/fileactions.js:194
+msgid "Rename"
+msgstr ""
+
+#: js/filelist.js:69 js/filelist.js:72 js/filelist.js:889
+msgid "Pending"
+msgstr ""
+
+#: js/filelist.js:405
+msgid "Could not rename file"
+msgstr ""
+
+#: js/filelist.js:539
+msgid "replaced {new_name} with {old_name}"
+msgstr ""
+
+#: js/filelist.js:539
+msgid "undo"
+msgstr ""
+
+#: js/filelist.js:591
+msgid "Error deleting file."
+msgstr ""
+
+#: js/filelist.js:609 js/filelist.js:683 js/files.js:631
+msgid "%n folder"
+msgid_plural "%n folders"
+msgstr[0] ""
+
+#: js/filelist.js:610 js/filelist.js:684 js/files.js:637
+msgid "%n file"
+msgid_plural "%n files"
+msgstr[0] ""
+
+#: js/filelist.js:617
+msgid "{dirs} and {files}"
+msgstr ""
+
+#: js/filelist.js:828 js/filelist.js:866
+msgid "Uploading %n file"
+msgid_plural "Uploading %n files"
+msgstr[0] ""
+
+#: js/files.js:72
+msgid "'.' is an invalid file name."
+msgstr ""
+
+#: js/files.js:81
+msgid ""
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not "
+"allowed."
+msgstr ""
+
+#: js/files.js:93
+msgid "Your storage is full, files can not be updated or synced anymore!"
+msgstr ""
+
+#: js/files.js:97
+msgid "Your storage is almost full ({usedSpacePercent}%)"
+msgstr ""
+
+#: js/files.js:110
+msgid ""
+"Encryption App is enabled but your keys are not initialized, please log-out "
+"and log-in again"
+msgstr ""
+
+#: js/files.js:114
+msgid ""
+"Invalid private key for Encryption App. Please update your private key "
+"password in your personal settings to recover access to your encrypted "
+"files."
+msgstr ""
+
+#: js/files.js:118
+msgid ""
+"Encryption was disabled but your files are still encrypted. Please go to "
+"your personal settings to decrypt your files."
+msgstr ""
+
+#: js/files.js:349
+msgid ""
+"Your download is being prepared. This might take some time if the files are "
+"big."
+msgstr ""
+
+#: js/files.js:558 js/files.js:596
+msgid "Error moving file"
+msgstr ""
+
+#: js/files.js:558 js/files.js:596
+msgid "Error"
+msgstr ""
+
+#: js/files.js:613 templates/index.php:56
+msgid "Name"
+msgstr ""
+
+#: js/files.js:614 templates/index.php:68
+msgid "Size"
+msgstr ""
+
+#: js/files.js:615 templates/index.php:70
+msgid "Modified"
+msgstr ""
+
+#: lib/app.php:60
+msgid "Invalid folder name. Usage of 'Shared' is reserved."
+msgstr ""
+
+#: lib/app.php:101
+#, php-format
+msgid "%s could not be renamed"
+msgstr ""
+
+#: lib/helper.php:11 templates/index.php:16
+msgid "Upload"
+msgstr ""
+
+#: templates/admin.php:5
+msgid "File handling"
+msgstr ""
+
+#: templates/admin.php:7
+msgid "Maximum upload size"
+msgstr ""
+
+#: templates/admin.php:10
+msgid "max. possible: "
+msgstr ""
+
+#: templates/admin.php:15
+msgid "Needed for multi-file and folder downloads."
+msgstr ""
+
+#: templates/admin.php:17
+msgid "Enable ZIP-download"
+msgstr ""
+
+#: templates/admin.php:20
+msgid "0 is unlimited"
+msgstr ""
+
+#: templates/admin.php:22
+msgid "Maximum input size for ZIP files"
+msgstr ""
+
+#: templates/admin.php:26
+msgid "Save"
+msgstr ""
+
+#: templates/index.php:5
+msgid "New"
+msgstr ""
+
+#: templates/index.php:8
+msgid "New text file"
+msgstr ""
+
+#: templates/index.php:8
+msgid "Text file"
+msgstr ""
+
+#: templates/index.php:10
+msgid "New folder"
+msgstr ""
+
+#: templates/index.php:10
+msgid "Folder"
+msgstr ""
+
+#: templates/index.php:12
+msgid "From link"
+msgstr ""
+
+#: templates/index.php:29
+msgid "Deleted files"
+msgstr ""
+
+#: templates/index.php:34
+msgid "Cancel upload"
+msgstr ""
+
+#: templates/index.php:40
+msgid "You don’t have permission to upload or create files here"
+msgstr ""
+
+#: templates/index.php:45
+msgid "Nothing in here. Upload something!"
+msgstr ""
+
+#: templates/index.php:62
+msgid "Download"
+msgstr ""
+
+#: templates/index.php:73 templates/index.php:74
+msgid "Delete"
+msgstr ""
+
+#: templates/index.php:86
+msgid "Upload too large"
+msgstr ""
+
+#: templates/index.php:88
+msgid ""
+"The files you are trying to upload exceed the maximum size for file uploads "
+"on this server."
+msgstr ""
+
+#: templates/index.php:93
+msgid "Files are being scanned, please wait."
+msgstr ""
+
+#: templates/index.php:96
+msgid "Current scanning"
+msgstr ""
+
+#: templates/upgrade.php:2
+msgid "Upgrading filesystem cache..."
+msgstr ""
diff --git a/l10n/ru_RU/files_encryption.po b/l10n/az/files_encryption.po
similarity index 93%
rename from l10n/ru_RU/files_encryption.po
rename to l10n/az/files_encryption.po
index 21ff7e96121..c145df966c7 100644
--- a/l10n/ru_RU/files_encryption.po
+++ b/l10n/az/files_encryption.po
@@ -7,15 +7,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
"Last-Translator: I Robot \n"
-"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru_RU\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: ajax/adminrecovery.php:29
msgid "Recovery key successfully enabled"
@@ -91,7 +91,7 @@ msgid ""
" the encryption app has been disabled."
msgstr ""
-#: hooks/hooks.php:273
+#: hooks/hooks.php:278
msgid "Following users are not set up for encryption:"
msgstr ""
diff --git a/l10n/az/files_external.po b/l10n/az/files_external.po
new file mode 100644
index 00000000000..020c2fbc41f
--- /dev/null
+++ b/l10n/az/files_external.po
@@ -0,0 +1,123 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: js/dropbox.js:7 js/dropbox.js:28 js/google.js:8 js/google.js:39
+msgid "Access granted"
+msgstr ""
+
+#: js/dropbox.js:30 js/dropbox.js:96 js/dropbox.js:102
+msgid "Error configuring Dropbox storage"
+msgstr ""
+
+#: js/dropbox.js:65 js/google.js:86
+msgid "Grant access"
+msgstr ""
+
+#: js/dropbox.js:101
+msgid "Please provide a valid Dropbox app key and secret."
+msgstr ""
+
+#: js/google.js:42 js/google.js:121
+msgid "Error configuring Google Drive storage"
+msgstr ""
+
+#: lib/config.php:467
+msgid ""
+"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
+"is not possible. Please ask your system administrator to install it."
+msgstr ""
+
+#: lib/config.php:471
+msgid ""
+"Warning: The FTP support in PHP is not enabled or installed. Mounting"
+" of FTP shares is not possible. Please ask your system administrator to "
+"install it."
+msgstr ""
+
+#: lib/config.php:474
+msgid ""
+"Warning: The Curl support in PHP is not enabled or installed. "
+"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
+"your system administrator to install it."
+msgstr ""
+
+#: templates/settings.php:3
+msgid "External Storage"
+msgstr ""
+
+#: templates/settings.php:9 templates/settings.php:28
+msgid "Folder name"
+msgstr ""
+
+#: templates/settings.php:10
+msgid "External storage"
+msgstr ""
+
+#: templates/settings.php:11
+msgid "Configuration"
+msgstr ""
+
+#: templates/settings.php:12
+msgid "Options"
+msgstr ""
+
+#: templates/settings.php:13
+msgid "Applicable"
+msgstr ""
+
+#: templates/settings.php:33
+msgid "Add storage"
+msgstr ""
+
+#: templates/settings.php:90
+msgid "None set"
+msgstr ""
+
+#: templates/settings.php:91
+msgid "All Users"
+msgstr ""
+
+#: templates/settings.php:92
+msgid "Groups"
+msgstr ""
+
+#: templates/settings.php:100
+msgid "Users"
+msgstr ""
+
+#: templates/settings.php:113 templates/settings.php:114
+#: templates/settings.php:149 templates/settings.php:150
+msgid "Delete"
+msgstr ""
+
+#: templates/settings.php:129
+msgid "Enable User External Storage"
+msgstr ""
+
+#: templates/settings.php:130
+msgid "Allow users to mount their own external storage"
+msgstr ""
+
+#: templates/settings.php:141
+msgid "SSL root certificates"
+msgstr ""
+
+#: templates/settings.php:159
+msgid "Import Root Certificate"
+msgstr ""
diff --git a/l10n/az/files_sharing.po b/l10n/az/files_sharing.po
new file mode 100644
index 00000000000..d4965ff8371
--- /dev/null
+++ b/l10n/az/files_sharing.po
@@ -0,0 +1,84 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: templates/authenticate.php:4
+msgid "This share is password-protected"
+msgstr ""
+
+#: templates/authenticate.php:7
+msgid "The password is wrong. Try again."
+msgstr ""
+
+#: templates/authenticate.php:10
+msgid "Password"
+msgstr ""
+
+#: templates/part.404.php:3
+msgid "Sorry, this link doesn’t seem to work anymore."
+msgstr ""
+
+#: templates/part.404.php:4
+msgid "Reasons might be:"
+msgstr ""
+
+#: templates/part.404.php:6
+msgid "the item was removed"
+msgstr ""
+
+#: templates/part.404.php:7
+msgid "the link expired"
+msgstr ""
+
+#: templates/part.404.php:8
+msgid "sharing is disabled"
+msgstr ""
+
+#: templates/part.404.php:10
+msgid "For more info, please ask the person who sent this link."
+msgstr ""
+
+#: templates/public.php:18
+#, php-format
+msgid "%s shared the folder %s with you"
+msgstr ""
+
+#: templates/public.php:21
+#, php-format
+msgid "%s shared the file %s with you"
+msgstr ""
+
+#: templates/public.php:29 templates/public.php:95
+msgid "Download"
+msgstr ""
+
+#: templates/public.php:46 templates/public.php:49
+msgid "Upload"
+msgstr ""
+
+#: templates/public.php:59
+msgid "Cancel upload"
+msgstr ""
+
+#: templates/public.php:92
+msgid "No preview available for"
+msgstr ""
+
+#: templates/public.php:99
+msgid "Direct link"
+msgstr ""
diff --git a/l10n/az/files_trashbin.po b/l10n/az/files_trashbin.po
new file mode 100644
index 00000000000..539bb5a6f2e
--- /dev/null
+++ b/l10n/az/files_trashbin.po
@@ -0,0 +1,60 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ajax/delete.php:63
+#, php-format
+msgid "Couldn't delete %s permanently"
+msgstr ""
+
+#: ajax/undelete.php:43
+#, php-format
+msgid "Couldn't restore %s"
+msgstr ""
+
+#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
+msgid "Error"
+msgstr ""
+
+#: lib/trashbin.php:905 lib/trashbin.php:907
+msgid "restored"
+msgstr ""
+
+#: templates/index.php:7
+msgid "Nothing in here. Your trash bin is empty!"
+msgstr ""
+
+#: templates/index.php:20
+msgid "Name"
+msgstr ""
+
+#: templates/index.php:23 templates/index.php:25
+msgid "Restore"
+msgstr ""
+
+#: templates/index.php:31
+msgid "Deleted"
+msgstr ""
+
+#: templates/index.php:34 templates/index.php:35
+msgid "Delete"
+msgstr ""
+
+#: templates/part.breadcrumb.php:9
+msgid "Deleted Files"
+msgstr ""
diff --git a/l10n/az/files_versions.po b/l10n/az/files_versions.po
new file mode 100644
index 00000000000..be77dcb54c4
--- /dev/null
+++ b/l10n/az/files_versions.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ajax/rollbackVersion.php:13
+#, php-format
+msgid "Could not revert: %s"
+msgstr ""
+
+#: js/versions.js:14
+msgid "Versions"
+msgstr ""
+
+#: js/versions.js:60
+msgid "Failed to revert {file} to revision {timestamp}."
+msgstr ""
+
+#: js/versions.js:86
+msgid "More versions..."
+msgstr ""
+
+#: js/versions.js:123
+msgid "No other versions available"
+msgstr ""
+
+#: js/versions.js:154
+msgid "Restore"
+msgstr ""
diff --git a/l10n/az/lib.po b/l10n/az/lib.po
new file mode 100644
index 00000000000..525d68a4713
--- /dev/null
+++ b/l10n/az/lib.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: private/app.php:243
+#, php-format
+msgid ""
+"App \"%s\" can't be installed because it is not compatible with this version"
+" of ownCloud."
+msgstr ""
+
+#: private/app.php:255
+msgid "No app name specified"
+msgstr ""
+
+#: private/app.php:360
+msgid "Help"
+msgstr ""
+
+#: private/app.php:373
+msgid "Personal"
+msgstr ""
+
+#: private/app.php:384
+msgid "Settings"
+msgstr ""
+
+#: private/app.php:396
+msgid "Users"
+msgstr ""
+
+#: private/app.php:409
+msgid "Admin"
+msgstr ""
+
+#: private/app.php:873
+#, php-format
+msgid "Failed to upgrade \"%s\"."
+msgstr ""
+
+#: private/avatar.php:66
+msgid "Unknown filetype"
+msgstr ""
+
+#: private/avatar.php:71
+msgid "Invalid image"
+msgstr ""
+
+#: private/defaults.php:34
+msgid "web services under your control"
+msgstr ""
+
+#: private/files.php:66 private/files.php:98
+#, php-format
+msgid "cannot open \"%s\""
+msgstr ""
+
+#: private/files.php:231
+msgid "ZIP download is turned off."
+msgstr ""
+
+#: private/files.php:232
+msgid "Files need to be downloaded one by one."
+msgstr ""
+
+#: private/files.php:233 private/files.php:261
+msgid "Back to Files"
+msgstr ""
+
+#: private/files.php:258
+msgid "Selected files too large to generate zip file."
+msgstr ""
+
+#: private/files.php:259
+msgid ""
+"Please download the files separately in smaller chunks or kindly ask your "
+"administrator."
+msgstr ""
+
+#: private/installer.php:63
+msgid "No source specified when installing app"
+msgstr ""
+
+#: private/installer.php:70
+msgid "No href specified when installing app from http"
+msgstr ""
+
+#: private/installer.php:75
+msgid "No path specified when installing app from local file"
+msgstr ""
+
+#: private/installer.php:89
+#, php-format
+msgid "Archives of type %s are not supported"
+msgstr ""
+
+#: private/installer.php:103
+msgid "Failed to open archive when installing app"
+msgstr ""
+
+#: private/installer.php:125
+msgid "App does not provide an info.xml file"
+msgstr ""
+
+#: private/installer.php:131
+msgid "App can't be installed because of not allowed code in the App"
+msgstr ""
+
+#: private/installer.php:140
+msgid ""
+"App can't be installed because it is not compatible with this version of "
+"ownCloud"
+msgstr ""
+
+#: private/installer.php:146
+msgid ""
+"App can't be installed because it contains the true tag "
+"which is not allowed for non shipped apps"
+msgstr ""
+
+#: private/installer.php:159
+msgid ""
+"App can't be installed because the version in info.xml/version is not the "
+"same as the version reported from the app store"
+msgstr ""
+
+#: private/installer.php:169
+msgid "App directory already exists"
+msgstr ""
+
+#: private/installer.php:182
+#, php-format
+msgid "Can't create app folder. Please fix permissions. %s"
+msgstr ""
+
+#: private/json.php:28
+msgid "Application is not enabled"
+msgstr ""
+
+#: private/json.php:39 private/json.php:62 private/json.php:73
+msgid "Authentication error"
+msgstr ""
+
+#: private/json.php:51
+msgid "Token expired. Please reload page."
+msgstr ""
+
+#: private/search/provider/file.php:18 private/search/provider/file.php:36
+msgid "Files"
+msgstr ""
+
+#: private/search/provider/file.php:27 private/search/provider/file.php:34
+msgid "Text"
+msgstr ""
+
+#: private/search/provider/file.php:30
+msgid "Images"
+msgstr ""
+
+#: private/setup/abstractdatabase.php:26
+#, php-format
+msgid "%s enter the database username."
+msgstr ""
+
+#: private/setup/abstractdatabase.php:29
+#, php-format
+msgid "%s enter the database name."
+msgstr ""
+
+#: private/setup/abstractdatabase.php:32
+#, php-format
+msgid "%s you may not use dots in the database name"
+msgstr ""
+
+#: private/setup/mssql.php:20
+#, php-format
+msgid "MS SQL username and/or password not valid: %s"
+msgstr ""
+
+#: private/setup/mssql.php:21 private/setup/mysql.php:13
+#: private/setup/oci.php:114 private/setup/postgresql.php:24
+#: private/setup/postgresql.php:70
+msgid "You need to enter either an existing account or the administrator."
+msgstr ""
+
+#: private/setup/mysql.php:12
+msgid "MySQL username and/or password not valid"
+msgstr ""
+
+#: private/setup/mysql.php:67 private/setup/oci.php:54
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
+#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
+#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
+#, php-format
+msgid "DB Error: \"%s\""
+msgstr ""
+
+#: private/setup/mysql.php:68 private/setup/oci.php:55
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
+#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
+#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
+#, php-format
+msgid "Offending command was: \"%s\""
+msgstr ""
+
+#: private/setup/mysql.php:85
+#, php-format
+msgid "MySQL user '%s'@'localhost' exists already."
+msgstr ""
+
+#: private/setup/mysql.php:86
+msgid "Drop this user from MySQL"
+msgstr ""
+
+#: private/setup/mysql.php:91
+#, php-format
+msgid "MySQL user '%s'@'%%' already exists"
+msgstr ""
+
+#: private/setup/mysql.php:92
+msgid "Drop this user from MySQL."
+msgstr ""
+
+#: private/setup/oci.php:34
+msgid "Oracle connection could not be established"
+msgstr ""
+
+#: private/setup/oci.php:41 private/setup/oci.php:113
+msgid "Oracle username and/or password not valid"
+msgstr ""
+
+#: private/setup/oci.php:170 private/setup/oci.php:202
+#, php-format
+msgid "Offending command was: \"%s\", name: %s, password: %s"
+msgstr ""
+
+#: private/setup/postgresql.php:23 private/setup/postgresql.php:69
+msgid "PostgreSQL username and/or password not valid"
+msgstr ""
+
+#: private/setup.php:28
+msgid "Set an admin username."
+msgstr ""
+
+#: private/setup.php:31
+msgid "Set an admin password."
+msgstr ""
+
+#: private/setup.php:195
+msgid ""
+"Your web server is not yet properly setup to allow files synchronization "
+"because the WebDAV interface seems to be broken."
+msgstr ""
+
+#: private/setup.php:196
+#, php-format
+msgid "Please double check the installation guides."
+msgstr ""
+
+#: private/tags.php:194
+#, php-format
+msgid "Could not find category \"%s\""
+msgstr ""
+
+#: private/template/functions.php:130
+msgid "seconds ago"
+msgstr ""
+
+#: private/template/functions.php:131
+msgid "%n minute ago"
+msgid_plural "%n minutes ago"
+msgstr[0] ""
+
+#: private/template/functions.php:132
+msgid "%n hour ago"
+msgid_plural "%n hours ago"
+msgstr[0] ""
+
+#: private/template/functions.php:133
+msgid "today"
+msgstr ""
+
+#: private/template/functions.php:134
+msgid "yesterday"
+msgstr ""
+
+#: private/template/functions.php:136
+msgid "%n day go"
+msgid_plural "%n days ago"
+msgstr[0] ""
+
+#: private/template/functions.php:138
+msgid "last month"
+msgstr ""
+
+#: private/template/functions.php:139
+msgid "%n month ago"
+msgid_plural "%n months ago"
+msgstr[0] ""
+
+#: private/template/functions.php:141
+msgid "last year"
+msgstr ""
+
+#: private/template/functions.php:142
+msgid "years ago"
+msgstr ""
diff --git a/l10n/az/settings.po b/l10n/az/settings.po
new file mode 100644
index 00000000000..e54d4e5a613
--- /dev/null
+++ b/l10n/az/settings.po
@@ -0,0 +1,668 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ajax/apps/ocs.php:20
+msgid "Unable to load list from App Store"
+msgstr ""
+
+#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
+#: ajax/togglegroups.php:20 changepassword/controller.php:55
+msgid "Authentication error"
+msgstr ""
+
+#: ajax/changedisplayname.php:31
+msgid "Your full name has been changed."
+msgstr ""
+
+#: ajax/changedisplayname.php:34
+msgid "Unable to change full name"
+msgstr ""
+
+#: ajax/creategroup.php:10
+msgid "Group already exists"
+msgstr ""
+
+#: ajax/creategroup.php:19
+msgid "Unable to add group"
+msgstr ""
+
+#: ajax/lostpassword.php:12
+msgid "Email saved"
+msgstr ""
+
+#: ajax/lostpassword.php:14
+msgid "Invalid email"
+msgstr ""
+
+#: ajax/removegroup.php:13
+msgid "Unable to delete group"
+msgstr ""
+
+#: ajax/removeuser.php:25
+msgid "Unable to delete user"
+msgstr ""
+
+#: ajax/setlanguage.php:15
+msgid "Language changed"
+msgstr ""
+
+#: ajax/setlanguage.php:17 ajax/setlanguage.php:20
+msgid "Invalid request"
+msgstr ""
+
+#: ajax/togglegroups.php:12
+msgid "Admins can't remove themself from the admin group"
+msgstr ""
+
+#: ajax/togglegroups.php:30
+#, php-format
+msgid "Unable to add user to group %s"
+msgstr ""
+
+#: ajax/togglegroups.php:36
+#, php-format
+msgid "Unable to remove user from group %s"
+msgstr ""
+
+#: ajax/updateapp.php:14
+msgid "Couldn't update app."
+msgstr ""
+
+#: changepassword/controller.php:20
+msgid "Wrong password"
+msgstr ""
+
+#: changepassword/controller.php:42
+msgid "No user supplied"
+msgstr ""
+
+#: changepassword/controller.php:74
+msgid ""
+"Please provide an admin recovery password, otherwise all user data will be "
+"lost"
+msgstr ""
+
+#: changepassword/controller.php:79
+msgid ""
+"Wrong admin recovery password. Please check the password and try again."
+msgstr ""
+
+#: changepassword/controller.php:87
+msgid ""
+"Back-end doesn't support password change, but the users encryption key was "
+"successfully updated."
+msgstr ""
+
+#: changepassword/controller.php:92 changepassword/controller.php:103
+msgid "Unable to change password"
+msgstr ""
+
+#: js/apps.js:43
+msgid "Update to {appversion}"
+msgstr ""
+
+#: js/apps.js:49 js/apps.js:82 js/apps.js:110
+msgid "Disable"
+msgstr ""
+
+#: js/apps.js:49 js/apps.js:90 js/apps.js:103 js/apps.js:119
+msgid "Enable"
+msgstr ""
+
+#: js/apps.js:71
+msgid "Please wait...."
+msgstr ""
+
+#: js/apps.js:79 js/apps.js:80 js/apps.js:101
+msgid "Error while disabling app"
+msgstr ""
+
+#: js/apps.js:100 js/apps.js:114 js/apps.js:115
+msgid "Error while enabling app"
+msgstr ""
+
+#: js/apps.js:125
+msgid "Updating...."
+msgstr ""
+
+#: js/apps.js:128
+msgid "Error while updating app"
+msgstr ""
+
+#: js/apps.js:128
+msgid "Error"
+msgstr ""
+
+#: js/apps.js:129 templates/apps.php:43
+msgid "Update"
+msgstr ""
+
+#: js/apps.js:132
+msgid "Updated"
+msgstr ""
+
+#: js/personal.js:220
+msgid "Select a profile picture"
+msgstr ""
+
+#: js/personal.js:266
+msgid "Decrypting files... Please wait, this can take some time."
+msgstr ""
+
+#: js/personal.js:287
+msgid "Saving..."
+msgstr ""
+
+#: js/users.js:47
+msgid "deleted"
+msgstr ""
+
+#: js/users.js:47
+msgid "undo"
+msgstr ""
+
+#: js/users.js:79
+msgid "Unable to remove user"
+msgstr ""
+
+#: js/users.js:95 templates/users.php:26 templates/users.php:90
+#: templates/users.php:118
+msgid "Groups"
+msgstr ""
+
+#: js/users.js:100 templates/users.php:92 templates/users.php:130
+msgid "Group Admin"
+msgstr ""
+
+#: js/users.js:123 templates/users.php:170
+msgid "Delete"
+msgstr ""
+
+#: js/users.js:284
+msgid "add group"
+msgstr ""
+
+#: js/users.js:454
+msgid "A valid username must be provided"
+msgstr ""
+
+#: js/users.js:455 js/users.js:461 js/users.js:476
+msgid "Error creating user"
+msgstr ""
+
+#: js/users.js:460
+msgid "A valid password must be provided"
+msgstr ""
+
+#: js/users.js:484
+msgid "Warning: Home directory for user \"{user}\" already exists"
+msgstr ""
+
+#: personal.php:45 personal.php:46
+msgid "__language_name__"
+msgstr ""
+
+#: templates/admin.php:8
+msgid "Everything (fatal issues, errors, warnings, info, debug)"
+msgstr ""
+
+#: templates/admin.php:9
+msgid "Info, warnings, errors and fatal issues"
+msgstr ""
+
+#: templates/admin.php:10
+msgid "Warnings, errors and fatal issues"
+msgstr ""
+
+#: templates/admin.php:11
+msgid "Errors and fatal issues"
+msgstr ""
+
+#: templates/admin.php:12
+msgid "Fatal issues only"
+msgstr ""
+
+#: templates/admin.php:22 templates/admin.php:36
+msgid "Security Warning"
+msgstr ""
+
+#: templates/admin.php:25
+#, php-format
+msgid ""
+"You are accessing %s via HTTP. We strongly suggest you configure your server"
+" to require using HTTPS instead."
+msgstr ""
+
+#: templates/admin.php:39
+msgid ""
+"Your data directory and your files are probably accessible from the "
+"internet. The .htaccess file is not working. We strongly suggest that you "
+"configure your webserver in a way that the data directory is no longer "
+"accessible or you move the data directory outside the webserver document "
+"root."
+msgstr ""
+
+#: templates/admin.php:50
+msgid "Setup Warning"
+msgstr ""
+
+#: templates/admin.php:53
+msgid ""
+"Your web server is not yet properly setup to allow files synchronization "
+"because the WebDAV interface seems to be broken."
+msgstr ""
+
+#: templates/admin.php:54
+#, php-format
+msgid "Please double check the installation guides."
+msgstr ""
+
+#: templates/admin.php:65
+msgid "Module 'fileinfo' missing"
+msgstr ""
+
+#: templates/admin.php:68
+msgid ""
+"The PHP module 'fileinfo' is missing. We strongly recommend to enable this "
+"module to get best results with mime-type detection."
+msgstr ""
+
+#: templates/admin.php:79
+msgid "Your PHP version is outdated"
+msgstr ""
+
+#: templates/admin.php:82
+msgid ""
+"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
+"newer because older versions are known to be broken. It is possible that "
+"this installation is not working correctly."
+msgstr ""
+
+#: templates/admin.php:93
+msgid "Locale not working"
+msgstr ""
+
+#: templates/admin.php:98
+msgid "System locale can not be set to a one which supports UTF-8."
+msgstr ""
+
+#: templates/admin.php:102
+msgid ""
+"This means that there might be problems with certain characters in file "
+"names."
+msgstr ""
+
+#: templates/admin.php:106
+#, php-format
+msgid ""
+"We strongly suggest to install the required packages on your system to "
+"support one of the following locales: %s."
+msgstr ""
+
+#: templates/admin.php:118
+msgid "Internet connection not working"
+msgstr ""
+
+#: templates/admin.php:121
+msgid ""
+"This server has no working internet connection. This means that some of the "
+"features like mounting of external storage, notifications about updates or "
+"installation of 3rd party apps don´t work. Accessing files from remote and "
+"sending of notification emails might also not work. We suggest to enable "
+"internet connection for this server if you want to have all features."
+msgstr ""
+
+#: templates/admin.php:135
+msgid "Cron"
+msgstr ""
+
+#: templates/admin.php:142
+msgid "Execute one task with each page loaded"
+msgstr ""
+
+#: templates/admin.php:150
+msgid ""
+"cron.php is registered at a webcron service to call cron.php every 15 "
+"minutes over http."
+msgstr ""
+
+#: templates/admin.php:158
+msgid "Use systems cron service to call the cron.php file every 15 minutes."
+msgstr ""
+
+#: templates/admin.php:163
+msgid "Sharing"
+msgstr ""
+
+#: templates/admin.php:169
+msgid "Enable Share API"
+msgstr ""
+
+#: templates/admin.php:170
+msgid "Allow apps to use the Share API"
+msgstr ""
+
+#: templates/admin.php:177
+msgid "Allow links"
+msgstr ""
+
+#: templates/admin.php:178
+msgid "Allow users to share items to the public with links"
+msgstr ""
+
+#: templates/admin.php:186
+msgid "Allow public uploads"
+msgstr ""
+
+#: templates/admin.php:187
+msgid ""
+"Allow users to enable others to upload into their publicly shared folders"
+msgstr ""
+
+#: templates/admin.php:195
+msgid "Allow resharing"
+msgstr ""
+
+#: templates/admin.php:196
+msgid "Allow users to share items shared with them again"
+msgstr ""
+
+#: templates/admin.php:203
+msgid "Allow users to share with anyone"
+msgstr ""
+
+#: templates/admin.php:206
+msgid "Allow users to only share with users in their groups"
+msgstr ""
+
+#: templates/admin.php:213
+msgid "Allow mail notification"
+msgstr ""
+
+#: templates/admin.php:214
+msgid "Allow user to send mail notification for shared files"
+msgstr ""
+
+#: templates/admin.php:221
+msgid "Security"
+msgstr ""
+
+#: templates/admin.php:234
+msgid "Enforce HTTPS"
+msgstr ""
+
+#: templates/admin.php:236
+#, php-format
+msgid "Forces the clients to connect to %s via an encrypted connection."
+msgstr ""
+
+#: templates/admin.php:242
+#, php-format
+msgid ""
+"Please connect to your %s via HTTPS to enable or disable the SSL "
+"enforcement."
+msgstr ""
+
+#: templates/admin.php:254
+msgid "Log"
+msgstr ""
+
+#: templates/admin.php:255
+msgid "Log level"
+msgstr ""
+
+#: templates/admin.php:287
+msgid "More"
+msgstr ""
+
+#: templates/admin.php:288
+msgid "Less"
+msgstr ""
+
+#: templates/admin.php:294 templates/personal.php:173
+msgid "Version"
+msgstr ""
+
+#: templates/admin.php:298 templates/personal.php:176
+msgid ""
+"Developed by the ownCloud community, the source code is "
+"licensed under the AGPL."
+msgstr ""
+
+#: templates/apps.php:13
+msgid "Add your App"
+msgstr ""
+
+#: templates/apps.php:28
+msgid "More Apps"
+msgstr ""
+
+#: templates/apps.php:33
+msgid "Select an App"
+msgstr ""
+
+#: templates/apps.php:39
+msgid "See application page at apps.owncloud.com"
+msgstr ""
+
+#: templates/apps.php:41
+msgid "-licensed by "
+msgstr ""
+
+#: templates/help.php:4
+msgid "User Documentation"
+msgstr ""
+
+#: templates/help.php:6
+msgid "Administrator Documentation"
+msgstr ""
+
+#: templates/help.php:9
+msgid "Online Documentation"
+msgstr ""
+
+#: templates/help.php:11
+msgid "Forum"
+msgstr ""
+
+#: templates/help.php:14
+msgid "Bugtracker"
+msgstr ""
+
+#: templates/help.php:17
+msgid "Commercial Support"
+msgstr ""
+
+#: templates/personal.php:8
+msgid "Get the apps to sync your files"
+msgstr ""
+
+#: templates/personal.php:19
+msgid "Show First Run Wizard again"
+msgstr ""
+
+#: templates/personal.php:27
+#, php-format
+msgid "You have used %s of the available %s"
+msgstr ""
+
+#: templates/personal.php:39 templates/users.php:23 templates/users.php:89
+msgid "Password"
+msgstr ""
+
+#: templates/personal.php:40
+msgid "Your password was changed"
+msgstr ""
+
+#: templates/personal.php:41
+msgid "Unable to change your password"
+msgstr ""
+
+#: templates/personal.php:42
+msgid "Current password"
+msgstr ""
+
+#: templates/personal.php:44
+msgid "New password"
+msgstr ""
+
+#: templates/personal.php:46
+msgid "Change password"
+msgstr ""
+
+#: templates/personal.php:58 templates/users.php:88
+msgid "Full Name"
+msgstr ""
+
+#: templates/personal.php:73
+msgid "Email"
+msgstr ""
+
+#: templates/personal.php:75
+msgid "Your email address"
+msgstr ""
+
+#: templates/personal.php:76
+msgid "Fill in an email address to enable password recovery"
+msgstr ""
+
+#: templates/personal.php:86
+msgid "Profile picture"
+msgstr ""
+
+#: templates/personal.php:91
+msgid "Upload new"
+msgstr ""
+
+#: templates/personal.php:93
+msgid "Select new from Files"
+msgstr ""
+
+#: templates/personal.php:94
+msgid "Remove image"
+msgstr ""
+
+#: templates/personal.php:95
+msgid "Either png or jpg. Ideally square but you will be able to crop it."
+msgstr ""
+
+#: templates/personal.php:97
+msgid "Your avatar is provided by your original account."
+msgstr ""
+
+#: templates/personal.php:101
+msgid "Abort"
+msgstr ""
+
+#: templates/personal.php:102
+msgid "Choose as profile image"
+msgstr ""
+
+#: templates/personal.php:110 templates/personal.php:111
+msgid "Language"
+msgstr ""
+
+#: templates/personal.php:130
+msgid "Help translate"
+msgstr ""
+
+#: templates/personal.php:137
+msgid "WebDAV"
+msgstr ""
+
+#: templates/personal.php:139
+#, php-format
+msgid ""
+"Use this address to access your Files via "
+"WebDAV"
+msgstr ""
+
+#: templates/personal.php:150
+msgid "Encryption"
+msgstr ""
+
+#: templates/personal.php:152
+msgid "The encryption app is no longer enabled, please decrypt all your files"
+msgstr ""
+
+#: templates/personal.php:158
+msgid "Log-in password"
+msgstr ""
+
+#: templates/personal.php:163
+msgid "Decrypt all Files"
+msgstr ""
+
+#: templates/users.php:21
+msgid "Login Name"
+msgstr ""
+
+#: templates/users.php:30
+msgid "Create"
+msgstr ""
+
+#: templates/users.php:36
+msgid "Admin Recovery Password"
+msgstr ""
+
+#: templates/users.php:37 templates/users.php:38
+msgid ""
+"Enter the recovery password in order to recover the users files during "
+"password change"
+msgstr ""
+
+#: templates/users.php:42
+msgid "Default Storage"
+msgstr ""
+
+#: templates/users.php:44 templates/users.php:139
+msgid "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")"
+msgstr ""
+
+#: templates/users.php:48 templates/users.php:148
+msgid "Unlimited"
+msgstr ""
+
+#: templates/users.php:66 templates/users.php:163
+msgid "Other"
+msgstr ""
+
+#: templates/users.php:87
+msgid "Username"
+msgstr ""
+
+#: templates/users.php:94
+msgid "Storage"
+msgstr ""
+
+#: templates/users.php:108
+msgid "change full name"
+msgstr ""
+
+#: templates/users.php:112
+msgid "set new password"
+msgstr ""
+
+#: templates/users.php:143
+msgid "Default"
+msgstr ""
diff --git a/l10n/az/user_ldap.po b/l10n/az/user_ldap.po
new file mode 100644
index 00000000000..c3dc07d7251
--- /dev/null
+++ b/l10n/az/user_ldap.po
@@ -0,0 +1,511 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ajax/clearMappings.php:34
+msgid "Failed to clear the mappings."
+msgstr ""
+
+#: ajax/deleteConfiguration.php:34
+msgid "Failed to delete the server configuration"
+msgstr ""
+
+#: ajax/testConfiguration.php:39
+msgid "The configuration is valid and the connection could be established!"
+msgstr ""
+
+#: ajax/testConfiguration.php:42
+msgid ""
+"The configuration is valid, but the Bind failed. Please check the server "
+"settings and credentials."
+msgstr ""
+
+#: ajax/testConfiguration.php:46
+msgid ""
+"The configuration is invalid. Please have a look at the logs for further "
+"details."
+msgstr ""
+
+#: ajax/wizard.php:32
+msgid "No action specified"
+msgstr ""
+
+#: ajax/wizard.php:38
+msgid "No configuration specified"
+msgstr ""
+
+#: ajax/wizard.php:81
+msgid "No data specified"
+msgstr ""
+
+#: ajax/wizard.php:89
+#, php-format
+msgid " Could not set configuration %s"
+msgstr ""
+
+#: js/settings.js:67
+msgid "Deletion failed"
+msgstr ""
+
+#: js/settings.js:83
+msgid "Take over settings from recent server configuration?"
+msgstr ""
+
+#: js/settings.js:84
+msgid "Keep settings?"
+msgstr ""
+
+#: js/settings.js:99
+msgid "Cannot add server configuration"
+msgstr ""
+
+#: js/settings.js:127
+msgid "mappings cleared"
+msgstr ""
+
+#: js/settings.js:128
+msgid "Success"
+msgstr ""
+
+#: js/settings.js:133
+msgid "Error"
+msgstr ""
+
+#: js/settings.js:837
+msgid "Configuration OK"
+msgstr ""
+
+#: js/settings.js:846
+msgid "Configuration incorrect"
+msgstr ""
+
+#: js/settings.js:855
+msgid "Configuration incomplete"
+msgstr ""
+
+#: js/settings.js:872 js/settings.js:881
+msgid "Select groups"
+msgstr ""
+
+#: js/settings.js:875 js/settings.js:884
+msgid "Select object classes"
+msgstr ""
+
+#: js/settings.js:878
+msgid "Select attributes"
+msgstr ""
+
+#: js/settings.js:905
+msgid "Connection test succeeded"
+msgstr ""
+
+#: js/settings.js:912
+msgid "Connection test failed"
+msgstr ""
+
+#: js/settings.js:921
+msgid "Do you really want to delete the current Server Configuration?"
+msgstr ""
+
+#: js/settings.js:922
+msgid "Confirm Deletion"
+msgstr ""
+
+#: lib/wizard.php:79 lib/wizard.php:93
+#, php-format
+msgid "%s group found"
+msgid_plural "%s groups found"
+msgstr[0] ""
+
+#: lib/wizard.php:122
+#, php-format
+msgid "%s user found"
+msgid_plural "%s users found"
+msgstr[0] ""
+
+#: lib/wizard.php:778 lib/wizard.php:790
+msgid "Invalid Host"
+msgstr ""
+
+#: lib/wizard.php:951
+msgid "Could not find the desired feature"
+msgstr ""
+
+#: templates/part.settingcontrols.php:2
+msgid "Save"
+msgstr ""
+
+#: templates/part.settingcontrols.php:4
+msgid "Test Configuration"
+msgstr ""
+
+#: templates/part.settingcontrols.php:10 templates/part.wizardcontrols.php:14
+msgid "Help"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:4
+#, php-format
+msgid "Limit the access to %s to groups meeting this criteria:"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:8
+#: templates/part.wizard-userfilter.php:8
+msgid "only those object classes:"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:17
+#: templates/part.wizard-userfilter.php:17
+msgid "only from those groups:"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:25
+#: templates/part.wizard-loginfilter.php:32
+#: templates/part.wizard-userfilter.php:25
+msgid "Edit raw filter instead"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:30
+#: templates/part.wizard-loginfilter.php:37
+#: templates/part.wizard-userfilter.php:30
+msgid "Raw LDAP filter"
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:31
+#, php-format
+msgid ""
+"The filter specifies which LDAP groups shall have access to the %s instance."
+msgstr ""
+
+#: templates/part.wizard-groupfilter.php:38
+msgid "groups found"
+msgstr ""
+
+#: templates/part.wizard-loginfilter.php:4
+msgid "What attribute shall be used as login name:"
+msgstr ""
+
+#: templates/part.wizard-loginfilter.php:8
+msgid "LDAP Username:"
+msgstr ""
+
+#: templates/part.wizard-loginfilter.php:16
+msgid "LDAP Email Address:"
+msgstr ""
+
+#: templates/part.wizard-loginfilter.php:24
+msgid "Other Attributes:"
+msgstr ""
+
+#: templates/part.wizard-loginfilter.php:38
+#, php-format
+msgid ""
+"Defines the filter to apply, when login is attempted. %%uid replaces the "
+"username in the login action. Example: \"uid=%%uid\""
+msgstr ""
+
+#: templates/part.wizard-server.php:18
+msgid "Add Server Configuration"
+msgstr ""
+
+#: templates/part.wizard-server.php:30
+msgid "Host"
+msgstr ""
+
+#: templates/part.wizard-server.php:31
+msgid ""
+"You can omit the protocol, except you require SSL. Then start with ldaps://"
+msgstr ""
+
+#: templates/part.wizard-server.php:36
+msgid "Port"
+msgstr ""
+
+#: templates/part.wizard-server.php:44
+msgid "User DN"
+msgstr ""
+
+#: templates/part.wizard-server.php:45
+msgid ""
+"The DN of the client user with which the bind shall be done, e.g. "
+"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password "
+"empty."
+msgstr ""
+
+#: templates/part.wizard-server.php:52
+msgid "Password"
+msgstr ""
+
+#: templates/part.wizard-server.php:53
+msgid "For anonymous access, leave DN and Password empty."
+msgstr ""
+
+#: templates/part.wizard-server.php:60
+msgid "One Base DN per line"
+msgstr ""
+
+#: templates/part.wizard-server.php:61
+msgid "You can specify Base DN for users and groups in the Advanced tab"
+msgstr ""
+
+#: templates/part.wizard-userfilter.php:4
+#, php-format
+msgid "Limit the access to %s to users meeting this criteria:"
+msgstr ""
+
+#: templates/part.wizard-userfilter.php:31
+#, php-format
+msgid ""
+"The filter specifies which LDAP users shall have access to the %s instance."
+msgstr ""
+
+#: templates/part.wizard-userfilter.php:38
+msgid "users found"
+msgstr ""
+
+#: templates/part.wizardcontrols.php:5
+msgid "Back"
+msgstr ""
+
+#: templates/part.wizardcontrols.php:8
+msgid "Continue"
+msgstr ""
+
+#: templates/settings.php:11
+msgid ""
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may"
+" experience unexpected behavior. Please ask your system administrator to "
+"disable one of them."
+msgstr ""
+
+#: templates/settings.php:14
+msgid ""
+"Warning: The PHP LDAP module is not installed, the backend will not "
+"work. Please ask your system administrator to install it."
+msgstr ""
+
+#: templates/settings.php:20
+msgid "Connection Settings"
+msgstr ""
+
+#: templates/settings.php:22
+msgid "Configuration Active"
+msgstr ""
+
+#: templates/settings.php:22
+msgid "When unchecked, this configuration will be skipped."
+msgstr ""
+
+#: templates/settings.php:23
+msgid "Backup (Replica) Host"
+msgstr ""
+
+#: templates/settings.php:23
+msgid ""
+"Give an optional backup host. It must be a replica of the main LDAP/AD "
+"server."
+msgstr ""
+
+#: templates/settings.php:24
+msgid "Backup (Replica) Port"
+msgstr ""
+
+#: templates/settings.php:25
+msgid "Disable Main Server"
+msgstr ""
+
+#: templates/settings.php:25
+msgid "Only connect to the replica server."
+msgstr ""
+
+#: templates/settings.php:26
+msgid "Case insensitve LDAP server (Windows)"
+msgstr ""
+
+#: templates/settings.php:27
+msgid "Turn off SSL certificate validation."
+msgstr ""
+
+#: templates/settings.php:27
+#, php-format
+msgid ""
+"Not recommended, use it for testing only! If connection only works with this"
+" option, import the LDAP server's SSL certificate in your %s server."
+msgstr ""
+
+#: templates/settings.php:28
+msgid "Cache Time-To-Live"
+msgstr ""
+
+#: templates/settings.php:28
+msgid "in seconds. A change empties the cache."
+msgstr ""
+
+#: templates/settings.php:30
+msgid "Directory Settings"
+msgstr ""
+
+#: templates/settings.php:32
+msgid "User Display Name Field"
+msgstr ""
+
+#: templates/settings.php:32
+msgid "The LDAP attribute to use to generate the user's display name."
+msgstr ""
+
+#: templates/settings.php:33
+msgid "Base User Tree"
+msgstr ""
+
+#: templates/settings.php:33
+msgid "One User Base DN per line"
+msgstr ""
+
+#: templates/settings.php:34
+msgid "User Search Attributes"
+msgstr ""
+
+#: templates/settings.php:34 templates/settings.php:37
+msgid "Optional; one attribute per line"
+msgstr ""
+
+#: templates/settings.php:35
+msgid "Group Display Name Field"
+msgstr ""
+
+#: templates/settings.php:35
+msgid "The LDAP attribute to use to generate the groups's display name."
+msgstr ""
+
+#: templates/settings.php:36
+msgid "Base Group Tree"
+msgstr ""
+
+#: templates/settings.php:36
+msgid "One Group Base DN per line"
+msgstr ""
+
+#: templates/settings.php:37
+msgid "Group Search Attributes"
+msgstr ""
+
+#: templates/settings.php:38
+msgid "Group-Member association"
+msgstr ""
+
+#: templates/settings.php:40
+msgid "Special Attributes"
+msgstr ""
+
+#: templates/settings.php:42
+msgid "Quota Field"
+msgstr ""
+
+#: templates/settings.php:43
+msgid "Quota Default"
+msgstr ""
+
+#: templates/settings.php:43
+msgid "in bytes"
+msgstr ""
+
+#: templates/settings.php:44
+msgid "Email Field"
+msgstr ""
+
+#: templates/settings.php:45
+msgid "User Home Folder Naming Rule"
+msgstr ""
+
+#: templates/settings.php:45
+msgid ""
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD "
+"attribute."
+msgstr ""
+
+#: templates/settings.php:51
+msgid "Internal Username"
+msgstr ""
+
+#: templates/settings.php:52
+msgid ""
+"By default the internal username will be created from the UUID attribute. It"
+" makes sure that the username is unique and characters do not need to be "
+"converted. The internal username has the restriction that only these "
+"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced "
+"with their ASCII correspondence or simply omitted. On collisions a number "
+"will be added/increased. The internal username is used to identify a user "
+"internally. It is also the default name for the user home folder. It is also"
+" a part of remote URLs, for instance for all *DAV services. With this "
+"setting, the default behavior can be overridden. To achieve a similar "
+"behavior as before ownCloud 5 enter the user display name attribute in the "
+"following field. Leave it empty for default behavior. Changes will have "
+"effect only on newly mapped (added) LDAP users."
+msgstr ""
+
+#: templates/settings.php:53
+msgid "Internal Username Attribute:"
+msgstr ""
+
+#: templates/settings.php:54
+msgid "Override UUID detection"
+msgstr ""
+
+#: templates/settings.php:55
+msgid ""
+"By default, the UUID attribute is automatically detected. The UUID attribute"
+" is used to doubtlessly identify LDAP users and groups. Also, the internal "
+"username will be created based on the UUID, if not specified otherwise "
+"above. You can override the setting and pass an attribute of your choice. "
+"You must make sure that the attribute of your choice can be fetched for both"
+" users and groups and it is unique. Leave it empty for default behavior. "
+"Changes will have effect only on newly mapped (added) LDAP users and groups."
+msgstr ""
+
+#: templates/settings.php:56
+msgid "UUID Attribute for Users:"
+msgstr ""
+
+#: templates/settings.php:57
+msgid "UUID Attribute for Groups:"
+msgstr ""
+
+#: templates/settings.php:58
+msgid "Username-LDAP User Mapping"
+msgstr ""
+
+#: templates/settings.php:59
+msgid ""
+"Usernames are used to store and assign (meta) data. In order to precisely "
+"identify and recognize users, each LDAP user will have a internal username. "
+"This requires a mapping from username to LDAP user. The created username is "
+"mapped to the UUID of the LDAP user. Additionally the DN is cached as well "
+"to reduce LDAP interaction, but it is not used for identification. If the DN"
+" changes, the changes will be found. The internal username is used all over."
+" Clearing the mappings will have leftovers everywhere. Clearing the mappings"
+" is not configuration sensitive, it affects all LDAP configurations! Never "
+"clear the mappings in a production environment, only in a testing or "
+"experimental stage."
+msgstr ""
+
+#: templates/settings.php:60
+msgid "Clear Username-LDAP User Mapping"
+msgstr ""
+
+#: templates/settings.php:60
+msgid "Clear Groupname-LDAP Group Mapping"
+msgstr ""
diff --git a/l10n/az/user_webdavauth.po b/l10n/az/user_webdavauth.po
new file mode 100644
index 00000000000..0def6b1cb3d
--- /dev/null
+++ b/l10n/az/user_webdavauth.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-09 06:39-0500\n"
+"PO-Revision-Date: 2013-12-09 11:10+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/owncloud/language/az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: templates/settings.php:3
+msgid "WebDAV Authentication"
+msgstr ""
+
+#: templates/settings.php:4
+msgid "Address: "
+msgstr ""
+
+#: templates/settings.php:7
+msgid ""
+"The user credentials will be sent to this address. This plugin checks the "
+"response and will interpret the HTTP statuscodes 401 and 403 as invalid "
+"credentials, and all other responses as valid credentials."
+msgstr ""
diff --git a/l10n/be/core.po b/l10n/be/core.po
index 2befea17b68..9e268cef6cd 100644
--- a/l10n/be/core.po
+++ b/l10n/be/core.po
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# VladVaranetski , 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: VladVaranetski \n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -74,89 +75,89 @@ msgstr ""
#: js/config.php:32
msgid "Sunday"
-msgstr ""
+msgstr "Нядзеля"
#: js/config.php:33
msgid "Monday"
-msgstr ""
+msgstr "Панядзелак"
#: js/config.php:34
msgid "Tuesday"
-msgstr ""
+msgstr "Аўторак"
#: js/config.php:35
msgid "Wednesday"
-msgstr ""
+msgstr "Серада"
#: js/config.php:36
msgid "Thursday"
-msgstr ""
+msgstr "Чацвер"
#: js/config.php:37
msgid "Friday"
-msgstr ""
+msgstr "Пятніца"
#: js/config.php:38
msgid "Saturday"
-msgstr ""
+msgstr "Субота"
#: js/config.php:43
msgid "January"
-msgstr ""
+msgstr "Студзень"
#: js/config.php:44
msgid "February"
-msgstr ""
+msgstr "Люты"
#: js/config.php:45
msgid "March"
-msgstr ""
+msgstr "Сакавік"
#: js/config.php:46
msgid "April"
-msgstr ""
+msgstr "Красавік"
#: js/config.php:47
msgid "May"
-msgstr ""
+msgstr "Май"
#: js/config.php:48
msgid "June"
-msgstr ""
+msgstr "Чэрвень"
#: js/config.php:49
msgid "July"
-msgstr ""
+msgstr "Ліпень"
#: js/config.php:50
msgid "August"
-msgstr ""
+msgstr "Жнівень"
#: js/config.php:51
msgid "September"
-msgstr ""
+msgstr "Верасень"
#: js/config.php:52
msgid "October"
-msgstr ""
+msgstr "Кастрычнік"
#: js/config.php:53
msgid "November"
-msgstr ""
+msgstr "Лістапад"
#: js/config.php:54
msgid "December"
-msgstr ""
+msgstr "Снежань"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
-msgstr ""
+msgstr "Налады"
-#: js/js.js:858
+#: js/js.js:872
msgid "seconds ago"
-msgstr ""
+msgstr "Секунд таму"
-#: js/js.js:859
+#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
@@ -164,7 +165,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:860
+#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
@@ -172,15 +173,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:861
+#: js/js.js:875
msgid "today"
-msgstr ""
+msgstr "Сёння"
-#: js/js.js:862
+#: js/js.js:876
msgid "yesterday"
-msgstr ""
+msgstr "Ўчора"
-#: js/js.js:863
+#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
@@ -188,11 +189,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:864
+#: js/js.js:878
msgid "last month"
-msgstr ""
+msgstr "У мінулым месяцы"
-#: js/js.js:865
+#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
@@ -200,21 +201,21 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:866
+#: js/js.js:880
msgid "months ago"
-msgstr ""
+msgstr "Месяцаў таму"
-#: js/js.js:867
+#: js/js.js:881
msgid "last year"
-msgstr ""
+msgstr "У мінулым годзе"
-#: js/js.js:868
+#: js/js.js:882
msgid "years ago"
-msgstr ""
+msgstr "Гадоў таму"
#: js/oc-dialogs.js:123
msgid "Choose"
-msgstr ""
+msgstr "Выбар"
#: js/oc-dialogs.js:146
msgid "Error loading file picker template: {error}"
@@ -222,15 +223,15 @@ msgstr ""
#: js/oc-dialogs.js:172
msgid "Yes"
-msgstr ""
+msgstr "Так"
#: js/oc-dialogs.js:182
msgid "No"
-msgstr ""
+msgstr "Не"
#: js/oc-dialogs.js:199
msgid "Ok"
-msgstr ""
+msgstr "Добра"
#: js/oc-dialogs.js:219
msgid "Error loading message template: {error}"
@@ -287,9 +288,9 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
-msgstr ""
+msgstr "Памылка"
#: js/share.js:160 js/share.js:747
msgid "Error while sharing"
@@ -323,7 +324,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -399,7 +400,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -425,7 +426,7 @@ msgstr ""
#: js/tags.js:4
msgid "The object type is not specified."
-msgstr ""
+msgstr "Тып аб'екта не ўдакладняецца."
#: js/tags.js:13
msgid "Enter new"
@@ -490,8 +491,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -535,7 +536,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -602,101 +603,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Дасведчаны"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Завяршыць ўстаноўку."
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -722,19 +730,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/be/files.po b/l10n/be/files.po
index f4af9ee9c97..5dcc21e2463 100644
--- a/l10n/be/files.po
+++ b/l10n/be/files.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: I Robot\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -280,7 +289,7 @@ msgstr ""
#: js/files.js:558 js/files.js:596
msgid "Error"
-msgstr ""
+msgstr "Памылка"
#: js/files.js:613 templates/index.php:56
msgid "Name"
@@ -383,29 +392,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/be/files_trashbin.po b/l10n/be/files_trashbin.po
index d784d5ddc54..91455c96709 100644
--- a/l10n/be/files_trashbin.po
+++ b/l10n/be/files_trashbin.po
@@ -6,10 +6,10 @@
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-10-10 22:26-0400\n"
-"PO-Revision-Date: 2013-10-11 02:27+0000\n"
-"Last-Translator: I Robot \n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: I Robot\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,44 +17,44 @@ msgstr ""
"Language: be\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ajax/delete.php:42
+#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr ""
-#: ajax/undelete.php:42
+#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr ""
-#: js/trash.js:18 js/trash.js:44 js/trash.js:121 js/trash.js:149
+#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
-msgstr ""
+msgstr "Памылка"
-#: lib/trashbin.php:814 lib/trashbin.php:816
+#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
msgstr ""
-#: templates/index.php:9
+#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr ""
-#: templates/index.php:23
+#: templates/index.php:20
msgid "Name"
msgstr ""
-#: templates/index.php:26 templates/index.php:28
+#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr ""
-#: templates/index.php:34
+#: templates/index.php:31
msgid "Deleted"
msgstr ""
-#: templates/index.php:37 templates/index.php:38
+#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr ""
-#: templates/part.breadcrumb.php:9
+#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr ""
diff --git a/l10n/be/lib.po b/l10n/be/lib.po
index 7dde7246efd..a422c6e60fc 100644
--- a/l10n/be/lib.po
+++ b/l10n/be/lib.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: I Robot\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,51 +17,51 @@ msgstr ""
"Language: be\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: private/app.php:243
+#: private/app.php:245
#, php-format
msgid ""
"App \"%s\" can't be installed because it is not compatible with this version"
" of ownCloud."
msgstr ""
-#: private/app.php:255
+#: private/app.php:257
msgid "No app name specified"
msgstr ""
-#: private/app.php:360
+#: private/app.php:362
msgid "Help"
msgstr ""
-#: private/app.php:373
+#: private/app.php:375
msgid "Personal"
msgstr ""
-#: private/app.php:384
+#: private/app.php:386
msgid "Settings"
-msgstr ""
+msgstr "Налады"
-#: private/app.php:396
+#: private/app.php:398
msgid "Users"
msgstr ""
-#: private/app.php:409
+#: private/app.php:411
msgid "Admin"
msgstr ""
-#: private/app.php:873
+#: private/app.php:875
#, php-format
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -286,7 +286,7 @@ msgstr ""
#: private/template/functions.php:130
msgid "seconds ago"
-msgstr ""
+msgstr "Секунд таму"
#: private/template/functions.php:131
msgid "%n minute ago"
@@ -306,11 +306,11 @@ msgstr[3] ""
#: private/template/functions.php:133
msgid "today"
-msgstr ""
+msgstr "Сёння"
#: private/template/functions.php:134
msgid "yesterday"
-msgstr ""
+msgstr "Ўчора"
#: private/template/functions.php:136
msgid "%n day go"
@@ -322,7 +322,7 @@ msgstr[3] ""
#: private/template/functions.php:138
msgid "last month"
-msgstr ""
+msgstr "У мінулым месяцы"
#: private/template/functions.php:139
msgid "%n month ago"
@@ -334,12 +334,8 @@ msgstr[3] ""
#: private/template/functions.php:141
msgid "last year"
-msgstr ""
+msgstr "У мінулым годзе"
#: private/template/functions.php:142
msgid "years ago"
-msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
+msgstr "Гадоў таму"
diff --git a/l10n/be/settings.po b/l10n/be/settings.po
index 3545bf5f05e..fdb09c0a2b7 100644
--- a/l10n/be/settings.po
+++ b/l10n/be/settings.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-04 18:12-0500\n"
-"PO-Revision-Date: 2013-12-04 23:13+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: I Robot\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -147,7 +147,7 @@ msgstr ""
#: js/apps.js:128
msgid "Error"
-msgstr ""
+msgstr "Памылка"
#: js/apps.js:129 templates/apps.php:43
msgid "Update"
@@ -198,19 +198,19 @@ msgstr ""
msgid "add group"
msgstr ""
-#: js/users.js:451
+#: js/users.js:454
msgid "A valid username must be provided"
msgstr ""
-#: js/users.js:452 js/users.js:458 js/users.js:473
+#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr ""
-#: js/users.js:457
+#: js/users.js:460
msgid "A valid password must be provided"
msgstr ""
-#: js/users.js:481
+#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr ""
diff --git a/l10n/be/user_ldap.po b/l10n/be/user_ldap.po
index 3a41fc0a4d2..f9a186e2dea 100644
--- a/l10n/be/user_ldap.po
+++ b/l10n/be/user_ldap.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-06 01:55-0500\n"
+"PO-Revision-Date: 2014-01-05 17:20+0000\n"
+"Last-Translator: I Robot\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -84,45 +84,45 @@ msgstr ""
#: js/settings.js:133
msgid "Error"
-msgstr ""
+msgstr "Памылка"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -144,11 +144,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/bg_BG/core.po b/l10n/bg_BG/core.po
index 5a15463582f..f865e5452d4 100644
--- a/l10n/bg_BG/core.po
+++ b/l10n/bg_BG/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
"MIME-Version: 1.0\n"
@@ -148,59 +148,59 @@ msgstr "Ноември"
msgid "December"
msgstr "Декември"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Настройки"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "преди секунди"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "днес"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "вчера"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "последният месец"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr ""
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "последната година"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "последните години"
@@ -277,7 +277,7 @@ msgid "Share"
msgstr "Споделяне"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Грешка"
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Парола"
@@ -389,7 +389,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr "Ще получите връзка за нулиране на паролата Ви."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Потребител"
@@ -525,7 +525,7 @@ msgstr "Лични"
msgid "Users"
msgstr "Потребители"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Приложения"
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Създаване на админ профил"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Разширено"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Директория за данни"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Конфигуриране на базата"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "ще се ползва"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Потребител за базата"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Парола за базата"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Име на базата"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Хост за базата"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Завършване на настройките"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Изход"
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Забравена парола?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "запомни"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Вход"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po
index f5d1fef4fe4..ef6b2a9422c 100644
--- a/l10n/bg_BG/files.po
+++ b/l10n/bg_BG/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-11-29 19:20+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Споделяне"
@@ -377,29 +386,25 @@ msgstr "Няма нищо тук. Качете нещо."
msgid "Download"
msgstr "Изтегляне"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Изтриване"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Файлът който сте избрали за качване е прекалено голям"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Файловете които се опитвате да качите са по-големи от позволеното за сървъра."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Файловете се претърсват, изчакайте."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/bg_BG/lib.po b/l10n/bg_BG/lib.po
index 68949be3cd9..1771455acb2 100644
--- a/l10n/bg_BG/lib.po
+++ b/l10n/bg_BG/lib.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
"MIME-Version: 1.0\n"
@@ -54,15 +54,15 @@ msgstr "Админ"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "уеб услуги под Ваш контрол"
@@ -71,23 +71,23 @@ msgstr "уеб услуги под Ваш контрол"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Изтеглянето като ZIP е изключено."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Файловете трябва да се изтеглят един по един."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Назад към файловете"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Избраните файлове са прекалено големи за генерирането на ZIP архив."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -173,17 +173,17 @@ msgstr "Текст"
msgid "Images"
msgstr "Снимки"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s въведете потребителско име за базата с данни."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s въведете име на базата с данни."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s, не можете да ползвате точки в името на базата от данни"
@@ -204,11 +204,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Невалидно MySQL потребителско име и/или парола"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +216,10 @@ msgid "DB Error: \"%s\""
msgstr "Грешка в базата от данни: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +252,7 @@ msgstr "Oracle връзка не можа да се осъществи"
msgid "Oracle username and/or password not valid"
msgstr "Невалидно Oracle потребителско име и/или парола"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Проблемната команда беше: \"%s\", име: %s, парола: %s"
@@ -332,7 +332,3 @@ msgstr "последната година"
#: private/template/functions.php:142
msgid "years ago"
msgstr "последните години"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po
index bdaa50a09ae..9a3ddf148fb 100644
--- a/l10n/bg_BG/user_ldap.po
+++ b/l10n/bg_BG/user_ldap.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
"MIME-Version: 1.0\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -86,43 +86,43 @@ msgstr ""
msgid "Error"
msgstr "Грешка"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -140,11 +140,11 @@ msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/bn_BD/core.po b/l10n/bn_BD/core.po
index 20daeece7f5..7c1fcc50dd7 100644
--- a/l10n/bn_BD/core.po
+++ b/l10n/bn_BD/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
"MIME-Version: 1.0\n"
@@ -148,59 +148,59 @@ msgstr "নভেম্বর"
msgid "December"
msgstr "ডিসেম্বর"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "নিয়ামকসমূহ"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "সেকেন্ড পূর্বে"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "আজ"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "গতকাল"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "গত মাস"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "মাস পূর্বে"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "গত বছর"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "বছর পূর্বে"
@@ -277,7 +277,7 @@ msgid "Share"
msgstr "ভাগাভাগি কর"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "সমস্যা"
@@ -313,7 +313,7 @@ msgstr ""
msgid "Password protect"
msgstr "কূটশব্দ সুরক্ষিত"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "কূটশব্দ"
@@ -389,7 +389,7 @@ msgstr "মুছে ফেল"
msgid "share"
msgstr "ভাগাভাগি কর"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "কূটশব্দদ্বারা সুরক্ষিত"
@@ -480,8 +480,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr "কূটশব্দ পূনঃনির্ধারণের জন্য একটি টূনঃনির্ধারণ লিংকটি আপনাকে ই-মেইলে পাঠানো হয়েছে ।"
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "ব্যবহারকারী"
@@ -525,7 +525,7 @@ msgstr "ব্যক্তিগত"
msgid "Users"
msgstr "ব্যবহারকারী"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "অ্যাপ"
@@ -592,101 +592,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "নিরাপত্তাজনিত সতর্কতা"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "প্রশাসক একাউন্ট তৈরী করুন"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "সুচারু"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "ডাটা ফোল্ডার "
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "ডাটাবেচ কনফিগার করুন"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "ব্যবহৃত হবে"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "ডাটাবেজ ব্যবহারকারী"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "ডাটাবেজ কূটশব্দ"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "ডাটাবেজের নাম"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "ডাটাবেজ টেবলস্পেস"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "ডাটাবেজ হোস্ট"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "সেটআপ সুসম্পন্ন কর"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "প্রস্থান"
@@ -712,19 +719,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "কূটশব্দ হারিয়েছেন?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "মনে রাখ"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "প্রবেশ"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po
index 15267793e2f..9d7ce1231d6 100644
--- a/l10n/bn_BD/files.po
+++ b/l10n/bn_BD/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "ভাগাভাগি কর"
@@ -377,29 +386,25 @@ msgstr "এখানে কিছুই নেই। কিছু আপলো
msgid "Download"
msgstr "ডাউনলোড"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "ভাগাভাগি বাতিল "
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "মুছে"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "আপলোডের আকারটি অনেক বড়"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন "
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।"
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "বর্তমান স্ক্যানিং"
diff --git a/l10n/bn_BD/lib.po b/l10n/bn_BD/lib.po
index 934fde2d478..aa82b972043 100644
--- a/l10n/bn_BD/lib.po
+++ b/l10n/bn_BD/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr "প্রশাসন"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "ওয়েব সার্ভিস আপনার হাতের মুঠোয়"
@@ -70,23 +70,23 @@ msgstr "ওয়েব সার্ভিস আপনার হাতের ম
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "ZIP ডাউনলোড বন্ধ করা আছে।"
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "ফাইলগুলো একে একে ডাউনলোড করা আবশ্যক।"
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "ফাইলে ফিরে চল"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "নির্বাচিত ফাইলগুলো এতই বৃহৎ যে জিপ ফাইল তৈরী করা সম্ভব নয়।"
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr "টেক্সট"
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr "গত বছর"
#: private/template/functions.php:142
msgid "years ago"
msgstr "বছর পূর্বে"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po
index 4731a9a7f5b..600c5034216 100644
--- a/l10n/bn_BD/user_ldap.po
+++ b/l10n/bn_BD/user_ldap.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
"MIME-Version: 1.0\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -86,43 +86,43 @@ msgstr ""
msgid "Error"
msgstr "সমস্যা"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -140,11 +140,11 @@ msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/bs/core.po b/l10n/bs/core.po
index 3e43cb9ae34..08753f3c8f0 100644
--- a/l10n/bs/core.po
+++ b/l10n/bs/core.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n"
"MIME-Version: 1.0\n"
@@ -282,7 +282,7 @@ msgid "Share"
msgstr "Podijeli"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -318,7 +318,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -394,7 +394,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -485,8 +485,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -530,7 +530,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -597,101 +597,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -717,19 +724,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/bs/files.po b/l10n/bs/files.po
index 1c1e88aba2b..440f16a2ce5 100644
--- a/l10n/bs/files.po
+++ b/l10n/bs/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-11-29 19:20+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Podijeli"
@@ -380,29 +389,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/bs/lib.po b/l10n/bs/lib.po
index 52547ce4d3a..447589d9b0b 100644
--- a/l10n/bs/lib.po
+++ b/l10n/bs/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -335,7 +335,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/bs/user_ldap.po b/l10n/bs/user_ldap.po
index 947a928de2e..fb4bd54b94c 100644
--- a/l10n/bs/user_ldap.po
+++ b/l10n/bs/user_ldap.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n"
"MIME-Version: 1.0\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -86,43 +86,43 @@ msgstr ""
msgid "Error"
msgstr ""
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -142,11 +142,11 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/ca/core.po b/l10n/ca/core.po
index accfafe376e..2a27131c22e 100644
--- a/l10n/ca/core.po
+++ b/l10n/ca/core.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# rogerc, 2013
+# rogerc, 2013-2014
# rogerc, 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-12-02 11:30+0000\n"
+"POT-Creation-Date: 2014-01-05 01:55-0500\n"
+"PO-Revision-Date: 2014-01-04 10:20+0000\n"
"Last-Translator: rogerc\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
"MIME-Version: 1.0\n"
@@ -150,59 +150,59 @@ msgstr "Novembre"
msgid "December"
msgstr "Desembre"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Configuració"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "segons enrere"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "fa %n minut"
msgstr[1] "fa %n minuts"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "fa %n hora"
msgstr[1] "fa %n hores"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "avui"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "ahir"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "fa %n dies"
msgstr[1] "fa %n dies"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "el mes passat"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "fa %n mes"
msgstr[1] "fa %n mesos"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "mesos enrere"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "l'any passat"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "anys enrere"
@@ -279,7 +279,7 @@ msgid "Share"
msgstr "Comparteix"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Error"
@@ -315,7 +315,7 @@ msgstr "Enllaç de compartició"
msgid "Password protect"
msgstr "Protegir amb contrasenya"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:38
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Contrasenya"
@@ -482,7 +482,7 @@ msgstr "La petició ha fallat! Esteu segur que el correu/nom d'usuari és cor
msgid "You will receive a link to reset your password via Email."
msgstr "Rebreu un enllaç al correu electrònic per reiniciar la contrasenya."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
#: templates/login.php:31
msgid "Username"
msgstr "Nom d'usuari"
@@ -527,7 +527,7 @@ msgstr "Personal"
msgid "Users"
msgstr "Usuaris"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Aplicacions"
@@ -594,101 +594,108 @@ msgstr "La compartició venç el %s."
msgid "Cheers!"
msgstr "Salut!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Avís de seguretat"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "La versió de PHP que useu és vulnerable a l'atac per NULL Byte (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Actualitzeu la instal·lació de PHP per usar %s de forma segura."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "No està disponible el generador de nombres aleatoris segurs, habiliteu l'extensió de PHP OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Sense un generador de nombres aleatoris segurs un atacant podria predir els senyals per restablir la contrasenya i prendre-us el compte."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "La carpeta de dades i els seus fitxers probablement són accessibles des d'internet perquè el fitxer .htaccess no funciona."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Per informació de com configurar el servidor, comproveu la documentació."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Crea un compte d'administrador"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Avançat"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Carpeta de dades"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Configura la base de dades"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "s'usarà"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Usuari de la base de dades"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Contrasenya de la base de dades"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Nom de la base de dades"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Espai de taula de la base de dades"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Ordinador central de la base de dades"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Acaba la configuració"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Acabant..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Aquesta aplicació necessita tenir JavaScript activat per funcionar correctament. Activeu JavaScript i carregueu aquesta interfície de nou."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s està disponible. Obtingueu més informació de com actualitzar."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Surt"
diff --git a/l10n/ca/files.po b/l10n/ca/files.po
index 16ebbe93338..e96c34be042 100644
--- a/l10n/ca/files.po
+++ b/l10n/ca/files.po
@@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
-"Last-Translator: rogerc\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -49,12 +49,17 @@ msgstr "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent."
msgid "Not a valid source"
msgstr "No és un origen vàlid"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "S'ha produït un error en baixar %s a %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "S'ha produït un error en crear el fitxer"
@@ -174,6 +179,10 @@ msgstr "No s'ha pogut crear el fitxer"
msgid "Could not create folder"
msgstr "No s'ha pogut crear la carpeta"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Comparteix"
@@ -380,29 +389,25 @@ msgstr "Res per aquí. Pugeu alguna cosa!"
msgid "Download"
msgstr "Baixa"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Deixa de compartir"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Esborra"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "La pujada és massa gran"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor"
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "S'estan escanejant els fitxers, espereu"
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Actualment escanejant"
diff --git a/l10n/ca/lib.po b/l10n/ca/lib.po
index 692ffe5f992..2cfd9ff67e3 100644
--- a/l10n/ca/lib.po
+++ b/l10n/ca/lib.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-12-02 11:30+0000\n"
-"Last-Translator: rogerc\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -71,23 +71,23 @@ msgstr "controleu els vostres serveis web"
msgid "cannot open \"%s\""
msgstr "no es pot obrir \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "La baixada en ZIP està desactivada."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Els fitxers s'han de baixar d'un en un."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Torna a Fitxers"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Els fitxers seleccionats son massa grans per generar un fitxer zip."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -173,17 +173,17 @@ msgstr "Text"
msgid "Images"
msgstr "Imatges"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s escriviu el nom d'usuari de la base de dades."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s escriviu el nom de la base de dades."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s no podeu usar punts en el nom de la base de dades"
@@ -204,11 +204,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Nom d'usuari i/o contrasenya MySQL no vàlids"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +216,10 @@ msgid "DB Error: \"%s\""
msgstr "Error DB: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +252,7 @@ msgstr "No s'ha pogut establir la connexió Oracle"
msgid "Oracle username and/or password not valid"
msgstr "Nom d'usuari i/o contrasenya Oracle no vàlids"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s"
@@ -332,7 +332,3 @@ msgstr "l'any passat"
#: private/template/functions.php:142
msgid "years ago"
msgstr "anys enrere"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Provocat per:"
diff --git a/l10n/ca/user_ldap.po b/l10n/ca/user_ldap.po
index 286dc47ba11..bf9ea4772c2 100644
--- a/l10n/ca/user_ldap.po
+++ b/l10n/ca/user_ldap.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
"MIME-Version: 1.0\n"
@@ -28,17 +28,17 @@ msgstr "Ha fallat en eliminar els mapatges"
msgid "Failed to delete the server configuration"
msgstr "Ha fallat en eliminar la configuració del servidor"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "La configuració és vàlida i s'ha pogut establir la comunicació!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -89,43 +89,43 @@ msgstr "Èxit"
msgid "Error"
msgstr "Error"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Configuració correcte"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Configuració incorrecte"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Configuració incompleta"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Selecciona els grups"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Seleccioneu les classes dels objectes"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Seleccioneu els atributs"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "La prova de connexió ha reeixit"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "La prova de connexió ha fallat"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Voleu eliminar la configuració actual del servidor?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Confirma l'eliminació"
@@ -143,11 +143,11 @@ msgid_plural "%s users found"
msgstr[0] "S'ha trobat %s usuari"
msgstr[1] "S'han trobat %s usuaris"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Ordinador central no vàlid"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "La característica desitjada no s'ha trobat"
diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po
index a2d4d38b058..a77422d481e 100644
--- a/l10n/cs_CZ/core.po
+++ b/l10n/cs_CZ/core.po
@@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-12-02 19:50+0000\n"
-"Last-Translator: pstast \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: liska_\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -155,63 +155,63 @@ msgstr "Listopad"
msgid "December"
msgstr "Prosinec"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Nastavení"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "před pár vteřinami"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "před %n minutou"
msgstr[1] "před %n minutami"
msgstr[2] "před %n minutami"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "před %n hodinou"
msgstr[1] "před %n hodinami"
msgstr[2] "před %n hodinami"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "dnes"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "včera"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "před %n dnem"
msgstr[1] "před %n dny"
msgstr[2] "před %n dny"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "minulý měsíc"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "před %n měsícem"
msgstr[1] "před %n měsíci"
msgstr[2] "před %n měsíci"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "před měsíci"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "minulý rok"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "před lety"
@@ -289,7 +289,7 @@ msgid "Share"
msgstr "Sdílet"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Chyba"
@@ -325,7 +325,7 @@ msgstr "Sdílet odkaz"
msgid "Password protect"
msgstr "Chránit heslem"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:38
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Heslo"
@@ -492,7 +492,7 @@ msgstr "Požadavek selhal! Ujistili jste se, že vaše uživatelské jméno a
msgid "You will receive a link to reset your password via Email."
msgstr "E-mailem Vám bude zaslán odkaz pro obnovu hesla."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
#: templates/login.php:31
msgid "Username"
msgstr "Uživatelské jméno"
@@ -537,7 +537,7 @@ msgstr "Osobní"
msgid "Users"
msgstr "Uživatelé"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Aplikace"
@@ -604,101 +604,108 @@ msgstr "Sdílení vyprší %s."
msgid "Cheers!"
msgstr "Ať slouží!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Bezpečnostní upozornění"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Verze vašeho PHP je napadnutelná pomocí techniky \"NULL Byte\" (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Aktualizujte prosím vaši instanci PHP pro bezpečné používání %s."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Není dostupný žádný bezpečný generátor náhodných čísel. Povolte, prosím, rozšíření OpenSSL v PHP."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Bez bezpečného generátoru náhodných čísel může útočník předpovědět token pro obnovu hesla a převzít kontrolu nad Vaším účtem."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Váš adresář s daty a soubory jsou dostupné z internetu, protože soubor .htaccess nefunguje."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Pro informace, jak správně nastavit váš server, se podívejte do dokumentace."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Vytvořit účet správce"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Pokročilé"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Složka s daty"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Nastavit databázi"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "bude použito"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Uživatel databáze"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Heslo databáze"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Název databáze"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Tabulkový prostor databáze"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Hostitel databáze"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Dokončit nastavení"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Dokončuji..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Tato aplikace potřebuje pro svou správnou funkčnost mít povolený javascript. Prosím povolte JavaScript a znovu načtěte toto rozhraní."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s je dostupná. Získejte více informací k postupu aktualizace."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Odhlásit se"
diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po
index 08d7dffffce..40608268d8e 100644
--- a/l10n/cs_CZ/files.po
+++ b/l10n/cs_CZ/files.po
@@ -6,7 +6,7 @@
# Twiguard, 2013
# dibalaj , 2013
# Honza K. , 2013
-# liska_, 2013
+# liska_, 2013-2014
# cvanca , 2013
# pstast , 2013
# Tomáš Chvátal , 2013
@@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
-"Last-Translator: pstast \n"
+"POT-Creation-Date: 2014-01-04 01:55-0500\n"
+"PO-Revision-Date: 2014-01-02 07:30+0000\n"
+"Last-Translator: liska_\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -53,12 +53,17 @@ msgstr "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno."
msgid "Not a valid source"
msgstr "Neplatný zdroj"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Server není oprávněn otevírat adresy URL. Ověřte, prosím, konfiguraci serveru."
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Chyba při stahování %s do %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Chyba při vytváření souboru"
@@ -178,6 +183,10 @@ msgstr "Nepodařilo se vytvořit soubor"
msgid "Could not create folder"
msgstr "Nepodařilo se vytvořit složku"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Chyba při načítání URL"
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Sdílet"
@@ -387,29 +396,25 @@ msgstr "Žádný obsah. Nahrajte něco."
msgid "Download"
msgstr "Stáhnout"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Zrušit sdílení"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Smazat"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Odesílaný soubor je příliš velký"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Soubory se prohledávají, prosím čekejte."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Aktuální prohledávání"
diff --git a/l10n/cs_CZ/lib.po b/l10n/cs_CZ/lib.po
index df4aeb32e12..7755fd96b2d 100644
--- a/l10n/cs_CZ/lib.po
+++ b/l10n/cs_CZ/lib.po
@@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-27 18:40+0000\n"
-"Last-Translator: pstast \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -74,23 +74,23 @@ msgstr "webové služby pod Vaší kontrolou"
msgid "cannot open \"%s\""
msgstr "nelze otevřít \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Stahování v ZIPu je vypnuto."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Soubory musí být stahovány jednotlivě."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Zpět k souborům"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Vybrané soubory jsou příliš velké pro vytvoření ZIP souboru."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -176,17 +176,17 @@ msgstr "Text"
msgid "Images"
msgstr "Obrázky"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "Zadejte uživatelské jméno %s databáze."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "Zadejte název databáze pro %s databáze."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "V názvu databáze %s nesmíte používat tečky."
@@ -207,11 +207,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Uživatelské jméno či heslo MySQL není platné"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -219,10 +219,10 @@ msgid "DB Error: \"%s\""
msgstr "Chyba databáze: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -255,7 +255,7 @@ msgstr "Spojení s Oracle nemohlo být navázáno"
msgid "Oracle username and/or password not valid"
msgstr "Uživatelské jméno či heslo Oracle není platné"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Příslušný příkaz byl: \"%s\", jméno: %s, heslo: %s"
@@ -339,7 +339,3 @@ msgstr "minulý rok"
#: private/template/functions.php:142
msgid "years ago"
msgstr "před lety"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Příčina:"
diff --git a/l10n/cs_CZ/settings.po b/l10n/cs_CZ/settings.po
index ccd16365834..488dc267f31 100644
--- a/l10n/cs_CZ/settings.po
+++ b/l10n/cs_CZ/settings.po
@@ -13,9 +13,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-04 18:12-0500\n"
-"PO-Revision-Date: 2013-12-04 23:13+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-11 13:31-0500\n"
+"PO-Revision-Date: 2013-12-09 21:50+0000\n"
+"Last-Translator: liska_\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -204,19 +204,19 @@ msgstr "Smazat"
msgid "add group"
msgstr "přidat skupinu"
-#: js/users.js:451
+#: js/users.js:454
msgid "A valid username must be provided"
msgstr "Musíte zadat platné uživatelské jméno"
-#: js/users.js:452 js/users.js:458 js/users.js:473
+#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr "Chyba při vytváření užiatele"
-#: js/users.js:457
+#: js/users.js:460
msgid "A valid password must be provided"
msgstr "Musíte zadat platné heslo"
-#: js/users.js:481
+#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Varování: Osobní složka uživatele \"{user}\" již existuje."
@@ -291,14 +291,14 @@ msgstr "Schází PHP modul 'fileinfo'. Doporučujeme jej povolit pro nejlepší
#: templates/admin.php:79
msgid "Your PHP version is outdated"
-msgstr ""
+msgstr "Tato verze PHP je zastaralá."
#: templates/admin.php:82
msgid ""
"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
"newer because older versions are known to be broken. It is possible that "
"this installation is not working correctly."
-msgstr ""
+msgstr "Tato verze PHP je zastaralá. Důrazně doporučujeme aktualizovat na verzi 5.3.8 nebo novější, protože starší verze jsou chybné. Je možné, že tato instalace nebude fungovat správně."
#: templates/admin.php:93
msgid "Locale not working"
diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po
index c71fd18e9de..3e8cc07f1ff 100644
--- a/l10n/cs_CZ/user_ldap.po
+++ b/l10n/cs_CZ/user_ldap.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-12-02 20:10+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: pstast \n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
@@ -31,17 +31,17 @@ msgstr "Selhalo zrušení mapování."
msgid "Failed to delete the server configuration"
msgstr "Selhalo smazání nastavení serveru"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Nastavení je v pořádku a spojení bylo navázáno."
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -92,43 +92,43 @@ msgstr "Úspěch"
msgid "Error"
msgstr "Chyba"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Konfigurace v pořádku"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Nesprávná konfigurace"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Nekompletní konfigurace"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Vyberte skupiny"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Vyberte objektové třídy"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Vyberte atributy"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Test spojení byl úspěšný"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Test spojení selhal"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Opravdu si přejete smazat současné nastavení serveru?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Potvrdit smazání"
@@ -148,11 +148,11 @@ msgstr[0] "nalezen %s uživatel"
msgstr[1] "nalezeni %s uživatelé"
msgstr[2] "nalezeno %s uživatelů"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Neplatný hostitel"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "Nelze nalézt požadovanou vlastnost"
diff --git a/l10n/cy_GB/core.po b/l10n/cy_GB/core.po
index 52a30772048..823b769760e 100644
--- a/l10n/cy_GB/core.po
+++ b/l10n/cy_GB/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
"MIME-Version: 1.0\n"
@@ -149,15 +149,15 @@ msgstr "Tachwedd"
msgid "December"
msgstr "Rhagfyr"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Gosodiadau"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "eiliad yn ôl"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
@@ -165,7 +165,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
@@ -173,15 +173,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "heddiw"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "ddoe"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
@@ -189,11 +189,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "mis diwethaf"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
@@ -201,15 +201,15 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "misoedd yn ôl"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "y llynedd"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "blwyddyn yn ôl"
@@ -288,7 +288,7 @@ msgid "Share"
msgstr "Rhannu"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Gwall"
@@ -324,7 +324,7 @@ msgstr ""
msgid "Password protect"
msgstr "Diogelu cyfrinair"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Cyfrinair"
@@ -400,7 +400,7 @@ msgstr "dileu"
msgid "share"
msgstr "rhannu"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Diogelwyd â chyfrinair"
@@ -491,8 +491,8 @@ msgstr "Methodd y cais! Gwiriwch eich enw defnyddiwr ac ebost."
msgid "You will receive a link to reset your password via Email."
msgstr "Byddwch yn derbyn dolen drwy e-bost i ailosod eich cyfrinair."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Enw defnyddiwr"
@@ -536,7 +536,7 @@ msgstr "Personol"
msgid "Users"
msgstr "Defnyddwyr"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Pecynnau"
@@ -603,101 +603,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Rhybudd Diogelwch"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Mae eich fersiwn PHP yn agored i ymosodiad NULL Byte (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Does dim cynhyrchydd rhifau hap diogel ar gael, galluogwch estyniad PHP OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Heb gynhyrchydd rhifau hap diogel efallai y gall ymosodwr ragweld tocynnau ailosod cyfrinair a meddiannu eich cyfrif."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Mwy na thebyg fod modd cyrraedd eich cyfeiriadur data a ffeilau o'r rhyngrwyd oherwydd nid yw'r ffeil .htaccess yn gweithio. "
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Crewch gyfrif gweinyddol"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Uwch"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Plygell data"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Cyflunio'r gronfa ddata"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "ddefnyddir"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Defnyddiwr cronfa ddata"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Cyfrinair cronfa ddata"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Enw cronfa ddata"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Tablespace cronfa ddata"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Gwesteiwr cronfa ddata"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Gorffen sefydlu"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s ar gael. Mwy o wybodaeth am sut i ddiweddaru."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Allgofnodi"
@@ -723,19 +730,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Wedi colli'ch cyfrinair?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "cofio"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Mewngofnodi"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Mewngofnodiadau Amgen"
diff --git a/l10n/cy_GB/files.po b/l10n/cy_GB/files.po
index 1cb861cd0ae..e32823fc6da 100644
--- a/l10n/cy_GB/files.po
+++ b/l10n/cy_GB/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Rhannu"
@@ -383,29 +392,25 @@ msgstr "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!"
msgid "Download"
msgstr "Llwytho i lawr"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Dad-rannu"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Dileu"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Maint llwytho i fyny'n rhy fawr"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Arhoswch, mae ffeiliau'n cael eu sganio."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Sganio cyfredol"
diff --git a/l10n/cy_GB/lib.po b/l10n/cy_GB/lib.po
index f75d0d19a5e..e87c4c5b4db 100644
--- a/l10n/cy_GB/lib.po
+++ b/l10n/cy_GB/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr "Gweinyddu"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "gwasanaethau gwe a reolir gennych"
@@ -70,23 +70,23 @@ msgstr "gwasanaethau gwe a reolir gennych"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Mae llwytho ZIP wedi ei ddiffodd."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Mae angen llwytho ffeiliau i lawr fesul un."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Nôl i Ffeiliau"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Mae'r ffeiliau ddewiswyd yn rhy fawr i gynhyrchu ffeil zip."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr "Testun"
msgid "Images"
msgstr "Delweddau"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s rhowch enw defnyddiwr y gronfa ddata."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s rhowch enw'r gronfa ddata."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s does dim hawl defnyddio dot yn enw'r gronfa ddata"
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Enw a/neu gyfrinair MySQL annilys"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr "Gwall DB: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr "Enw a/neu gyfrinair Oracle annilys"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\", enw: %s, cyfrinair: %s"
@@ -339,7 +339,3 @@ msgstr "y llynedd"
#: private/template/functions.php:142
msgid "years ago"
msgstr "blwyddyn yn ôl"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/cy_GB/user_ldap.po b/l10n/cy_GB/user_ldap.po
index b45c9bceba8..f32a619a70b 100644
--- a/l10n/cy_GB/user_ldap.po
+++ b/l10n/cy_GB/user_ldap.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
"MIME-Version: 1.0\n"
@@ -25,17 +25,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr ""
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -86,43 +86,43 @@ msgstr ""
msgid "Error"
msgstr "Gwall"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
@@ -144,11 +144,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/da/core.po b/l10n/da/core.po
index 94c34c42e54..8ef32c0b7b6 100644
--- a/l10n/da/core.po
+++ b/l10n/da/core.po
@@ -6,15 +6,17 @@
# Sappe, 2013
# claus_chr , 2013
# kaffeldt , 2013
+# lodahl , 2013
+# Morten Juhl-Johansen Zölde-Fejér , 2014
# Ole Holm Frandsen , 2013
# Peter Jespersen , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-08 01:55-0500\n"
+"PO-Revision-Date: 2014-01-07 08:50+0000\n"
+"Last-Translator: Morten Juhl-Johansen Zölde-Fejér \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -153,59 +155,59 @@ msgstr "November"
msgid "December"
msgstr "December"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Indstillinger"
-#: js/js.js:858
+#: js/js.js:872
msgid "seconds ago"
msgstr "sekunder siden"
-#: js/js.js:859
+#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n minut siden"
msgstr[1] "%n minutter siden"
-#: js/js.js:860
+#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "%n time siden"
msgstr[1] "%n timer siden"
-#: js/js.js:861
+#: js/js.js:875
msgid "today"
msgstr "i dag"
-#: js/js.js:862
+#: js/js.js:876
msgid "yesterday"
msgstr "i går"
-#: js/js.js:863
+#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "%n dag siden"
msgstr[1] "%n dage siden"
-#: js/js.js:864
+#: js/js.js:878
msgid "last month"
msgstr "sidste måned"
-#: js/js.js:865
+#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "%n måned siden"
msgstr[1] "%n måneder siden"
-#: js/js.js:866
+#: js/js.js:880
msgid "months ago"
msgstr "måneder siden"
-#: js/js.js:867
+#: js/js.js:881
msgid "last year"
msgstr "sidste år"
-#: js/js.js:868
+#: js/js.js:882
msgid "years ago"
msgstr "år siden"
@@ -282,7 +284,7 @@ msgid "Share"
msgstr "Del"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Fejl"
@@ -318,7 +320,7 @@ msgstr "Del link"
msgid "Password protect"
msgstr "Beskyt med adgangskode"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Kodeord"
@@ -394,7 +396,7 @@ msgstr "slet"
msgid "share"
msgstr "del"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Beskyttet med adgangskode"
@@ -448,7 +450,7 @@ msgstr "Ingen tags markeret til sletning."
#: js/update.js:8
msgid "Please reload the page."
-msgstr ""
+msgstr "Genindlæs venligst siden"
#: js/update.js:17
msgid ""
@@ -485,8 +487,8 @@ msgstr "Anmodning mislykkedes! Er du sikker på at din e-post / brugernavn va
msgid "You will receive a link to reset your password via Email."
msgstr "Du vil modtage et link til at nulstille dit kodeord via email."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Brugernavn"
@@ -530,7 +532,7 @@ msgstr "Personligt"
msgid "Users"
msgstr "Brugere"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -591,107 +593,114 @@ msgstr "Hej med dig\n\nDette blot for at lade dig vide, at %s har delt %s med di
#: templates/altmail.php:4 templates/mail.php:17
#, php-format
msgid "The share will expire on %s."
-msgstr ""
+msgstr "Delingen vil udløbe om %s."
#: templates/altmail.php:7 templates/mail.php:20
msgid "Cheers!"
msgstr "Hej!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Sikkerhedsadvarsel"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Din PHP-version er sårbar overfor et NULL Byte angreb (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Opdater venligst din PHP installation for at anvende %s sikkert."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Ingen sikker tilfældighedsgenerator til tal er tilgængelig. Aktiver venligst OpenSSL udvidelsen."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Uden en sikker tilfældighedsgenerator til tal kan en angriber måske gætte dit gendan kodeord og overtage din konto"
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Dine data mappe og filer er sandsynligvis tilgængelige fra internettet fordi .htaccess filen ikke virker."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "For information om, hvordan du konfigurerer din server korrekt se dokumentationen."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Opret en administratorkonto"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Avanceret"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Datamappe"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Konfigurer databasen"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "vil blive brugt"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Databasebruger"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Databasekodeord"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Navn på database"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Database tabelplads"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Databasehost"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Afslut opsætning"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
-msgstr "Færdigbehandling ..."
+msgstr "Færdigbehandler ..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Programmet forudsætter at JavaScript er aktiveret for at kunne afvikles korrekt. Aktiver JavaScript og genindlæs siden.."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s er tilgængelig. Få mere information om, hvordan du opdaterer."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Log ud"
@@ -717,19 +726,19 @@ msgstr "Server side godkendelse mislykkedes!"
msgid "Please contact your administrator."
msgstr "Kontakt venligst din administrator"
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Mistet dit kodeord?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "husk"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Log ind"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Alternative logins"
@@ -742,11 +751,11 @@ msgstr "Hej med dig,
Dette blot for at lade dig vide, at %s har delt \"%s
#: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode."
-msgstr ""
+msgstr "Denne ownCloud instans er lige nu i enkeltbruger tilstand."
#: templates/singleuser.user.php:4
msgid "This means only administrators can use the instance."
-msgstr ""
+msgstr "Det betyder at det kun er administrator, som kan benytte ownCloud."
#: templates/singleuser.user.php:5 templates/update.user.php:5
msgid ""
diff --git a/l10n/da/files.po b/l10n/da/files.po
index 76f7d67cf88..53216837a8c 100644
--- a/l10n/da/files.po
+++ b/l10n/da/files.po
@@ -5,14 +5,15 @@
# Translators:
# Sappe, 2013
# claus_chr , 2013
+# lodahl , 2013
# Ole Holm Frandsen , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 18:50+0000\n"
+"Last-Translator: lodahl \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -36,39 +37,44 @@ msgstr "Filnavnet kan ikke stå tomt."
#: ajax/newfile.php:62
msgid "File name must not contain \"/\". Please choose a different name."
-msgstr ""
+msgstr "Filnavnet må ikke indeholde \"/\". Vælg venligst et andet navn."
#: ajax/newfile.php:72 ajax/newfolder.php:37 lib/app.php:67
#, php-format
msgid ""
"The name %s is already used in the folder %s. Please choose a different "
"name."
-msgstr ""
+msgstr "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn."
#: ajax/newfile.php:81
msgid "Not a valid source"
-msgstr ""
+msgstr "Ikke en gyldig kilde"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Server har ikke tilladelse til at åbne URL'er. Kontroller venligst serverens indstillinger"
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
-msgstr ""
+msgstr "Fejl ved hentning af %s til %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
-msgstr ""
+msgstr "Fejl ved oprettelse af fil"
#: ajax/newfolder.php:21
msgid "Folder name cannot be empty."
-msgstr ""
+msgstr "Mappenavnet kan ikke være tomt."
#: ajax/newfolder.php:27
msgid "Folder name must not contain \"/\". Please choose a different name."
-msgstr ""
+msgstr "Mappenavnet må ikke indeholde \"/\". Vælg venligst et andet navn."
#: ajax/newfolder.php:56
msgid "Error when creating the folder"
-msgstr ""
+msgstr "Fejl ved oprettelse af mappen"
#: ajax/upload.php:18 ajax/upload.php:50
msgid "Unable to set upload directory."
@@ -156,11 +162,11 @@ msgstr "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuler
#: js/file-upload.js:523
msgid "URL cannot be empty"
-msgstr ""
+msgstr "URL kan ikke være tom"
#: js/file-upload.js:527 js/filelist.js:377
msgid "In the home folder 'Shared' is a reserved filename"
-msgstr ""
+msgstr "Navnet 'Shared' er reserveret i hjemmemappen."
#: js/file-upload.js:529 js/filelist.js:379
msgid "{new_name} already exists"
@@ -168,11 +174,15 @@ msgstr "{new_name} eksisterer allerede"
#: js/file-upload.js:595
msgid "Could not create file"
-msgstr ""
+msgstr "Kunne ikke oprette fil"
#: js/file-upload.js:611
msgid "Could not create folder"
-msgstr ""
+msgstr "Kunne ikke oprette mappe"
+
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Fejl ved URL"
#: js/fileactions.js:125
msgid "Share"
@@ -192,7 +202,7 @@ msgstr "Afventer"
#: js/filelist.js:405
msgid "Could not rename file"
-msgstr ""
+msgstr "Kunne ikke omdøbe filen"
#: js/filelist.js:539
msgid "replaced {new_name} with {old_name}"
@@ -204,7 +214,7 @@ msgstr "fortryd"
#: js/filelist.js:591
msgid "Error deleting file."
-msgstr ""
+msgstr "Fejl ved sletnign af fil."
#: js/filelist.js:609 js/filelist.js:683 js/files.js:631
msgid "%n folder"
@@ -250,14 +260,14 @@ msgstr "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)"
msgid ""
"Encryption App is enabled but your keys are not initialized, please log-out "
"and log-in again"
-msgstr ""
+msgstr "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen."
#: js/files.js:114
msgid ""
"Invalid private key for Encryption App. Please update your private key "
"password in your personal settings to recover access to your encrypted "
"files."
-msgstr ""
+msgstr "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer."
#: js/files.js:118
msgid ""
@@ -293,7 +303,7 @@ msgstr "Ændret"
#: lib/app.php:60
msgid "Invalid folder name. Usage of 'Shared' is reserved."
-msgstr ""
+msgstr "Ugyldig mappenavn. 'Shared' er reserveret."
#: lib/app.php:101
#, php-format
@@ -342,7 +352,7 @@ msgstr "Ny"
#: templates/index.php:8
msgid "New text file"
-msgstr ""
+msgstr "Ny tekstfil"
#: templates/index.php:8
msgid "Text file"
@@ -370,7 +380,7 @@ msgstr "Fortryd upload"
#: templates/index.php:40
msgid "You don’t have permission to upload or create files here"
-msgstr ""
+msgstr "Du har ikke tilladelse til at uploade eller oprette filer her"
#: templates/index.php:45
msgid "Nothing in here. Upload something!"
@@ -380,29 +390,25 @@ msgstr "Her er tomt. Upload noget!"
msgid "Download"
msgstr "Download"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Fjern deling"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Slet"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Upload er for stor"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Filerne bliver indlæst, vent venligst."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Indlæser"
diff --git a/l10n/da/files_encryption.po b/l10n/da/files_encryption.po
index a285b06ce82..90861c46ca3 100644
--- a/l10n/da/files_encryption.po
+++ b/l10n/da/files_encryption.po
@@ -5,13 +5,14 @@
# Translators:
# Sappe, 2013
# claus_chr , 2013
+# lodahl , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:09+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 18:40+0000\n"
+"Last-Translator: lodahl \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -60,7 +61,7 @@ msgid ""
"Encryption app not initialized! Maybe the encryption app was re-enabled "
"during your session. Please try to log out and log back in to initialize the"
" encryption app."
-msgstr ""
+msgstr "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. "
#: files/error.php:16
#, php-format
@@ -68,38 +69,38 @@ msgid ""
"Your private key is not valid! Likely your password was changed outside of "
"%s (e.g. your corporate directory). You can update your private key password"
" in your personal settings to recover access to your encrypted files."
-msgstr ""
+msgstr "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer."
#: files/error.php:19
msgid ""
"Can not decrypt this file, probably this is a shared file. Please ask the "
"file owner to reshare the file with you."
-msgstr ""
+msgstr "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny."
#: files/error.php:22 files/error.php:27
msgid ""
"Unknown error please check your system settings or contact your "
"administrator"
-msgstr ""
+msgstr "Ukendt fejl. Kontroller venligst dit system eller kontakt din administrator"
-#: hooks/hooks.php:59
+#: hooks/hooks.php:62
msgid "Missing requirements."
msgstr "Manglende betingelser."
-#: hooks/hooks.php:60
+#: hooks/hooks.php:63
msgid ""
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
"together with the PHP extension is enabled and configured properly. For now,"
" the encryption app has been disabled."
msgstr "Sørg for at PHP 5.3.3 eller nyere er installeret og at OpenSSL sammen med PHP-udvidelsen er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret."
-#: hooks/hooks.php:273
+#: hooks/hooks.php:281
msgid "Following users are not set up for encryption:"
msgstr "Følgende brugere er ikke sat op til kryptering:"
#: js/detect-migration.js:21
msgid "Initial encryption started... This can take some time. Please wait."
-msgstr ""
+msgstr "Førstegangskryptering er påbegyndt... Dette kan tage nogen tid. Vent venligst."
#: js/settings-admin.js:13
msgid "Saving..."
@@ -107,7 +108,7 @@ msgstr "Gemmer..."
#: templates/invalid_private_key.php:8
msgid "Go directly to your "
-msgstr ""
+msgstr "Gå direkte til din "
#: templates/invalid_private_key.php:8
msgid "personal settings"
@@ -128,7 +129,7 @@ msgstr "Gendannelsesnøgle kodeord"
#: templates/settings-admin.php:14
msgid "Repeat Recovery key password"
-msgstr ""
+msgstr "Gentag gendannelse af nøglekoden"
#: templates/settings-admin.php:21 templates/settings-personal.php:51
msgid "Enabled"
@@ -152,7 +153,7 @@ msgstr "Ny Gendannelsesnøgle kodeord"
#: templates/settings-admin.php:53
msgid "Repeat New Recovery key password"
-msgstr ""
+msgstr "Gentag dannelse af ny gendannaleses nøglekode"
#: templates/settings-admin.php:58
msgid "Change Password"
diff --git a/l10n/da/files_sharing.po b/l10n/da/files_sharing.po
index 3509eda2d52..54b706c403e 100644
--- a/l10n/da/files_sharing.po
+++ b/l10n/da/files_sharing.po
@@ -4,13 +4,14 @@
#
# Translators:
# Sappe, 2013
+# lodahl , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-15 22:54-0500\n"
-"PO-Revision-Date: 2013-11-13 16:11+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 16:20+0000\n"
+"Last-Translator: lodahl \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +21,7 @@ msgstr ""
#: templates/authenticate.php:4
msgid "This share is password-protected"
-msgstr ""
+msgstr "Delingen er beskyttet af kodeord"
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
@@ -82,4 +83,4 @@ msgstr "Forhåndsvisning ikke tilgængelig for"
#: templates/public.php:99
msgid "Direct link"
-msgstr ""
+msgstr "Direkte link"
diff --git a/l10n/da/lib.po b/l10n/da/lib.po
index 1ed73ea3ca7..94320b42d86 100644
--- a/l10n/da/lib.po
+++ b/l10n/da/lib.po
@@ -5,14 +5,15 @@
# Translators:
# Sappe, 2013
# claus_chr , 2013
+# lodahl , 2013
# Ole Holm Frandsen , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 16:01+0000\n"
+"Last-Translator: lodahl \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -56,15 +57,15 @@ msgstr "Admin"
msgid "Failed to upgrade \"%s\"."
msgstr "Upgradering af \"%s\" fejlede"
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Ukendt filtype"
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Ugyldigt billede"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "Webtjenester under din kontrol"
@@ -73,27 +74,27 @@ msgstr "Webtjenester under din kontrol"
msgid "cannot open \"%s\""
msgstr "Kan ikke åbne \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "ZIP-download er slået fra."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Filer skal downloades en for en."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Tilbage til Filer"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "De markerede filer er for store til at generere en ZIP-fil."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
-msgstr ""
+msgstr "Hent venligst filerne hver for sig i mindre dele eller spørg din administrator."
#: private/installer.php:63
msgid "No source specified when installing app"
@@ -175,17 +176,17 @@ msgstr "SMS"
msgid "Images"
msgstr "Billeder"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s indtast database brugernavnet."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s indtast database navnet."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s du må ikke bruge punktummer i databasenavnet."
@@ -206,11 +207,11 @@ msgid "MySQL username and/or password not valid"
msgstr "MySQL brugernavn og/eller kodeord er ikke gyldigt."
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -218,10 +219,10 @@ msgid "DB Error: \"%s\""
msgstr "Databasefejl: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -254,7 +255,7 @@ msgstr "Oracle forbindelsen kunne ikke etableres"
msgid "Oracle username and/or password not valid"
msgstr "Oracle brugernavn og/eller kodeord er ikke gyldigt."
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Fejlende kommando var: \"%s\", navn: %s, password: %s"
@@ -334,7 +335,3 @@ msgstr "sidste år"
#: private/template/functions.php:142
msgid "years ago"
msgstr "år siden"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Forårsaget af:"
diff --git a/l10n/da/settings.po b/l10n/da/settings.po
index c51980025cc..9b91fc8745a 100644
--- a/l10n/da/settings.po
+++ b/l10n/da/settings.po
@@ -4,15 +4,16 @@
#
# Translators:
# Sappe, 2013
+# lodahl , 2013
# Morten Juhl-Johansen Zölde-Fejér , 2013
# Ole Holm Frandsen , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-04 18:12-0500\n"
-"PO-Revision-Date: 2013-12-04 23:13+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 16:40+0000\n"
+"Last-Translator: lodahl \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,11 +32,11 @@ msgstr "Adgangsfejl"
#: ajax/changedisplayname.php:31
msgid "Your full name has been changed."
-msgstr ""
+msgstr "Dit fulde navn er blevet ændret."
#: ajax/changedisplayname.php:34
msgid "Unable to change full name"
-msgstr ""
+msgstr "Ikke i stand til at ændre dit fulde navn"
#: ajax/creategroup.php:10
msgid "Group already exists"
@@ -201,21 +202,21 @@ msgstr "Slet"
msgid "add group"
msgstr "Tilføj gruppe"
-#: js/users.js:451
+#: js/users.js:454
msgid "A valid username must be provided"
msgstr "Et gyldigt brugernavn skal angives"
-#: js/users.js:452 js/users.js:458 js/users.js:473
+#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr "Fejl ved oprettelse af bruger"
-#: js/users.js:457
+#: js/users.js:460
msgid "A valid password must be provided"
msgstr "En gyldig adgangskode skal angives"
-#: js/users.js:481
+#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
-msgstr ""
+msgstr "Advarsel: Hjemmemappen for bruger \"{user}\" findes allerede"
#: personal.php:45 personal.php:46
msgid "__language_name__"
@@ -223,23 +224,23 @@ msgstr "Dansk"
#: templates/admin.php:8
msgid "Everything (fatal issues, errors, warnings, info, debug)"
-msgstr ""
+msgstr "Alt (alvorlige fejl, fejl, advarsler, info, debug)"
#: templates/admin.php:9
msgid "Info, warnings, errors and fatal issues"
-msgstr ""
+msgstr "Info, advarsler, fejl og alvorlige fejl"
#: templates/admin.php:10
msgid "Warnings, errors and fatal issues"
-msgstr ""
+msgstr "Advarsler, fejl og alvorlige fejl"
#: templates/admin.php:11
msgid "Errors and fatal issues"
-msgstr ""
+msgstr "Fejl og alvorlige fejl"
#: templates/admin.php:12
msgid "Fatal issues only"
-msgstr ""
+msgstr "Kun alvorlige fejl"
#: templates/admin.php:22 templates/admin.php:36
msgid "Security Warning"
@@ -250,7 +251,7 @@ msgstr "Sikkerhedsadvarsel"
msgid ""
"You are accessing %s via HTTP. We strongly suggest you configure your server"
" to require using HTTPS instead."
-msgstr ""
+msgstr "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS."
#: templates/admin.php:39
msgid ""
@@ -288,14 +289,14 @@ msgstr "PHP modulet 'fileinfo' mangler. Vi anbefaler stærkt at aktivere dette m
#: templates/admin.php:79
msgid "Your PHP version is outdated"
-msgstr ""
+msgstr "Din PHP-version er forældet"
#: templates/admin.php:82
msgid ""
"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
"newer because older versions are known to be broken. It is possible that "
"this installation is not working correctly."
-msgstr ""
+msgstr "Din PHP-version er forældet. Vi anbefaler at du opgraderer til 5.3.8 eller nyere, fordi ældre versioner har kendte fejl. Det er derfor muligt at installationen ikke fungerer korrekt."
#: templates/admin.php:93
msgid "Locale not working"
@@ -303,20 +304,20 @@ msgstr "Landestandard fungerer ikke"
#: templates/admin.php:98
msgid "System locale can not be set to a one which supports UTF-8."
-msgstr ""
+msgstr "Systemets locale kan ikke sættes til et der bruger UTF-8."
#: templates/admin.php:102
msgid ""
"This means that there might be problems with certain characters in file "
"names."
-msgstr ""
+msgstr "Det betyder at der kan være problemer med visse tegn i filnavne."
#: templates/admin.php:106
#, php-format
msgid ""
"We strongly suggest to install the required packages on your system to "
"support one of the following locales: %s."
-msgstr ""
+msgstr "Vi anbefaler at du installerer den krævede pakke på dit system, for at understøtte følgende locales: %s."
#: templates/admin.php:118
msgid "Internet connection not working"
@@ -343,11 +344,11 @@ msgstr "Udføre en opgave med hver side indlæst"
msgid ""
"cron.php is registered at a webcron service to call cron.php every 15 "
"minutes over http."
-msgstr ""
+msgstr "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http."
#: templates/admin.php:158
msgid "Use systems cron service to call the cron.php file every 15 minutes."
-msgstr ""
+msgstr "Brug systemets cron service til at kalde cron.php hvert 15. minut."
#: templates/admin.php:163
msgid "Sharing"
@@ -535,7 +536,7 @@ msgstr "Skift kodeord"
#: templates/personal.php:58 templates/users.php:88
msgid "Full Name"
-msgstr ""
+msgstr "Fulde navn"
#: templates/personal.php:73
msgid "Email"
@@ -571,7 +572,7 @@ msgstr "Enten png eller jpg. Ideelt firkantet men du har mulighed for at beskær
#: templates/personal.php:97
msgid "Your avatar is provided by your original account."
-msgstr ""
+msgstr "Din avatar kommer fra din oprindelige konto."
#: templates/personal.php:101
msgid "Abort"
@@ -598,7 +599,7 @@ msgstr "WebDAV"
msgid ""
"Use this address to access your Files via "
"WebDAV"
-msgstr ""
+msgstr "Brug denne adresse for at tilgå dine filer via WebDAV"
#: templates/personal.php:150
msgid "Encryption"
@@ -606,7 +607,7 @@ msgstr "Kryptering"
#: templates/personal.php:152
msgid "The encryption app is no longer enabled, please decrypt all your files"
-msgstr ""
+msgstr "Krypteringsprogrammet er ikke længere aktiveret. Dekrypter venligst alle dine filer"
#: templates/personal.php:158
msgid "Log-in password"
@@ -640,7 +641,7 @@ msgstr "Standard opbevaring"
#: templates/users.php:44 templates/users.php:139
msgid "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")"
-msgstr ""
+msgstr "Indtast venligst lagerkvote (f.eks. \"512 MB\" eller \"12 GB\")"
#: templates/users.php:48 templates/users.php:148
msgid "Unlimited"
@@ -660,7 +661,7 @@ msgstr "Opbevaring"
#: templates/users.php:108
msgid "change full name"
-msgstr ""
+msgstr "ændre fulde navn"
#: templates/users.php:112
msgid "set new password"
diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po
index 4f19cdfc752..1012e98413f 100644
--- a/l10n/da/user_ldap.po
+++ b/l10n/da/user_ldap.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
@@ -26,17 +26,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr "Kunne ikke slette server konfigurationen"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Konfigurationen er korrekt og forbindelsen kunne etableres!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -87,43 +87,43 @@ msgstr "Succes"
msgid "Error"
msgstr "Fejl"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Vælg grupper"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Forbindelsestest lykkedes"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Forbindelsestest mislykkedes"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Ønsker du virkelig at slette den nuværende Server Konfiguration?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Bekræft Sletning"
@@ -141,11 +141,11 @@ msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/de/core.po b/l10n/de/core.po
index 6dee7762de2..c3ee3e52b21 100644
--- a/l10n/de/core.po
+++ b/l10n/de/core.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 12:40+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:22+0000\n"
"Last-Translator: Mario Siegmann \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -29,7 +29,7 @@ msgstr ""
#: ajax/share.php:119 ajax/share.php:198
#, php-format
msgid "%s shared »%s« with you"
-msgstr "%s teilte »%s« mit Ihnen"
+msgstr "%s teilte »%s« mit Dir"
#: ajax/share.php:169
#, php-format
@@ -157,59 +157,59 @@ msgstr "November"
msgid "December"
msgstr "Dezember"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Einstellungen"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "Gerade eben"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Vor %n Minute"
msgstr[1] "Vor %n Minuten"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Vor %n Stunde"
msgstr[1] "Vor %n Stunden"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "Heute"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "Gestern"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Vor %n Tag"
msgstr[1] "Vor %n Tagen"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "Letzten Monat"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Vor %n Monat"
msgstr[1] "Vor %n Monaten"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "Vor Monaten"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "Letztes Jahr"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "Vor Jahren"
@@ -249,13 +249,13 @@ msgstr "Ein Dateikonflikt"
#: js/oc-dialogs.js:367
msgid "Which files do you want to keep?"
-msgstr "Welche Dateien möchtest du behalten?"
+msgstr "Welche Dateien möchtest Du behalten?"
#: js/oc-dialogs.js:368
msgid ""
"If you select both versions, the copied file will have a number added to its"
" name."
-msgstr "Wenn du beide Versionen auswählst, erhält die kopierte Datei eine Zahl am Ende des Dateinamens."
+msgstr "Wenn Du beide Versionen auswählst, erhält die kopierte Datei eine Zahl am Ende des Dateinamens."
#: js/oc-dialogs.js:376
msgid "Cancel"
@@ -286,7 +286,7 @@ msgid "Share"
msgstr "Teilen"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Fehler"
@@ -322,7 +322,7 @@ msgstr "Link Teilen"
msgid "Password protect"
msgstr "Passwortschutz"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Passwort"
@@ -398,7 +398,7 @@ msgstr "löschen"
msgid "share"
msgstr "teilen"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Durch ein Passwort geschützt"
@@ -428,7 +428,7 @@ msgstr "Der Objekttyp ist nicht angegeben."
#: js/tags.js:13
msgid "Enter new"
-msgstr "Unbekannter Fehler, bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator"
+msgstr "Neuen eingeben"
#: js/tags.js:27
msgid "Delete"
@@ -489,8 +489,8 @@ msgstr "Anfrage fehlgeschlagen! Hast Du darauf geachtet, dass Deine E-Mail/De
msgid "You will receive a link to reset your password via Email."
msgstr "Du erhältst einen Link per E-Mail, um Dein Passwort zurückzusetzen."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Benutzername"
@@ -500,11 +500,11 @@ msgid ""
"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?"
-msgstr "Ihre Dateien sind verschlüsselt. Sollten Sie keinen Wiederherstellungschlüssel aktiviert haben, gibt es keine Möglichkeit an Ihre Daten zu kommen, wenn das Passwort zurückgesetzt wird. Falls Sie sich nicht sicher sind, was Sie tun sollen, kontaktieren Sie bitte Ihren Administrator, bevor Sie fortfahren. Wollen Sie wirklich fortfahren?"
+msgstr "Deine Dateien sind verschlüsselt. Solltest Du keinen Wiederherstellungschlüssel aktiviert haben, gibt es keine Möglichkeit an Deine Daten zu kommen, wenn das Passwort zurückgesetzt wird. Falls Du Dir nicht sicher bist, was Du tun sollst, kontaktiere bitte Deinen Administrator, bevor Du fortfährst. Willst Du wirklich fortfahren?"
#: lostpassword/templates/lostpassword.php:27
msgid "Yes, I really want to reset my password now"
-msgstr "Ja, ich will mein Passwort jetzt wirklich zurücksetzen"
+msgstr "Ja, ich will mein Passwort jetzt zurücksetzen"
#: lostpassword/templates/lostpassword.php:30
msgid "Reset"
@@ -534,7 +534,7 @@ msgstr "Persönlich"
msgid "Users"
msgstr "Benutzer"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -568,7 +568,7 @@ msgstr "Fehler beim Entfernen der Schlagwörter"
#: tags/controller.php:97
msgid "Error favoriting"
-msgstr "Fehler beim Hinzufügen zu den Favoriten"
+msgstr "Fehler beim Favorisieren"
#: tags/controller.php:108
msgid "Error unfavoriting"
@@ -601,101 +601,108 @@ msgstr "Die Freigabe wird am %s ablaufen."
msgid "Cheers!"
msgstr "Hallo!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Sicherheitswarnung"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Deine PHP Version ist durch die NULL Byte Attacke (CVE-2006-7243) angreifbar"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
-msgstr "Bitte aktualisiere deine PHP-Installation um %s sicher nutzen zu können."
+msgstr "Bitte aktualisiere Deine PHP-Installation um %s sicher nutzen zu können."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktiviere die PHP-Erweiterung für OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Konten zu übernehmen."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Dein Datenverzeichnis und Deine Dateien sind wahrscheinlich vom Internet aus erreichbar, weil die .htaccess-Datei nicht funktioniert."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
-msgstr "Für Informationen, wie du deinen Server richtig konfigurierst lese bitte die Dokumentation."
+msgstr "Für Informationen, wie Du Deinen Server richtig konfigurierst, lies bitte die Dokumentation."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Administrator-Konto anlegen"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Fortgeschritten"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Datenverzeichnis"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Datenbank einrichten"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "wird verwendet"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Datenbank-Benutzer"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Datenbank-Passwort"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Datenbank-Name"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Datenbank-Tablespace"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Datenbank-Host"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Installation abschließen"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Abschließen ..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte aktiviere JavaScript und lade diese Schnittstelle neu."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
-msgstr "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein."
+msgstr "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Abmelden"
@@ -721,19 +728,19 @@ msgstr "Serverseitige Authentifizierung fehlgeschlagen!"
msgid "Please contact your administrator."
msgstr "Bitte kontaktiere Deinen Administrator."
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Passwort vergessen?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "merken"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Einloggen"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Alternative Logins"
@@ -742,7 +749,7 @@ msgstr "Alternative Logins"
msgid ""
"Hey there,
just letting you know that %s shared »%s« with you. View it!
"
-msgstr "Hallo,
wollte dich nur kurz informieren, dass %s gerade %s mit dir geteilt hat. Schau es dir an.
"
+msgstr "Hallo,
wollte Dich nur kurz informieren, dass %s gerade %s mit Dir geteilt hat. Schau es Dir an.
"
#: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode."
diff --git a/l10n/de/files.po b/l10n/de/files.po
index dfc07dfc2cc..628bdcb0c94 100644
--- a/l10n/de/files.po
+++ b/l10n/de/files.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: Mario Siegmann \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -52,12 +52,17 @@ msgstr "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen ander
msgid "Not a valid source"
msgstr "Keine gültige Quelle"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen"
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Fehler beim Herunterladen von %s nach %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Fehler beim Erstellen der Datei"
@@ -177,6 +182,10 @@ msgstr "Die Datei konnte nicht erstellt werden"
msgid "Could not create folder"
msgstr "Der Ordner konnte nicht erstellt werden"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Fehler beim Abrufen der URL"
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Teilen"
@@ -383,29 +392,25 @@ msgstr "Alles leer. Lade etwas hoch!"
msgid "Download"
msgstr "Herunterladen"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Freigabe aufheben"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Löschen"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Der Upload ist zu groß"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Dateien werden gescannt, bitte warten."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Scanne"
diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po
index 1f8a62d6dfd..46d897d070f 100644
--- a/l10n/de/files_encryption.po
+++ b/l10n/de/files_encryption.po
@@ -9,14 +9,15 @@
# ninov , 2013
# Pwnicorn , 2013
# thillux, 2013
+# Mirodin , 2013
# kabum , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-11-29 19:30+0000\n"
-"Last-Translator: Mario Siegmann \n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-06 10:50+0000\n"
+"Last-Translator: Mirodin \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,7 +32,7 @@ msgstr "Wiederherstellungsschlüssel wurde erfolgreich aktiviert"
#: ajax/adminrecovery.php:34
msgid ""
"Could not enable recovery key. Please check your recovery key password!"
-msgstr "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!"
+msgstr "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!"
#: ajax/adminrecovery.php:48
msgid "Recovery key successfully disabled"
@@ -40,7 +41,7 @@ msgstr "Wiederherstellungsschlüssel deaktiviert."
#: ajax/adminrecovery.php:53
msgid ""
"Could not disable recovery key. Please check your recovery key password!"
-msgstr "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!"
+msgstr "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!"
#: ajax/changeRecoveryPassword.php:49
msgid "Password successfully changed."
@@ -73,13 +74,13 @@ msgid ""
"Your private key is not valid! Likely your password was changed outside of "
"%s (e.g. your corporate directory). You can update your private key password"
" in your personal settings to recover access to your encrypted files."
-msgstr "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von%s Dein Passwort geändert (z.B. in deinem gemeinsamen Verzeichnis). Du kannst das Passwort deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an deine Dateien zu gelangen."
+msgstr "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen."
#: files/error.php:19
msgid ""
"Can not decrypt this file, probably this is a shared file. Please ask the "
"file owner to reshare the file with you."
-msgstr "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Datei-Besitzer, dass er die Datei nochmals mit Dir teilt."
+msgstr "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt."
#: files/error.php:22 files/error.php:27
msgid ""
@@ -98,7 +99,7 @@ msgid ""
" the encryption app has been disabled."
msgstr "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert."
-#: hooks/hooks.php:273
+#: hooks/hooks.php:278
msgid "Following users are not set up for encryption:"
msgstr "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:"
@@ -165,21 +166,21 @@ msgstr "Passwort ändern"
#: templates/settings-personal.php:9
msgid "Your private key password no longer match your log-in password:"
-msgstr "Ihr Passwort für ihren privaten Schlüssel stimmt nicht mehr mit ihrem Loginpasswort überein."
+msgstr "Das Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein."
#: templates/settings-personal.php:12
msgid "Set your old private key password to your current log-in password."
-msgstr "Setzen Sie ihr altes Passwort für ihren privaten Schlüssel auf ihr aktuelles Login-Passwort"
+msgstr "Setze Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Login-Passwort"
#: templates/settings-personal.php:14
msgid ""
" If you don't remember your old password you can ask your administrator to "
"recover your files."
-msgstr "Wenn Sie Ihr altes Passwort vergessen haben, können Sie den Administrator bitten, Ihre Daten wiederherzustellen."
+msgstr "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen."
#: templates/settings-personal.php:22
msgid "Old log-in password"
-msgstr "Altes login Passwort"
+msgstr "Altes Login Passwort"
#: templates/settings-personal.php:28
msgid "Current log-in password"
@@ -191,13 +192,13 @@ msgstr "Passwort für den privaten Schlüssel aktualisieren"
#: templates/settings-personal.php:42
msgid "Enable password recovery:"
-msgstr "Passwortwiederherstellung aktivvieren:"
+msgstr "Passwortwiederherstellung aktivieren:"
#: templates/settings-personal.php:44
msgid ""
"Enabling this option will allow you to reobtain access to your encrypted "
"files in case of password loss"
-msgstr "Wenn Sie diese Option aktivieren, können Sie Ihre verschlüsselten Dateien wiederherstellen, falls Sie Ihr Passwort vergessen"
+msgstr "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst"
#: templates/settings-personal.php:60
msgid "File recovery settings updated"
diff --git a/l10n/de/files_sharing.po b/l10n/de/files_sharing.po
index adcc326738f..dd4cb3df2b1 100644
--- a/l10n/de/files_sharing.po
+++ b/l10n/de/files_sharing.po
@@ -6,13 +6,14 @@
# Mario Siegmann , 2013
# Pwnicorn , 2013
# Susi <>, 2013
+# Mirodin , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-15 22:54-0500\n"
-"PO-Revision-Date: 2013-11-13 16:11+0000\n"
-"Last-Translator: Susi <>\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-06 10:50+0000\n"
+"Last-Translator: Mirodin \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,7 +27,7 @@ msgstr "Diese Freigabe ist durch ein Passwort geschützt"
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
-msgstr "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut."
+msgstr "Bitte überprüfe Dein Passwort und versuche es erneut."
#: templates/authenticate.php:10
msgid "Password"
@@ -42,7 +43,7 @@ msgstr "Gründe könnten sein:"
#: templates/part.404.php:6
msgid "the item was removed"
-msgstr "Die Elemente wurden entfernt"
+msgstr "Das Element wurde entfernt"
#: templates/part.404.php:7
msgid "the link expired"
@@ -54,7 +55,7 @@ msgstr "Teilen ist deaktiviert"
#: templates/part.404.php:10
msgid "For more info, please ask the person who sent this link."
-msgstr "Für mehr Informationen, frage bitte die Person, die dir diesen Link geschickt hat."
+msgstr "Für mehr Informationen, frage bitte die Person, die Dir diesen Link geschickt hat."
#: templates/public.php:18
#, php-format
@@ -72,7 +73,7 @@ msgstr "Download"
#: templates/public.php:46 templates/public.php:49
msgid "Upload"
-msgstr "Hochladen"
+msgstr "Upload"
#: templates/public.php:59
msgid "Cancel upload"
@@ -84,4 +85,4 @@ msgstr "Es ist keine Vorschau verfügbar für"
#: templates/public.php:99
msgid "Direct link"
-msgstr "Direkte Verlinkung"
+msgstr "Direkter Link"
diff --git a/l10n/de/files_trashbin.po b/l10n/de/files_trashbin.po
index 4d9622f8349..4fc104f2c03 100644
--- a/l10n/de/files_trashbin.po
+++ b/l10n/de/files_trashbin.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-16 07:44+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-06 10:48+0000\n"
+"Last-Translator: Mirodin \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,41 +18,41 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ajax/delete.php:42
+#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr "Konnte %s nicht dauerhaft löschen"
-#: ajax/undelete.php:42
+#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr "Konnte %s nicht wiederherstellen"
-#: js/trash.js:18 js/trash.js:44 js/trash.js:121 js/trash.js:149
+#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
msgstr "Fehler"
-#: lib/trashbin.php:815 lib/trashbin.php:817
+#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
msgstr "Wiederhergestellt"
-#: templates/index.php:8
+#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr "Nichts zu löschen, der Papierkorb ist leer!"
-#: templates/index.php:22
+#: templates/index.php:20
msgid "Name"
msgstr "Name"
-#: templates/index.php:25 templates/index.php:27
+#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr "Wiederherstellen"
-#: templates/index.php:33
+#: templates/index.php:31
msgid "Deleted"
msgstr "gelöscht"
-#: templates/index.php:36 templates/index.php:37
+#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr "Löschen"
diff --git a/l10n/de/files_versions.po b/l10n/de/files_versions.po
index a59108a0412..a845ff87de8 100644
--- a/l10n/de/files_versions.po
+++ b/l10n/de/files_versions.po
@@ -4,14 +4,15 @@
#
# Translators:
# Mario Siegmann , 2013
+# Mirodin , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-07-29 01:56-0400\n"
-"PO-Revision-Date: 2013-07-28 16:00+0000\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-06 12:30+0000\n"
"Last-Translator: Mario Siegmann \n"
-"Language-Team: German \n"
+"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,22 +24,22 @@ msgstr ""
msgid "Could not revert: %s"
msgstr "Konnte %s nicht zurücksetzen"
-#: js/versions.js:7
+#: js/versions.js:14
msgid "Versions"
msgstr "Versionen"
-#: js/versions.js:53
+#: js/versions.js:60
msgid "Failed to revert {file} to revision {timestamp}."
-msgstr "Konnte {file} der Revision {timestamp} nicht rückgänging machen."
+msgstr "Konnte {file} der Revision {timestamp} nicht rückgängig machen."
-#: js/versions.js:79
+#: js/versions.js:86
msgid "More versions..."
-msgstr "Mehrere Versionen..."
+msgstr "Weitere Versionen..."
-#: js/versions.js:116
+#: js/versions.js:123
msgid "No other versions available"
msgstr "Keine anderen Versionen verfügbar"
-#: js/versions.js:149
+#: js/versions.js:154
msgid "Restore"
msgstr "Wiederherstellen"
diff --git a/l10n/de/lib.po b/l10n/de/lib.po
index 04350ed33ee..3a4258bd224 100644
--- a/l10n/de/lib.po
+++ b/l10n/de/lib.po
@@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-24 00:13-0500\n"
-"PO-Revision-Date: 2013-11-22 08:30+0000\n"
-"Last-Translator: Mario Siegmann \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -57,15 +57,15 @@ msgstr "Administration"
msgid "Failed to upgrade \"%s\"."
msgstr "Konnte \"%s\" nicht aktualisieren."
-#: private/avatar.php:62
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Unbekannter Dateityp"
-#: private/avatar.php:67
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Ungültiges Bild"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "Web-Services unter Deiner Kontrolle"
@@ -74,23 +74,23 @@ msgstr "Web-Services unter Deiner Kontrolle"
msgid "cannot open \"%s\""
msgstr "Öffnen von \"%s\" fehlgeschlagen"
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Der ZIP-Download ist deaktiviert."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Die Dateien müssen einzeln heruntergeladen werden."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Zurück zu \"Dateien\""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -102,7 +102,7 @@ msgstr "Für die Installation der Applikation wurde keine Quelle angegeben"
#: private/installer.php:70
msgid "No href specified when installing app from http"
-msgstr "Der Link (href) wurde nicht angegeben um die Applikation per http zu installieren"
+msgstr "Für die Installation der Applikation über http wurde keine Quelle (href) angegeben"
#: private/installer.php:75
msgid "No path specified when installing app from local file"
@@ -123,7 +123,7 @@ msgstr "Die Applikation enthält keine info,xml Datei"
#: private/installer.php:131
msgid "App can't be installed because of not allowed code in the App"
-msgstr "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden"
+msgstr "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden"
#: private/installer.php:140
msgid ""
@@ -135,7 +135,7 @@ msgstr "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser
msgid ""
"App can't be installed because it contains the true tag "
"which is not allowed for non shipped apps"
-msgstr "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist ist"
+msgstr "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist"
#: private/installer.php:159
msgid ""
@@ -150,7 +150,7 @@ msgstr "Das Applikationsverzeichnis existiert bereits"
#: private/installer.php:182
#, php-format
msgid "Can't create app folder. Please fix permissions. %s"
-msgstr "Es kann kein Applikationsordner erstellt werden. Bitte passen sie die Berechtigungen an. %s"
+msgstr "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s"
#: private/json.php:28
msgid "Application is not enabled"
@@ -176,17 +176,17 @@ msgstr "Text"
msgid "Images"
msgstr "Bilder"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s gib den Datenbank-Benutzernamen an."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s gib den Datenbank-Namen an."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s Der Datenbank-Name darf keine Punkte enthalten"
@@ -207,11 +207,11 @@ msgid "MySQL username and/or password not valid"
msgstr "MySQL Benutzername und/oder Passwort ungültig"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -219,10 +219,10 @@ msgid "DB Error: \"%s\""
msgstr "DB Fehler: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -255,7 +255,7 @@ msgstr "Es konnte keine Verbindung zur Oracle-Datenbank hergestellt werden"
msgid "Oracle username and/or password not valid"
msgstr "Oracle Benutzername und/oder Passwort ungültig"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s"
@@ -335,7 +335,3 @@ msgstr "Letztes Jahr"
#: private/template/functions.php:142
msgid "years ago"
msgstr "Vor Jahren"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Verursacht durch:"
diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po
index fe5916be96d..c060c235627 100644
--- a/l10n/de/user_ldap.po
+++ b/l10n/de/user_ldap.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -29,17 +29,17 @@ msgstr "Löschen der Zuordnung fehlgeschlagen."
msgid "Failed to delete the server configuration"
msgstr "Löschen der Serverkonfiguration fehlgeschlagen"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -90,43 +90,43 @@ msgstr "Erfolgreich"
msgid "Error"
msgstr "Fehler"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Konfiguration OK"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Konfiguration nicht korrekt"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Konfiguration nicht vollständig"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Wähle Gruppen aus"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Objekt-Klassen auswählen"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Attribute auswählen"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Verbindungstest erfolgreich"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Verbindungstest fehlgeschlagen"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Löschung bestätigen"
@@ -144,11 +144,11 @@ msgid_plural "%s users found"
msgstr[0] "%s Benutzer gefunden"
msgstr[1] "%s Benutzer gefunden"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Ungültiger Host"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "Konnte die gewünschte Funktion nicht finden"
diff --git a/l10n/de_AT/core.po b/l10n/de_AT/core.po
index 53ae930e093..43986ced25a 100644
--- a/l10n/de_AT/core.po
+++ b/l10n/de_AT/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Austria) (http://www.transifex.com/projects/p/owncloud/language/de_AT/)\n"
"MIME-Version: 1.0\n"
@@ -278,7 +278,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -314,7 +314,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
@@ -390,7 +390,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -481,8 +481,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -526,7 +526,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -593,101 +593,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -713,19 +720,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/de_AT/files.po b/l10n/de_AT/files.po
index fb35f514637..bb1821599ca 100644
--- a/l10n/de_AT/files.po
+++ b/l10n/de_AT/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Austria) (http://www.transifex.com/projects/p/owncloud/language/de_AT/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr ""
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/de_AT/lib.po b/l10n/de_AT/lib.po
index 1fcf0fb278a..49d351f3f82 100644
--- a/l10n/de_AT/lib.po
+++ b/l10n/de_AT/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Austria) (http://www.transifex.com/projects/p/owncloud/language/de_AT/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
@@ -70,23 +70,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/de_CH/core.po b/l10n/de_CH/core.po
index ba8da3b0a0b..deb192be2d4 100644
--- a/l10n/de_CH/core.po
+++ b/l10n/de_CH/core.po
@@ -12,13 +12,13 @@
# Mario Siegmann , 2013
# Mirodin , 2013
# SteinQuadrat, 2013
-# traductor , 2013
+# traductor , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n"
"MIME-Version: 1.0\n"
@@ -158,59 +158,59 @@ msgstr "November"
msgid "December"
msgstr "Dezember"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Einstellungen"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "Gerade eben"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Vor %n Minute"
msgstr[1] "Vor %n Minuten"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Vor %n Stunde"
msgstr[1] "Vor %n Stunden"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "Heute"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "Gestern"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Vor %n Tag"
msgstr[1] "Vor %n Tagen"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "Letzten Monat"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Vor %n Monat"
msgstr[1] "Vor %n Monaten"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "Vor Monaten"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "Letztes Jahr"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "Vor Jahren"
@@ -287,7 +287,7 @@ msgid "Share"
msgstr "Teilen"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Fehler"
@@ -323,7 +323,7 @@ msgstr ""
msgid "Password protect"
msgstr "Passwortschutz"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Passwort"
@@ -399,7 +399,7 @@ msgstr "löschen"
msgid "share"
msgstr "teilen"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Passwortgeschützt"
@@ -490,8 +490,8 @@ msgstr "Anfrage fehlgeschlagen! Haben Sie darauf geachtet, dass E-Mail-Adress
msgid "You will receive a link to reset your password via Email."
msgstr "Sie erhalten einen Link per E-Mail, um Ihr Passwort zurückzusetzen."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Benutzername"
@@ -535,7 +535,7 @@ msgstr "Persönlich"
msgid "Users"
msgstr "Benutzer"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -602,101 +602,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Sicherheitshinweis"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Ihre PHP Version ist durch die NULL Byte Attacke (CVE-2006-7243) angreifbar"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Bitte aktualisieren Sie Ihre PHP-Installation um %s sicher nutzen zu können."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktivieren Sie die PHP-Erweiterung für OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage, die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Ihr Konto zu übernehmen."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar, weil die .htaccess-Datei nicht funktioniert."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Für Informationen, wie Sie Ihren Server richtig konfigurieren lesen Sie bitte die Dokumentation."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Administrator-Konto anlegen"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Fortgeschritten"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Datenverzeichnis"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Datenbank einrichten"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "wird verwendet"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Datenbank-Benutzer"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Datenbank-Passwort"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Datenbank-Name"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Datenbank-Tablespace"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Datenbank-Host"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Installation abschliessen"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Abmelden"
@@ -722,19 +729,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Passwort vergessen?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "merken"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Einloggen"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Alternative Logins"
diff --git a/l10n/de_CH/files.po b/l10n/de_CH/files.po
index a1abcbec8a7..3d90c347be1 100644
--- a/l10n/de_CH/files.po
+++ b/l10n/de_CH/files.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n"
"MIME-Version: 1.0\n"
@@ -55,12 +55,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -180,6 +185,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Teilen"
@@ -386,29 +395,25 @@ msgstr "Alles leer. Laden Sie etwas hoch!"
msgid "Download"
msgstr "Herunterladen"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Freigabe aufheben"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Löschen"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Der Upload ist zu gross"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Dateien werden gescannt, bitte warten."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Scanne"
diff --git a/l10n/de_CH/lib.po b/l10n/de_CH/lib.po
index ef31022f851..60b3f52c359 100644
--- a/l10n/de_CH/lib.po
+++ b/l10n/de_CH/lib.po
@@ -6,13 +6,13 @@
# FlorianScholz , 2013
# FlorianScholz , 2013
# Mario Siegmann , 2013
-# traductor , 2013
+# traductor , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n"
"MIME-Version: 1.0\n"
@@ -57,15 +57,15 @@ msgstr "Administrator"
msgid "Failed to upgrade \"%s\"."
msgstr "Konnte \"%s\" nicht aktualisieren."
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "Web-Services unter Ihrer Kontrolle"
@@ -74,23 +74,23 @@ msgstr "Web-Services unter Ihrer Kontrolle"
msgid "cannot open \"%s\""
msgstr "Öffnen von \"%s\" fehlgeschlagen"
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Der ZIP-Download ist deaktiviert."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Die Dateien müssen einzeln heruntergeladen werden."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Zurück zu \"Dateien\""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Die gewählten Dateien sind zu gross, um eine ZIP-Datei zu erstellen."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -176,17 +176,17 @@ msgstr "Text"
msgid "Images"
msgstr "Bilder"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s geben Sie den Datenbank-Benutzernamen an."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s geben Sie den Datenbank-Namen an."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s Der Datenbank-Name darf keine Punkte enthalten"
@@ -207,11 +207,11 @@ msgid "MySQL username and/or password not valid"
msgstr "MySQL Benutzername und/oder Passwort ungültig"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -219,10 +219,10 @@ msgid "DB Error: \"%s\""
msgstr "DB Fehler: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -255,7 +255,7 @@ msgstr "Die Oracle-Verbindung konnte nicht aufgebaut werden."
msgid "Oracle username and/or password not valid"
msgstr "Oracle Benutzername und/oder Passwort ungültig"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s"
@@ -335,7 +335,3 @@ msgstr "Letztes Jahr"
#: private/template/functions.php:142
msgid "years ago"
msgstr "Vor Jahren"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Verursacht durch:"
diff --git a/l10n/de_CH/user_ldap.po b/l10n/de_CH/user_ldap.po
index 6e519bd5670..e5935ea7894 100644
--- a/l10n/de_CH/user_ldap.po
+++ b/l10n/de_CH/user_ldap.po
@@ -10,13 +10,13 @@
# Marcel Kühlhorn , 2013
# Mario Siegmann , 2013
# multimill , 2012
-# traductor , 2012-2013
+# traductor , 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n"
"MIME-Version: 1.0\n"
@@ -33,17 +33,17 @@ msgstr "Löschen der Zuordnung fehlgeschlagen."
msgid "Failed to delete the server configuration"
msgstr "Löschen der Serverkonfiguration fehlgeschlagen"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -94,43 +94,43 @@ msgstr "Erfolg"
msgid "Error"
msgstr "Fehler"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Wähle Gruppen"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Verbindungstest erfolgreich"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Verbindungstest fehlgeschlagen"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Löschung bestätigen"
@@ -148,11 +148,11 @@ msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po
index 24ca658bdda..d5844a27add 100644
--- a/l10n/de_DE/core.po
+++ b/l10n/de_DE/core.po
@@ -8,16 +8,16 @@
# I Robot , 2013
# Marcel Kühlhorn , 2013
# Mario Siegmann , 2013
-# traductor , 2013
+# traductor , 2013
# noxin , 2013
# Mirodin , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 12:40+0000\n"
-"Last-Translator: Mario Siegmann \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -28,7 +28,7 @@ msgstr ""
#: ajax/share.php:119 ajax/share.php:198
#, php-format
msgid "%s shared »%s« with you"
-msgstr "%s geteilt »%s« mit Ihnen"
+msgstr "%s hat »%s« mit Ihnen geteilt"
#: ajax/share.php:169
#, php-format
@@ -156,59 +156,59 @@ msgstr "November"
msgid "December"
msgstr "Dezember"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Einstellungen"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "Gerade eben"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Vor %n Minute"
msgstr[1] "Vor %n Minuten"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Vor %n Stunde"
msgstr[1] "Vor %n Stunden"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "Heute"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "Gestern"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Vor %n Tag"
msgstr[1] "Vor %n Tagen"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "Letzten Monat"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Vor %n Monat"
msgstr[1] "Vor %n Monaten"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "Vor Monaten"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "Letztes Jahr"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "Vor Jahren"
@@ -285,7 +285,7 @@ msgid "Share"
msgstr "Teilen"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Fehler"
@@ -321,7 +321,7 @@ msgstr "Link teilen"
msgid "Password protect"
msgstr "Passwortschutz"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Passwort"
@@ -397,7 +397,7 @@ msgstr "löschen"
msgid "share"
msgstr "teilen"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Passwortgeschützt"
@@ -427,7 +427,7 @@ msgstr "Der Objekttyp ist nicht angegeben."
#: js/tags.js:13
msgid "Enter new"
-msgstr "c"
+msgstr "Neuen eingeben"
#: js/tags.js:27
msgid "Delete"
@@ -488,8 +488,8 @@ msgstr "Anfrage fehlgeschlagen! Haben Sie darauf geachtet, dass E-Mail-Adress
msgid "You will receive a link to reset your password via Email."
msgstr "Sie erhalten einen Link per E-Mail, um Ihr Passwort zurückzusetzen."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Benutzername"
@@ -533,7 +533,7 @@ msgstr "Persönlich"
msgid "Users"
msgstr "Benutzer"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -600,101 +600,108 @@ msgstr "Die Freigabe wird am %s ablaufen."
msgid "Cheers!"
msgstr "Noch einen schönen Tag!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Sicherheitshinweis"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Ihre PHP Version ist durch die NULL Byte Attacke (CVE-2006-7243) angreifbar"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Bitte aktualisieren Sie Ihre PHP-Installation um %s sicher nutzen zu können."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktivieren Sie die PHP-Erweiterung für OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage, die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Ihr Konto zu übernehmen."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar, weil die .htaccess-Datei nicht funktioniert."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Bitte lesen Sie die Dokumentation, um zu erfahren, wie Sie Ihr Server richtig konfigurieren können."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Administrator-Konto anlegen"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Fortgeschritten"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Datenverzeichnis"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Datenbank einrichten"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "wird verwendet"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Datenbank-Benutzer"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Datenbank-Passwort"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Datenbank-Name"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Datenbank-Tablespace"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Datenbank-Host"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Installation abschließen"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Abschließen ..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte aktivieren Sie JavaScript und laden Sie diese Schnittstelle neu."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Abmelden"
@@ -720,19 +727,19 @@ msgstr "Die Authentifizierung auf dem Server ist fehlgeschlagen!"
msgid "Please contact your administrator."
msgstr "Bitte kontaktieren Sie Ihren Administrator."
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Passwort vergessen?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "merken"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Einloggen"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Alternative Logins"
diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po
index 9f476a3fd29..4dfeb00de56 100644
--- a/l10n/de_DE/files.po
+++ b/l10n/de_DE/files.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: Mario Siegmann \n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n"
"MIME-Version: 1.0\n"
@@ -55,12 +55,17 @@ msgstr "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen a
msgid "Not a valid source"
msgstr "Keine gültige Quelle"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen"
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Fehler beim Herunterladen von %s nach %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Fehler beim Erstellen der Datei"
@@ -180,6 +185,10 @@ msgstr "Die Datei konnte nicht erstellt werden"
msgid "Could not create folder"
msgstr "Der Ordner konnte nicht erstellt werden"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Fehler beim Abrufen der URL"
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Teilen"
@@ -386,29 +395,25 @@ msgstr "Alles leer. Laden Sie etwas hoch!"
msgid "Download"
msgstr "Herunterladen"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Freigabe aufheben"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Löschen"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Der Upload ist zu groß"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Dateien werden gescannt, bitte warten."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Scanne"
diff --git a/l10n/de_DE/files_versions.po b/l10n/de_DE/files_versions.po
index 56dd696d6d9..7facdad6e93 100644
--- a/l10n/de_DE/files_versions.po
+++ b/l10n/de_DE/files_versions.po
@@ -7,11 +7,11 @@
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-08-01 01:55-0400\n"
-"PO-Revision-Date: 2013-07-31 21:33+0000\n"
-"Last-Translator: a.tangemann \n"
-"Language-Team: German (Germany) \n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-06 12:30+0000\n"
+"Last-Translator: Mario Siegmann \n"
+"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,22 +23,22 @@ msgstr ""
msgid "Could not revert: %s"
msgstr "Konnte %s nicht zurücksetzen"
-#: js/versions.js:7
+#: js/versions.js:14
msgid "Versions"
msgstr "Versionen"
-#: js/versions.js:53
+#: js/versions.js:60
msgid "Failed to revert {file} to revision {timestamp}."
-msgstr "Konnte {file} der Revision {timestamp} nicht rückgänging machen."
+msgstr "Konnte {file} der Revision {timestamp} nicht rückgängig machen."
-#: js/versions.js:79
+#: js/versions.js:86
msgid "More versions..."
msgstr "Mehrere Versionen..."
-#: js/versions.js:116
+#: js/versions.js:123
msgid "No other versions available"
msgstr "Keine anderen Versionen verfügbar"
-#: js/versions.js:149
+#: js/versions.js:154
msgid "Restore"
msgstr "Wiederherstellen"
diff --git a/l10n/de_DE/lib.po b/l10n/de_DE/lib.po
index d80fe487df9..25b901469e0 100644
--- a/l10n/de_DE/lib.po
+++ b/l10n/de_DE/lib.po
@@ -4,15 +4,15 @@
#
# Translators:
# Mario Siegmann , 2013
-# traductor , 2013
+# traductor , 2013
# noxin , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-24 00:13-0500\n"
-"PO-Revision-Date: 2013-11-22 08:30+0000\n"
-"Last-Translator: Mario Siegmann \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -56,15 +56,15 @@ msgstr "Administrator"
msgid "Failed to upgrade \"%s\"."
msgstr "Konnte \"%s\" nicht aktualisieren."
-#: private/avatar.php:62
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Unbekannter Dateityp"
-#: private/avatar.php:67
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Ungültiges Bild"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "Web-Services unter Ihrer Kontrolle"
@@ -73,23 +73,23 @@ msgstr "Web-Services unter Ihrer Kontrolle"
msgid "cannot open \"%s\""
msgstr "Öffnen von \"%s\" fehlgeschlagen"
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Der ZIP-Download ist deaktiviert."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Die Dateien müssen einzeln heruntergeladen werden."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Zurück zu \"Dateien\""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -175,17 +175,17 @@ msgstr "Text"
msgid "Images"
msgstr "Bilder"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s geben Sie den Datenbank-Benutzernamen an."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s geben Sie den Datenbank-Namen an."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s Der Datenbank-Name darf keine Punkte enthalten"
@@ -206,11 +206,11 @@ msgid "MySQL username and/or password not valid"
msgstr "MySQL Benutzername und/oder Passwort ungültig"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -218,10 +218,10 @@ msgid "DB Error: \"%s\""
msgstr "DB Fehler: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -254,7 +254,7 @@ msgstr "Die Oracle-Verbindung konnte nicht aufgebaut werden."
msgid "Oracle username and/or password not valid"
msgstr "Oracle Benutzername und/oder Passwort ungültig"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s"
@@ -334,7 +334,3 @@ msgstr "Letztes Jahr"
#: private/template/functions.php:142
msgid "years ago"
msgstr "Vor Jahren"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Verursacht durch:"
diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po
index 5821d03da7a..ea78203877f 100644
--- a/l10n/de_DE/user_ldap.po
+++ b/l10n/de_DE/user_ldap.po
@@ -7,14 +7,14 @@
# Marcel Kühlhorn , 2013
# Mario Siegmann , 2013
# JamFX , 2013
-# traductor , 2013
+# traductor , 2013
# noxin , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n"
"MIME-Version: 1.0\n"
@@ -31,17 +31,17 @@ msgstr "Löschen der Zuordnung fehlgeschlagen."
msgid "Failed to delete the server configuration"
msgstr "Löschen der Serverkonfiguration fehlgeschlagen"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -92,43 +92,43 @@ msgstr "Erfolg"
msgid "Error"
msgstr "Fehler"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Konfiguration OK"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Konfiguration nicht korrekt"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Konfiguration nicht vollständig"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Wähle Gruppen"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Objekt-Klassen auswählen"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Attribute auswählen"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Verbindungstest erfolgreich"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Verbindungstest fehlgeschlagen"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Löschung bestätigen"
@@ -146,11 +146,11 @@ msgid_plural "%s users found"
msgstr[0] "%s Benutzer gefunden"
msgstr[1] "%s Benutzer gefunden"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Ungültiger Host"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "Konnte die gewünschte Funktion nicht finden"
diff --git a/l10n/el/core.po b/l10n/el/core.po
index 3a8caf4a095..b453459ddc9 100644
--- a/l10n/el/core.po
+++ b/l10n/el/core.po
@@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 20:50+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,16 +50,16 @@ msgstr "Ενημερωμένη βάση δεδομένων"
#: ajax/update.php:20
msgid "Updating filecache, this may take really long..."
-msgstr ""
+msgstr "Ενημέρωση αποθηκευμένων αρχείων, αυτό μπορεί να πάρα πολύ ώρα..."
#: ajax/update.php:23
msgid "Updated filecache"
-msgstr ""
+msgstr "Ενημέρωση αποθηκευμένων αρχείων"
#: ajax/update.php:26
#, php-format
msgid "... %d%% done ..."
-msgstr ""
+msgstr "... %d%% ολοκληρώθηκαν ..."
#: avatar/controller.php:62
msgid "No image or file provided"
@@ -75,11 +75,11 @@ msgstr "Μη έγκυρη εικόνα"
#: avatar/controller.php:115 avatar/controller.php:142
msgid "No temporary profile picture available, try again"
-msgstr ""
+msgstr "Δεν υπάρχει προσωρινή φωτογραφία προφίλ διαθέσιμη, δοκιμάστε ξανά"
#: avatar/controller.php:135
msgid "No crop data provided"
-msgstr ""
+msgstr "Δεν δόθηκαν δεδομένα περικοπής"
#: js/config.php:32
msgid "Sunday"
@@ -157,59 +157,59 @@ msgstr "Νοέμβριος"
msgid "December"
msgstr "Δεκέμβριος"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Ρυθμίσεις"
-#: js/js.js:858
+#: js/js.js:872
msgid "seconds ago"
msgstr "δευτερόλεπτα πριν"
-#: js/js.js:859
+#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n λεπτό πριν"
msgstr[1] "%n λεπτά πριν"
-#: js/js.js:860
+#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%n ώρα πριν"
+msgstr[1] "%n ώρες πριν"
-#: js/js.js:861
+#: js/js.js:875
msgid "today"
msgstr "σήμερα"
-#: js/js.js:862
+#: js/js.js:876
msgid "yesterday"
msgstr "χτες"
-#: js/js.js:863
+#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%n ημέρα πριν"
+msgstr[1] "%n ημέρες πριν"
-#: js/js.js:864
+#: js/js.js:878
msgid "last month"
msgstr "τελευταίο μήνα"
-#: js/js.js:865
+#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%n μήνας πριν"
+msgstr[1] "%n μήνες πριν"
-#: js/js.js:866
+#: js/js.js:880
msgid "months ago"
msgstr "μήνες πριν"
-#: js/js.js:867
+#: js/js.js:881
msgid "last year"
msgstr "τελευταίο χρόνο"
-#: js/js.js:868
+#: js/js.js:882
msgid "years ago"
msgstr "χρόνια πριν"
@@ -219,7 +219,7 @@ msgstr "Επιλέξτε"
#: js/oc-dialogs.js:146
msgid "Error loading file picker template: {error}"
-msgstr ""
+msgstr "Σφάλμα κατά την φόρτωση προτύπου επιλογέα αρχείων: {σφάλμα}"
#: js/oc-dialogs.js:172
msgid "Yes"
@@ -235,17 +235,17 @@ msgstr "Οκ"
#: js/oc-dialogs.js:219
msgid "Error loading message template: {error}"
-msgstr ""
+msgstr "Σφάλμα φόρτωσης προτύπου μηνυμάτων: {σφάλμα}"
#: js/oc-dialogs.js:347
msgid "{count} file conflict"
msgid_plural "{count} file conflicts"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{count} αρχείο διαφέρει"
+msgstr[1] "{count} αρχεία διαφέρουν"
#: js/oc-dialogs.js:361
msgid "One file conflict"
-msgstr ""
+msgstr "Ένα αρχείο διαφέρει"
#: js/oc-dialogs.js:367
msgid "Which files do you want to keep?"
@@ -271,7 +271,7 @@ msgstr "(όλα τα επιλεγμένα)"
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
msgid "({count} selected)"
-msgstr ""
+msgstr "({count} επιλέχθησαν)"
#: js/oc-dialogs.js:457
msgid "Error loading file exists template"
@@ -286,7 +286,7 @@ msgid "Share"
msgstr "Διαμοιρασμός"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Σφάλμα"
@@ -322,7 +322,7 @@ msgstr "Διαμοιρασμός συνδέσμου"
msgid "Password protect"
msgstr "Προστασία συνθηματικού"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Συνθηματικό"
@@ -398,7 +398,7 @@ msgstr "διαγραφή"
msgid "share"
msgstr "διαμοιρασμός"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Προστασία με συνθηματικό"
@@ -444,15 +444,15 @@ msgstr "Επεξεργασία ετικετών"
#: js/tags.js:57
msgid "Error loading dialog template: {error}"
-msgstr ""
+msgstr "Σφάλμα φόρτωσης προτύπου διαλόγων: {σφάλμα}"
#: js/tags.js:261
msgid "No tags selected for deletion."
-msgstr ""
+msgstr "Καμμία ετικέτα δεν επιλέχθηκε για διαγραφή."
#: js/update.js:8
msgid "Please reload the page."
-msgstr ""
+msgstr "Παρακαλώ επαναφορτώστε τη σελίδα."
#: js/update.js:17
msgid ""
@@ -468,7 +468,7 @@ msgstr "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο
#: lostpassword/controller.php:62
#, php-format
msgid "%s password reset"
-msgstr ""
+msgstr "%s επαναφορά κωδικού πρόσβασης"
#: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}"
@@ -489,8 +489,8 @@ msgstr "Η αίτηση απέτυχε! Βεβαιωθηκατε ότι το ema
msgid "You will receive a link to reset your password via Email."
msgstr "Θα λάβετε ένα σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασής σας μέσω ηλεκτρονικού ταχυδρομείου."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Όνομα χρήστη"
@@ -534,7 +534,7 @@ msgstr "Προσωπικά"
msgid "Users"
msgstr "Χρήστες"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Εφαρμογές"
@@ -548,7 +548,7 @@ msgstr "Βοήθεια"
#: tags/controller.php:22
msgid "Error loading tags"
-msgstr ""
+msgstr "Σφάλμα φόρτωσης ετικετών"
#: tags/controller.php:48
msgid "Tag already exists"
@@ -556,23 +556,23 @@ msgstr "Υπάρχει ήδη η ετικέτα"
#: tags/controller.php:64
msgid "Error deleting tag(s)"
-msgstr ""
+msgstr "Σφάλμα διαγραφής ετικέτας(ων)"
#: tags/controller.php:75
msgid "Error tagging"
-msgstr ""
+msgstr "Σφάλμα προσθήκης ετικέτας"
#: tags/controller.php:86
msgid "Error untagging"
-msgstr ""
+msgstr "Σφάλμα αφαίρεσης ετικέτας"
#: tags/controller.php:97
msgid "Error favoriting"
-msgstr ""
+msgstr "Σφάλμα προσθήκης στα αγαπημένα"
#: tags/controller.php:108
msgid "Error unfavoriting"
-msgstr ""
+msgstr "Σφάλμα αφαίρεσης από τα αγαπημένα"
#: templates/403.php:12
msgid "Access forbidden"
@@ -590,7 +590,7 @@ msgid ""
"just letting you know that %s shared %s with you.\n"
"View it: %s\n"
"\n"
-msgstr ""
+msgstr "Γειά χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n"
#: templates/altmail.php:4 templates/mail.php:17
#, php-format
@@ -599,103 +599,110 @@ msgstr "Ο διαμοιρασμός θα λήξει σε %s."
#: templates/altmail.php:7 templates/mail.php:20
msgid "Cheers!"
-msgstr ""
+msgstr "Χαιρετισμούς!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Προειδοποίηση Ασφαλείας"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Η PHP ειναι ευαλωτη στην NULL Byte επιθεση (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Παρακαλώ ενημερώστε την εγκατάσταση της PHP ώστε να χρησιμοποιήσετε το %s με ασφάλεια."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Δεν είναι διαθέσιμο το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, παρακαλώ ενεργοποιήστε το πρόσθετο της PHP, OpenSSL."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Χωρίς το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, μπορεί να διαρρεύσει ο λογαριασμός σας από επιθέσεις στο διαδίκτυο."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Ο κατάλογος δεδομένων και τα αρχεία σας είναι πιθανό προσβάσιμα από το internet γιατί δεν δουλεύει το αρχείο .htaccess."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Για πληροφορίες πως να ρυθμίσετε ορθά τον διακομιστή σας, παρακαλώ δείτε την τεκμηρίωση."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Δημιουργήστε έναν λογαριασμό διαχειριστή"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Για προχωρημένους"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Φάκελος δεδομένων"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Ρύθμιση της βάσης δεδομένων"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "θα χρησιμοποιηθούν"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Χρήστης της βάσης δεδομένων"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Συνθηματικό βάσης δεδομένων"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Όνομα βάσης δεδομένων"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Κενά Πινάκων Βάσης Δεδομένων"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Διακομιστής βάσης δεδομένων"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Ολοκλήρωση εγκατάστασης"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Ολοκλήρωση..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Αυτή η εφαρμογή απαιτεί η JavaScript να είναι ενεργοποιημένη για σωστή λειτουργία. Παρακαλώ ενεργοποιήστε τη JavaScript και επαναφορτώστε αυτή τη διεπαφή."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Αποσύνδεση"
@@ -721,19 +728,19 @@ msgstr "Η διαδικασία επικύρωσης απέτυχε από τη
msgid "Please contact your administrator."
msgstr "Παρακαλώ επικοινωνήστε με τον διαχειριστή."
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Ξεχάσατε το συνθηματικό σας;"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "απομνημόνευση"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Είσοδος"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Εναλλακτικές Συνδέσεις"
@@ -742,15 +749,15 @@ msgstr "Εναλλακτικές Συνδέσεις"
msgid ""
"Hey there,
just letting you know that %s shared »%s« with you. View it!
"
-msgstr ""
+msgstr "Γειά χαρά,
απλά σας ενημερώνω πως ο %s μοιράστηκε το »%s« με εσάς. Δείτε το!
"
#: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode."
-msgstr ""
+msgstr "Αυτή η εγκατάσταση ownCloud είναι τώρα σε κατάσταση ενός χρήστη."
#: templates/singleuser.user.php:4
msgid "This means only administrators can use the instance."
-msgstr ""
+msgstr "Αυτό σημαίνει ότι μόνο διαχειριστές μπορούν να χρησιμοποιήσουν την εγκατάσταση."
#: templates/singleuser.user.php:5 templates/update.user.php:5
msgid ""
diff --git a/l10n/el/files.po b/l10n/el/files.po
index 0925e467d27..84a38b5c6e9 100644
--- a/l10n/el/files.po
+++ b/l10n/el/files.po
@@ -7,13 +7,14 @@
# Efstathios Iosifidis , 2013
# gtsamis , 2013
# frerisp , 2013
+# vkehayas , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 20:50+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,39 +38,44 @@ msgstr "Το όνομα αρχείου δεν μπορεί να είναι κε
#: ajax/newfile.php:62
msgid "File name must not contain \"/\". Please choose a different name."
-msgstr ""
+msgstr "Το όνομα αρχείου δεν μπορεί να περιέχει \"/\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. "
#: ajax/newfile.php:72 ajax/newfolder.php:37 lib/app.php:67
#, php-format
msgid ""
"The name %s is already used in the folder %s. Please choose a different "
"name."
-msgstr ""
+msgstr "Το όνομα %s χρησιμοποιείτε ήδη στον φάκελο %s. Παρακαλώ επιλέξτε ένα άλλο όνομα."
#: ajax/newfile.php:81
msgid "Not a valid source"
-msgstr ""
+msgstr "Μη έγκυρη πηγή"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Ο διακομιστής δεν επιτρέπεται να ανοίγει URL, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή"
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
-msgstr ""
+msgstr "Σφάλμα κατά τη λήψη του %s στο %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
-msgstr ""
+msgstr "Σφάλμα κατά τη δημιουργία του αρχείου"
#: ajax/newfolder.php:21
msgid "Folder name cannot be empty."
-msgstr ""
+msgstr "Το όνομα φακέλου δεν μπορεί να είναι κενό."
#: ajax/newfolder.php:27
msgid "Folder name must not contain \"/\". Please choose a different name."
-msgstr ""
+msgstr "Το όνομα φακέλου δεν μπορεί να περιέχει \"/\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. "
#: ajax/newfolder.php:56
msgid "Error when creating the folder"
-msgstr ""
+msgstr "Σφάλμα δημιουργίας φακέλου"
#: ajax/upload.php:18 ajax/upload.php:50
msgid "Unable to set upload directory."
@@ -120,11 +126,11 @@ msgstr "Μη επαρκής διαθέσιμος αποθηκευτικός χώ
#: ajax/upload.php:127 ajax/upload.php:154
msgid "Upload failed. Could not get file info."
-msgstr ""
+msgstr "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων."
#: ajax/upload.php:144
msgid "Upload failed. Could not find uploaded file"
-msgstr ""
+msgstr "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση."
#: ajax/upload.php:172
msgid "Invalid directory."
@@ -136,7 +142,7 @@ msgstr "Αρχεία"
#: js/file-upload.js:228
msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
-msgstr ""
+msgstr "Αδυναμία φόρτωσης {filename} καθώς είναι κατάλογος αρχείων ή έχει 0 bytes"
#: js/file-upload.js:239
msgid "Not enough space available"
@@ -148,7 +154,7 @@ msgstr "Η αποστολή ακυρώθηκε."
#: js/file-upload.js:344
msgid "Could not get result from server."
-msgstr ""
+msgstr "Αδυναμία λήψης αποτελέσματος από το διακομιστή."
#: js/file-upload.js:436
msgid ""
@@ -157,11 +163,11 @@ msgstr "Η αποστολή του αρχείου βρίσκεται σε εξέ
#: js/file-upload.js:523
msgid "URL cannot be empty"
-msgstr ""
+msgstr "Η URL δεν πρέπει να είναι κενή"
#: js/file-upload.js:527 js/filelist.js:377
msgid "In the home folder 'Shared' is a reserved filename"
-msgstr ""
+msgstr "Στον αρχικό φάκελο το όνομα 'Shared' διατηρείται από το σύστημα"
#: js/file-upload.js:529 js/filelist.js:379
msgid "{new_name} already exists"
@@ -169,11 +175,15 @@ msgstr "{new_name} υπάρχει ήδη"
#: js/file-upload.js:595
msgid "Could not create file"
-msgstr ""
+msgstr "Αδυναμία δημιουργίας αρχείου"
#: js/file-upload.js:611
msgid "Could not create folder"
-msgstr ""
+msgstr "Αδυναμία δημιουργίας φακέλου"
+
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Σφάλμα φόρτωσης URL"
#: js/fileactions.js:125
msgid "Share"
@@ -193,7 +203,7 @@ msgstr "Εκκρεμεί"
#: js/filelist.js:405
msgid "Could not rename file"
-msgstr ""
+msgstr "Αδυναμία μετονομασίας αρχείου"
#: js/filelist.js:539
msgid "replaced {new_name} with {old_name}"
@@ -205,7 +215,7 @@ msgstr "αναίρεση"
#: js/filelist.js:591
msgid "Error deleting file."
-msgstr ""
+msgstr "Σφάλμα διαγραφής αρχείου."
#: js/filelist.js:609 js/filelist.js:683 js/files.js:631
msgid "%n folder"
@@ -221,7 +231,7 @@ msgstr[1] "%n αρχεία"
#: js/filelist.js:617
msgid "{dirs} and {files}"
-msgstr ""
+msgstr "{Κατάλογοι αρχείων} και {αρχεία}"
#: js/filelist.js:828 js/filelist.js:866
msgid "Uploading %n file"
@@ -251,14 +261,14 @@ msgstr "Ο αποθηκευτικός χώρος είναι σχεδόν γεμ
msgid ""
"Encryption App is enabled but your keys are not initialized, please log-out "
"and log-in again"
-msgstr ""
+msgstr "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε."
#: js/files.js:114
msgid ""
"Invalid private key for Encryption App. Please update your private key "
"password in your personal settings to recover access to your encrypted "
"files."
-msgstr ""
+msgstr "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία."
#: js/files.js:118
msgid ""
@@ -294,7 +304,7 @@ msgstr "Τροποποιήθηκε"
#: lib/app.php:60
msgid "Invalid folder name. Usage of 'Shared' is reserved."
-msgstr ""
+msgstr "Άκυρο όνομα φακέλου. Η χρήση του 'Shared' διατηρείται από το σύστημα."
#: lib/app.php:101
#, php-format
@@ -343,7 +353,7 @@ msgstr "Νέο"
#: templates/index.php:8
msgid "New text file"
-msgstr ""
+msgstr "Νέο αρχείο κειμένου"
#: templates/index.php:8
msgid "Text file"
@@ -371,7 +381,7 @@ msgstr "Ακύρωση αποστολής"
#: templates/index.php:40
msgid "You don’t have permission to upload or create files here"
-msgstr ""
+msgstr "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ"
#: templates/index.php:45
msgid "Nothing in here. Upload something!"
@@ -381,29 +391,25 @@ msgstr "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!"
msgid "Download"
msgstr "Λήψη"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Σταμάτημα διαμοιρασμού"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Διαγραφή"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Πολύ μεγάλο αρχείο προς αποστολή"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Τρέχουσα ανίχνευση"
diff --git a/l10n/el/files_encryption.po b/l10n/el/files_encryption.po
index b539c970800..18e02898e39 100644
--- a/l10n/el/files_encryption.po
+++ b/l10n/el/files_encryption.po
@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:09+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-28 01:55-0500\n"
+"PO-Revision-Date: 2013-12-27 15:42+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -63,7 +63,7 @@ msgid ""
"Encryption app not initialized! Maybe the encryption app was re-enabled "
"during your session. Please try to log out and log back in to initialize the"
" encryption app."
-msgstr ""
+msgstr "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης."
#: files/error.php:16
#, php-format
@@ -71,13 +71,13 @@ msgid ""
"Your private key is not valid! Likely your password was changed outside of "
"%s (e.g. your corporate directory). You can update your private key password"
" in your personal settings to recover access to your encrypted files."
-msgstr ""
+msgstr "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία."
#: files/error.php:19
msgid ""
"Can not decrypt this file, probably this is a shared file. Please ask the "
"file owner to reshare the file with you."
-msgstr ""
+msgstr "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας."
#: files/error.php:22 files/error.php:27
msgid ""
@@ -85,24 +85,24 @@ msgid ""
"administrator"
msgstr "Άγνωστο σφάλμα, παρακαλώ ελέγξτε τις ρυθμίσεις συστήματος ή επικοινωνήστε με τον διαχειριστή σας "
-#: hooks/hooks.php:59
+#: hooks/hooks.php:62
msgid "Missing requirements."
msgstr "Προαπαιτούμενα που απουσιάζουν."
-#: hooks/hooks.php:60
+#: hooks/hooks.php:63
msgid ""
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
"together with the PHP extension is enabled and configured properly. For now,"
" the encryption app has been disabled."
msgstr "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη."
-#: hooks/hooks.php:273
+#: hooks/hooks.php:281
msgid "Following users are not set up for encryption:"
msgstr "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:"
#: js/detect-migration.js:21
msgid "Initial encryption started... This can take some time. Please wait."
-msgstr ""
+msgstr "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε."
#: js/settings-admin.js:13
msgid "Saving..."
@@ -123,7 +123,7 @@ msgstr "Κρυπτογράφηση"
#: templates/settings-admin.php:7
msgid ""
"Enable recovery key (allow to recover users files in case of password loss):"
-msgstr ""
+msgstr "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):"
#: templates/settings-admin.php:11
msgid "Recovery key password"
@@ -131,7 +131,7 @@ msgstr "Επαναφορά κωδικού κλειδιού"
#: templates/settings-admin.php:14
msgid "Repeat Recovery key password"
-msgstr ""
+msgstr "Επαναλάβετε το κλειδί επαναφοράς κωδικού"
#: templates/settings-admin.php:21 templates/settings-personal.php:51
msgid "Enabled"
@@ -143,11 +143,11 @@ msgstr "Απενεργοποιημένο"
#: templates/settings-admin.php:34
msgid "Change recovery key password:"
-msgstr ""
+msgstr "Αλλαγή κλειδιού επαναφοράς κωδικού:"
#: templates/settings-admin.php:40
msgid "Old Recovery key password"
-msgstr ""
+msgstr "Παλιό κλειδί επαναφοράς κωδικού"
#: templates/settings-admin.php:47
msgid "New Recovery key password"
@@ -155,7 +155,7 @@ msgstr "Νέο κλειδί επαναφοράς κωδικού"
#: templates/settings-admin.php:53
msgid "Repeat New Recovery key password"
-msgstr ""
+msgstr "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού"
#: templates/settings-admin.php:58
msgid "Change Password"
@@ -167,7 +167,7 @@ msgstr "Ο κωδικός του προσωπικού κλειδιού δεν τ
#: templates/settings-personal.php:12
msgid "Set your old private key password to your current log-in password."
-msgstr ""
+msgstr "Ορίστε το παλιό σας προσωπικό κλειδί ως τον τρέχων κωδικό πρόσβασης."
#: templates/settings-personal.php:14
msgid ""
diff --git a/l10n/el/files_sharing.po b/l10n/el/files_sharing.po
index 276e7044c67..1c70dfb1d6d 100644
--- a/l10n/el/files_sharing.po
+++ b/l10n/el/files_sharing.po
@@ -4,13 +4,13 @@
#
# Translators:
# Efstathios Iosifidis , 2013
-# vkehayas , 2013
+# vkehayas , 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-24 00:13-0500\n"
-"PO-Revision-Date: 2013-11-23 01:30+0000\n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 21:00+0000\n"
"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
@@ -25,11 +25,11 @@ msgstr "Αυτός ο κοινόχρηστος φάκελος προστατεύ
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
-msgstr "Εσφαλμένο συνθηματικό. Προσπαθήστε ξανά."
+msgstr "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά."
#: templates/authenticate.php:10
msgid "Password"
-msgstr "Συνθηματικό"
+msgstr "Κωδικός πρόσβασης"
#: templates/part.404.php:3
msgid "Sorry, this link doesn’t seem to work anymore."
@@ -58,12 +58,12 @@ msgstr "Για περισσότερες πληροφορίες, παρακαλώ
#: templates/public.php:18
#, php-format
msgid "%s shared the folder %s with you"
-msgstr "%s μοιράστηκε τον φάκελο %s μαζί σας"
+msgstr "Ο %s μοιράστηκε τον φάκελο %s μαζί σας"
#: templates/public.php:21
#, php-format
msgid "%s shared the file %s with you"
-msgstr "%s μοιράστηκε το αρχείο %s μαζί σας"
+msgstr "Ο %s μοιράστηκε το αρχείο %s μαζί σας"
#: templates/public.php:29 templates/public.php:95
msgid "Download"
@@ -75,7 +75,7 @@ msgstr "Μεταφόρτωση"
#: templates/public.php:59
msgid "Cancel upload"
-msgstr "Ακύρωση αποστολής"
+msgstr "Ακύρωση μεταφόρτωσης"
#: templates/public.php:92
msgid "No preview available for"
diff --git a/l10n/el/files_trashbin.po b/l10n/el/files_trashbin.po
index 57aa40f1486..0d05dc752d2 100644
--- a/l10n/el/files_trashbin.po
+++ b/l10n/el/files_trashbin.po
@@ -4,13 +4,14 @@
#
# Translators:
# Efstathios Iosifidis , 2013
+# vkehayas , 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-16 07:44+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 21:15+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,44 +19,44 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ajax/delete.php:42
+#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr "Αδύνατη η μόνιμη διαγραφή του %s"
-#: ajax/undelete.php:42
+#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr "Αδυναμία επαναφοράς %s"
-#: js/trash.js:18 js/trash.js:44 js/trash.js:121 js/trash.js:149
+#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
msgstr "Σφάλμα"
-#: lib/trashbin.php:815 lib/trashbin.php:817
+#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
-msgstr "έγινε επαναφορά"
+msgstr "επαναφέρθηκαν"
-#: templates/index.php:8
+#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!"
-#: templates/index.php:22
+#: templates/index.php:20
msgid "Name"
msgstr "Όνομα"
-#: templates/index.php:25 templates/index.php:27
+#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr "Επαναφορά"
-#: templates/index.php:33
+#: templates/index.php:31
msgid "Deleted"
-msgstr "Διαγράφηκε"
+msgstr "Διαγραμμένα"
-#: templates/index.php:36 templates/index.php:37
+#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr "Διαγραφή"
-#: templates/part.breadcrumb.php:9
+#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr "Διαγραμμένα Αρχεία"
diff --git a/l10n/el/files_versions.po b/l10n/el/files_versions.po
index 69a93edf4e8..33ed352c925 100644
--- a/l10n/el/files_versions.po
+++ b/l10n/el/files_versions.po
@@ -4,13 +4,14 @@
#
# Translators:
# Efstathios Iosifidis , 2013
+# vkehayas , 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-08-07 08:59-0400\n"
-"PO-Revision-Date: 2013-08-06 07:40+0000\n"
-"Last-Translator: Efstathios Iosifidis \n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 21:15+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,24 +22,24 @@ msgstr ""
#: ajax/rollbackVersion.php:13
#, php-format
msgid "Could not revert: %s"
-msgstr "Αδυναμία επαναφοράς του: %s"
+msgstr "Αδυναμία επαναφοράς: %s"
-#: js/versions.js:7
+#: js/versions.js:14
msgid "Versions"
msgstr "Εκδόσεις"
-#: js/versions.js:53
+#: js/versions.js:60
msgid "Failed to revert {file} to revision {timestamp}."
msgstr "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}."
-#: js/versions.js:79
+#: js/versions.js:86
msgid "More versions..."
msgstr "Περισσότερες εκδόσεις..."
-#: js/versions.js:116
+#: js/versions.js:123
msgid "No other versions available"
msgstr "Δεν υπάρχουν άλλες εκδόσεις διαθέσιμες"
-#: js/versions.js:149
+#: js/versions.js:154
msgid "Restore"
msgstr "Επαναφορά"
diff --git a/l10n/el/lib.po b/l10n/el/lib.po
index bb1e7107c87..f59d5fe6101 100644
--- a/l10n/el/lib.po
+++ b/l10n/el/lib.po
@@ -4,13 +4,14 @@
#
# Translators:
# Efstathios Iosifidis , 2013
+# vkehayas , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-24 00:13-0500\n"
-"PO-Revision-Date: 2013-11-23 01:50+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2013-12-27 01:55-0500\n"
+"PO-Revision-Date: 2013-12-26 13:10+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,51 +19,51 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: private/app.php:243
+#: private/app.php:245
#, php-format
msgid ""
"App \"%s\" can't be installed because it is not compatible with this version"
" of ownCloud."
-msgstr ""
+msgstr "Η εφαρμογή \"%s\" δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση του ownCloud."
-#: private/app.php:255
+#: private/app.php:257
msgid "No app name specified"
-msgstr ""
+msgstr "Δεν προδιορίστηκε όνομα εφαρμογής"
-#: private/app.php:360
+#: private/app.php:362
msgid "Help"
msgstr "Βοήθεια"
-#: private/app.php:373
+#: private/app.php:375
msgid "Personal"
msgstr "Προσωπικά"
-#: private/app.php:384
+#: private/app.php:386
msgid "Settings"
msgstr "Ρυθμίσεις"
-#: private/app.php:396
+#: private/app.php:398
msgid "Users"
msgstr "Χρήστες"
-#: private/app.php:409
+#: private/app.php:411
msgid "Admin"
msgstr "Διαχειριστής"
-#: private/app.php:873
+#: private/app.php:875
#, php-format
msgid "Failed to upgrade \"%s\"."
msgstr "Αποτυχία αναβάθμισης του \"%s\"."
-#: private/avatar.php:62
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Άγνωστος τύπος αρχείου"
-#: private/avatar.php:67
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Μη έγκυρη εικόνα"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "υπηρεσίες δικτύου υπό τον έλεγχό σας"
@@ -71,62 +72,62 @@ msgstr "υπηρεσίες δικτύου υπό τον έλεγχό σας"
msgid "cannot open \"%s\""
msgstr "αδυναμία ανοίγματος \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "Η λήψη ZIP απενεργοποιήθηκε."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Τα αρχεία πρέπει να ληφθούν ένα-ένα."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Πίσω στα Αρχεία"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Τα επιλεγμένα αρχεία είναι μεγάλα ώστε να δημιουργηθεί αρχείο zip."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
-msgstr ""
+msgstr "Παρακαλώ κάντε λήψη των αρχείων σε μικρότερα κομμάτια ή ζητήστε το από το διαχειριστή σας."
#: private/installer.php:63
msgid "No source specified when installing app"
-msgstr ""
+msgstr "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής"
#: private/installer.php:70
msgid "No href specified when installing app from http"
-msgstr ""
+msgstr "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http "
#: private/installer.php:75
msgid "No path specified when installing app from local file"
-msgstr ""
+msgstr "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο"
#: private/installer.php:89
#, php-format
msgid "Archives of type %s are not supported"
-msgstr ""
+msgstr "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται"
#: private/installer.php:103
msgid "Failed to open archive when installing app"
-msgstr ""
+msgstr "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής"
#: private/installer.php:125
msgid "App does not provide an info.xml file"
-msgstr ""
+msgstr "Η εφαρμογή δεν παρέχει αρχείο info.xml"
#: private/installer.php:131
msgid "App can't be installed because of not allowed code in the App"
-msgstr ""
+msgstr "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή"
#: private/installer.php:140
msgid ""
"App can't be installed because it is not compatible with this version of "
"ownCloud"
-msgstr ""
+msgstr "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση ownCloud"
#: private/installer.php:146
msgid ""
@@ -138,16 +139,16 @@ msgstr ""
msgid ""
"App can't be installed because the version in info.xml/version is not the "
"same as the version reported from the app store"
-msgstr ""
+msgstr "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή η έκδοση στο info.xml/version δεν είναι η ίδια με την έκδοση που αναφέρεται στο κατάστημα εφαρμογών"
#: private/installer.php:169
msgid "App directory already exists"
-msgstr ""
+msgstr "Ο κατάλογος εφαρμογών υπάρχει ήδη"
#: private/installer.php:182
#, php-format
msgid "Can't create app folder. Please fix permissions. %s"
-msgstr ""
+msgstr "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s"
#: private/json.php:28
msgid "Application is not enabled"
@@ -173,17 +174,17 @@ msgstr "Κείμενο"
msgid "Images"
msgstr "Εικόνες"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s εισάγετε το όνομα της βάσης δεδομένων."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων"
@@ -204,11 +205,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Μη έγκυρος χρήστης και/ή συνθηματικό της MySQL"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +217,10 @@ msgid "DB Error: \"%s\""
msgstr "Σφάλμα Βάσης Δεδομένων: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +253,7 @@ msgstr "Αδυναμία σύνδεσης Oracle"
msgid "Oracle username and/or password not valid"
msgstr "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s"
@@ -299,7 +300,7 @@ msgstr[1] "%n λεπτά πριν"
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
-msgstr[1] ""
+msgstr[1] "%n ώρες πριν"
#: private/template/functions.php:133
msgid "today"
@@ -313,7 +314,7 @@ msgstr "χτες"
msgid "%n day go"
msgid_plural "%n days ago"
msgstr[0] ""
-msgstr[1] ""
+msgstr[1] "%n ημέρες πριν"
#: private/template/functions.php:138
msgid "last month"
@@ -323,7 +324,7 @@ msgstr "τελευταίο μήνα"
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
-msgstr[1] ""
+msgstr[1] "%n μήνες πριν"
#: private/template/functions.php:141
msgid "last year"
@@ -332,7 +333,3 @@ msgstr "τελευταίο χρόνο"
#: private/template/functions.php:142
msgid "years ago"
msgstr "χρόνια πριν"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Προκλήθηκε από:"
diff --git a/l10n/el/settings.po b/l10n/el/settings.po
index d711909a2e6..84b51f57097 100644
--- a/l10n/el/settings.po
+++ b/l10n/el/settings.po
@@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-04 18:12-0500\n"
-"PO-Revision-Date: 2013-12-04 23:13+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 20:50+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -205,19 +205,19 @@ msgstr "Διαγραφή"
msgid "add group"
msgstr "προσθήκη ομάδας"
-#: js/users.js:451
+#: js/users.js:454
msgid "A valid username must be provided"
msgstr "Πρέπει να δοθεί έγκυρο όνομα χρήστη"
-#: js/users.js:452 js/users.js:458 js/users.js:473
+#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr "Σφάλμα δημιουργίας χρήστη"
-#: js/users.js:457
+#: js/users.js:460
msgid "A valid password must be provided"
msgstr "Πρέπει να δοθεί έγκυρο συνθηματικό"
-#: js/users.js:481
+#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Προειδοποίηση: Ο μητρικός κατάλογος του χρήστη \"{user}\" υπάρχει ήδη"
@@ -254,7 +254,7 @@ msgstr "Προειδοποίηση Ασφαλείας"
msgid ""
"You are accessing %s via HTTP. We strongly suggest you configure your server"
" to require using HTTPS instead."
-msgstr ""
+msgstr "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού."
#: templates/admin.php:39
msgid ""
@@ -292,14 +292,14 @@ msgstr "Η PHP ενοτητα 'fileinfo' λειπει. Σας συνιστούμ
#: templates/admin.php:79
msgid "Your PHP version is outdated"
-msgstr ""
+msgstr "Η έκδοση PHP είναι απαρχαιωμένη"
#: templates/admin.php:82
msgid ""
"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
"newer because older versions are known to be broken. It is possible that "
"this installation is not working correctly."
-msgstr ""
+msgstr "Η έκδοση PHP είναι απαρχαιωμένη. Συνιστούμε ανεπιφύλακτα να ενημερώσετε στην 5.3.8 ή νεώτερη καθώς παλαιότερες εκδόσεις είναι γνωστό πως περιέχουν σφάλματα. Είναι πιθανόν ότι αυτή η εγκατάσταση δεν λειτουργεί σωστά."
#: templates/admin.php:93
msgid "Locale not working"
@@ -575,7 +575,7 @@ msgstr "Είτε png ή jpg. Ιδανικά τετράγωνη αλλά θα ε
#: templates/personal.php:97
msgid "Your avatar is provided by your original account."
-msgstr ""
+msgstr "Το άβατάρ σας παρέχεται από τον αρχικό σας λογαριασμό."
#: templates/personal.php:101
msgid "Abort"
@@ -610,7 +610,7 @@ msgstr "Κρυπτογράφηση"
#: templates/personal.php:152
msgid "The encryption app is no longer enabled, please decrypt all your files"
-msgstr ""
+msgstr "Η εφαρμογή κρυπτογράφησης δεν είναι πλέον ενεργοποιημένη, παρακαλώ αποκρυπτογραφήστε όλα τα αρχεία σας"
#: templates/personal.php:158
msgid "Log-in password"
diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po
index a6940fccaf3..636f833c270 100644
--- a/l10n/el/user_ldap.po
+++ b/l10n/el/user_ldap.po
@@ -3,14 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Marios Bekatoros <>, 2013
# vkehayas , 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
-"Last-Translator: I Robot \n"
+"POT-Creation-Date: 2014-01-07 01:55-0500\n"
+"PO-Revision-Date: 2014-01-06 20:50+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,33 +27,33 @@ msgstr "Αποτυχία εκκαθάρισης των αντιστοιχιών.
msgid "Failed to delete the server configuration"
msgstr "Αποτυχία διαγραφής ρυθμίσεων διακομιστή"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
-msgstr ""
+msgstr "Η διαμόρφωση είναι άκυρη. Παρακαλώ ελέγξτε τα αρχεία σφαλμάτων για περαιτέρω λεπτομέρειες."
#: ajax/wizard.php:32
msgid "No action specified"
-msgstr ""
+msgstr "Καμμία εντολή δεν προσδιορίστηκε"
#: ajax/wizard.php:38
msgid "No configuration specified"
-msgstr ""
+msgstr "Καμμία διαμόρφωση δεν προσδιορίστηκε"
#: ajax/wizard.php:81
msgid "No data specified"
-msgstr ""
+msgstr "Δεν προσδιορίστηκαν δεδομένα"
#: ajax/wizard.php:89
#, php-format
@@ -87,43 +88,43 @@ msgstr "Επιτυχία"
msgid "Error"
msgstr "Σφάλμα"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
-msgstr ""
+msgstr "Η διαμόρφωση είναι εντάξει"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
-msgstr ""
+msgstr "Η διαμόρφωση είναι λανθασμένη"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
-msgstr ""
+msgstr "Η διαμόρφωση είναι ελλιπής"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Επιλέξτε ομάδες"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
-msgstr ""
+msgstr "Επιλογή κλάσης αντικειμένων"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
-msgstr ""
+msgstr "Επιλογή χαρακτηριστικών"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Επιτυχημένη δοκιμαστική σύνδεση"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Αποτυχημένη δοκιμαστική σύνδεσης."
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Επιβεβαίωση Διαγραφής"
@@ -131,23 +132,23 @@ msgstr "Επιβεβαίωση Διαγραφής"
#, php-format
msgid "%s group found"
msgid_plural "%s groups found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s ομάδα βρέθηκε"
+msgstr[1] "%s ομάδες βρέθηκαν"
#: lib/wizard.php:122
#, php-format
msgid "%s user found"
msgid_plural "%s users found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s χρήστης βρέθηκε"
+msgstr[1] "%s χρήστες βρέθηκαν"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
-msgstr ""
+msgstr "Άκυρος εξυπηρετητής"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
-msgstr ""
+msgstr "Αδυναμία εύρεσης επιθυμητου χαρακτηριστικού"
#: templates/part.settingcontrols.php:2
msgid "Save"
@@ -164,62 +165,62 @@ msgstr "Βοήθεια"
#: templates/part.wizard-groupfilter.php:4
#, php-format
msgid "Limit the access to %s to groups meeting this criteria:"
-msgstr ""
+msgstr "Περιορισμός πρόσβασης %s σε ομάδες που ταιριάζουν αυτά τα κριτήρια:"
#: templates/part.wizard-groupfilter.php:8
#: templates/part.wizard-userfilter.php:8
msgid "only those object classes:"
-msgstr ""
+msgstr "μόνο αυτές οι κλάσεις αντικειμένων:"
#: templates/part.wizard-groupfilter.php:17
#: templates/part.wizard-userfilter.php:17
msgid "only from those groups:"
-msgstr ""
+msgstr "μόνο από αυτές τις ομάδες:"
#: templates/part.wizard-groupfilter.php:25
#: templates/part.wizard-loginfilter.php:32
#: templates/part.wizard-userfilter.php:25
msgid "Edit raw filter instead"
-msgstr ""
+msgstr "Επεξεργασία πρωτογενούς φίλτρου αντί αυτού"
#: templates/part.wizard-groupfilter.php:30
#: templates/part.wizard-loginfilter.php:37
#: templates/part.wizard-userfilter.php:30
msgid "Raw LDAP filter"
-msgstr ""
+msgstr "Πρωτογενές φίλτρο "
#: templates/part.wizard-groupfilter.php:31
#, php-format
msgid ""
"The filter specifies which LDAP groups shall have access to the %s instance."
-msgstr ""
+msgstr "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s."
#: templates/part.wizard-groupfilter.php:38
msgid "groups found"
-msgstr ""
+msgstr "ομάδες βρέθηκαν"
#: templates/part.wizard-loginfilter.php:4
msgid "What attribute shall be used as login name:"
-msgstr ""
+msgstr "Ποια ιδιότητα θα χρησιμοποιηθεί ως όνομα σύνδεσης:"
#: templates/part.wizard-loginfilter.php:8
msgid "LDAP Username:"
-msgstr ""
+msgstr "Όνομα χρήστη LDAP:"
#: templates/part.wizard-loginfilter.php:16
msgid "LDAP Email Address:"
-msgstr ""
+msgstr "Διεύθυνση ηλ. ταχυδρομείου LDAP:"
#: templates/part.wizard-loginfilter.php:24
msgid "Other Attributes:"
-msgstr ""
+msgstr "Άλλες Ιδιότητες:"
#: templates/part.wizard-loginfilter.php:38
#, php-format
msgid ""
"Defines the filter to apply, when login is attempted. %%uid replaces the "
"username in the login action. Example: \"uid=%%uid\""
-msgstr ""
+msgstr "Ορίζει το φίλτρο που θα εφαρμοστεί, όταν επιχειριθεί σύνδεση. Το %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. Παράδειγμα: \"uid=%%uid\""
#: templates/part.wizard-server.php:18
msgid "Add Server Configuration"
@@ -268,17 +269,17 @@ msgstr "Μπορείτε να καθορίσετε το Base DN για χρήσ
#: templates/part.wizard-userfilter.php:4
#, php-format
msgid "Limit the access to %s to users meeting this criteria:"
-msgstr ""
+msgstr "Περιορισμός πρόσβασης %s σε χρήστες που ταιριάζουν αυτά τα κριτήρια:"
#: templates/part.wizard-userfilter.php:31
#, php-format
msgid ""
"The filter specifies which LDAP users shall have access to the %s instance."
-msgstr ""
+msgstr "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s."
#: templates/part.wizard-userfilter.php:38
msgid "users found"
-msgstr ""
+msgstr "χρήστες βρέθηκαν"
#: templates/part.wizardcontrols.php:5
msgid "Back"
@@ -348,7 +349,7 @@ msgstr "Απενεργοποίηση επικύρωσης πιστοποιητι
msgid ""
"Not recommended, use it for testing only! If connection only works with this"
" option, import the LDAP server's SSL certificate in your %s server."
-msgstr ""
+msgstr "Δεν προτείνεται, χρησιμοποιείστε το μόνο για δοκιμές! Εάν η σύνδεση λειτουργεί μόνο με αυτή την επιλογή, εισάγετε το πιστοποιητικό SSL του διακομιστή LDAP στο %s διακομιστή σας."
#: templates/settings.php:28
msgid "Cache Time-To-Live"
@@ -368,7 +369,7 @@ msgstr "Πεδίο Ονόματος Χρήστη"
#: templates/settings.php:32
msgid "The LDAP attribute to use to generate the user's display name."
-msgstr ""
+msgstr "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος χρήστη."
#: templates/settings.php:33
msgid "Base User Tree"
@@ -392,7 +393,7 @@ msgstr "Group Display Name Field"
#: templates/settings.php:35
msgid "The LDAP attribute to use to generate the groups's display name."
-msgstr ""
+msgstr "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος ομάδας."
#: templates/settings.php:36
msgid "Base Group Tree"
@@ -458,7 +459,7 @@ msgid ""
"behavior as before ownCloud 5 enter the user display name attribute in the "
"following field. Leave it empty for default behavior. Changes will have "
"effect only on newly mapped (added) LDAP users."
-msgstr ""
+msgstr "Εξ ορισμού, το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το χαρακτηριστικό UUID. Αυτό βεβαιώνει ότι το όνομα χρήστη είναι μοναδικό και δεν χρειάζεται μετατροπή χαρακτήρων. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό ότι μόνο αυτοί οι χαρακτήρες επιτρέπονται: [ a-zA-Z0-9_.@- ]. Οι άλλοι χαρακτήρες αντικαθίστανται με τους αντίστοιχους ASCII ή απλά παραλείπονται. Στις συγκρούσεις ένας αριθμός θα προστεθεί / αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον αρχικό φάκελο χρήστη. Αποτελεί επίσης μέρος των απομακρυσμένων διευθύνσεων URL, για παράδειγμα για όλες τις υπηρεσίες *DAV. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Για να επιτευχθεί μια παρόμοια συμπεριφορά όπως πριν το ownCloud 5 εισάγετε το χαρακτηριστικό του προβαλλόμενου ονόματος χρήστη στο παρακάτω πεδίο. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε νεώτερους (προστιθέμενους) χρήστες LDAP."
#: templates/settings.php:53
msgid "Internal Username Attribute:"
@@ -466,7 +467,7 @@ msgstr "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:"
#: templates/settings.php:54
msgid "Override UUID detection"
-msgstr ""
+msgstr "Παράκαμψη ανίχνευσης UUID"
#: templates/settings.php:55
msgid ""
@@ -477,19 +478,19 @@ msgid ""
"You must make sure that the attribute of your choice can be fetched for both"
" users and groups and it is unique. Leave it empty for default behavior. "
"Changes will have effect only on newly mapped (added) LDAP users and groups."
-msgstr ""
+msgstr "Από προεπιλογή, το χαρακτηριστικό UUID εντοπίζεται αυτόματα. Το χαρακτηριστικό UUID χρησιμοποιείται για την αναγνώριση χωρίς αμφιβολία χρηστών και ομάδων LDAP. Επίσης, το εσωτερικό όνομα χρήστη θα δημιουργηθεί με βάση το UUID, εφόσον δεν ορίζεται διαφορετικά ανωτέρω. Μπορείτε να παρακάμψετε τη ρύθμιση και να ορίσετε ένα χαρακτηριστικό της επιλογής σας. Θα πρέπει να βεβαιωθείτε ότι το χαρακτηριστικό της επιλογής σας μπορεί να ληφθεί για τους χρήστες και τις ομάδες και ότι είναι μοναδικό. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε πρόσφατα αντιστοιχισμένους (προστιθέμενους) χρήστες και ομάδες LDAP."
#: templates/settings.php:56
msgid "UUID Attribute for Users:"
-msgstr ""
+msgstr "Χαρακτηριστικό UUID για Χρήστες:"
#: templates/settings.php:57
msgid "UUID Attribute for Groups:"
-msgstr ""
+msgstr "Χαρακτηριστικό UUID για Ομάδες:"
#: templates/settings.php:58
msgid "Username-LDAP User Mapping"
-msgstr ""
+msgstr "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP"
#: templates/settings.php:59
msgid ""
@@ -503,12 +504,12 @@ msgid ""
" is not configuration sensitive, it affects all LDAP configurations! Never "
"clear the mappings in a production environment, only in a testing or "
"experimental stage."
-msgstr ""
+msgstr "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και την ανάθεση (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωρίστουν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκε αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα βρεθούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει κατάλοιπα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο."
#: templates/settings.php:60
msgid "Clear Username-LDAP User Mapping"
-msgstr ""
+msgstr "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη"
#: templates/settings.php:60
msgid "Clear Groupname-LDAP Group Mapping"
-msgstr ""
+msgstr "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας"
diff --git a/l10n/el/user_webdavauth.po b/l10n/el/user_webdavauth.po
index 85544e07257..ce04dbf8a6c 100644
--- a/l10n/el/user_webdavauth.po
+++ b/l10n/el/user_webdavauth.po
@@ -9,13 +9,14 @@
# Efstathios Iosifidis , 2012-2013
# Konstantinos Tzanidis , 2012
# Marios Bekatoros <>, 2013
+# vkehayas , 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
-"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-08-07 08:59-0400\n"
-"PO-Revision-Date: 2013-08-06 08:10+0000\n"
-"Last-Translator: Efstathios Iosifidis \n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2014-01-04 01:55-0500\n"
+"PO-Revision-Date: 2014-01-02 18:00+0000\n"
+"Last-Translator: vkehayas \n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,7 +26,7 @@ msgstr ""
#: templates/settings.php:3
msgid "WebDAV Authentication"
-msgstr "Αυθεντικοποίηση μέσω WebDAV "
+msgstr "Πιστοποίηση μέσω WebDAV "
#: templates/settings.php:4
msgid "Address: "
diff --git a/l10n/en@pirate/core.po b/l10n/en@pirate/core.po
index e5df4a38829..c0c1a7e88f5 100644
--- a/l10n/en@pirate/core.po
+++ b/l10n/en@pirate/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-07 22:26-0500\n"
+"PO-Revision-Date: 2013-12-08 03:26+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
"MIME-Version: 1.0\n"
@@ -278,7 +278,7 @@ msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
@@ -314,7 +314,7 @@ msgstr ""
msgid "Password protect"
msgstr ""
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Passcode"
@@ -390,7 +390,7 @@ msgstr ""
msgid "share"
msgstr ""
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr ""
@@ -481,8 +481,8 @@ msgstr ""
msgid "You will receive a link to reset your password via Email."
msgstr ""
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr ""
@@ -526,7 +526,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
@@ -593,101 +593,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr ""
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr ""
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr ""
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr ""
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr ""
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr ""
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr ""
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
@@ -713,19 +720,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr ""
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr ""
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
diff --git a/l10n/en@pirate/files.po b/l10n/en@pirate/files.po
index fbab139624e..531771612fb 100644
--- a/l10n/en@pirate/files.po
+++ b/l10n/en@pirate/files.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-29 19:08+0000\n"
+"POT-Creation-Date: 2013-12-19 01:55-0500\n"
+"PO-Revision-Date: 2013-12-19 06:55+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
"MIME-Version: 1.0\n"
@@ -46,12 +46,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -171,6 +176,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr ""
@@ -377,29 +386,25 @@ msgstr ""
msgid "Download"
msgstr "Download"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr ""
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr ""
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr ""
diff --git a/l10n/en@pirate/lib.po b/l10n/en@pirate/lib.po
index d5acd01a2e2..5d487df1422 100644
--- a/l10n/en@pirate/lib.po
+++ b/l10n/en@pirate/lib.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-17 06:45-0500\n"
+"PO-Revision-Date: 2013-12-17 11:45+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
"MIME-Version: 1.0\n"
@@ -53,15 +53,15 @@ msgstr ""
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "web services under your control"
@@ -70,23 +70,23 @@ msgstr "web services under your control"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -172,17 +172,17 @@ msgstr ""
msgid "Images"
msgstr ""
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
@@ -203,11 +203,11 @@ msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -215,10 +215,10 @@ msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -251,7 +251,7 @@ msgstr ""
msgid "Oracle username and/or password not valid"
msgstr ""
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -331,7 +331,3 @@ msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/en_GB/core.po b/l10n/en_GB/core.po
index 42f49b709d6..5dc93a2d23f 100644
--- a/l10n/en_GB/core.po
+++ b/l10n/en_GB/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-29 14:08-0500\n"
-"PO-Revision-Date: 2013-11-28 14:20+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: mnestis \n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n"
"MIME-Version: 1.0\n"
@@ -149,59 +149,59 @@ msgstr "November"
msgid "December"
msgstr "December"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Settings"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "seconds ago"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n minute ago"
msgstr[1] "%n minutes ago"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "%n hour ago"
msgstr[1] "%n hours ago"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "today"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "yesterday"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "%n day ago"
msgstr[1] "%n days ago"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "last month"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "%n month ago"
msgstr[1] "%n months ago"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "months ago"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "last year"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "years ago"
@@ -278,7 +278,7 @@ msgid "Share"
msgstr "Share"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Error"
@@ -314,7 +314,7 @@ msgstr "Share link"
msgid "Password protect"
msgstr "Password protect"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:38
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Password"
@@ -481,7 +481,7 @@ msgstr "Request failed! Did you make sure your email/username was correct?"
msgid "You will receive a link to reset your password via Email."
msgstr "You will receive a link to reset your password via email."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
#: templates/login.php:31
msgid "Username"
msgstr "Username"
@@ -526,7 +526,7 @@ msgstr "Personal"
msgid "Users"
msgstr "Users"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -593,101 +593,108 @@ msgstr "The share will expire on %s."
msgid "Cheers!"
msgstr "Cheers!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Security Warning"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Please update your PHP installation to use %s securely."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "No secure random number generator is available, please enable the PHP OpenSSL extension."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Your data directory and files are probably accessible from the internet because the .htaccess file does not work."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "For information how to properly configure your server, please see the documentation."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Create an admin account"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Advanced"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Data folder"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Configure the database"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "will be used"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Database user"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Database password"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Database name"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Database tablespace"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Database host"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Finish setup"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Finishing …"
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "This application requires JavaScript to be enabled for correct operation. Please enable JavaScript and re-load this interface."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s is available. Get more information on how to update."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Log out"
diff --git a/l10n/en_GB/files.po b/l10n/en_GB/files.po
index 40df6b8e5a6..259e932c171 100644
--- a/l10n/en_GB/files.po
+++ b/l10n/en_GB/files.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-22 01:55-0500\n"
+"PO-Revision-Date: 2013-12-21 14:50+0000\n"
"Last-Translator: mnestis \n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n"
"MIME-Version: 1.0\n"
@@ -47,12 +47,17 @@ msgstr "The name %s is already used in the folder %s. Please choose a different
msgid "Not a valid source"
msgstr "Not a valid source"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "Server is not allowed to open URLs, please check the server configuration"
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Error whilst downloading %s to %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Error when creating the file"
@@ -172,6 +177,10 @@ msgstr "Could not create file"
msgid "Could not create folder"
msgstr "Could not create folder"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Error fetching URL"
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Share"
@@ -378,29 +387,25 @@ msgstr "Nothing in here. Upload something!"
msgid "Download"
msgstr "Download"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Unshare"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Delete"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Upload too large"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "The files you are trying to upload exceed the maximum size for file uploads on this server."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Files are being scanned, please wait."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Current scanning"
diff --git a/l10n/en_GB/lib.po b/l10n/en_GB/lib.po
index 3857ebb302a..94418cfa7d9 100644
--- a/l10n/en_GB/lib.po
+++ b/l10n/en_GB/lib.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 21:06-0500\n"
-"PO-Revision-Date: 2013-11-21 15:22+0000\n"
-"Last-Translator: mnestis \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -54,15 +54,15 @@ msgstr "Admin"
msgid "Failed to upgrade \"%s\"."
msgstr "Failed to upgrade \"%s\"."
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Unknown filetype"
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Invalid image"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "web services under your control"
@@ -71,23 +71,23 @@ msgstr "web services under your control"
msgid "cannot open \"%s\""
msgstr "cannot open \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "ZIP download is turned off."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Files need to be downloaded one by one."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Back to Files"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Selected files too large to generate zip file."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -173,17 +173,17 @@ msgstr "Text"
msgid "Images"
msgstr "Images"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s enter the database username."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s enter the database name."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s you may not use dots in the database name"
@@ -204,11 +204,11 @@ msgid "MySQL username and/or password not valid"
msgstr "MySQL username and/or password not valid"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +216,10 @@ msgid "DB Error: \"%s\""
msgstr "DB Error: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +252,7 @@ msgstr "Oracle connection could not be established"
msgid "Oracle username and/or password not valid"
msgstr "Oracle username and/or password not valid"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Offending command was: \"%s\", name: %s, password: %s"
@@ -332,7 +332,3 @@ msgstr "last year"
#: private/template/functions.php:142
msgid "years ago"
msgstr "years ago"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Caused by:"
diff --git a/l10n/en_GB/user_ldap.po b/l10n/en_GB/user_ldap.po
index 7dee8928aae..b41d0ae0216 100644
--- a/l10n/en_GB/user_ldap.po
+++ b/l10n/en_GB/user_ldap.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n"
"MIME-Version: 1.0\n"
@@ -26,17 +26,17 @@ msgstr "Failed to clear the mappings."
msgid "Failed to delete the server configuration"
msgstr "Failed to delete the server configuration"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "The configuration is valid and the connection could be established!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "The configuration is valid, but the Bind failed. Please check the server settings and credentials."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -87,43 +87,43 @@ msgstr "Success"
msgid "Error"
msgstr "Error"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Configuration OK"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Configuration incorrect"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Configuration incomplete"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Select groups"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Select object classes"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Select attributes"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Connection test succeeded"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Connection test failed"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "Do you really want to delete the current Server Configuration?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Confirm Deletion"
@@ -141,11 +141,11 @@ msgid_plural "%s users found"
msgstr[0] "%s user found"
msgstr[1] "%s users found"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Invalid Host"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "Could not find the desired feature"
diff --git a/l10n/eo/core.po b/l10n/eo/core.po
index 3b448a7dbdf..66aa1f14f4b 100644
--- a/l10n/eo/core.po
+++ b/l10n/eo/core.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -150,59 +150,59 @@ msgstr "Novembro"
msgid "December"
msgstr "Decembro"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Agordo"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "sekundoj antaŭe"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "hodiaŭ"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "hieraŭ"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "lastamonate"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "monatoj antaŭe"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "lastajare"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "jaroj antaŭe"
@@ -279,7 +279,7 @@ msgid "Share"
msgstr "Kunhavigi"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Eraro"
@@ -315,7 +315,7 @@ msgstr ""
msgid "Password protect"
msgstr "Protekti per pasvorto"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Pasvorto"
@@ -391,7 +391,7 @@ msgstr "forigi"
msgid "share"
msgstr "kunhavigi"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Protektita per pasvorto"
@@ -482,8 +482,8 @@ msgstr "La peto malsukcesis! Ĉu vi certiĝis, ke via retpoŝto/uzantonomo
msgid "You will receive a link to reset your password via Email."
msgstr "Vi ricevos ligilon retpoŝte por rekomencigi vian pasvorton."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Uzantonomo"
@@ -527,7 +527,7 @@ msgstr "Persona"
msgid "Users"
msgstr "Uzantoj"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Aplikaĵoj"
@@ -594,101 +594,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Sekureca averto"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Via PHP versio estas sendefenda je la NULL bajto atako (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "Ne disponeblas sekura generilo de hazardaj numeroj; bonvolu kapabligi la OpenSSL-kromaĵon por PHP."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr ""
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Krei administran konton"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Progresinta"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Datuma dosierujo"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Agordi la datumbazon"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "estos uzata"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Datumbaza uzanto"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Datumbaza pasvorto"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Datumbaza nomo"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Datumbaza tabelospaco"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Datumbaza gastigo"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Fini la instalon"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s haveblas. Ekhavi pli da informo pri kiel ĝisdatigi."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Elsaluti"
@@ -714,19 +721,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "Ĉu vi perdis vian pasvorton?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "memori"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Ensaluti"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Alternativaj ensalutoj"
diff --git a/l10n/eo/files.po b/l10n/eo/files.po
index 8f870a6a301..cb3d5db5598 100644
--- a/l10n/eo/files.po
+++ b/l10n/eo/files.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -47,12 +47,17 @@ msgstr "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon
msgid "Not a valid source"
msgstr "Nevalida fonto"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Eraris elŝuto de %s al %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Eraris la kreo de la dosiero"
@@ -172,6 +177,10 @@ msgstr "Ne povis kreiĝi dosiero"
msgid "Could not create folder"
msgstr "Ne povis kreiĝi dosierujo"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Kunhavigi"
@@ -378,29 +387,25 @@ msgstr "Nenio estas ĉi tie. Alŝutu ion!"
msgid "Download"
msgstr "Elŝuti"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Malkunhavigi"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Forigi"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Alŝuto tro larĝa"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Dosieroj estas skanataj, bonvolu atendi."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Nuna skano"
diff --git a/l10n/eo/lib.po b/l10n/eo/lib.po
index dc44de6f28a..cceb200d023 100644
--- a/l10n/eo/lib.po
+++ b/l10n/eo/lib.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -54,15 +54,15 @@ msgstr "Administranto"
msgid "Failed to upgrade \"%s\"."
msgstr ""
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "TTT-servoj regataj de vi"
@@ -71,23 +71,23 @@ msgstr "TTT-servoj regataj de vi"
msgid "cannot open \"%s\""
msgstr ""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "ZIP-elŝuto estas malkapabligita."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Dosieroj devas elŝutiĝi unuope."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Reen al la dosieroj"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "La elektitaj dosieroj tro grandas por genero de ZIP-dosiero."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -173,17 +173,17 @@ msgstr "Teksto"
msgid "Images"
msgstr "Bildoj"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s enigu la uzantonomon de la datumbazo."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s enigu la nomon de la datumbazo."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s vi ne povas uzi punktojn en la nomo de la datumbazo"
@@ -204,11 +204,11 @@ msgid "MySQL username and/or password not valid"
msgstr "La uzantonomo de MySQL aŭ la pasvorto ne validas"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +216,10 @@ msgid "DB Error: \"%s\""
msgstr "Datumbaza eraro: “%s”"
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +252,7 @@ msgstr "Konekto al Oracle ne povas stariĝi"
msgid "Oracle username and/or password not valid"
msgstr "La uzantonomo de Oracle aŭ la pasvorto ne validas"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
@@ -332,7 +332,3 @@ msgstr "lastajare"
#: private/template/functions.php:142
msgid "years ago"
msgstr "jaroj antaŭe"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr ""
diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po
index 4b332a0762d..8ba0c5153c1 100644
--- a/l10n/eo/user_ldap.po
+++ b/l10n/eo/user_ldap.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -26,17 +26,17 @@ msgstr ""
msgid "Failed to delete the server configuration"
msgstr "Malsukcesis forigo de la agordo de servilo"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -87,43 +87,43 @@ msgstr "Sukceso"
msgid "Error"
msgstr "Eraro"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Elekti grupojn"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Elekti objektoklasojn"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Elekti atribuojn"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "Provo de konekto sukcesis"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Provo de konekto malsukcesis"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Konfirmi forigon"
@@ -141,11 +141,11 @@ msgid_plural "%s users found"
msgstr[0] "%s uzanto troviĝis"
msgstr[1] "%s uzanto troviĝis"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Nevalida gastigo"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/es/core.po b/l10n/es/core.po
index a7d9eaa42c5..ed95b47d7f1 100644
--- a/l10n/es/core.po
+++ b/l10n/es/core.po
@@ -19,9 +19,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-26 21:10+0000\n"
-"Last-Translator: Art O. Pal \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:10+0000\n"
+"Last-Translator: juanman \n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -160,59 +160,59 @@ msgstr "Noviembre"
msgid "December"
msgstr "Diciembre"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Ajustes"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "segundos antes"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Hace %n minuto"
msgstr[1] "Hace %n minutos"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Hace %n hora"
msgstr[1] "Hace %n horas"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "hoy"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "ayer"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Hace %n día"
msgstr[1] "Hace %n días"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "el mes pasado"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Hace %n mes"
msgstr[1] "Hace %n meses"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "meses antes"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "el año pasado"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "años antes"
@@ -289,7 +289,7 @@ msgid "Share"
msgstr "Compartir"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Error"
@@ -325,7 +325,7 @@ msgstr "Enlace compartido"
msgid "Password protect"
msgstr "Protección con contraseña"
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Contraseña"
@@ -401,7 +401,7 @@ msgstr "eliminar"
msgid "share"
msgstr "compartir"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Protegido con contraseña"
@@ -492,8 +492,8 @@ msgstr "La petición ha fallado! ¿Está seguro de que su dirección de cor
msgid "You will receive a link to reset your password via Email."
msgstr "Recibirá un enlace por correo electrónico para restablecer su contraseña"
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Nombre de usuario"
@@ -537,7 +537,7 @@ msgstr "Personal"
msgid "Users"
msgstr "Usuarios"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Aplicaciones"
@@ -604,101 +604,108 @@ msgstr "El objeto dejará de ser compartido el %s."
msgid "Cheers!"
msgstr "¡Saludos!"
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Advertencia de seguridad"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "Su versión de PHP es vulnerable al ataque de Byte NULL (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Por favor, actualice su instalación PHP para usar %s con seguridad."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "No está disponible un generador de números aleatorios seguro, por favor habilite la extensión OpenSSL de PHP."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Sin un generador de números aleatorios seguro, un atacante podría predecir los tokens de restablecimiento de contraseñas y tomar el control de su cuenta."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Su directorio de datos y sus archivos probablemente sean accesibles a través de internet ya que el archivo .htaccess no funciona."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Para información de cómo configurar apropiadamente su servidor, por favor vea la documentación."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Crear una cuenta de administrador"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Avanzado"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Directorio de datos"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Configurar la base de datos"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "se utilizarán"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Usuario de la base de datos"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Contraseña de la base de datos"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Nombre de la base de datos"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Espacio de tablas de la base de datos"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Host de la base de datos"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Completar la instalación"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr "Finalizando..."
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr "Esta aplicación requiere que se habilite JavaScript para su correcta operación. Por favor habilite JavaScript y vuelva a cargar esta interfaz."
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s esta disponible. Obtener mas información de como actualizar."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Salir"
@@ -724,19 +731,19 @@ msgstr "La autenticación a fallado en el servidor."
msgid "Please contact your administrator."
msgstr "Por favor, contacte con el administrador."
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "¿Ha perdido su contraseña?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "recordar"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Entrar"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Inicios de sesión alternativos"
diff --git a/l10n/es/files.po b/l10n/es/files.po
index d7c6ca72087..0cfd42968eb 100644
--- a/l10n/es/files.po
+++ b/l10n/es/files.po
@@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
-"Last-Translator: Raul Fernandez Garcia \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:10+0000\n"
+"Last-Translator: Art O. Pal \n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -55,12 +55,17 @@ msgstr "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno dife
msgid "Not a valid source"
msgstr "No es un origen válido"
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr "El servidor no puede acceder URLs; revise la configuración del servidor."
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr "Error mientras se descargaba %s a %s"
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr "Error al crear el archivo"
@@ -180,6 +185,10 @@ msgstr "No se pudo crear el archivo"
msgid "Could not create folder"
msgstr "No se pudo crear la carpeta"
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr "Error al descargar URL."
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Compartir"
@@ -386,29 +395,25 @@ msgstr "No hay nada aquí. ¡Suba algo!"
msgid "Download"
msgstr "Descargar"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Dejar de compartir"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Eliminar"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "Subida demasido grande"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor."
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Los archivos están siendo escaneados, por favor espere."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Escaneo actual"
diff --git a/l10n/es/lib.po b/l10n/es/lib.po
index cae01947e87..6e80e0b1fe2 100644
--- a/l10n/es/lib.po
+++ b/l10n/es/lib.po
@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-02 17:27-0500\n"
-"PO-Revision-Date: 2013-11-29 22:20+0000\n"
-"Last-Translator: Raul Fernandez Garcia \n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:10+0000\n"
+"Last-Translator: I Robot \n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -75,23 +75,23 @@ msgstr "Servicios web bajo su control"
msgid "cannot open \"%s\""
msgstr "No se puede abrir \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "La descarga en ZIP está desactivada."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Los archivos deben ser descargados uno por uno."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Volver a Archivos"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -177,17 +177,17 @@ msgstr "Texto"
msgid "Images"
msgstr "Imágenes"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s ingresar el usuario de la base de datos."
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s ingresar el nombre de la base de datos"
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s puede utilizar puntos en el nombre de la base de datos"
@@ -208,11 +208,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Usuario y/o contraseña de MySQL no válidos"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -220,10 +220,10 @@ msgid "DB Error: \"%s\""
msgstr "Error BD: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -256,7 +256,7 @@ msgstr "No se pudo establecer la conexión a Oracle"
msgid "Oracle username and/or password not valid"
msgstr "Usuario y/o contraseña de Oracle no válidos"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "Comando infractor: \"%s\", nombre: %s, contraseña: %s"
@@ -336,7 +336,3 @@ msgstr "año pasado"
#: private/template/functions.php:142
msgid "years ago"
msgstr "hace años"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Causado por:"
diff --git a/l10n/es/user_ldap.po b/l10n/es/user_ldap.po
index 5d3a627794e..4f999d4127f 100644
--- a/l10n/es/user_ldap.po
+++ b/l10n/es/user_ldap.po
@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:10+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -32,17 +32,17 @@ msgstr "Ocurrió un fallo al borrar las asignaciones."
msgid "Failed to delete the server configuration"
msgstr "No se pudo borrar la configuración del servidor"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "¡La configuración es válida y la conexión puede establecerse!"
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -93,43 +93,43 @@ msgstr "Éxito"
msgid "Error"
msgstr "Error"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr "Configuración OK"
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr "Configuración Incorrecta"
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr "Configuración incompleta"
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Seleccionar grupos"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr "Seleccionar la clase de objeto"
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr "Seleccionar atributos"
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "La prueba de conexión fue exitosa"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "La prueba de conexión falló"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "¿Realmente desea eliminar la configuración actual del servidor?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Confirmar eliminación"
@@ -147,11 +147,11 @@ msgid_plural "%s users found"
msgstr[0] "Usuario %s encontrado"
msgstr[1] "Usuarios %s encontrados"
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr "Host inválido"
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr "No se puede encontrar la función deseada."
diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po
index 8d0162d6ebc..598b6b7cf18 100644
--- a/l10n/es_AR/core.po
+++ b/l10n/es_AR/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-26 10:45-0500\n"
-"PO-Revision-Date: 2013-11-26 15:45+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
"MIME-Version: 1.0\n"
@@ -149,59 +149,59 @@ msgstr "noviembre"
msgid "December"
msgstr "diciembre"
-#: js/js.js:387
+#: js/js.js:398
msgid "Settings"
msgstr "Configuración"
-#: js/js.js:858
+#: js/js.js:869
msgid "seconds ago"
msgstr "segundos atrás"
-#: js/js.js:859
+#: js/js.js:870
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Hace %n minuto"
msgstr[1] "Hace %n minutos"
-#: js/js.js:860
+#: js/js.js:871
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Hace %n hora"
msgstr[1] "Hace %n horas"
-#: js/js.js:861
+#: js/js.js:872
msgid "today"
msgstr "hoy"
-#: js/js.js:862
+#: js/js.js:873
msgid "yesterday"
msgstr "ayer"
-#: js/js.js:863
+#: js/js.js:874
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Hace %n día"
msgstr[1] "Hace %n días"
-#: js/js.js:864
+#: js/js.js:875
msgid "last month"
msgstr "el mes pasado"
-#: js/js.js:865
+#: js/js.js:876
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Hace %n mes"
msgstr[1] "Hace %n meses"
-#: js/js.js:866
+#: js/js.js:877
msgid "months ago"
msgstr "meses atrás"
-#: js/js.js:867
+#: js/js.js:878
msgid "last year"
msgstr "el año pasado"
-#: js/js.js:868
+#: js/js.js:879
msgid "years ago"
msgstr "años atrás"
@@ -278,7 +278,7 @@ msgid "Share"
msgstr "Compartir"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
-#: js/share.js:719
+#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr "Error"
@@ -314,7 +314,7 @@ msgstr ""
msgid "Password protect"
msgstr "Proteger con contraseña "
-#: js/share.js:224 templates/installation.php:57 templates/login.php:32
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr "Contraseña"
@@ -390,7 +390,7 @@ msgstr "borrar"
msgid "share"
msgstr "compartir"
-#: js/share.js:464 js/share.js:694
+#: js/share.js:694
msgid "Password protected"
msgstr "Protegido por contraseña"
@@ -481,8 +481,8 @@ msgstr "¡Error en el pedido! ¿Estás seguro de que tu dirección de corre
msgid "You will receive a link to reset your password via Email."
msgstr "Vas a recibir un enlace por e-mail para restablecer tu contraseña."
-#: lostpassword/templates/lostpassword.php:21 templates/installation.php:51
-#: templates/login.php:25
+#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
+#: templates/login.php:31
msgid "Username"
msgstr "Nombre de usuario"
@@ -526,7 +526,7 @@ msgstr "Personal"
msgid "Users"
msgstr "Usuarios"
-#: strings.php:7 templates/layout.user.php:110
+#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr "Apps"
@@ -593,101 +593,108 @@ msgstr ""
msgid "Cheers!"
msgstr ""
-#: templates/installation.php:24 templates/installation.php:31
-#: templates/installation.php:38
+#: templates/installation.php:25 templates/installation.php:32
+#: templates/installation.php:39
msgid "Security Warning"
msgstr "Advertencia de seguridad"
-#: templates/installation.php:25
+#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr "La versión de PHP que tenés, es vulnerable al ataque de byte NULL (CVE-2006-7243)"
-#: templates/installation.php:26
+#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr "Por favor, actualizá tu instalación PHP para poder usar %s de manera segura."
-#: templates/installation.php:32
+#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr "No hay disponible ningún generador de números aleatorios seguro. Por favor, habilitá la extensión OpenSSL de PHP."
-#: templates/installation.php:33
+#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr "Sin un generador de números aleatorios seguro un atacante podría predecir las pruebas de reinicio de tu contraseña y tomar control de tu cuenta."
-#: templates/installation.php:39
+#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr "Tu directorio de datos y tus archivos probablemente son accesibles a través de internet, ya que el archivo .htaccess no está funcionando."
-#: templates/installation.php:41
+#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the documentation."
msgstr "Para información sobre cómo configurar apropiadamente tu servidor, por favor mirá la documentación."
-#: templates/installation.php:47
+#: templates/installation.php:48
msgid "Create an admin account"
msgstr "Crear una cuenta de administrador"
-#: templates/installation.php:66
+#: templates/installation.php:67
msgid "Advanced"
msgstr "Avanzado"
-#: templates/installation.php:73
+#: templates/installation.php:74
msgid "Data folder"
msgstr "Directorio de almacenamiento"
-#: templates/installation.php:85
+#: templates/installation.php:86
msgid "Configure the database"
msgstr "Configurar la base de datos"
-#: templates/installation.php:90 templates/installation.php:102
-#: templates/installation.php:113 templates/installation.php:124
-#: templates/installation.php:136
+#: templates/installation.php:91 templates/installation.php:103
+#: templates/installation.php:114 templates/installation.php:125
+#: templates/installation.php:137
msgid "will be used"
msgstr "se usarán"
-#: templates/installation.php:148
+#: templates/installation.php:149
msgid "Database user"
msgstr "Usuario de la base de datos"
-#: templates/installation.php:155
+#: templates/installation.php:156
msgid "Database password"
msgstr "Contraseña de la base de datos"
-#: templates/installation.php:160
+#: templates/installation.php:161
msgid "Database name"
msgstr "Nombre de la base de datos"
-#: templates/installation.php:168
+#: templates/installation.php:169
msgid "Database tablespace"
msgstr "Espacio de tablas de la base de datos"
-#: templates/installation.php:175
+#: templates/installation.php:176
msgid "Database host"
msgstr "Huésped de la base de datos"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finish setup"
msgstr "Completar la instalación"
-#: templates/installation.php:184
+#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
-#: templates/layout.user.php:43
+#: templates/layout.user.php:40
+msgid ""
+"This application requires JavaScript to be enabled for correct operation. "
+"Please enable "
+"JavaScript and re-load this interface."
+msgstr ""
+
+#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr "%s está disponible. Obtené más información sobre cómo actualizar."
-#: templates/layout.user.php:71 templates/singleuser.user.php:8
+#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr "Cerrar la sesión"
@@ -713,19 +720,19 @@ msgstr ""
msgid "Please contact your administrator."
msgstr ""
-#: templates/login.php:38
+#: templates/login.php:44
msgid "Lost your password?"
msgstr "¿Perdiste tu contraseña?"
-#: templates/login.php:43
+#: templates/login.php:49
msgid "remember"
msgstr "recordame"
-#: templates/login.php:46
+#: templates/login.php:52
msgid "Log in"
msgstr "Iniciar sesión"
-#: templates/login.php:52
+#: templates/login.php:58
msgid "Alternative Logins"
msgstr "Nombre alternativos de usuarios"
diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po
index eeabfd7ab94..85f0e087448 100644
--- a/l10n/es_AR/files.po
+++ b/l10n/es_AR/files.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-12-05 22:23-0500\n"
-"PO-Revision-Date: 2013-12-06 01:30+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
"MIME-Version: 1.0\n"
@@ -50,12 +50,17 @@ msgstr ""
msgid "Not a valid source"
msgstr ""
-#: ajax/newfile.php:94
+#: ajax/newfile.php:86
+msgid ""
+"Server is not allowed to open URLs, please check the server configuration"
+msgstr ""
+
+#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
-#: ajax/newfile.php:128
+#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
@@ -175,6 +180,10 @@ msgstr ""
msgid "Could not create folder"
msgstr ""
+#: js/file-upload.js:661
+msgid "Error fetching URL"
+msgstr ""
+
#: js/fileactions.js:125
msgid "Share"
msgstr "Compartir"
@@ -381,29 +390,25 @@ msgstr "No hay nada. ¡Subí contenido!"
msgid "Download"
msgstr "Descargar"
-#: templates/index.php:75 templates/index.php:76
-msgid "Unshare"
-msgstr "Dejar de compartir"
-
-#: templates/index.php:81 templates/index.php:82
+#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr "Borrar"
-#: templates/index.php:95
+#: templates/index.php:86
msgid "Upload too large"
msgstr "El tamaño del archivo que querés subir es demasiado grande"
-#: templates/index.php:97
+#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Los archivos que intentás subir sobrepasan el tamaño máximo "
-#: templates/index.php:102
+#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr "Se están escaneando los archivos, por favor esperá."
-#: templates/index.php:105
+#: templates/index.php:96
msgid "Current scanning"
msgstr "Escaneo actual"
diff --git a/l10n/es_AR/lib.po b/l10n/es_AR/lib.po
index 9f5fcc9a19d..6fa78e41c13 100644
--- a/l10n/es_AR/lib.po
+++ b/l10n/es_AR/lib.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-21 10:01-0500\n"
-"PO-Revision-Date: 2013-11-21 15:01+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
"MIME-Version: 1.0\n"
@@ -54,15 +54,15 @@ msgstr "Administración"
msgid "Failed to upgrade \"%s\"."
msgstr "No se pudo actualizar \"%s\"."
-#: private/avatar.php:60
+#: private/avatar.php:66
msgid "Unknown filetype"
msgstr "Tipo de archivo desconocido"
-#: private/avatar.php:65
+#: private/avatar.php:71
msgid "Invalid image"
msgstr "Imagen inválida"
-#: private/defaults.php:36
+#: private/defaults.php:34
msgid "web services under your control"
msgstr "servicios web sobre los que tenés control"
@@ -71,23 +71,23 @@ msgstr "servicios web sobre los que tenés control"
msgid "cannot open \"%s\""
msgstr "no se puede abrir \"%s\""
-#: private/files.php:228
+#: private/files.php:231
msgid "ZIP download is turned off."
msgstr "La descarga en ZIP está desactivada."
-#: private/files.php:229
+#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr "Los archivos deben ser descargados de a uno."
-#: private/files.php:230 private/files.php:258
+#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr "Volver a Archivos"
-#: private/files.php:255
+#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip."
-#: private/files.php:256
+#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
@@ -173,17 +173,17 @@ msgstr "Texto"
msgid "Images"
msgstr "Imágenes"
-#: private/setup/abstractdatabase.php:22
+#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr "%s Entrá el usuario de la base de datos"
-#: private/setup/abstractdatabase.php:25
+#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr "%s Entrá el nombre de la base de datos."
-#: private/setup/abstractdatabase.php:28
+#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr "%s no podés usar puntos en el nombre de la base de datos"
@@ -204,11 +204,11 @@ msgid "MySQL username and/or password not valid"
msgstr "Usuario y/o contraseña MySQL no válido"
#: private/setup/mysql.php:67 private/setup/oci.php:54
-#: private/setup/oci.php:121 private/setup/oci.php:147
-#: private/setup/oci.php:154 private/setup/oci.php:165
-#: private/setup/oci.php:172 private/setup/oci.php:181
-#: private/setup/oci.php:189 private/setup/oci.php:198
-#: private/setup/oci.php:204 private/setup/postgresql.php:89
+#: private/setup/oci.php:121 private/setup/oci.php:144
+#: private/setup/oci.php:151 private/setup/oci.php:162
+#: private/setup/oci.php:169 private/setup/oci.php:178
+#: private/setup/oci.php:186 private/setup/oci.php:195
+#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
@@ -216,10 +216,10 @@ msgid "DB Error: \"%s\""
msgstr "Error DB: \"%s\""
#: private/setup/mysql.php:68 private/setup/oci.php:55
-#: private/setup/oci.php:122 private/setup/oci.php:148
-#: private/setup/oci.php:155 private/setup/oci.php:166
-#: private/setup/oci.php:182 private/setup/oci.php:190
-#: private/setup/oci.php:199 private/setup/postgresql.php:90
+#: private/setup/oci.php:122 private/setup/oci.php:145
+#: private/setup/oci.php:152 private/setup/oci.php:163
+#: private/setup/oci.php:179 private/setup/oci.php:187
+#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
@@ -252,7 +252,7 @@ msgstr "No fue posible establecer la conexión a Oracle"
msgid "Oracle username and/or password not valid"
msgstr "El nombre de usuario y/o contraseña no son válidos"
-#: private/setup/oci.php:173 private/setup/oci.php:205
+#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\""
@@ -332,7 +332,3 @@ msgstr "el año pasado"
#: private/template/functions.php:142
msgid "years ago"
msgstr "años atrás"
-
-#: private/template.php:297 public/util.php:108
-msgid "Caused by:"
-msgstr "Provocado por:"
diff --git a/l10n/es_AR/user_ldap.po b/l10n/es_AR/user_ldap.po
index 641248a61ae..4588bc43a22 100644
--- a/l10n/es_AR/user_ldap.po
+++ b/l10n/es_AR/user_ldap.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2013-11-27 12:08-0500\n"
-"PO-Revision-Date: 2013-11-27 17:09+0000\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot \n"
"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
"MIME-Version: 1.0\n"
@@ -26,17 +26,17 @@ msgstr "Hubo un error al borrar las asignaciones."
msgid "Failed to delete the server configuration"
msgstr "Fallo al borrar la configuración del servidor"
-#: ajax/testConfiguration.php:37
+#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr "La configuración es válida y la conexión pudo ser establecida."
-#: ajax/testConfiguration.php:40
+#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr "La configuración es válida, pero el enlace falló. Por favor, comprobá la configuración del servidor y las credenciales."
-#: ajax/testConfiguration.php:44
+#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
@@ -87,43 +87,43 @@ msgstr "Éxito"
msgid "Error"
msgstr "Error"
-#: js/settings.js:777
+#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
-#: js/settings.js:786
+#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
-#: js/settings.js:795
+#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
-#: js/settings.js:812 js/settings.js:821
+#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr "Seleccionar grupos"
-#: js/settings.js:815 js/settings.js:824
+#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
-#: js/settings.js:818
+#: js/settings.js:878
msgid "Select attributes"
msgstr ""
-#: js/settings.js:845
+#: js/settings.js:905
msgid "Connection test succeeded"
msgstr "El este de conexión ha sido completado satisfactoriamente"
-#: js/settings.js:852
+#: js/settings.js:912
msgid "Connection test failed"
msgstr "Falló es test de conexión"
-#: js/settings.js:861
+#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr "¿Realmente desea borrar la configuración actual del servidor?"
-#: js/settings.js:862
+#: js/settings.js:922
msgid "Confirm Deletion"
msgstr "Confirmar borrado"
@@ -141,11 +141,11 @@ msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
-#: lib/wizard.php:779 lib/wizard.php:791
+#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
-#: lib/wizard.php:952
+#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
diff --git a/l10n/es_CL/core.po b/l10n/es_CL/core.po
new file mode 100644
index 00000000000..05b6eb1d9ed
--- /dev/null
+++ b/l10n/es_CL/core.po
@@ -0,0 +1,775 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: ownCloud\n"
+"Report-Msgid-Bugs-To: translations@owncloud.org\n"
+"POT-Creation-Date: 2013-12-20 01:55-0500\n"
+"PO-Revision-Date: 2013-12-20 06:22+0000\n"
+"Last-Translator: I Robot \n"
+"Language-Team: Spanish (Chile) (http://www.transifex.com/projects/p/owncloud/language/es_CL/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_CL\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ajax/share.php:119 ajax/share.php:198
+#, php-format
+msgid "%s shared »%s« with you"
+msgstr ""
+
+#: ajax/share.php:169
+#, php-format
+msgid "Couldn't send mail to following users: %s "
+msgstr ""
+
+#: ajax/update.php:11
+msgid "Turned on maintenance mode"
+msgstr ""
+
+#: ajax/update.php:14
+msgid "Turned off maintenance mode"
+msgstr ""
+
+#: ajax/update.php:17
+msgid "Updated database"
+msgstr ""
+
+#: ajax/update.php:20
+msgid "Updating filecache, this may take really long..."
+msgstr ""
+
+#: ajax/update.php:23
+msgid "Updated filecache"
+msgstr ""
+
+#: ajax/update.php:26
+#, php-format
+msgid "... %d%% done ..."
+msgstr ""
+
+#: avatar/controller.php:62
+msgid "No image or file provided"
+msgstr ""
+
+#: avatar/controller.php:81
+msgid "Unknown filetype"
+msgstr ""
+
+#: avatar/controller.php:85
+msgid "Invalid image"
+msgstr ""
+
+#: avatar/controller.php:115 avatar/controller.php:142
+msgid "No temporary profile picture available, try again"
+msgstr ""
+
+#: avatar/controller.php:135
+msgid "No crop data provided"
+msgstr ""
+
+#: js/config.php:32
+msgid "Sunday"
+msgstr ""
+
+#: js/config.php:33
+msgid "Monday"
+msgstr ""
+
+#: js/config.php:34
+msgid "Tuesday"
+msgstr ""
+
+#: js/config.php:35
+msgid "Wednesday"
+msgstr ""
+
+#: js/config.php:36
+msgid "Thursday"
+msgstr ""
+
+#: js/config.php:37
+msgid "Friday"
+msgstr ""
+
+#: js/config.php:38
+msgid "Saturday"
+msgstr ""
+
+#: js/config.php:43
+msgid "January"
+msgstr ""
+
+#: js/config.php:44
+msgid "February"
+msgstr ""
+
+#: js/config.php:45
+msgid "March"
+msgstr ""
+
+#: js/config.php:46
+msgid "April"
+msgstr ""
+
+#: js/config.php:47
+msgid "May"
+msgstr ""
+
+#: js/config.php:48
+msgid "June"
+msgstr ""
+
+#: js/config.php:49
+msgid "July"
+msgstr ""
+
+#: js/config.php:50
+msgid "August"
+msgstr ""
+
+#: js/config.php:51
+msgid "September"
+msgstr ""
+
+#: js/config.php:52
+msgid "October"
+msgstr ""
+
+#: js/config.php:53
+msgid "November"
+msgstr ""
+
+#: js/config.php:54
+msgid "December"
+msgstr ""
+
+#: js/js.js:398
+msgid "Settings"
+msgstr "Configuración"
+
+#: js/js.js:869
+msgid "seconds ago"
+msgstr ""
+
+#: js/js.js:870
+msgid "%n minute ago"
+msgid_plural "%n minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:871
+msgid "%n hour ago"
+msgid_plural "%n hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:872
+msgid "today"
+msgstr ""
+
+#: js/js.js:873
+msgid "yesterday"
+msgstr ""
+
+#: js/js.js:874
+msgid "%n day ago"
+msgid_plural "%n days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:875
+msgid "last month"
+msgstr ""
+
+#: js/js.js:876
+msgid "%n month ago"
+msgid_plural "%n months ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/js.js:877
+msgid "months ago"
+msgstr ""
+
+#: js/js.js:878
+msgid "last year"
+msgstr ""
+
+#: js/js.js:879
+msgid "years ago"
+msgstr ""
+
+#: js/oc-dialogs.js:123
+msgid "Choose"
+msgstr ""
+
+#: js/oc-dialogs.js:146
+msgid "Error loading file picker template: {error}"
+msgstr ""
+
+#: js/oc-dialogs.js:172
+msgid "Yes"
+msgstr ""
+
+#: js/oc-dialogs.js:182
+msgid "No"
+msgstr ""
+
+#: js/oc-dialogs.js:199
+msgid "Ok"
+msgstr ""
+
+#: js/oc-dialogs.js:219
+msgid "Error loading message template: {error}"
+msgstr ""
+
+#: js/oc-dialogs.js:347
+msgid "{count} file conflict"
+msgid_plural "{count} file conflicts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: js/oc-dialogs.js:361
+msgid "One file conflict"
+msgstr ""
+
+#: js/oc-dialogs.js:367
+msgid "Which files do you want to keep?"
+msgstr ""
+
+#: js/oc-dialogs.js:368
+msgid ""
+"If you select both versions, the copied file will have a number added to its"
+" name."
+msgstr ""
+
+#: js/oc-dialogs.js:376
+msgid "Cancel"
+msgstr ""
+
+#: js/oc-dialogs.js:386
+msgid "Continue"
+msgstr ""
+
+#: js/oc-dialogs.js:433 js/oc-dialogs.js:446
+msgid "(all selected)"
+msgstr ""
+
+#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
+msgid "({count} selected)"
+msgstr ""
+
+#: js/oc-dialogs.js:457
+msgid "Error loading file exists template"
+msgstr ""
+
+#: js/share.js:51 js/share.js:66 js/share.js:106
+msgid "Shared"
+msgstr ""
+
+#: js/share.js:109
+msgid "Share"
+msgstr ""
+
+#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
+#: js/share.js:719 templates/installation.php:10
+msgid "Error"
+msgstr ""
+
+#: js/share.js:160 js/share.js:747
+msgid "Error while sharing"
+msgstr ""
+
+#: js/share.js:171
+msgid "Error while unsharing"
+msgstr ""
+
+#: js/share.js:178
+msgid "Error while changing permissions"
+msgstr ""
+
+#: js/share.js:187
+msgid "Shared with you and the group {group} by {owner}"
+msgstr ""
+
+#: js/share.js:189
+msgid "Shared with you by {owner}"
+msgstr ""
+
+#: js/share.js:213
+msgid "Share with user or group …"
+msgstr ""
+
+#: js/share.js:219
+msgid "Share link"
+msgstr ""
+
+#: js/share.js:222
+msgid "Password protect"
+msgstr ""
+
+#: js/share.js:224 templates/installation.php:58 templates/login.php:38
+msgid "Password"
+msgstr "Clave"
+
+#: js/share.js:229
+msgid "Allow Public Upload"
+msgstr ""
+
+#: js/share.js:233
+msgid "Email link to person"
+msgstr ""
+
+#: js/share.js:234
+msgid "Send"
+msgstr ""
+
+#: js/share.js:239
+msgid "Set expiration date"
+msgstr ""
+
+#: js/share.js:240
+msgid "Expiration date"
+msgstr ""
+
+#: js/share.js:275
+msgid "Share via email:"
+msgstr ""
+
+#: js/share.js:278
+msgid "No people found"
+msgstr ""
+
+#: js/share.js:322 js/share.js:359
+msgid "group"
+msgstr ""
+
+#: js/share.js:333
+msgid "Resharing is not allowed"
+msgstr ""
+
+#: js/share.js:375
+msgid "Shared in {item} with {user}"
+msgstr ""
+
+#: js/share.js:397
+msgid "Unshare"
+msgstr ""
+
+#: js/share.js:405
+msgid "notify by email"
+msgstr ""
+
+#: js/share.js:408
+msgid "can edit"
+msgstr ""
+
+#: js/share.js:410
+msgid "access control"
+msgstr ""
+
+#: js/share.js:413
+msgid "create"
+msgstr ""
+
+#: js/share.js:416
+msgid "update"
+msgstr ""
+
+#: js/share.js:419
+msgid "delete"
+msgstr ""
+
+#: js/share.js:422
+msgid "share"
+msgstr ""
+
+#: js/share.js:694
+msgid "Password protected"
+msgstr ""
+
+#: js/share.js:707
+msgid "Error unsetting expiration date"
+msgstr ""
+
+#: js/share.js:719
+msgid "Error setting expiration date"
+msgstr ""
+
+#: js/share.js:734
+msgid "Sending ..."
+msgstr ""
+
+#: js/share.js:745
+msgid "Email sent"
+msgstr ""
+
+#: js/share.js:769
+msgid "Warning"
+msgstr ""
+
+#: js/tags.js:4
+msgid "The object type is not specified."
+msgstr ""
+
+#: js/tags.js:13
+msgid "Enter new"
+msgstr ""
+
+#: js/tags.js:27
+msgid "Delete"
+msgstr ""
+
+#: js/tags.js:31
+msgid "Add"
+msgstr ""
+
+#: js/tags.js:39
+msgid "Edit tags"
+msgstr ""
+
+#: js/tags.js:57
+msgid "Error loading dialog template: {error}"
+msgstr ""
+
+#: js/tags.js:261
+msgid "No tags selected for deletion."
+msgstr ""
+
+#: js/update.js:8
+msgid "Please reload the page."
+msgstr ""
+
+#: js/update.js:17
+msgid ""
+"The update was unsuccessful. Please report this issue to the